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) |