Unconventional spare memory
&90-&96 Unused Econet workspace
&236/7 Address of OS variables, =&0190
&238/9 Address of extended vectors, =&0D9F, read by many programs
&23A/B Address of ROM table, =&02A1 or =&02A0, read by many programs
&23C/D Address of keyboard translation table, =various
Internationalisation ROMs uses these
&23E/F Address of VDU variables, =&0300
&240 CFS timeout, decrements continuously every 1/50 sec
CFS writes to time inter-block gaps
&249 Palette RAM copy - irrelevant as 16 palette entries, nothing relevant
to read. Written to by VDU 19. Electron ROM polling semaphore.
&25E only b7 checked, b0-b6 free, *REMOTE sets bit 7, *ROFF clears bit 7
&25F only b7 checked, b0-b6 free, *REMOTE sets bit 7, *ROFF clears bit 7
&260 only b7 checked, b0-b6 free, *REMOTE sets bit 7, *ROFF clears bit 7
&267 b7/b0 used, b1-b6 free and not modified. Is modified with INC/DEC, so
b1 needs to be left clear as an overflow
Master uses DEC/INC so b1-b6 will be toggled during ROMFS */!BOOT
&800-&803
Spare memory in MOS 120
Speech system uses:
DB11-DB26 22 bytes Initialise Speech timer
DD6F-DDC9 91 bytes Speech IRQ
DE1A-DE2A 17 bytes Speech timer
E830-E833 4 bytes SOUND &FFxx branch
E88D-E8A3 23 bytes Insert Speech into buffer
EE20-EE50 49 bytes Speech ROM access
EE62-EEAC 75 bytes Speech hardware access
EEBB-EED9 31 bytes Speech hardware access
MOS HELP code:
.loop
INX:LDA helptxt,X:BEQ done:BMI token
JSR OSWRCH:JMP loop
.token
TAY
.token_loop
LDA helptxt-&80,Y:BEQ loop
JSR OSWRCH:INY:BNE token_loop
.done
JSR OSNEWL
.helptxt
EQUS "(,":EQUB hlpXY-helptxt+&80:EQUB 0 :\ FX (,(,))
EQUB 0 :\ BASIC
EQUS "()":EQUB 0 :\ CAT ()
EQUS "(":EQUB hlpXY-helptxt+&80:EQUB 0 :\ CODE ((,))
EQUS "(":EQUB hlpFILE-helptxt+&80:EQUS ")" :\ EXEC ()
EQUS :text: :\ HELP ()
EQUS " ":text: :\ KEY ()
EQUS :file:" ":load: :\ LOAD ()
EQUS :text: :\ LINE ()
EQUS "(":XY :\ MOTOR ((,))
EQUS "(":XY :\ OPT ((,))
EQUS :file:" ":text: :\ RUN ()
EQUS "" :\ ROM
EQUS :file:" |+ ( ":load:")"
EQUS :file: :\ SPOOL
EQUS "" :\ TAPE
EQUS "(":XY :\ TV ((,))
etc
.hlpXY :EQUS "(,))":EQUB 0
.hlpFILE:EQUS "":EQUB 0
.hlpTEXT:EQUS "()":EQUB 0
.hlpLOAD:EQUS "()":EQUB 0