Home » Archimedes archive » Archimedes World » AW-1996-09.adf » !AcornAns_AcornAns » AmazeCirc
AmazeCirc
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 » Archimedes World » AW-1996-09.adf » !AcornAns_AcornAns |
Filename: | AmazeCirc |
Read OK: | ✔ |
File size: | 0AEE bytes |
Load address: | 0000 |
Exec address: | 0000 |
File contents
10MODE 13 : REM try modes 15 and 21 if you can! 20PROCinitvbles 30REPEAT 40 PROCinputparams 50 PROCassemble 60 CLS:OFF 70 PROCmaze(numz,szmz) 80 VDU 7 90 dummy%=GET 100UNTIL FALSE 110END 120: 130: 140DEF PROCinitvbles 150mem=512 160DIM code mem 170!code=148:code!4=-1 180SYS "OS_ReadVduVariables",code,code 190scn=!code 200wcol=77 210tcol=3 220mcol=192 230fcol=79 240sz$="35":nu$="1":sl$="0" 250SYS "OS_ReadModeVariable",-1,11 TO ,,hpix:hpix+=1 260SYS "OS_ReadModeVariable",-1,12 TO ,,vpix:vpix+=1 270ENDPROC 280: 290DEF PROCinputparams 300PROCinput("Maze size (5-123) ",sz$,szmz,"v>=5 AND v<=123") 310PROCinput("Maze number ",nu$,numz,"v<>0") 320PROCinput("Slow (1 yes, 0 no) ",sl$,slow%,"v=0 OR v=1") 330ENDPROC 340: 350DEF PROCinput(p$,RETURN v$,RETURN v,c$) 360LOCAL w$ 370PRINT 380REPEAT 390VDU11,13:PRINTSPC(39):VDU11,13 400PRINTp$;"{"+v$+"}";:INPUT w$ 410IF w$="" w$=v$ 420IF w$="R" w$="random" 430IF w$="random" REPEAT v=RND:UNTIL v<>0 ELSE v=VALw$ 440UNTIL EVALc$=TRUE 450v$=w$ 460ENDPROC 470: 480DEF PROCmaze(num%,size%) 490size%=size%<<2 500IF size%>490 size%=490 510IF size%<20 size%=20 520GCOLwcol AND63TINTwcol 530WAIT 540CIRCLE FILL 640,512,511 550GCOLfcol AND63TINTfcol 560CIRCLE FILL 640,512,505 570GCOLwcol AND63TINTwcol 580CIRCLE FILL 640,512,size% 590!ased=num% 600GCOLmcol AND63TINTmcol 610CIRCLE FILL 640,512,2816/vpix 620CALL maze 630ENDPROC 640: 650DEF FNlcol(c%) = ((c%AND33)<<2)+((c%AND14)<<3)+((c%AND16)>>1)+((c%AND192)>>6) 660: 670DEF PROCassemble 680addr=0:xor=1:seed=2:a=3:b=4:l=5 690tc=6:r=7:fc=8:of=9:newad=10:tmp4=11 700sp=13:link=14:pc=15 710L%=code+mem 720FOR pass%=8 TO 10 STEP 2 730P%=code 740[OPT pass% 750.axor EQUD &82D4E1B8 760.ased EQUD -1 770.ascn EQUD scn+hpix/2+vpix/2*hpix 780: 790.maze 800LDR xor,axor 810LDR seed,ased 820LDR addr,ascn 830MOV tc,#FNlcol(tcol) 840MOV fc,#FNlcol(mcol) 850: 860.rep 870] 880IF slow% THEN 890 [OPT pass% 900 STMFD (sp)!,{0,1,2} 910 MOV 0, #19 920 SWI "OS_Byte" 930 LDMFD (sp)!,{0,1,2} 940 SWI "OS_ReadEscapeState" 950 MOVCS pc, link 960 ] 970ENDIF 980[OPT pass% 990LDRB r,[addr,#2] 1000LDRB l,[addr,#-2] 1010LDRB b,[addr,#hpix*2] 1020LDRB a,[addr,#-hpix*2] 1030CMP r,#FNlcol(wcol) 1040CMPNE l,#FNlcol(wcol) 1050CMPNE b,#FNlcol(wcol) 1060CMPNE a,#FNlcol(wcol) 1070BEQ endw 1080: 1090STRB fc,[addr] 1100LDRB r,[addr,#1]! 1110CMP r,tc 1120STREQB fc,[addr],#1 1130BEQ rep 1140LDRB l,[addr,#-2]! 1150CMP l,tc 1160STREQB fc,[addr],#-1 1170BEQ rep 1180LDRB b,[addr,#1+hpix]! 1190CMP b,tc 1200STREQB fc,[addr],#hpix 1210BEQ rep 1220LDRB a,[addr,#-2*hpix]! 1230CMP a,tc 1240STREQB fc,[addr],#-hpix 1250BEQ rep 1260MOV pc,link 1270: 1280.endw 1290MOVS seed,seed,LSR #1 1300EORCS seed,seed,xor 1310MOVCS of,#2 1320MOVCC of,#2*hpix 1330MOVS seed,seed,LSR #1 1340EORCS seed,seed,xor 1350ADDCS newad,addr,of 1360SUBCC newad,addr,of 1370LDRB tmp4,[newad] 1380CMP tmp4,#FNlcol(wcol) 1390BNE endw 1400ADDS addr,addr,newad 1410MOV addr,addr,RRX 1420STRB tc,[addr] 1430STRB tc,[newad] 1440MOV addr,newad 1450B rep 1460] 1470NEXT 1480ENDPROC
,� 13 : � try modes 15 and 21 if you can! �initvbles � ( �inputparams 2 �assemble < �:� F �maze(numz,szmz) P � 7 Z dummy%=� d� � n� x: �: �� �initvbles �mem=512 �� code mem �!code=148:code!4=-1 �&ș "OS_ReadVduVariables",code,code � scn=!code �wcol=77 � tcol=3 �mcol=192 �fcol=79 �sz$="35":nu$="1":sl$="0" �3ș "OS_ReadModeVariable",-1,11 � ,,hpix:hpix+=1 3ș "OS_ReadModeVariable",-1,12 � ,,vpix:vpix+=1 � : "� �inputparams ,;�input("Maze size (5-123) ",sz$,szmz,"v>=5 AND v<=123") 6*�input("Maze number ",nu$,numz,"v<>0") @8�input("Slow (1 yes, 0 no) ",sl$,slow%,"v=0 OR v=1") J� T: ^� �input(p$,� v$,� v,c$) h� w$ r� |� ��11,13:�(39):�11,13 ��p$;"{"+v$+"}";:� w$ �� w$="" w$=v$ �� w$="R" w$="random" �&� w$="random" � v=�:� v<>0 � v=�w$ �� �c$=� � v$=w$ �� �: �� �maze(num%,size%) �size%=size%<<2 �� size%>490 size%=490 �� size%<20 size%=20 �wcol �63Ȝwcol Ȗ ȏ Ȑ 640,512,511 &�fcol �63Ȝfcol 0ȏ Ȑ 640,512,505 :�wcol �63Ȝwcol Dȏ Ȑ 640,512,size% N!ased=num% X�mcol �63Ȝmcol bȏ Ȑ 640,512,2816/vpix l � maze v� �: �F� �lcol(c%) = ((c%�33)<<2)+((c%�14)<<3)+((c%�16)>>1)+((c%�192)>>6) �: �� �assemble �#addr=0:xor=1:seed=2:a=3:b=4:l=5 �'tc=6:r=7:fc=8:of=9:newad=10:tmp4=11 �sp=13:link=14:pc=15 �L%=code+mem �� pass%=8 � 10 � 2 �P%=code �[OPT pass% �.axor EQUD &82D4E1B8 �.ased EQUD -1 %.ascn EQUD scn+hpix/2+vpix/2*hpix : .maze LDR xor,axor *LDR seed,ased 4LDR addr,ascn >MOV tc,#�lcol(tcol) HMOV fc,#�lcol(mcol) R: \.rep f] p � slow% � z [OPT pass% � STMFD (sp)!,{0,1,2} � MOV 0, #19 � SWI "OS_Byte" � LDMFD (sp)!,{0,1,2} � SWI "OS_ReadEscapeState" � MOVCS pc, link � ] �� �[OPT pass% �LDRB r,[addr,#2] �LDRB l,[addr,#-2] �LDRB b,[addr,#hpix*2] �LDRB a,[addr,#-hpix*2] CMP r,#�lcol(wcol) CMPNE l,#�lcol(wcol) CMPNE b,#�lcol(wcol) $CMPNE a,#�lcol(wcol) .BEQ endw 8: BSTRB fc,[addr] LLDRB r,[addr,#1]! VCMP r,tc `STREQB fc,[addr],#1 jBEQ rep tLDRB l,[addr,#-2]! ~CMP l,tc �STREQB fc,[addr],#-1 �BEQ rep �LDRB b,[addr,#1+hpix]! �CMP b,tc �STREQB fc,[addr],#hpix �BEQ rep �LDRB a,[addr,#-2*hpix]! �CMP a,tc �STREQB fc,[addr],#-hpix �BEQ rep �MOV pc,link �: .endw MOVS seed,seed,LSR #1 �CS seed,seed,xor MOVCS of,#2 (MOVCC of,#2*hpix 2MOVS seed,seed,LSR #1 <�CS seed,seed,xor FADDCS newad,addr,of PSUBCC newad,addr,of ZLDRB tmp4,[newad] dCMP tmp4,#�lcol(wcol) nBNE endw xADDS addr,addr,newad �MOV addr,addr,RRX �STRB tc,[addr] �STRB tc,[newad] �MOV addr,newad �B rep �] �� �� �
00000000 0d 00 0a 2c eb 20 31 33 20 3a 20 f4 20 74 72 79 |...,. 13 : . try| 00000010 20 6d 6f 64 65 73 20 31 35 20 61 6e 64 20 32 31 | modes 15 and 21| 00000020 20 69 66 20 79 6f 75 20 63 61 6e 21 0d 00 14 0e | if you can!....| 00000030 f2 69 6e 69 74 76 62 6c 65 73 0d 00 1e 05 f5 0d |.initvbles......| 00000040 00 28 11 20 f2 69 6e 70 75 74 70 61 72 61 6d 73 |.(. .inputparams| 00000050 0d 00 32 0e 20 f2 61 73 73 65 6d 62 6c 65 0d 00 |..2. .assemble..| 00000060 3c 08 20 db 3a 87 0d 00 46 15 20 f2 6d 61 7a 65 |<. .:...F. .maze| 00000070 28 6e 75 6d 7a 2c 73 7a 6d 7a 29 0d 00 50 08 20 |(numz,szmz)..P. | 00000080 ef 20 37 0d 00 5a 0d 20 64 75 6d 6d 79 25 3d a5 |. 7..Z. dummy%=.| 00000090 0d 00 64 07 fd 20 a3 0d 00 6e 05 e0 0d 00 78 05 |..d.. ...n....x.| 000000a0 3a 0d 00 82 05 3a 0d 00 8c 10 dd 20 f2 69 6e 69 |:....:..... .ini| 000000b0 74 76 62 6c 65 73 0d 00 96 0b 6d 65 6d 3d 35 31 |tvbles....mem=51| 000000c0 32 0d 00 a0 0e de 20 63 6f 64 65 20 6d 65 6d 0d |2..... code mem.| 000000d0 00 aa 17 21 63 6f 64 65 3d 31 34 38 3a 63 6f 64 |...!code=148:cod| 000000e0 65 21 34 3d 2d 31 0d 00 b4 26 c8 99 20 22 4f 53 |e!4=-1...&.. "OS| 000000f0 5f 52 65 61 64 56 64 75 56 61 72 69 61 62 6c 65 |_ReadVduVariable| 00000100 73 22 2c 63 6f 64 65 2c 63 6f 64 65 0d 00 be 0d |s",code,code....| 00000110 73 63 6e 3d 21 63 6f 64 65 0d 00 c8 0b 77 63 6f |scn=!code....wco| 00000120 6c 3d 37 37 0d 00 d2 0a 74 63 6f 6c 3d 33 0d 00 |l=77....tcol=3..| 00000130 dc 0c 6d 63 6f 6c 3d 31 39 32 0d 00 e6 0b 66 63 |..mcol=192....fc| 00000140 6f 6c 3d 37 39 0d 00 f0 1c 73 7a 24 3d 22 33 35 |ol=79....sz$="35| 00000150 22 3a 6e 75 24 3d 22 31 22 3a 73 6c 24 3d 22 30 |":nu$="1":sl$="0| 00000160 22 0d 00 fa 33 c8 99 20 22 4f 53 5f 52 65 61 64 |"...3.. "OS_Read| 00000170 4d 6f 64 65 56 61 72 69 61 62 6c 65 22 2c 2d 31 |ModeVariable",-1| 00000180 2c 31 31 20 b8 20 2c 2c 68 70 69 78 3a 68 70 69 |,11 . ,,hpix:hpi| 00000190 78 2b 3d 31 0d 01 04 33 c8 99 20 22 4f 53 5f 52 |x+=1...3.. "OS_R| 000001a0 65 61 64 4d 6f 64 65 56 61 72 69 61 62 6c 65 22 |eadModeVariable"| 000001b0 2c 2d 31 2c 31 32 20 b8 20 2c 2c 76 70 69 78 3a |,-1,12 . ,,vpix:| 000001c0 76 70 69 78 2b 3d 31 0d 01 0e 05 e1 0d 01 18 05 |vpix+=1.........| 000001d0 3a 0d 01 22 12 dd 20 f2 69 6e 70 75 74 70 61 72 |:..".. .inputpar| 000001e0 61 6d 73 0d 01 2c 3b f2 69 6e 70 75 74 28 22 4d |ams..,;.input("M| 000001f0 61 7a 65 20 73 69 7a 65 20 28 35 2d 31 32 33 29 |aze size (5-123)| 00000200 20 22 2c 73 7a 24 2c 73 7a 6d 7a 2c 22 76 3e 3d | ",sz$,szmz,"v>=| 00000210 35 20 41 4e 44 20 76 3c 3d 31 32 33 22 29 0d 01 |5 AND v<=123")..| 00000220 36 2a f2 69 6e 70 75 74 28 22 4d 61 7a 65 20 6e |6*.input("Maze n| 00000230 75 6d 62 65 72 20 22 2c 6e 75 24 2c 6e 75 6d 7a |umber ",nu$,numz| 00000240 2c 22 76 3c 3e 30 22 29 0d 01 40 38 f2 69 6e 70 |,"v<>0")..@8.inp| 00000250 75 74 28 22 53 6c 6f 77 20 28 31 20 79 65 73 2c |ut("Slow (1 yes,| 00000260 20 30 20 6e 6f 29 20 22 2c 73 6c 24 2c 73 6c 6f | 0 no) ",sl$,slo| 00000270 77 25 2c 22 76 3d 30 20 4f 52 20 76 3d 31 22 29 |w%,"v=0 OR v=1")| 00000280 0d 01 4a 05 e1 0d 01 54 05 3a 0d 01 5e 1c dd 20 |..J....T.:..^.. | 00000290 f2 69 6e 70 75 74 28 70 24 2c f8 20 76 24 2c f8 |.input(p$,. v$,.| 000002a0 20 76 2c 63 24 29 0d 01 68 08 ea 20 77 24 0d 01 | v,c$)..h.. w$..| 000002b0 72 05 f1 0d 01 7c 05 f5 0d 01 86 18 ef 31 31 2c |r....|.......11,| 000002c0 31 33 3a f1 89 28 33 39 29 3a ef 31 31 2c 31 33 |13:..(39):.11,13| 000002d0 0d 01 90 18 f1 70 24 3b 22 7b 22 2b 76 24 2b 22 |.....p$;"{"+v$+"| 000002e0 7d 22 3b 3a e8 20 77 24 0d 01 9a 11 e7 20 77 24 |}";:. w$..... w$| 000002f0 3d 22 22 20 77 24 3d 76 24 0d 01 a4 18 e7 20 77 |="" w$=v$..... w| 00000300 24 3d 22 52 22 20 77 24 3d 22 72 61 6e 64 6f 6d |$="R" w$="random| 00000310 22 0d 01 ae 26 e7 20 77 24 3d 22 72 61 6e 64 6f |"...&. w$="rando| 00000320 6d 22 20 f5 20 76 3d b3 3a fd 20 76 3c 3e 30 20 |m" . v=.:. v<>0 | 00000330 8b 20 76 3d bb 77 24 0d 01 b8 0b fd 20 a0 63 24 |. v=.w$..... .c$| 00000340 3d b9 0d 01 c2 09 76 24 3d 77 24 0d 01 cc 05 e1 |=.....v$=w$.....| 00000350 0d 01 d6 05 3a 0d 01 e0 17 dd 20 f2 6d 61 7a 65 |....:..... .maze| 00000360 28 6e 75 6d 25 2c 73 69 7a 65 25 29 0d 01 ea 12 |(num%,size%)....| 00000370 73 69 7a 65 25 3d 73 69 7a 65 25 3c 3c 32 0d 01 |size%=size%<<2..| 00000380 f4 19 e7 20 73 69 7a 65 25 3e 34 39 30 20 73 69 |... size%>490 si| 00000390 7a 65 25 3d 34 39 30 0d 01 fe 17 e7 20 73 69 7a |ze%=490..... siz| 000003a0 65 25 3c 32 30 20 73 69 7a 65 25 3d 32 30 0d 02 |e%<20 size%=20..| 000003b0 08 13 e6 77 63 6f 6c 20 80 36 33 c8 9c 77 63 6f |...wcol .63..wco| 000003c0 6c 0d 02 12 06 c8 96 0d 02 1c 15 c8 8f 20 c8 90 |l............ ..| 000003d0 20 36 34 30 2c 35 31 32 2c 35 31 31 0d 02 26 13 | 640,512,511..&.| 000003e0 e6 66 63 6f 6c 20 80 36 33 c8 9c 66 63 6f 6c 0d |.fcol .63..fcol.| 000003f0 02 30 15 c8 8f 20 c8 90 20 36 34 30 2c 35 31 32 |.0... .. 640,512| 00000400 2c 35 30 35 0d 02 3a 13 e6 77 63 6f 6c 20 80 36 |,505..:..wcol .6| 00000410 33 c8 9c 77 63 6f 6c 0d 02 44 17 c8 8f 20 c8 90 |3..wcol..D... ..| 00000420 20 36 34 30 2c 35 31 32 2c 73 69 7a 65 25 0d 02 | 640,512,size%..| 00000430 4e 0e 21 61 73 65 64 3d 6e 75 6d 25 0d 02 58 13 |N.!ased=num%..X.| 00000440 e6 6d 63 6f 6c 20 80 36 33 c8 9c 6d 63 6f 6c 0d |.mcol .63..mcol.| 00000450 02 62 1b c8 8f 20 c8 90 20 36 34 30 2c 35 31 32 |.b... .. 640,512| 00000460 2c 32 38 31 36 2f 76 70 69 78 0d 02 6c 0a d6 20 |,2816/vpix..l.. | 00000470 6d 61 7a 65 0d 02 76 05 e1 0d 02 80 05 3a 0d 02 |maze..v......:..| 00000480 8a 46 dd 20 a4 6c 63 6f 6c 28 63 25 29 20 3d 20 |.F. .lcol(c%) = | 00000490 28 28 63 25 80 33 33 29 3c 3c 32 29 2b 28 28 63 |((c%.33)<<2)+((c| 000004a0 25 80 31 34 29 3c 3c 33 29 2b 28 28 63 25 80 31 |%.14)<<3)+((c%.1| 000004b0 36 29 3e 3e 31 29 2b 28 28 63 25 80 31 39 32 29 |6)>>1)+((c%.192)| 000004c0 3e 3e 36 29 0d 02 94 05 3a 0d 02 9e 0f dd 20 f2 |>>6)....:..... .| 000004d0 61 73 73 65 6d 62 6c 65 0d 02 a8 23 61 64 64 72 |assemble...#addr| 000004e0 3d 30 3a 78 6f 72 3d 31 3a 73 65 65 64 3d 32 3a |=0:xor=1:seed=2:| 000004f0 61 3d 33 3a 62 3d 34 3a 6c 3d 35 0d 02 b2 27 74 |a=3:b=4:l=5...'t| 00000500 63 3d 36 3a 72 3d 37 3a 66 63 3d 38 3a 6f 66 3d |c=6:r=7:fc=8:of=| 00000510 39 3a 6e 65 77 61 64 3d 31 30 3a 74 6d 70 34 3d |9:newad=10:tmp4=| 00000520 31 31 0d 02 bc 17 73 70 3d 31 33 3a 6c 69 6e 6b |11....sp=13:link| 00000530 3d 31 34 3a 70 63 3d 31 35 0d 02 c6 0f 4c 25 3d |=14:pc=15....L%=| 00000540 63 6f 64 65 2b 6d 65 6d 0d 02 d0 16 e3 20 70 61 |code+mem..... pa| 00000550 73 73 25 3d 38 20 b8 20 31 30 20 88 20 32 0d 02 |ss%=8 . 10 . 2..| 00000560 da 0b 50 25 3d 63 6f 64 65 0d 02 e4 0e 5b 4f 50 |..P%=code....[OP| 00000570 54 20 70 61 73 73 25 0d 02 ee 18 2e 61 78 6f 72 |T pass%.....axor| 00000580 20 45 51 55 44 20 26 38 32 44 34 45 31 42 38 0d | EQUD &82D4E1B8.| 00000590 02 f8 11 2e 61 73 65 64 20 45 51 55 44 20 2d 31 |....ased EQUD -1| 000005a0 0d 03 02 25 2e 61 73 63 6e 20 45 51 55 44 20 73 |...%.ascn EQUD s| 000005b0 63 6e 2b 68 70 69 78 2f 32 2b 76 70 69 78 2f 32 |cn+hpix/2+vpix/2| 000005c0 2a 68 70 69 78 0d 03 0c 05 3a 0d 03 16 09 2e 6d |*hpix....:.....m| 000005d0 61 7a 65 0d 03 20 13 4c 44 52 20 20 20 20 78 6f |aze.. .LDR xo| 000005e0 72 2c 61 78 6f 72 0d 03 2a 14 4c 44 52 20 20 20 |r,axor..*.LDR | 000005f0 20 73 65 65 64 2c 61 73 65 64 0d 03 34 14 4c 44 | seed,ased..4.LD| 00000600 52 20 20 20 20 61 64 64 72 2c 61 73 63 6e 0d 03 |R addr,ascn..| 00000610 3e 1a 4d 4f 56 20 20 20 20 74 63 2c 23 a4 6c 63 |>.MOV tc,#.lc| 00000620 6f 6c 28 74 63 6f 6c 29 0d 03 48 1a 4d 4f 56 20 |ol(tcol)..H.MOV | 00000630 20 20 20 66 63 2c 23 a4 6c 63 6f 6c 28 6d 63 6f | fc,#.lcol(mco| 00000640 6c 29 0d 03 52 05 3a 0d 03 5c 08 2e 72 65 70 0d |l)..R.:..\..rep.| 00000650 03 66 05 5d 0d 03 70 0d e7 20 73 6c 6f 77 25 20 |.f.]..p.. slow% | 00000660 8c 0d 03 7a 0f 20 5b 4f 50 54 20 70 61 73 73 25 |...z. [OPT pass%| 00000670 0d 03 84 19 20 53 54 4d 46 44 20 20 28 73 70 29 |.... STMFD (sp)| 00000680 21 2c 7b 30 2c 31 2c 32 7d 0d 03 8e 12 20 4d 4f |!,{0,1,2}.... MO| 00000690 56 20 20 20 20 30 2c 20 23 31 39 0d 03 98 15 20 |V 0, #19.... | 000006a0 53 57 49 20 20 20 20 22 4f 53 5f 42 79 74 65 22 |SWI "OS_Byte"| 000006b0 0d 03 a2 19 20 4c 44 4d 46 44 20 20 28 73 70 29 |.... LDMFD (sp)| 000006c0 21 2c 7b 30 2c 31 2c 32 7d 0d 03 ac 20 20 53 57 |!,{0,1,2}... SW| 000006d0 49 20 20 20 20 22 4f 53 5f 52 65 61 64 45 73 63 |I "OS_ReadEsc| 000006e0 61 70 65 53 74 61 74 65 22 0d 03 b6 14 20 4d 4f |apeState".... MO| 000006f0 56 43 53 20 20 70 63 2c 20 6c 69 6e 6b 0d 03 c0 |VCS pc, link...| 00000700 06 20 5d 0d 03 ca 05 cd 0d 03 d4 0e 5b 4f 50 54 |. ].........[OPT| 00000710 20 70 61 73 73 25 0d 03 de 16 4c 44 52 42 20 20 | pass%....LDRB | 00000720 20 72 2c 5b 61 64 64 72 2c 23 32 5d 0d 03 e8 17 | r,[addr,#2]....| 00000730 4c 44 52 42 20 20 20 6c 2c 5b 61 64 64 72 2c 23 |LDRB l,[addr,#| 00000740 2d 32 5d 0d 03 f2 1b 4c 44 52 42 20 20 20 62 2c |-2]....LDRB b,| 00000750 5b 61 64 64 72 2c 23 68 70 69 78 2a 32 5d 0d 03 |[addr,#hpix*2]..| 00000760 fc 1c 4c 44 52 42 20 20 20 61 2c 5b 61 64 64 72 |..LDRB a,[addr| 00000770 2c 23 2d 68 70 69 78 2a 32 5d 0d 04 06 19 43 4d |,#-hpix*2]....CM| 00000780 50 20 20 20 20 72 2c 23 a4 6c 63 6f 6c 28 77 63 |P r,#.lcol(wc| 00000790 6f 6c 29 0d 04 10 19 43 4d 50 4e 45 20 20 6c 2c |ol)....CMPNE l,| 000007a0 23 a4 6c 63 6f 6c 28 77 63 6f 6c 29 0d 04 1a 19 |#.lcol(wcol)....| 000007b0 43 4d 50 4e 45 20 20 62 2c 23 a4 6c 63 6f 6c 28 |CMPNE b,#.lcol(| 000007c0 77 63 6f 6c 29 0d 04 24 19 43 4d 50 4e 45 20 20 |wcol)..$.CMPNE | 000007d0 61 2c 23 a4 6c 63 6f 6c 28 77 63 6f 6c 29 0d 04 |a,#.lcol(wcol)..| 000007e0 2e 0f 42 45 51 20 20 20 20 65 6e 64 77 0d 04 38 |..BEQ endw..8| 000007f0 05 3a 0d 04 42 14 53 54 52 42 20 20 20 66 63 2c |.:..B.STRB fc,| 00000800 5b 61 64 64 72 5d 0d 04 4c 17 4c 44 52 42 20 20 |[addr]..L.LDRB | 00000810 20 72 2c 5b 61 64 64 72 2c 23 31 5d 21 0d 04 56 | r,[addr,#1]!..V| 00000820 0f 43 4d 50 20 20 20 20 72 2c 74 63 0d 04 60 17 |.CMP r,tc..`.| 00000830 53 54 52 45 51 42 20 66 63 2c 5b 61 64 64 72 5d |STREQB fc,[addr]| 00000840 2c 23 31 0d 04 6a 0e 42 45 51 20 20 20 20 72 65 |,#1..j.BEQ re| 00000850 70 0d 04 74 18 4c 44 52 42 20 20 20 6c 2c 5b 61 |p..t.LDRB l,[a| 00000860 64 64 72 2c 23 2d 32 5d 21 0d 04 7e 0f 43 4d 50 |ddr,#-2]!..~.CMP| 00000870 20 20 20 20 6c 2c 74 63 0d 04 88 18 53 54 52 45 | l,tc....STRE| 00000880 51 42 20 66 63 2c 5b 61 64 64 72 5d 2c 23 2d 31 |QB fc,[addr],#-1| 00000890 0d 04 92 0e 42 45 51 20 20 20 20 72 65 70 0d 04 |....BEQ rep..| 000008a0 9c 1c 4c 44 52 42 20 20 20 62 2c 5b 61 64 64 72 |..LDRB b,[addr| 000008b0 2c 23 31 2b 68 70 69 78 5d 21 0d 04 a6 0f 43 4d |,#1+hpix]!....CM| 000008c0 50 20 20 20 20 62 2c 74 63 0d 04 b0 1a 53 54 52 |P b,tc....STR| 000008d0 45 51 42 20 66 63 2c 5b 61 64 64 72 5d 2c 23 68 |EQB fc,[addr],#h| 000008e0 70 69 78 0d 04 ba 0e 42 45 51 20 20 20 20 72 65 |pix....BEQ re| 000008f0 70 0d 04 c4 1d 4c 44 52 42 20 20 20 61 2c 5b 61 |p....LDRB a,[a| 00000900 64 64 72 2c 23 2d 32 2a 68 70 69 78 5d 21 0d 04 |ddr,#-2*hpix]!..| 00000910 ce 0f 43 4d 50 20 20 20 20 61 2c 74 63 0d 04 d8 |..CMP a,tc...| 00000920 1b 53 54 52 45 51 42 20 66 63 2c 5b 61 64 64 72 |.STREQB fc,[addr| 00000930 5d 2c 23 2d 68 70 69 78 0d 04 e2 0e 42 45 51 20 |],#-hpix....BEQ | 00000940 20 20 20 72 65 70 0d 04 ec 12 4d 4f 56 20 20 20 | rep....MOV | 00000950 20 70 63 2c 6c 69 6e 6b 0d 04 f6 05 3a 0d 05 00 | pc,link....:...| 00000960 09 2e 65 6e 64 77 0d 05 0a 1b 4d 4f 56 53 20 20 |..endw....MOVS | 00000970 20 73 65 65 64 2c 73 65 65 64 2c 4c 53 52 20 23 | seed,seed,LSR #| 00000980 31 0d 05 14 16 82 43 53 20 20 73 65 65 64 2c 73 |1.....CS seed,s| 00000990 65 65 64 2c 78 6f 72 0d 05 1e 10 4d 4f 56 43 53 |eed,xor....MOVCS| 000009a0 20 20 6f 66 2c 23 32 0d 05 28 15 4d 4f 56 43 43 | of,#2..(.MOVCC| 000009b0 20 20 6f 66 2c 23 32 2a 68 70 69 78 0d 05 32 1b | of,#2*hpix..2.| 000009c0 4d 4f 56 53 20 20 20 73 65 65 64 2c 73 65 65 64 |MOVS seed,seed| 000009d0 2c 4c 53 52 20 23 31 0d 05 3c 16 82 43 53 20 20 |,LSR #1..<..CS | 000009e0 73 65 65 64 2c 73 65 65 64 2c 78 6f 72 0d 05 46 |seed,seed,xor..F| 000009f0 18 41 44 44 43 53 20 20 6e 65 77 61 64 2c 61 64 |.ADDCS newad,ad| 00000a00 64 72 2c 6f 66 0d 05 50 18 53 55 42 43 43 20 20 |dr,of..P.SUBCC | 00000a10 6e 65 77 61 64 2c 61 64 64 72 2c 6f 66 0d 05 5a |newad,addr,of..Z| 00000a20 17 4c 44 52 42 20 20 20 74 6d 70 34 2c 5b 6e 65 |.LDRB tmp4,[ne| 00000a30 77 61 64 5d 0d 05 64 1c 43 4d 50 20 20 20 20 74 |wad]..d.CMP t| 00000a40 6d 70 34 2c 23 a4 6c 63 6f 6c 28 77 63 6f 6c 29 |mp4,#.lcol(wcol)| 00000a50 0d 05 6e 0f 42 4e 45 20 20 20 20 65 6e 64 77 0d |..n.BNE endw.| 00000a60 05 78 1a 41 44 44 53 20 20 20 61 64 64 72 2c 61 |.x.ADDS addr,a| 00000a70 64 64 72 2c 6e 65 77 61 64 0d 05 82 18 4d 4f 56 |ddr,newad....MOV| 00000a80 20 20 20 20 61 64 64 72 2c 61 64 64 72 2c 52 52 | addr,addr,RR| 00000a90 58 0d 05 8c 14 53 54 52 42 20 20 20 74 63 2c 5b |X....STRB tc,[| 00000aa0 61 64 64 72 5d 0d 05 96 15 53 54 52 42 20 20 20 |addr]....STRB | 00000ab0 74 63 2c 5b 6e 65 77 61 64 5d 0d 05 a0 15 4d 4f |tc,[newad]....MO| 00000ac0 56 20 20 20 20 61 64 64 72 2c 6e 65 77 61 64 0d |V addr,newad.| 00000ad0 05 aa 0e 42 20 20 20 20 20 20 72 65 70 0d 05 b4 |...B rep...| 00000ae0 05 5d 0d 05 be 05 ed 0d 05 c8 05 e1 0d ff |.]............| 00000aee