Home » Archimedes archive » Micro User » MU 1990-05.adf » KeySRC
KeySRC
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 1990-05.adf |
Filename: | KeySRC |
Read OK: | ✔ |
File size: | 197C bytes |
Load address: | FFFFFB41 |
Exec address: | FEFA939A |
File contents
10 REM>$.KeySRC 20 REM The Hot Key system. 30 REM by Gareth S. Long. 40 REM Version 1.00 (27 Oct 1989) 50 REM 60 CLS:PROCinit:PROCassm:PROCsave:END 70 DEFPROCinit 80 Module$="$.Modules.HotKey" 90 Version$="1.00" 100 Date$="(27 Oct 1989)" 110 buff%=&4000 120 DIM code% buff% 130 FORI%=code% TO (code%+buff%) STEP 4:!I%=0:NEXT 140 keystatus=0 150 inuse=4 160 key=8 170 ENDPROC 180 DEFPROCassm 190 FORI%=4TO6STEP2 200 P%=0:O%=code% 210 [ 220 OPT I% 230 EQUD 0 240 EQUD initialise 250 EQUD finalise 260 EQUD service 270 EQUD titlemess 280 EQUD helpmess 290 EQUD commandtable 300 .titlemess 310 EQUS "HotKey"+CHR$0 320 ALIGN 330 .helpmess 340 EQUS "Hot Keys"+CHR$9+Version$+" "+Date$+CHR$0 350 ALIGN 360 .initialise 370 STMFD r13!,{r0-r6,r14} 380 LDR r0,[r12] 390 CMP r0,#&00 400 LDRNE r12,[r12] 410 BNE restart 420 MOV r0,#&06 430 MOV r1,#&20 440 MOV r3,#&100 450 ADD r3,r3,#&0C 460 SWI "XOS_Module" 470 LDMVSFD r13!,{r0-r6,r14} 480 ADRVS r0,initerror 490 ORRVSS pc,r14,#&10000000 500 STR r2,[r12] 510 LDR r12,[r12] 520 MOV r0,#&00 ; Change to &FF to start active 530 STR r0,[r12,#keystatus] 540 STR r0,[r12,#inuse] 550 MOV r0,#&80 ; Default 'print' key 560 STR r0,[r12,#key] 570 ADR r0,default 580 SWI "XOS_CLI" 590 ADR r0,grabscreen 600 SWI "XOS_CLI" 610 ADR r0,grabscreen2 620 SWI "XOS_CLI" 630 LDMFD r13!,{r0-r6,pc} 640 .restart 650 LDR r0,[r12,#keystatus] 660 CMP r0,#&00 670 MOVNE r0,#&14 680 ADRNE r1,keypress 690 MOVNE r2,r12 700 SWINE "OS_Claim" 710 LDMFD r13!,{r0-r6,pc} 720 .finalise 730 STMFD r13!,{r0-r6,r14} 740 LDR r12,[r12] 750 LDR r0,[r12,#keystatus] 760 CMP r0,#&00 770 MOVNE r0,#&14 780 ADRNE r1,keypress 790 MOVNE r2,r12 800 SWINE "OS_Release" 810 LDMFD r13!,{r0-r6,pc} 820 .service 830 STMFD r13!,{r0-r6,r14} 840 LDR r12,[r12] 850 CMP r1,#&27 860 BEQ restart 870 LDMFD r13!,{r0-r6,pc} 880 .keypress 890 STMFD r13!,{r0-r6,r14} 900 CMP r1,#&00 910 LDMNEFD r13!,{r0-r6,pc} 920 LDR r1,[r12,#inuse] 930 CMP r1,#&00 940 LDMNEFD r13!,{r0-r6,pc} 950 LDR r1,[r12,#key] 960 CMP r0,r1 970 LDMNEFD r13!,{r0-r6,pc} 980 MOV r0,#&FF 990 STR r0,[r12,#inuse] 1000 ADR r0,code 1010 ADD r1,r12,#&0C 1020 SWI "XOS_AddCallBack" 1030 LDMFD r13!,{r0-r6,r12} 1040 LDMFD r13!,{pc} 1050 .code 1060 STMFD r13!,{r0-r12,r14} 1070 ADR r0,hotkey ; Place your alternative code 1080 SWI "XOS_CLI" ; instead of these two lines 1090 MOV r0,#&00 1100 SUB r12,r12,#&0C 1110 STR r0,[r12,#inuse] 1120 LDMFD r13!,{r0-r12,pc} 1130 .keydecode 1140 STMFD r13!,{r14} 1150 LDR r12,[r12] 1160 CMP r1,#&00 1170 BEQ keys 1180 BL checkon 1190 BVS keyerror 1200 MOV r5,r0 1210 MOV r6,r1 1220 LDR r4,[r12,#keystatus] 1230 STR r3,[r12,#keystatus] 1240 CMP r3,#&00 1250 CMPEQ r3,r4 1260 LDMEQFD r13!,{pc} 1270 CMP r3,#&00 1280 STREQ r3,[r12,#keystatus] 1290 MOVEQ r0,#&14 1300 ADREQ r1,keypress 1310 MOVEQ r2,r12 1320 SWIEQ "OS_Release" 1330 LDMEQFD r13!,{pc} 1340 CMP r3,r4 1350 STRNE r3,[r12,#keystatus] 1360 MOVNE r0,#&14 1370 ADRNE r1,keypress 1380 MOVNE r2,r12 1390 SWINE "OS_Claim" 1400 CMP r6,#&01 1410 LDMEQFD r13!,{pc} 1420 CMP r6,#&02 1430 BNE keyerror 1440 MOV r1,r5 1450 ADD r1,r1,#&01 1460 MOV r0,#&C000000A 1470 SWI "OS_ReadUnsigned" 1480 STR r2,[r12,#key] 1490 LDMFD r13!,{pc} 1500 .keyerror 1510 ADR r0,keyerrorm 1520 LDMFD r13!,{r14} 1530 ORRS pc,r14,#&10000000 1540 .keys 1550 ADR r0,keysm 1560 SWI "OS_Write0" 1570 LDR r0,[r12,#keystatus] 1580 CMP r0,#&00 1590 ADREQ r0,off 1600 ADRNE r0,on 1610 SWI "OS_Write0" 1620 LDMFD r13!,{pc} 1630 .checkon 1640 LDRB r2,[r0],#&01 1650 AND r2,r2,#&DF 1660 CMP r2,#ASC"O" 1670 ORRNES pc,r14,#&10000000 1680 LDRB r2,[r0],#&01 1690 AND r2,r2,#&DF 1700 CMP r2,#ASC"N" 1710 MOVEQ r3,#&01 1720 MOVEQ pc,r14 1730 CMP r2,#ASC"F" 1740 ADDEQ r0,r0,#&01 1750 MOVEQ r3,#&00 1760 MOVEQ pc,r14 1770 ORRS pc,r14,#&10000000 1780 .default 1790 EQUS "Set Alias$PressKey GrabScreen|M"+CHR$13 1800 ; Change the last line to execute a different '*' command 1810 ALIGN 1820 .grabscreen 1830 EQUS "Set Alias$GrabScreen SetEval GrabScreen%Number GrabScreen%Number+1|MScreenSave :0.$.Screen|<GrabScreen%Number>"+CHR$13 1840 ALIGN 1850 .grabscreen2 1860 EQUS "SetEval GrabScreen%Number 0"+CHR$13 1870 ALIGN 1880 .initerror 1890 EQUD &27200 1900 EQUS "HotKey system unable to claim required workspace"+CHR$0 1910 ALIGN 1920 .commandtable 1930 EQUS "Key"+CHR$0 1940 ALIGN 1950 EQUD 0 1960 EQUD 0 1970 EQUD 0 1980 EQUD help 1990 EQUS "HotKey"+CHR$0 2000 ALIGN 2010 EQUD keydecode 2020 EQUD &00020000 2030 EQUD keysyntax 2040 EQUD keyhelp 2050 EQUD 0 2060 .keyerrorm 2070 EQUD &27201 2080 .keysyntax 2090 EQUS "Syntax: *HotKey [<ON|OFF> [<key>]]"+CHR$0 2100 ALIGN 2110 .keysm 2120 EQUS "The Hot Key system is currently "+CHR$0 2130 ALIGN 2140 .on 2150 EQUS "on."+CHR$10+CHR$13+CHR$0 2160 ALIGN 2170 .off 2180 EQUS "off."+CHR$10+CHR$13+CHR$0 2190 ALIGN 2200 .hotkey 2210 EQUS "PressKey"+CHR$13 2220 .help 2230 EQUS "The Hot Key system activates the user-defined command 'PressKey' upon the depression of a configurable key."+CHR$10+CHR$13 2240 EQUS "The system may be switched on or off using a star command and optionally, the hot key may be changed to suit the application."+CHR$0 2250 ALIGN 2260 .keyhelp 2270 EQUS "*HotKey switches the Hot Key system on or off."+CHR$10+CHR$13 2280 EQUS "*HotKey can take an ASCII keycode to allow a key to be programmed from the default to activate the utility. The default is the 'print' key."+CHR$10+CHR$13 2290 EQUS "*HotKey without a parameter reflects the current state."+CHR$10+CHR$13 2300 EQUS "Syntax: *HotKey [<ON|OFF> [<key>]]"+CHR$0 2310 ALIGN 2320 EQUS "HotKey by Gareth S. Long."+CHR$13 2330 ALIGN 2340 ] 2350 NEXT 2360 ENDPROC 2370 DEFPROCsave 2380 OSCLI"Save "+Module$+" "+STR$~code%+" "+STR$~(code%+P%) 2390 OSCLI"SetType "+Module$+" Module" 2400 OSCLI"Key 1 *RMLoad "+Module$+"|M" 2410 ENDPROC
�>$.KeySRC � The Hot Key system. � by Gareth S. Long. (! � Version 1.00 (27 Oct 1989) 2 � < �:�init:�assm:�save:� F ��init P Module$="$.Modules.HotKey" Z Version$="1.00" d Date$="(27 Oct 1989)" n buff%=&4000 x � code% buff% �* �I%=code% � (code%+buff%) � 4:!I%=0:� � keystatus=0 � inuse=4 � key=8 � � � ��assm � �I%=4�6�2 � P%=0:O%=code% � [ � OPT I% � EQUD 0 � EQUD initialise � EQUD finalise EQUD service EQUD titlemess EQUD helpmess " EQUD commandtable , .titlemess 6 EQUS "HotKey"+�0 @ ALIGN J .helpmess T3 EQUS "Hot Keys"+�9+Version$+" "+Date$+�0 ^ ALIGN h .initialise r STMFD r13!,{r0-r6,r14} | LDR r0,[r12] � CMP r0,#&00 � LDRNE r12,[r12] � BNE restart � MOV r0,#&06 � MOV r1,#&20 � MOV r3,#&100 � ADD r3,r3,#&0C � SWI "XOS_Module" � LDMVSFD r13!,{r0-r6,r14} � ADRVS r0,initerror � �RVSS pc,r14,#&10000000 � STR r2,[r12] � LDR r12,[r12] F MOV r0,#&00 ; Change to &FF to start active # STR r0,[r12,#keystatus] STR r0,[r12,#inuse] &< MOV r0,#&80 ; Default 'print' key 0 STR r0,[r12,#key] : ADR r0,default D SWI "XOS_CLI" N ADR r0,grabscreen X SWI "XOS_CLI" b ADR r0,grabscreen2 l SWI "XOS_CLI" v LDMFD r13!,{r0-r6,pc} � .restart �# LDR r0,[r12,#keystatus] � CMP r0,#&00 � MOVNE r0,#&14 � ADRNE r1,keypress � MOVNE r2,r12 � SWINE "OS_Claim" � LDMFD r13!,{r0-r6,pc} � .finalise � STMFD r13!,{r0-r6,r14} � LDR r12,[r12] �# LDR r0,[r12,#keystatus] � CMP r0,#&00 MOVNE r0,#&14 ADRNE r1,keypress MOVNE r2,r12 SWINE "OS_Release" * LDMFD r13!,{r0-r6,pc} 4 .service > STMFD r13!,{r0-r6,r14} H LDR r12,[r12] R CMP r1,#&27 \ BEQ restart f LDMFD r13!,{r0-r6,pc} p .keypress z STMFD r13!,{r0-r6,r14} � CMP r1,#&00 � LDMNEFD r13!,{r0-r6,pc} � LDR r1,[r12,#inuse] � CMP r1,#&00 � LDMNEFD r13!,{r0-r6,pc} � LDR r1,[r12,#key] � CMP r0,r1 � LDMNEFD r13!,{r0-r6,pc} � MOV r0,#&FF � STR r0,[r12,#inuse] � ADR r0,code � ADD r1,r12,#&0C �! SWI "XOS_AddCallBack" LDMFD r13!,{r0-r6,r12} LDMFD r13!,{pc} .code $! STMFD r13!,{r0-r12,r14} .D ADR r0,hotkey ; Place your alternative code 8C SWI "XOS_CLI" ; instead of these two lines B MOV r0,#&00 L SUB r12,r12,#&0C V STR r0,[r12,#inuse] ` LDMFD r13!,{r0-r12,pc} j .keydecode t STMFD r13!,{r14} ~ LDR r12,[r12] � CMP r1,#&00 � BEQ keys � BL checkon � BVS keyerror � MOV r5,r0 � MOV r6,r1 �# LDR r4,[r12,#keystatus] �# STR r3,[r12,#keystatus] � CMP r3,#&00 � CMPEQ r3,r4 � LDMEQFD r13!,{pc} � CMP r3,#&00 # STREQ r3,[r12,#keystatus] �Q r0,#&14 ADREQ r1,keypress �Q r2,r12 ( SWIEQ "OS_Release" 2 LDMEQFD r13!,{pc} < CMP r3,r4 F# STRNE r3,[r12,#keystatus] P MOVNE r0,#&14 Z ADRNE r1,keypress d MOVNE r2,r12 n SWINE "OS_Claim" x CMP r6,#&01 � LDMEQFD r13!,{pc} � CMP r6,#&02 � BNE keyerror � MOV r1,r5 � ADD r1,r1,#&01 � MOV r0,#&C000000A �! SWI "OS_ReadUnsigned" � STR r2,[r12,#key] � LDMFD r13!,{pc} � .keyerror � ADR r0,keyerrorm � LDMFD r13!,{r14} � �RS pc,r14,#&10000000 .keys ADR r0,keysm SWI "OS_Write0" "# LDR r0,[r12,#keystatus] , CMP r0,#&00 6 ADREQ r0,off @ ADRNE r0,on J SWI "OS_Write0" T LDMFD r13!,{pc} ^ .checkon h LDRB r2,[r0],#&01 r � r2,r2,#&DF | CMP r2,#�"O" � �RNES pc,r14,#&10000000 � LDRB r2,[r0],#&01 � � r2,r2,#&DF � CMP r2,#�"N" � �Q r3,#&01 � �Q pc,r14 � CMP r2,#�"F" � ADDEQ r0,r0,#&01 � �Q r3,#&00 � �Q pc,r14 � �RS pc,r14,#&10000000 � .default �5 EQUS "Set Alias$PressKey GrabScreen|M"+�13 > ; Change the last line to execute a different '*' command ALIGN .grabscreen &� EQUS "Set Alias$GrabScreen SetEval GrabScreen%Number GrabScreen%Number+1|MScreenSave :0.$.Screen|<GrabScreen%Number>"+�13 0 ALIGN : .grabscreen2 D1 EQUS "SetEval GrabScreen%Number 0"+�13 N ALIGN X .initerror b EQUD &27200 lE EQUS "HotKey system unable to claim required workspace"+�0 v ALIGN � .commandtable � EQUS "Key"+�0 � ALIGN � EQUD 0 � EQUD 0 � EQUD 0 � EQUD help � EQUS "HotKey"+�0 � ALIGN � EQUD keydecode � EQUD &00020000 � EQUD keysyntax � EQUD keyhelp EQUD 0 .keyerrorm EQUD &27201 .keysyntax *7 EQUS "Syntax: *HotKey [<ON|OFF> [<key>]]"+�0 4 ALIGN > .keysm H5 EQUS "The Hot Key system is currently "+�0 R ALIGN \ .on f EQUS "on."+�10+�13+�0 p ALIGN z .off �! EQUS "off."+�10+�13+�0 � ALIGN � .hotkey � EQUS "PressKey"+�13 � .help �� EQUS "The Hot Key system activates the user-defined command 'PressKey' upon the depression of a configurable key."+�10+�13 �� EQUS "The system may be switched on or off using a star command and optionally, the hot key may be changed to suit the application."+�0 � ALIGN � .keyhelp �H EQUS "*HotKey switches the Hot Key system on or off."+�10+�13 � EQUS "*HotKey can take an ASCII keycode to allow a key to be programmed from the default to activate the utility. The default is the 'print' key."+�10+�13 �Q EQUS "*HotKey without a parameter reflects the current state."+�10+�13 �7 EQUS "Syntax: *HotKey [<ON|OFF> [<key>]]"+�0 ALIGN / EQUS "HotKey by Gareth S. Long."+�13 ALIGN $ ] . � 8 � B ��save L2 �"Save "+Module$+" "+�~code%+" "+�~(code%+P%) V" �"SetType "+Module$+" Module" `# �"Key 1 *RMLoad "+Module$+"|M" j � �
00000000 0d 00 0a 0f 20 f4 3e 24 2e 4b 65 79 53 52 43 0d |.... .>$.KeySRC.| 00000010 00 14 1a 20 f4 20 54 68 65 20 48 6f 74 20 4b 65 |... . The Hot Ke| 00000020 79 20 73 79 73 74 65 6d 2e 0d 00 1e 19 20 f4 20 |y system..... . | 00000030 62 79 20 47 61 72 65 74 68 20 53 2e 20 4c 6f 6e |by Gareth S. Lon| 00000040 67 2e 0d 00 28 21 20 f4 20 56 65 72 73 69 6f 6e |g...(! . Version| 00000050 20 31 2e 30 30 20 28 32 37 20 4f 63 74 20 31 39 | 1.00 (27 Oct 19| 00000060 38 39 29 0d 00 32 06 20 f4 0d 00 3c 1a 20 db 3a |89)..2. ...<. .:| 00000070 f2 69 6e 69 74 3a f2 61 73 73 6d 3a f2 73 61 76 |.init:.assm:.sav| 00000080 65 3a e0 0d 00 46 0b 20 dd f2 69 6e 69 74 0d 00 |e:...F. ..init..| 00000090 50 1f 20 4d 6f 64 75 6c 65 24 3d 22 24 2e 4d 6f |P. Module$="$.Mo| 000000a0 64 75 6c 65 73 2e 48 6f 74 4b 65 79 22 0d 00 5a |dules.HotKey"..Z| 000000b0 14 20 56 65 72 73 69 6f 6e 24 3d 22 31 2e 30 30 |. Version$="1.00| 000000c0 22 0d 00 64 1a 20 44 61 74 65 24 3d 22 28 32 37 |"..d. Date$="(27| 000000d0 20 4f 63 74 20 31 39 38 39 29 22 0d 00 6e 10 20 | Oct 1989)"..n. | 000000e0 62 75 66 66 25 3d 26 34 30 30 30 0d 00 78 12 20 |buff%=&4000..x. | 000000f0 de 20 63 6f 64 65 25 20 62 75 66 66 25 0d 00 82 |. code% buff%...| 00000100 2a 20 e3 49 25 3d 63 6f 64 65 25 20 b8 20 28 63 |* .I%=code% . (c| 00000110 6f 64 65 25 2b 62 75 66 66 25 29 20 88 20 34 3a |ode%+buff%) . 4:| 00000120 21 49 25 3d 30 3a ed 0d 00 8c 10 20 6b 65 79 73 |!I%=0:..... keys| 00000130 74 61 74 75 73 3d 30 0d 00 96 0c 20 69 6e 75 73 |tatus=0.... inus| 00000140 65 3d 34 0d 00 a0 0a 20 6b 65 79 3d 38 0d 00 aa |e=4.... key=8...| 00000150 06 20 e1 0d 00 b4 0b 20 dd f2 61 73 73 6d 0d 00 |. ..... ..assm..| 00000160 be 0e 20 e3 49 25 3d 34 b8 36 88 32 0d 00 c8 12 |.. .I%=4.6.2....| 00000170 20 50 25 3d 30 3a 4f 25 3d 63 6f 64 65 25 0d 00 | P%=0:O%=code%..| 00000180 d2 06 20 5b 0d 00 dc 0e 20 20 20 20 4f 50 54 20 |.. [.... OPT | 00000190 49 25 0d 00 e6 11 20 20 20 20 45 51 55 44 20 20 |I%.... EQUD | 000001a0 20 20 30 0d 00 f0 1a 20 20 20 20 45 51 55 44 20 | 0.... EQUD | 000001b0 20 20 20 69 6e 69 74 69 61 6c 69 73 65 0d 00 fa | initialise...| 000001c0 18 20 20 20 20 45 51 55 44 20 20 20 20 66 69 6e |. EQUD fin| 000001d0 61 6c 69 73 65 0d 01 04 17 20 20 20 20 45 51 55 |alise.... EQU| 000001e0 44 20 20 20 20 73 65 72 76 69 63 65 0d 01 0e 19 |D service....| 000001f0 20 20 20 20 45 51 55 44 20 20 20 20 74 69 74 6c | EQUD titl| 00000200 65 6d 65 73 73 0d 01 18 18 20 20 20 20 45 51 55 |emess.... EQU| 00000210 44 20 20 20 20 68 65 6c 70 6d 65 73 73 0d 01 22 |D helpmess.."| 00000220 1c 20 20 20 20 45 51 55 44 20 20 20 20 63 6f 6d |. EQUD com| 00000230 6d 61 6e 64 74 61 62 6c 65 0d 01 2c 0f 20 2e 74 |mandtable..,. .t| 00000240 69 74 6c 65 6d 65 73 73 0d 01 36 1b 20 20 20 20 |itlemess..6. | 00000250 45 51 55 53 20 20 20 20 22 48 6f 74 4b 65 79 22 |EQUS "HotKey"| 00000260 2b bd 30 0d 01 40 0d 20 20 20 20 41 4c 49 47 4e |+.0..@. ALIGN| 00000270 0d 01 4a 0e 20 2e 68 65 6c 70 6d 65 73 73 0d 01 |..J. .helpmess..| 00000280 54 33 20 20 20 20 45 51 55 53 20 20 20 20 22 48 |T3 EQUS "H| 00000290 6f 74 20 4b 65 79 73 22 2b bd 39 2b 56 65 72 73 |ot Keys"+.9+Vers| 000002a0 69 6f 6e 24 2b 22 20 22 2b 44 61 74 65 24 2b bd |ion$+" "+Date$+.| 000002b0 30 0d 01 5e 0d 20 20 20 20 41 4c 49 47 4e 0d 01 |0..^. ALIGN..| 000002c0 68 10 20 2e 69 6e 69 74 69 61 6c 69 73 65 0d 01 |h. .initialise..| 000002d0 72 20 20 20 20 20 53 54 4d 46 44 20 20 20 72 31 |r STMFD r1| 000002e0 33 21 2c 7b 72 30 2d 72 36 2c 72 31 34 7d 0d 01 |3!,{r0-r6,r14}..| 000002f0 7c 18 20 20 20 20 4c 44 52 20 20 20 20 20 72 30 ||. LDR r0| 00000300 2c 5b 72 31 32 5d 0d 01 86 17 20 20 20 20 43 4d |,[r12].... CM| 00000310 50 20 20 20 20 20 72 30 2c 23 26 30 30 0d 01 90 |P r0,#&00...| 00000320 19 20 20 20 20 4c 44 52 4e 45 20 20 20 72 31 32 |. LDRNE r12| 00000330 2c 5b 72 31 32 5d 0d 01 9a 17 20 20 20 20 42 4e |,[r12].... BN| 00000340 45 20 20 20 20 20 72 65 73 74 61 72 74 0d 01 a4 |E restart...| 00000350 17 20 20 20 20 4d 4f 56 20 20 20 20 20 72 30 2c |. MOV r0,| 00000360 23 26 30 36 0d 01 ae 17 20 20 20 20 4d 4f 56 20 |#&06.... MOV | 00000370 20 20 20 20 72 31 2c 23 26 32 30 0d 01 b8 18 20 | r1,#&20.... | 00000380 20 20 20 4d 4f 56 20 20 20 20 20 72 33 2c 23 26 | MOV r3,#&| 00000390 31 30 30 0d 01 c2 1a 20 20 20 20 41 44 44 20 20 |100.... ADD | 000003a0 20 20 20 72 33 2c 72 33 2c 23 26 30 43 0d 01 cc | r3,r3,#&0C...| 000003b0 1c 20 20 20 20 53 57 49 20 20 20 20 20 22 58 4f |. SWI "XO| 000003c0 53 5f 4d 6f 64 75 6c 65 22 0d 01 d6 20 20 20 20 |S_Module"... | 000003d0 20 4c 44 4d 56 53 46 44 20 72 31 33 21 2c 7b 72 | LDMVSFD r13!,{r| 000003e0 30 2d 72 36 2c 72 31 34 7d 0d 01 e0 1c 20 20 20 |0-r6,r14}.... | 000003f0 20 41 44 52 56 53 20 20 20 72 30 2c 69 6e 69 74 | ADRVS r0,init| 00000400 65 72 72 6f 72 0d 01 ea 20 20 20 20 20 84 52 56 |error... .RV| 00000410 53 53 20 20 70 63 2c 72 31 34 2c 23 26 31 30 30 |SS pc,r14,#&100| 00000420 30 30 30 30 30 0d 01 f4 18 20 20 20 20 53 54 52 |00000.... STR| 00000430 20 20 20 20 20 72 32 2c 5b 72 31 32 5d 0d 01 fe | r2,[r12]...| 00000440 19 20 20 20 20 4c 44 52 20 20 20 20 20 72 31 32 |. LDR r12| 00000450 2c 5b 72 31 32 5d 0d 02 08 46 20 20 20 20 4d 4f |,[r12]...F MO| 00000460 56 20 20 20 20 20 72 30 2c 23 26 30 30 20 20 20 |V r0,#&00 | 00000470 20 20 20 20 20 20 20 20 20 20 20 20 20 3b 20 43 | ; C| 00000480 68 61 6e 67 65 20 74 6f 20 26 46 46 20 74 6f 20 |hange to &FF to | 00000490 73 74 61 72 74 20 61 63 74 69 76 65 0d 02 12 23 |start active...#| 000004a0 20 20 20 20 53 54 52 20 20 20 20 20 72 30 2c 5b | STR r0,[| 000004b0 72 31 32 2c 23 6b 65 79 73 74 61 74 75 73 5d 0d |r12,#keystatus].| 000004c0 02 1c 1f 20 20 20 20 53 54 52 20 20 20 20 20 72 |... STR r| 000004d0 30 2c 5b 72 31 32 2c 23 69 6e 75 73 65 5d 0d 02 |0,[r12,#inuse]..| 000004e0 26 3c 20 20 20 20 4d 4f 56 20 20 20 20 20 72 30 |&< MOV r0| 000004f0 2c 23 26 38 30 20 20 20 20 20 20 20 20 20 20 20 |,#&80 | 00000500 20 20 20 20 20 3b 20 44 65 66 61 75 6c 74 20 27 | ; Default '| 00000510 70 72 69 6e 74 27 20 6b 65 79 0d 02 30 1d 20 20 |print' key..0. | 00000520 20 20 53 54 52 20 20 20 20 20 72 30 2c 5b 72 31 | STR r0,[r1| 00000530 32 2c 23 6b 65 79 5d 0d 02 3a 1a 20 20 20 20 41 |2,#key]..:. A| 00000540 44 52 20 20 20 20 20 72 30 2c 64 65 66 61 75 6c |DR r0,defaul| 00000550 74 0d 02 44 19 20 20 20 20 53 57 49 20 20 20 20 |t..D. SWI | 00000560 20 22 58 4f 53 5f 43 4c 49 22 0d 02 4e 1d 20 20 | "XOS_CLI"..N. | 00000570 20 20 41 44 52 20 20 20 20 20 72 30 2c 67 72 61 | ADR r0,gra| 00000580 62 73 63 72 65 65 6e 0d 02 58 19 20 20 20 20 53 |bscreen..X. S| 00000590 57 49 20 20 20 20 20 22 58 4f 53 5f 43 4c 49 22 |WI "XOS_CLI"| 000005a0 0d 02 62 1e 20 20 20 20 41 44 52 20 20 20 20 20 |..b. ADR | 000005b0 72 30 2c 67 72 61 62 73 63 72 65 65 6e 32 0d 02 |r0,grabscreen2..| 000005c0 6c 19 20 20 20 20 53 57 49 20 20 20 20 20 22 58 |l. SWI "X| 000005d0 4f 53 5f 43 4c 49 22 0d 02 76 1f 20 20 20 20 4c |OS_CLI"..v. L| 000005e0 44 4d 46 44 20 20 20 72 31 33 21 2c 7b 72 30 2d |DMFD r13!,{r0-| 000005f0 72 36 2c 70 63 7d 0d 02 80 0d 20 2e 72 65 73 74 |r6,pc}.... .rest| 00000600 61 72 74 0d 02 8a 23 20 20 20 20 4c 44 52 20 20 |art...# LDR | 00000610 20 20 20 72 30 2c 5b 72 31 32 2c 23 6b 65 79 73 | r0,[r12,#keys| 00000620 74 61 74 75 73 5d 0d 02 94 17 20 20 20 20 43 4d |tatus].... CM| 00000630 50 20 20 20 20 20 72 30 2c 23 26 30 30 0d 02 9e |P r0,#&00...| 00000640 17 20 20 20 20 4d 4f 56 4e 45 20 20 20 72 30 2c |. MOVNE r0,| 00000650 23 26 31 34 0d 02 a8 1b 20 20 20 20 41 44 52 4e |#&14.... ADRN| 00000660 45 20 20 20 72 31 2c 6b 65 79 70 72 65 73 73 0d |E r1,keypress.| 00000670 02 b2 16 20 20 20 20 4d 4f 56 4e 45 20 20 20 72 |... MOVNE r| 00000680 32 2c 72 31 32 0d 02 bc 1a 20 20 20 20 53 57 49 |2,r12.... SWI| 00000690 4e 45 20 20 20 22 4f 53 5f 43 6c 61 69 6d 22 0d |NE "OS_Claim".| 000006a0 02 c6 1f 20 20 20 20 4c 44 4d 46 44 20 20 20 72 |... LDMFD r| 000006b0 31 33 21 2c 7b 72 30 2d 72 36 2c 70 63 7d 0d 02 |13!,{r0-r6,pc}..| 000006c0 d0 0e 20 2e 66 69 6e 61 6c 69 73 65 0d 02 da 20 |.. .finalise... | 000006d0 20 20 20 20 53 54 4d 46 44 20 20 20 72 31 33 21 | STMFD r13!| 000006e0 2c 7b 72 30 2d 72 36 2c 72 31 34 7d 0d 02 e4 19 |,{r0-r6,r14}....| 000006f0 20 20 20 20 4c 44 52 20 20 20 20 20 72 31 32 2c | LDR r12,| 00000700 5b 72 31 32 5d 0d 02 ee 23 20 20 20 20 4c 44 52 |[r12]...# LDR| 00000710 20 20 20 20 20 72 30 2c 5b 72 31 32 2c 23 6b 65 | r0,[r12,#ke| 00000720 79 73 74 61 74 75 73 5d 0d 02 f8 17 20 20 20 20 |ystatus].... | 00000730 43 4d 50 20 20 20 20 20 72 30 2c 23 26 30 30 0d |CMP r0,#&00.| 00000740 03 02 17 20 20 20 20 4d 4f 56 4e 45 20 20 20 72 |... MOVNE r| 00000750 30 2c 23 26 31 34 0d 03 0c 1b 20 20 20 20 41 44 |0,#&14.... AD| 00000760 52 4e 45 20 20 20 72 31 2c 6b 65 79 70 72 65 73 |RNE r1,keypres| 00000770 73 0d 03 16 16 20 20 20 20 4d 4f 56 4e 45 20 20 |s.... MOVNE | 00000780 20 72 32 2c 72 31 32 0d 03 20 1c 20 20 20 20 53 | r2,r12.. . S| 00000790 57 49 4e 45 20 20 20 22 4f 53 5f 52 65 6c 65 61 |WINE "OS_Relea| 000007a0 73 65 22 0d 03 2a 1f 20 20 20 20 4c 44 4d 46 44 |se"..*. LDMFD| 000007b0 20 20 20 72 31 33 21 2c 7b 72 30 2d 72 36 2c 70 | r13!,{r0-r6,p| 000007c0 63 7d 0d 03 34 0d 20 2e 73 65 72 76 69 63 65 0d |c}..4. .service.| 000007d0 03 3e 20 20 20 20 20 53 54 4d 46 44 20 20 20 72 |.> STMFD r| 000007e0 31 33 21 2c 7b 72 30 2d 72 36 2c 72 31 34 7d 0d |13!,{r0-r6,r14}.| 000007f0 03 48 19 20 20 20 20 4c 44 52 20 20 20 20 20 72 |.H. LDR r| 00000800 31 32 2c 5b 72 31 32 5d 0d 03 52 17 20 20 20 20 |12,[r12]..R. | 00000810 43 4d 50 20 20 20 20 20 72 31 2c 23 26 32 37 0d |CMP r1,#&27.| 00000820 03 5c 17 20 20 20 20 42 45 51 20 20 20 20 20 72 |.\. BEQ r| 00000830 65 73 74 61 72 74 0d 03 66 1f 20 20 20 20 4c 44 |estart..f. LD| 00000840 4d 46 44 20 20 20 72 31 33 21 2c 7b 72 30 2d 72 |MFD r13!,{r0-r| 00000850 36 2c 70 63 7d 0d 03 70 0e 20 2e 6b 65 79 70 72 |6,pc}..p. .keypr| 00000860 65 73 73 0d 03 7a 20 20 20 20 20 53 54 4d 46 44 |ess..z STMFD| 00000870 20 20 20 72 31 33 21 2c 7b 72 30 2d 72 36 2c 72 | r13!,{r0-r6,r| 00000880 31 34 7d 0d 03 84 17 20 20 20 20 43 4d 50 20 20 |14}.... CMP | 00000890 20 20 20 72 31 2c 23 26 30 30 0d 03 8e 1f 20 20 | r1,#&00.... | 000008a0 20 20 4c 44 4d 4e 45 46 44 20 72 31 33 21 2c 7b | LDMNEFD r13!,{| 000008b0 72 30 2d 72 36 2c 70 63 7d 0d 03 98 1f 20 20 20 |r0-r6,pc}.... | 000008c0 20 4c 44 52 20 20 20 20 20 72 31 2c 5b 72 31 32 | LDR r1,[r12| 000008d0 2c 23 69 6e 75 73 65 5d 0d 03 a2 17 20 20 20 20 |,#inuse].... | 000008e0 43 4d 50 20 20 20 20 20 72 31 2c 23 26 30 30 0d |CMP r1,#&00.| 000008f0 03 ac 1f 20 20 20 20 4c 44 4d 4e 45 46 44 20 72 |... LDMNEFD r| 00000900 31 33 21 2c 7b 72 30 2d 72 36 2c 70 63 7d 0d 03 |13!,{r0-r6,pc}..| 00000910 b6 1d 20 20 20 20 4c 44 52 20 20 20 20 20 72 31 |.. LDR r1| 00000920 2c 5b 72 31 32 2c 23 6b 65 79 5d 0d 03 c0 15 20 |,[r12,#key].... | 00000930 20 20 20 43 4d 50 20 20 20 20 20 72 30 2c 72 31 | CMP r0,r1| 00000940 0d 03 ca 1f 20 20 20 20 4c 44 4d 4e 45 46 44 20 |.... LDMNEFD | 00000950 72 31 33 21 2c 7b 72 30 2d 72 36 2c 70 63 7d 0d |r13!,{r0-r6,pc}.| 00000960 03 d4 17 20 20 20 20 4d 4f 56 20 20 20 20 20 72 |... MOV r| 00000970 30 2c 23 26 46 46 0d 03 de 1f 20 20 20 20 53 54 |0,#&FF.... ST| 00000980 52 20 20 20 20 20 72 30 2c 5b 72 31 32 2c 23 69 |R r0,[r12,#i| 00000990 6e 75 73 65 5d 0d 03 e8 17 20 20 20 20 41 44 52 |nuse].... ADR| 000009a0 20 20 20 20 20 72 30 2c 63 6f 64 65 0d 03 f2 1b | r0,code....| 000009b0 20 20 20 20 41 44 44 20 20 20 20 20 72 31 2c 72 | ADD r1,r| 000009c0 31 32 2c 23 26 30 43 0d 03 fc 21 20 20 20 20 53 |12,#&0C...! S| 000009d0 57 49 20 20 20 20 20 22 58 4f 53 5f 41 64 64 43 |WI "XOS_AddC| 000009e0 61 6c 6c 42 61 63 6b 22 0d 04 06 20 20 20 20 20 |allBack"... | 000009f0 4c 44 4d 46 44 20 20 20 72 31 33 21 2c 7b 72 30 |LDMFD r13!,{r0| 00000a00 2d 72 36 2c 72 31 32 7d 0d 04 10 19 20 20 20 20 |-r6,r12}.... | 00000a10 4c 44 4d 46 44 20 20 20 72 31 33 21 2c 7b 70 63 |LDMFD r13!,{pc| 00000a20 7d 0d 04 1a 0a 20 2e 63 6f 64 65 0d 04 24 21 20 |}.... .code..$! | 00000a30 20 20 20 53 54 4d 46 44 20 20 20 72 31 33 21 2c | STMFD r13!,| 00000a40 7b 72 30 2d 72 31 32 2c 72 31 34 7d 0d 04 2e 44 |{r0-r12,r14}...D| 00000a50 20 20 20 20 41 44 52 20 20 20 20 20 72 30 2c 68 | ADR r0,h| 00000a60 6f 74 6b 65 79 20 20 20 20 20 20 20 20 20 20 20 |otkey | 00000a70 20 20 20 3b 20 50 6c 61 63 65 20 79 6f 75 72 20 | ; Place your | 00000a80 61 6c 74 65 72 6e 61 74 69 76 65 20 63 6f 64 65 |alternative code| 00000a90 0d 04 38 43 20 20 20 20 53 57 49 20 20 20 20 20 |..8C SWI | 00000aa0 22 58 4f 53 5f 43 4c 49 22 20 20 20 20 20 20 20 |"XOS_CLI" | 00000ab0 20 20 20 20 20 20 20 3b 20 69 6e 73 74 65 61 64 | ; instead| 00000ac0 20 6f 66 20 74 68 65 73 65 20 74 77 6f 20 6c 69 | of these two li| 00000ad0 6e 65 73 0d 04 42 17 20 20 20 20 4d 4f 56 20 20 |nes..B. MOV | 00000ae0 20 20 20 72 30 2c 23 26 30 30 0d 04 4c 1c 20 20 | r0,#&00..L. | 00000af0 20 20 53 55 42 20 20 20 20 20 72 31 32 2c 72 31 | SUB r12,r1| 00000b00 32 2c 23 26 30 43 0d 04 56 1f 20 20 20 20 53 54 |2,#&0C..V. ST| 00000b10 52 20 20 20 20 20 72 30 2c 5b 72 31 32 2c 23 69 |R r0,[r12,#i| 00000b20 6e 75 73 65 5d 0d 04 60 20 20 20 20 20 4c 44 4d |nuse]..` LDM| 00000b30 46 44 20 20 20 72 31 33 21 2c 7b 72 30 2d 72 31 |FD r13!,{r0-r1| 00000b40 32 2c 70 63 7d 0d 04 6a 0f 20 2e 6b 65 79 64 65 |2,pc}..j. .keyde| 00000b50 63 6f 64 65 0d 04 74 1a 20 20 20 20 53 54 4d 46 |code..t. STMF| 00000b60 44 20 20 20 72 31 33 21 2c 7b 72 31 34 7d 0d 04 |D r13!,{r14}..| 00000b70 7e 19 20 20 20 20 4c 44 52 20 20 20 20 20 72 31 |~. LDR r1| 00000b80 32 2c 5b 72 31 32 5d 0d 04 88 17 20 20 20 20 43 |2,[r12].... C| 00000b90 4d 50 20 20 20 20 20 72 31 2c 23 26 30 30 0d 04 |MP r1,#&00..| 00000ba0 92 14 20 20 20 20 42 45 51 20 20 20 20 20 6b 65 |.. BEQ ke| 00000bb0 79 73 0d 04 9c 17 20 20 20 20 42 4c 20 20 20 20 |ys.... BL | 00000bc0 20 20 63 68 65 63 6b 6f 6e 0d 04 a6 18 20 20 20 | checkon.... | 00000bd0 20 42 56 53 20 20 20 20 20 6b 65 79 65 72 72 6f | BVS keyerro| 00000be0 72 0d 04 b0 15 20 20 20 20 4d 4f 56 20 20 20 20 |r.... MOV | 00000bf0 20 72 35 2c 72 30 0d 04 ba 15 20 20 20 20 4d 4f | r5,r0.... MO| 00000c00 56 20 20 20 20 20 72 36 2c 72 31 0d 04 c4 23 20 |V r6,r1...# | 00000c10 20 20 20 4c 44 52 20 20 20 20 20 72 34 2c 5b 72 | LDR r4,[r| 00000c20 31 32 2c 23 6b 65 79 73 74 61 74 75 73 5d 0d 04 |12,#keystatus]..| 00000c30 ce 23 20 20 20 20 53 54 52 20 20 20 20 20 72 33 |.# STR r3| 00000c40 2c 5b 72 31 32 2c 23 6b 65 79 73 74 61 74 75 73 |,[r12,#keystatus| 00000c50 5d 0d 04 d8 17 20 20 20 20 43 4d 50 20 20 20 20 |].... CMP | 00000c60 20 72 33 2c 23 26 30 30 0d 04 e2 15 20 20 20 20 | r3,#&00.... | 00000c70 43 4d 50 45 51 20 20 20 72 33 2c 72 34 0d 04 ec |CMPEQ r3,r4...| 00000c80 19 20 20 20 20 4c 44 4d 45 51 46 44 20 72 31 33 |. LDMEQFD r13| 00000c90 21 2c 7b 70 63 7d 0d 04 f6 17 20 20 20 20 43 4d |!,{pc}.... CM| 00000ca0 50 20 20 20 20 20 72 33 2c 23 26 30 30 0d 05 00 |P r3,#&00...| 00000cb0 23 20 20 20 20 53 54 52 45 51 20 20 20 72 33 2c |# STREQ r3,| 00000cc0 5b 72 31 32 2c 23 6b 65 79 73 74 61 74 75 73 5d |[r12,#keystatus]| 00000cd0 0d 05 0a 14 20 20 20 20 ec 51 20 20 20 72 30 2c |.... .Q r0,| 00000ce0 23 26 31 34 0d 05 14 1b 20 20 20 20 41 44 52 45 |#&14.... ADRE| 00000cf0 51 20 20 20 72 31 2c 6b 65 79 70 72 65 73 73 0d |Q r1,keypress.| 00000d00 05 1e 13 20 20 20 20 ec 51 20 20 20 72 32 2c 72 |... .Q r2,r| 00000d10 31 32 0d 05 28 1c 20 20 20 20 53 57 49 45 51 20 |12..(. SWIEQ | 00000d20 20 20 22 4f 53 5f 52 65 6c 65 61 73 65 22 0d 05 | "OS_Release"..| 00000d30 32 19 20 20 20 20 4c 44 4d 45 51 46 44 20 72 31 |2. LDMEQFD r1| 00000d40 33 21 2c 7b 70 63 7d 0d 05 3c 15 20 20 20 20 43 |3!,{pc}..<. C| 00000d50 4d 50 20 20 20 20 20 72 33 2c 72 34 0d 05 46 23 |MP r3,r4..F#| 00000d60 20 20 20 20 53 54 52 4e 45 20 20 20 72 33 2c 5b | STRNE r3,[| 00000d70 72 31 32 2c 23 6b 65 79 73 74 61 74 75 73 5d 0d |r12,#keystatus].| 00000d80 05 50 17 20 20 20 20 4d 4f 56 4e 45 20 20 20 72 |.P. MOVNE r| 00000d90 30 2c 23 26 31 34 0d 05 5a 1b 20 20 20 20 41 44 |0,#&14..Z. AD| 00000da0 52 4e 45 20 20 20 72 31 2c 6b 65 79 70 72 65 73 |RNE r1,keypres| 00000db0 73 0d 05 64 16 20 20 20 20 4d 4f 56 4e 45 20 20 |s..d. MOVNE | 00000dc0 20 72 32 2c 72 31 32 0d 05 6e 1a 20 20 20 20 53 | r2,r12..n. S| 00000dd0 57 49 4e 45 20 20 20 22 4f 53 5f 43 6c 61 69 6d |WINE "OS_Claim| 00000de0 22 0d 05 78 17 20 20 20 20 43 4d 50 20 20 20 20 |"..x. CMP | 00000df0 20 72 36 2c 23 26 30 31 0d 05 82 19 20 20 20 20 | r6,#&01.... | 00000e00 4c 44 4d 45 51 46 44 20 72 31 33 21 2c 7b 70 63 |LDMEQFD r13!,{pc| 00000e10 7d 0d 05 8c 17 20 20 20 20 43 4d 50 20 20 20 20 |}.... CMP | 00000e20 20 72 36 2c 23 26 30 32 0d 05 96 18 20 20 20 20 | r6,#&02.... | 00000e30 42 4e 45 20 20 20 20 20 6b 65 79 65 72 72 6f 72 |BNE keyerror| 00000e40 0d 05 a0 15 20 20 20 20 4d 4f 56 20 20 20 20 20 |.... MOV | 00000e50 72 31 2c 72 35 0d 05 aa 1a 20 20 20 20 41 44 44 |r1,r5.... ADD| 00000e60 20 20 20 20 20 72 31 2c 72 31 2c 23 26 30 31 0d | r1,r1,#&01.| 00000e70 05 b4 1d 20 20 20 20 4d 4f 56 20 20 20 20 20 72 |... MOV r| 00000e80 30 2c 23 26 43 30 30 30 30 30 30 41 0d 05 be 21 |0,#&C000000A...!| 00000e90 20 20 20 20 53 57 49 20 20 20 20 20 22 4f 53 5f | SWI "OS_| 00000ea0 52 65 61 64 55 6e 73 69 67 6e 65 64 22 0d 05 c8 |ReadUnsigned"...| 00000eb0 1d 20 20 20 20 53 54 52 20 20 20 20 20 72 32 2c |. STR r2,| 00000ec0 5b 72 31 32 2c 23 6b 65 79 5d 0d 05 d2 19 20 20 |[r12,#key].... | 00000ed0 20 20 4c 44 4d 46 44 20 20 20 72 31 33 21 2c 7b | LDMFD r13!,{| 00000ee0 70 63 7d 0d 05 dc 0e 20 2e 6b 65 79 65 72 72 6f |pc}.... .keyerro| 00000ef0 72 0d 05 e6 1c 20 20 20 20 41 44 52 20 20 20 20 |r.... ADR | 00000f00 20 72 30 2c 6b 65 79 65 72 72 6f 72 6d 0d 05 f0 | r0,keyerrorm...| 00000f10 1a 20 20 20 20 4c 44 4d 46 44 20 20 20 72 31 33 |. LDMFD r13| 00000f20 21 2c 7b 72 31 34 7d 0d 05 fa 20 20 20 20 20 84 |!,{r14}... .| 00000f30 52 53 20 20 20 20 70 63 2c 72 31 34 2c 23 26 31 |RS pc,r14,#&1| 00000f40 30 30 30 30 30 30 30 0d 06 04 0a 20 2e 6b 65 79 |0000000.... .key| 00000f50 73 0d 06 0e 18 20 20 20 20 41 44 52 20 20 20 20 |s.... ADR | 00000f60 20 72 30 2c 6b 65 79 73 6d 0d 06 18 1b 20 20 20 | r0,keysm.... | 00000f70 20 53 57 49 20 20 20 20 20 22 4f 53 5f 57 72 69 | SWI "OS_Wri| 00000f80 74 65 30 22 0d 06 22 23 20 20 20 20 4c 44 52 20 |te0".."# LDR | 00000f90 20 20 20 20 72 30 2c 5b 72 31 32 2c 23 6b 65 79 | r0,[r12,#key| 00000fa0 73 74 61 74 75 73 5d 0d 06 2c 17 20 20 20 20 43 |status]..,. C| 00000fb0 4d 50 20 20 20 20 20 72 30 2c 23 26 30 30 0d 06 |MP r0,#&00..| 00000fc0 36 16 20 20 20 20 41 44 52 45 51 20 20 20 72 30 |6. ADREQ r0| 00000fd0 2c 6f 66 66 0d 06 40 15 20 20 20 20 41 44 52 4e |,off..@. ADRN| 00000fe0 45 20 20 20 72 30 2c 6f 6e 0d 06 4a 1b 20 20 20 |E r0,on..J. | 00000ff0 20 53 57 49 20 20 20 20 20 22 4f 53 5f 57 72 69 | SWI "OS_Wri| 00001000 74 65 30 22 0d 06 54 19 20 20 20 20 4c 44 4d 46 |te0"..T. LDMF| 00001010 44 20 20 20 72 31 33 21 2c 7b 70 63 7d 0d 06 5e |D r13!,{pc}..^| 00001020 0d 20 2e 63 68 65 63 6b 6f 6e 0d 06 68 1c 20 20 |. .checkon..h. | 00001030 20 20 4c 44 52 42 20 20 20 20 72 32 2c 5b 72 30 | LDRB r2,[r0| 00001040 5d 2c 23 26 30 31 0d 06 72 18 20 20 20 20 80 20 |],#&01..r. . | 00001050 20 20 20 20 72 32 2c 72 32 2c 23 26 44 46 0d 06 | r2,r2,#&DF..| 00001060 7c 18 20 20 20 20 43 4d 50 20 20 20 20 20 72 32 ||. CMP r2| 00001070 2c 23 97 22 4f 22 0d 06 86 20 20 20 20 20 84 52 |,#."O"... .R| 00001080 4e 45 53 20 20 70 63 2c 72 31 34 2c 23 26 31 30 |NES pc,r14,#&10| 00001090 30 30 30 30 30 30 0d 06 90 1c 20 20 20 20 4c 44 |000000.... LD| 000010a0 52 42 20 20 20 20 72 32 2c 5b 72 30 5d 2c 23 26 |RB r2,[r0],#&| 000010b0 30 31 0d 06 9a 18 20 20 20 20 80 20 20 20 20 20 |01.... . | 000010c0 72 32 2c 72 32 2c 23 26 44 46 0d 06 a4 18 20 20 |r2,r2,#&DF.... | 000010d0 20 20 43 4d 50 20 20 20 20 20 72 32 2c 23 97 22 | CMP r2,#."| 000010e0 4e 22 0d 06 ae 14 20 20 20 20 ec 51 20 20 20 72 |N".... .Q r| 000010f0 33 2c 23 26 30 31 0d 06 b8 13 20 20 20 20 ec 51 |3,#&01.... .Q| 00001100 20 20 20 70 63 2c 72 31 34 0d 06 c2 18 20 20 20 | pc,r14.... | 00001110 20 43 4d 50 20 20 20 20 20 72 32 2c 23 97 22 46 | CMP r2,#."F| 00001120 22 0d 06 cc 1a 20 20 20 20 41 44 44 45 51 20 20 |".... ADDEQ | 00001130 20 72 30 2c 72 30 2c 23 26 30 31 0d 06 d6 14 20 | r0,r0,#&01.... | 00001140 20 20 20 ec 51 20 20 20 72 33 2c 23 26 30 30 0d | .Q r3,#&00.| 00001150 06 e0 13 20 20 20 20 ec 51 20 20 20 70 63 2c 72 |... .Q pc,r| 00001160 31 34 0d 06 ea 20 20 20 20 20 84 52 53 20 20 20 |14... .RS | 00001170 20 70 63 2c 72 31 34 2c 23 26 31 30 30 30 30 30 | pc,r14,#&100000| 00001180 30 30 0d 06 f4 0d 20 2e 64 65 66 61 75 6c 74 0d |00.... .default.| 00001190 06 fe 35 20 20 20 20 45 51 55 53 20 20 20 20 22 |..5 EQUS "| 000011a0 53 65 74 20 41 6c 69 61 73 24 50 72 65 73 73 4b |Set Alias$PressK| 000011b0 65 79 20 47 72 61 62 53 63 72 65 65 6e 7c 4d 22 |ey GrabScreen|M"| 000011c0 2b bd 31 33 0d 07 08 3e 20 3b 20 43 68 61 6e 67 |+.13...> ; Chang| 000011d0 65 20 74 68 65 20 6c 61 73 74 20 6c 69 6e 65 20 |e the last line | 000011e0 74 6f 20 65 78 65 63 75 74 65 20 61 20 64 69 66 |to execute a dif| 000011f0 66 65 72 65 6e 74 20 27 2a 27 20 63 6f 6d 6d 61 |ferent '*' comma| 00001200 6e 64 0d 07 12 0d 20 20 20 20 41 4c 49 47 4e 0d |nd.... ALIGN.| 00001210 07 1c 10 20 2e 67 72 61 62 73 63 72 65 65 6e 0d |... .grabscreen.| 00001220 07 26 84 20 20 20 20 45 51 55 53 20 20 20 20 22 |.&. EQUS "| 00001230 53 65 74 20 41 6c 69 61 73 24 47 72 61 62 53 63 |Set Alias$GrabSc| 00001240 72 65 65 6e 20 53 65 74 45 76 61 6c 20 47 72 61 |reen SetEval Gra| 00001250 62 53 63 72 65 65 6e 25 4e 75 6d 62 65 72 20 47 |bScreen%Number G| 00001260 72 61 62 53 63 72 65 65 6e 25 4e 75 6d 62 65 72 |rabScreen%Number| 00001270 2b 31 7c 4d 53 63 72 65 65 6e 53 61 76 65 20 3a |+1|MScreenSave :| 00001280 30 2e 24 2e 53 63 72 65 65 6e 7c 3c 47 72 61 62 |0.$.Screen|<Grab| 00001290 53 63 72 65 65 6e 25 4e 75 6d 62 65 72 3e 22 2b |Screen%Number>"+| 000012a0 bd 31 33 0d 07 30 0d 20 20 20 20 41 4c 49 47 4e |.13..0. ALIGN| 000012b0 0d 07 3a 11 20 2e 67 72 61 62 73 63 72 65 65 6e |..:. .grabscreen| 000012c0 32 0d 07 44 31 20 20 20 20 45 51 55 53 20 20 20 |2..D1 EQUS | 000012d0 20 22 53 65 74 45 76 61 6c 20 47 72 61 62 53 63 | "SetEval GrabSc| 000012e0 72 65 65 6e 25 4e 75 6d 62 65 72 20 30 22 2b bd |reen%Number 0"+.| 000012f0 31 33 0d 07 4e 0d 20 20 20 20 41 4c 49 47 4e 0d |13..N. ALIGN.| 00001300 07 58 0f 20 2e 69 6e 69 74 65 72 72 6f 72 0d 07 |.X. .initerror..| 00001310 62 16 20 20 20 20 45 51 55 44 20 20 20 20 26 32 |b. EQUD &2| 00001320 37 32 30 30 0d 07 6c 45 20 20 20 20 45 51 55 53 |7200..lE EQUS| 00001330 20 20 20 20 22 48 6f 74 4b 65 79 20 73 79 73 74 | "HotKey syst| 00001340 65 6d 20 75 6e 61 62 6c 65 20 74 6f 20 63 6c 61 |em unable to cla| 00001350 69 6d 20 72 65 71 75 69 72 65 64 20 77 6f 72 6b |im required work| 00001360 73 70 61 63 65 22 2b bd 30 0d 07 76 0d 20 20 20 |space"+.0..v. | 00001370 20 41 4c 49 47 4e 0d 07 80 12 20 2e 63 6f 6d 6d | ALIGN.... .comm| 00001380 61 6e 64 74 61 62 6c 65 0d 07 8a 18 20 20 20 20 |andtable.... | 00001390 45 51 55 53 20 20 20 20 22 4b 65 79 22 2b bd 30 |EQUS "Key"+.0| 000013a0 0d 07 94 0d 20 20 20 20 41 4c 49 47 4e 0d 07 9e |.... ALIGN...| 000013b0 11 20 20 20 20 45 51 55 44 20 20 20 20 30 0d 07 |. EQUD 0..| 000013c0 a8 11 20 20 20 20 45 51 55 44 20 20 20 20 30 0d |.. EQUD 0.| 000013d0 07 b2 11 20 20 20 20 45 51 55 44 20 20 20 20 30 |... EQUD 0| 000013e0 0d 07 bc 14 20 20 20 20 45 51 55 44 20 20 20 20 |.... EQUD | 000013f0 68 65 6c 70 0d 07 c6 1b 20 20 20 20 45 51 55 53 |help.... EQUS| 00001400 20 20 20 20 22 48 6f 74 4b 65 79 22 2b bd 30 0d | "HotKey"+.0.| 00001410 07 d0 0d 20 20 20 20 41 4c 49 47 4e 0d 07 da 19 |... ALIGN....| 00001420 20 20 20 20 45 51 55 44 20 20 20 20 6b 65 79 64 | EQUD keyd| 00001430 65 63 6f 64 65 0d 07 e4 19 20 20 20 20 45 51 55 |ecode.... EQU| 00001440 44 20 20 20 20 26 30 30 30 32 30 30 30 30 0d 07 |D &00020000..| 00001450 ee 19 20 20 20 20 45 51 55 44 20 20 20 20 6b 65 |.. EQUD ke| 00001460 79 73 79 6e 74 61 78 0d 07 f8 17 20 20 20 20 45 |ysyntax.... E| 00001470 51 55 44 20 20 20 20 6b 65 79 68 65 6c 70 0d 08 |QUD keyhelp..| 00001480 02 11 20 20 20 20 45 51 55 44 20 20 20 20 30 0d |.. EQUD 0.| 00001490 08 0c 0f 20 2e 6b 65 79 65 72 72 6f 72 6d 0d 08 |... .keyerrorm..| 000014a0 16 16 20 20 20 20 45 51 55 44 20 20 20 20 26 32 |.. EQUD &2| 000014b0 37 32 30 31 0d 08 20 0f 20 2e 6b 65 79 73 79 6e |7201.. . .keysyn| 000014c0 74 61 78 0d 08 2a 37 20 20 20 20 45 51 55 53 20 |tax..*7 EQUS | 000014d0 20 20 20 22 53 79 6e 74 61 78 3a 20 2a 48 6f 74 | "Syntax: *Hot| 000014e0 4b 65 79 20 5b 3c 4f 4e 7c 4f 46 46 3e 20 5b 3c |Key [<ON|OFF> [<| 000014f0 6b 65 79 3e 5d 5d 22 2b bd 30 0d 08 34 0d 20 20 |key>]]"+.0..4. | 00001500 20 20 41 4c 49 47 4e 0d 08 3e 0b 20 2e 6b 65 79 | ALIGN..>. .key| 00001510 73 6d 0d 08 48 35 20 20 20 20 45 51 55 53 20 20 |sm..H5 EQUS | 00001520 20 20 22 54 68 65 20 48 6f 74 20 4b 65 79 20 73 | "The Hot Key s| 00001530 79 73 74 65 6d 20 69 73 20 63 75 72 72 65 6e 74 |ystem is current| 00001540 6c 79 20 22 2b bd 30 0d 08 52 0d 20 20 20 20 41 |ly "+.0..R. A| 00001550 4c 49 47 4e 0d 08 5c 08 20 2e 6f 6e 0d 08 66 20 |LIGN..\. .on..f | 00001560 20 20 20 20 45 51 55 53 20 20 20 20 22 6f 6e 2e | EQUS "on.| 00001570 22 2b bd 31 30 2b bd 31 33 2b bd 30 0d 08 70 0d |"+.10+.13+.0..p.| 00001580 20 20 20 20 41 4c 49 47 4e 0d 08 7a 09 20 2e 6f | ALIGN..z. .o| 00001590 66 66 0d 08 84 21 20 20 20 20 45 51 55 53 20 20 |ff...! EQUS | 000015a0 20 20 22 6f 66 66 2e 22 2b bd 31 30 2b bd 31 33 | "off."+.10+.13| 000015b0 2b bd 30 0d 08 8e 0d 20 20 20 20 41 4c 49 47 4e |+.0.... ALIGN| 000015c0 0d 08 98 0c 20 2e 68 6f 74 6b 65 79 0d 08 a2 1b |.... .hotkey....| 000015d0 20 20 20 20 45 51 55 53 20 22 50 72 65 73 73 4b | EQUS "PressK| 000015e0 65 79 22 2b bd 31 33 0d 08 ac 0a 20 2e 68 65 6c |ey"+.13.... .hel| 000015f0 70 0d 08 b6 85 20 20 20 20 45 51 55 53 20 20 20 |p.... EQUS | 00001600 20 22 54 68 65 20 48 6f 74 20 4b 65 79 20 73 79 | "The Hot Key sy| 00001610 73 74 65 6d 20 61 63 74 69 76 61 74 65 73 20 74 |stem activates t| 00001620 68 65 20 75 73 65 72 2d 64 65 66 69 6e 65 64 20 |he user-defined | 00001630 63 6f 6d 6d 61 6e 64 20 27 50 72 65 73 73 4b 65 |command 'PressKe| 00001640 79 27 20 75 70 6f 6e 20 74 68 65 20 64 65 70 72 |y' upon the depr| 00001650 65 73 73 69 6f 6e 20 6f 66 20 61 20 63 6f 6e 66 |ession of a conf| 00001660 69 67 75 72 61 62 6c 65 20 6b 65 79 2e 22 2b bd |igurable key."+.| 00001670 31 30 2b bd 31 33 0d 08 c0 92 20 20 20 20 45 51 |10+.13.... EQ| 00001680 55 53 20 20 20 20 22 54 68 65 20 73 79 73 74 65 |US "The syste| 00001690 6d 20 6d 61 79 20 62 65 20 73 77 69 74 63 68 65 |m may be switche| 000016a0 64 20 6f 6e 20 6f 72 20 6f 66 66 20 75 73 69 6e |d on or off usin| 000016b0 67 20 61 20 73 74 61 72 20 63 6f 6d 6d 61 6e 64 |g a star command| 000016c0 20 61 6e 64 20 6f 70 74 69 6f 6e 61 6c 6c 79 2c | and optionally,| 000016d0 20 74 68 65 20 68 6f 74 20 6b 65 79 20 6d 61 79 | the hot key may| 000016e0 20 62 65 20 63 68 61 6e 67 65 64 20 74 6f 20 73 | be changed to s| 000016f0 75 69 74 20 74 68 65 20 61 70 70 6c 69 63 61 74 |uit the applicat| 00001700 69 6f 6e 2e 22 2b bd 30 0d 08 ca 0d 20 20 20 20 |ion."+.0.... | 00001710 41 4c 49 47 4e 0d 08 d4 0d 20 2e 6b 65 79 68 65 |ALIGN.... .keyhe| 00001720 6c 70 0d 08 de 48 20 20 20 20 45 51 55 53 20 20 |lp...H EQUS | 00001730 20 20 22 2a 48 6f 74 4b 65 79 20 73 77 69 74 63 | "*HotKey switc| 00001740 68 65 73 20 74 68 65 20 48 6f 74 20 4b 65 79 20 |hes the Hot Key | 00001750 73 79 73 74 65 6d 20 6f 6e 20 6f 72 20 6f 66 66 |system on or off| 00001760 2e 22 2b bd 31 30 2b bd 31 33 0d 08 e8 a5 20 20 |."+.10+.13.... | 00001770 20 20 45 51 55 53 20 20 20 20 22 2a 48 6f 74 4b | EQUS "*HotK| 00001780 65 79 20 63 61 6e 20 74 61 6b 65 20 61 6e 20 41 |ey can take an A| 00001790 53 43 49 49 20 6b 65 79 63 6f 64 65 20 74 6f 20 |SCII keycode to | 000017a0 61 6c 6c 6f 77 20 61 20 6b 65 79 20 74 6f 20 62 |allow a key to b| 000017b0 65 20 70 72 6f 67 72 61 6d 6d 65 64 20 66 72 6f |e programmed fro| 000017c0 6d 20 74 68 65 20 64 65 66 61 75 6c 74 20 74 6f |m the default to| 000017d0 20 61 63 74 69 76 61 74 65 20 74 68 65 20 75 74 | activate the ut| 000017e0 69 6c 69 74 79 2e 20 54 68 65 20 64 65 66 61 75 |ility. The defau| 000017f0 6c 74 20 69 73 20 74 68 65 20 27 70 72 69 6e 74 |lt is the 'print| 00001800 27 20 6b 65 79 2e 22 2b bd 31 30 2b bd 31 33 0d |' key."+.10+.13.| 00001810 08 f2 51 20 20 20 20 45 51 55 53 20 20 20 20 22 |..Q EQUS "| 00001820 2a 48 6f 74 4b 65 79 20 77 69 74 68 6f 75 74 20 |*HotKey without | 00001830 61 20 70 61 72 61 6d 65 74 65 72 20 72 65 66 6c |a parameter refl| 00001840 65 63 74 73 20 74 68 65 20 63 75 72 72 65 6e 74 |ects the current| 00001850 20 73 74 61 74 65 2e 22 2b bd 31 30 2b bd 31 33 | state."+.10+.13| 00001860 0d 08 fc 37 20 20 20 20 45 51 55 53 20 20 20 20 |...7 EQUS | 00001870 22 53 79 6e 74 61 78 3a 20 2a 48 6f 74 4b 65 79 |"Syntax: *HotKey| 00001880 20 5b 3c 4f 4e 7c 4f 46 46 3e 20 5b 3c 6b 65 79 | [<ON|OFF> [<key| 00001890 3e 5d 5d 22 2b bd 30 0d 09 06 0d 20 20 20 20 41 |>]]"+.0.... A| 000018a0 4c 49 47 4e 0d 09 10 2f 20 20 20 20 45 51 55 53 |LIGN.../ EQUS| 000018b0 20 20 20 20 22 48 6f 74 4b 65 79 20 62 79 20 47 | "HotKey by G| 000018c0 61 72 65 74 68 20 53 2e 20 4c 6f 6e 67 2e 22 2b |areth S. Long."+| 000018d0 bd 31 33 0d 09 1a 0d 20 20 20 20 41 4c 49 47 4e |.13.... ALIGN| 000018e0 0d 09 24 06 20 5d 0d 09 2e 06 20 ed 0d 09 38 06 |..$. ].... ...8.| 000018f0 20 e1 0d 09 42 0b 20 dd f2 73 61 76 65 0d 09 4c | ...B. ..save..L| 00001900 32 20 ff 22 53 61 76 65 20 22 2b 4d 6f 64 75 6c |2 ."Save "+Modul| 00001910 65 24 2b 22 20 22 2b c3 7e 63 6f 64 65 25 2b 22 |e$+" "+.~code%+"| 00001920 20 22 2b c3 7e 28 63 6f 64 65 25 2b 50 25 29 0d | "+.~(code%+P%).| 00001930 09 56 22 20 ff 22 53 65 74 54 79 70 65 20 22 2b |.V" ."SetType "+| 00001940 4d 6f 64 75 6c 65 24 2b 22 20 4d 6f 64 75 6c 65 |Module$+" Module| 00001950 22 0d 09 60 23 20 ff 22 4b 65 79 20 31 20 2a 52 |"..`# ."Key 1 *R| 00001960 4d 4c 6f 61 64 20 22 2b 4d 6f 64 75 6c 65 24 2b |MLoad "+Module$+| 00001970 22 7c 4d 22 0d 09 6a 06 20 e1 0d ff |"|M"..j. ...| 0000197c