Home » Archimedes archive » Acorn User » AU 1995-06.adf » !StarInfo_StarInfo » Turnbull/Skimpy/!RTJulia/!RunImage
Turnbull/Skimpy/!RTJulia/!RunImage
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 1995-06.adf » !StarInfo_StarInfo |
Filename: | Turnbull/Skimpy/!RTJulia/!RunImage |
Read OK: | ✔ |
File size: | 121C bytes |
Load address: | 0000 |
Exec address: | 0000 |
File contents
10MODE15:MODE13:OFF 20PROCconstants 30DIMspace%spacelen%:P%=space% 40code%=P%:P%+=codelen% 50IFP%>space%+spacelen%THENERROR255,"Space isn't big enough" 60PROCassemble 70CALLreadvduvars% 80PROCchoices 90PROCdrawmandy 100PX%=1152:PY%=128:GCOL3,63TINT255 110LINEPX%-8,PY%,PX%+8,PY%:LINEPX%,PY%-8,PX%,PY%+8 120IFNOTanim%THEN 130VDU28,32,23,39,8:CLS 140PRINT'''"Mouse"'"buttons"'"increase"'"mouse"'"speed"''"Left x16"'"Mid x4"'"Right x2" 150ENDIF 160VDU28,32,7,39,0:CLS 170REPEAT 180IFanim%THEN 190A=2*PI*(TIME MOD6000)/6000 200!realc%=(1<<AC%)*(0.5*COS(A)-0.25*COS(2*A)-0.01*SIN(3*A/2)) 210!imagc%=(1<<AC%)*(0.5*SIN(A)-0.25*SIN(2*A)+0.01*COS(3*A/2)) 220ELSE 230MOUSEX%,Y%,Z%:MOUSETO640,512 240IFNOTINKEY(-1)THEN!realc%+=X%-640<<(AC%+1)-20+Z%:!imagc%+=Y%-512<<(AC%+1)-20+Z% 250IF!realc%>(1<<AC%)-1THEN!realc%=(1<<AC%)-1ELSEIF!realc%<(-2<<AC%)THEN!realc%=-2<<AC% 260IF!imagc%>(3<<AC%-1)-1THEN!imagc%=(3<<AC%-1)-1ELSEIF!imagc%<(-3<<AC%-1)THEN!imagc%=-3<<AC%-1 270ENDIF 280CLS:A=!realc%/(1<<AC%):B=!imagc%/(1<<AC%) 290PRINTTAB(0,0);"Real"'INT(A*1E5)/1E5 300PRINTTAB(0,4);"Imagine"'INT(B*1E5)/1E5 310LINEPX%-8,PY%,PX%+8,PY%:LINEPX%,PY%-8,PX%,PY%+8 320PX%=1152+128*(A+0.5)/1.5:PY%=128+128*B/1.5 330LINEPX%-8,PY%,PX%+8,PY%:LINEPX%,PY%-8,PX%,PY%+8 340CALLframe% 350UNTIL0 360END 370: 380: 390DEFPROCconstants 400spacelen%=&40000 410codelen%=&4000 420AC%=28:SC%=8 430ENDPROC 440: 450DEFPROCchoices 460PRINT"Press A for a preset animation or M for mouse control" 470REPEAT:A$=GET$:UNTILA$="A"ORA$="M":anim%=A$="A" 480ENDPROC 490: 500DEFPROCdrawmandy 510*FX113,2 520*FX112,2 530CLS 540PRINTTAB(0,8);"Real time Julia sets";TAB(0,12);"by Alistair Turnbull" 550PRINTTAB(0,20);"Please wait a moment..." 560FORX%=-126TO126STEP4 570*FX112,2 580PRINTTAB(20,24);INT(100*(X%+128)/256);"% done " 590*FX112,1 600FORY%=-126TO126STEP4 610A=1.5*X%/128-0.5:B=1.5*Y%/128:X=A:Y=B:I%=0 620WHILEABS(X)<2ANDABS(Y)<2ANDI%<32:O=X:X=X*X-Y*Y+A:Y=2*O*Y+B:I%+=1:ENDWHILE 630IFI%=32THENGCOL0,0TINT0ELSEGCOL0,I%TINT255 640POINTX%+1152,Y%+128:NEXT, 650*FX113,1 660ENDPROC 670: 680DEFFNadr(R%,A%,I%) 690IF(P%AND3)<>0THENPRINT"Code isn't word aligned!":END 700IF(T%AND2)=0THENP%+=I%<<2:=T% 710LOCALN%,O%,H%,U%:H%=A%-(P%+8):N%=0:O%=15 720FORU%=1TOI%:IFH%=0THEN 730[OPT T%:MOV R%,O%:] 740ELSEWHILE(H%AND3)=0:H%=H%>>2:N%+=2:ENDWHILE 750IF(H%AND256)=0THEN 760[OPT T%:ADD R%,O%,#(H%AND255)<<N%:]:H%-=H%AND255 770ELSE[OPT T%:SUB R%,O%,#(256-H%AND255)<<N%:]:H%+=256-H%AND255 780ENDIF 790ENDIF:O%=R%:NEXT 800IFH%<>0THENPRINT"Could not ADR to ";A%;" in ";I%;" instructions (R%=";R%;")":END 810=T% 820: 830DEFFNregisterj(J%,N%) 840J%!(N%<<2)=P%-J% 850=T% 860: 870DEFPROCassemble 880FORT%=0TO2STEP2:P%=code% 890[OPT T% 900: 910.vduvars%:EQUD 148:EQUD -1 920.scraddr%:EQUD -1 930: 940.readvduvars% 950ADR R0,vduvars% 960ADR R1,scraddr% 970SWI "OS_ReadVduVariables" 980MOV PC,R14 990: 1000.realc%:EQUD 0 1010.imagc%:EQUD 0 1020: 1030.frame% 1040STMFD R13!,{R14} 1050; R0=real1=real0^2-imag0^2+realC in AC% 1060; R1=imag1=2*real0*imag0+imagC in AC% 1070; R2=dreal1/dX=dimag1/dY=2*real0 in AC% 1080; R3=dimag1/dX=-dreal1/dY=2*imag0 in AC% 1090; d2real1/dX2=dimag1/dXdY=-dreal1/dY2=2 1100; d2imag1/dX2=-dreal1/dXdY=-dimag1/dY2=0 1110; Start at 0,0 1120LDR R0,realc% 1130LDR R1,imagc% 1140MOV R2,#0 1150MOV R3,#0 1160; Go left and up 2 1170SUB R0,R0,R2,ASL#1:SUB R1,R1,R3,ASL#1 1180ADD R1,R1,R2,ASL#1:SUB R0,R0,R3,ASL#1 1190SUB R2,R2,#2*2<<AC%:\SUB R3,R3,#0*2<<AC% 1200ADD R3,R3,#2*2<<AC%:\SUB R2,R2,#0*2<<AC% 1210SUB R1,R1,#2*(2*2*2)<<AC%-1:\ADD R0,R0,#0*(2*2-2*2)<<AC%-1 1220; Go right and down half a pixel = 1>>SC%-1 1230ADD R0,R0,R2,ASR#SC%-1:ADD R1,R1,R3,ASR#SC%-1 1240SUB R1,R1,R2,ASR#SC%-1:ADD R0,R0,R3,ASR#SC%-1 1250ADD R2,R2,#2<<AC%-(SC%-1):\ADD R3,R3,#0<<AC%-(SC%-1) 1260SUB R3,R3,#2<<AC%-(SC%-1):\ADD R2,R2,#0<<AC%-(SC%-1) 1270SUB R1,R1,#2*2<<AC%-(SC%-1)-(SC%-1)-1:\ADD R0,R0,#0*(1-1)<<AC%-(SC%-1)-(SC%-1)-1 1280LDR R10,scraddr% 1290ADD R12,R10,#128*320 1300SUB R12,R12,#320 1310ADD R12,R12,#128 1320MOV R11,#1<<SC% 1330.yloop% 1340SUB R11,R11,#1<<16+SC% 1350.xloop% 1360MOV R9,#255 1370CMP R0,#2<<AC% 1380CMPLT R1,#2<<AC% 1390BGE escape% 1400CMN R0,#2<<AC% 1410CMNGT R1,#2<<AC% 1420BLE escape% 1430MOV R9,R1,ASR#(AC%+2)-SC% 1440ADD R9,R9,R9,ASL#2 1450SUB R9,R12,R9,ASL#6 1460LDRB R9,[R9,R0,ASR#(AC%+2)-SC%] 1470SUBS R9,R9,#1 1480MOVLT R9,#0 1490.escape% 1500STRB R9,[R10],#1 1510; Right a pixel = 1>>SC%-2 1520ADD R0,R0,R2,ASR#SC%-2:ADD R1,R1,R3,ASR#SC%-2 1530ADD R2,R2,#2<<AC%-(SC%-2):\ADD R3,R3,#0<<AC%-(SC%-2) 1540ADD R0,R0,#2<<AC%-(SC%-2)-(SC%-2)-1:\ADD R1,R1,#0<<AC%-(SC%-2)-(SC%-2)-1 1550ADDS R11,R11,#1<<16 1560BLE xloop% 1570; Left 4 1580SUB R0,R0,R2,ASL#2:SUB R1,R1,R3,ASL#2 1590SUB R2,R2,#2*4<<AC%:\SUB R3,R3,#0*4<<AC% 1600ADD R0,R0,#2*4*4<<AC%-1:\ADD R1,R1,#0*4*4<<AC%-1 1610; Down a pixel = 1>>SC%-2 1620SUB R1,R1,R2,ASR#SC%-2:ADD R0,R0,R3,ASR#SC%-2 1630SUB R3,R3,#2<<AC%-(SC%-2):\ADD R2,R2,#0<<AC%-(SC%-2) 1640SUB R0,R0,#2<<AC%-(SC%-2)-(SC%-2)-1:\SUB R1,R1,#0<<AC%-(SC%-2)-(SC%-2)-1 1650ADD R10,R10,#320-(1<<SC%) 1660SUBS R11,R11,#1 1670BGT yloop% 1680LDMFD R13!,{PC} 1690: 1700]:IFP%>code%+codelen%THENERROR255,"Code isn't big enough" 1710NEXT 1720ENDPROC
�15:�13:� �constants �space%spacelen%:P%=space% (code%=P%:P%+=codelen% 26�P%>space%+spacelen%��255,"Space isn't big enough" < �assemble F�readvduvars% P�choices Z�drawmandy dPX%=1152:PY%=128:�3,63Ȝ255 n-�PX%-8,PY%,PX%+8,PY%:�PX%,PY%-8,PX%,PY%+8 x�anim%� ��28,32,23,39,8:� �V�'''"Mouse"'"buttons"'"increase"'"mouse"'"speed"''"Left x16"'"Mid x4"'"Right x2" �� ��28,32,7,39,0:� �� ��anim%� �A=2*�*(� �6000)/6000 �9!realc%=(1<<AC%)*(0.5*�(A)-0.25*�(2*A)-0.01*�(3*A/2)) �9!imagc%=(1<<AC%)*(0.5*�(A)-0.25*�(2*A)+0.01*�(3*A/2)) �� �ȗX%,Y%,Z%:ȗ�640,512 �I符(-1)�!realc%+=X%-640<<(AC%+1)-20+Z%:!imagc%+=Y%-512<<(AC%+1)-20+Z% �M�!realc%>(1<<AC%)-1�!realc%=(1<<AC%)-1��!realc%<(-2<<AC%)�!realc%=-2<<AC% U�!imagc%>(3<<AC%-1)-1�!imagc%=(3<<AC%-1)-1��!imagc%<(-3<<AC%-1)�!imagc%=-3<<AC%-1 � +�:A=!realc%/(1<<AC%):B=!imagc%/(1<<AC%) "�0,0);"Real"'�(A*1E5)/1E5 ,!�0,4);"Imagine"'�(B*1E5)/1E5 6-�PX%-8,PY%,PX%+8,PY%:�PX%,PY%-8,PX%,PY%+8 @.PX%=1152+128*(A+0.5)/1.5:PY%=128+128*B/1.5 J-�PX%-8,PY%,PX%+8,PY%:�PX%,PY%-8,PX%,PY%+8 T�frame% ^�0 h� r: |: ���constants �spacelen%=&40000 �codelen%=&4000 �AC%=28:SC%=8 �� �: � ��choices �<�"Press A for a preset animation or M for mouse control" �&�:A$=�:�A$="A"�A$="M":anim%=A$="A" �� �: ���drawmandy �*FX113,2 *FX112,2 � ?�0,8);"Real time Julia sets";�0,12);"by Alistair Turnbull" &%�0,20);"Please wait a moment..." 0�X%=-126�126�4 :*FX112,2 D-�20,24);�(100*(X%+128)/256);"% done " N*FX112,1 X�Y%=-126�126�4 b.A=1.5*X%/128-0.5:B=1.5*Y%/128:X=A:Y=B:I%=0 l;ȕ�(X)<2��(Y)<2�I%<32:O=X:X=X*X-Y*Y+A:Y=2*O*Y+B:I%+=1:� v�I%=32��0,0Ȝ0��0,I%Ȝ255 �ȒX%+1152,Y%+128:�, �*FX113,1 �� �: �ݤadr(R%,A%,I%) �,�(P%�3)<>0��"Code isn't word aligned!":� ��(T%�2)=0�P%+=I%<<2:=T% �(�N%,O%,H%,U%:H%=A%-(P%+8):N%=0:O%=15 ��U%=1�I%:�H%=0� �[OPT T%:MOV R%,O%:] � �ȕ(H%�3)=0:H%=H%>>2:N%+=2:� ��(H%�256)=0� �0[OPT T%:ADD R%,O%,#(H%�255)<<N%:]:H%-=H%�255 9�[OPT T%:SUB R%,O%,#(256-H%�255)<<N%:]:H%+=256-H%�255 � �:O%=R%:� J�H%<>0��"Could not ADR to ";A%;" in ";I%;" instructions (R%=";R%;")":� *=T% 4: >ݤregisterj(J%,N%) HJ%!(N%<<2)=P%-J% R=T% \: f��assemble p�T%=0�2�2:P%=code% z[OPT T% �: �.vduvars%:EQUD 148:EQUD -1 �.scraddr%:EQUD -1 �: �.readvduvars% �ADR R0,vduvars% �ADR R1,scraddr% �SWI "OS_ReadVduVariables" �MOV PC,R14 �: �.realc%:EQUD 0 �.imagc%:EQUD 0 �: .frame% STMFD R13!,{R14} +; R0=real1=real0^2-imag0^2+realC in AC% $); R1=imag1=2*real0*imag0+imagC in AC% .+; R2=dreal1/dX=dimag1/dY=2*real0 in AC% 8,; R3=dimag1/dX=-dreal1/dY=2*imag0 in AC% B+; d2real1/dX2=dimag1/dXdY=-dreal1/dY2=2 L,; d2imag1/dX2=-dreal1/dXdY=-dimag1/dY2=0 V; Start at 0,0 `LDR R0,realc% jLDR R1,imagc% t MOV R2,#0 ~ MOV R3,#0 �; Go left and up 2 �)SUB R0,R0,R2,ASL#1:SUB R1,R1,R3,ASL#1 �)ADD R1,R1,R2,ASL#1:SUB R0,R0,R3,ASL#1 �,SUB R2,R2,#2*2<<AC%:\SUB R3,R3,#0*2<<AC% �,ADD R3,R3,#2*2<<AC%:\SUB R2,R2,#0*2<<AC% �>SUB R1,R1,#2*(2*2*2)<<AC%-1:\ADD R0,R0,#0*(2*2-2*2)<<AC%-1 �/; Go right and down half a pixel = 1>>SC%-1 �1ADD R0,R0,R2,ASR#SC%-1:ADD R1,R1,R3,ASR#SC%-1 �1SUB R1,R1,R2,ASR#SC%-1:ADD R0,R0,R3,ASR#SC%-1 �8ADD R2,R2,#2<<AC%-(SC%-1):\ADD R3,R3,#0<<AC%-(SC%-1) �8SUB R3,R3,#2<<AC%-(SC%-1):\ADD R2,R2,#0<<AC%-(SC%-1) �TSUB R1,R1,#2*2<<AC%-(SC%-1)-(SC%-1)-1:\ADD R0,R0,#0*(1-1)<<AC%-(SC%-1)-(SC%-1)-1 LDR R10,scraddr% ADD R12,R10,#128*320 SUB R12,R12,#320 ADD R12,R12,#128 (MOV R11,#1<<SC% 2.yloop% <SUB R11,R11,#1<<16+SC% F.xloop% PMOV R9,#255 ZCMP R0,#2<<AC% dCMPLT R1,#2<<AC% nBGE escape% xCMN R0,#2<<AC% �CMNGT R1,#2<<AC% �BLE escape% �MOV R9,R1,ASR#(AC%+2)-SC% �ADD R9,R9,R9,ASL#2 �SUB R9,R12,R9,ASL#6 �#LDRB R9,[R9,R0,ASR#(AC%+2)-SC%] �SUBS R9,R9,#1 �MOVLT R9,#0 �.escape% �STRB R9,[R10],#1 �; Right a pixel = 1>>SC%-2 �1ADD R0,R0,R2,ASR#SC%-2:ADD R1,R1,R3,ASR#SC%-2 �8ADD R2,R2,#2<<AC%-(SC%-2):\ADD R3,R3,#0<<AC%-(SC%-2) LADD R0,R0,#2<<AC%-(SC%-2)-(SC%-2)-1:\ADD R1,R1,#0<<AC%-(SC%-2)-(SC%-2)-1 ADDS R11,R11,#1<<16 BLE xloop% "; Left 4 ,)SUB R0,R0,R2,ASL#2:SUB R1,R1,R3,ASL#2 6,SUB R2,R2,#2*4<<AC%:\SUB R3,R3,#0*4<<AC% @4ADD R0,R0,#2*4*4<<AC%-1:\ADD R1,R1,#0*4*4<<AC%-1 J; Down a pixel = 1>>SC%-2 T1SUB R1,R1,R2,ASR#SC%-2:ADD R0,R0,R3,ASR#SC%-2 ^8SUB R3,R3,#2<<AC%-(SC%-2):\ADD R2,R2,#0<<AC%-(SC%-2) hLSUB R0,R0,#2<<AC%-(SC%-2)-(SC%-2)-1:\SUB R1,R1,#0<<AC%-(SC%-2)-(SC%-2)-1 rADD R10,R10,#320-(1<<SC%) |SUBS R11,R11,#1 �BGT yloop% �LDMFD R13!,{PC} �: �5]:�P%>code%+codelen%��255,"Code isn't big enough" �� �� �
00000000 0d 00 0a 0d eb 31 35 3a eb 31 33 3a 87 0d 00 14 |.....15:.13:....| 00000010 0e f2 63 6f 6e 73 74 61 6e 74 73 0d 00 1e 1e de |..constants.....| 00000020 73 70 61 63 65 25 73 70 61 63 65 6c 65 6e 25 3a |space%spacelen%:| 00000030 50 25 3d 73 70 61 63 65 25 0d 00 28 19 63 6f 64 |P%=space%..(.cod| 00000040 65 25 3d 50 25 3a 50 25 2b 3d 63 6f 64 65 6c 65 |e%=P%:P%+=codele| 00000050 6e 25 0d 00 32 36 e7 50 25 3e 73 70 61 63 65 25 |n%..26.P%>space%| 00000060 2b 73 70 61 63 65 6c 65 6e 25 8c 85 32 35 35 2c |+spacelen%..255,| 00000070 22 53 70 61 63 65 20 69 73 6e 27 74 20 62 69 67 |"Space isn't big| 00000080 20 65 6e 6f 75 67 68 22 0d 00 3c 0d f2 61 73 73 | enough"..<..ass| 00000090 65 6d 62 6c 65 0d 00 46 11 d6 72 65 61 64 76 64 |emble..F..readvd| 000000a0 75 76 61 72 73 25 0d 00 50 0c f2 63 68 6f 69 63 |uvars%..P..choic| 000000b0 65 73 0d 00 5a 0e f2 64 72 61 77 6d 61 6e 64 79 |es..Z..drawmandy| 000000c0 0d 00 64 1f 50 58 25 3d 31 31 35 32 3a 50 59 25 |..d.PX%=1152:PY%| 000000d0 3d 31 32 38 3a e6 33 2c 36 33 c8 9c 32 35 35 0d |=128:.3,63..255.| 000000e0 00 6e 2d 86 50 58 25 2d 38 2c 50 59 25 2c 50 58 |.n-.PX%-8,PY%,PX| 000000f0 25 2b 38 2c 50 59 25 3a 86 50 58 25 2c 50 59 25 |%+8,PY%:.PX%,PY%| 00000100 2d 38 2c 50 58 25 2c 50 59 25 2b 38 0d 00 78 0c |-8,PX%,PY%+8..x.| 00000110 e7 ac 61 6e 69 6d 25 8c 0d 00 82 14 ef 32 38 2c |..anim%......28,| 00000120 33 32 2c 32 33 2c 33 39 2c 38 3a db 0d 00 8c 56 |32,23,39,8:....V| 00000130 f1 27 27 27 22 4d 6f 75 73 65 22 27 22 62 75 74 |.'''"Mouse"'"but| 00000140 74 6f 6e 73 22 27 22 69 6e 63 72 65 61 73 65 22 |tons"'"increase"| 00000150 27 22 6d 6f 75 73 65 22 27 22 73 70 65 65 64 22 |'"mouse"'"speed"| 00000160 27 27 22 4c 65 66 74 20 78 31 36 22 27 22 4d 69 |''"Left x16"'"Mi| 00000170 64 20 20 20 78 34 22 27 22 52 69 67 68 74 20 78 |d x4"'"Right x| 00000180 32 22 0d 00 96 05 cd 0d 00 a0 13 ef 32 38 2c 33 |2"..........28,3| 00000190 32 2c 37 2c 33 39 2c 30 3a db 0d 00 aa 05 f5 0d |2,7,39,0:.......| 000001a0 00 b4 0b e7 61 6e 69 6d 25 8c 0d 00 be 18 41 3d |....anim%.....A=| 000001b0 32 2a af 2a 28 91 20 83 36 30 30 30 29 2f 36 30 |2*.*(. .6000)/60| 000001c0 30 30 0d 00 c8 39 21 72 65 61 6c 63 25 3d 28 31 |00...9!realc%=(1| 000001d0 3c 3c 41 43 25 29 2a 28 30 2e 35 2a 9b 28 41 29 |<<AC%)*(0.5*.(A)| 000001e0 2d 30 2e 32 35 2a 9b 28 32 2a 41 29 2d 30 2e 30 |-0.25*.(2*A)-0.0| 000001f0 31 2a b5 28 33 2a 41 2f 32 29 29 0d 00 d2 39 21 |1*.(3*A/2))...9!| 00000200 69 6d 61 67 63 25 3d 28 31 3c 3c 41 43 25 29 2a |imagc%=(1<<AC%)*| 00000210 28 30 2e 35 2a b5 28 41 29 2d 30 2e 32 35 2a b5 |(0.5*.(A)-0.25*.| 00000220 28 32 2a 41 29 2b 30 2e 30 31 2a 9b 28 33 2a 41 |(2*A)+0.01*.(3*A| 00000230 2f 32 29 29 0d 00 dc 05 cc 0d 00 e6 19 c8 97 58 |/2))...........X| 00000240 25 2c 59 25 2c 5a 25 3a c8 97 b8 36 34 30 2c 35 |%,Y%,Z%:...640,5| 00000250 31 32 0d 00 f0 49 e7 ac a6 28 2d 31 29 8c 21 72 |12...I...(-1).!r| 00000260 65 61 6c 63 25 2b 3d 58 25 2d 36 34 30 3c 3c 28 |ealc%+=X%-640<<(| 00000270 41 43 25 2b 31 29 2d 32 30 2b 5a 25 3a 21 69 6d |AC%+1)-20+Z%:!im| 00000280 61 67 63 25 2b 3d 59 25 2d 35 31 32 3c 3c 28 41 |agc%+=Y%-512<<(A| 00000290 43 25 2b 31 29 2d 32 30 2b 5a 25 0d 00 fa 4d e7 |C%+1)-20+Z%...M.| 000002a0 21 72 65 61 6c 63 25 3e 28 31 3c 3c 41 43 25 29 |!realc%>(1<<AC%)| 000002b0 2d 31 8c 21 72 65 61 6c 63 25 3d 28 31 3c 3c 41 |-1.!realc%=(1<<A| 000002c0 43 25 29 2d 31 8b e7 21 72 65 61 6c 63 25 3c 28 |C%)-1..!realc%<(| 000002d0 2d 32 3c 3c 41 43 25 29 8c 21 72 65 61 6c 63 25 |-2<<AC%).!realc%| 000002e0 3d 2d 32 3c 3c 41 43 25 0d 01 04 55 e7 21 69 6d |=-2<<AC%...U.!im| 000002f0 61 67 63 25 3e 28 33 3c 3c 41 43 25 2d 31 29 2d |agc%>(3<<AC%-1)-| 00000300 31 8c 21 69 6d 61 67 63 25 3d 28 33 3c 3c 41 43 |1.!imagc%=(3<<AC| 00000310 25 2d 31 29 2d 31 8b e7 21 69 6d 61 67 63 25 3c |%-1)-1..!imagc%<| 00000320 28 2d 33 3c 3c 41 43 25 2d 31 29 8c 21 69 6d 61 |(-3<<AC%-1).!ima| 00000330 67 63 25 3d 2d 33 3c 3c 41 43 25 2d 31 0d 01 0e |gc%=-3<<AC%-1...| 00000340 05 cd 0d 01 18 2b db 3a 41 3d 21 72 65 61 6c 63 |.....+.:A=!realc| 00000350 25 2f 28 31 3c 3c 41 43 25 29 3a 42 3d 21 69 6d |%/(1<<AC%):B=!im| 00000360 61 67 63 25 2f 28 31 3c 3c 41 43 25 29 0d 01 22 |agc%/(1<<AC%).."| 00000370 1e f1 8a 30 2c 30 29 3b 22 52 65 61 6c 22 27 a8 |...0,0);"Real"'.| 00000380 28 41 2a 31 45 35 29 2f 31 45 35 0d 01 2c 21 f1 |(A*1E5)/1E5..,!.| 00000390 8a 30 2c 34 29 3b 22 49 6d 61 67 69 6e 65 22 27 |.0,4);"Imagine"'| 000003a0 a8 28 42 2a 31 45 35 29 2f 31 45 35 0d 01 36 2d |.(B*1E5)/1E5..6-| 000003b0 86 50 58 25 2d 38 2c 50 59 25 2c 50 58 25 2b 38 |.PX%-8,PY%,PX%+8| 000003c0 2c 50 59 25 3a 86 50 58 25 2c 50 59 25 2d 38 2c |,PY%:.PX%,PY%-8,| 000003d0 50 58 25 2c 50 59 25 2b 38 0d 01 40 2e 50 58 25 |PX%,PY%+8..@.PX%| 000003e0 3d 31 31 35 32 2b 31 32 38 2a 28 41 2b 30 2e 35 |=1152+128*(A+0.5| 000003f0 29 2f 31 2e 35 3a 50 59 25 3d 31 32 38 2b 31 32 |)/1.5:PY%=128+12| 00000400 38 2a 42 2f 31 2e 35 0d 01 4a 2d 86 50 58 25 2d |8*B/1.5..J-.PX%-| 00000410 38 2c 50 59 25 2c 50 58 25 2b 38 2c 50 59 25 3a |8,PY%,PX%+8,PY%:| 00000420 86 50 58 25 2c 50 59 25 2d 38 2c 50 58 25 2c 50 |.PX%,PY%-8,PX%,P| 00000430 59 25 2b 38 0d 01 54 0b d6 66 72 61 6d 65 25 0d |Y%+8..T..frame%.| 00000440 01 5e 06 fd 30 0d 01 68 05 e0 0d 01 72 05 3a 0d |.^..0..h....r.:.| 00000450 01 7c 05 3a 0d 01 86 0f dd f2 63 6f 6e 73 74 61 |.|.:......consta| 00000460 6e 74 73 0d 01 90 14 73 70 61 63 65 6c 65 6e 25 |nts....spacelen%| 00000470 3d 26 34 30 30 30 30 0d 01 9a 12 63 6f 64 65 6c |=&40000....codel| 00000480 65 6e 25 3d 26 34 30 30 30 0d 01 a4 10 41 43 25 |en%=&4000....AC%| 00000490 3d 32 38 3a 53 43 25 3d 38 0d 01 ae 05 e1 0d 01 |=28:SC%=8.......| 000004a0 b8 05 3a 0d 01 c2 0d dd f2 63 68 6f 69 63 65 73 |..:......choices| 000004b0 0d 01 cc 3c f1 22 50 72 65 73 73 20 41 20 66 6f |...<."Press A fo| 000004c0 72 20 61 20 70 72 65 73 65 74 20 61 6e 69 6d 61 |r a preset anima| 000004d0 74 69 6f 6e 20 6f 72 20 4d 20 66 6f 72 20 6d 6f |tion or M for mo| 000004e0 75 73 65 20 63 6f 6e 74 72 6f 6c 22 0d 01 d6 26 |use control"...&| 000004f0 f5 3a 41 24 3d be 3a fd 41 24 3d 22 41 22 84 41 |.:A$=.:.A$="A".A| 00000500 24 3d 22 4d 22 3a 61 6e 69 6d 25 3d 41 24 3d 22 |$="M":anim%=A$="| 00000510 41 22 0d 01 e0 05 e1 0d 01 ea 05 3a 0d 01 f4 0f |A".........:....| 00000520 dd f2 64 72 61 77 6d 61 6e 64 79 0d 01 fe 0c 2a |..drawmandy....*| 00000530 46 58 31 31 33 2c 32 0d 02 08 0c 2a 46 58 31 31 |FX113,2....*FX11| 00000540 32 2c 32 0d 02 12 05 db 0d 02 1c 3f f1 8a 30 2c |2,2........?..0,| 00000550 38 29 3b 22 52 65 61 6c 20 74 69 6d 65 20 4a 75 |8);"Real time Ju| 00000560 6c 69 61 20 73 65 74 73 22 3b 8a 30 2c 31 32 29 |lia sets";.0,12)| 00000570 3b 22 62 79 20 41 6c 69 73 74 61 69 72 20 54 75 |;"by Alistair Tu| 00000580 72 6e 62 75 6c 6c 22 0d 02 26 25 f1 8a 30 2c 32 |rnbull"..&%..0,2| 00000590 30 29 3b 22 50 6c 65 61 73 65 20 77 61 69 74 20 |0);"Please wait | 000005a0 61 20 6d 6f 6d 65 6e 74 2e 2e 2e 22 0d 02 30 12 |a moment..."..0.| 000005b0 e3 58 25 3d 2d 31 32 36 b8 31 32 36 88 34 0d 02 |.X%=-126.126.4..| 000005c0 3a 0c 2a 46 58 31 31 32 2c 32 0d 02 44 2d f1 8a |:.*FX112,2..D-..| 000005d0 32 30 2c 32 34 29 3b a8 28 31 30 30 2a 28 58 25 |20,24);.(100*(X%| 000005e0 2b 31 32 38 29 2f 32 35 36 29 3b 22 25 20 64 6f |+128)/256);"% do| 000005f0 6e 65 20 20 20 20 22 0d 02 4e 0c 2a 46 58 31 31 |ne "..N.*FX11| 00000600 32 2c 31 0d 02 58 12 e3 59 25 3d 2d 31 32 36 b8 |2,1..X..Y%=-126.| 00000610 31 32 36 88 34 0d 02 62 2e 41 3d 31 2e 35 2a 58 |126.4..b.A=1.5*X| 00000620 25 2f 31 32 38 2d 30 2e 35 3a 42 3d 31 2e 35 2a |%/128-0.5:B=1.5*| 00000630 59 25 2f 31 32 38 3a 58 3d 41 3a 59 3d 42 3a 49 |Y%/128:X=A:Y=B:I| 00000640 25 3d 30 0d 02 6c 3b c8 95 94 28 58 29 3c 32 80 |%=0..l;...(X)<2.| 00000650 94 28 59 29 3c 32 80 49 25 3c 33 32 3a 4f 3d 58 |.(Y)<2.I%<32:O=X| 00000660 3a 58 3d 58 2a 58 2d 59 2a 59 2b 41 3a 59 3d 32 |:X=X*X-Y*Y+A:Y=2| 00000670 2a 4f 2a 59 2b 42 3a 49 25 2b 3d 31 3a ce 0d 02 |*O*Y+B:I%+=1:...| 00000680 76 1d e7 49 25 3d 33 32 8c e6 30 2c 30 c8 9c 30 |v..I%=32..0,0..0| 00000690 8b e6 30 2c 49 25 c8 9c 32 35 35 0d 02 80 17 c8 |..0,I%..255.....| 000006a0 92 58 25 2b 31 31 35 32 2c 59 25 2b 31 32 38 3a |.X%+1152,Y%+128:| 000006b0 ed 2c 0d 02 8a 0c 2a 46 58 31 31 33 2c 31 0d 02 |.,....*FX113,1..| 000006c0 94 05 e1 0d 02 9e 05 3a 0d 02 a8 13 dd a4 61 64 |.......:......ad| 000006d0 72 28 52 25 2c 41 25 2c 49 25 29 0d 02 b2 2c e7 |r(R%,A%,I%)...,.| 000006e0 28 50 25 80 33 29 3c 3e 30 8c f1 22 43 6f 64 65 |(P%.3)<>0.."Code| 000006f0 20 69 73 6e 27 74 20 77 6f 72 64 20 61 6c 69 67 | isn't word alig| 00000700 6e 65 64 21 22 3a e0 0d 02 bc 1b e7 28 54 25 80 |ned!":......(T%.| 00000710 32 29 3d 30 8c 50 25 2b 3d 49 25 3c 3c 32 3a 3d |2)=0.P%+=I%<<2:=| 00000720 54 25 0d 02 c6 28 ea 4e 25 2c 4f 25 2c 48 25 2c |T%...(.N%,O%,H%,| 00000730 55 25 3a 48 25 3d 41 25 2d 28 50 25 2b 38 29 3a |U%:H%=A%-(P%+8):| 00000740 4e 25 3d 30 3a 4f 25 3d 31 35 0d 02 d0 13 e3 55 |N%=0:O%=15.....U| 00000750 25 3d 31 b8 49 25 3a e7 48 25 3d 30 8c 0d 02 da |%=1.I%:.H%=0....| 00000760 17 5b 4f 50 54 20 54 25 3a 4d 4f 56 20 52 25 2c |.[OPT T%:MOV R%,| 00000770 4f 25 3a 5d 0d 02 e4 20 cc c8 95 28 48 25 80 33 |O%:]... ...(H%.3| 00000780 29 3d 30 3a 48 25 3d 48 25 3e 3e 32 3a 4e 25 2b |)=0:H%=H%>>2:N%+| 00000790 3d 32 3a ce 0d 02 ee 10 e7 28 48 25 80 32 35 36 |=2:......(H%.256| 000007a0 29 3d 30 8c 0d 02 f8 30 5b 4f 50 54 20 54 25 3a |)=0....0[OPT T%:| 000007b0 41 44 44 20 52 25 2c 4f 25 2c 23 28 48 25 80 32 |ADD R%,O%,#(H%.2| 000007c0 35 35 29 3c 3c 4e 25 3a 5d 3a 48 25 2d 3d 48 25 |55)<<N%:]:H%-=H%| 000007d0 80 32 35 35 0d 03 02 39 cc 5b 4f 50 54 20 54 25 |.255...9.[OPT T%| 000007e0 3a 53 55 42 20 52 25 2c 4f 25 2c 23 28 32 35 36 |:SUB R%,O%,#(256| 000007f0 2d 48 25 80 32 35 35 29 3c 3c 4e 25 3a 5d 3a 48 |-H%.255)<<N%:]:H| 00000800 25 2b 3d 32 35 36 2d 48 25 80 32 35 35 0d 03 0c |%+=256-H%.255...| 00000810 05 cd 0d 03 16 0d cd 3a 4f 25 3d 52 25 3a ed 0d |.......:O%=R%:..| 00000820 03 20 4a e7 48 25 3c 3e 30 8c f1 22 43 6f 75 6c |. J.H%<>0.."Coul| 00000830 64 20 6e 6f 74 20 41 44 52 20 74 6f 20 22 3b 41 |d not ADR to ";A| 00000840 25 3b 22 20 69 6e 20 22 3b 49 25 3b 22 20 69 6e |%;" in ";I%;" in| 00000850 73 74 72 75 63 74 69 6f 6e 73 20 28 52 25 3d 22 |structions (R%="| 00000860 3b 52 25 3b 22 29 22 3a e0 0d 03 2a 07 3d 54 25 |;R%;")":...*.=T%| 00000870 0d 03 34 05 3a 0d 03 3e 16 dd a4 72 65 67 69 73 |..4.:..>...regis| 00000880 74 65 72 6a 28 4a 25 2c 4e 25 29 0d 03 48 14 4a |terj(J%,N%)..H.J| 00000890 25 21 28 4e 25 3c 3c 32 29 3d 50 25 2d 4a 25 0d |%!(N%<<2)=P%-J%.| 000008a0 03 52 07 3d 54 25 0d 03 5c 05 3a 0d 03 66 0e dd |.R.=T%..\.:..f..| 000008b0 f2 61 73 73 65 6d 62 6c 65 0d 03 70 16 e3 54 25 |.assemble..p..T%| 000008c0 3d 30 b8 32 88 32 3a 50 25 3d 63 6f 64 65 25 0d |=0.2.2:P%=code%.| 000008d0 03 7a 0b 5b 4f 50 54 20 54 25 0d 03 84 05 3a 0d |.z.[OPT T%....:.| 000008e0 03 8e 1e 2e 76 64 75 76 61 72 73 25 3a 45 51 55 |....vduvars%:EQU| 000008f0 44 20 31 34 38 3a 45 51 55 44 20 2d 31 0d 03 98 |D 148:EQUD -1...| 00000900 15 2e 73 63 72 61 64 64 72 25 3a 45 51 55 44 20 |..scraddr%:EQUD | 00000910 2d 31 0d 03 a2 05 3a 0d 03 ac 11 2e 72 65 61 64 |-1....:.....read| 00000920 76 64 75 76 61 72 73 25 0d 03 b6 13 41 44 52 20 |vduvars%....ADR | 00000930 52 30 2c 76 64 75 76 61 72 73 25 0d 03 c0 13 41 |R0,vduvars%....A| 00000940 44 52 20 52 31 2c 73 63 72 61 64 64 72 25 0d 03 |DR R1,scraddr%..| 00000950 ca 1d 53 57 49 20 22 4f 53 5f 52 65 61 64 56 64 |..SWI "OS_ReadVd| 00000960 75 56 61 72 69 61 62 6c 65 73 22 0d 03 d4 0e 4d |uVariables"....M| 00000970 4f 56 20 50 43 2c 52 31 34 0d 03 de 05 3a 0d 03 |OV PC,R14....:..| 00000980 e8 12 2e 72 65 61 6c 63 25 3a 45 51 55 44 20 30 |...realc%:EQUD 0| 00000990 0d 03 f2 12 2e 69 6d 61 67 63 25 3a 45 51 55 44 |.....imagc%:EQUD| 000009a0 20 30 0d 03 fc 05 3a 0d 04 06 0b 2e 66 72 61 6d | 0....:.....fram| 000009b0 65 25 0d 04 10 14 53 54 4d 46 44 20 52 31 33 21 |e%....STMFD R13!| 000009c0 2c 7b 52 31 34 7d 0d 04 1a 2b 3b 20 52 30 3d 72 |,{R14}...+; R0=r| 000009d0 65 61 6c 31 3d 72 65 61 6c 30 5e 32 2d 69 6d 61 |eal1=real0^2-ima| 000009e0 67 30 5e 32 2b 72 65 61 6c 43 20 69 6e 20 41 43 |g0^2+realC in AC| 000009f0 25 0d 04 24 29 3b 20 52 31 3d 69 6d 61 67 31 3d |%..$); R1=imag1=| 00000a00 32 2a 72 65 61 6c 30 2a 69 6d 61 67 30 2b 69 6d |2*real0*imag0+im| 00000a10 61 67 43 20 69 6e 20 41 43 25 0d 04 2e 2b 3b 20 |agC in AC%...+; | 00000a20 52 32 3d 64 72 65 61 6c 31 2f 64 58 3d 64 69 6d |R2=dreal1/dX=dim| 00000a30 61 67 31 2f 64 59 3d 32 2a 72 65 61 6c 30 20 69 |ag1/dY=2*real0 i| 00000a40 6e 20 41 43 25 0d 04 38 2c 3b 20 52 33 3d 64 69 |n AC%..8,; R3=di| 00000a50 6d 61 67 31 2f 64 58 3d 2d 64 72 65 61 6c 31 2f |mag1/dX=-dreal1/| 00000a60 64 59 3d 32 2a 69 6d 61 67 30 20 69 6e 20 41 43 |dY=2*imag0 in AC| 00000a70 25 0d 04 42 2b 3b 20 64 32 72 65 61 6c 31 2f 64 |%..B+; d2real1/d| 00000a80 58 32 3d 64 69 6d 61 67 31 2f 64 58 64 59 3d 2d |X2=dimag1/dXdY=-| 00000a90 64 72 65 61 6c 31 2f 64 59 32 3d 32 0d 04 4c 2c |dreal1/dY2=2..L,| 00000aa0 3b 20 64 32 69 6d 61 67 31 2f 64 58 32 3d 2d 64 |; d2imag1/dX2=-d| 00000ab0 72 65 61 6c 31 2f 64 58 64 59 3d 2d 64 69 6d 61 |real1/dXdY=-dima| 00000ac0 67 31 2f 64 59 32 3d 30 0d 04 56 12 3b 20 53 74 |g1/dY2=0..V.; St| 00000ad0 61 72 74 20 61 74 20 30 2c 30 0d 04 60 11 4c 44 |art at 0,0..`.LD| 00000ae0 52 20 52 30 2c 72 65 61 6c 63 25 0d 04 6a 11 4c |R R0,realc%..j.L| 00000af0 44 52 20 52 31 2c 69 6d 61 67 63 25 0d 04 74 0d |DR R1,imagc%..t.| 00000b00 4d 4f 56 20 52 32 2c 23 30 0d 04 7e 0d 4d 4f 56 |MOV R2,#0..~.MOV| 00000b10 20 52 33 2c 23 30 0d 04 88 16 3b 20 47 6f 20 6c | R3,#0....; Go l| 00000b20 65 66 74 20 61 6e 64 20 75 70 20 32 0d 04 92 29 |eft and up 2...)| 00000b30 53 55 42 20 52 30 2c 52 30 2c 52 32 2c 41 53 4c |SUB R0,R0,R2,ASL| 00000b40 23 31 3a 53 55 42 20 52 31 2c 52 31 2c 52 33 2c |#1:SUB R1,R1,R3,| 00000b50 41 53 4c 23 31 0d 04 9c 29 41 44 44 20 52 31 2c |ASL#1...)ADD R1,| 00000b60 52 31 2c 52 32 2c 41 53 4c 23 31 3a 53 55 42 20 |R1,R2,ASL#1:SUB | 00000b70 52 30 2c 52 30 2c 52 33 2c 41 53 4c 23 31 0d 04 |R0,R0,R3,ASL#1..| 00000b80 a6 2c 53 55 42 20 52 32 2c 52 32 2c 23 32 2a 32 |.,SUB R2,R2,#2*2| 00000b90 3c 3c 41 43 25 3a 5c 53 55 42 20 52 33 2c 52 33 |<<AC%:\SUB R3,R3| 00000ba0 2c 23 30 2a 32 3c 3c 41 43 25 0d 04 b0 2c 41 44 |,#0*2<<AC%...,AD| 00000bb0 44 20 52 33 2c 52 33 2c 23 32 2a 32 3c 3c 41 43 |D R3,R3,#2*2<<AC| 00000bc0 25 3a 5c 53 55 42 20 52 32 2c 52 32 2c 23 30 2a |%:\SUB R2,R2,#0*| 00000bd0 32 3c 3c 41 43 25 0d 04 ba 3e 53 55 42 20 52 31 |2<<AC%...>SUB R1| 00000be0 2c 52 31 2c 23 32 2a 28 32 2a 32 2a 32 29 3c 3c |,R1,#2*(2*2*2)<<| 00000bf0 41 43 25 2d 31 3a 5c 41 44 44 20 52 30 2c 52 30 |AC%-1:\ADD R0,R0| 00000c00 2c 23 30 2a 28 32 2a 32 2d 32 2a 32 29 3c 3c 41 |,#0*(2*2-2*2)<<A| 00000c10 43 25 2d 31 0d 04 c4 2f 3b 20 47 6f 20 72 69 67 |C%-1.../; Go rig| 00000c20 68 74 20 61 6e 64 20 64 6f 77 6e 20 68 61 6c 66 |ht and down half| 00000c30 20 61 20 70 69 78 65 6c 20 3d 20 31 3e 3e 53 43 | a pixel = 1>>SC| 00000c40 25 2d 31 0d 04 ce 31 41 44 44 20 52 30 2c 52 30 |%-1...1ADD R0,R0| 00000c50 2c 52 32 2c 41 53 52 23 53 43 25 2d 31 3a 41 44 |,R2,ASR#SC%-1:AD| 00000c60 44 20 52 31 2c 52 31 2c 52 33 2c 41 53 52 23 53 |D R1,R1,R3,ASR#S| 00000c70 43 25 2d 31 0d 04 d8 31 53 55 42 20 52 31 2c 52 |C%-1...1SUB R1,R| 00000c80 31 2c 52 32 2c 41 53 52 23 53 43 25 2d 31 3a 41 |1,R2,ASR#SC%-1:A| 00000c90 44 44 20 52 30 2c 52 30 2c 52 33 2c 41 53 52 23 |DD R0,R0,R3,ASR#| 00000ca0 53 43 25 2d 31 0d 04 e2 38 41 44 44 20 52 32 2c |SC%-1...8ADD R2,| 00000cb0 52 32 2c 23 32 3c 3c 41 43 25 2d 28 53 43 25 2d |R2,#2<<AC%-(SC%-| 00000cc0 31 29 3a 5c 41 44 44 20 52 33 2c 52 33 2c 23 30 |1):\ADD R3,R3,#0| 00000cd0 3c 3c 41 43 25 2d 28 53 43 25 2d 31 29 0d 04 ec |<<AC%-(SC%-1)...| 00000ce0 38 53 55 42 20 52 33 2c 52 33 2c 23 32 3c 3c 41 |8SUB R3,R3,#2<<A| 00000cf0 43 25 2d 28 53 43 25 2d 31 29 3a 5c 41 44 44 20 |C%-(SC%-1):\ADD | 00000d00 52 32 2c 52 32 2c 23 30 3c 3c 41 43 25 2d 28 53 |R2,R2,#0<<AC%-(S| 00000d10 43 25 2d 31 29 0d 04 f6 54 53 55 42 20 52 31 2c |C%-1)...TSUB R1,| 00000d20 52 31 2c 23 32 2a 32 3c 3c 41 43 25 2d 28 53 43 |R1,#2*2<<AC%-(SC| 00000d30 25 2d 31 29 2d 28 53 43 25 2d 31 29 2d 31 3a 5c |%-1)-(SC%-1)-1:\| 00000d40 41 44 44 20 52 30 2c 52 30 2c 23 30 2a 28 31 2d |ADD R0,R0,#0*(1-| 00000d50 31 29 3c 3c 41 43 25 2d 28 53 43 25 2d 31 29 2d |1)<<AC%-(SC%-1)-| 00000d60 28 53 43 25 2d 31 29 2d 31 0d 05 00 14 4c 44 52 |(SC%-1)-1....LDR| 00000d70 20 52 31 30 2c 73 63 72 61 64 64 72 25 0d 05 0a | R10,scraddr%...| 00000d80 18 41 44 44 20 52 31 32 2c 52 31 30 2c 23 31 32 |.ADD R12,R10,#12| 00000d90 38 2a 33 32 30 0d 05 14 14 53 55 42 20 52 31 32 |8*320....SUB R12| 00000da0 2c 52 31 32 2c 23 33 32 30 0d 05 1e 14 41 44 44 |,R12,#320....ADD| 00000db0 20 52 31 32 2c 52 31 32 2c 23 31 32 38 0d 05 28 | R12,R12,#128..(| 00000dc0 13 4d 4f 56 20 52 31 31 2c 23 31 3c 3c 53 43 25 |.MOV R11,#1<<SC%| 00000dd0 0d 05 32 0b 2e 79 6c 6f 6f 70 25 0d 05 3c 1a 53 |..2..yloop%..<.S| 00000de0 55 42 20 52 31 31 2c 52 31 31 2c 23 31 3c 3c 31 |UB R11,R11,#1<<1| 00000df0 36 2b 53 43 25 0d 05 46 0b 2e 78 6c 6f 6f 70 25 |6+SC%..F..xloop%| 00000e00 0d 05 50 0f 4d 4f 56 20 52 39 2c 23 32 35 35 0d |..P.MOV R9,#255.| 00000e10 05 5a 12 43 4d 50 20 52 30 2c 23 32 3c 3c 41 43 |.Z.CMP R0,#2<<AC| 00000e20 25 0d 05 64 14 43 4d 50 4c 54 20 52 31 2c 23 32 |%..d.CMPLT R1,#2| 00000e30 3c 3c 41 43 25 0d 05 6e 0f 42 47 45 20 65 73 63 |<<AC%..n.BGE esc| 00000e40 61 70 65 25 0d 05 78 12 43 4d 4e 20 52 30 2c 23 |ape%..x.CMN R0,#| 00000e50 32 3c 3c 41 43 25 0d 05 82 14 43 4d 4e 47 54 20 |2<<AC%....CMNGT | 00000e60 52 31 2c 23 32 3c 3c 41 43 25 0d 05 8c 0f 42 4c |R1,#2<<AC%....BL| 00000e70 45 20 65 73 63 61 70 65 25 0d 05 96 1d 4d 4f 56 |E escape%....MOV| 00000e80 20 52 39 2c 52 31 2c 41 53 52 23 28 41 43 25 2b | R9,R1,ASR#(AC%+| 00000e90 32 29 2d 53 43 25 0d 05 a0 16 41 44 44 20 52 39 |2)-SC%....ADD R9| 00000ea0 2c 52 39 2c 52 39 2c 41 53 4c 23 32 0d 05 aa 17 |,R9,R9,ASL#2....| 00000eb0 53 55 42 20 52 39 2c 52 31 32 2c 52 39 2c 41 53 |SUB R9,R12,R9,AS| 00000ec0 4c 23 36 0d 05 b4 23 4c 44 52 42 20 52 39 2c 5b |L#6...#LDRB R9,[| 00000ed0 52 39 2c 52 30 2c 41 53 52 23 28 41 43 25 2b 32 |R9,R0,ASR#(AC%+2| 00000ee0 29 2d 53 43 25 5d 0d 05 be 11 53 55 42 53 20 52 |)-SC%]....SUBS R| 00000ef0 39 2c 52 39 2c 23 31 0d 05 c8 0f 4d 4f 56 4c 54 |9,R9,#1....MOVLT| 00000f00 20 52 39 2c 23 30 0d 05 d2 0c 2e 65 73 63 61 70 | R9,#0.....escap| 00000f10 65 25 0d 05 dc 14 53 54 52 42 20 52 39 2c 5b 52 |e%....STRB R9,[R| 00000f20 31 30 5d 2c 23 31 0d 05 e6 1e 3b 20 52 69 67 68 |10],#1....; Righ| 00000f30 74 20 61 20 70 69 78 65 6c 20 3d 20 31 3e 3e 53 |t a pixel = 1>>S| 00000f40 43 25 2d 32 0d 05 f0 31 41 44 44 20 52 30 2c 52 |C%-2...1ADD R0,R| 00000f50 30 2c 52 32 2c 41 53 52 23 53 43 25 2d 32 3a 41 |0,R2,ASR#SC%-2:A| 00000f60 44 44 20 52 31 2c 52 31 2c 52 33 2c 41 53 52 23 |DD R1,R1,R3,ASR#| 00000f70 53 43 25 2d 32 0d 05 fa 38 41 44 44 20 52 32 2c |SC%-2...8ADD R2,| 00000f80 52 32 2c 23 32 3c 3c 41 43 25 2d 28 53 43 25 2d |R2,#2<<AC%-(SC%-| 00000f90 32 29 3a 5c 41 44 44 20 52 33 2c 52 33 2c 23 30 |2):\ADD R3,R3,#0| 00000fa0 3c 3c 41 43 25 2d 28 53 43 25 2d 32 29 0d 06 04 |<<AC%-(SC%-2)...| 00000fb0 4c 41 44 44 20 52 30 2c 52 30 2c 23 32 3c 3c 41 |LADD R0,R0,#2<<A| 00000fc0 43 25 2d 28 53 43 25 2d 32 29 2d 28 53 43 25 2d |C%-(SC%-2)-(SC%-| 00000fd0 32 29 2d 31 3a 5c 41 44 44 20 52 31 2c 52 31 2c |2)-1:\ADD R1,R1,| 00000fe0 23 30 3c 3c 41 43 25 2d 28 53 43 25 2d 32 29 2d |#0<<AC%-(SC%-2)-| 00000ff0 28 53 43 25 2d 32 29 2d 31 0d 06 0e 17 41 44 44 |(SC%-2)-1....ADD| 00001000 53 20 52 31 31 2c 52 31 31 2c 23 31 3c 3c 31 36 |S R11,R11,#1<<16| 00001010 0d 06 18 0e 42 4c 45 20 78 6c 6f 6f 70 25 0d 06 |....BLE xloop%..| 00001020 22 0c 3b 20 4c 65 66 74 20 34 0d 06 2c 29 53 55 |".; Left 4..,)SU| 00001030 42 20 52 30 2c 52 30 2c 52 32 2c 41 53 4c 23 32 |B R0,R0,R2,ASL#2| 00001040 3a 53 55 42 20 52 31 2c 52 31 2c 52 33 2c 41 53 |:SUB R1,R1,R3,AS| 00001050 4c 23 32 0d 06 36 2c 53 55 42 20 52 32 2c 52 32 |L#2..6,SUB R2,R2| 00001060 2c 23 32 2a 34 3c 3c 41 43 25 3a 5c 53 55 42 20 |,#2*4<<AC%:\SUB | 00001070 52 33 2c 52 33 2c 23 30 2a 34 3c 3c 41 43 25 0d |R3,R3,#0*4<<AC%.| 00001080 06 40 34 41 44 44 20 52 30 2c 52 30 2c 23 32 2a |.@4ADD R0,R0,#2*| 00001090 34 2a 34 3c 3c 41 43 25 2d 31 3a 5c 41 44 44 20 |4*4<<AC%-1:\ADD | 000010a0 52 31 2c 52 31 2c 23 30 2a 34 2a 34 3c 3c 41 43 |R1,R1,#0*4*4<<AC| 000010b0 25 2d 31 0d 06 4a 1d 3b 20 44 6f 77 6e 20 61 20 |%-1..J.; Down a | 000010c0 70 69 78 65 6c 20 3d 20 31 3e 3e 53 43 25 2d 32 |pixel = 1>>SC%-2| 000010d0 0d 06 54 31 53 55 42 20 52 31 2c 52 31 2c 52 32 |..T1SUB R1,R1,R2| 000010e0 2c 41 53 52 23 53 43 25 2d 32 3a 41 44 44 20 52 |,ASR#SC%-2:ADD R| 000010f0 30 2c 52 30 2c 52 33 2c 41 53 52 23 53 43 25 2d |0,R0,R3,ASR#SC%-| 00001100 32 0d 06 5e 38 53 55 42 20 52 33 2c 52 33 2c 23 |2..^8SUB R3,R3,#| 00001110 32 3c 3c 41 43 25 2d 28 53 43 25 2d 32 29 3a 5c |2<<AC%-(SC%-2):\| 00001120 41 44 44 20 52 32 2c 52 32 2c 23 30 3c 3c 41 43 |ADD R2,R2,#0<<AC| 00001130 25 2d 28 53 43 25 2d 32 29 0d 06 68 4c 53 55 42 |%-(SC%-2)..hLSUB| 00001140 20 52 30 2c 52 30 2c 23 32 3c 3c 41 43 25 2d 28 | R0,R0,#2<<AC%-(| 00001150 53 43 25 2d 32 29 2d 28 53 43 25 2d 32 29 2d 31 |SC%-2)-(SC%-2)-1| 00001160 3a 5c 53 55 42 20 52 31 2c 52 31 2c 23 30 3c 3c |:\SUB R1,R1,#0<<| 00001170 41 43 25 2d 28 53 43 25 2d 32 29 2d 28 53 43 25 |AC%-(SC%-2)-(SC%| 00001180 2d 32 29 2d 31 0d 06 72 1d 41 44 44 20 52 31 30 |-2)-1..r.ADD R10| 00001190 2c 52 31 30 2c 23 33 32 30 2d 28 31 3c 3c 53 43 |,R10,#320-(1<<SC| 000011a0 25 29 0d 06 7c 13 53 55 42 53 20 52 31 31 2c 52 |%)..|.SUBS R11,R| 000011b0 31 31 2c 23 31 0d 06 86 0e 42 47 54 20 79 6c 6f |11,#1....BGT ylo| 000011c0 6f 70 25 0d 06 90 13 4c 44 4d 46 44 20 52 31 33 |op%....LDMFD R13| 000011d0 21 2c 7b 50 43 7d 0d 06 9a 05 3a 0d 06 a4 35 5d |!,{PC}....:...5]| 000011e0 3a e7 50 25 3e 63 6f 64 65 25 2b 63 6f 64 65 6c |:.P%>code%+codel| 000011f0 65 6e 25 8c 85 32 35 35 2c 22 43 6f 64 65 20 69 |en%..255,"Code i| 00001200 73 6e 27 74 20 62 69 67 20 65 6e 6f 75 67 68 22 |sn't big enough"| 00001210 0d 06 ae 05 ed 0d 06 b8 05 e1 0d ff |............| 0000121c