Home » Archimedes archive » Acorn User » AU 1997-08 B.adf » Regulars » starinfo/Tunnel/Boham/4
starinfo/Tunnel/Boham/4
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 1997-08 B.adf » Regulars |
Filename: | starinfo/Tunnel/Boham/4 |
Read OK: | ✔ |
File size: | 1217 bytes |
Load address: | 0000 |
Exec address: | 0000 |
File contents
1PROCinput 2MODE 15:MODE 13:OFF 3PROCsprite 4PROCass 5PROCgo 6END 7: 8DEFPROCgo 9S1=1:S2=2 10REPEAT 11WAIT : SYS 6,112,S1:SYS 6,113,S2:SWAP S1,S2 12CALL plot_tunnel 13!r_adj=(!r_adj+2) MOD 256 14!a_adj=(!a_adj+4) MOD 360 15UNTIL FALSE 16ENDPROC 17: 18DEFPROCass 19IF small% THEN 20xstart% = 79 21ystart% = 63 22rshift=2 23xend%=79 24yend%=63 25ELSE 26xstart% = 159 27ystart% = 127 28xend% = 160 29yend% = 126 30rshift=1 31ENDIF 32DIM code% 4000,L% -1 33FOR pass=8 TO 10 STEP 2 34P%=code% 35[OPT pass 36.plot_tunnel 37STMFD R13!,{R14} 38 39ADR R0,s1 40ADR R1,s2 41SWI &31 42LDR R12,s2 ;R12 = screen address 43] 44IF small% THEN 45[OPT pass 46ADD R12,R12,#80 47ADD R12,R12,#64*320 48] 49ENDIF 50[OPT pass 51 52LDR R11,atn_table ;R11 = pointer to start of atn_table 53LDR R10,col_table ;R10 = pointer to col table 54 55 56MVN R9,#ystart% ;R9 = y-co-ord (-128 to 127) 57.y_loop 58MVN R8,#xstart% ;R8 = x-co-ord (-159 to 160) 59.x_loop 60 61MOV R7,#1 ;R7 = angle 62 63CMP R8,#0:BNE x_not_zero 64CMP R9,#0:MOVGT R7,#90:MOVLT R7,#250:ADDLT R7,R7,#20 65.x_not_zero 66CMP R9,#0:BNE y_not_zero 67CMP R8,#0:MOVLT R7,#180:MOVGE R7,#0 68.y_not_zero 69 70CMP R7,#1 71BNE angle_set 72 73MOV R5,R9:CMP R5,#0:RSBLT R5,R5,#0 74MOV R6,R8:CMP R6,#0:RSBLT R6,R6,#0 75MOV R5,R5,LSL #8 76 77FNdiv(5,6,4,3) 78 79;R4 = oa% 80 81CMP R4,#8192 82MOVGE R4,#8192 83LDR R4,[R11,R4,LSL #2] 84 85;R4 = a% (0POINT(-89POINT() 86 87 88CMP R8,#0:BGT x_positive 89CMP R9,#0:RSBGT R4,R4,#180 90 ADDLT R4,R4,#180 91B adjustment_done 92 93.x_positive 94CMP R9,#0 : RSBLT R4,R4,#360 95 96.adjustment_done 97MOV R7,R4 98 99.angle_set 100 101;R7 = angle 102 103MOV R0,R8 104CMP R0,#0:RSBLT R0,R0,#0 105MOV R1,R0 106MUL R0,R1,R0 107 108MOV R1,R9 109CMP R1,#0:RSBLT R1,R1,#0 110MOV R2,R1 111MUL R1,R2,R1 112 113ADD R0,R0,R1 114MOV R0,R0,LSR #4 115CMP R0,#2624 116MOVGT R0,#2624 117 118LDR R2,sqr_table 119 120LDR R6,[R2,R0,LSL #2] 121 122;R6 = r%, R7 = a% 123 124LDR R0,r_adj 125SUB R6,R6,R0 126CMP R6,#0 127ADDLT R6,R6,#256 128 129LDR R0,a_adj 130ADD R7,R7,R0 131CMP R7,#360 132SUBGE R7,R7,#360 133 134 135MOV R6,R6,LSR #rshift 136MOV R5,#180 137MUL R5,R6,R5 138ADD R5,R5,R7,LSR #1 139 140LDR R6,spr_addr 141 142LDRB R0,[R6,R5] 143 144LDRB R0,[R10,R0] 145 146STRB R0,[R12],#2 147 148ADD R8,R8,#2 149CMP R8,#xend% 150BLT x_loop 151 152] 153IF small% THEN 154[OPT pass 155ADD R12,R12,#160+320 156] 157ELSE 158[OPT pass 159ADD R12,R12,#320 160] 161ENDIF 162[OPT pass 163 164ADD R9,R9,#2 165CMP R9,#yend% 166BLT y_loop 167 168LDMFD R13!,{PC} 169.s1 EQUD 148:EQUD -1 170.s2 EQUD 0 171.atn_table EQUD atn% 172.col_table EQUD col% 173.sqr_table EQUD sqr% 174.spr_addr EQUD spr% 175.r_adj EQUD 0 176.a_adj EQUD 0 177] 178NEXT pass 179ENDPROC 180: 181DEFFNdiv(number,divisor,quotient,remain) 182LOCAL division_loop,place,dsign,msign 183place=0 184dsign=1 185msign=2 186[OPT pass 187STMFD R13!,{R0-R2} 188ANDS msign,number,#1<<31 189RSBMI number,number,#0 190EOR dsign,msign,divisor 191CMP divisor,#0 192RSBMI divisor,divisor,#0 193MOV remain,#0 194MOV quotient,#0 195MOV place,#1<<31 196.division_loop 197MOVS number,number,ASL #1 198ADC remain,remain,remain 199CMP remain,divisor 200SUBGE remain,remain,divisor 201ORRGE quotient,quotient,place 202MOVS place,place,LSR#1 203BNE division_loop 204CMP dsign,#0 205RSBMI quotient,quotient,#0 206CMP msign,#0 207RSBMI remain,remain,#0 208LDMFD R13!,{R0-R2} 209] 210=0 211: 212DEFPROCsprite 213PRINT "Please wait."; 214DIM q 8 215!q=148 216q!4=-1 217SYS &31,q,q 218base%=!q 219DIM spr% 180*128,col% 256,atn% 8200*4,sqr% 2800*4 220FOR n%=spr% TO spr%+180*128-1 221IF n%=spr% THEN c1%=128 ELSE c1%=n%?-1 222IF n%<spr%+180 THEN c2%=128 ELSE c2%=n%?-180 223IF n%<spr%+179 THEN c3%=128 ELSE c3%=n%?-179 224c% = (c1%+c2%+c3%)/3 + RND(32)-16 225IF c%<0 THEN c%=0 226IF c%>255 THEN c%=255 227?n%=c% 228NEXT n% 229PRINT "."; 230 231IF colour% THEN 232 233FOR c%=0 TO 255 234SYS "ColourTrans_ConvertHSVToRGB",c%*65000*2*1.40625,130*256,255 TO r,g,b 235SYS "ColourTrans_SetGCOL",(r<<8)+(g<<16)+(b<<24) 236POINT 0,1023 237col%?c%=?base% 238NEXT c% 239 240ELSE 241FOR c%=0 TO 255 242SYS "ColourTrans_SetGCOL",(c%<<8)+(c%<<16)+(c%<<24) 243POINT 0,1023 244col%?c%=?base% 245NEXT c% 246ENDIF 247 248 249PRINT "."; 250FOR i%=0 TO 8192 251atn%!(i%*4) = DEGATN(i%/256) 252NEXT i% 253PRINT "."; 254FOR d%=0 TO 2623 255sqr%!(d%*4) = SQR(d%<<4) 256NEXT d% 257PRINT "." 258CLS 259ENDPROC 260: 261DEFPROCinput 262PRINT "Sprite mapped onto a tunnel - By Scott Boham"' 263PRINT "Looks best at more than 1 meter away!"'' 264PRINT "(B)ig or (S)mall display:";:small% = ((GET OR 32) = ASC("s")) 265IF small% THEN PRINT "Small" ELSE PRINT "Big" 266 267PRINT "(C)olour or (B)lack & White:";:colour% = ((GET OR 32) = ASC("c")) 268IF colour% THEN PRINT "Colour" ELSE PRINT "B&W" 269ENDPROC
�input � 15:� 13:� �sprite �ass �go � : ��go S1=1:S2=2 � )Ȗ : ș 6,112,S1:ș 6,113,S2:Ȕ S1,S2 � plot_tunnel !r_adj=(!r_adj+2) � 256 !a_adj=(!a_adj+4) � 360 � � � : ��ass � small% � xstart% = 79 ystart% = 63 rshift=2 xend%=79 yend%=63 � xstart% = 159 ystart% = 127 xend% = 160 yend% = 126 rshift=1 � � code% 4000,L% -1 !� pass=8 � 10 � 2 "P%=code% # [OPT pass $.plot_tunnel %STMFD R13!,{R14} & ' ADR R0,s1 ( ADR R1,s2 )SWI &31 *3LDR R12,s2 ;R12 = screen address +] ,� small% � - [OPT pass .ADD R12,R12,#80 /ADD R12,R12,#64*320 0] 1� 2 [OPT pass 3 4BLDR R11,atn_table ;R11 = pointer to start of atn_table 59LDR R10,col_table ;R10 = pointer to col table 6 7 8?MVN R9,#ystart% ;R9 = y-co-ord (-128 to 127) 9.y_loop :?MVN R8,#xstart% ;R8 = x-co-ord (-159 to 160) ;.x_loop < =*MOV R7,#1 ;R7 = angle > ?CMP R8,#0:BNE x_not_zero @8CMP R9,#0:MOVGT R7,#90:MOVLT R7,#250:ADDLT R7,R7,#20 A.x_not_zero BCMP R9,#0:BNE y_not_zero C'CMP R8,#0:MOVLT R7,#180:MOVGE R7,#0 D.y_not_zero E F CMP R7,#1 GBNE angle_set H I&MOV R5,R9:CMP R5,#0:RSBLT R5,R5,#0 J&MOV R6,R8:CMP R6,#0:RSBLT R6,R6,#0 KMOV R5,R5,LSL #8 L M�div(5,6,4,3) N O ;R4 = oa% P QCMP R4,#8192 RMOVGE R4,#8192 SLDR R4,[R11,R4,LSL #2] T U;R4 = a% (0�-89�) V W XCMP R8,#0:BGT x_positive YCMP R9,#0:RSBGT R4,R4,#180 Z ADDLT R4,R4,#180 [B adjustment_done \ ].x_positive ^ CMP R9,#0 : RSBLT R4,R4,#360 _ `.adjustment_done a MOV R7,R4 b c.angle_set d e;R7 = angle f g MOV R0,R8 hCMP R0,#0:RSBLT R0,R0,#0 i MOV R1,R0 jMUL R0,R1,R0 k l MOV R1,R9 mCMP R1,#0:RSBLT R1,R1,#0 n MOV R2,R1 oMUL R1,R2,R1 p qADD R0,R0,R1 rMOV R0,R0,LSR #4 sCMP R0,#2624 tMOVGT R0,#2624 u vLDR R2,sqr_table w xLDR R6,[R2,R0,LSL #2] y z;R6 = r%, R7 = a% { |LDR R0,r_adj }SUB R6,R6,R0 ~ CMP R6,#0 ADDLT R6,R6,#256 � �LDR R0,a_adj �ADD R7,R7,R0 �CMP R7,#360 �SUBGE R7,R7,#360 � � �MOV R6,R6,LSR #rshift �MOV R5,#180 �MUL R5,R6,R5 �ADD R5,R5,R7,LSR #1 � �LDR R6,spr_addr � �LDRB R0,[R6,R5] � �LDRB R0,[R10,R0] � �STRB R0,[R12],#2 � �ADD R8,R8,#2 �CMP R8,#xend% �BLT x_loop � �] �� small% � � [OPT pass �ADD R12,R12,#160+320 �] �� � [OPT pass �ADD R12,R12,#320 �] �� � [OPT pass � �ADD R9,R9,#2 �CMP R9,#yend% �BLT y_loop � �LDMFD R13!,{PC} �.s1 EQUD 148:EQUD -1 �.s2 EQUD 0 �.atn_table EQUD atn% �.col_table EQUD col% �.sqr_table EQUD sqr% �.spr_addr EQUD spr% �.r_adj EQUD 0 �.a_adj EQUD 0 �] � � pass �� �: �)ݤdiv(number,divisor,quotient,remain) �%� division_loop,place,dsign,msign �place=0 �dsign=1 �msign=2 � [OPT pass �STMFD R13!,{R0-R2} ��S msign,number,#1<<31 �RSBMI number,number,#0 �� dsign,msign,divisor �CMP divisor,#0 �RSBMI divisor,divisor,#0 �MOV remain,#0 �MOV quotient,#0 �MOV place,#1<<31 �.division_loop �MOVS number,number,ASL #1 �ADC remain,remain,remain �CMP remain,divisor �SUBGE remain,remain,divisor � �RGE quotient,quotient,place �MOVS place,place,LSR#1 �BNE division_loop �CMP dsign,#0 �RSBMI quotient,quotient,#0 �CMP msign,#0 �RSBMI remain,remain,#0 �LDMFD R13!,{R0-R2} �] �=0 �: ���sprite �� "Please wait."; � � q 8 � !q=148 � q!4=-1 �ș &31,q,q �base%=!q �3� spr% 180*128,col% 256,atn% 8200*4,sqr% 2800*4 �� n%=spr% � spr%+180*128-1 �#� n%=spr% � c1%=128 � c1%=n%?-1 �)� n%<spr%+180 � c2%=128 � c2%=n%?-180 �)� n%<spr%+179 � c3%=128 � c3%=n%?-179 �#c% = (c1%+c2%+c3%)/3 + �(32)-16 �� c%<0 � c%=0 �� c%>255 � c%=255 � ?n%=c% �� n% � � "."; � �� colour% � � �� c%=0 � 255 �Kș "ColourTrans_ConvertHSVToRGB",c%*65000*2*1.40625,130*256,255 � r,g,b �3ș "ColourTrans_SetGCOL",(r<<8)+(g<<16)+(b<<24) � Ȓ 0,1023 �col%?c%=?base% �� c% � �� �� c%=0 � 255 �6ș "ColourTrans_SetGCOL",(c%<<8)+(c%<<16)+(c%<<24) � Ȓ 0,1023 �col%?c%=?base% �� c% �� � � � � "."; �� i%=0 � 8192 �atn%!(i%*4) = ��(i%/256) �� i% � � "."; �� d%=0 � 2623 �sqr%!(d%*4) = �(d%<<4) � d% � "." � � : ��input 5� "Sprite mapped onto a tunnel - By Scott Boham"' /� "Looks best at more than 1 meter away!"'' ?� "(B)ig or (S)mall display:";:small% = ((� � 32) = �("s")) "� small% � � "Small" � � "Big" C� "(C)olour or (B)lack & White:";:colour% = ((� � 32) = �("c")) $� colour% � � "Colour" � � "B&W" � �
00000000 0d 00 01 0a f2 69 6e 70 75 74 0d 00 02 0f eb 20 |.....input..... | 00000010 31 35 3a eb 20 31 33 3a 87 0d 00 03 0b f2 73 70 |15:. 13:......sp| 00000020 72 69 74 65 0d 00 04 08 f2 61 73 73 0d 00 05 07 |rite.....ass....| 00000030 f2 67 6f 0d 00 06 05 e0 0d 00 07 05 3a 0d 00 08 |.go.........:...| 00000040 08 dd f2 67 6f 0d 00 09 0d 53 31 3d 31 3a 53 32 |...go....S1=1:S2| 00000050 3d 32 0d 00 0a 05 f5 0d 00 0b 29 c8 96 20 3a 20 |=2........).. : | 00000060 c8 99 20 36 2c 31 31 32 2c 53 31 3a c8 99 20 36 |.. 6,112,S1:.. 6| 00000070 2c 31 31 33 2c 53 32 3a c8 94 20 53 31 2c 53 32 |,113,S2:.. S1,S2| 00000080 0d 00 0c 11 d6 20 70 6c 6f 74 5f 74 75 6e 6e 65 |..... plot_tunne| 00000090 6c 0d 00 0d 1b 21 72 5f 61 64 6a 3d 28 21 72 5f |l....!r_adj=(!r_| 000000a0 61 64 6a 2b 32 29 20 83 20 32 35 36 0d 00 0e 1b |adj+2) . 256....| 000000b0 21 61 5f 61 64 6a 3d 28 21 61 5f 61 64 6a 2b 34 |!a_adj=(!a_adj+4| 000000c0 29 20 83 20 33 36 30 0d 00 0f 07 fd 20 a3 0d 00 |) . 360..... ...| 000000d0 10 05 e1 0d 00 11 05 3a 0d 00 12 09 dd f2 61 73 |.......:......as| 000000e0 73 0d 00 13 0e e7 20 73 6d 61 6c 6c 25 20 8c 0d |s..... small% ..| 000000f0 00 14 10 78 73 74 61 72 74 25 20 3d 20 37 39 0d |...xstart% = 79.| 00000100 00 15 10 79 73 74 61 72 74 25 20 3d 20 36 33 0d |...ystart% = 63.| 00000110 00 16 0c 72 73 68 69 66 74 3d 32 0d 00 17 0c 78 |...rshift=2....x| 00000120 65 6e 64 25 3d 37 39 0d 00 18 0c 79 65 6e 64 25 |end%=79....yend%| 00000130 3d 36 33 0d 00 19 05 cc 0d 00 1a 11 78 73 74 61 |=63.........xsta| 00000140 72 74 25 20 3d 20 31 35 39 0d 00 1b 11 79 73 74 |rt% = 159....yst| 00000150 61 72 74 25 20 3d 20 31 32 37 0d 00 1c 11 78 65 |art% = 127....xe| 00000160 6e 64 25 20 20 20 3d 20 31 36 30 0d 00 1d 11 79 |nd% = 160....y| 00000170 65 6e 64 25 20 20 20 3d 20 31 32 36 0d 00 1e 0c |end% = 126....| 00000180 72 73 68 69 66 74 3d 31 0d 00 1f 05 cd 0d 00 20 |rshift=1....... | 00000190 16 de 20 63 6f 64 65 25 20 34 30 30 30 2c 4c 25 |.. code% 4000,L%| 000001a0 20 2d 31 0d 00 21 15 e3 20 70 61 73 73 3d 38 20 | -1..!.. pass=8 | 000001b0 b8 20 31 30 20 88 20 32 0d 00 22 0c 50 25 3d 63 |. 10 . 2..".P%=c| 000001c0 6f 64 65 25 0d 00 23 0d 5b 4f 50 54 20 70 61 73 |ode%..#.[OPT pas| 000001d0 73 0d 00 24 10 2e 70 6c 6f 74 5f 74 75 6e 6e 65 |s..$..plot_tunne| 000001e0 6c 0d 00 25 14 53 54 4d 46 44 20 52 31 33 21 2c |l..%.STMFD R13!,| 000001f0 7b 52 31 34 7d 0d 00 26 04 0d 00 27 0d 41 44 52 |{R14}..&...'.ADR| 00000200 20 52 30 2c 73 31 0d 00 28 0d 41 44 52 20 52 31 | R0,s1..(.ADR R1| 00000210 2c 73 32 0d 00 29 0b 53 57 49 20 26 33 31 0d 00 |,s2..).SWI &31..| 00000220 2a 33 4c 44 52 20 52 31 32 2c 73 32 20 20 20 20 |*3LDR R12,s2 | 00000230 20 20 20 20 20 20 20 20 20 20 20 20 3b 52 31 32 | ;R12| 00000240 20 3d 20 73 63 72 65 65 6e 20 61 64 64 72 65 73 | = screen addres| 00000250 73 0d 00 2b 05 5d 0d 00 2c 0e e7 20 73 6d 61 6c |s..+.]..,.. smal| 00000260 6c 25 20 8c 0d 00 2d 0d 5b 4f 50 54 20 70 61 73 |l% ...-.[OPT pas| 00000270 73 0d 00 2e 13 41 44 44 20 52 31 32 2c 52 31 32 |s....ADD R12,R12| 00000280 2c 23 38 30 0d 00 2f 17 41 44 44 20 52 31 32 2c |,#80../.ADD R12,| 00000290 52 31 32 2c 23 36 34 2a 33 32 30 0d 00 30 05 5d |R12,#64*320..0.]| 000002a0 0d 00 31 05 cd 0d 00 32 0d 5b 4f 50 54 20 70 61 |..1....2.[OPT pa| 000002b0 73 73 0d 00 33 04 0d 00 34 42 4c 44 52 20 52 31 |ss..3...4BLDR R1| 000002c0 31 2c 61 74 6e 5f 74 61 62 6c 65 20 20 20 20 20 |1,atn_table | 000002d0 20 20 20 20 3b 52 31 31 20 3d 20 70 6f 69 6e 74 | ;R11 = point| 000002e0 65 72 20 74 6f 20 73 74 61 72 74 20 6f 66 20 61 |er to start of a| 000002f0 74 6e 5f 74 61 62 6c 65 0d 00 35 39 4c 44 52 20 |tn_table..59LDR | 00000300 52 31 30 2c 63 6f 6c 5f 74 61 62 6c 65 20 20 20 |R10,col_table | 00000310 20 20 20 20 20 20 3b 52 31 30 20 3d 20 70 6f 69 | ;R10 = poi| 00000320 6e 74 65 72 20 74 6f 20 63 6f 6c 20 74 61 62 6c |nter to col tabl| 00000330 65 0d 00 36 04 0d 00 37 04 0d 00 38 3f 4d 56 4e |e..6...7...8?MVN| 00000340 20 52 39 2c 23 79 73 74 61 72 74 25 20 20 20 20 | R9,#ystart% | 00000350 20 20 20 20 20 20 20 20 20 20 20 3b 52 39 20 20 | ;R9 | 00000360 3d 20 79 2d 63 6f 2d 6f 72 64 20 28 2d 31 32 38 |= y-co-ord (-128| 00000370 20 74 6f 20 31 32 37 29 0d 00 39 0b 2e 79 5f 6c | to 127)..9..y_l| 00000380 6f 6f 70 0d 00 3a 3f 4d 56 4e 20 52 38 2c 23 78 |oop..:?MVN R8,#x| 00000390 73 74 61 72 74 25 20 20 20 20 20 20 20 20 20 20 |start% | 000003a0 20 20 20 20 20 3b 52 38 20 20 3d 20 78 2d 63 6f | ;R8 = x-co| 000003b0 2d 6f 72 64 20 28 2d 31 35 39 20 74 6f 20 31 36 |-ord (-159 to 16| 000003c0 30 29 0d 00 3b 0b 2e 78 5f 6c 6f 6f 70 0d 00 3c |0)..;..x_loop..<| 000003d0 04 0d 00 3d 2a 4d 4f 56 20 52 37 2c 23 31 20 20 |...=*MOV R7,#1 | 000003e0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3b | ;| 000003f0 52 37 20 20 3d 20 61 6e 67 6c 65 0d 00 3e 04 0d |R7 = angle..>..| 00000400 00 3f 1c 43 4d 50 20 52 38 2c 23 30 3a 42 4e 45 |.?.CMP R8,#0:BNE| 00000410 20 78 5f 6e 6f 74 5f 7a 65 72 6f 0d 00 40 38 43 | x_not_zero..@8C| 00000420 4d 50 20 52 39 2c 23 30 3a 4d 4f 56 47 54 20 52 |MP R9,#0:MOVGT R| 00000430 37 2c 23 39 30 3a 4d 4f 56 4c 54 20 52 37 2c 23 |7,#90:MOVLT R7,#| 00000440 32 35 30 3a 41 44 44 4c 54 20 52 37 2c 52 37 2c |250:ADDLT R7,R7,| 00000450 23 32 30 0d 00 41 0f 2e 78 5f 6e 6f 74 5f 7a 65 |#20..A..x_not_ze| 00000460 72 6f 0d 00 42 1c 43 4d 50 20 52 39 2c 23 30 3a |ro..B.CMP R9,#0:| 00000470 42 4e 45 20 79 5f 6e 6f 74 5f 7a 65 72 6f 0d 00 |BNE y_not_zero..| 00000480 43 27 43 4d 50 20 52 38 2c 23 30 3a 4d 4f 56 4c |C'CMP R8,#0:MOVL| 00000490 54 20 52 37 2c 23 31 38 30 3a 4d 4f 56 47 45 20 |T R7,#180:MOVGE | 000004a0 52 37 2c 23 30 0d 00 44 0f 2e 79 5f 6e 6f 74 5f |R7,#0..D..y_not_| 000004b0 7a 65 72 6f 0d 00 45 04 0d 00 46 0d 43 4d 50 20 |zero..E...F.CMP | 000004c0 52 37 2c 23 31 0d 00 47 11 42 4e 45 20 61 6e 67 |R7,#1..G.BNE ang| 000004d0 6c 65 5f 73 65 74 0d 00 48 04 0d 00 49 26 4d 4f |le_set..H...I&MO| 000004e0 56 20 52 35 2c 52 39 3a 43 4d 50 20 52 35 2c 23 |V R5,R9:CMP R5,#| 000004f0 30 3a 52 53 42 4c 54 20 52 35 2c 52 35 2c 23 30 |0:RSBLT R5,R5,#0| 00000500 0d 00 4a 26 4d 4f 56 20 52 36 2c 52 38 3a 43 4d |..J&MOV R6,R8:CM| 00000510 50 20 52 36 2c 23 30 3a 52 53 42 4c 54 20 52 36 |P R6,#0:RSBLT R6| 00000520 2c 52 36 2c 23 30 0d 00 4b 14 4d 4f 56 20 52 35 |,R6,#0..K.MOV R5| 00000530 2c 52 35 2c 4c 53 4c 20 23 38 0d 00 4c 04 0d 00 |,R5,LSL #8..L...| 00000540 4d 11 a4 64 69 76 28 35 2c 36 2c 34 2c 33 29 0d |M..div(5,6,4,3).| 00000550 00 4e 04 0d 00 4f 0d 3b 52 34 20 3d 20 6f 61 25 |.N...O.;R4 = oa%| 00000560 0d 00 50 04 0d 00 51 10 43 4d 50 20 52 34 2c 23 |..P...Q.CMP R4,#| 00000570 38 31 39 32 0d 00 52 12 4d 4f 56 47 45 20 52 34 |8192..R.MOVGE R4| 00000580 2c 23 38 31 39 32 0d 00 53 1a 4c 44 52 20 52 34 |,#8192..S.LDR R4| 00000590 2c 5b 52 31 31 2c 52 34 2c 4c 53 4c 20 23 32 5d |,[R11,R4,LSL #2]| 000005a0 0d 00 54 04 0d 00 55 16 3b 52 34 20 3d 20 61 25 |..T...U.;R4 = a%| 000005b0 20 20 28 30 b0 2d 38 39 b0 29 0d 00 56 04 0d 00 | (0.-89.)..V...| 000005c0 57 04 0d 00 58 1c 43 4d 50 20 52 38 2c 23 30 3a |W...X.CMP R8,#0:| 000005d0 42 47 54 20 78 5f 70 6f 73 69 74 69 76 65 0d 00 |BGT x_positive..| 000005e0 59 1e 43 4d 50 20 52 39 2c 23 30 3a 52 53 42 47 |Y.CMP R9,#0:RSBG| 000005f0 54 20 52 34 2c 52 34 2c 23 31 38 30 0d 00 5a 1e |T R4,R4,#180..Z.| 00000600 20 20 20 20 20 20 20 20 20 20 41 44 44 4c 54 20 | ADDLT | 00000610 52 34 2c 52 34 2c 23 31 38 30 0d 00 5b 15 42 20 |R4,R4,#180..[.B | 00000620 61 64 6a 75 73 74 6d 65 6e 74 5f 64 6f 6e 65 0d |adjustment_done.| 00000630 00 5c 04 0d 00 5d 0f 2e 78 5f 70 6f 73 69 74 69 |.\...]..x_positi| 00000640 76 65 0d 00 5e 20 43 4d 50 20 52 39 2c 23 30 20 |ve..^ CMP R9,#0 | 00000650 3a 20 52 53 42 4c 54 20 52 34 2c 52 34 2c 23 33 |: RSBLT R4,R4,#3| 00000660 36 30 0d 00 5f 04 0d 00 60 14 2e 61 64 6a 75 73 |60.._...`..adjus| 00000670 74 6d 65 6e 74 5f 64 6f 6e 65 0d 00 61 0d 4d 4f |tment_done..a.MO| 00000680 56 20 52 37 2c 52 34 0d 00 62 04 0d 00 63 0e 2e |V R7,R4..b...c..| 00000690 61 6e 67 6c 65 5f 73 65 74 0d 00 64 04 0d 00 65 |angle_set..d...e| 000006a0 0f 3b 52 37 20 3d 20 61 6e 67 6c 65 0d 00 66 04 |.;R7 = angle..f.| 000006b0 0d 00 67 0d 4d 4f 56 20 52 30 2c 52 38 0d 00 68 |..g.MOV R0,R8..h| 000006c0 1c 43 4d 50 20 52 30 2c 23 30 3a 52 53 42 4c 54 |.CMP R0,#0:RSBLT| 000006d0 20 52 30 2c 52 30 2c 23 30 0d 00 69 0d 4d 4f 56 | R0,R0,#0..i.MOV| 000006e0 20 52 31 2c 52 30 0d 00 6a 10 4d 55 4c 20 52 30 | R1,R0..j.MUL R0| 000006f0 2c 52 31 2c 52 30 0d 00 6b 04 0d 00 6c 0d 4d 4f |,R1,R0..k...l.MO| 00000700 56 20 52 31 2c 52 39 0d 00 6d 1c 43 4d 50 20 52 |V R1,R9..m.CMP R| 00000710 31 2c 23 30 3a 52 53 42 4c 54 20 52 31 2c 52 31 |1,#0:RSBLT R1,R1| 00000720 2c 23 30 0d 00 6e 0d 4d 4f 56 20 52 32 2c 52 31 |,#0..n.MOV R2,R1| 00000730 0d 00 6f 10 4d 55 4c 20 52 31 2c 52 32 2c 52 31 |..o.MUL R1,R2,R1| 00000740 0d 00 70 04 0d 00 71 10 41 44 44 20 52 30 2c 52 |..p...q.ADD R0,R| 00000750 30 2c 52 31 0d 00 72 14 4d 4f 56 20 52 30 2c 52 |0,R1..r.MOV R0,R| 00000760 30 2c 4c 53 52 20 23 34 0d 00 73 10 43 4d 50 20 |0,LSR #4..s.CMP | 00000770 52 30 2c 23 32 36 32 34 0d 00 74 12 4d 4f 56 47 |R0,#2624..t.MOVG| 00000780 54 20 52 30 2c 23 32 36 32 34 0d 00 75 04 0d 00 |T R0,#2624..u...| 00000790 76 14 4c 44 52 20 52 32 2c 73 71 72 5f 74 61 62 |v.LDR R2,sqr_tab| 000007a0 6c 65 0d 00 77 04 0d 00 78 19 4c 44 52 20 52 36 |le..w...x.LDR R6| 000007b0 2c 5b 52 32 2c 52 30 2c 4c 53 4c 20 23 32 5d 0d |,[R2,R0,LSL #2].| 000007c0 00 79 04 0d 00 7a 15 3b 52 36 20 3d 20 72 25 2c |.y...z.;R6 = r%,| 000007d0 20 52 37 20 3d 20 61 25 0d 00 7b 04 0d 00 7c 10 | R7 = a%..{...|.| 000007e0 4c 44 52 20 52 30 2c 72 5f 61 64 6a 0d 00 7d 10 |LDR R0,r_adj..}.| 000007f0 53 55 42 20 52 36 2c 52 36 2c 52 30 0d 00 7e 0d |SUB R6,R6,R0..~.| 00000800 43 4d 50 20 52 36 2c 23 30 0d 00 7f 14 41 44 44 |CMP R6,#0....ADD| 00000810 4c 54 20 52 36 2c 52 36 2c 23 32 35 36 0d 00 80 |LT R6,R6,#256...| 00000820 04 0d 00 81 10 4c 44 52 20 52 30 2c 61 5f 61 64 |.....LDR R0,a_ad| 00000830 6a 0d 00 82 10 41 44 44 20 52 37 2c 52 37 2c 52 |j....ADD R7,R7,R| 00000840 30 0d 00 83 0f 43 4d 50 20 52 37 2c 23 33 36 30 |0....CMP R7,#360| 00000850 0d 00 84 14 53 55 42 47 45 20 52 37 2c 52 37 2c |....SUBGE R7,R7,| 00000860 23 33 36 30 0d 00 85 04 0d 00 86 04 0d 00 87 19 |#360............| 00000870 4d 4f 56 20 52 36 2c 52 36 2c 4c 53 52 20 23 72 |MOV R6,R6,LSR #r| 00000880 73 68 69 66 74 0d 00 88 0f 4d 4f 56 20 52 35 2c |shift....MOV R5,| 00000890 23 31 38 30 0d 00 89 10 4d 55 4c 20 52 35 2c 52 |#180....MUL R5,R| 000008a0 36 2c 52 35 0d 00 8a 17 41 44 44 20 52 35 2c 52 |6,R5....ADD R5,R| 000008b0 35 2c 52 37 2c 4c 53 52 20 23 31 0d 00 8b 04 0d |5,R7,LSR #1.....| 000008c0 00 8c 13 4c 44 52 20 52 36 2c 73 70 72 5f 61 64 |...LDR R6,spr_ad| 000008d0 64 72 0d 00 8d 04 0d 00 8e 13 4c 44 52 42 20 52 |dr........LDRB R| 000008e0 30 2c 5b 52 36 2c 52 35 5d 0d 00 8f 04 0d 00 90 |0,[R6,R5].......| 000008f0 14 4c 44 52 42 20 52 30 2c 5b 52 31 30 2c 52 30 |.LDRB R0,[R10,R0| 00000900 5d 0d 00 91 04 0d 00 92 14 53 54 52 42 20 52 30 |]........STRB R0| 00000910 2c 5b 52 31 32 5d 2c 23 32 0d 00 93 04 0d 00 94 |,[R12],#2.......| 00000920 10 41 44 44 20 52 38 2c 52 38 2c 23 32 0d 00 95 |.ADD R8,R8,#2...| 00000930 11 43 4d 50 20 52 38 2c 23 78 65 6e 64 25 0d 00 |.CMP R8,#xend%..| 00000940 96 0e 42 4c 54 20 78 5f 6c 6f 6f 70 0d 00 97 04 |..BLT x_loop....| 00000950 0d 00 98 05 5d 0d 00 99 0e e7 20 73 6d 61 6c 6c |....]..... small| 00000960 25 20 8c 0d 00 9a 0d 5b 4f 50 54 20 70 61 73 73 |% .....[OPT pass| 00000970 0d 00 9b 18 41 44 44 20 52 31 32 2c 52 31 32 2c |....ADD R12,R12,| 00000980 23 31 36 30 2b 33 32 30 0d 00 9c 05 5d 0d 00 9d |#160+320....]...| 00000990 05 cc 0d 00 9e 0d 5b 4f 50 54 20 70 61 73 73 0d |......[OPT pass.| 000009a0 00 9f 14 41 44 44 20 52 31 32 2c 52 31 32 2c 23 |...ADD R12,R12,#| 000009b0 33 32 30 0d 00 a0 05 5d 0d 00 a1 05 cd 0d 00 a2 |320....]........| 000009c0 0d 5b 4f 50 54 20 70 61 73 73 0d 00 a3 04 0d 00 |.[OPT pass......| 000009d0 a4 10 41 44 44 20 52 39 2c 52 39 2c 23 32 0d 00 |..ADD R9,R9,#2..| 000009e0 a5 11 43 4d 50 20 52 39 2c 23 79 65 6e 64 25 0d |..CMP R9,#yend%.| 000009f0 00 a6 0e 42 4c 54 20 79 5f 6c 6f 6f 70 0d 00 a7 |...BLT y_loop...| 00000a00 04 0d 00 a8 13 4c 44 4d 46 44 20 52 31 33 21 2c |.....LDMFD R13!,| 00000a10 7b 50 43 7d 0d 00 a9 18 2e 73 31 20 45 51 55 44 |{PC}.....s1 EQUD| 00000a20 20 31 34 38 3a 45 51 55 44 20 2d 31 0d 00 aa 0e | 148:EQUD -1....| 00000a30 2e 73 32 20 45 51 55 44 20 30 0d 00 ab 18 2e 61 |.s2 EQUD 0.....a| 00000a40 74 6e 5f 74 61 62 6c 65 20 45 51 55 44 20 61 74 |tn_table EQUD at| 00000a50 6e 25 0d 00 ac 18 2e 63 6f 6c 5f 74 61 62 6c 65 |n%.....col_table| 00000a60 20 45 51 55 44 20 63 6f 6c 25 0d 00 ad 18 2e 73 | EQUD col%.....s| 00000a70 71 72 5f 74 61 62 6c 65 20 45 51 55 44 20 73 71 |qr_table EQUD sq| 00000a80 72 25 0d 00 ae 18 2e 73 70 72 5f 61 64 64 72 20 |r%.....spr_addr | 00000a90 20 45 51 55 44 20 73 70 72 25 0d 00 af 15 2e 72 | EQUD spr%.....r| 00000aa0 5f 61 64 6a 20 20 20 20 20 45 51 55 44 20 30 0d |_adj EQUD 0.| 00000ab0 00 b0 15 2e 61 5f 61 64 6a 20 20 20 20 20 45 51 |....a_adj EQ| 00000ac0 55 44 20 30 0d 00 b1 05 5d 0d 00 b2 0a ed 20 70 |UD 0....]..... p| 00000ad0 61 73 73 0d 00 b3 05 e1 0d 00 b4 05 3a 0d 00 b5 |ass.........:...| 00000ae0 29 dd a4 64 69 76 28 6e 75 6d 62 65 72 2c 64 69 |)..div(number,di| 00000af0 76 69 73 6f 72 2c 71 75 6f 74 69 65 6e 74 2c 72 |visor,quotient,r| 00000b00 65 6d 61 69 6e 29 0d 00 b6 25 ea 20 64 69 76 69 |emain)...%. divi| 00000b10 73 69 6f 6e 5f 6c 6f 6f 70 2c 70 6c 61 63 65 2c |sion_loop,place,| 00000b20 64 73 69 67 6e 2c 6d 73 69 67 6e 0d 00 b7 0b 70 |dsign,msign....p| 00000b30 6c 61 63 65 3d 30 0d 00 b8 0b 64 73 69 67 6e 3d |lace=0....dsign=| 00000b40 31 0d 00 b9 0b 6d 73 69 67 6e 3d 32 0d 00 ba 0d |1....msign=2....| 00000b50 5b 4f 50 54 20 70 61 73 73 0d 00 bb 16 53 54 4d |[OPT pass....STM| 00000b60 46 44 20 52 31 33 21 2c 7b 52 30 2d 52 32 7d 0d |FD R13!,{R0-R2}.| 00000b70 00 bc 1a 80 53 20 6d 73 69 67 6e 2c 6e 75 6d 62 |....S msign,numb| 00000b80 65 72 2c 23 31 3c 3c 33 31 0d 00 bd 1a 52 53 42 |er,#1<<31....RSB| 00000b90 4d 49 20 6e 75 6d 62 65 72 2c 6e 75 6d 62 65 72 |MI number,number| 00000ba0 2c 23 30 0d 00 be 19 82 20 64 73 69 67 6e 2c 6d |,#0..... dsign,m| 00000bb0 73 69 67 6e 2c 64 69 76 69 73 6f 72 0d 00 bf 12 |sign,divisor....| 00000bc0 43 4d 50 20 64 69 76 69 73 6f 72 2c 23 30 0d 00 |CMP divisor,#0..| 00000bd0 c0 1c 52 53 42 4d 49 20 64 69 76 69 73 6f 72 2c |..RSBMI divisor,| 00000be0 64 69 76 69 73 6f 72 2c 23 30 0d 00 c1 11 4d 4f |divisor,#0....MO| 00000bf0 56 20 72 65 6d 61 69 6e 2c 23 30 0d 00 c2 13 4d |V remain,#0....M| 00000c00 4f 56 20 71 75 6f 74 69 65 6e 74 2c 23 30 0d 00 |OV quotient,#0..| 00000c10 c3 14 4d 4f 56 20 70 6c 61 63 65 2c 23 31 3c 3c |..MOV place,#1<<| 00000c20 33 31 0d 00 c4 12 2e 64 69 76 69 73 69 6f 6e 5f |31.....division_| 00000c30 6c 6f 6f 70 0d 00 c5 1d 4d 4f 56 53 20 6e 75 6d |loop....MOVS num| 00000c40 62 65 72 2c 6e 75 6d 62 65 72 2c 41 53 4c 20 23 |ber,number,ASL #| 00000c50 31 0d 00 c6 1c 41 44 43 20 72 65 6d 61 69 6e 2c |1....ADC remain,| 00000c60 72 65 6d 61 69 6e 2c 72 65 6d 61 69 6e 0d 00 c7 |remain,remain...| 00000c70 16 43 4d 50 20 72 65 6d 61 69 6e 2c 64 69 76 69 |.CMP remain,divi| 00000c80 73 6f 72 0d 00 c8 1f 53 55 42 47 45 20 72 65 6d |sor....SUBGE rem| 00000c90 61 69 6e 2c 72 65 6d 61 69 6e 2c 64 69 76 69 73 |ain,remain,divis| 00000ca0 6f 72 0d 00 c9 20 84 52 47 45 20 71 75 6f 74 69 |or... .RGE quoti| 00000cb0 65 6e 74 2c 71 75 6f 74 69 65 6e 74 2c 70 6c 61 |ent,quotient,pla| 00000cc0 63 65 0d 00 ca 1a 4d 4f 56 53 20 70 6c 61 63 65 |ce....MOVS place| 00000cd0 2c 70 6c 61 63 65 2c 4c 53 52 23 31 0d 00 cb 15 |,place,LSR#1....| 00000ce0 42 4e 45 20 64 69 76 69 73 69 6f 6e 5f 6c 6f 6f |BNE division_loo| 00000cf0 70 0d 00 cc 10 43 4d 50 20 64 73 69 67 6e 2c 23 |p....CMP dsign,#| 00000d00 30 0d 00 cd 1e 52 53 42 4d 49 20 71 75 6f 74 69 |0....RSBMI quoti| 00000d10 65 6e 74 2c 71 75 6f 74 69 65 6e 74 2c 23 30 0d |ent,quotient,#0.| 00000d20 00 ce 10 43 4d 50 20 6d 73 69 67 6e 2c 23 30 0d |...CMP msign,#0.| 00000d30 00 cf 1a 52 53 42 4d 49 20 72 65 6d 61 69 6e 2c |...RSBMI remain,| 00000d40 72 65 6d 61 69 6e 2c 23 30 0d 00 d0 16 4c 44 4d |remain,#0....LDM| 00000d50 46 44 20 52 31 33 21 2c 7b 52 30 2d 52 32 7d 0d |FD R13!,{R0-R2}.| 00000d60 00 d1 05 5d 0d 00 d2 06 3d 30 0d 00 d3 05 3a 0d |...]....=0....:.| 00000d70 00 d4 0c dd f2 73 70 72 69 74 65 0d 00 d5 15 f1 |.....sprite.....| 00000d80 20 22 50 6c 65 61 73 65 20 77 61 69 74 2e 22 3b | "Please wait.";| 00000d90 0d 00 d6 09 de 20 71 20 38 0d 00 d7 0a 21 71 3d |..... q 8....!q=| 00000da0 31 34 38 0d 00 d8 0a 71 21 34 3d 2d 31 0d 00 d9 |148....q!4=-1...| 00000db0 0e c8 99 20 26 33 31 2c 71 2c 71 0d 00 da 0c 62 |... &31,q,q....b| 00000dc0 61 73 65 25 3d 21 71 0d 00 db 33 de 20 73 70 72 |ase%=!q...3. spr| 00000dd0 25 20 31 38 30 2a 31 32 38 2c 63 6f 6c 25 20 32 |% 180*128,col% 2| 00000de0 35 36 2c 61 74 6e 25 20 38 32 30 30 2a 34 2c 73 |56,atn% 8200*4,s| 00000df0 71 72 25 20 32 38 30 30 2a 34 0d 00 dc 1e e3 20 |qr% 2800*4..... | 00000e00 6e 25 3d 73 70 72 25 20 b8 20 73 70 72 25 2b 31 |n%=spr% . spr%+1| 00000e10 38 30 2a 31 32 38 2d 31 0d 00 dd 23 e7 20 6e 25 |80*128-1...#. n%| 00000e20 3d 73 70 72 25 20 8c 20 63 31 25 3d 31 32 38 20 |=spr% . c1%=128 | 00000e30 8b 20 63 31 25 3d 6e 25 3f 2d 31 0d 00 de 29 e7 |. c1%=n%?-1...).| 00000e40 20 6e 25 3c 73 70 72 25 2b 31 38 30 20 8c 20 63 | n%<spr%+180 . c| 00000e50 32 25 3d 31 32 38 20 8b 20 63 32 25 3d 6e 25 3f |2%=128 . c2%=n%?| 00000e60 2d 31 38 30 0d 00 df 29 e7 20 6e 25 3c 73 70 72 |-180...). n%<spr| 00000e70 25 2b 31 37 39 20 8c 20 63 33 25 3d 31 32 38 20 |%+179 . c3%=128 | 00000e80 8b 20 63 33 25 3d 6e 25 3f 2d 31 37 39 0d 00 e0 |. c3%=n%?-179...| 00000e90 23 63 25 20 3d 20 28 63 31 25 2b 63 32 25 2b 63 |#c% = (c1%+c2%+c| 00000ea0 33 25 29 2f 33 20 2b 20 b3 28 33 32 29 2d 31 36 |3%)/3 + .(32)-16| 00000eb0 0d 00 e1 11 e7 20 63 25 3c 30 20 8c 20 63 25 3d |..... c%<0 . c%=| 00000ec0 30 0d 00 e2 15 e7 20 63 25 3e 32 35 35 20 8c 20 |0..... c%>255 . | 00000ed0 63 25 3d 32 35 35 0d 00 e3 0a 3f 6e 25 3d 63 25 |c%=255....?n%=c%| 00000ee0 0d 00 e4 08 ed 20 6e 25 0d 00 e5 0a f1 20 22 2e |..... n%..... ".| 00000ef0 22 3b 0d 00 e6 04 0d 00 e7 0f e7 20 63 6f 6c 6f |";......... colo| 00000f00 75 72 25 20 8c 0d 00 e8 04 0d 00 e9 10 e3 20 63 |ur% .......... c| 00000f10 25 3d 30 20 b8 20 32 35 35 0d 00 ea 4b c8 99 20 |%=0 . 255...K.. | 00000f20 22 43 6f 6c 6f 75 72 54 72 61 6e 73 5f 43 6f 6e |"ColourTrans_Con| 00000f30 76 65 72 74 48 53 56 54 6f 52 47 42 22 2c 63 25 |vertHSVToRGB",c%| 00000f40 2a 36 35 30 30 30 2a 32 2a 31 2e 34 30 36 32 35 |*65000*2*1.40625| 00000f50 2c 31 33 30 2a 32 35 36 2c 32 35 35 20 b8 20 72 |,130*256,255 . r| 00000f60 2c 67 2c 62 0d 00 eb 33 c8 99 20 22 43 6f 6c 6f |,g,b...3.. "Colo| 00000f70 75 72 54 72 61 6e 73 5f 53 65 74 47 43 4f 4c 22 |urTrans_SetGCOL"| 00000f80 2c 28 72 3c 3c 38 29 2b 28 67 3c 3c 31 36 29 2b |,(r<<8)+(g<<16)+| 00000f90 28 62 3c 3c 32 34 29 0d 00 ec 0d c8 92 20 30 2c |(b<<24)...... 0,| 00000fa0 31 30 32 33 0d 00 ed 12 63 6f 6c 25 3f 63 25 3d |1023....col%?c%=| 00000fb0 3f 62 61 73 65 25 0d 00 ee 08 ed 20 63 25 0d 00 |?base%..... c%..| 00000fc0 ef 04 0d 00 f0 05 cc 0d 00 f1 10 e3 20 63 25 3d |............ c%=| 00000fd0 30 20 b8 20 32 35 35 0d 00 f2 36 c8 99 20 22 43 |0 . 255...6.. "C| 00000fe0 6f 6c 6f 75 72 54 72 61 6e 73 5f 53 65 74 47 43 |olourTrans_SetGC| 00000ff0 4f 4c 22 2c 28 63 25 3c 3c 38 29 2b 28 63 25 3c |OL",(c%<<8)+(c%<| 00001000 3c 31 36 29 2b 28 63 25 3c 3c 32 34 29 0d 00 f3 |<16)+(c%<<24)...| 00001010 0d c8 92 20 30 2c 31 30 32 33 0d 00 f4 12 63 6f |... 0,1023....co| 00001020 6c 25 3f 63 25 3d 3f 62 61 73 65 25 0d 00 f5 08 |l%?c%=?base%....| 00001030 ed 20 63 25 0d 00 f6 05 cd 0d 00 f7 04 0d 00 f8 |. c%............| 00001040 04 0d 00 f9 0a f1 20 22 2e 22 3b 0d 00 fa 11 e3 |...... ".";.....| 00001050 20 69 25 3d 30 20 b8 20 38 31 39 32 0d 00 fb 1c | i%=0 . 8192....| 00001060 61 74 6e 25 21 28 69 25 2a 34 29 20 3d 20 9d 99 |atn%!(i%*4) = ..| 00001070 28 69 25 2f 32 35 36 29 0d 00 fc 08 ed 20 69 25 |(i%/256)..... i%| 00001080 0d 00 fd 0a f1 20 22 2e 22 3b 0d 00 fe 11 e3 20 |..... ".";..... | 00001090 64 25 3d 30 20 b8 20 32 36 32 33 0d 00 ff 1a 73 |d%=0 . 2623....s| 000010a0 71 72 25 21 28 64 25 2a 34 29 20 3d 20 b6 28 64 |qr%!(d%*4) = .(d| 000010b0 25 3c 3c 34 29 0d 01 00 08 ed 20 64 25 0d 01 01 |%<<4)..... d%...| 000010c0 09 f1 20 22 2e 22 0d 01 02 05 db 0d 01 03 05 e1 |.. "."..........| 000010d0 0d 01 04 05 3a 0d 01 05 0b dd f2 69 6e 70 75 74 |....:......input| 000010e0 0d 01 06 35 f1 20 22 53 70 72 69 74 65 20 6d 61 |...5. "Sprite ma| 000010f0 70 70 65 64 20 6f 6e 74 6f 20 61 20 74 75 6e 6e |pped onto a tunn| 00001100 65 6c 20 2d 20 42 79 20 53 63 6f 74 74 20 42 6f |el - By Scott Bo| 00001110 68 61 6d 22 27 0d 01 07 2f f1 20 22 4c 6f 6f 6b |ham"'.../. "Look| 00001120 73 20 62 65 73 74 20 61 74 20 6d 6f 72 65 20 74 |s best at more t| 00001130 68 61 6e 20 31 20 6d 65 74 65 72 20 61 77 61 79 |han 1 meter away| 00001140 21 22 27 27 0d 01 08 3f f1 20 22 28 42 29 69 67 |!"''...?. "(B)ig| 00001150 20 6f 72 20 28 53 29 6d 61 6c 6c 20 64 69 73 70 | or (S)mall disp| 00001160 6c 61 79 3a 22 3b 3a 73 6d 61 6c 6c 25 20 3d 20 |lay:";:small% = | 00001170 28 28 a5 20 84 20 33 32 29 20 3d 20 97 28 22 73 |((. . 32) = .("s| 00001180 22 29 29 0d 01 09 22 e7 20 73 6d 61 6c 6c 25 20 |"))...". small% | 00001190 8c 20 f1 20 22 53 6d 61 6c 6c 22 20 8b 20 f1 20 |. . "Small" . . | 000011a0 22 42 69 67 22 0d 01 0a 04 0d 01 0b 43 f1 20 22 |"Big".......C. "| 000011b0 28 43 29 6f 6c 6f 75 72 20 6f 72 20 28 42 29 6c |(C)olour or (B)l| 000011c0 61 63 6b 20 26 20 57 68 69 74 65 3a 22 3b 3a 63 |ack & White:";:c| 000011d0 6f 6c 6f 75 72 25 20 3d 20 28 28 a5 20 84 20 33 |olour% = ((. . 3| 000011e0 32 29 20 3d 20 97 28 22 63 22 29 29 0d 01 0c 24 |2) = .("c"))...$| 000011f0 e7 20 63 6f 6c 6f 75 72 25 20 8c 20 f1 20 22 43 |. colour% . . "C| 00001200 6f 6c 6f 75 72 22 20 8b 20 f1 20 22 42 26 57 22 |olour" . . "B&W"| 00001210 0d 01 0d 05 e1 0d ff |.......| 00001217