The read/write/toggle EXOS variable EXOS call (code 16), which is described in section 11.14, provides a way for the user, a device driver or a system extension, to access a set of system variables without knowing their actual address. These variables control many aspects of the system, particularly in setting up options for devices before opening channels to them. The ones which are relevant to particular built in devices are described in the appropriate device driver specification but a complete list is included here.
Each variable has an 8bit value, and is identified by an 8bit EXOS variable number. This list includes all variables which are implemented by the EXOS kernel but there is a facility for system extensions to implement further ones, with numbers above 127 (see section 9.2.4).
Any variable can be set to any value from zero to 255. However many of the variables act as switches to turn something on or off. In these cases, zero corresponds to on and 255 to off. The EXOS call to manipulate them has a toggle function which does a ones complement of the value and will thus switch from zero to 255 and vice versa.
0 - IRQ_ENABLE_STATE
b0 - set to enable sound IRQ. b2 - set to enable 1 Hz IRQ. b4 - set to enable video IRQ. b6 - set to enable external IRQ. b1,3,5,7 - must be zero
1 - FLAG_SOFT_IRQ
2 - CODE_SOFT_IRQ
3 - DEF_TYPE
4 - DEF_CHAN
5 - TIMER
6 - LOCK_KEY
7 - CLICK_KEY
8 - STOP_IRQ
9 - KEY_IRQ
10 - RATE_KEY
11 - DELAY_KEY
12 - TAPE_SND
13 - WAIT_SND
.SQFUL
error when queue
full.
14 - MUTE_SND
15 - BUF_SND
16 - BAUD_SER
17 - FORM_SER
18 - ADDR_NET
19 - NET_IRQ
20 - CHAN_NET
21 - MACH_NET
22 - MODE_VID :
Video Mode,
23 - COLR_VID :
Colour Mode,
24 - X_SIZ_VID:
X page size,
25 - Y_SIZ_VID:
Y page size
26 - ST_FLAG
27 - BORD_VID
28 - BIAS_VID
29 - VID_EDIT
30 - KEY_EDIT
31 - BUF_EDIT
32 - FLG_EDIT
33 - SP_TAPE
34 - PROTECT
35 - LV_TAPE
36 - REM1
37 - REM2
38 - SPRITE
39 - RANDOM_IRQ