Home » Recent acquisitions » Acorn ADFS disks » adfs_ArchimedesWorld_199206b.adf » June92 » !AWJune92/Goodies/WordPairs/!WordPairs/!Title

!AWJune92/Goodies/WordPairs/!WordPairs/!Title

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 » Recent acquisitions » Acorn ADFS disks » adfs_ArchimedesWorld_199206b.adf » June92
Filename: !AWJune92/Goodies/WordPairs/!WordPairs/!Title
Read OK:
File size: 1373 bytes
Load address: 0000
Exec address: 0000
File contents
   10REM >!Title
   20:
   30IFMODE<>13:MODE13:SYS"OS_RemoveCursors"
   40PROCloadsprites:OSCLI"Hourglass Off":MOUSEON3:PROCintro:MOUSEON3
   50FORc%=0TO15
   60MOUSECOLOUR1,(140/15)*c%,(80/15)*c%,0
   70MOUSECOLOUR2,(180/15)*c%,(120/15)*c%,0
   80MOUSECOLOUR3,(180/15)*c%,(180/15)*c%,(180/15)*c%
   90WAIT:NEXT:OSCLI"Hourglass On"
  100CHAIN"<WordPair$Dir>.!RunImage"
  110END
  120:
  130DEFPROCloadsprites:LOCAL file%,room%
  140SYS"OS_File",5,"<WordPair$Dir>.TitleSpr" TO ,,,,room%
  150DIMspr% room%+32,scale% 16:!spr%=room%+32:spr%!4=0:spr%!8=16:spr%!12=16
  160SYS&2E,10+256,spr%,"<WordPair$Dir>.TitleSpr":ENDPROC
  170:
  180DEFPROCintro:quit=FALSE:LOCALc%,i%,I%,width%,height%,h%,v%,hi%(),j%,icode%
  190LOCAL intro,spstring,num,scale,hi,spr,scalnum,pass%
  200FORc%=15TO0STEP-1
  210MOUSECOLOUR1,(140/15)*c%,(80/15)*c%,0
  220MOUSECOLOUR2,(180/15)*c%,(120/15)*c%,0
  230MOUSECOLOUR3,(180/15)*c%,(180/15)*c%,(180/15)*c%
  240WAIT:NEXT:PROCaw:WAIT:MODE13:SYS"OS_RemoveCursors":IFquit:ENDPROC
  250width%=8:height%=4
  260!scale%=128:scale%!8=128:scale%!12=128
  270DIM hi% width%*4
  280FORi%=1TOwidth%:hi%!(i%*4-4)=-i%*24:NEXT
  290DIMicode% 512:FORpass%=0TO2STEP2:P%=icode%:[OPT pass%
  300.spstring EQUS "titslab_":.num EQUS " "+CHR$13+CHR$13:ALIGN
  310.scale EQUD scale%
  320.hi EQUD hi%
  330.spr EQUD spr%
  340.scalnum EQUD 52+256
  350.intro:STMFD R13!,{R0-R12,R14}
  360MOV R12,#0:.Iloop
  370MOV R11,#0:.Hloop:LDR R0,hi
  380LDR R9,[R0,R11,LSL #2]:ADD R9,R9,#4:STR R9,[R0,R11,LSL #2]
  390CMP R9,#0:BLT next1:CMP R9,#64:BGT next1
  400MOV R10,#0:BL spops
  410.next1:SUB R9,R9,#24:CMP R9,#0:BLT next2:CMP R9,#64:BGT next2
  420MOV R10,#1:BL spops
  430.next2:SUB R9,R9,#24:CMP R9,#0:BLT next3:CMP R9,#64:BGT next3
  440MOV R10,#2:BL spops
  450.next3:SUB R9,R9,#24:CMP R9,#0:BLT next4:CMP R9,#64:BGT next4
  460MOV R10,#3:BL spops
  470.next4
  480ADD R11,R11,#1:CMP R11,#width%:BLT Hloop
  490CMP R12,#82:ADDLT R12,R12,#1:BLT Iloop
  500LDMFD R13!,{R0-R12,PC}
  510.spops:STMFD R13!,{R0-R8,R14}
  520MOV R1,#height%:MLA R0,R11,R1,R10
  530ADR R1,num:MOV R2,#13:STR R2,[R1,#1]:MOV R2,#2
  540SWI "OS_BinaryToDecimal"
  550LDR R0,scalnum:LDR R1,spr:ADR R2,spstring
  560MOV R3,#128:ADD R3,R3,R11,LSL #7
  570MOV R4,#400:SUB R4,R4,R9:ADD R4,R4,R10,LSL #7
  580LDR R5,scale:MOV R6,R9,LSL #1:STR R6,[R5,#4]
  590MOV R5,#0:LDR R6,scale:MVN R7,#1:SWI "OS_SpriteOp"
  600LDMFD R13!,{R0-R8,PC}
  610]NEXT:PROCclearcode:OSCLI"FX112,2":CLS
  620SYS&2E,34+256,spr%,"presents",(320-62)*2,512
  630CALLclear:i%=INKEY(100):IFi%>0:ENDPROC
  640CALLclear:i%=INKEY(50):IFi%>0:ENDPROC
  650OSCLI"FX112,1":ORIGIN 0,32:CALLintro:ORIGIN 0,0
  660CALLcopyscreen:OSCLI"FX112,2"
  670SYS&2E,34+256,spr%,"copyright",(320-302)*2,272
  680CALLclear:OSCLI"FX112,1"
  690MOUSE TO 640,168:i%=INKEY(50):ENDPROC
  700:
  710DEF PROCaw:LOCAL code%,pass%,spr:MODE9:SYS"OS_RemoveCursors"
  720RESTORE+0:FORcol%=1TO15:READr%,g%,b%:COLOURcol%,r%,g%,b%:NEXT
  730DATA 0,0,0
  740DATA 255,255,255
  750DATA 0,0,0
  760DATA 0,0,150
  770DATA 15,15,165
  780DATA 30,30,180
  790DATA 45,45,195
  800DATA 105,105,255
  810DATA 90,90,240
  820DATA 75,75,225
  830DATA 60,60,210
  840DATA 45,45,195
  850DATA 30,30,180
  860DATA 15,15,165
  870DATA 0,0,150
  880scr%=2:step=4
  890GCOL0:FORx%=1056TO0STEP-step:IFINKEY(0)>0:quit=TRUE:ENDPROC
  900TIME=0:WAIT:OSCLI"FX113,"+STR$scr%:scr%=3-scr%
  910OSCLI"FX112,"+STR$scr%:RECTANGLEFILL0,512,1276,65*4
  920SYS&2E,34+256,spr%,"ball",216-x%/2,512
  930SYS&2E,34+256,spr%,"outarc",224+step-x%,604,8
  940SYS&2E,34+256,spr%,"outarc",224-step+x%,604,8
  950REPEATUNTILTIME>3:NEXT:scr%=3-scr%:OSCLI"FX112,"+STR$scr%
  960SYS&2E,34+256,spr%,"world",472,568
  970SYS&2E,34+256,spr%,"solidarc",224,512+92,8:I%=INKEY(50)
  980FORc%=0TO255 STEP15
  990COLOUR 1,c%,c%,c%
 1000COLOUR 2,255,255,255-c%
 1010COLOUR 3,c%,0,0
 1020COLOUR 4,c%,0,150-(150/255)*c%
 1030COLOUR 5,15+((255-15)/255)*c%,15-(15/255)*c%,165-(165/255)*c%
 1040COLOUR 6,30+((255-30)/255)*c%,30-(30/255)*c%,180-(180/255)*c%
 1050COLOUR 7,45+((255-45)/255)*c%,45-(45/255)*c%,195-(195/255)*c%
 1060WAIT:WAIT:NEXT:i$=INKEY$(200)
 1070FORc%=255TO0STEP-15
 1080COLOUR 1,c%,c%,c%:COLOUR 2,c%,c%,0
 1090FORa%=3TO7:COLOURa%,c%,0,0:NEXT:RESTORE800
 1100FORa%=8TO15:READr%,g%,b%
 1110COLOURa%,(r%/255)*c%,(g%/255)*c%,(b%/255)*c%:NEXT
 1120WAIT:WAIT:NEXT
 1130ENDPROC
 1140:
 1150DEF PROCclearcode:LOCAL code%,pass%,time%
 1160time%=32
 1170DIMcode% 512+80*64
 1180FORpass%=0TO2STEP2:P%=code%:[OPT pass%
 1190.scr1 EQUD &1FD8000:.scr2 EQUD &1FEC000
 1200.clear:STMFD R13!,{R0-R12,R14}:MOV R12,#320:LDR R0,scr1:LDR R1,scr2
 1210ADR R2,dispace%:MOV R3,#time%:.loop1:MOV R4,#79:.loop2:MOV R5,#63:.loop3
 1220ADD R6,R4,R5,LSL #6:LDRB R6,[R2,R6]:CMP R6,R3:BNE next
 1230MLA R7,R5,R12,R4:ADD R8,R7,R0:ADD R9,R7,R1
 1240STMFD R13!,{R0-R4}:ADR R4,offsets
 1250]:FORi%=1TO4:[OPT pass%
 1260LDMIA R4!,{R0-R3}
 1270LDRB R10,[R9,R0]:LDRB R11,[R8,R0]:STRB R10,[R8,R0]:STRB R11,[R9,R0]
 1280LDRB R10,[R9,R1]:LDRB R11,[R8,R1]:STRB R10,[R8,R1]:STRB R11,[R9,R1]
 1290LDRB R10,[R9,R2]:LDRB R11,[R8,R2]:STRB R10,[R8,R2]:STRB R11,[R9,R2]
 1300LDRB R10,[R9,R3]:LDRB R11,[R8,R3]:STRB R10,[R8,R3]:STRB R11,[R9,R3]
 1310]:NEXT:[OPT pass%
 1320LDMFD R13!,{R0-R4}
 1330.next:SUBS R5,R5,#1:BPL loop3:SUBS R4,R4,#1:BPL loop2
 1340SUBS R3,R3,#1:BNE loop1:LDMFD R13!,{R0-R12,PC}
 1350.offsets
 1360EQUD 0:EQUD 80:EQUD 160:EQUD 240
 1370EQUD 320*64:EQUD 320*64+80:EQUD 320*64+160:EQUD 320*64+240
 1380EQUD 320*128:EQUD 320*128+80:EQUD 320*128+160:EQUD 320*128+240
 1390EQUD 320*192:EQUD 320*192+80:EQUD 320*192+160:EQUD 320*192+240
 1400.copyscreen
 1410STMFD R13!,{R0-R10,R14}
 1420LDR R0,scr1:LDR R1,scr2
 1430MOV R2,#&14000
 1440.loop
 1450LDMIA R0!,{R3-R10}:STMIA R1!,{R3-R10}
 1460SUBS R2,R2,#32:BNE loop
 1470LDMFD R13!,{R0-R10,PC}
 1480.dispace%
 1490]NEXT:FORi%=1TO64*80:i%?dispace%=RND(time%):NEXT:ENDPROC


� >!Title
:
#��<>13:�13:ș"OS_RemoveCursors"
(2�loadsprites:�"Hourglass Off":ȗ�3:�intro:ȗ�3
2�c%=0�15
<!ȗ�1,(140/15)*c%,(80/15)*c%,0
F"ȗ�2,(180/15)*c%,(120/15)*c%,0
P,ȗ�3,(180/15)*c%,(180/15)*c%,(180/15)*c%
ZȖ:�:�"Hourglass On"
d�"<WordPair$Dir>.!RunImage"
n�
x:
���loadsprites:� file%,room%
�7ș"OS_File",5,"<WordPair$Dir>.TitleSpr" � ,,,,room%
�I�spr% room%+32,scale% 16:!spr%=room%+32:spr%!4=0:spr%!8=16:spr%!12=16
�1ș&2E,10+256,spr%,"<WordPair$Dir>.TitleSpr":�
�:
�A��intro:quit=�:�c%,i%,I%,width%,height%,h%,v%,hi%(),j%,icode%
�3� intro,spstring,num,scale,hi,spr,scalnum,pass%
��c%=15�0�-1
�!ȗ�1,(140/15)*c%,(80/15)*c%,0
�"ȗ�2,(180/15)*c%,(120/15)*c%,0
�,ȗ�3,(180/15)*c%,(180/15)*c%,(180/15)*c%
�0Ȗ:�:�aw:Ȗ:�13:ș"OS_RemoveCursors":�quit:�
�width%=8:height%=4
*!scale%=128:scale%!8=128:scale%!12=128
� hi% width%*4
&�i%=1�width%:hi%!(i%*4-4)=-i%*24:�
"1�icode% 512:�pass%=0�2�2:P%=icode%:[OPT pass%
,9.spstring EQUS "titslab_":.num EQUS " "+�13+�13:ALIGN
6.scale EQUD scale%
@.hi EQUD hi%
J.spr EQUD spr%
T.scalnum EQUD 52+256
^".intro:STMFD R13!,{R0-R12,R14}
hMOV R12,#0:.Iloop
rMOV R11,#0:.Hloop:LDR R0,hi
|>LDR R9,[R0,R11,LSL #2]:ADD R9,R9,#4:STR R9,[R0,R11,LSL #2]
�,CMP R9,#0:BLT next1:CMP R9,#64:BGT next1
�MOV R10,#0:BL spops
�A.next1:SUB R9,R9,#24:CMP R9,#0:BLT next2:CMP R9,#64:BGT next2
�MOV R10,#1:BL spops
�A.next2:SUB R9,R9,#24:CMP R9,#0:BLT next3:CMP R9,#64:BGT next3
�MOV R10,#2:BL spops
�A.next3:SUB R9,R9,#24:CMP R9,#0:BLT next4:CMP R9,#64:BGT next4
�MOV R10,#3:BL spops
�
.next4
�,ADD R11,R11,#1:CMP R11,#width%:BLT Hloop
�*CMP R12,#82:ADDLT R12,R12,#1:BLT Iloop
�LDMFD R13!,{R0-R12,PC}
�!.spops:STMFD R13!,{R0-R8,R14}
%MOV R1,#height%:MLA R0,R11,R1,R10
2ADR R1,num:MOV R2,#13:STR R2,[R1,#1]:MOV R2,#2
SWI "OS_BinaryToDecimal"
&-LDR R0,scalnum:LDR R1,spr:ADR R2,spstring
0$MOV R3,#128:ADD R3,R3,R11,LSL #7
:1MOV R4,#400:SUB R4,R4,R9:ADD R4,R4,R10,LSL #7
D0LDR R5,scale:MOV R6,R9,LSL #1:STR R6,[R5,#4]
N6MOV R5,#0:LDR R6,scale:MVN R7,#1:SWI "OS_SpriteOp"
XLDMFD R13!,{R0-R8,PC}
b]�:�clearcode:�"FX112,2":�
l/ș&2E,34+256,spr%,"presents",(320-62)*2,512
v�clear:i%=�(100):�i%>0:�
��clear:i%=�(50):�i%>0:�
�$�"FX112,1":ȑ 0,32:�intro:ȑ 0,0
��copyscreen:�"FX112,2"
�1ș&2E,34+256,spr%,"copyright",(320-302)*2,272
��clear:�"FX112,1"
�ȗ � 640,168:i%=�(50):�
�:
�3� �aw:� code%,pass%,spr:�9:ș"OS_RemoveCursors"
�-�+0:�col%=1�15:�r%,g%,b%:�col%,r%,g%,b%:�
�� 0,0,0
�� 255,255,255
�� 0,0,0
�
� 0,0,150
� 15,15,165
� 30,30,180
� 45,45,195
 � 105,105,255
*� 90,90,240
4� 75,75,225
>� 60,60,210
H� 45,45,195
R� 30,30,180
\� 15,15,165
f
� 0,0,150
pscr%=2:step=4
z(�0:�x%=1056�0�-step:�(0)>0:quit=�:�
�&�=0:Ȗ:�"FX113,"+�scr%:scr%=3-scr%
�'�"FX112,"+�scr%:ȓȐ0,512,1276,65*4
�)ș&2E,34+256,spr%,"ball",216-x%/2,512
�0ș&2E,34+256,spr%,"outarc",224+step-x%,604,8
�0ș&2E,34+256,spr%,"outarc",224-step+x%,604,8
�'���>3:�:scr%=3-scr%:�"FX112,"+�scr%
�%ș&2E,34+256,spr%,"world",472,568
�6ș&2E,34+256,spr%,"solidarc",224,512+92,8:I%=�(50)
��c%=0�255 �15
�� 1,c%,c%,c%
�� 2,255,255,255-c%
�� 3,c%,0,0
�� 4,c%,0,150-(150/255)*c%
<� 5,15+((255-15)/255)*c%,15-(15/255)*c%,165-(165/255)*c%
<� 6,30+((255-30)/255)*c%,30-(30/255)*c%,180-(180/255)*c%
<� 7,45+((255-45)/255)*c%,45-(45/255)*c%,195-(195/255)*c%
$Ȗ:Ȗ:�:i$=�(200)
.�c%=255�0�-15
8� 1,c%,c%,c%:� 2,c%,c%,0
B�a%=3�7:�a%,c%,0,0:�:��T`C
L�a%=8�15:�r%,g%,b%
V-�a%,(r%/255)*c%,(g%/255)*c%,(b%/255)*c%:�
`Ȗ:Ȗ:�
j�
t:
~$� �clearcode:� code%,pass%,time%
�time%=32
��code% 512+80*64
�$�pass%=0�2�2:P%=code%:[OPT pass%
�+.scr1 EQUD &1FD8000:.scr2 EQUD &1FEC000
�G.clear:STMFD R13!,{R0-R12,R14}:MOV R12,#320:LDR R0,scr1:LDR R1,scr2
�LADR R2,dispace%:MOV R3,#time%:.loop1:MOV R4,#79:.loop2:MOV R5,#63:.loop3
�:ADD R6,R4,R5,LSL #6:LDRB R6,[R2,R6]:CMP R6,R3:BNE next
�.MLA R7,R5,R12,R4:ADD R8,R7,R0:ADD R9,R7,R1
�%STMFD R13!,{R0-R4}:ADR R4,offsets
�]:�i%=1�4:[OPT pass%
�LDMIA R4!,{R0-R3}
�GLDRB R10,[R9,R0]:LDRB R11,[R8,R0]:STRB R10,[R8,R0]:STRB R11,[R9,R0]
GLDRB R10,[R9,R1]:LDRB R11,[R8,R1]:STRB R10,[R8,R1]:STRB R11,[R9,R1]

GLDRB R10,[R9,R2]:LDRB R11,[R8,R2]:STRB R10,[R8,R2]:STRB R11,[R9,R2]
GLDRB R10,[R9,R3]:LDRB R11,[R8,R3]:STRB R10,[R8,R3]:STRB R11,[R9,R3]
]:�:[OPT pass%
(LDMFD R13!,{R0-R4}
29.next:SUBS R5,R5,#1:BPL loop3:SUBS R4,R4,#1:BPL loop2
<2SUBS R3,R3,#1:BNE loop1:LDMFD R13!,{R0-R12,PC}
F.offsets
P$EQUD 0:EQUD 80:EQUD 160:EQUD 240
Z>EQUD 320*64:EQUD 320*64+80:EQUD 320*64+160:EQUD 320*64+240
dBEQUD 320*128:EQUD 320*128+80:EQUD 320*128+160:EQUD 320*128+240
nBEQUD 320*192:EQUD 320*192+80:EQUD 320*192+160:EQUD 320*192+240
x.copyscreen
�STMFD R13!,{R0-R10,R14}
�LDR R0,scr1:LDR R1,scr2
�MOV R2,#&14000
�	.loop
�)LDMIA R0!,{R3-R10}:STMIA R1!,{R3-R10}
�SUBS R2,R2,#32:BNE loop
�LDMFD R13!,{R0-R10,PC}
�
.dispace%
�+]�:�i%=1�64*80:i%?dispace%=�(time%):�:�
�
00000000  0d 00 0a 0d f4 20 3e 21  54 69 74 6c 65 0d 00 14  |..... >!Title...|
00000010  05 3a 0d 00 1e 23 e7 eb  3c 3e 31 33 3a eb 31 33  |.:...#..<>13:.13|
00000020  3a c8 99 22 4f 53 5f 52  65 6d 6f 76 65 43 75 72  |:.."OS_RemoveCur|
00000030  73 6f 72 73 22 0d 00 28  32 f2 6c 6f 61 64 73 70  |sors"..(2.loadsp|
00000040  72 69 74 65 73 3a ff 22  48 6f 75 72 67 6c 61 73  |rites:."Hourglas|
00000050  73 20 4f 66 66 22 3a c8  97 ee 33 3a f2 69 6e 74  |s Off":...3:.int|
00000060  72 6f 3a c8 97 ee 33 0d  00 32 0c e3 63 25 3d 30  |ro:...3..2..c%=0|
00000070  b8 31 35 0d 00 3c 21 c8  97 fb 31 2c 28 31 34 30  |.15..<!...1,(140|
00000080  2f 31 35 29 2a 63 25 2c  28 38 30 2f 31 35 29 2a  |/15)*c%,(80/15)*|
00000090  63 25 2c 30 0d 00 46 22  c8 97 fb 32 2c 28 31 38  |c%,0..F"...2,(18|
000000a0  30 2f 31 35 29 2a 63 25  2c 28 31 32 30 2f 31 35  |0/15)*c%,(120/15|
000000b0  29 2a 63 25 2c 30 0d 00  50 2c c8 97 fb 33 2c 28  |)*c%,0..P,...3,(|
000000c0  31 38 30 2f 31 35 29 2a  63 25 2c 28 31 38 30 2f  |180/15)*c%,(180/|
000000d0  31 35 29 2a 63 25 2c 28  31 38 30 2f 31 35 29 2a  |15)*c%,(180/15)*|
000000e0  63 25 0d 00 5a 18 c8 96  3a ed 3a ff 22 48 6f 75  |c%..Z...:.:."Hou|
000000f0  72 67 6c 61 73 73 20 4f  6e 22 0d 00 64 1f d7 22  |rglass On"..d.."|
00000100  3c 57 6f 72 64 50 61 69  72 24 44 69 72 3e 2e 21  |<WordPair$Dir>.!|
00000110  52 75 6e 49 6d 61 67 65  22 0d 00 6e 05 e0 0d 00  |RunImage"..n....|
00000120  78 05 3a 0d 00 82 1f dd  f2 6c 6f 61 64 73 70 72  |x.:......loadspr|
00000130  69 74 65 73 3a ea 20 66  69 6c 65 25 2c 72 6f 6f  |ites:. file%,roo|
00000140  6d 25 0d 00 8c 37 c8 99  22 4f 53 5f 46 69 6c 65  |m%...7.."OS_File|
00000150  22 2c 35 2c 22 3c 57 6f  72 64 50 61 69 72 24 44  |",5,"<WordPair$D|
00000160  69 72 3e 2e 54 69 74 6c  65 53 70 72 22 20 b8 20  |ir>.TitleSpr" . |
00000170  2c 2c 2c 2c 72 6f 6f 6d  25 0d 00 96 49 de 73 70  |,,,,room%...I.sp|
00000180  72 25 20 72 6f 6f 6d 25  2b 33 32 2c 73 63 61 6c  |r% room%+32,scal|
00000190  65 25 20 31 36 3a 21 73  70 72 25 3d 72 6f 6f 6d  |e% 16:!spr%=room|
000001a0  25 2b 33 32 3a 73 70 72  25 21 34 3d 30 3a 73 70  |%+32:spr%!4=0:sp|
000001b0  72 25 21 38 3d 31 36 3a  73 70 72 25 21 31 32 3d  |r%!8=16:spr%!12=|
000001c0  31 36 0d 00 a0 31 c8 99  26 32 45 2c 31 30 2b 32  |16...1..&2E,10+2|
000001d0  35 36 2c 73 70 72 25 2c  22 3c 57 6f 72 64 50 61  |56,spr%,"<WordPa|
000001e0  69 72 24 44 69 72 3e 2e  54 69 74 6c 65 53 70 72  |ir$Dir>.TitleSpr|
000001f0  22 3a e1 0d 00 aa 05 3a  0d 00 b4 41 dd f2 69 6e  |":.....:...A..in|
00000200  74 72 6f 3a 71 75 69 74  3d a3 3a ea 63 25 2c 69  |tro:quit=.:.c%,i|
00000210  25 2c 49 25 2c 77 69 64  74 68 25 2c 68 65 69 67  |%,I%,width%,heig|
00000220  68 74 25 2c 68 25 2c 76  25 2c 68 69 25 28 29 2c  |ht%,h%,v%,hi%(),|
00000230  6a 25 2c 69 63 6f 64 65  25 0d 00 be 33 ea 20 69  |j%,icode%...3. i|
00000240  6e 74 72 6f 2c 73 70 73  74 72 69 6e 67 2c 6e 75  |ntro,spstring,nu|
00000250  6d 2c 73 63 61 6c 65 2c  68 69 2c 73 70 72 2c 73  |m,scale,hi,spr,s|
00000260  63 61 6c 6e 75 6d 2c 70  61 73 73 25 0d 00 c8 0f  |calnum,pass%....|
00000270  e3 63 25 3d 31 35 b8 30  88 2d 31 0d 00 d2 21 c8  |.c%=15.0.-1...!.|
00000280  97 fb 31 2c 28 31 34 30  2f 31 35 29 2a 63 25 2c  |..1,(140/15)*c%,|
00000290  28 38 30 2f 31 35 29 2a  63 25 2c 30 0d 00 dc 22  |(80/15)*c%,0..."|
000002a0  c8 97 fb 32 2c 28 31 38  30 2f 31 35 29 2a 63 25  |...2,(180/15)*c%|
000002b0  2c 28 31 32 30 2f 31 35  29 2a 63 25 2c 30 0d 00  |,(120/15)*c%,0..|
000002c0  e6 2c c8 97 fb 33 2c 28  31 38 30 2f 31 35 29 2a  |.,...3,(180/15)*|
000002d0  63 25 2c 28 31 38 30 2f  31 35 29 2a 63 25 2c 28  |c%,(180/15)*c%,(|
000002e0  31 38 30 2f 31 35 29 2a  63 25 0d 00 f0 30 c8 96  |180/15)*c%...0..|
000002f0  3a ed 3a f2 61 77 3a c8  96 3a eb 31 33 3a c8 99  |:.:.aw:..:.13:..|
00000300  22 4f 53 5f 52 65 6d 6f  76 65 43 75 72 73 6f 72  |"OS_RemoveCursor|
00000310  73 22 3a e7 71 75 69 74  3a e1 0d 00 fa 16 77 69  |s":.quit:.....wi|
00000320  64 74 68 25 3d 38 3a 68  65 69 67 68 74 25 3d 34  |dth%=8:height%=4|
00000330  0d 01 04 2a 21 73 63 61  6c 65 25 3d 31 32 38 3a  |...*!scale%=128:|
00000340  73 63 61 6c 65 25 21 38  3d 31 32 38 3a 73 63 61  |scale%!8=128:sca|
00000350  6c 65 25 21 31 32 3d 31  32 38 0d 01 0e 12 de 20  |le%!12=128..... |
00000360  68 69 25 20 77 69 64 74  68 25 2a 34 0d 01 18 26  |hi% width%*4...&|
00000370  e3 69 25 3d 31 b8 77 69  64 74 68 25 3a 68 69 25  |.i%=1.width%:hi%|
00000380  21 28 69 25 2a 34 2d 34  29 3d 2d 69 25 2a 32 34  |!(i%*4-4)=-i%*24|
00000390  3a ed 0d 01 22 31 de 69  63 6f 64 65 25 20 35 31  |:..."1.icode% 51|
000003a0  32 3a e3 70 61 73 73 25  3d 30 b8 32 88 32 3a 50  |2:.pass%=0.2.2:P|
000003b0  25 3d 69 63 6f 64 65 25  3a 5b 4f 50 54 20 70 61  |%=icode%:[OPT pa|
000003c0  73 73 25 0d 01 2c 39 2e  73 70 73 74 72 69 6e 67  |ss%..,9.spstring|
000003d0  20 45 51 55 53 20 22 74  69 74 73 6c 61 62 5f 22  | EQUS "titslab_"|
000003e0  3a 2e 6e 75 6d 20 45 51  55 53 20 22 20 22 2b bd  |:.num EQUS " "+.|
000003f0  31 33 2b bd 31 33 3a 41  4c 49 47 4e 0d 01 36 16  |13+.13:ALIGN..6.|
00000400  2e 73 63 61 6c 65 20 45  51 55 44 20 73 63 61 6c  |.scale EQUD scal|
00000410  65 25 0d 01 40 10 2e 68  69 20 45 51 55 44 20 68  |e%..@..hi EQUD h|
00000420  69 25 0d 01 4a 12 2e 73  70 72 20 45 51 55 44 20  |i%..J..spr EQUD |
00000430  73 70 72 25 0d 01 54 18  2e 73 63 61 6c 6e 75 6d  |spr%..T..scalnum|
00000440  20 45 51 55 44 20 35 32  2b 32 35 36 0d 01 5e 22  | EQUD 52+256..^"|
00000450  2e 69 6e 74 72 6f 3a 53  54 4d 46 44 20 52 31 33  |.intro:STMFD R13|
00000460  21 2c 7b 52 30 2d 52 31  32 2c 52 31 34 7d 0d 01  |!,{R0-R12,R14}..|
00000470  68 15 4d 4f 56 20 52 31  32 2c 23 30 3a 2e 49 6c  |h.MOV R12,#0:.Il|
00000480  6f 6f 70 0d 01 72 1f 4d  4f 56 20 52 31 31 2c 23  |oop..r.MOV R11,#|
00000490  30 3a 2e 48 6c 6f 6f 70  3a 4c 44 52 20 52 30 2c  |0:.Hloop:LDR R0,|
000004a0  68 69 0d 01 7c 3e 4c 44  52 20 52 39 2c 5b 52 30  |hi..|>LDR R9,[R0|
000004b0  2c 52 31 31 2c 4c 53 4c  20 23 32 5d 3a 41 44 44  |,R11,LSL #2]:ADD|
000004c0  20 52 39 2c 52 39 2c 23  34 3a 53 54 52 20 52 39  | R9,R9,#4:STR R9|
000004d0  2c 5b 52 30 2c 52 31 31  2c 4c 53 4c 20 23 32 5d  |,[R0,R11,LSL #2]|
000004e0  0d 01 86 2c 43 4d 50 20  52 39 2c 23 30 3a 42 4c  |...,CMP R9,#0:BL|
000004f0  54 20 6e 65 78 74 31 3a  43 4d 50 20 52 39 2c 23  |T next1:CMP R9,#|
00000500  36 34 3a 42 47 54 20 6e  65 78 74 31 0d 01 90 17  |64:BGT next1....|
00000510  4d 4f 56 20 52 31 30 2c  23 30 3a 42 4c 20 73 70  |MOV R10,#0:BL sp|
00000520  6f 70 73 0d 01 9a 41 2e  6e 65 78 74 31 3a 53 55  |ops...A.next1:SU|
00000530  42 20 52 39 2c 52 39 2c  23 32 34 3a 43 4d 50 20  |B R9,R9,#24:CMP |
00000540  52 39 2c 23 30 3a 42 4c  54 20 6e 65 78 74 32 3a  |R9,#0:BLT next2:|
00000550  43 4d 50 20 52 39 2c 23  36 34 3a 42 47 54 20 6e  |CMP R9,#64:BGT n|
00000560  65 78 74 32 0d 01 a4 17  4d 4f 56 20 52 31 30 2c  |ext2....MOV R10,|
00000570  23 31 3a 42 4c 20 73 70  6f 70 73 0d 01 ae 41 2e  |#1:BL spops...A.|
00000580  6e 65 78 74 32 3a 53 55  42 20 52 39 2c 52 39 2c  |next2:SUB R9,R9,|
00000590  23 32 34 3a 43 4d 50 20  52 39 2c 23 30 3a 42 4c  |#24:CMP R9,#0:BL|
000005a0  54 20 6e 65 78 74 33 3a  43 4d 50 20 52 39 2c 23  |T next3:CMP R9,#|
000005b0  36 34 3a 42 47 54 20 6e  65 78 74 33 0d 01 b8 17  |64:BGT next3....|
000005c0  4d 4f 56 20 52 31 30 2c  23 32 3a 42 4c 20 73 70  |MOV R10,#2:BL sp|
000005d0  6f 70 73 0d 01 c2 41 2e  6e 65 78 74 33 3a 53 55  |ops...A.next3:SU|
000005e0  42 20 52 39 2c 52 39 2c  23 32 34 3a 43 4d 50 20  |B R9,R9,#24:CMP |
000005f0  52 39 2c 23 30 3a 42 4c  54 20 6e 65 78 74 34 3a  |R9,#0:BLT next4:|
00000600  43 4d 50 20 52 39 2c 23  36 34 3a 42 47 54 20 6e  |CMP R9,#64:BGT n|
00000610  65 78 74 34 0d 01 cc 17  4d 4f 56 20 52 31 30 2c  |ext4....MOV R10,|
00000620  23 33 3a 42 4c 20 73 70  6f 70 73 0d 01 d6 0a 2e  |#3:BL spops.....|
00000630  6e 65 78 74 34 0d 01 e0  2c 41 44 44 20 52 31 31  |next4...,ADD R11|
00000640  2c 52 31 31 2c 23 31 3a  43 4d 50 20 52 31 31 2c  |,R11,#1:CMP R11,|
00000650  23 77 69 64 74 68 25 3a  42 4c 54 20 48 6c 6f 6f  |#width%:BLT Hloo|
00000660  70 0d 01 ea 2a 43 4d 50  20 52 31 32 2c 23 38 32  |p...*CMP R12,#82|
00000670  3a 41 44 44 4c 54 20 52  31 32 2c 52 31 32 2c 23  |:ADDLT R12,R12,#|
00000680  31 3a 42 4c 54 20 49 6c  6f 6f 70 0d 01 f4 1a 4c  |1:BLT Iloop....L|
00000690  44 4d 46 44 20 52 31 33  21 2c 7b 52 30 2d 52 31  |DMFD R13!,{R0-R1|
000006a0  32 2c 50 43 7d 0d 01 fe  21 2e 73 70 6f 70 73 3a  |2,PC}...!.spops:|
000006b0  53 54 4d 46 44 20 52 31  33 21 2c 7b 52 30 2d 52  |STMFD R13!,{R0-R|
000006c0  38 2c 52 31 34 7d 0d 02  08 25 4d 4f 56 20 52 31  |8,R14}...%MOV R1|
000006d0  2c 23 68 65 69 67 68 74  25 3a 4d 4c 41 20 52 30  |,#height%:MLA R0|
000006e0  2c 52 31 31 2c 52 31 2c  52 31 30 0d 02 12 32 41  |,R11,R1,R10...2A|
000006f0  44 52 20 52 31 2c 6e 75  6d 3a 4d 4f 56 20 52 32  |DR R1,num:MOV R2|
00000700  2c 23 31 33 3a 53 54 52  20 52 32 2c 5b 52 31 2c  |,#13:STR R2,[R1,|
00000710  23 31 5d 3a 4d 4f 56 20  52 32 2c 23 32 0d 02 1c  |#1]:MOV R2,#2...|
00000720  1c 53 57 49 20 22 4f 53  5f 42 69 6e 61 72 79 54  |.SWI "OS_BinaryT|
00000730  6f 44 65 63 69 6d 61 6c  22 0d 02 26 2d 4c 44 52  |oDecimal"..&-LDR|
00000740  20 52 30 2c 73 63 61 6c  6e 75 6d 3a 4c 44 52 20  | R0,scalnum:LDR |
00000750  52 31 2c 73 70 72 3a 41  44 52 20 52 32 2c 73 70  |R1,spr:ADR R2,sp|
00000760  73 74 72 69 6e 67 0d 02  30 24 4d 4f 56 20 52 33  |string..0$MOV R3|
00000770  2c 23 31 32 38 3a 41 44  44 20 52 33 2c 52 33 2c  |,#128:ADD R3,R3,|
00000780  52 31 31 2c 4c 53 4c 20  23 37 0d 02 3a 31 4d 4f  |R11,LSL #7..:1MO|
00000790  56 20 52 34 2c 23 34 30  30 3a 53 55 42 20 52 34  |V R4,#400:SUB R4|
000007a0  2c 52 34 2c 52 39 3a 41  44 44 20 52 34 2c 52 34  |,R4,R9:ADD R4,R4|
000007b0  2c 52 31 30 2c 4c 53 4c  20 23 37 0d 02 44 30 4c  |,R10,LSL #7..D0L|
000007c0  44 52 20 52 35 2c 73 63  61 6c 65 3a 4d 4f 56 20  |DR R5,scale:MOV |
000007d0  52 36 2c 52 39 2c 4c 53  4c 20 23 31 3a 53 54 52  |R6,R9,LSL #1:STR|
000007e0  20 52 36 2c 5b 52 35 2c  23 34 5d 0d 02 4e 36 4d  | R6,[R5,#4]..N6M|
000007f0  4f 56 20 52 35 2c 23 30  3a 4c 44 52 20 52 36 2c  |OV R5,#0:LDR R6,|
00000800  73 63 61 6c 65 3a 4d 56  4e 20 52 37 2c 23 31 3a  |scale:MVN R7,#1:|
00000810  53 57 49 20 22 4f 53 5f  53 70 72 69 74 65 4f 70  |SWI "OS_SpriteOp|
00000820  22 0d 02 58 19 4c 44 4d  46 44 20 52 31 33 21 2c  |"..X.LDMFD R13!,|
00000830  7b 52 30 2d 52 38 2c 50  43 7d 0d 02 62 1e 5d ed  |{R0-R8,PC}..b.].|
00000840  3a f2 63 6c 65 61 72 63  6f 64 65 3a ff 22 46 58  |:.clearcode:."FX|
00000850  31 31 32 2c 32 22 3a db  0d 02 6c 2f c8 99 26 32  |112,2":...l/..&2|
00000860  45 2c 33 34 2b 32 35 36  2c 73 70 72 25 2c 22 70  |E,34+256,spr%,"p|
00000870  72 65 73 65 6e 74 73 22  2c 28 33 32 30 2d 36 32  |resents",(320-62|
00000880  29 2a 32 2c 35 31 32 0d  02 76 1c d6 63 6c 65 61  |)*2,512..v..clea|
00000890  72 3a 69 25 3d a6 28 31  30 30 29 3a e7 69 25 3e  |r:i%=.(100):.i%>|
000008a0  30 3a e1 0d 02 80 1b d6  63 6c 65 61 72 3a 69 25  |0:......clear:i%|
000008b0  3d a6 28 35 30 29 3a e7  69 25 3e 30 3a e1 0d 02  |=.(50):.i%>0:...|
000008c0  8a 24 ff 22 46 58 31 31  32 2c 31 22 3a c8 91 20  |.$."FX112,1":.. |
000008d0  30 2c 33 32 3a d6 69 6e  74 72 6f 3a c8 91 20 30  |0,32:.intro:.. 0|
000008e0  2c 30 0d 02 94 1a d6 63  6f 70 79 73 63 72 65 65  |,0.....copyscree|
000008f0  6e 3a ff 22 46 58 31 31  32 2c 32 22 0d 02 9e 31  |n:."FX112,2"...1|
00000900  c8 99 26 32 45 2c 33 34  2b 32 35 36 2c 73 70 72  |..&2E,34+256,spr|
00000910  25 2c 22 63 6f 70 79 72  69 67 68 74 22 2c 28 33  |%,"copyright",(3|
00000920  32 30 2d 33 30 32 29 2a  32 2c 32 37 32 0d 02 a8  |20-302)*2,272...|
00000930  15 d6 63 6c 65 61 72 3a  ff 22 46 58 31 31 32 2c  |..clear:."FX112,|
00000940  31 22 0d 02 b2 1b c8 97  20 b8 20 36 34 30 2c 31  |1"...... . 640,1|
00000950  36 38 3a 69 25 3d a6 28  35 30 29 3a e1 0d 02 bc  |68:i%=.(50):....|
00000960  05 3a 0d 02 c6 33 dd 20  f2 61 77 3a ea 20 63 6f  |.:...3. .aw:. co|
00000970  64 65 25 2c 70 61 73 73  25 2c 73 70 72 3a eb 39  |de%,pass%,spr:.9|
00000980  3a c8 99 22 4f 53 5f 52  65 6d 6f 76 65 43 75 72  |:.."OS_RemoveCur|
00000990  73 6f 72 73 22 0d 02 d0  2d f7 2b 30 3a e3 63 6f  |sors"...-.+0:.co|
000009a0  6c 25 3d 31 b8 31 35 3a  f3 72 25 2c 67 25 2c 62  |l%=1.15:.r%,g%,b|
000009b0  25 3a fb 63 6f 6c 25 2c  72 25 2c 67 25 2c 62 25  |%:.col%,r%,g%,b%|
000009c0  3a ed 0d 02 da 0b dc 20  30 2c 30 2c 30 0d 02 e4  |:...... 0,0,0...|
000009d0  11 dc 20 32 35 35 2c 32  35 35 2c 32 35 35 0d 02  |.. 255,255,255..|
000009e0  ee 0b dc 20 30 2c 30 2c  30 0d 02 f8 0d dc 20 30  |... 0,0,0..... 0|
000009f0  2c 30 2c 31 35 30 0d 03  02 0f dc 20 31 35 2c 31  |,0,150..... 15,1|
00000a00  35 2c 31 36 35 0d 03 0c  0f dc 20 33 30 2c 33 30  |5,165..... 30,30|
00000a10  2c 31 38 30 0d 03 16 0f  dc 20 34 35 2c 34 35 2c  |,180..... 45,45,|
00000a20  31 39 35 0d 03 20 11 dc  20 31 30 35 2c 31 30 35  |195.. .. 105,105|
00000a30  2c 32 35 35 0d 03 2a 0f  dc 20 39 30 2c 39 30 2c  |,255..*.. 90,90,|
00000a40  32 34 30 0d 03 34 0f dc  20 37 35 2c 37 35 2c 32  |240..4.. 75,75,2|
00000a50  32 35 0d 03 3e 0f dc 20  36 30 2c 36 30 2c 32 31  |25..>.. 60,60,21|
00000a60  30 0d 03 48 0f dc 20 34  35 2c 34 35 2c 31 39 35  |0..H.. 45,45,195|
00000a70  0d 03 52 0f dc 20 33 30  2c 33 30 2c 31 38 30 0d  |..R.. 30,30,180.|
00000a80  03 5c 0f dc 20 31 35 2c  31 35 2c 31 36 35 0d 03  |.\.. 15,15,165..|
00000a90  66 0d dc 20 30 2c 30 2c  31 35 30 0d 03 70 11 73  |f.. 0,0,150..p.s|
00000aa0  63 72 25 3d 32 3a 73 74  65 70 3d 34 0d 03 7a 28  |cr%=2:step=4..z(|
00000ab0  e6 30 3a e3 78 25 3d 31  30 35 36 b8 30 88 2d 73  |.0:.x%=1056.0.-s|
00000ac0  74 65 70 3a e7 a6 28 30  29 3e 30 3a 71 75 69 74  |tep:..(0)>0:quit|
00000ad0  3d b9 3a e1 0d 03 84 26  d1 3d 30 3a c8 96 3a ff  |=.:....&.=0:..:.|
00000ae0  22 46 58 31 31 33 2c 22  2b c3 73 63 72 25 3a 73  |"FX113,"+.scr%:s|
00000af0  63 72 25 3d 33 2d 73 63  72 25 0d 03 8e 27 ff 22  |cr%=3-scr%...'."|
00000b00  46 58 31 31 32 2c 22 2b  c3 73 63 72 25 3a c8 93  |FX112,"+.scr%:..|
00000b10  c8 90 30 2c 35 31 32 2c  31 32 37 36 2c 36 35 2a  |..0,512,1276,65*|
00000b20  34 0d 03 98 29 c8 99 26  32 45 2c 33 34 2b 32 35  |4...)..&2E,34+25|
00000b30  36 2c 73 70 72 25 2c 22  62 61 6c 6c 22 2c 32 31  |6,spr%,"ball",21|
00000b40  36 2d 78 25 2f 32 2c 35  31 32 0d 03 a2 30 c8 99  |6-x%/2,512...0..|
00000b50  26 32 45 2c 33 34 2b 32  35 36 2c 73 70 72 25 2c  |&2E,34+256,spr%,|
00000b60  22 6f 75 74 61 72 63 22  2c 32 32 34 2b 73 74 65  |"outarc",224+ste|
00000b70  70 2d 78 25 2c 36 30 34  2c 38 0d 03 ac 30 c8 99  |p-x%,604,8...0..|
00000b80  26 32 45 2c 33 34 2b 32  35 36 2c 73 70 72 25 2c  |&2E,34+256,spr%,|
00000b90  22 6f 75 74 61 72 63 22  2c 32 32 34 2d 73 74 65  |"outarc",224-ste|
00000ba0  70 2b 78 25 2c 36 30 34  2c 38 0d 03 b6 27 f5 fd  |p+x%,604,8...'..|
00000bb0  91 3e 33 3a ed 3a 73 63  72 25 3d 33 2d 73 63 72  |.>3:.:scr%=3-scr|
00000bc0  25 3a ff 22 46 58 31 31  32 2c 22 2b c3 73 63 72  |%:."FX112,"+.scr|
00000bd0  25 0d 03 c0 25 c8 99 26  32 45 2c 33 34 2b 32 35  |%...%..&2E,34+25|
00000be0  36 2c 73 70 72 25 2c 22  77 6f 72 6c 64 22 2c 34  |6,spr%,"world",4|
00000bf0  37 32 2c 35 36 38 0d 03  ca 36 c8 99 26 32 45 2c  |72,568...6..&2E,|
00000c00  33 34 2b 32 35 36 2c 73  70 72 25 2c 22 73 6f 6c  |34+256,spr%,"sol|
00000c10  69 64 61 72 63 22 2c 32  32 34 2c 35 31 32 2b 39  |idarc",224,512+9|
00000c20  32 2c 38 3a 49 25 3d a6  28 35 30 29 0d 03 d4 11  |2,8:I%=.(50)....|
00000c30  e3 63 25 3d 30 b8 32 35  35 20 88 31 35 0d 03 de  |.c%=0.255 .15...|
00000c40  10 fb 20 31 2c 63 25 2c  63 25 2c 63 25 0d 03 e8  |.. 1,c%,c%,c%...|
00000c50  16 fb 20 32 2c 32 35 35  2c 32 35 35 2c 32 35 35  |.. 2,255,255,255|
00000c60  2d 63 25 0d 03 f2 0e fb  20 33 2c 63 25 2c 30 2c  |-c%..... 3,c%,0,|
00000c70  30 0d 03 fc 1d fb 20 34  2c 63 25 2c 30 2c 31 35  |0..... 4,c%,0,15|
00000c80  30 2d 28 31 35 30 2f 32  35 35 29 2a 63 25 0d 04  |0-(150/255)*c%..|
00000c90  06 3c fb 20 35 2c 31 35  2b 28 28 32 35 35 2d 31  |.<. 5,15+((255-1|
00000ca0  35 29 2f 32 35 35 29 2a  63 25 2c 31 35 2d 28 31  |5)/255)*c%,15-(1|
00000cb0  35 2f 32 35 35 29 2a 63  25 2c 31 36 35 2d 28 31  |5/255)*c%,165-(1|
00000cc0  36 35 2f 32 35 35 29 2a  63 25 0d 04 10 3c fb 20  |65/255)*c%...<. |
00000cd0  36 2c 33 30 2b 28 28 32  35 35 2d 33 30 29 2f 32  |6,30+((255-30)/2|
00000ce0  35 35 29 2a 63 25 2c 33  30 2d 28 33 30 2f 32 35  |55)*c%,30-(30/25|
00000cf0  35 29 2a 63 25 2c 31 38  30 2d 28 31 38 30 2f 32  |5)*c%,180-(180/2|
00000d00  35 35 29 2a 63 25 0d 04  1a 3c fb 20 37 2c 34 35  |55)*c%...<. 7,45|
00000d10  2b 28 28 32 35 35 2d 34  35 29 2f 32 35 35 29 2a  |+((255-45)/255)*|
00000d20  63 25 2c 34 35 2d 28 34  35 2f 32 35 35 29 2a 63  |c%,45-(45/255)*c|
00000d30  25 2c 31 39 35 2d 28 31  39 35 2f 32 35 35 29 2a  |%,195-(195/255)*|
00000d40  63 25 0d 04 24 15 c8 96  3a c8 96 3a ed 3a 69 24  |c%..$...:..:.:i$|
00000d50  3d bf 28 32 30 30 29 0d  04 2e 11 e3 63 25 3d 32  |=.(200).....c%=2|
00000d60  35 35 b8 30 88 2d 31 35  0d 04 38 1c fb 20 31 2c  |55.0.-15..8.. 1,|
00000d70  63 25 2c 63 25 2c 63 25  3a fb 20 32 2c 63 25 2c  |c%,c%,c%:. 2,c%,|
00000d80  63 25 2c 30 0d 04 42 1e  e3 61 25 3d 33 b8 37 3a  |c%,0..B..a%=3.7:|
00000d90  fb 61 25 2c 63 25 2c 30  2c 30 3a ed 3a f7 8d 54  |.a%,c%,0,0:.:..T|
00000da0  60 43 0d 04 4c 16 e3 61  25 3d 38 b8 31 35 3a f3  |`C..L..a%=8.15:.|
00000db0  72 25 2c 67 25 2c 62 25  0d 04 56 2d fb 61 25 2c  |r%,g%,b%..V-.a%,|
00000dc0  28 72 25 2f 32 35 35 29  2a 63 25 2c 28 67 25 2f  |(r%/255)*c%,(g%/|
00000dd0  32 35 35 29 2a 63 25 2c  28 62 25 2f 32 35 35 29  |255)*c%,(b%/255)|
00000de0  2a 63 25 3a ed 0d 04 60  0b c8 96 3a c8 96 3a ed  |*c%:...`...:..:.|
00000df0  0d 04 6a 05 e1 0d 04 74  05 3a 0d 04 7e 24 dd 20  |..j....t.:..~$. |
00000e00  f2 63 6c 65 61 72 63 6f  64 65 3a ea 20 63 6f 64  |.clearcode:. cod|
00000e10  65 25 2c 70 61 73 73 25  2c 74 69 6d 65 25 0d 04  |e%,pass%,time%..|
00000e20  88 0c 74 69 6d 65 25 3d  33 32 0d 04 92 14 de 63  |..time%=32.....c|
00000e30  6f 64 65 25 20 35 31 32  2b 38 30 2a 36 34 0d 04  |ode% 512+80*64..|
00000e40  9c 24 e3 70 61 73 73 25  3d 30 b8 32 88 32 3a 50  |.$.pass%=0.2.2:P|
00000e50  25 3d 63 6f 64 65 25 3a  5b 4f 50 54 20 70 61 73  |%=code%:[OPT pas|
00000e60  73 25 0d 04 a6 2b 2e 73  63 72 31 20 45 51 55 44  |s%...+.scr1 EQUD|
00000e70  20 26 31 46 44 38 30 30  30 3a 2e 73 63 72 32 20  | &1FD8000:.scr2 |
00000e80  45 51 55 44 20 26 31 46  45 43 30 30 30 0d 04 b0  |EQUD &1FEC000...|
00000e90  47 2e 63 6c 65 61 72 3a  53 54 4d 46 44 20 52 31  |G.clear:STMFD R1|
00000ea0  33 21 2c 7b 52 30 2d 52  31 32 2c 52 31 34 7d 3a  |3!,{R0-R12,R14}:|
00000eb0  4d 4f 56 20 52 31 32 2c  23 33 32 30 3a 4c 44 52  |MOV R12,#320:LDR|
00000ec0  20 52 30 2c 73 63 72 31  3a 4c 44 52 20 52 31 2c  | R0,scr1:LDR R1,|
00000ed0  73 63 72 32 0d 04 ba 4c  41 44 52 20 52 32 2c 64  |scr2...LADR R2,d|
00000ee0  69 73 70 61 63 65 25 3a  4d 4f 56 20 52 33 2c 23  |ispace%:MOV R3,#|
00000ef0  74 69 6d 65 25 3a 2e 6c  6f 6f 70 31 3a 4d 4f 56  |time%:.loop1:MOV|
00000f00  20 52 34 2c 23 37 39 3a  2e 6c 6f 6f 70 32 3a 4d  | R4,#79:.loop2:M|
00000f10  4f 56 20 52 35 2c 23 36  33 3a 2e 6c 6f 6f 70 33  |OV R5,#63:.loop3|
00000f20  0d 04 c4 3a 41 44 44 20  52 36 2c 52 34 2c 52 35  |...:ADD R6,R4,R5|
00000f30  2c 4c 53 4c 20 23 36 3a  4c 44 52 42 20 52 36 2c  |,LSL #6:LDRB R6,|
00000f40  5b 52 32 2c 52 36 5d 3a  43 4d 50 20 52 36 2c 52  |[R2,R6]:CMP R6,R|
00000f50  33 3a 42 4e 45 20 6e 65  78 74 0d 04 ce 2e 4d 4c  |3:BNE next....ML|
00000f60  41 20 52 37 2c 52 35 2c  52 31 32 2c 52 34 3a 41  |A R7,R5,R12,R4:A|
00000f70  44 44 20 52 38 2c 52 37  2c 52 30 3a 41 44 44 20  |DD R8,R7,R0:ADD |
00000f80  52 39 2c 52 37 2c 52 31  0d 04 d8 25 53 54 4d 46  |R9,R7,R1...%STMF|
00000f90  44 20 52 31 33 21 2c 7b  52 30 2d 52 34 7d 3a 41  |D R13!,{R0-R4}:A|
00000fa0  44 52 20 52 34 2c 6f 66  66 73 65 74 73 0d 04 e2  |DR R4,offsets...|
00000fb0  18 5d 3a e3 69 25 3d 31  b8 34 3a 5b 4f 50 54 20  |.]:.i%=1.4:[OPT |
00000fc0  70 61 73 73 25 0d 04 ec  15 4c 44 4d 49 41 20 52  |pass%....LDMIA R|
00000fd0  34 21 2c 7b 52 30 2d 52  33 7d 0d 04 f6 47 4c 44  |4!,{R0-R3}...GLD|
00000fe0  52 42 20 52 31 30 2c 5b  52 39 2c 52 30 5d 3a 4c  |RB R10,[R9,R0]:L|
00000ff0  44 52 42 20 52 31 31 2c  5b 52 38 2c 52 30 5d 3a  |DRB R11,[R8,R0]:|
00001000  53 54 52 42 20 52 31 30  2c 5b 52 38 2c 52 30 5d  |STRB R10,[R8,R0]|
00001010  3a 53 54 52 42 20 52 31  31 2c 5b 52 39 2c 52 30  |:STRB R11,[R9,R0|
00001020  5d 0d 05 00 47 4c 44 52  42 20 52 31 30 2c 5b 52  |]...GLDRB R10,[R|
00001030  39 2c 52 31 5d 3a 4c 44  52 42 20 52 31 31 2c 5b  |9,R1]:LDRB R11,[|
00001040  52 38 2c 52 31 5d 3a 53  54 52 42 20 52 31 30 2c  |R8,R1]:STRB R10,|
00001050  5b 52 38 2c 52 31 5d 3a  53 54 52 42 20 52 31 31  |[R8,R1]:STRB R11|
00001060  2c 5b 52 39 2c 52 31 5d  0d 05 0a 47 4c 44 52 42  |,[R9,R1]...GLDRB|
00001070  20 52 31 30 2c 5b 52 39  2c 52 32 5d 3a 4c 44 52  | R10,[R9,R2]:LDR|
00001080  42 20 52 31 31 2c 5b 52  38 2c 52 32 5d 3a 53 54  |B R11,[R8,R2]:ST|
00001090  52 42 20 52 31 30 2c 5b  52 38 2c 52 32 5d 3a 53  |RB R10,[R8,R2]:S|
000010a0  54 52 42 20 52 31 31 2c  5b 52 39 2c 52 32 5d 0d  |TRB R11,[R9,R2].|
000010b0  05 14 47 4c 44 52 42 20  52 31 30 2c 5b 52 39 2c  |..GLDRB R10,[R9,|
000010c0  52 33 5d 3a 4c 44 52 42  20 52 31 31 2c 5b 52 38  |R3]:LDRB R11,[R8|
000010d0  2c 52 33 5d 3a 53 54 52  42 20 52 31 30 2c 5b 52  |,R3]:STRB R10,[R|
000010e0  38 2c 52 33 5d 3a 53 54  52 42 20 52 31 31 2c 5b  |8,R3]:STRB R11,[|
000010f0  52 39 2c 52 33 5d 0d 05  1e 12 5d 3a ed 3a 5b 4f  |R9,R3]....]:.:[O|
00001100  50 54 20 70 61 73 73 25  0d 05 28 16 4c 44 4d 46  |PT pass%..(.LDMF|
00001110  44 20 52 31 33 21 2c 7b  52 30 2d 52 34 7d 0d 05  |D R13!,{R0-R4}..|
00001120  32 39 2e 6e 65 78 74 3a  53 55 42 53 20 52 35 2c  |29.next:SUBS R5,|
00001130  52 35 2c 23 31 3a 42 50  4c 20 6c 6f 6f 70 33 3a  |R5,#1:BPL loop3:|
00001140  53 55 42 53 20 52 34 2c  52 34 2c 23 31 3a 42 50  |SUBS R4,R4,#1:BP|
00001150  4c 20 6c 6f 6f 70 32 0d  05 3c 32 53 55 42 53 20  |L loop2..<2SUBS |
00001160  52 33 2c 52 33 2c 23 31  3a 42 4e 45 20 6c 6f 6f  |R3,R3,#1:BNE loo|
00001170  70 31 3a 4c 44 4d 46 44  20 52 31 33 21 2c 7b 52  |p1:LDMFD R13!,{R|
00001180  30 2d 52 31 32 2c 50 43  7d 0d 05 46 0c 2e 6f 66  |0-R12,PC}..F..of|
00001190  66 73 65 74 73 0d 05 50  24 45 51 55 44 20 30 3a  |fsets..P$EQUD 0:|
000011a0  45 51 55 44 20 38 30 3a  45 51 55 44 20 31 36 30  |EQUD 80:EQUD 160|
000011b0  3a 45 51 55 44 20 32 34  30 0d 05 5a 3e 45 51 55  |:EQUD 240..Z>EQU|
000011c0  44 20 33 32 30 2a 36 34  3a 45 51 55 44 20 33 32  |D 320*64:EQUD 32|
000011d0  30 2a 36 34 2b 38 30 3a  45 51 55 44 20 33 32 30  |0*64+80:EQUD 320|
000011e0  2a 36 34 2b 31 36 30 3a  45 51 55 44 20 33 32 30  |*64+160:EQUD 320|
000011f0  2a 36 34 2b 32 34 30 0d  05 64 42 45 51 55 44 20  |*64+240..dBEQUD |
00001200  33 32 30 2a 31 32 38 3a  45 51 55 44 20 33 32 30  |320*128:EQUD 320|
00001210  2a 31 32 38 2b 38 30 3a  45 51 55 44 20 33 32 30  |*128+80:EQUD 320|
00001220  2a 31 32 38 2b 31 36 30  3a 45 51 55 44 20 33 32  |*128+160:EQUD 32|
00001230  30 2a 31 32 38 2b 32 34  30 0d 05 6e 42 45 51 55  |0*128+240..nBEQU|
00001240  44 20 33 32 30 2a 31 39  32 3a 45 51 55 44 20 33  |D 320*192:EQUD 3|
00001250  32 30 2a 31 39 32 2b 38  30 3a 45 51 55 44 20 33  |20*192+80:EQUD 3|
00001260  32 30 2a 31 39 32 2b 31  36 30 3a 45 51 55 44 20  |20*192+160:EQUD |
00001270  33 32 30 2a 31 39 32 2b  32 34 30 0d 05 78 0f 2e  |320*192+240..x..|
00001280  63 6f 70 79 73 63 72 65  65 6e 0d 05 82 1b 53 54  |copyscreen....ST|
00001290  4d 46 44 20 52 31 33 21  2c 7b 52 30 2d 52 31 30  |MFD R13!,{R0-R10|
000012a0  2c 52 31 34 7d 0d 05 8c  1b 4c 44 52 20 52 30 2c  |,R14}....LDR R0,|
000012b0  73 63 72 31 3a 4c 44 52  20 52 31 2c 73 63 72 32  |scr1:LDR R1,scr2|
000012c0  0d 05 96 12 4d 4f 56 20  52 32 2c 23 26 31 34 30  |....MOV R2,#&140|
000012d0  30 30 0d 05 a0 09 2e 6c  6f 6f 70 0d 05 aa 29 4c  |00.....loop...)L|
000012e0  44 4d 49 41 20 52 30 21  2c 7b 52 33 2d 52 31 30  |DMIA R0!,{R3-R10|
000012f0  7d 3a 53 54 4d 49 41 20  52 31 21 2c 7b 52 33 2d  |}:STMIA R1!,{R3-|
00001300  52 31 30 7d 0d 05 b4 1b  53 55 42 53 20 52 32 2c  |R10}....SUBS R2,|
00001310  52 32 2c 23 33 32 3a 42  4e 45 20 6c 6f 6f 70 0d  |R2,#32:BNE loop.|
00001320  05 be 1a 4c 44 4d 46 44  20 52 31 33 21 2c 7b 52  |...LDMFD R13!,{R|
00001330  30 2d 52 31 30 2c 50 43  7d 0d 05 c8 0d 2e 64 69  |0-R10,PC}.....di|
00001340  73 70 61 63 65 25 0d 05  d2 2b 5d ed 3a e3 69 25  |space%...+].:.i%|
00001350  3d 31 b8 36 34 2a 38 30  3a 69 25 3f 64 69 73 70  |=1.64*80:i%?disp|
00001360  61 63 65 25 3d b3 28 74  69 6d 65 25 29 3a ed 3a  |ace%=.(time%):.:|
00001370  e1 0d ff                                          |...|
00001373