Home » Archimedes archive » Acorn User » AU 1994-11.adf » !StarInfo_StarInfo » Borcherds/NumScr>f12/NumScrSrc

Borcherds/NumScr>f12/NumScrSrc

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 » Acorn User » AU 1994-11.adf » !StarInfo_StarInfo
Filename: Borcherds/NumScr>f12/NumScrSrc
Read OK:
File size: 15DA bytes
Load address: 0000
Exec address: 0000
File contents
   10REM > NumScr>f12
   20DIM code 2000
   30
   40FORp=4 TO 6 STEP 2
   50O%=code
   60P%=0
   70[OPT p
   80EQUD start
   90EQUD 0 ;init
  100EQUD finish
  110EQUD 0 ;serv
  120EQUD title
  130EQUD help
  140EQUD table
  150EQUD 0
  160EQUD 0
  170EQUD 0
  180EQUD 0
  190
  200.start
  210MOV R0,#&10 ; EventV
  220ADR R1,EventV
  230MOV R2,#0
  240SWI "XOS_AddToVector"
  250
  260MOV R0,#14
  270MOV R1,#11
  280SWI "XOS_Byte"
  290
  300MOV R0,#202
  310MOV R1,#0
  320MOV R2,#255
  330SWI "XOS_Byte"
  340AND R1,R1,#%110
  350EOR R1,R1,#%110
  360STR R1,status
  370
  380SWI "XOS_Exit"
  390
  400.finish
  410STMFD R13!,{R14}
  420
  430MOV R0,#13
  440MOV R1,#11
  450SWI "OS_Byte"
  460
  470MOV R0,#&10 ; EventV
  480ADR R1,EventV
  490MOV R2,#0
  500SWI "XOS_Release"
  510LDMFD R13!,{PC}
  520
  530.EventV
  540CMP R0,#11 ; key pressed/released
  550MOVNES PC,R14
  560CMP R2,#&58
  570CMPNE R2,#&4C
  580BEQ shift
  590
  600CMP R2,#&61
  610CMPNE R2,#&3B
  620BEQ ctrl
  630
  640CMP R2,#&60
  650CMPNE R2,#&5E
  660BEQ alt
  670
  680CMP R1,#1
  690MOVNES PC,R14
  730
  740CMP R2,#&22 ; numlock
  750BEQ numlock
  760CMP R2,#&0E ; scroll lock
  770BEQ scrolllock
  780MOVS PC,R14
  790
  800.scrolllock
  810STMFD R13!,{R0-R2,R14}
  820
  830LDR R0,alt_data
  840CMP R0,#0
  850LDRNE R0,status
  860EORNE R0,R0,#%10
  870STRNE R0,status
  880LDMNEFD R13!,{R0-R2,PC}^
  890
  900LDRB R0,shift_data
  910CMP R0,#0
  920BEQ f12_noshift
  930LDRB R0,ctrl_data
  940CMP R0,#0
  950MOVEQ R2,#220
  960MOVNE R2,#252 ; ctrl-shift-f12
  970.exit
  980MOV R0,#138
  990MOV R1,#0
 1000
 1010MOV R9,PC
 1020ORR R8,R9,#3 ; SVC Mode
 1030TEQP R8,#0
 1040MOV R0,R0
 1050STMFD R13!,{R14}
 1060
 1070SWI "XOS_Byte"
 1080MOV R2,#%11111101
 1090LDRB R1,status
 1100AND R1,R1,#%10
 1120
 1130MOV R0,#202
 1140SWI "XOS_Byte"
 1150MOV R0,#118
 1160SWI "XOS_Byte"
 1170
 1180LDMFD R13!,{R14}
 1190TEQP R9,#0
 1200MOV R0,R0
 1210
 1220LDMFD R13!,{R0-R2,PC}
 1221
 1260.f12_noshift
 1270LDR R0,ctrl_data
 1280CMP R0,#0
 1290MOVNE R2,#236
 1300MOVEQ R2,#204
 1310B exit
 1320
 1330.numlock
 1340STMFD R13!,{R0-R2,R14}
 1350
 1360LDR R0,alt_data
 1370CMP R0,#0
 1380LDRNE R0,status
 1390EORNE R0,R0,#%100
 1400STRNE R0,status
 1410LDMNEFD R13!,{R0-R2,PC}^
 1420
 1430LDRB R0,shift_data
 1440CMP R0,#0
 1450BEQ f11_noshift
 1460LDRB R0,ctrl_data
 1470CMP R0,#0
 1480MOVEQ R2,#219
 1490MOVNE R2,#251
 1500.exit2
 1510MOV R0,#138
 1520MOV R1,#0
 1530
 1540MOV R9,PC
 1550ORR R8,R9,#3 ; SVC Mode
 1560TEQP R8,#0
 1570MOV R0,R0
 1580STMFD R13!,{R14}
 1590
 1600SWI "XOS_Byte"
 1610MOV R2,#%11111011
 1620LDRB R1,status
 1630AND R1,R1,#%100
 1650
 1660MOV R0,#202
 1670SWI "XOS_Byte"
 1680MOV R0,#118
 1690SWI "XOS_Byte"
 1700
 1710LDMFD R13!,{R14}
 1720TEQP R9,#0
 1730MOV R0,R0
 1740
 1750LDMFD R13!,{R0-R2,PC}
 1780
 1790.f11_noshift
 1800LDR R0,ctrl_data
 1810CMP R0,#0
 1820MOVNE R2,#235
 1830MOVEQ R2,#203
 1840B exit2
 1850
 1860.shift
 1870LDRB R0,shift_data
 1880CMP R1,#0
 1890ADDNE R0,R0,#1
 1900SUBEQS R0,R0,#1
 1910MOVMI R0,#0
 1920STRB R0,shift_data
 1930MOV R0,#11
 1940MOVS PC,R14
 1950
 1960.ctrl
 1970LDRB R0,ctrl_data
 1980CMP R1,#0
 1990ADDNE R0,R0,#1
 2000SUBEQS R0,R0,#1
 2010MOVMI R0,#0
 2020STRB R0,ctrl_data
 2030MOV R0,#11
 2040MOVS PC,R14
 2050
 2060.alt
 2070LDRB R0,alt_data
 2080CMP R1,#0
 2090ADDNE R0,R0,#1
 2100SUBEQS R0,R0,#1
 2110MOVMI R0,#0
 2120STRB R0,alt_data
 2130MOVS PC,R14
 2140
 2150.shift_data
 2160EQUD 0
 2170.ctrl_data
 2180EQUD 0
 2190.alt_data
 2200EQUD 0
 2210.status
 2220EQUD 0
 2230
 2240.numlockon
 2250STMFD R13!,{R0-R2,R14}
 2260LDR R1,status
 2270ORR R1,R1,#%100
 2280STR R1,status
 2290MOV R1,#0
 2300MOV R2,#%11111011
 2310MOV R0,#202
 2320SWI "XOS_Byte"
 2330MOV R0,#118
 2340SWI "XOS_Byte"
 2350LDMFD R13!,{R0-R2,PC}
 2360
 2370.numlockoff
 2380STMFD R13!,{R0-R2,R14}
 2390LDR R1,status
 2400BIC R1,R1,#%100
 2410STR R1,status
 2420MOV R1,#%100
 2430MOV R2,#%11111011
 2440MOV R0,#202
 2450SWI "XOS_Byte"
 2460MOV R0,#118
 2470SWI "XOS_Byte"
 2480LDMFD R13!,{R0-R2,PC}
 2490
 2500.scrolllockon
 2510STMFD R13!,{R0-R2,R14}
 2520LDR R1,status
 2530BIC R1,R1,#%10
 2540STR R1,status
 2550MOV R1,#%10
 2560MOV R2,#%11111101
 2570MOV R0,#202
 2580SWI "XOS_Byte"
 2590MOV R0,#118
 2600SWI "XOS_Byte"
 2610LDMFD R13!,{R0-R2,PC}
 2620
 2630.scrolllockoff
 2640STMFD R13!,{R0-R2,R14}
 2650LDR R1,status
 2660ORR R1,R1,#%10
 2670STR R1,status
 2680MOV R1,#%0
 2690MOV R2,#%11111101
 2700MOV R0,#202
 2710SWI "XOS_Byte"
 2720MOV R0,#118
 2730SWI "XOS_Byte"
 2740LDMFD R13!,{R0-R2,PC}
 2750
 2760.title
 2770EQUS "NumScr>f12"
 2780EQUB0
 2790ALIGN
 2800
 2810.help
 2820EQUS "NumScr>f12"+CHR$9+"1.00 (29 Jun 1994)"
 2830EQUB 0
 2840ALIGN
 2850
 2860.table
 2870EQUS "NumScr>f12" : EQUB 0
 2880ALIGN
 2890EQUD 0
 2900EQUD 0
 2910EQUD 0
 2920EQUD helptext
 2930EQUS "NumLockOn" : EQUB 0 : ALIGN
 2940EQUD numlockon
 2950EQUD 0
 2960EQUD numlockonsyn
 2970EQUD numlockonhelp
 2980EQUS "NumLockOff" : EQUB 0 : ALIGN
 2990EQUD numlockoff
 3000EQUD 0
 3010EQUD numlockoffsyn
 3020EQUD numlockoffhelp
 3030EQUS "ScrollLockOn" : EQUB 0 : ALIGN
 3040EQUD scrolllockon
 3050EQUD 0
 3060EQUD scrolllockonsyn
 3070EQUD scrolllockonhelp
 3080EQUS "ScrollLockOff" : EQUB 0 : ALIGN
 3090EQUD scrolllockoff
 3100EQUD 0
 3110EQUD scrolllockoffsyn
 3120EQUD scrolllockoffhelp
 3130
 3140EQUD 0
 3150.numlockonsyn
 3160EQUS "Syntax: *NumLockOn" : EQUB 0
 3170.numlockonhelp
 3180EQUS "*NumLockOn turns on the Num Lock light" : EQUB 0
 3190.numlockoffsyn
 3200EQUS "Syntax: *NumLockOff" : EQUB 0
 3210.numlockoffhelp
 3220EQUS "*NumLockOff turns off the Num Lock light" : EQUB 0
 3230
 3240.scrolllockonsyn
 3250EQUS "Syntax: *ScrollLockOn" : EQUB 0
 3260.scrolllockonhelp
 3270EQUS "*ScrollLockOn turns on the Scroll Lock light" : EQUB 0
 3271.scrolllockoffsyn
 3272EQUS "Syntax: *ScrollLockOff" : EQUB 0
 3273.scrolllockoffhelp
 3274EQUS "*ScrollLockOff turns off the Scroll Lock light" : EQUB 0
 3340
 3350.helptext
 3360EQUS "This module turns Num Lock and Scroll lock into F11 and F12 respectively, including all ctrl/shift combinations. Their original behaviour can be obtained while holding down Alt. It is intended for use on an A4 portable."
 3370EQUB 0
 3380ALIGN
 3390]
 3400
 3410NEXT
 3420
 3430OSCLI"SAVE NumScr>f12 "+STR$~code+" "+STR$~(O%)
 3440OSCLI"SETTYPE NumScr>f12 MODULE"
 3450END

� > NumScr>f12
� code 2000

(�p=4 � 6 � 2
2O%=code
<P%=0
F
[OPT p
PEQUD start
ZEQUD 0 ;init
dEQUD finish
nEQUD 0 ;serv
xEQUD title
�
EQUD help
�EQUD table
�
EQUD 0
�
EQUD 0
�
EQUD 0
�
EQUD 0
�
�
.start
�MOV R0,#&10 ; EventV
�ADR R1,EventV
�
MOV R2,#0
�SWI "XOS_AddToVector"
�
MOV R0,#14
MOV R1,#11
SWI "XOS_Byte"
"
,MOV R0,#202
6
MOV R1,#0
@MOV R2,#255
JSWI "XOS_Byte"
T� R1,R1,#%110
^� R1,R1,#%110
hSTR R1,status
r
|SWI "XOS_Exit"
�
�.finish
�STMFD R13!,{R14}
�
�MOV R0,#13
�MOV R1,#11
�SWI "OS_Byte"
�
�MOV R0,#&10 ; EventV
�ADR R1,EventV
�
MOV R2,#0
�SWI "XOS_Release"
�LDMFD R13!,{PC}

.EventV
%CMP R0,#11 ; key pressed/released
&MOVNES PC,R14
0CMP R2,#&58
:CMPNE R2,#&4C
D
BEQ shift
N
XCMP R2,#&61
bCMPNE R2,#&3B
lBEQ ctrl
v
�CMP R2,#&60
�CMPNE R2,#&5E
�BEQ alt
�
�
CMP R1,#1
�MOVNES PC,R14
�
�CMP R2,#&22 ; numlock
�BEQ numlock
�CMP R2,#&0E ; scroll lock
BEQ scrolllock
MOVS PC,R14

 .scrolllock
*STMFD R13!,{R0-R2,R14}
4
>LDR R0,alt_data
H
CMP R0,#0
RLDRNE R0,status
\�NE R0,R0,#%10
fSTRNE R0,status
pLDMNEFD R13!,{R0-R2,PC}^
z
�LDRB R0,shift_data
�
CMP R0,#0
�BEQ f12_noshift
�LDRB R0,ctrl_data
�
CMP R0,#0
��Q R2,#220
�"MOVNE R2,#252 ; ctrl-shift-f12
�	.exit
�MOV R0,#138
�
MOV R1,#0
�
�
MOV R9,PC
��R R8,R9,#3 ; SVC Mode
TEQP R8,#0

MOV R0,R0
STMFD R13!,{R14}
$
.SWI "XOS_Byte"
8MOV R2,#%11111101
BLDRB R1,status
L� R1,R1,#%10
`
jMOV R0,#202
tSWI "XOS_Byte"
~MOV R0,#118
�SWI "XOS_Byte"
�
�LDMFD R13!,{R14}
�TEQP R9,#0
�
MOV R0,R0
�
�LDMFD R13!,{R0-R2,PC}
�
�.f12_noshift
�LDR R0,ctrl_data

CMP R0,#0

MOVNE R2,#236
�Q R2,#204

B exit
(
2.numlock
<STMFD R13!,{R0-R2,R14}
F
PLDR R0,alt_data
Z
CMP R0,#0
dLDRNE R0,status
n�NE R0,R0,#%100
xSTRNE R0,status
�LDMNEFD R13!,{R0-R2,PC}^
�
�LDRB R0,shift_data
�
CMP R0,#0
�BEQ f11_noshift
�LDRB R0,ctrl_data
�
CMP R0,#0
��Q R2,#219
�MOVNE R2,#251
�
.exit2
�MOV R0,#138
�
MOV R1,#0
�

MOV R9,PC
�R R8,R9,#3 ; SVC Mode
TEQP R8,#0
"
MOV R0,R0
,STMFD R13!,{R14}
6
@SWI "XOS_Byte"
JMOV R2,#%11111011
TLDRB R1,status
^� R1,R1,#%100
r
|MOV R0,#202
�SWI "XOS_Byte"
�MOV R0,#118
�SWI "XOS_Byte"
�
�LDMFD R13!,{R14}
�TEQP R9,#0
�
MOV R0,R0
�
�LDMFD R13!,{R0-R2,PC}
�
�.f11_noshift
LDR R0,ctrl_data

CMP R0,#0
MOVNE R2,#235
&�Q R2,#203
0B exit2
:
D
.shift
NLDRB R0,shift_data
X
CMP R1,#0
bADDNE R0,R0,#1
lSUBEQS R0,R0,#1
vMOVMI R0,#0
�STRB R0,shift_data
�MOV R0,#11
�MOVS PC,R14
�
�	.ctrl
�LDRB R0,ctrl_data
�
CMP R1,#0
�ADDNE R0,R0,#1
�SUBEQS R0,R0,#1
�MOVMI R0,#0
�STRB R0,ctrl_data
�MOV R0,#11
�MOVS PC,R14

.alt
LDRB R0,alt_data
 
CMP R1,#0
*ADDNE R0,R0,#1
4SUBEQS R0,R0,#1
>MOVMI R0,#0
HSTRB R0,alt_data
RMOVS PC,R14
\
f.shift_data
p
EQUD 0
z.ctrl_data
�
EQUD 0
�
.alt_data
�
EQUD 0
�.status
�
EQUD 0
�
�.numlockon
�STMFD R13!,{R0-R2,R14}
�LDR R1,status
��R R1,R1,#%100
�STR R1,status
�
MOV R1,#0
�MOV R2,#%11111011
	MOV R0,#202
	SWI "XOS_Byte"
	MOV R0,#118
	$SWI "XOS_Byte"
	.LDMFD R13!,{R0-R2,PC}
	8
	B.numlockoff
	LSTMFD R13!,{R0-R2,R14}
	VLDR R1,status
	`BIC R1,R1,#%100
	jSTR R1,status
	tMOV R1,#%100
	~MOV R2,#%11111011
	�MOV R0,#202
	�SWI "XOS_Byte"
	�MOV R0,#118
	�SWI "XOS_Byte"
	�LDMFD R13!,{R0-R2,PC}
	�
	�.scrolllockon
	�STMFD R13!,{R0-R2,R14}
	�LDR R1,status
	�BIC R1,R1,#%10
	�STR R1,status
	�MOV R1,#%10
MOV R2,#%11111101

MOV R0,#202
SWI "XOS_Byte"
MOV R0,#118
(SWI "XOS_Byte"
2LDMFD R13!,{R0-R2,PC}
<
F.scrolllockoff
PSTMFD R13!,{R0-R2,R14}
ZLDR R1,status
d�R R1,R1,#%10
nSTR R1,status
xMOV R1,#%0
�MOV R2,#%11111101
�MOV R0,#202
�SWI "XOS_Byte"
�MOV R0,#118
�SWI "XOS_Byte"
�LDMFD R13!,{R0-R2,PC}
�
�
.title
�EQUS "NumScr>f12"
�	EQUB0
�	ALIGN
�
�	.help
-EQUS "NumScr>f12"+�9+"1.00 (29 Jun 1994)"

EQUB 0
	ALIGN
"
,
.table
6EQUS "NumScr>f12" : EQUB 0
@	ALIGN
J
EQUD 0
T
EQUD 0
^
EQUD 0
hEQUD helptext
r%EQUS "NumLockOn" : EQUB 0 : ALIGN
|EQUD numlockon
�
EQUD 0
�EQUD numlockonsyn
�EQUD numlockonhelp
�&EQUS "NumLockOff" : EQUB 0 : ALIGN
�EQUD numlockoff
�
EQUD 0
�EQUD numlockoffsyn
�EQUD numlockoffhelp
�(EQUS "ScrollLockOn" : EQUB 0 : ALIGN
�EQUD scrolllockon
�
EQUD 0
�EQUD scrolllockonsyn
�EQUD scrolllockonhelp
)EQUS "ScrollLockOff" : EQUB 0 : ALIGN
EQUD scrolllockoff

EQUD 0
&EQUD scrolllockoffsyn
0EQUD scrolllockoffhelp
:
D
EQUD 0
N.numlockonsyn
X&EQUS "Syntax: *NumLockOn" : EQUB 0
b.numlockonhelp
l:EQUS "*NumLockOn turns on the Num Lock light" : EQUB 0
v.numlockoffsyn
�'EQUS "Syntax: *NumLockOff" : EQUB 0
�.numlockoffhelp
�<EQUS "*NumLockOff turns off the Num Lock light" : EQUB 0
�
�.scrolllockonsyn
�)EQUS "Syntax: *ScrollLockOn" : EQUB 0
�.scrolllockonhelp
�@EQUS "*ScrollLockOn turns on the Scroll Lock light" : EQUB 0
�.scrolllockoffsyn
�*EQUS "Syntax: *ScrollLockOff" : EQUB 0
�.scrolllockoffhelp
�BEQUS "*ScrollLockOff turns off the Scroll Lock light" : EQUB 0




.helptext

 �EQUS "This module turns Num Lock and Scroll lock into F11 and F12 respectively, including all ctrl/shift combinations. Their original behaviour can be obtained while holding down Alt. It is intended for use on an A4 portable."

*
EQUB 0

4	ALIGN

>]

H

R�

\

f)�"SAVE NumScr>f12 "+�~code+" "+�~(O%)

p �"SETTYPE NumScr>f12 MODULE"

z�
�
00000000  0d 00 0a 12 f4 20 3e 20  4e 75 6d 53 63 72 3e 66  |..... > NumScr>f|
00000010  31 32 0d 00 14 0f de 20  63 6f 64 65 20 32 30 30  |12..... code 200|
00000020  30 0d 00 1e 04 0d 00 28  10 e3 70 3d 34 20 b8 20  |0......(..p=4 . |
00000030  36 20 88 20 32 0d 00 32  0b 4f 25 3d 63 6f 64 65  |6 . 2..2.O%=code|
00000040  0d 00 3c 08 50 25 3d 30  0d 00 46 0a 5b 4f 50 54  |..<.P%=0..F.[OPT|
00000050  20 70 0d 00 50 0e 45 51  55 44 20 73 74 61 72 74  | p..P.EQUD start|
00000060  0d 00 5a 10 45 51 55 44  20 30 20 3b 69 6e 69 74  |..Z.EQUD 0 ;init|
00000070  0d 00 64 0f 45 51 55 44  20 66 69 6e 69 73 68 0d  |..d.EQUD finish.|
00000080  00 6e 10 45 51 55 44 20  30 20 3b 73 65 72 76 0d  |.n.EQUD 0 ;serv.|
00000090  00 78 0e 45 51 55 44 20  74 69 74 6c 65 0d 00 82  |.x.EQUD title...|
000000a0  0d 45 51 55 44 20 68 65  6c 70 0d 00 8c 0e 45 51  |.EQUD help....EQ|
000000b0  55 44 20 74 61 62 6c 65  0d 00 96 0a 45 51 55 44  |UD table....EQUD|
000000c0  20 30 0d 00 a0 0a 45 51  55 44 20 30 0d 00 aa 0a  | 0....EQUD 0....|
000000d0  45 51 55 44 20 30 0d 00  b4 0a 45 51 55 44 20 30  |EQUD 0....EQUD 0|
000000e0  0d 00 be 04 0d 00 c8 0a  2e 73 74 61 72 74 0d 00  |.........start..|
000000f0  d2 18 4d 4f 56 20 52 30  2c 23 26 31 30 20 3b 20  |..MOV R0,#&10 ; |
00000100  45 76 65 6e 74 56 0d 00  dc 11 41 44 52 20 52 31  |EventV....ADR R1|
00000110  2c 45 76 65 6e 74 56 0d  00 e6 0d 4d 4f 56 20 52  |,EventV....MOV R|
00000120  32 2c 23 30 0d 00 f0 19  53 57 49 20 22 58 4f 53  |2,#0....SWI "XOS|
00000130  5f 41 64 64 54 6f 56 65  63 74 6f 72 22 0d 00 fa  |_AddToVector"...|
00000140  04 0d 01 04 0e 4d 4f 56  20 52 30 2c 23 31 34 0d  |.....MOV R0,#14.|
00000150  01 0e 0e 4d 4f 56 20 52  31 2c 23 31 31 0d 01 18  |...MOV R1,#11...|
00000160  12 53 57 49 20 22 58 4f  53 5f 42 79 74 65 22 0d  |.SWI "XOS_Byte".|
00000170  01 22 04 0d 01 2c 0f 4d  4f 56 20 52 30 2c 23 32  |."...,.MOV R0,#2|
00000180  30 32 0d 01 36 0d 4d 4f  56 20 52 31 2c 23 30 0d  |02..6.MOV R1,#0.|
00000190  01 40 0f 4d 4f 56 20 52  32 2c 23 32 35 35 0d 01  |.@.MOV R2,#255..|
000001a0  4a 12 53 57 49 20 22 58  4f 53 5f 42 79 74 65 22  |J.SWI "XOS_Byte"|
000001b0  0d 01 54 11 80 20 52 31  2c 52 31 2c 23 25 31 31  |..T.. R1,R1,#%11|
000001c0  30 0d 01 5e 11 82 20 52  31 2c 52 31 2c 23 25 31  |0..^.. R1,R1,#%1|
000001d0  31 30 0d 01 68 11 53 54  52 20 52 31 2c 73 74 61  |10..h.STR R1,sta|
000001e0  74 75 73 0d 01 72 04 0d  01 7c 12 53 57 49 20 22  |tus..r...|.SWI "|
000001f0  58 4f 53 5f 45 78 69 74  22 0d 01 86 04 0d 01 90  |XOS_Exit".......|
00000200  0b 2e 66 69 6e 69 73 68  0d 01 9a 14 53 54 4d 46  |..finish....STMF|
00000210  44 20 52 31 33 21 2c 7b  52 31 34 7d 0d 01 a4 04  |D R13!,{R14}....|
00000220  0d 01 ae 0e 4d 4f 56 20  52 30 2c 23 31 33 0d 01  |....MOV R0,#13..|
00000230  b8 0e 4d 4f 56 20 52 31  2c 23 31 31 0d 01 c2 11  |..MOV R1,#11....|
00000240  53 57 49 20 22 4f 53 5f  42 79 74 65 22 0d 01 cc  |SWI "OS_Byte"...|
00000250  04 0d 01 d6 18 4d 4f 56  20 52 30 2c 23 26 31 30  |.....MOV R0,#&10|
00000260  20 3b 20 45 76 65 6e 74  56 0d 01 e0 11 41 44 52  | ; EventV....ADR|
00000270  20 52 31 2c 45 76 65 6e  74 56 0d 01 ea 0d 4d 4f  | R1,EventV....MO|
00000280  56 20 52 32 2c 23 30 0d  01 f4 15 53 57 49 20 22  |V R2,#0....SWI "|
00000290  58 4f 53 5f 52 65 6c 65  61 73 65 22 0d 01 fe 13  |XOS_Release"....|
000002a0  4c 44 4d 46 44 20 52 31  33 21 2c 7b 50 43 7d 0d  |LDMFD R13!,{PC}.|
000002b0  02 08 04 0d 02 12 0b 2e  45 76 65 6e 74 56 0d 02  |........EventV..|
000002c0  1c 25 43 4d 50 20 52 30  2c 23 31 31 20 3b 20 6b  |.%CMP R0,#11 ; k|
000002d0  65 79 20 70 72 65 73 73  65 64 2f 72 65 6c 65 61  |ey pressed/relea|
000002e0  73 65 64 0d 02 26 11 4d  4f 56 4e 45 53 20 50 43  |sed..&.MOVNES PC|
000002f0  2c 52 31 34 0d 02 30 0f  43 4d 50 20 52 32 2c 23  |,R14..0.CMP R2,#|
00000300  26 35 38 0d 02 3a 11 43  4d 50 4e 45 20 52 32 2c  |&58..:.CMPNE R2,|
00000310  23 26 34 43 0d 02 44 0d  42 45 51 20 73 68 69 66  |#&4C..D.BEQ shif|
00000320  74 0d 02 4e 04 0d 02 58  0f 43 4d 50 20 52 32 2c  |t..N...X.CMP R2,|
00000330  23 26 36 31 0d 02 62 11  43 4d 50 4e 45 20 52 32  |#&61..b.CMPNE R2|
00000340  2c 23 26 33 42 0d 02 6c  0c 42 45 51 20 63 74 72  |,#&3B..l.BEQ ctr|
00000350  6c 0d 02 76 04 0d 02 80  0f 43 4d 50 20 52 32 2c  |l..v.....CMP R2,|
00000360  23 26 36 30 0d 02 8a 11  43 4d 50 4e 45 20 52 32  |#&60....CMPNE R2|
00000370  2c 23 26 35 45 0d 02 94  0b 42 45 51 20 61 6c 74  |,#&5E....BEQ alt|
00000380  0d 02 9e 04 0d 02 a8 0d  43 4d 50 20 52 31 2c 23  |........CMP R1,#|
00000390  31 0d 02 b2 11 4d 4f 56  4e 45 53 20 50 43 2c 52  |1....MOVNES PC,R|
000003a0  31 34 0d 02 da 04 0d 02  e4 19 43 4d 50 20 52 32  |14........CMP R2|
000003b0  2c 23 26 32 32 20 3b 20  6e 75 6d 6c 6f 63 6b 0d  |,#&22 ; numlock.|
000003c0  02 ee 0f 42 45 51 20 6e  75 6d 6c 6f 63 6b 0d 02  |...BEQ numlock..|
000003d0  f8 1d 43 4d 50 20 52 32  2c 23 26 30 45 20 3b 20  |..CMP R2,#&0E ; |
000003e0  73 63 72 6f 6c 6c 20 6c  6f 63 6b 0d 03 02 12 42  |scroll lock....B|
000003f0  45 51 20 73 63 72 6f 6c  6c 6c 6f 63 6b 0d 03 0c  |EQ scrolllock...|
00000400  0f 4d 4f 56 53 20 50 43  2c 52 31 34 0d 03 16 04  |.MOVS PC,R14....|
00000410  0d 03 20 0f 2e 73 63 72  6f 6c 6c 6c 6f 63 6b 0d  |.. ..scrolllock.|
00000420  03 2a 1a 53 54 4d 46 44  20 52 31 33 21 2c 7b 52  |.*.STMFD R13!,{R|
00000430  30 2d 52 32 2c 52 31 34  7d 0d 03 34 04 0d 03 3e  |0-R2,R14}..4...>|
00000440  13 4c 44 52 20 52 30 2c  61 6c 74 5f 64 61 74 61  |.LDR R0,alt_data|
00000450  0d 03 48 0d 43 4d 50 20  52 30 2c 23 30 0d 03 52  |..H.CMP R0,#0..R|
00000460  13 4c 44 52 4e 45 20 52  30 2c 73 74 61 74 75 73  |.LDRNE R0,status|
00000470  0d 03 5c 12 82 4e 45 20  52 30 2c 52 30 2c 23 25  |..\..NE R0,R0,#%|
00000480  31 30 0d 03 66 13 53 54  52 4e 45 20 52 30 2c 73  |10..f.STRNE R0,s|
00000490  74 61 74 75 73 0d 03 70  1c 4c 44 4d 4e 45 46 44  |tatus..p.LDMNEFD|
000004a0  20 52 31 33 21 2c 7b 52  30 2d 52 32 2c 50 43 7d  | R13!,{R0-R2,PC}|
000004b0  5e 0d 03 7a 04 0d 03 84  16 4c 44 52 42 20 52 30  |^..z.....LDRB R0|
000004c0  2c 73 68 69 66 74 5f 64  61 74 61 0d 03 8e 0d 43  |,shift_data....C|
000004d0  4d 50 20 52 30 2c 23 30  0d 03 98 13 42 45 51 20  |MP R0,#0....BEQ |
000004e0  66 31 32 5f 6e 6f 73 68  69 66 74 0d 03 a2 15 4c  |f12_noshift....L|
000004f0  44 52 42 20 52 30 2c 63  74 72 6c 5f 64 61 74 61  |DRB R0,ctrl_data|
00000500  0d 03 ac 0d 43 4d 50 20  52 30 2c 23 30 0d 03 b6  |....CMP R0,#0...|
00000510  0e ec 51 20 52 32 2c 23  32 32 30 0d 03 c0 22 4d  |..Q R2,#220..."M|
00000520  4f 56 4e 45 20 52 32 2c  23 32 35 32 20 3b 20 63  |OVNE R2,#252 ; c|
00000530  74 72 6c 2d 73 68 69 66  74 2d 66 31 32 0d 03 ca  |trl-shift-f12...|
00000540  09 2e 65 78 69 74 0d 03  d4 0f 4d 4f 56 20 52 30  |..exit....MOV R0|
00000550  2c 23 31 33 38 0d 03 de  0d 4d 4f 56 20 52 31 2c  |,#138....MOV R1,|
00000560  23 30 0d 03 e8 04 0d 03  f2 0d 4d 4f 56 20 52 39  |#0........MOV R9|
00000570  2c 50 43 0d 03 fc 1a 84  52 20 52 38 2c 52 39 2c  |,PC.....R R8,R9,|
00000580  23 33 20 3b 20 53 56 43  20 4d 6f 64 65 0d 04 06  |#3 ; SVC Mode...|
00000590  0e 54 45 51 50 20 52 38  2c 23 30 0d 04 10 0d 4d  |.TEQP R8,#0....M|
000005a0  4f 56 20 52 30 2c 52 30  0d 04 1a 14 53 54 4d 46  |OV R0,R0....STMF|
000005b0  44 20 52 31 33 21 2c 7b  52 31 34 7d 0d 04 24 04  |D R13!,{R14}..$.|
000005c0  0d 04 2e 12 53 57 49 20  22 58 4f 53 5f 42 79 74  |....SWI "XOS_Byt|
000005d0  65 22 0d 04 38 15 4d 4f  56 20 52 32 2c 23 25 31  |e"..8.MOV R2,#%1|
000005e0  31 31 31 31 31 30 31 0d  04 42 12 4c 44 52 42 20  |1111101..B.LDRB |
000005f0  52 31 2c 73 74 61 74 75  73 0d 04 4c 10 80 20 52  |R1,status..L.. R|
00000600  31 2c 52 31 2c 23 25 31  30 0d 04 60 04 0d 04 6a  |1,R1,#%10..`...j|
00000610  0f 4d 4f 56 20 52 30 2c  23 32 30 32 0d 04 74 12  |.MOV R0,#202..t.|
00000620  53 57 49 20 22 58 4f 53  5f 42 79 74 65 22 0d 04  |SWI "XOS_Byte"..|
00000630  7e 0f 4d 4f 56 20 52 30  2c 23 31 31 38 0d 04 88  |~.MOV R0,#118...|
00000640  12 53 57 49 20 22 58 4f  53 5f 42 79 74 65 22 0d  |.SWI "XOS_Byte".|
00000650  04 92 04 0d 04 9c 14 4c  44 4d 46 44 20 52 31 33  |.......LDMFD R13|
00000660  21 2c 7b 52 31 34 7d 0d  04 a6 0e 54 45 51 50 20  |!,{R14}....TEQP |
00000670  52 39 2c 23 30 0d 04 b0  0d 4d 4f 56 20 52 30 2c  |R9,#0....MOV R0,|
00000680  52 30 0d 04 ba 04 0d 04  c4 19 4c 44 4d 46 44 20  |R0........LDMFD |
00000690  52 31 33 21 2c 7b 52 30  2d 52 32 2c 50 43 7d 0d  |R13!,{R0-R2,PC}.|
000006a0  04 c5 04 0d 04 ec 10 2e  66 31 32 5f 6e 6f 73 68  |........f12_nosh|
000006b0  69 66 74 0d 04 f6 14 4c  44 52 20 52 30 2c 63 74  |ift....LDR R0,ct|
000006c0  72 6c 5f 64 61 74 61 0d  05 00 0d 43 4d 50 20 52  |rl_data....CMP R|
000006d0  30 2c 23 30 0d 05 0a 11  4d 4f 56 4e 45 20 52 32  |0,#0....MOVNE R2|
000006e0  2c 23 32 33 36 0d 05 14  0e ec 51 20 52 32 2c 23  |,#236.....Q R2,#|
000006f0  32 30 34 0d 05 1e 0a 42  20 65 78 69 74 0d 05 28  |204....B exit..(|
00000700  04 0d 05 32 0c 2e 6e 75  6d 6c 6f 63 6b 0d 05 3c  |...2..numlock..<|
00000710  1a 53 54 4d 46 44 20 52  31 33 21 2c 7b 52 30 2d  |.STMFD R13!,{R0-|
00000720  52 32 2c 52 31 34 7d 0d  05 46 04 0d 05 50 13 4c  |R2,R14}..F...P.L|
00000730  44 52 20 52 30 2c 61 6c  74 5f 64 61 74 61 0d 05  |DR R0,alt_data..|
00000740  5a 0d 43 4d 50 20 52 30  2c 23 30 0d 05 64 13 4c  |Z.CMP R0,#0..d.L|
00000750  44 52 4e 45 20 52 30 2c  73 74 61 74 75 73 0d 05  |DRNE R0,status..|
00000760  6e 13 82 4e 45 20 52 30  2c 52 30 2c 23 25 31 30  |n..NE R0,R0,#%10|
00000770  30 0d 05 78 13 53 54 52  4e 45 20 52 30 2c 73 74  |0..x.STRNE R0,st|
00000780  61 74 75 73 0d 05 82 1c  4c 44 4d 4e 45 46 44 20  |atus....LDMNEFD |
00000790  52 31 33 21 2c 7b 52 30  2d 52 32 2c 50 43 7d 5e  |R13!,{R0-R2,PC}^|
000007a0  0d 05 8c 04 0d 05 96 16  4c 44 52 42 20 52 30 2c  |........LDRB R0,|
000007b0  73 68 69 66 74 5f 64 61  74 61 0d 05 a0 0d 43 4d  |shift_data....CM|
000007c0  50 20 52 30 2c 23 30 0d  05 aa 13 42 45 51 20 66  |P R0,#0....BEQ f|
000007d0  31 31 5f 6e 6f 73 68 69  66 74 0d 05 b4 15 4c 44  |11_noshift....LD|
000007e0  52 42 20 52 30 2c 63 74  72 6c 5f 64 61 74 61 0d  |RB R0,ctrl_data.|
000007f0  05 be 0d 43 4d 50 20 52  30 2c 23 30 0d 05 c8 0e  |...CMP R0,#0....|
00000800  ec 51 20 52 32 2c 23 32  31 39 0d 05 d2 11 4d 4f  |.Q R2,#219....MO|
00000810  56 4e 45 20 52 32 2c 23  32 35 31 0d 05 dc 0a 2e  |VNE R2,#251.....|
00000820  65 78 69 74 32 0d 05 e6  0f 4d 4f 56 20 52 30 2c  |exit2....MOV R0,|
00000830  23 31 33 38 0d 05 f0 0d  4d 4f 56 20 52 31 2c 23  |#138....MOV R1,#|
00000840  30 0d 05 fa 04 0d 06 04  0d 4d 4f 56 20 52 39 2c  |0........MOV R9,|
00000850  50 43 0d 06 0e 1a 84 52  20 52 38 2c 52 39 2c 23  |PC.....R R8,R9,#|
00000860  33 20 3b 20 53 56 43 20  4d 6f 64 65 0d 06 18 0e  |3 ; SVC Mode....|
00000870  54 45 51 50 20 52 38 2c  23 30 0d 06 22 0d 4d 4f  |TEQP R8,#0..".MO|
00000880  56 20 52 30 2c 52 30 0d  06 2c 14 53 54 4d 46 44  |V R0,R0..,.STMFD|
00000890  20 52 31 33 21 2c 7b 52  31 34 7d 0d 06 36 04 0d  | R13!,{R14}..6..|
000008a0  06 40 12 53 57 49 20 22  58 4f 53 5f 42 79 74 65  |.@.SWI "XOS_Byte|
000008b0  22 0d 06 4a 15 4d 4f 56  20 52 32 2c 23 25 31 31  |"..J.MOV R2,#%11|
000008c0  31 31 31 30 31 31 0d 06  54 12 4c 44 52 42 20 52  |111011..T.LDRB R|
000008d0  31 2c 73 74 61 74 75 73  0d 06 5e 11 80 20 52 31  |1,status..^.. R1|
000008e0  2c 52 31 2c 23 25 31 30  30 0d 06 72 04 0d 06 7c  |,R1,#%100..r...||
000008f0  0f 4d 4f 56 20 52 30 2c  23 32 30 32 0d 06 86 12  |.MOV R0,#202....|
00000900  53 57 49 20 22 58 4f 53  5f 42 79 74 65 22 0d 06  |SWI "XOS_Byte"..|
00000910  90 0f 4d 4f 56 20 52 30  2c 23 31 31 38 0d 06 9a  |..MOV R0,#118...|
00000920  12 53 57 49 20 22 58 4f  53 5f 42 79 74 65 22 0d  |.SWI "XOS_Byte".|
00000930  06 a4 04 0d 06 ae 14 4c  44 4d 46 44 20 52 31 33  |.......LDMFD R13|
00000940  21 2c 7b 52 31 34 7d 0d  06 b8 0e 54 45 51 50 20  |!,{R14}....TEQP |
00000950  52 39 2c 23 30 0d 06 c2  0d 4d 4f 56 20 52 30 2c  |R9,#0....MOV R0,|
00000960  52 30 0d 06 cc 04 0d 06  d6 19 4c 44 4d 46 44 20  |R0........LDMFD |
00000970  52 31 33 21 2c 7b 52 30  2d 52 32 2c 50 43 7d 0d  |R13!,{R0-R2,PC}.|
00000980  06 f4 04 0d 06 fe 10 2e  66 31 31 5f 6e 6f 73 68  |........f11_nosh|
00000990  69 66 74 0d 07 08 14 4c  44 52 20 52 30 2c 63 74  |ift....LDR R0,ct|
000009a0  72 6c 5f 64 61 74 61 0d  07 12 0d 43 4d 50 20 52  |rl_data....CMP R|
000009b0  30 2c 23 30 0d 07 1c 11  4d 4f 56 4e 45 20 52 32  |0,#0....MOVNE R2|
000009c0  2c 23 32 33 35 0d 07 26  0e ec 51 20 52 32 2c 23  |,#235..&..Q R2,#|
000009d0  32 30 33 0d 07 30 0b 42  20 65 78 69 74 32 0d 07  |203..0.B exit2..|
000009e0  3a 04 0d 07 44 0a 2e 73  68 69 66 74 0d 07 4e 16  |:...D..shift..N.|
000009f0  4c 44 52 42 20 52 30 2c  73 68 69 66 74 5f 64 61  |LDRB R0,shift_da|
00000a00  74 61 0d 07 58 0d 43 4d  50 20 52 31 2c 23 30 0d  |ta..X.CMP R1,#0.|
00000a10  07 62 12 41 44 44 4e 45  20 52 30 2c 52 30 2c 23  |.b.ADDNE R0,R0,#|
00000a20  31 0d 07 6c 13 53 55 42  45 51 53 20 52 30 2c 52  |1..l.SUBEQS R0,R|
00000a30  30 2c 23 31 0d 07 76 0f  4d 4f 56 4d 49 20 52 30  |0,#1..v.MOVMI R0|
00000a40  2c 23 30 0d 07 80 16 53  54 52 42 20 52 30 2c 73  |,#0....STRB R0,s|
00000a50  68 69 66 74 5f 64 61 74  61 0d 07 8a 0e 4d 4f 56  |hift_data....MOV|
00000a60  20 52 30 2c 23 31 31 0d  07 94 0f 4d 4f 56 53 20  | R0,#11....MOVS |
00000a70  50 43 2c 52 31 34 0d 07  9e 04 0d 07 a8 09 2e 63  |PC,R14.........c|
00000a80  74 72 6c 0d 07 b2 15 4c  44 52 42 20 52 30 2c 63  |trl....LDRB R0,c|
00000a90  74 72 6c 5f 64 61 74 61  0d 07 bc 0d 43 4d 50 20  |trl_data....CMP |
00000aa0  52 31 2c 23 30 0d 07 c6  12 41 44 44 4e 45 20 52  |R1,#0....ADDNE R|
00000ab0  30 2c 52 30 2c 23 31 0d  07 d0 13 53 55 42 45 51  |0,R0,#1....SUBEQ|
00000ac0  53 20 52 30 2c 52 30 2c  23 31 0d 07 da 0f 4d 4f  |S R0,R0,#1....MO|
00000ad0  56 4d 49 20 52 30 2c 23  30 0d 07 e4 15 53 54 52  |VMI R0,#0....STR|
00000ae0  42 20 52 30 2c 63 74 72  6c 5f 64 61 74 61 0d 07  |B R0,ctrl_data..|
00000af0  ee 0e 4d 4f 56 20 52 30  2c 23 31 31 0d 07 f8 0f  |..MOV R0,#11....|
00000b00  4d 4f 56 53 20 50 43 2c  52 31 34 0d 08 02 04 0d  |MOVS PC,R14.....|
00000b10  08 0c 08 2e 61 6c 74 0d  08 16 14 4c 44 52 42 20  |....alt....LDRB |
00000b20  52 30 2c 61 6c 74 5f 64  61 74 61 0d 08 20 0d 43  |R0,alt_data.. .C|
00000b30  4d 50 20 52 31 2c 23 30  0d 08 2a 12 41 44 44 4e  |MP R1,#0..*.ADDN|
00000b40  45 20 52 30 2c 52 30 2c  23 31 0d 08 34 13 53 55  |E R0,R0,#1..4.SU|
00000b50  42 45 51 53 20 52 30 2c  52 30 2c 23 31 0d 08 3e  |BEQS R0,R0,#1..>|
00000b60  0f 4d 4f 56 4d 49 20 52  30 2c 23 30 0d 08 48 14  |.MOVMI R0,#0..H.|
00000b70  53 54 52 42 20 52 30 2c  61 6c 74 5f 64 61 74 61  |STRB R0,alt_data|
00000b80  0d 08 52 0f 4d 4f 56 53  20 50 43 2c 52 31 34 0d  |..R.MOVS PC,R14.|
00000b90  08 5c 04 0d 08 66 0f 2e  73 68 69 66 74 5f 64 61  |.\...f..shift_da|
00000ba0  74 61 0d 08 70 0a 45 51  55 44 20 30 0d 08 7a 0e  |ta..p.EQUD 0..z.|
00000bb0  2e 63 74 72 6c 5f 64 61  74 61 0d 08 84 0a 45 51  |.ctrl_data....EQ|
00000bc0  55 44 20 30 0d 08 8e 0d  2e 61 6c 74 5f 64 61 74  |UD 0.....alt_dat|
00000bd0  61 0d 08 98 0a 45 51 55  44 20 30 0d 08 a2 0b 2e  |a....EQUD 0.....|
00000be0  73 74 61 74 75 73 0d 08  ac 0a 45 51 55 44 20 30  |status....EQUD 0|
00000bf0  0d 08 b6 04 0d 08 c0 0e  2e 6e 75 6d 6c 6f 63 6b  |.........numlock|
00000c00  6f 6e 0d 08 ca 1a 53 54  4d 46 44 20 52 31 33 21  |on....STMFD R13!|
00000c10  2c 7b 52 30 2d 52 32 2c  52 31 34 7d 0d 08 d4 11  |,{R0-R2,R14}....|
00000c20  4c 44 52 20 52 31 2c 73  74 61 74 75 73 0d 08 de  |LDR R1,status...|
00000c30  12 84 52 20 52 31 2c 52  31 2c 23 25 31 30 30 0d  |..R R1,R1,#%100.|
00000c40  08 e8 11 53 54 52 20 52  31 2c 73 74 61 74 75 73  |...STR R1,status|
00000c50  0d 08 f2 0d 4d 4f 56 20  52 31 2c 23 30 0d 08 fc  |....MOV R1,#0...|
00000c60  15 4d 4f 56 20 52 32 2c  23 25 31 31 31 31 31 30  |.MOV R2,#%111110|
00000c70  31 31 0d 09 06 0f 4d 4f  56 20 52 30 2c 23 32 30  |11....MOV R0,#20|
00000c80  32 0d 09 10 12 53 57 49  20 22 58 4f 53 5f 42 79  |2....SWI "XOS_By|
00000c90  74 65 22 0d 09 1a 0f 4d  4f 56 20 52 30 2c 23 31  |te"....MOV R0,#1|
00000ca0  31 38 0d 09 24 12 53 57  49 20 22 58 4f 53 5f 42  |18..$.SWI "XOS_B|
00000cb0  79 74 65 22 0d 09 2e 19  4c 44 4d 46 44 20 52 31  |yte"....LDMFD R1|
00000cc0  33 21 2c 7b 52 30 2d 52  32 2c 50 43 7d 0d 09 38  |3!,{R0-R2,PC}..8|
00000cd0  04 0d 09 42 0f 2e 6e 75  6d 6c 6f 63 6b 6f 66 66  |...B..numlockoff|
00000ce0  0d 09 4c 1a 53 54 4d 46  44 20 52 31 33 21 2c 7b  |..L.STMFD R13!,{|
00000cf0  52 30 2d 52 32 2c 52 31  34 7d 0d 09 56 11 4c 44  |R0-R2,R14}..V.LD|
00000d00  52 20 52 31 2c 73 74 61  74 75 73 0d 09 60 13 42  |R R1,status..`.B|
00000d10  49 43 20 52 31 2c 52 31  2c 23 25 31 30 30 0d 09  |IC R1,R1,#%100..|
00000d20  6a 11 53 54 52 20 52 31  2c 73 74 61 74 75 73 0d  |j.STR R1,status.|
00000d30  09 74 10 4d 4f 56 20 52  31 2c 23 25 31 30 30 0d  |.t.MOV R1,#%100.|
00000d40  09 7e 15 4d 4f 56 20 52  32 2c 23 25 31 31 31 31  |.~.MOV R2,#%1111|
00000d50  31 30 31 31 0d 09 88 0f  4d 4f 56 20 52 30 2c 23  |1011....MOV R0,#|
00000d60  32 30 32 0d 09 92 12 53  57 49 20 22 58 4f 53 5f  |202....SWI "XOS_|
00000d70  42 79 74 65 22 0d 09 9c  0f 4d 4f 56 20 52 30 2c  |Byte"....MOV R0,|
00000d80  23 31 31 38 0d 09 a6 12  53 57 49 20 22 58 4f 53  |#118....SWI "XOS|
00000d90  5f 42 79 74 65 22 0d 09  b0 19 4c 44 4d 46 44 20  |_Byte"....LDMFD |
00000da0  52 31 33 21 2c 7b 52 30  2d 52 32 2c 50 43 7d 0d  |R13!,{R0-R2,PC}.|
00000db0  09 ba 04 0d 09 c4 11 2e  73 63 72 6f 6c 6c 6c 6f  |........scrolllo|
00000dc0  63 6b 6f 6e 0d 09 ce 1a  53 54 4d 46 44 20 52 31  |ckon....STMFD R1|
00000dd0  33 21 2c 7b 52 30 2d 52  32 2c 52 31 34 7d 0d 09  |3!,{R0-R2,R14}..|
00000de0  d8 11 4c 44 52 20 52 31  2c 73 74 61 74 75 73 0d  |..LDR R1,status.|
00000df0  09 e2 12 42 49 43 20 52  31 2c 52 31 2c 23 25 31  |...BIC R1,R1,#%1|
00000e00  30 0d 09 ec 11 53 54 52  20 52 31 2c 73 74 61 74  |0....STR R1,stat|
00000e10  75 73 0d 09 f6 0f 4d 4f  56 20 52 31 2c 23 25 31  |us....MOV R1,#%1|
00000e20  30 0d 0a 00 15 4d 4f 56  20 52 32 2c 23 25 31 31  |0....MOV R2,#%11|
00000e30  31 31 31 31 30 31 0d 0a  0a 0f 4d 4f 56 20 52 30  |111101....MOV R0|
00000e40  2c 23 32 30 32 0d 0a 14  12 53 57 49 20 22 58 4f  |,#202....SWI "XO|
00000e50  53 5f 42 79 74 65 22 0d  0a 1e 0f 4d 4f 56 20 52  |S_Byte"....MOV R|
00000e60  30 2c 23 31 31 38 0d 0a  28 12 53 57 49 20 22 58  |0,#118..(.SWI "X|
00000e70  4f 53 5f 42 79 74 65 22  0d 0a 32 19 4c 44 4d 46  |OS_Byte"..2.LDMF|
00000e80  44 20 52 31 33 21 2c 7b  52 30 2d 52 32 2c 50 43  |D R13!,{R0-R2,PC|
00000e90  7d 0d 0a 3c 04 0d 0a 46  12 2e 73 63 72 6f 6c 6c  |}..<...F..scroll|
00000ea0  6c 6f 63 6b 6f 66 66 0d  0a 50 1a 53 54 4d 46 44  |lockoff..P.STMFD|
00000eb0  20 52 31 33 21 2c 7b 52  30 2d 52 32 2c 52 31 34  | R13!,{R0-R2,R14|
00000ec0  7d 0d 0a 5a 11 4c 44 52  20 52 31 2c 73 74 61 74  |}..Z.LDR R1,stat|
00000ed0  75 73 0d 0a 64 11 84 52  20 52 31 2c 52 31 2c 23  |us..d..R R1,R1,#|
00000ee0  25 31 30 0d 0a 6e 11 53  54 52 20 52 31 2c 73 74  |%10..n.STR R1,st|
00000ef0  61 74 75 73 0d 0a 78 0e  4d 4f 56 20 52 31 2c 23  |atus..x.MOV R1,#|
00000f00  25 30 0d 0a 82 15 4d 4f  56 20 52 32 2c 23 25 31  |%0....MOV R2,#%1|
00000f10  31 31 31 31 31 30 31 0d  0a 8c 0f 4d 4f 56 20 52  |1111101....MOV R|
00000f20  30 2c 23 32 30 32 0d 0a  96 12 53 57 49 20 22 58  |0,#202....SWI "X|
00000f30  4f 53 5f 42 79 74 65 22  0d 0a a0 0f 4d 4f 56 20  |OS_Byte"....MOV |
00000f40  52 30 2c 23 31 31 38 0d  0a aa 12 53 57 49 20 22  |R0,#118....SWI "|
00000f50  58 4f 53 5f 42 79 74 65  22 0d 0a b4 19 4c 44 4d  |XOS_Byte"....LDM|
00000f60  46 44 20 52 31 33 21 2c  7b 52 30 2d 52 32 2c 50  |FD R13!,{R0-R2,P|
00000f70  43 7d 0d 0a be 04 0d 0a  c8 0a 2e 74 69 74 6c 65  |C}.........title|
00000f80  0d 0a d2 15 45 51 55 53  20 22 4e 75 6d 53 63 72  |....EQUS "NumScr|
00000f90  3e 66 31 32 22 0d 0a dc  09 45 51 55 42 30 0d 0a  |>f12"....EQUB0..|
00000fa0  e6 09 41 4c 49 47 4e 0d  0a f0 04 0d 0a fa 09 2e  |..ALIGN.........|
00000fb0  68 65 6c 70 0d 0b 04 2d  45 51 55 53 20 22 4e 75  |help...-EQUS "Nu|
00000fc0  6d 53 63 72 3e 66 31 32  22 2b bd 39 2b 22 31 2e  |mScr>f12"+.9+"1.|
00000fd0  30 30 20 28 32 39 20 4a  75 6e 20 31 39 39 34 29  |00 (29 Jun 1994)|
00000fe0  22 0d 0b 0e 0a 45 51 55  42 20 30 0d 0b 18 09 41  |"....EQUB 0....A|
00000ff0  4c 49 47 4e 0d 0b 22 04  0d 0b 2c 0a 2e 74 61 62  |LIGN.."...,..tab|
00001000  6c 65 0d 0b 36 1e 45 51  55 53 20 22 4e 75 6d 53  |le..6.EQUS "NumS|
00001010  63 72 3e 66 31 32 22 20  3a 20 45 51 55 42 20 30  |cr>f12" : EQUB 0|
00001020  0d 0b 40 09 41 4c 49 47  4e 0d 0b 4a 0a 45 51 55  |..@.ALIGN..J.EQU|
00001030  44 20 30 0d 0b 54 0a 45  51 55 44 20 30 0d 0b 5e  |D 0..T.EQUD 0..^|
00001040  0a 45 51 55 44 20 30 0d  0b 68 11 45 51 55 44 20  |.EQUD 0..h.EQUD |
00001050  68 65 6c 70 74 65 78 74  0d 0b 72 25 45 51 55 53  |helptext..r%EQUS|
00001060  20 22 4e 75 6d 4c 6f 63  6b 4f 6e 22 20 3a 20 45  | "NumLockOn" : E|
00001070  51 55 42 20 30 20 3a 20  41 4c 49 47 4e 0d 0b 7c  |QUB 0 : ALIGN..||
00001080  12 45 51 55 44 20 6e 75  6d 6c 6f 63 6b 6f 6e 0d  |.EQUD numlockon.|
00001090  0b 86 0a 45 51 55 44 20  30 0d 0b 90 15 45 51 55  |...EQUD 0....EQU|
000010a0  44 20 6e 75 6d 6c 6f 63  6b 6f 6e 73 79 6e 0d 0b  |D numlockonsyn..|
000010b0  9a 16 45 51 55 44 20 6e  75 6d 6c 6f 63 6b 6f 6e  |..EQUD numlockon|
000010c0  68 65 6c 70 0d 0b a4 26  45 51 55 53 20 22 4e 75  |help...&EQUS "Nu|
000010d0  6d 4c 6f 63 6b 4f 66 66  22 20 3a 20 45 51 55 42  |mLockOff" : EQUB|
000010e0  20 30 20 3a 20 41 4c 49  47 4e 0d 0b ae 13 45 51  | 0 : ALIGN....EQ|
000010f0  55 44 20 6e 75 6d 6c 6f  63 6b 6f 66 66 0d 0b b8  |UD numlockoff...|
00001100  0a 45 51 55 44 20 30 0d  0b c2 16 45 51 55 44 20  |.EQUD 0....EQUD |
00001110  6e 75 6d 6c 6f 63 6b 6f  66 66 73 79 6e 0d 0b cc  |numlockoffsyn...|
00001120  17 45 51 55 44 20 6e 75  6d 6c 6f 63 6b 6f 66 66  |.EQUD numlockoff|
00001130  68 65 6c 70 0d 0b d6 28  45 51 55 53 20 22 53 63  |help...(EQUS "Sc|
00001140  72 6f 6c 6c 4c 6f 63 6b  4f 6e 22 20 3a 20 45 51  |rollLockOn" : EQ|
00001150  55 42 20 30 20 3a 20 41  4c 49 47 4e 0d 0b e0 15  |UB 0 : ALIGN....|
00001160  45 51 55 44 20 73 63 72  6f 6c 6c 6c 6f 63 6b 6f  |EQUD scrolllocko|
00001170  6e 0d 0b ea 0a 45 51 55  44 20 30 0d 0b f4 18 45  |n....EQUD 0....E|
00001180  51 55 44 20 73 63 72 6f  6c 6c 6c 6f 63 6b 6f 6e  |QUD scrolllockon|
00001190  73 79 6e 0d 0b fe 19 45  51 55 44 20 73 63 72 6f  |syn....EQUD scro|
000011a0  6c 6c 6c 6f 63 6b 6f 6e  68 65 6c 70 0d 0c 08 29  |lllockonhelp...)|
000011b0  45 51 55 53 20 22 53 63  72 6f 6c 6c 4c 6f 63 6b  |EQUS "ScrollLock|
000011c0  4f 66 66 22 20 3a 20 45  51 55 42 20 30 20 3a 20  |Off" : EQUB 0 : |
000011d0  41 4c 49 47 4e 0d 0c 12  16 45 51 55 44 20 73 63  |ALIGN....EQUD sc|
000011e0  72 6f 6c 6c 6c 6f 63 6b  6f 66 66 0d 0c 1c 0a 45  |rolllockoff....E|
000011f0  51 55 44 20 30 0d 0c 26  19 45 51 55 44 20 73 63  |QUD 0..&.EQUD sc|
00001200  72 6f 6c 6c 6c 6f 63 6b  6f 66 66 73 79 6e 0d 0c  |rolllockoffsyn..|
00001210  30 1a 45 51 55 44 20 73  63 72 6f 6c 6c 6c 6f 63  |0.EQUD scrollloc|
00001220  6b 6f 66 66 68 65 6c 70  0d 0c 3a 04 0d 0c 44 0a  |koffhelp..:...D.|
00001230  45 51 55 44 20 30 0d 0c  4e 11 2e 6e 75 6d 6c 6f  |EQUD 0..N..numlo|
00001240  63 6b 6f 6e 73 79 6e 0d  0c 58 26 45 51 55 53 20  |ckonsyn..X&EQUS |
00001250  22 53 79 6e 74 61 78 3a  20 2a 4e 75 6d 4c 6f 63  |"Syntax: *NumLoc|
00001260  6b 4f 6e 22 20 3a 20 45  51 55 42 20 30 0d 0c 62  |kOn" : EQUB 0..b|
00001270  12 2e 6e 75 6d 6c 6f 63  6b 6f 6e 68 65 6c 70 0d  |..numlockonhelp.|
00001280  0c 6c 3a 45 51 55 53 20  22 2a 4e 75 6d 4c 6f 63  |.l:EQUS "*NumLoc|
00001290  6b 4f 6e 20 74 75 72 6e  73 20 6f 6e 20 74 68 65  |kOn turns on the|
000012a0  20 4e 75 6d 20 4c 6f 63  6b 20 6c 69 67 68 74 22  | Num Lock light"|
000012b0  20 3a 20 45 51 55 42 20  30 0d 0c 76 12 2e 6e 75  | : EQUB 0..v..nu|
000012c0  6d 6c 6f 63 6b 6f 66 66  73 79 6e 0d 0c 80 27 45  |mlockoffsyn...'E|
000012d0  51 55 53 20 22 53 79 6e  74 61 78 3a 20 2a 4e 75  |QUS "Syntax: *Nu|
000012e0  6d 4c 6f 63 6b 4f 66 66  22 20 3a 20 45 51 55 42  |mLockOff" : EQUB|
000012f0  20 30 0d 0c 8a 13 2e 6e  75 6d 6c 6f 63 6b 6f 66  | 0.....numlockof|
00001300  66 68 65 6c 70 0d 0c 94  3c 45 51 55 53 20 22 2a  |fhelp...<EQUS "*|
00001310  4e 75 6d 4c 6f 63 6b 4f  66 66 20 74 75 72 6e 73  |NumLockOff turns|
00001320  20 6f 66 66 20 74 68 65  20 4e 75 6d 20 4c 6f 63  | off the Num Loc|
00001330  6b 20 6c 69 67 68 74 22  20 3a 20 45 51 55 42 20  |k light" : EQUB |
00001340  30 0d 0c 9e 04 0d 0c a8  14 2e 73 63 72 6f 6c 6c  |0.........scroll|
00001350  6c 6f 63 6b 6f 6e 73 79  6e 0d 0c b2 29 45 51 55  |lockonsyn...)EQU|
00001360  53 20 22 53 79 6e 74 61  78 3a 20 2a 53 63 72 6f  |S "Syntax: *Scro|
00001370  6c 6c 4c 6f 63 6b 4f 6e  22 20 3a 20 45 51 55 42  |llLockOn" : EQUB|
00001380  20 30 0d 0c bc 15 2e 73  63 72 6f 6c 6c 6c 6f 63  | 0.....scrollloc|
00001390  6b 6f 6e 68 65 6c 70 0d  0c c6 40 45 51 55 53 20  |konhelp...@EQUS |
000013a0  22 2a 53 63 72 6f 6c 6c  4c 6f 63 6b 4f 6e 20 74  |"*ScrollLockOn t|
000013b0  75 72 6e 73 20 6f 6e 20  74 68 65 20 53 63 72 6f  |urns on the Scro|
000013c0  6c 6c 20 4c 6f 63 6b 20  6c 69 67 68 74 22 20 3a  |ll Lock light" :|
000013d0  20 45 51 55 42 20 30 0d  0c c7 15 2e 73 63 72 6f  | EQUB 0.....scro|
000013e0  6c 6c 6c 6f 63 6b 6f 66  66 73 79 6e 0d 0c c8 2a  |lllockoffsyn...*|
000013f0  45 51 55 53 20 22 53 79  6e 74 61 78 3a 20 2a 53  |EQUS "Syntax: *S|
00001400  63 72 6f 6c 6c 4c 6f 63  6b 4f 66 66 22 20 3a 20  |crollLockOff" : |
00001410  45 51 55 42 20 30 0d 0c  c9 16 2e 73 63 72 6f 6c  |EQUB 0.....scrol|
00001420  6c 6c 6f 63 6b 6f 66 66  68 65 6c 70 0d 0c ca 42  |llockoffhelp...B|
00001430  45 51 55 53 20 22 2a 53  63 72 6f 6c 6c 4c 6f 63  |EQUS "*ScrollLoc|
00001440  6b 4f 66 66 20 74 75 72  6e 73 20 6f 66 66 20 74  |kOff turns off t|
00001450  68 65 20 53 63 72 6f 6c  6c 20 4c 6f 63 6b 20 6c  |he Scroll Lock l|
00001460  69 67 68 74 22 20 3a 20  45 51 55 42 20 30 0d 0d  |ight" : EQUB 0..|
00001470  0c 04 0d 0d 16 0d 2e 68  65 6c 70 74 65 78 74 0d  |.......helptext.|
00001480  0d 20 e6 45 51 55 53 20  22 54 68 69 73 20 6d 6f  |. .EQUS "This mo|
00001490  64 75 6c 65 20 74 75 72  6e 73 20 4e 75 6d 20 4c  |dule turns Num L|
000014a0  6f 63 6b 20 61 6e 64 20  53 63 72 6f 6c 6c 20 6c  |ock and Scroll l|
000014b0  6f 63 6b 20 69 6e 74 6f  20 46 31 31 20 61 6e 64  |ock into F11 and|
000014c0  20 46 31 32 20 72 65 73  70 65 63 74 69 76 65 6c  | F12 respectivel|
000014d0  79 2c 20 69 6e 63 6c 75  64 69 6e 67 20 61 6c 6c  |y, including all|
000014e0  20 63 74 72 6c 2f 73 68  69 66 74 20 63 6f 6d 62  | ctrl/shift comb|
000014f0  69 6e 61 74 69 6f 6e 73  2e 20 54 68 65 69 72 20  |inations. Their |
00001500  6f 72 69 67 69 6e 61 6c  20 62 65 68 61 76 69 6f  |original behavio|
00001510  75 72 20 63 61 6e 20 62  65 20 6f 62 74 61 69 6e  |ur can be obtain|
00001520  65 64 20 77 68 69 6c 65  20 68 6f 6c 64 69 6e 67  |ed while holding|
00001530  20 64 6f 77 6e 20 41 6c  74 2e 20 49 74 20 69 73  | down Alt. It is|
00001540  20 69 6e 74 65 6e 64 65  64 20 66 6f 72 20 75 73  | intended for us|
00001550  65 20 6f 6e 20 61 6e 20  41 34 20 70 6f 72 74 61  |e on an A4 porta|
00001560  62 6c 65 2e 22 0d 0d 2a  0a 45 51 55 42 20 30 0d  |ble."..*.EQUB 0.|
00001570  0d 34 09 41 4c 49 47 4e  0d 0d 3e 05 5d 0d 0d 48  |.4.ALIGN..>.]..H|
00001580  04 0d 0d 52 05 ed 0d 0d  5c 04 0d 0d 66 29 ff 22  |...R....\...f)."|
00001590  53 41 56 45 20 4e 75 6d  53 63 72 3e 66 31 32 20  |SAVE NumScr>f12 |
000015a0  22 2b c3 7e 63 6f 64 65  2b 22 20 22 2b c3 7e 28  |"+.~code+" "+.~(|
000015b0  4f 25 29 0d 0d 70 20 ff  22 53 45 54 54 59 50 45  |O%)..p ."SETTYPE|
000015c0  20 4e 75 6d 53 63 72 3e  66 31 32 20 4d 4f 44 55  | NumScr>f12 MODU|
000015d0  4c 45 22 0d 0d 7a 05 e0  0d ff                    |LE"..z....|
000015da