Home » Archimedes archive » Micro User » MU 1991-10.adf » Listings » Arc/ARCKeySRC

Arc/ARCKeySRC

This website contains an archive of files for the Acorn Electron, BBC Micro, Acorn Archimedes, Commodore 16 and Commodore 64 computers, which Dominic Ford has rescued from his private collection of floppy disks and cassettes.

Some of these files were originally commercial releases in the 1980s and 1990s, but they are now widely available online. I assume that copyright over them is no longer being asserted. If you own the copyright and would like files to be removed, please contact me.

Tape/disk: Home » Archimedes archive » Micro User » MU 1991-10.adf » Listings
Filename: Arc/ARCKeySRC
Read OK:
File size: 11AF bytes
Load address: 0000
Exec address: 0000
File contents
   10REM >ARCKeySRC
   20REM by S.Tyrrell
   30REM (c) The Micro User
   40MODE0
   50PROCmc
   60PROCsave
   70END
   80:
   90DEFPROCmc
  100DIM MC% &8000
  110Help$="KeyWordKeys"+CHR$9+"1.00 ("+MID$(TIME$,5,11)+")"
  120FOR pass=4 TO 6 STEP 2
  130P%=0:O%=MC%
  140[OPT pass
  150   DCD 0
  160   DCD init
  170   DCD final
  180   DCD service
  190   DCD title
  200   DCD help
  210   DCD command
  220.title
  230   FNs("KeyWordKeys")
  240.help
  250   FNs(Help$)
  260.command
  270   FNs("KeyWords")
  280   DCD keyentry
  290   DCD &10101
  300   DCD syntax
  310   DCD keyhelp
  320   FNs("KeyWordAuthor")
  330   DCD 0
  340   DCD 0
  350   DCD 0
  360   DCD authorhelp
  370   DCB 0
  380.syntax
  390   FNs("Syntax: *KeyWords <ON|OFF>")
  400.keyhelp
  410   FNs("*KeyWords <ON|OFF> turns the KeyWord Keys on or off. When on, pressing Ctrl-Alt and a key produces a keyword.")
  420.authorhelp
  430   FNs("KeyWordKeys was written by S.Tyrrell for The Micro User.")
  440.keyentry
  450   STMFD R13!,{R0-R12,R14}
  460   LDRB R1,[R0]
  470   LDRB R2,[R0,#1]
  480   LDRB R3,[R0,#2]
  490   LDRB R4,[R0,#3]
  500   AND R1,R1,#&5F
  510   AND R2,R2,#&5F
  520   AND R3,R3,#&5F
  530   AND R4,R4,#&5F
  540   CMP R1,#ASC("O")
  550   BNE notonoroff
  560   CMP R2,#ASC("N")
  570   BEQ on
  580   CMP R2,#ASC("F")
  590   BNE notonoroff
  600   CMP R3,#ASC("F")
  610   BEQ off
  620.notonoroff
  630   ADR R0,noterror
  640   SWI "OS_GenerateError"
  650   LDMFD R13!,{R0-R12,PC}
  660.noterror
  670   DCD 0
  680   FNs("*KeyWords must be followed by either ON or OFF")
  690.on
  700   CMP R3,#32
  710   BGT notonoroff
  720.initon
  730   SWI "OS_WriteS"
  740   FNs("KeyWord Keys on (c) The Micro User")
  750   SWI "OS_NewLine"
  760   SWI "OS_NewLine"
  770   MOV R0,#255
  780   STR R0,onoffflag
  790   LDMFD R13!,{R0-R12,PC}
  800.off
  810   CMP R4,#32
  820   BGT notonoroff
  830   SWI "OS_WriteS"
  840   FNs("KeyWord Keys off")
  850   SWI "OS_NewLine"
  860   SWI "OS_NewLine"
  870   MOV R0,#0
  880   STR R0,onoffflag
  890   LDMFD R13!,{R0-R12,PC}
  900.init
  910   STMFD R13!,{R0-R12,R14}
  920   MOV R0,#&1C
  930   ADR R1,called
  940   MOV R2,#0
  950   SWI "OS_Claim"
  960   B initon
  970.final
  980   STMFD R13!,{R0-R12,R14}
  990   MOV R0,#&1C
 1000   ADR R1,called
 1010   MOV R2,#0
 1020   SWI "OS_Release"
 1030   LDMFD R13!,{R0-R12,PC}
 1040.service
 1050   STMFD R13!,{R0-R12,R14}
 1060   CMP R1,#&27
 1070   BLEQ init
 1080   LDMFD R13!,{R0-R12,PC}
 1090.called
 1100   STMFD R13!,{R0-R12,R14}
 1110   LDR R0,onoffflag
 1120   CMP R0,#0
 1130   BEQ calledexit
 1140   MOV R0,#129
 1150   MOV R1,#&FE
 1160   MOV R2,#&FF
 1170   FNuseswi
 1180   SWI "OS_Byte"
 1190   FNoutswi
 1200   CMP R1,#0
 1210   BEQ notkeys
 1220   MOV R0,#129
 1230   MOV R1,#&FD
 1240   MOV R2,#&FF
 1250   FNuseswi
 1260   SWI "OS_Byte"
 1270   FNoutswi
 1280   CMP R1,#0
 1290   BEQ notkeys
 1300   :
 1310   MOV R0,#122
 1320   FNuseswi
 1330   SWI "OS_Byte"
 1340   FNoutswi
 1350   EOR R7,R1,#&FF
 1360   ADR R5,datastart
 1370   LDR R6,datalength
 1380   ADD R6,R5,R6
 1390   .searchdataloop
 1400   LDR R1,[R5]
 1410   AND R1,R1,#&FF
 1420   CMP R1,R7
 1430   BNE notpressed
 1440   LDR R0,onepressedlast
 1450   CMP R0,#0
 1460   BNE calledexit
 1470   MOV R0,#1
 1480   STR R0,onepressedlast
 1490   ADD R7,R5,#8
 1500   .outputloop
 1510   MOV R0,#138
 1520   MOV R1,#0
 1530   LDRB R2,[R7],#1
 1540   CMP R2,#0
 1550   BEQ calledexit
 1560   CMP R2,#ASC("|")
 1570   BNE notcontrol
 1580   LDRB R2,[R7],#1
 1590   CMP R2,#ASC("|")
 1600   SUBNE R2,R2,#64
 1610   CMP R2,#0
 1620   MOVLT R2,#ASC("|")
 1630   .notcontrol
 1640   FNuseswi
 1650   SWI "OS_Byte"
 1660   FNoutswi
 1670   B outputloop
 1680.notpressed
 1690   LDR R1,[R5,#4]
 1700   ADD R5,R5,R1
 1710   CMP R5,R6
 1720   BLT searchdataloop
 1730.notkeys
 1740   MOV R0,#0
 1750   STR R0,onepressedlast
 1760.calledexit
 1770   LDMFD R13!,{R0-R12,PC}
 1780.onoffflag
 1790   DCD 0
 1800.onepressedlast
 1810   DCD 0
 1820.datalength DCD dataend-datastart
 1830.datastart
 1840   FNmakedata
 1850.dataend
 1860]:NEXT pass
 1870ENDPROC
 1880:
 1890DEFFNs(Text$)
 1900[OPT pass
 1910EQUS Text$
 1920DCB 0
 1930ALIGN
 1940]:=0
 1950:
 1960DEFFNuseswi
 1970[OPT pass
 1980MOV R9,PC
 1990ORR R8,R9,#3
 2000TEQP R8,#0
 2010MOVNV R0,R0
 2020STMFD R13!,{R14}
 2030]:=0
 2040:
 2050DEFFNoutswi
 2060[OPT pass
 2070LDMFD R13!,{R14}
 2080TEQP R9,#0
 2090MOVNV R0,R0
 2100]:=0
 2110:
 2120DEFFNmakedata
 2130RESTORE
 2140READ n%,text$
 2150WHILE n%<>0
 2160q%=LEN(text$)+1
 2170IF q% MOD 4>0 q%=q%+(4-q% MOD 4)
 2180[OPT pass
 2190DCD n%
 2200DCD q%+8
 2210FNs(text$)
 2220]
 2230READ n%,text$
 2240ENDWHILE
 2250=0
 2260:
 2270DEFPROCsave
 2280SYS "OS_File",10,"KeyMod",&FFA,,MC%,O%
 2290PRINT'"Module Saved as ""KeyMod"""
 2300ENDPROC
 2310:
 2320DATA -17,LOCAL,-34,RESTORE,-35,ELSE,-52,RUN|M,-36,THEN,-69,REPEAT
 2330DATA -54,UNTIL,-38,INPUT,-55,OLD|M,-56,PLOT,-66,AUTO,-82,STEP
 2340DATA -51,DRAW,-68,FOR,-84,GOTO,-85,DEG,-70,RAD,-71,CHAIN,-87,LIST
 2350DATA -98,END,-67,PROC,-83,COLOUR,-100,VDU,-101,RENUMBER,-86,NEXT
 2360DATA -102,MODE,-103,LOAD,-104,SAVE,-105,PRINT
 2370DATA 0,0

� >ARCKeySRC
� by S.Tyrrell
� (c) The Micro User
(�0
2�mc
<	�save
F�
P:
Z��mc
d� MC% &8000
n1Help$="KeyWordKeys"+�9+"1.00 ("+��$,5,11)+")"
x� pass=4 � 6 � 2
�P%=0:O%=MC%
�
[OPT pass
�   DCD 0
�   DCD init
�   DCD final
�   DCD service
�   DCD title
�   DCD help
�   DCD command
�
.title
�   �s("KeyWordKeys")
�	.help
�   �s(Help$)
.command
   �s("KeyWords")
   DCD keyentry
"   DCD &10101
,   DCD syntax
6   DCD keyhelp
@   �s("KeyWordAuthor")
J   DCD 0
T   DCD 0
^   DCD 0
h   DCD authorhelp
r   DCB 0
|.syntax
�'   �s("Syntax: *KeyWords <ON|OFF>")
�.keyhelp
�z   �s("*KeyWords <ON|OFF> turns the KeyWord Keys on or off. When on, pressing Ctrl-Alt and a key produces a keyword.")
�.authorhelp
�E   �s("KeyWordKeys was written by S.Tyrrell for The Micro User.")
�
.keyentry
�   STMFD R13!,{R0-R12,R14}
�   LDRB R1,[R0]
�   LDRB R2,[R0,#1]
�   LDRB R3,[R0,#2]
�   LDRB R4,[R0,#3]
�   � R1,R1,#&5F
�   � R2,R2,#&5F
   � R3,R3,#&5F
   � R4,R4,#&5F
   CMP R1,#�("O")
&   BNE notonoroff
0   CMP R2,#�("N")
:
   BEQ on
D   CMP R2,#�("F")
N   BNE notonoroff
X   CMP R3,#�("F")
b   BEQ off
l.notonoroff
v   ADR R0,noterror
�   SWI "OS_GenerateError"
�   LDMFD R13!,{R0-R12,PC}
�
.noterror
�   DCD 0
�;   �s("*KeyWords must be followed by either ON or OFF")
�.on
�   CMP R3,#32
�   BGT notonoroff
�.initon
�   SWI "OS_WriteS"
�/   �s("KeyWord Keys on (c) The Micro User")
�   SWI "OS_NewLine"
�   SWI "OS_NewLine"
   MOV R0,#255
   STR R0,onoffflag
   LDMFD R13!,{R0-R12,PC}
 .off
*   CMP R4,#32
4   BGT notonoroff
>   SWI "OS_WriteS"
H   �s("KeyWord Keys off")
R   SWI "OS_NewLine"
\   SWI "OS_NewLine"
f   MOV R0,#0
p   STR R0,onoffflag
z   LDMFD R13!,{R0-R12,PC}
�	.init
�   STMFD R13!,{R0-R12,R14}
�   MOV R0,#&1C
�   ADR R1,called
�   MOV R2,#0
�   SWI "OS_Claim"
�   B initon
�
.final
�   STMFD R13!,{R0-R12,R14}
�   MOV R0,#&1C
�   ADR R1,called
�   MOV R2,#0
�   SWI "OS_Release"
   LDMFD R13!,{R0-R12,PC}
.service
   STMFD R13!,{R0-R12,R14}
$   CMP R1,#&27
.   BLEQ init
8   LDMFD R13!,{R0-R12,PC}
B.called
L   STMFD R13!,{R0-R12,R14}
V   LDR R0,onoffflag
`   CMP R0,#0
j   BEQ calledexit
t   MOV R0,#129
~   MOV R1,#&FE
�   MOV R2,#&FF
�   �useswi
�   SWI "OS_Byte"
�   �outswi
�   CMP R1,#0
�   BEQ notkeys
�   MOV R0,#129
�   MOV R1,#&FD
�   MOV R2,#&FF
�   �useswi
�   SWI "OS_Byte"
�   �outswi
   CMP R1,#0

   BEQ notkeys
   :
   MOV R0,#122
(   �useswi
2   SWI "OS_Byte"
<   �outswi
F   � R7,R1,#&FF
P   ADR R5,datastart
Z   LDR R6,datalength
d   ADD R6,R5,R6
n   .searchdataloop
x   LDR R1,[R5]
�   � R1,R1,#&FF
�   CMP R1,R7
�   BNE notpressed
�   LDR R0,onepressedlast
�   CMP R0,#0
�   BNE calledexit
�   MOV R0,#1
�   STR R0,onepressedlast
�   ADD R7,R5,#8
�   .outputloop
�   MOV R0,#138
�   MOV R1,#0
�   LDRB R2,[R7],#1
   CMP R2,#0
   BEQ calledexit
   CMP R2,#�("|")
"   BNE notcontrol
,   LDRB R2,[R7],#1
6   CMP R2,#�("|")
@   SUBNE R2,R2,#64
J   CMP R2,#0
T   MOVLT R2,#�("|")
^   .notcontrol
h   �useswi
r   SWI "OS_Byte"
|   �outswi
�   B outputloop
�.notpressed
�   LDR R1,[R5,#4]
�   ADD R5,R5,R1
�   CMP R5,R6
�   BLT searchdataloop
�.notkeys
�   MOV R0,#0
�   STR R0,onepressedlast
�.calledexit
�   LDMFD R13!,{R0-R12,PC}
�.onoffflag
�   DCD 0
.onepressedlast
   DCD 0
%.datalength DCD dataend-datastart
&.datastart
0   �makedata
:.dataend
D]:� pass
N�
X:
bݤs(Text$)
l
[OPT pass
vEQUS Text$
�	DCB 0
�	ALIGN
�]:=0
�:
�ݤuseswi
�
[OPT pass
�
MOV R9,PC
��R R8,R9,#3
�TEQP R8,#0
�MOVNV R0,R0
�STMFD R13!,{R14}
�]:=0
�:
ݤoutswi

[OPT pass
LDMFD R13!,{R14}
 TEQP R9,#0
*MOVNV R0,R0
4]:=0
>:
Hݤmakedata
R�
\� n%,text$
fȕ n%<>0
pq%=�(text$)+1
z� q% � 4>0 q%=q%+(4-q% � 4)
�
[OPT pass
�
DCD n%
�DCD q%+8
�
�s(text$)
�]
�� n%,text$
��
�=0
�:
�
��save
�)ș "OS_File",10,"KeyMod",&FFA,,MC%,O%
�"�'"Module Saved as ""KeyMod"""
��
	:
	B� -17,LOCAL,-34,RESTORE,-35,ELSE,-52,RUN|M,-36,THEN,-69,REPEAT
	>� -54,UNTIL,-38,INPUT,-55,OLD|M,-56,PLOT,-66,AUTO,-82,STEP
	$B� -51,DRAW,-68,FOR,-84,GOTO,-85,DEG,-70,RAD,-71,CHAIN,-87,LIST
	.A� -98,END,-67,PROC,-83,COLOUR,-100,VDU,-101,RENUMBER,-86,NEXT
	8.� -102,MODE,-103,LOAD,-104,SAVE,-105,PRINT
	B	� 0,0
�
00000000  0d 00 0a 10 f4 20 3e 41  52 43 4b 65 79 53 52 43  |..... >ARCKeySRC|
00000010  0d 00 14 12 f4 20 62 79  20 53 2e 54 79 72 72 65  |..... by S.Tyrre|
00000020  6c 6c 0d 00 1e 18 f4 20  28 63 29 20 54 68 65 20  |ll..... (c) The |
00000030  4d 69 63 72 6f 20 55 73  65 72 0d 00 28 06 eb 30  |Micro User..(..0|
00000040  0d 00 32 07 f2 6d 63 0d  00 3c 09 f2 73 61 76 65  |..2..mc..<..save|
00000050  0d 00 46 05 e0 0d 00 50  05 3a 0d 00 5a 08 dd f2  |..F....P.:..Z...|
00000060  6d 63 0d 00 64 0f de 20  4d 43 25 20 26 38 30 30  |mc..d.. MC% &800|
00000070  30 0d 00 6e 31 48 65 6c  70 24 3d 22 4b 65 79 57  |0..n1Help$="KeyW|
00000080  6f 72 64 4b 65 79 73 22  2b bd 39 2b 22 31 2e 30  |ordKeys"+.9+"1.0|
00000090  30 20 28 22 2b c1 91 24  2c 35 2c 31 31 29 2b 22  |0 ("+..$,5,11)+"|
000000a0  29 22 0d 00 78 14 e3 20  70 61 73 73 3d 34 20 b8  |)"..x.. pass=4 .|
000000b0  20 36 20 88 20 32 0d 00  82 0f 50 25 3d 30 3a 4f  | 6 . 2....P%=0:O|
000000c0  25 3d 4d 43 25 0d 00 8c  0d 5b 4f 50 54 20 70 61  |%=MC%....[OPT pa|
000000d0  73 73 0d 00 96 0c 20 20  20 44 43 44 20 30 0d 00  |ss....   DCD 0..|
000000e0  a0 0f 20 20 20 44 43 44  20 69 6e 69 74 0d 00 aa  |..   DCD init...|
000000f0  10 20 20 20 44 43 44 20  66 69 6e 61 6c 0d 00 b4  |.   DCD final...|
00000100  12 20 20 20 44 43 44 20  73 65 72 76 69 63 65 0d  |.   DCD service.|
00000110  00 be 10 20 20 20 44 43  44 20 74 69 74 6c 65 0d  |...   DCD title.|
00000120  00 c8 0f 20 20 20 44 43  44 20 68 65 6c 70 0d 00  |...   DCD help..|
00000130  d2 12 20 20 20 44 43 44  20 63 6f 6d 6d 61 6e 64  |..   DCD command|
00000140  0d 00 dc 0a 2e 74 69 74  6c 65 0d 00 e6 18 20 20  |.....title....  |
00000150  20 a4 73 28 22 4b 65 79  57 6f 72 64 4b 65 79 73  | .s("KeyWordKeys|
00000160  22 29 0d 00 f0 09 2e 68  65 6c 70 0d 00 fa 10 20  |").....help.... |
00000170  20 20 a4 73 28 48 65 6c  70 24 29 0d 01 04 0c 2e  |  .s(Help$).....|
00000180  63 6f 6d 6d 61 6e 64 0d  01 0e 15 20 20 20 a4 73  |command....   .s|
00000190  28 22 4b 65 79 57 6f 72  64 73 22 29 0d 01 18 13  |("KeyWords")....|
000001a0  20 20 20 44 43 44 20 6b  65 79 65 6e 74 72 79 0d  |   DCD keyentry.|
000001b0  01 22 11 20 20 20 44 43  44 20 26 31 30 31 30 31  |.".   DCD &10101|
000001c0  0d 01 2c 11 20 20 20 44  43 44 20 73 79 6e 74 61  |..,.   DCD synta|
000001d0  78 0d 01 36 12 20 20 20  44 43 44 20 6b 65 79 68  |x..6.   DCD keyh|
000001e0  65 6c 70 0d 01 40 1a 20  20 20 a4 73 28 22 4b 65  |elp..@.   .s("Ke|
000001f0  79 57 6f 72 64 41 75 74  68 6f 72 22 29 0d 01 4a  |yWordAuthor")..J|
00000200  0c 20 20 20 44 43 44 20  30 0d 01 54 0c 20 20 20  |.   DCD 0..T.   |
00000210  44 43 44 20 30 0d 01 5e  0c 20 20 20 44 43 44 20  |DCD 0..^.   DCD |
00000220  30 0d 01 68 15 20 20 20  44 43 44 20 61 75 74 68  |0..h.   DCD auth|
00000230  6f 72 68 65 6c 70 0d 01  72 0c 20 20 20 44 43 42  |orhelp..r.   DCB|
00000240  20 30 0d 01 7c 0b 2e 73  79 6e 74 61 78 0d 01 86  | 0..|..syntax...|
00000250  27 20 20 20 a4 73 28 22  53 79 6e 74 61 78 3a 20  |'   .s("Syntax: |
00000260  2a 4b 65 79 57 6f 72 64  73 20 3c 4f 4e 7c 4f 46  |*KeyWords <ON|OF|
00000270  46 3e 22 29 0d 01 90 0c  2e 6b 65 79 68 65 6c 70  |F>").....keyhelp|
00000280  0d 01 9a 7a 20 20 20 a4  73 28 22 2a 4b 65 79 57  |...z   .s("*KeyW|
00000290  6f 72 64 73 20 3c 4f 4e  7c 4f 46 46 3e 20 74 75  |ords <ON|OFF> tu|
000002a0  72 6e 73 20 74 68 65 20  4b 65 79 57 6f 72 64 20  |rns the KeyWord |
000002b0  4b 65 79 73 20 6f 6e 20  6f 72 20 6f 66 66 2e 20  |Keys on or off. |
000002c0  57 68 65 6e 20 6f 6e 2c  20 70 72 65 73 73 69 6e  |When on, pressin|
000002d0  67 20 43 74 72 6c 2d 41  6c 74 20 61 6e 64 20 61  |g Ctrl-Alt and a|
000002e0  20 6b 65 79 20 70 72 6f  64 75 63 65 73 20 61 20  | key produces a |
000002f0  6b 65 79 77 6f 72 64 2e  22 29 0d 01 a4 0f 2e 61  |keyword.").....a|
00000300  75 74 68 6f 72 68 65 6c  70 0d 01 ae 45 20 20 20  |uthorhelp...E   |
00000310  a4 73 28 22 4b 65 79 57  6f 72 64 4b 65 79 73 20  |.s("KeyWordKeys |
00000320  77 61 73 20 77 72 69 74  74 65 6e 20 62 79 20 53  |was written by S|
00000330  2e 54 79 72 72 65 6c 6c  20 66 6f 72 20 54 68 65  |.Tyrrell for The|
00000340  20 4d 69 63 72 6f 20 55  73 65 72 2e 22 29 0d 01  | Micro User.")..|
00000350  b8 0d 2e 6b 65 79 65 6e  74 72 79 0d 01 c2 1e 20  |...keyentry.... |
00000360  20 20 53 54 4d 46 44 20  52 31 33 21 2c 7b 52 30  |  STMFD R13!,{R0|
00000370  2d 52 31 32 2c 52 31 34  7d 0d 01 cc 13 20 20 20  |-R12,R14}....   |
00000380  4c 44 52 42 20 52 31 2c  5b 52 30 5d 0d 01 d6 16  |LDRB R1,[R0]....|
00000390  20 20 20 4c 44 52 42 20  52 32 2c 5b 52 30 2c 23  |   LDRB R2,[R0,#|
000003a0  31 5d 0d 01 e0 16 20 20  20 4c 44 52 42 20 52 33  |1]....   LDRB R3|
000003b0  2c 5b 52 30 2c 23 32 5d  0d 01 ea 16 20 20 20 4c  |,[R0,#2]....   L|
000003c0  44 52 42 20 52 34 2c 5b  52 30 2c 23 33 5d 0d 01  |DRB R4,[R0,#3]..|
000003d0  f4 13 20 20 20 80 20 52  31 2c 52 31 2c 23 26 35  |..   . R1,R1,#&5|
000003e0  46 0d 01 fe 13 20 20 20  80 20 52 32 2c 52 32 2c  |F....   . R2,R2,|
000003f0  23 26 35 46 0d 02 08 13  20 20 20 80 20 52 33 2c  |#&5F....   . R3,|
00000400  52 33 2c 23 26 35 46 0d  02 12 13 20 20 20 80 20  |R3,#&5F....   . |
00000410  52 34 2c 52 34 2c 23 26  35 46 0d 02 1c 15 20 20  |R4,R4,#&5F....  |
00000420  20 43 4d 50 20 52 31 2c  23 97 28 22 4f 22 29 0d  | CMP R1,#.("O").|
00000430  02 26 15 20 20 20 42 4e  45 20 6e 6f 74 6f 6e 6f  |.&.   BNE notono|
00000440  72 6f 66 66 0d 02 30 15  20 20 20 43 4d 50 20 52  |roff..0.   CMP R|
00000450  32 2c 23 97 28 22 4e 22  29 0d 02 3a 0d 20 20 20  |2,#.("N")..:.   |
00000460  42 45 51 20 6f 6e 0d 02  44 15 20 20 20 43 4d 50  |BEQ on..D.   CMP|
00000470  20 52 32 2c 23 97 28 22  46 22 29 0d 02 4e 15 20  | R2,#.("F")..N. |
00000480  20 20 42 4e 45 20 6e 6f  74 6f 6e 6f 72 6f 66 66  |  BNE notonoroff|
00000490  0d 02 58 15 20 20 20 43  4d 50 20 52 33 2c 23 97  |..X.   CMP R3,#.|
000004a0  28 22 46 22 29 0d 02 62  0e 20 20 20 42 45 51 20  |("F")..b.   BEQ |
000004b0  6f 66 66 0d 02 6c 0f 2e  6e 6f 74 6f 6e 6f 72 6f  |off..l..notonoro|
000004c0  66 66 0d 02 76 16 20 20  20 41 44 52 20 52 30 2c  |ff..v.   ADR R0,|
000004d0  6e 6f 74 65 72 72 6f 72  0d 02 80 1d 20 20 20 53  |noterror....   S|
000004e0  57 49 20 22 4f 53 5f 47  65 6e 65 72 61 74 65 45  |WI "OS_GenerateE|
000004f0  72 72 6f 72 22 0d 02 8a  1d 20 20 20 4c 44 4d 46  |rror"....   LDMF|
00000500  44 20 52 31 33 21 2c 7b  52 30 2d 52 31 32 2c 50  |D R13!,{R0-R12,P|
00000510  43 7d 0d 02 94 0d 2e 6e  6f 74 65 72 72 6f 72 0d  |C}.....noterror.|
00000520  02 9e 0c 20 20 20 44 43  44 20 30 0d 02 a8 3b 20  |...   DCD 0...; |
00000530  20 20 a4 73 28 22 2a 4b  65 79 57 6f 72 64 73 20  |  .s("*KeyWords |
00000540  6d 75 73 74 20 62 65 20  66 6f 6c 6c 6f 77 65 64  |must be followed|
00000550  20 62 79 20 65 69 74 68  65 72 20 4f 4e 20 6f 72  | by either ON or|
00000560  20 4f 46 46 22 29 0d 02  b2 07 2e 6f 6e 0d 02 bc  | OFF").....on...|
00000570  11 20 20 20 43 4d 50 20  52 33 2c 23 33 32 0d 02  |.   CMP R3,#32..|
00000580  c6 15 20 20 20 42 47 54  20 6e 6f 74 6f 6e 6f 72  |..   BGT notonor|
00000590  6f 66 66 0d 02 d0 0b 2e  69 6e 69 74 6f 6e 0d 02  |off.....initon..|
000005a0  da 16 20 20 20 53 57 49  20 22 4f 53 5f 57 72 69  |..   SWI "OS_Wri|
000005b0  74 65 53 22 0d 02 e4 2f  20 20 20 a4 73 28 22 4b  |teS".../   .s("K|
000005c0  65 79 57 6f 72 64 20 4b  65 79 73 20 6f 6e 20 28  |eyWord Keys on (|
000005d0  63 29 20 54 68 65 20 4d  69 63 72 6f 20 55 73 65  |c) The Micro Use|
000005e0  72 22 29 0d 02 ee 17 20  20 20 53 57 49 20 22 4f  |r")....   SWI "O|
000005f0  53 5f 4e 65 77 4c 69 6e  65 22 0d 02 f8 17 20 20  |S_NewLine"....  |
00000600  20 53 57 49 20 22 4f 53  5f 4e 65 77 4c 69 6e 65  | SWI "OS_NewLine|
00000610  22 0d 03 02 12 20 20 20  4d 4f 56 20 52 30 2c 23  |"....   MOV R0,#|
00000620  32 35 35 0d 03 0c 17 20  20 20 53 54 52 20 52 30  |255....   STR R0|
00000630  2c 6f 6e 6f 66 66 66 6c  61 67 0d 03 16 1d 20 20  |,onoffflag....  |
00000640  20 4c 44 4d 46 44 20 52  31 33 21 2c 7b 52 30 2d  | LDMFD R13!,{R0-|
00000650  52 31 32 2c 50 43 7d 0d  03 20 08 2e 6f 66 66 0d  |R12,PC}.. ..off.|
00000660  03 2a 11 20 20 20 43 4d  50 20 52 34 2c 23 33 32  |.*.   CMP R4,#32|
00000670  0d 03 34 15 20 20 20 42  47 54 20 6e 6f 74 6f 6e  |..4.   BGT noton|
00000680  6f 72 6f 66 66 0d 03 3e  16 20 20 20 53 57 49 20  |oroff..>.   SWI |
00000690  22 4f 53 5f 57 72 69 74  65 53 22 0d 03 48 1d 20  |"OS_WriteS"..H. |
000006a0  20 20 a4 73 28 22 4b 65  79 57 6f 72 64 20 4b 65  |  .s("KeyWord Ke|
000006b0  79 73 20 6f 66 66 22 29  0d 03 52 17 20 20 20 53  |ys off")..R.   S|
000006c0  57 49 20 22 4f 53 5f 4e  65 77 4c 69 6e 65 22 0d  |WI "OS_NewLine".|
000006d0  03 5c 17 20 20 20 53 57  49 20 22 4f 53 5f 4e 65  |.\.   SWI "OS_Ne|
000006e0  77 4c 69 6e 65 22 0d 03  66 10 20 20 20 4d 4f 56  |wLine"..f.   MOV|
000006f0  20 52 30 2c 23 30 0d 03  70 17 20 20 20 53 54 52  | R0,#0..p.   STR|
00000700  20 52 30 2c 6f 6e 6f 66  66 66 6c 61 67 0d 03 7a  | R0,onoffflag..z|
00000710  1d 20 20 20 4c 44 4d 46  44 20 52 31 33 21 2c 7b  |.   LDMFD R13!,{|
00000720  52 30 2d 52 31 32 2c 50  43 7d 0d 03 84 09 2e 69  |R0-R12,PC}.....i|
00000730  6e 69 74 0d 03 8e 1e 20  20 20 53 54 4d 46 44 20  |nit....   STMFD |
00000740  52 31 33 21 2c 7b 52 30  2d 52 31 32 2c 52 31 34  |R13!,{R0-R12,R14|
00000750  7d 0d 03 98 12 20 20 20  4d 4f 56 20 52 30 2c 23  |}....   MOV R0,#|
00000760  26 31 43 0d 03 a2 14 20  20 20 41 44 52 20 52 31  |&1C....   ADR R1|
00000770  2c 63 61 6c 6c 65 64 0d  03 ac 10 20 20 20 4d 4f  |,called....   MO|
00000780  56 20 52 32 2c 23 30 0d  03 b6 15 20 20 20 53 57  |V R2,#0....   SW|
00000790  49 20 22 4f 53 5f 43 6c  61 69 6d 22 0d 03 c0 0f  |I "OS_Claim"....|
000007a0  20 20 20 42 20 69 6e 69  74 6f 6e 0d 03 ca 0a 2e  |   B initon.....|
000007b0  66 69 6e 61 6c 0d 03 d4  1e 20 20 20 53 54 4d 46  |final....   STMF|
000007c0  44 20 52 31 33 21 2c 7b  52 30 2d 52 31 32 2c 52  |D R13!,{R0-R12,R|
000007d0  31 34 7d 0d 03 de 12 20  20 20 4d 4f 56 20 52 30  |14}....   MOV R0|
000007e0  2c 23 26 31 43 0d 03 e8  14 20 20 20 41 44 52 20  |,#&1C....   ADR |
000007f0  52 31 2c 63 61 6c 6c 65  64 0d 03 f2 10 20 20 20  |R1,called....   |
00000800  4d 4f 56 20 52 32 2c 23  30 0d 03 fc 17 20 20 20  |MOV R2,#0....   |
00000810  53 57 49 20 22 4f 53 5f  52 65 6c 65 61 73 65 22  |SWI "OS_Release"|
00000820  0d 04 06 1d 20 20 20 4c  44 4d 46 44 20 52 31 33  |....   LDMFD R13|
00000830  21 2c 7b 52 30 2d 52 31  32 2c 50 43 7d 0d 04 10  |!,{R0-R12,PC}...|
00000840  0c 2e 73 65 72 76 69 63  65 0d 04 1a 1e 20 20 20  |..service....   |
00000850  53 54 4d 46 44 20 52 31  33 21 2c 7b 52 30 2d 52  |STMFD R13!,{R0-R|
00000860  31 32 2c 52 31 34 7d 0d  04 24 12 20 20 20 43 4d  |12,R14}..$.   CM|
00000870  50 20 52 31 2c 23 26 32  37 0d 04 2e 10 20 20 20  |P R1,#&27....   |
00000880  42 4c 45 51 20 69 6e 69  74 0d 04 38 1d 20 20 20  |BLEQ init..8.   |
00000890  4c 44 4d 46 44 20 52 31  33 21 2c 7b 52 30 2d 52  |LDMFD R13!,{R0-R|
000008a0  31 32 2c 50 43 7d 0d 04  42 0b 2e 63 61 6c 6c 65  |12,PC}..B..calle|
000008b0  64 0d 04 4c 1e 20 20 20  53 54 4d 46 44 20 52 31  |d..L.   STMFD R1|
000008c0  33 21 2c 7b 52 30 2d 52  31 32 2c 52 31 34 7d 0d  |3!,{R0-R12,R14}.|
000008d0  04 56 17 20 20 20 4c 44  52 20 52 30 2c 6f 6e 6f  |.V.   LDR R0,ono|
000008e0  66 66 66 6c 61 67 0d 04  60 10 20 20 20 43 4d 50  |ffflag..`.   CMP|
000008f0  20 52 30 2c 23 30 0d 04  6a 15 20 20 20 42 45 51  | R0,#0..j.   BEQ|
00000900  20 63 61 6c 6c 65 64 65  78 69 74 0d 04 74 12 20  | calledexit..t. |
00000910  20 20 4d 4f 56 20 52 30  2c 23 31 32 39 0d 04 7e  |  MOV R0,#129..~|
00000920  12 20 20 20 4d 4f 56 20  52 31 2c 23 26 46 45 0d  |.   MOV R1,#&FE.|
00000930  04 88 12 20 20 20 4d 4f  56 20 52 32 2c 23 26 46  |...   MOV R2,#&F|
00000940  46 0d 04 92 0e 20 20 20  a4 75 73 65 73 77 69 0d  |F....   .useswi.|
00000950  04 9c 14 20 20 20 53 57  49 20 22 4f 53 5f 42 79  |...   SWI "OS_By|
00000960  74 65 22 0d 04 a6 0e 20  20 20 a4 6f 75 74 73 77  |te"....   .outsw|
00000970  69 0d 04 b0 10 20 20 20  43 4d 50 20 52 31 2c 23  |i....   CMP R1,#|
00000980  30 0d 04 ba 12 20 20 20  42 45 51 20 6e 6f 74 6b  |0....   BEQ notk|
00000990  65 79 73 0d 04 c4 12 20  20 20 4d 4f 56 20 52 30  |eys....   MOV R0|
000009a0  2c 23 31 32 39 0d 04 ce  12 20 20 20 4d 4f 56 20  |,#129....   MOV |
000009b0  52 31 2c 23 26 46 44 0d  04 d8 12 20 20 20 4d 4f  |R1,#&FD....   MO|
000009c0  56 20 52 32 2c 23 26 46  46 0d 04 e2 0e 20 20 20  |V R2,#&FF....   |
000009d0  a4 75 73 65 73 77 69 0d  04 ec 14 20 20 20 53 57  |.useswi....   SW|
000009e0  49 20 22 4f 53 5f 42 79  74 65 22 0d 04 f6 0e 20  |I "OS_Byte".... |
000009f0  20 20 a4 6f 75 74 73 77  69 0d 05 00 10 20 20 20  |  .outswi....   |
00000a00  43 4d 50 20 52 31 2c 23  30 0d 05 0a 12 20 20 20  |CMP R1,#0....   |
00000a10  42 45 51 20 6e 6f 74 6b  65 79 73 0d 05 14 08 20  |BEQ notkeys.... |
00000a20  20 20 3a 0d 05 1e 12 20  20 20 4d 4f 56 20 52 30  |  :....   MOV R0|
00000a30  2c 23 31 32 32 0d 05 28  0e 20 20 20 a4 75 73 65  |,#122..(.   .use|
00000a40  73 77 69 0d 05 32 14 20  20 20 53 57 49 20 22 4f  |swi..2.   SWI "O|
00000a50  53 5f 42 79 74 65 22 0d  05 3c 0e 20 20 20 a4 6f  |S_Byte"..<.   .o|
00000a60  75 74 73 77 69 0d 05 46  13 20 20 20 82 20 52 37  |utswi..F.   . R7|
00000a70  2c 52 31 2c 23 26 46 46  0d 05 50 17 20 20 20 41  |,R1,#&FF..P.   A|
00000a80  44 52 20 52 35 2c 64 61  74 61 73 74 61 72 74 0d  |DR R5,datastart.|
00000a90  05 5a 18 20 20 20 4c 44  52 20 52 36 2c 64 61 74  |.Z.   LDR R6,dat|
00000aa0  61 6c 65 6e 67 74 68 0d  05 64 13 20 20 20 41 44  |alength..d.   AD|
00000ab0  44 20 52 36 2c 52 35 2c  52 36 0d 05 6e 16 20 20  |D R6,R5,R6..n.  |
00000ac0  20 2e 73 65 61 72 63 68  64 61 74 61 6c 6f 6f 70  | .searchdataloop|
00000ad0  0d 05 78 12 20 20 20 4c  44 52 20 52 31 2c 5b 52  |..x.   LDR R1,[R|
00000ae0  35 5d 0d 05 82 13 20 20  20 80 20 52 31 2c 52 31  |5]....   . R1,R1|
00000af0  2c 23 26 46 46 0d 05 8c  10 20 20 20 43 4d 50 20  |,#&FF....   CMP |
00000b00  52 31 2c 52 37 0d 05 96  15 20 20 20 42 4e 45 20  |R1,R7....   BNE |
00000b10  6e 6f 74 70 72 65 73 73  65 64 0d 05 a0 1c 20 20  |notpressed....  |
00000b20  20 4c 44 52 20 52 30 2c  6f 6e 65 70 72 65 73 73  | LDR R0,onepress|
00000b30  65 64 6c 61 73 74 0d 05  aa 10 20 20 20 43 4d 50  |edlast....   CMP|
00000b40  20 52 30 2c 23 30 0d 05  b4 15 20 20 20 42 4e 45  | R0,#0....   BNE|
00000b50  20 63 61 6c 6c 65 64 65  78 69 74 0d 05 be 10 20  | calledexit.... |
00000b60  20 20 4d 4f 56 20 52 30  2c 23 31 0d 05 c8 1c 20  |  MOV R0,#1.... |
00000b70  20 20 53 54 52 20 52 30  2c 6f 6e 65 70 72 65 73  |  STR R0,onepres|
00000b80  73 65 64 6c 61 73 74 0d  05 d2 13 20 20 20 41 44  |sedlast....   AD|
00000b90  44 20 52 37 2c 52 35 2c  23 38 0d 05 dc 12 20 20  |D R7,R5,#8....  |
00000ba0  20 2e 6f 75 74 70 75 74  6c 6f 6f 70 0d 05 e6 12  | .outputloop....|
00000bb0  20 20 20 4d 4f 56 20 52  30 2c 23 31 33 38 0d 05  |   MOV R0,#138..|
00000bc0  f0 10 20 20 20 4d 4f 56  20 52 31 2c 23 30 0d 05  |..   MOV R1,#0..|
00000bd0  fa 16 20 20 20 4c 44 52  42 20 52 32 2c 5b 52 37  |..   LDRB R2,[R7|
00000be0  5d 2c 23 31 0d 06 04 10  20 20 20 43 4d 50 20 52  |],#1....   CMP R|
00000bf0  32 2c 23 30 0d 06 0e 15  20 20 20 42 45 51 20 63  |2,#0....   BEQ c|
00000c00  61 6c 6c 65 64 65 78 69  74 0d 06 18 15 20 20 20  |alledexit....   |
00000c10  43 4d 50 20 52 32 2c 23  97 28 22 7c 22 29 0d 06  |CMP R2,#.("|")..|
00000c20  22 15 20 20 20 42 4e 45  20 6e 6f 74 63 6f 6e 74  |".   BNE notcont|
00000c30  72 6f 6c 0d 06 2c 16 20  20 20 4c 44 52 42 20 52  |rol..,.   LDRB R|
00000c40  32 2c 5b 52 37 5d 2c 23  31 0d 06 36 15 20 20 20  |2,[R7],#1..6.   |
00000c50  43 4d 50 20 52 32 2c 23  97 28 22 7c 22 29 0d 06  |CMP R2,#.("|")..|
00000c60  40 16 20 20 20 53 55 42  4e 45 20 52 32 2c 52 32  |@.   SUBNE R2,R2|
00000c70  2c 23 36 34 0d 06 4a 10  20 20 20 43 4d 50 20 52  |,#64..J.   CMP R|
00000c80  32 2c 23 30 0d 06 54 17  20 20 20 4d 4f 56 4c 54  |2,#0..T.   MOVLT|
00000c90  20 52 32 2c 23 97 28 22  7c 22 29 0d 06 5e 12 20  | R2,#.("|")..^. |
00000ca0  20 20 2e 6e 6f 74 63 6f  6e 74 72 6f 6c 0d 06 68  |  .notcontrol..h|
00000cb0  0e 20 20 20 a4 75 73 65  73 77 69 0d 06 72 14 20  |.   .useswi..r. |
00000cc0  20 20 53 57 49 20 22 4f  53 5f 42 79 74 65 22 0d  |  SWI "OS_Byte".|
00000cd0  06 7c 0e 20 20 20 a4 6f  75 74 73 77 69 0d 06 86  |.|.   .outswi...|
00000ce0  13 20 20 20 42 20 6f 75  74 70 75 74 6c 6f 6f 70  |.   B outputloop|
00000cf0  0d 06 90 0f 2e 6e 6f 74  70 72 65 73 73 65 64 0d  |.....notpressed.|
00000d00  06 9a 15 20 20 20 4c 44  52 20 52 31 2c 5b 52 35  |...   LDR R1,[R5|
00000d10  2c 23 34 5d 0d 06 a4 13  20 20 20 41 44 44 20 52  |,#4]....   ADD R|
00000d20  35 2c 52 35 2c 52 31 0d  06 ae 10 20 20 20 43 4d  |5,R5,R1....   CM|
00000d30  50 20 52 35 2c 52 36 0d  06 b8 19 20 20 20 42 4c  |P R5,R6....   BL|
00000d40  54 20 73 65 61 72 63 68  64 61 74 61 6c 6f 6f 70  |T searchdataloop|
00000d50  0d 06 c2 0c 2e 6e 6f 74  6b 65 79 73 0d 06 cc 10  |.....notkeys....|
00000d60  20 20 20 4d 4f 56 20 52  30 2c 23 30 0d 06 d6 1c  |   MOV R0,#0....|
00000d70  20 20 20 53 54 52 20 52  30 2c 6f 6e 65 70 72 65  |   STR R0,onepre|
00000d80  73 73 65 64 6c 61 73 74  0d 06 e0 0f 2e 63 61 6c  |ssedlast.....cal|
00000d90  6c 65 64 65 78 69 74 0d  06 ea 1d 20 20 20 4c 44  |ledexit....   LD|
00000da0  4d 46 44 20 52 31 33 21  2c 7b 52 30 2d 52 31 32  |MFD R13!,{R0-R12|
00000db0  2c 50 43 7d 0d 06 f4 0e  2e 6f 6e 6f 66 66 66 6c  |,PC}.....onofffl|
00000dc0  61 67 0d 06 fe 0c 20 20  20 44 43 44 20 30 0d 07  |ag....   DCD 0..|
00000dd0  08 13 2e 6f 6e 65 70 72  65 73 73 65 64 6c 61 73  |...onepressedlas|
00000de0  74 0d 07 12 0c 20 20 20  44 43 44 20 30 0d 07 1c  |t....   DCD 0...|
00000df0  25 2e 64 61 74 61 6c 65  6e 67 74 68 20 44 43 44  |%.datalength DCD|
00000e00  20 64 61 74 61 65 6e 64  2d 64 61 74 61 73 74 61  | dataend-datasta|
00000e10  72 74 0d 07 26 0e 2e 64  61 74 61 73 74 61 72 74  |rt..&..datastart|
00000e20  0d 07 30 10 20 20 20 a4  6d 61 6b 65 64 61 74 61  |..0.   .makedata|
00000e30  0d 07 3a 0c 2e 64 61 74  61 65 6e 64 0d 07 44 0c  |..:..dataend..D.|
00000e40  5d 3a ed 20 70 61 73 73  0d 07 4e 05 e1 0d 07 58  |]:. pass..N....X|
00000e50  05 3a 0d 07 62 0e dd a4  73 28 54 65 78 74 24 29  |.:..b...s(Text$)|
00000e60  0d 07 6c 0d 5b 4f 50 54  20 70 61 73 73 0d 07 76  |..l.[OPT pass..v|
00000e70  0e 45 51 55 53 20 54 65  78 74 24 0d 07 80 09 44  |.EQUS Text$....D|
00000e80  43 42 20 30 0d 07 8a 09  41 4c 49 47 4e 0d 07 94  |CB 0....ALIGN...|
00000e90  08 5d 3a 3d 30 0d 07 9e  05 3a 0d 07 a8 0c dd a4  |.]:=0....:......|
00000ea0  75 73 65 73 77 69 0d 07  b2 0d 5b 4f 50 54 20 70  |useswi....[OPT p|
00000eb0  61 73 73 0d 07 bc 0d 4d  4f 56 20 52 39 2c 50 43  |ass....MOV R9,PC|
00000ec0  0d 07 c6 0f 84 52 20 52  38 2c 52 39 2c 23 33 0d  |.....R R8,R9,#3.|
00000ed0  07 d0 0e 54 45 51 50 20  52 38 2c 23 30 0d 07 da  |...TEQP R8,#0...|
00000ee0  0f 4d 4f 56 4e 56 20 52  30 2c 52 30 0d 07 e4 14  |.MOVNV R0,R0....|
00000ef0  53 54 4d 46 44 20 52 31  33 21 2c 7b 52 31 34 7d  |STMFD R13!,{R14}|
00000f00  0d 07 ee 08 5d 3a 3d 30  0d 07 f8 05 3a 0d 08 02  |....]:=0....:...|
00000f10  0c dd a4 6f 75 74 73 77  69 0d 08 0c 0d 5b 4f 50  |...outswi....[OP|
00000f20  54 20 70 61 73 73 0d 08  16 14 4c 44 4d 46 44 20  |T pass....LDMFD |
00000f30  52 31 33 21 2c 7b 52 31  34 7d 0d 08 20 0e 54 45  |R13!,{R14}.. .TE|
00000f40  51 50 20 52 39 2c 23 30  0d 08 2a 0f 4d 4f 56 4e  |QP R9,#0..*.MOVN|
00000f50  56 20 52 30 2c 52 30 0d  08 34 08 5d 3a 3d 30 0d  |V R0,R0..4.]:=0.|
00000f60  08 3e 05 3a 0d 08 48 0e  dd a4 6d 61 6b 65 64 61  |.>.:..H...makeda|
00000f70  74 61 0d 08 52 05 f7 0d  08 5c 0e f3 20 6e 25 2c  |ta..R....\.. n%,|
00000f80  74 65 78 74 24 0d 08 66  0c c8 95 20 6e 25 3c 3e  |text$..f... n%<>|
00000f90  30 0d 08 70 11 71 25 3d  a9 28 74 65 78 74 24 29  |0..p.q%=.(text$)|
00000fa0  2b 31 0d 08 7a 1f e7 20  71 25 20 83 20 34 3e 30  |+1..z.. q% . 4>0|
00000fb0  20 71 25 3d 71 25 2b 28  34 2d 71 25 20 83 20 34  | q%=q%+(4-q% . 4|
00000fc0  29 0d 08 84 0d 5b 4f 50  54 20 70 61 73 73 0d 08  |)....[OPT pass..|
00000fd0  8e 0a 44 43 44 20 6e 25  0d 08 98 0c 44 43 44 20  |..DCD n%....DCD |
00000fe0  71 25 2b 38 0d 08 a2 0d  a4 73 28 74 65 78 74 24  |q%+8.....s(text$|
00000ff0  29 0d 08 ac 05 5d 0d 08  b6 0e f3 20 6e 25 2c 74  |)....]..... n%,t|
00001000  65 78 74 24 0d 08 c0 05  ce 0d 08 ca 06 3d 30 0d  |ext$.........=0.|
00001010  08 d4 05 3a 0d 08 de 0a  dd f2 73 61 76 65 0d 08  |...:......save..|
00001020  e8 29 c8 99 20 22 4f 53  5f 46 69 6c 65 22 2c 31  |.).. "OS_File",1|
00001030  30 2c 22 4b 65 79 4d 6f  64 22 2c 26 46 46 41 2c  |0,"KeyMod",&FFA,|
00001040  2c 4d 43 25 2c 4f 25 0d  08 f2 22 f1 27 22 4d 6f  |,MC%,O%...".'"Mo|
00001050  64 75 6c 65 20 53 61 76  65 64 20 61 73 20 22 22  |dule Saved as ""|
00001060  4b 65 79 4d 6f 64 22 22  22 0d 08 fc 05 e1 0d 09  |KeyMod""".......|
00001070  06 05 3a 0d 09 10 42 dc  20 2d 31 37 2c 4c 4f 43  |..:...B. -17,LOC|
00001080  41 4c 2c 2d 33 34 2c 52  45 53 54 4f 52 45 2c 2d  |AL,-34,RESTORE,-|
00001090  33 35 2c 45 4c 53 45 2c  2d 35 32 2c 52 55 4e 7c  |35,ELSE,-52,RUN||
000010a0  4d 2c 2d 33 36 2c 54 48  45 4e 2c 2d 36 39 2c 52  |M,-36,THEN,-69,R|
000010b0  45 50 45 41 54 0d 09 1a  3e dc 20 2d 35 34 2c 55  |EPEAT...>. -54,U|
000010c0  4e 54 49 4c 2c 2d 33 38  2c 49 4e 50 55 54 2c 2d  |NTIL,-38,INPUT,-|
000010d0  35 35 2c 4f 4c 44 7c 4d  2c 2d 35 36 2c 50 4c 4f  |55,OLD|M,-56,PLO|
000010e0  54 2c 2d 36 36 2c 41 55  54 4f 2c 2d 38 32 2c 53  |T,-66,AUTO,-82,S|
000010f0  54 45 50 0d 09 24 42 dc  20 2d 35 31 2c 44 52 41  |TEP..$B. -51,DRA|
00001100  57 2c 2d 36 38 2c 46 4f  52 2c 2d 38 34 2c 47 4f  |W,-68,FOR,-84,GO|
00001110  54 4f 2c 2d 38 35 2c 44  45 47 2c 2d 37 30 2c 52  |TO,-85,DEG,-70,R|
00001120  41 44 2c 2d 37 31 2c 43  48 41 49 4e 2c 2d 38 37  |AD,-71,CHAIN,-87|
00001130  2c 4c 49 53 54 0d 09 2e  41 dc 20 2d 39 38 2c 45  |,LIST...A. -98,E|
00001140  4e 44 2c 2d 36 37 2c 50  52 4f 43 2c 2d 38 33 2c  |ND,-67,PROC,-83,|
00001150  43 4f 4c 4f 55 52 2c 2d  31 30 30 2c 56 44 55 2c  |COLOUR,-100,VDU,|
00001160  2d 31 30 31 2c 52 45 4e  55 4d 42 45 52 2c 2d 38  |-101,RENUMBER,-8|
00001170  36 2c 4e 45 58 54 0d 09  38 2e dc 20 2d 31 30 32  |6,NEXT..8.. -102|
00001180  2c 4d 4f 44 45 2c 2d 31  30 33 2c 4c 4f 41 44 2c  |,MODE,-103,LOAD,|
00001190  2d 31 30 34 2c 53 41 56  45 2c 2d 31 30 35 2c 50  |-104,SAVE,-105,P|
000011a0  52 49 4e 54 0d 09 42 09  dc 20 30 2c 30 0d ff     |RINT..B.. 0,0..|
000011af