| Adresses |
Size |
Comments on the memory locations |
| &AC00 |
|
Start of BASIC Operating
System reserved area: |
| &AC00 |
1 |
program line redundant spaces flag (0=keep
extra
spaces; <>0=remove) |
| &AC01 |
1 |
AUTO flag (0=off; <>0=on) |
| &AC02 |
2 |
number of the next line for AUTO |
| &AC04 |
2 |
step distance for AUTO |
| &AC06 |
1 |
|
| &AC07 |
1 |
|
| &AC08 |
1 |
|
| &AC09 |
1 |
WIDTH (&84=132) |
| &AC0A |
|
|
| &AC0B |
|
|
| &AC0C |
1 |
FOR/NEXT flag (0=NEXT not yet used;
<>0=used) |
| &ACOD |
5 |
FOR start value (real). Only 2 bytes
are used if % or
DEFINT variable |
| &AC12 |
2 |
address of ': ' or of the end of program
line byte after
a NEXT command |
| &AC14 |
2 |
address of LB of the line number containing
WEND |
| &AC16 |
1 |
WHILE/WEND flag (&41=WEND not yet used;
&04=used) |
| &AC17 |
|
|
| &AC18 |
2 |
|
| &AClA |
2 |
|
| &AC1C |
2 |
address of location holding ROM routine
address for KB
event block |
| &AC1E |
&0C |
Event Block for ON SQ(l): |
| &AC1E |
2 |
chain address to next event block; &0000
if last
in
chain, but &FFFF if unused |
| &AC20 |
1 |
count |
| &AC21 |
1 |
class: Far address, highest (ON SQ)
priority,
Normal & Synchronous event |
| &AC22 |
2 |
routine address (in BASIC ROM) |
| &AC24 |
1 |
ROM Select number (&FD ie ROM 0 enabled,
Lower ROM
disabled) |
| &AC25 |
1 |
(first byte of user field) |
| &AC26 |
2 |
address of the end of program line byte or
':' after 'ON
SQ(x) GOSUB line number' statement |
| &AC28 |
2 |
address of the end of program line byte of
the line before
the GOSUB routine |
| &AC2A |
&0C |
Event block for ON SQ(2), arranged as
&AC1E
onwards - second ON SQ priority |
| &AC36 |
&0C |
Event block for ON SQ(4), arranged as
&AC1E
onwards - lowest ON SQ priority |
| &AC42 |
&12 |
Ticker and Event Block for AFTER/EVERY Timer 0 |
| &AC42 |
2 |
chain address to next event block (usually
to another
timer or &00FF) |
| &AC44 |
2 |
'count down' count |
| &AC46 |
2 |
recharge count (for EVERY only -
&0000 if AFTER) |
| &AC48 |
2 |
chain address to next ticker block |
| &AC4A |
1 |
count |
| &AC4B |
1 |
class: Far address, lowest (timer) priority,
Normal and Synchronous event |
| &AC4C |
2 |
Routine address (in BASIC ROM) |
| &AC4E |
1 |
ROM Select No (&FD ie ROM 0 enabled,
Lower ROM disabled) |
| &AC4F |
1 |
(first byte of user field) |
| &AC50 |
2 |
address of the end of program line byte or
':' after
statement in use when the timer
'timed-out' |
| &AC52 |
2 |
address of the end of program line byte of
the line
before the GOSUB routine |
| &AC54 |
&12 |
Ticker and Event Block for AFTER/EVERY Timer 1
(3rd
Timer priority) arranged as at &AC42 |
| &AC66 |
&12 |
Ticker and Event Block for AFTER/EVERY Timer 2
(2nd
Timer priority) arranged as at &AC42 |
| &AC78 |
&12 |
Ticker and Event Block for AFTER/EVERY Timer 3
(highest priority) arranged as at &AC42 |
| &AC8A |
&100 |
BASIC input area for lines (as typed in and not
tokenised) or for INPUT |
| &AD8C |
2 |
address of line number LB in line containing
error |
| &AD8E |
2 |
address of byte before statement containing
error - ie of ':' or of HB of Line No |
| &AD90 |
1 |
ERR (Error No) |
| &AD91 |
1 |
DERR (Disc Error No) |
| &AD92 |
2 |
as &AD8E if error is in a program (ie
not if in
Direct
Command Mode) |
| &AD94 |
2 |
as &AD8C if error is in a program (ie
not if in
Direct
Command Mode) |
| &AD96 |
2 |
address of the length LB of line specified
by the 'ON
ERROR GOTO' command |
| &AD98 |
1 |
|
| &AD99 |
&09 |
Current SOUND parameter block (see Firmware Jump
&BCAA) |
| &AD99 |
1 |
channel andrendezvous status |
| &AD9A |
1 |
amplitude envelope (ENV) number |
| &AD9B |
1 |
tone envelope (ENT) number |
| &AD9C |
2 |
tone period |
| &AD9E |
1 |
noise period |
| &AD9F |
1 |
initial amplitude |
| &ADA0 |
2 |
duration, or envelope repeat count |
| &ADA2 |
&10 |
Current Amplitude or Tone Envelope parameter
bloc
(see &BCBC or &BCBF) |
| &ADA2 |
1 |
number of sections (+&80 for a negative
ENT
number, ie
the envelope is run until end of sound |
| &ADA3 |
3 |
first section of the envelope: |
| &ADA3 |
1 |
step count (if <&80) otherwise
envelope shape (not tone
envelope) |
| &ADA4 |
1 |
step size (if step count<&80)
otherwise envelope period
(not tone envelope) |
| &ADA5 |
1 |
pause time (if step count<&80)
otherwise envelope period
(not tone envelope) |
| &ADA6 |
3 |
second section of the envelope, as &ADA3 |
| &ADA9 |
3 |
third section of the envelope, as &ADA3 |
| &ADAC |
3 |
fourth section of the envelope, as &ADA3 |
| &ADAF |
3 |
fifth section of the envelope, as &ADA3 |
| &ADB2 |
5 |
|
| &ADB7 |
&36 |
|
| &ADEB |
2 |
|
| &ADED |
6 |
|
| &ADF3 |
26*1 |
table of DEFINT (&02), DEFSTR
(&03) or DEFREAL
default
(&05), for variables 'a' to 'z' |
| &AE0D |
|
|
| &AE0E |
2 |
|
| &AE10 |
2 |
|
| &AE12 |
2 |
|
| &AE14 |
1 |
|
| &AE15 |
2 |
address of line number LB of last BASIC line
(or
&FFFF) |
| &AE17 |
2 |
address of byte before next DATA item (eg
comma or space) |
| &AE19 |
2 |
address of next space on GOSUB etc stack,
(see also
&B06F) |
| &AE1B |
2 |
address of byte before current statement
(&003F if
in Direct Command mode) |
| &AE1D |
2 |
address of line number LB of line of
current
statement (&0000 if in Direct Command mode) |
| &AE1F |
1 |
trace flag (0=TROFF; <>0=TRON) |
| &AE20 |
1 |
flag used with Trace (&00 if in Direct
Command mode;
&01 if in a program) |
| &AE21 |
|
|
| &AE22 |
2 |
|
| &AE24 |
2 |
|
| &AE26 |
2 |
address to load cassette file to |
| &AE28 |
|
|
| &AE29 |
1 |
file type from cassette header |
| &AE2A |
2 |
file length from cassette header |
| &AE2C |
1 |
program protection flag (<>0 hides
program as if protected) |
| &AE2D |
17 |
buffer used to form binary or hexadecimal
numbers
before
printing etc |
| &AE3A |
5 |
start of buffer used to form hexadecimal
numbers before
printing etc |
| &AE3A |
1 |
Key Number used with INKEY (providing the
Key Number is
written as a decimal) |
| &AE3E |
1 |
last byte (usually &00 or &20)
of the formed
binary
or hexadecimal number |
| &AE43 |
13 |
buffer used to form decimal numbers before
printing etc |
| &AE4E |
1 |
last byte (usually &00 or &20)
of the formed
decimal
number |
| &AE51 |
1 |
|
| &AE52 |
2 |
|
| &AE54 |
1 |
|
| &AE55 |
2 |
address of last used ROM or RSX JUMP
instruction in
its Jump Block |
| &AE57 |
1 |
ROM Select number if address above is in ROM |
| &AE58 |
2 |
BASIC Parser position, moved on to ': ', or
the end of
program line byte after a CALL or an RSX |
| &AE5A |
2 |
the resetting address for machine Stack
Pointer after a
CALL or an RSX |
| &AE5C |
2 |
ZONE value |
| &AE5D |
1 |
|
| &AE5E |
2 |
HIMEM (set by MEMORY) |
| &AE60 |
|
address of highest byte of
free RAM (ie last byte of
UDG area) |
| &AE62 |
2 |
address of start of ROM lower reserved area
(used for
tokenised lines) |
| &AE64 |
2 |
address of end of ROM lower reserved area
(byte before
Program area) |
| &AE66 |
2 |
as &AE68 |
| &AE68 |
2 |
address of start of Variables and DEF FNs
area |
| &AE6A |
2 |
address of start of Arrays area (where next
Variable
or DEF FN entry is placed) |
| &AE6C |
2 |
address of start of free space (where next
Array
entry is placed) |
| &AE6E |
1 |
|
| &AE70 |
&1FF |
GOSUB, FOR and WHILE stack. Entries are added
above
any
existing ones in use
(mixed as
encountered) at address given by &B06F
and must be used up in the
opposite
order. Completed entries are not deleted,
just overwitten by the next new entry: |
|
|
GOSUB (84 max capacity): |
|
1 |
(byte of &00) |
|
2 |
address of end of program line byte or ':' after
GOSUB
statement (the point to RETURN to) |
|
2 |
address of line number HB of line containing
GOSUB |
|
1 |
byte of &06, ie the length of the GOSUB
entry |
|
|
FOR (21 max for Real
FORs,31 max for Integer FORs): |
|
2 |
address of current value of control variable (in
Variables area) |
|
5 |
value of limit (ie the TO value) - there are two
bytes
only for Integer FORs |
|
5 |
value of STEP - two bytes for Integer FORs |
|
1 |
sign byte (&00 for positive; &01
for negative) |
|
2 |
address of the end of program line byte, or ':'
after
the FOR statement (ie the address for the
NEXT loop to restart at) |
|
2 |
address of line number LB of line containing FOR |
|
2 |
address of byte after NEXT statement (ie the
address
to
continue at when the limit is
exceeded) |
|
2 |
address of byte after NEXT statement again |
|
1 |
length byte (&16 for Real FORs;
&10 for
Integer FORs) |
|
|
WHILE (66 max capacity): |
|
2 |
address of line number LB of line containing
WHILE |
|
2 |
address of the end of program line byte or ':'
after
WEND
statement (ie the address |
|
|
to continue at
when the condition is false) |
|
2 |
address of condition after the WHILE command |
|
1 |
length byte of &07 - end of WHILE entry
proper but: |
|
+5 |
value of condition (0 or -1 as a floating point
value)
only while the WHILE entry is the last on
the stack |
| &B06F |
2 |
address of the next space on the GOSUB etc |
|
|
stack (see also
&AE19) |