Home » Archimedes archive » Acorn User » AU 1995-06.adf » !StarInfo_StarInfo » Turnbull/Skimpy/!RTJulia/!RunImage2

Turnbull/Skimpy/!RTJulia/!RunImage2

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/!RunImage2
Read OK:
File size: 0F75 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%
   80PROCdrawmandy
   90PX%=1152:PY%=128:GCOL3,63TINT255:POINTPX%,PY%
  100VDU28,32,7,39,0:CLS
  110REPEAT:MOUSEX%,Y%,Z%:MOUSETO640,512
  120IFNOTINKEY(-1)THEN!realc%+=X%-640<<(AC%+1)-20+Z%:!imagc%+=Y%-512<<(AC%+1)-20+Z%
  130CLS:A=!realc%/(1<<AC%):B=!imagc%/(1<<AC%)
  140PRINTTAB(0,0);"Real"'INT(A*1E5)/1E5
  150PRINTTAB(0,4);"Imagine"'INT(B*1E5)/1E5
  160POINTPX%,PY%
  170PX%=1152+128*(A+0.5)/1.5:PY%=128+128*B/1.5
  180POINTPX%,PY%
  190CALLframe%
  200UNTIL0
  210END
  220:
  230:
  240DEFPROCconstants
  250spacelen%=&40000
  260codelen%=&4000
  270AC%=28:SC%=8
  280ENDPROC
  290:
  300DEFPROCdrawmandy
  310*FX113,2
  320*FX112,2
  330CLS
  340PRINTTAB(0,8);"Real time Julia sets";TAB(0,12);"by Alistair Turnbull"
  350PRINTTAB(0,20);"Please wait a moment..."
  360FORX%=-126TO126STEP4
  370*FX112,2
  380PRINTTAB(20,24);INT(100*(X%+128)/256);"% done    "
  390*FX112,1
  400FORY%=-126TO126STEP4
  410A=1.5*X%/128-0.5:B=1.5*Y%/128:X=A:Y=B:I%=0
  420WHILEABS(X)<2ANDABS(Y)<2ANDI%<32:O=X:X=X*X-Y*Y+A:Y=2*O*Y+B:I%+=1:ENDWHILE
  430IFI%=32THENGCOL0,0TINT0ELSEGCOL0,I%TINT255
  440POINTX%+1152,Y%+128:NEXT,
  450*FX113,1
  460ENDPROC
  470:
  480DEFFNadr(R%,A%,I%)
  490IF(P%AND3)<>0THENPRINT"Code isn't word aligned!":END
  500IF(T%AND2)=0THENP%+=I%<<2:=T%
  510LOCALN%,O%,H%,U%:H%=A%-(P%+8):N%=0:O%=15
  520FORU%=1TOI%:IFH%=0THEN
  530[OPT T%:MOV R%,O%:]
  540ELSEWHILE(H%AND3)=0:H%=H%>>2:N%+=2:ENDWHILE
  550IF(H%AND256)=0THEN
  560[OPT T%:ADD R%,O%,#(H%AND255)<<N%:]:H%-=H%AND255
  570ELSE[OPT T%:SUB R%,O%,#(256-H%AND255)<<N%:]:H%+=256-H%AND255
  580ENDIF
  590ENDIF:O%=R%:NEXT
  600IFH%<>0THENPRINT"Could not ADR to ";A%;" in ";I%;" instructions (R%=";R%;")":END
  610=T%
  620:
  630DEFFNregisterj(J%,N%)
  640J%!(N%<<2)=P%-J%
  650=T%
  660:
  670DEFPROCassemble
  680FORT%=0TO2STEP2:P%=code%
  690[OPT T%
  700:
  710.vduvars%:EQUD 148:EQUD -1
  720.scraddr%:EQUD -1
  730:
  740.readvduvars%
  750ADR R0,vduvars%
  760ADR R1,scraddr%
  770SWI "OS_ReadVduVariables"
  780MOV PC,R14
  790:
  800.realc%:EQUD 0
  810.imagc%:EQUD 0
  820:
  830.frame%
  840STMFD R13!,{R14}
  850; R0=real1=real0^2-imag0^2+realC in AC%
  860; R1=imag1=2*real0*imag0+imagC in AC%
  870; R2=dreal1/dX=dimag1/dY=2*real0 in AC%
  880; R3=dimag1/dX=-dreal1/dY=2*imag0 in AC%
  890; d2real1/dX2=dimag1/dXdY=-dreal1/dY2=2
  900; d2imag1/dX2=-dreal1/dXdY=-dimag1/dY2=0
  910; Start at 0,0
  920LDR R0,realc%
  930LDR R1,imagc%
  940MOV R2,#0
  950MOV R3,#0
  960; Go left and up 2
  970SUB R0,R0,R2,ASL#1:SUB R1,R1,R3,ASL#1
  980ADD R1,R1,R2,ASL#1:SUB R0,R0,R3,ASL#1
  990SUB R2,R2,#2*2<<AC%:\SUB R3,R3,#0*2<<AC%
 1000ADD R3,R3,#2*2<<AC%:\SUB R2,R2,#0*2<<AC%
 1010SUB R1,R1,#2*(2*2*2)<<AC%-1:\ADD R0,R0,#0*(2*2-2*2)<<AC%-1
 1020; Go right and down half a pixel = 1>>SC%-1
 1030ADD R0,R0,R2,ASR#SC%-1:ADD R1,R1,R3,ASR#SC%-1
 1040SUB R1,R1,R2,ASR#SC%-1:ADD R0,R0,R3,ASR#SC%-1
 1050ADD R2,R2,#2<<AC%-(SC%-1):\ADD R3,R3,#0<<AC%-(SC%-1)
 1060SUB R3,R3,#2<<AC%-(SC%-1):\ADD R2,R2,#0<<AC%-(SC%-1)
 1070SUB R1,R1,#2*2<<AC%-(SC%-1)-(SC%-1)-1:\ADD R0,R0,#0*(1-1)<<AC%-(SC%-1)-(SC%-1)-1
 1080LDR R10,scraddr%
 1090ADD R12,R10,#128*320
 1100SUB R12,R12,#320
 1110ADD R12,R12,#128
 1120MOV R11,#1<<SC%
 1130.yloop%
 1140SUB R11,R11,#1<<16+SC%
 1150.xloop%
 1160MOV R9,#255
 1170CMP R0,#2<<AC%
 1180CMPLT R1,#2<<AC%
 1190BGE escape%
 1200CMN R0,#2<<AC%
 1210CMNGT R1,#2<<AC%
 1220BLE escape%
 1230MOV R9,R1,ASR#(AC%+2)-SC%
 1240ADD R9,R9,R9,ASL#2
 1250SUB R9,R12,R9,ASL#6
 1260LDRB R9,[R9,R0,ASR#(AC%+2)-SC%]
 1270SUBS R9,R9,#1
 1280MOVLT R9,#0
 1290.escape%
 1300STRB R9,[R10],#1
 1310; Right a pixel = 1>>SC%-2
 1320ADD R0,R0,R2,ASR#SC%-2:ADD R1,R1,R3,ASR#SC%-2
 1330ADD R2,R2,#2<<AC%-(SC%-2):\ADD R3,R3,#0<<AC%-(SC%-2)
 1340ADD R0,R0,#2<<AC%-(SC%-2)-(SC%-2)-1:\ADD R1,R1,#0<<AC%-(SC%-2)-(SC%-2)-1
 1350ADDS R11,R11,#1<<16
 1360BLE xloop%
 1370; Left 4
 1380SUB R0,R0,R2,ASL#2:SUB R1,R1,R3,ASL#2
 1390SUB R2,R2,#2*4<<AC%:\SUB R3,R3,#0*4<<AC%
 1400ADD R0,R0,#2*4*4<<AC%-1:\ADD R1,R1,#0*4*4<<AC%-1
 1410; Down a pixel = 1>>SC%-2
 1420SUB R1,R1,R2,ASR#SC%-2:ADD R0,R0,R3,ASR#SC%-2
 1430SUB R3,R3,#2<<AC%-(SC%-2):\ADD R2,R2,#0<<AC%-(SC%-2)
 1440SUB R0,R0,#2<<AC%-(SC%-2)-(SC%-2)-1:\SUB R1,R1,#0<<AC%-(SC%-2)-(SC%-2)-1
 1450ADD R10,R10,#320-(1<<SC%)
 1460SUBS R11,R11,#1
 1470BGT yloop%
 1480LDMFD R13!,{PC}
 1490:
 1500]:IFP%>code%+codelen%THENERROR255,"Code isn't big enough"
 1510NEXT
 1520ENDPROC


�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�drawmandy
Z)PX%=1152:PY%=128:�3,63Ȝ255:ȒPX%,PY%
d�28,32,7,39,0:�
n�:ȗX%,Y%,Z%:ȗ�640,512
xI符(-1)�!realc%+=X%-640<<(AC%+1)-20+Z%:!imagc%+=Y%-512<<(AC%+1)-20+Z%
�+�:A=!realc%/(1<<AC%):B=!imagc%/(1<<AC%)
��0,0);"Real"'�(A*1E5)/1E5
�!�0,4);"Imagine"'�(B*1E5)/1E5
�
ȒPX%,PY%
�.PX%=1152+128*(A+0.5)/1.5:PY%=128+128*B/1.5
�
ȒPX%,PY%
��frame%
��0
��
�:
�:
���constants
�spacelen%=&40000
codelen%=&4000
AC%=28:SC%=8
�
":
,��drawmandy
6*FX113,2
@*FX112,2
J�
T?�0,8);"Real time Julia sets";�0,12);"by Alistair Turnbull"
^%�0,20);"Please wait a moment..."
h�X%=-126�126�4
r*FX112,2
|-�20,24);�(100*(X%+128)/256);"% done    "
�*FX112,1
��Y%=-126�126�4
�.A=1.5*X%/128-0.5:B=1.5*Y%/128:X=A:Y=B:I%=0
�;ȕ�(X)<2��(Y)<2�I%<32:O=X:X=X*X-Y*Y+A:Y=2*O*Y+B:I%+=1:�
��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�
00[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
D�
N
�:O%=R%:�
XJ�H%<>0��"Could not ADR to ";A%;" in ";I%;" instructions (R%=";R%;")":�
b=T%
l:
vݤregisterj(J%,N%)
�J%!(N%<<2)=P%-J%
�=T%
�:
���assemble
��T%=0�2�2:P%=code%
�[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
4:
>.frame%
HSTMFD R13!,{R14}
R+; R0=real1=real0^2-imag0^2+realC in AC%
\); R1=imag1=2*real0*imag0+imagC in AC%
f+; R2=dreal1/dX=dimag1/dY=2*real0 in AC%
p,; R3=dimag1/dX=-dreal1/dY=2*imag0 in AC%
z+; d2real1/dX2=dimag1/dXdY=-dreal1/dY2=2
�,; d2imag1/dX2=-dreal1/dXdY=-dimag1/dY2=0
�; Start at 0,0
�LDR R0,realc%
�LDR R1,imagc%
�
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
8LDR R10,scraddr%
BADD R12,R10,#128*320
LSUB R12,R12,#320
VADD R12,R12,#128
`MOV R11,#1<<SC%
j.yloop%
tSUB R11,R11,#1<<16+SC%
~.xloop%
�MOV R9,#255
�CMP R0,#2<<AC%
�CMPLT R1,#2<<AC%
�BGE escape%
�CMN 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
28ADD 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
FADDS R11,R11,#1<<16
PBLE xloop%
Z; Left 4
d)SUB R0,R0,R2,ASL#2:SUB R1,R1,R3,ASL#2
n,SUB R2,R2,#2*4<<AC%:\SUB R3,R3,#0*4<<AC%
x4ADD R0,R0,#2*4*4<<AC%-1:\ADD R1,R1,#0*4*4<<AC%-1
�; Down a pixel = 1>>SC%-2
�1SUB 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)
�LSUB R0,R0,#2<<AC%-(SC%-2)-(SC%-2)-1:\SUB R1,R1,#0<<AC%-(SC%-2)-(SC%-2)-1
�ADD 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 0e f2 64 72 61 77 6d  |uvars%..P..drawm|
000000b0  61 6e 64 79 0d 00 5a 29  50 58 25 3d 31 31 35 32  |andy..Z)PX%=1152|
000000c0  3a 50 59 25 3d 31 32 38  3a e6 33 2c 36 33 c8 9c  |:PY%=128:.3,63..|
000000d0  32 35 35 3a c8 92 50 58  25 2c 50 59 25 0d 00 64  |255:..PX%,PY%..d|
000000e0  13 ef 32 38 2c 33 32 2c  37 2c 33 39 2c 30 3a db  |..28,32,7,39,0:.|
000000f0  0d 00 6e 1b f5 3a c8 97  58 25 2c 59 25 2c 5a 25  |..n..:..X%,Y%,Z%|
00000100  3a c8 97 b8 36 34 30 2c  35 31 32 0d 00 78 49 e7  |:...640,512..xI.|
00000110  ac a6 28 2d 31 29 8c 21  72 65 61 6c 63 25 2b 3d  |..(-1).!realc%+=|
00000120  58 25 2d 36 34 30 3c 3c  28 41 43 25 2b 31 29 2d  |X%-640<<(AC%+1)-|
00000130  32 30 2b 5a 25 3a 21 69  6d 61 67 63 25 2b 3d 59  |20+Z%:!imagc%+=Y|
00000140  25 2d 35 31 32 3c 3c 28  41 43 25 2b 31 29 2d 32  |%-512<<(AC%+1)-2|
00000150  30 2b 5a 25 0d 00 82 2b  db 3a 41 3d 21 72 65 61  |0+Z%...+.:A=!rea|
00000160  6c 63 25 2f 28 31 3c 3c  41 43 25 29 3a 42 3d 21  |lc%/(1<<AC%):B=!|
00000170  69 6d 61 67 63 25 2f 28  31 3c 3c 41 43 25 29 0d  |imagc%/(1<<AC%).|
00000180  00 8c 1e f1 8a 30 2c 30  29 3b 22 52 65 61 6c 22  |.....0,0);"Real"|
00000190  27 a8 28 41 2a 31 45 35  29 2f 31 45 35 0d 00 96  |'.(A*1E5)/1E5...|
000001a0  21 f1 8a 30 2c 34 29 3b  22 49 6d 61 67 69 6e 65  |!..0,4);"Imagine|
000001b0  22 27 a8 28 42 2a 31 45  35 29 2f 31 45 35 0d 00  |"'.(B*1E5)/1E5..|
000001c0  a0 0d c8 92 50 58 25 2c  50 59 25 0d 00 aa 2e 50  |....PX%,PY%....P|
000001d0  58 25 3d 31 31 35 32 2b  31 32 38 2a 28 41 2b 30  |X%=1152+128*(A+0|
000001e0  2e 35 29 2f 31 2e 35 3a  50 59 25 3d 31 32 38 2b  |.5)/1.5:PY%=128+|
000001f0  31 32 38 2a 42 2f 31 2e  35 0d 00 b4 0d c8 92 50  |128*B/1.5......P|
00000200  58 25 2c 50 59 25 0d 00  be 0b d6 66 72 61 6d 65  |X%,PY%.....frame|
00000210  25 0d 00 c8 06 fd 30 0d  00 d2 05 e0 0d 00 dc 05  |%.....0.........|
00000220  3a 0d 00 e6 05 3a 0d 00  f0 0f dd f2 63 6f 6e 73  |:....:......cons|
00000230  74 61 6e 74 73 0d 00 fa  14 73 70 61 63 65 6c 65  |tants....spacele|
00000240  6e 25 3d 26 34 30 30 30  30 0d 01 04 12 63 6f 64  |n%=&40000....cod|
00000250  65 6c 65 6e 25 3d 26 34  30 30 30 0d 01 0e 10 41  |elen%=&4000....A|
00000260  43 25 3d 32 38 3a 53 43  25 3d 38 0d 01 18 05 e1  |C%=28:SC%=8.....|
00000270  0d 01 22 05 3a 0d 01 2c  0f dd f2 64 72 61 77 6d  |..".:..,...drawm|
00000280  61 6e 64 79 0d 01 36 0c  2a 46 58 31 31 33 2c 32  |andy..6.*FX113,2|
00000290  0d 01 40 0c 2a 46 58 31  31 32 2c 32 0d 01 4a 05  |..@.*FX112,2..J.|
000002a0  db 0d 01 54 3f f1 8a 30  2c 38 29 3b 22 52 65 61  |...T?..0,8);"Rea|
000002b0  6c 20 74 69 6d 65 20 4a  75 6c 69 61 20 73 65 74  |l time Julia set|
000002c0  73 22 3b 8a 30 2c 31 32  29 3b 22 62 79 20 41 6c  |s";.0,12);"by Al|
000002d0  69 73 74 61 69 72 20 54  75 72 6e 62 75 6c 6c 22  |istair Turnbull"|
000002e0  0d 01 5e 25 f1 8a 30 2c  32 30 29 3b 22 50 6c 65  |..^%..0,20);"Ple|
000002f0  61 73 65 20 77 61 69 74  20 61 20 6d 6f 6d 65 6e  |ase wait a momen|
00000300  74 2e 2e 2e 22 0d 01 68  12 e3 58 25 3d 2d 31 32  |t..."..h..X%=-12|
00000310  36 b8 31 32 36 88 34 0d  01 72 0c 2a 46 58 31 31  |6.126.4..r.*FX11|
00000320  32 2c 32 0d 01 7c 2d f1  8a 32 30 2c 32 34 29 3b  |2,2..|-..20,24);|
00000330  a8 28 31 30 30 2a 28 58  25 2b 31 32 38 29 2f 32  |.(100*(X%+128)/2|
00000340  35 36 29 3b 22 25 20 64  6f 6e 65 20 20 20 20 22  |56);"% done    "|
00000350  0d 01 86 0c 2a 46 58 31  31 32 2c 31 0d 01 90 12  |....*FX112,1....|
00000360  e3 59 25 3d 2d 31 32 36  b8 31 32 36 88 34 0d 01  |.Y%=-126.126.4..|
00000370  9a 2e 41 3d 31 2e 35 2a  58 25 2f 31 32 38 2d 30  |..A=1.5*X%/128-0|
00000380  2e 35 3a 42 3d 31 2e 35  2a 59 25 2f 31 32 38 3a  |.5:B=1.5*Y%/128:|
00000390  58 3d 41 3a 59 3d 42 3a  49 25 3d 30 0d 01 a4 3b  |X=A:Y=B:I%=0...;|
000003a0  c8 95 94 28 58 29 3c 32  80 94 28 59 29 3c 32 80  |...(X)<2..(Y)<2.|
000003b0  49 25 3c 33 32 3a 4f 3d  58 3a 58 3d 58 2a 58 2d  |I%<32:O=X:X=X*X-|
000003c0  59 2a 59 2b 41 3a 59 3d  32 2a 4f 2a 59 2b 42 3a  |Y*Y+A:Y=2*O*Y+B:|
000003d0  49 25 2b 3d 31 3a ce 0d  01 ae 1d e7 49 25 3d 33  |I%+=1:......I%=3|
000003e0  32 8c e6 30 2c 30 c8 9c  30 8b e6 30 2c 49 25 c8  |2..0,0..0..0,I%.|
000003f0  9c 32 35 35 0d 01 b8 17  c8 92 58 25 2b 31 31 35  |.255......X%+115|
00000400  32 2c 59 25 2b 31 32 38  3a ed 2c 0d 01 c2 0c 2a  |2,Y%+128:.,....*|
00000410  46 58 31 31 33 2c 31 0d  01 cc 05 e1 0d 01 d6 05  |FX113,1.........|
00000420  3a 0d 01 e0 13 dd a4 61  64 72 28 52 25 2c 41 25  |:......adr(R%,A%|
00000430  2c 49 25 29 0d 01 ea 2c  e7 28 50 25 80 33 29 3c  |,I%)...,.(P%.3)<|
00000440  3e 30 8c f1 22 43 6f 64  65 20 69 73 6e 27 74 20  |>0.."Code isn't |
00000450  77 6f 72 64 20 61 6c 69  67 6e 65 64 21 22 3a e0  |word aligned!":.|
00000460  0d 01 f4 1b e7 28 54 25  80 32 29 3d 30 8c 50 25  |.....(T%.2)=0.P%|
00000470  2b 3d 49 25 3c 3c 32 3a  3d 54 25 0d 01 fe 28 ea  |+=I%<<2:=T%...(.|
00000480  4e 25 2c 4f 25 2c 48 25  2c 55 25 3a 48 25 3d 41  |N%,O%,H%,U%:H%=A|
00000490  25 2d 28 50 25 2b 38 29  3a 4e 25 3d 30 3a 4f 25  |%-(P%+8):N%=0:O%|
000004a0  3d 31 35 0d 02 08 13 e3  55 25 3d 31 b8 49 25 3a  |=15.....U%=1.I%:|
000004b0  e7 48 25 3d 30 8c 0d 02  12 17 5b 4f 50 54 20 54  |.H%=0.....[OPT T|
000004c0  25 3a 4d 4f 56 20 52 25  2c 4f 25 3a 5d 0d 02 1c  |%:MOV R%,O%:]...|
000004d0  20 cc c8 95 28 48 25 80  33 29 3d 30 3a 48 25 3d  | ...(H%.3)=0:H%=|
000004e0  48 25 3e 3e 32 3a 4e 25  2b 3d 32 3a ce 0d 02 26  |H%>>2:N%+=2:...&|
000004f0  10 e7 28 48 25 80 32 35  36 29 3d 30 8c 0d 02 30  |..(H%.256)=0...0|
00000500  30 5b 4f 50 54 20 54 25  3a 41 44 44 20 52 25 2c  |0[OPT T%:ADD R%,|
00000510  4f 25 2c 23 28 48 25 80  32 35 35 29 3c 3c 4e 25  |O%,#(H%.255)<<N%|
00000520  3a 5d 3a 48 25 2d 3d 48  25 80 32 35 35 0d 02 3a  |:]:H%-=H%.255..:|
00000530  39 cc 5b 4f 50 54 20 54  25 3a 53 55 42 20 52 25  |9.[OPT T%:SUB R%|
00000540  2c 4f 25 2c 23 28 32 35  36 2d 48 25 80 32 35 35  |,O%,#(256-H%.255|
00000550  29 3c 3c 4e 25 3a 5d 3a  48 25 2b 3d 32 35 36 2d  |)<<N%:]:H%+=256-|
00000560  48 25 80 32 35 35 0d 02  44 05 cd 0d 02 4e 0d cd  |H%.255..D....N..|
00000570  3a 4f 25 3d 52 25 3a ed  0d 02 58 4a e7 48 25 3c  |:O%=R%:...XJ.H%<|
00000580  3e 30 8c f1 22 43 6f 75  6c 64 20 6e 6f 74 20 41  |>0.."Could not A|
00000590  44 52 20 74 6f 20 22 3b  41 25 3b 22 20 69 6e 20  |DR to ";A%;" in |
000005a0  22 3b 49 25 3b 22 20 69  6e 73 74 72 75 63 74 69  |";I%;" instructi|
000005b0  6f 6e 73 20 28 52 25 3d  22 3b 52 25 3b 22 29 22  |ons (R%=";R%;")"|
000005c0  3a e0 0d 02 62 07 3d 54  25 0d 02 6c 05 3a 0d 02  |:...b.=T%..l.:..|
000005d0  76 16 dd a4 72 65 67 69  73 74 65 72 6a 28 4a 25  |v...registerj(J%|
000005e0  2c 4e 25 29 0d 02 80 14  4a 25 21 28 4e 25 3c 3c  |,N%)....J%!(N%<<|
000005f0  32 29 3d 50 25 2d 4a 25  0d 02 8a 07 3d 54 25 0d  |2)=P%-J%....=T%.|
00000600  02 94 05 3a 0d 02 9e 0e  dd f2 61 73 73 65 6d 62  |...:......assemb|
00000610  6c 65 0d 02 a8 16 e3 54  25 3d 30 b8 32 88 32 3a  |le.....T%=0.2.2:|
00000620  50 25 3d 63 6f 64 65 25  0d 02 b2 0b 5b 4f 50 54  |P%=code%....[OPT|
00000630  20 54 25 0d 02 bc 05 3a  0d 02 c6 1e 2e 76 64 75  | T%....:.....vdu|
00000640  76 61 72 73 25 3a 45 51  55 44 20 31 34 38 3a 45  |vars%:EQUD 148:E|
00000650  51 55 44 20 2d 31 0d 02  d0 15 2e 73 63 72 61 64  |QUD -1.....scrad|
00000660  64 72 25 3a 45 51 55 44  20 2d 31 0d 02 da 05 3a  |dr%:EQUD -1....:|
00000670  0d 02 e4 11 2e 72 65 61  64 76 64 75 76 61 72 73  |.....readvduvars|
00000680  25 0d 02 ee 13 41 44 52  20 52 30 2c 76 64 75 76  |%....ADR R0,vduv|
00000690  61 72 73 25 0d 02 f8 13  41 44 52 20 52 31 2c 73  |ars%....ADR R1,s|
000006a0  63 72 61 64 64 72 25 0d  03 02 1d 53 57 49 20 22  |craddr%....SWI "|
000006b0  4f 53 5f 52 65 61 64 56  64 75 56 61 72 69 61 62  |OS_ReadVduVariab|
000006c0  6c 65 73 22 0d 03 0c 0e  4d 4f 56 20 50 43 2c 52  |les"....MOV PC,R|
000006d0  31 34 0d 03 16 05 3a 0d  03 20 12 2e 72 65 61 6c  |14....:.. ..real|
000006e0  63 25 3a 45 51 55 44 20  30 0d 03 2a 12 2e 69 6d  |c%:EQUD 0..*..im|
000006f0  61 67 63 25 3a 45 51 55  44 20 30 0d 03 34 05 3a  |agc%:EQUD 0..4.:|
00000700  0d 03 3e 0b 2e 66 72 61  6d 65 25 0d 03 48 14 53  |..>..frame%..H.S|
00000710  54 4d 46 44 20 52 31 33  21 2c 7b 52 31 34 7d 0d  |TMFD R13!,{R14}.|
00000720  03 52 2b 3b 20 52 30 3d  72 65 61 6c 31 3d 72 65  |.R+; R0=real1=re|
00000730  61 6c 30 5e 32 2d 69 6d  61 67 30 5e 32 2b 72 65  |al0^2-imag0^2+re|
00000740  61 6c 43 20 69 6e 20 41  43 25 0d 03 5c 29 3b 20  |alC in AC%..\); |
00000750  52 31 3d 69 6d 61 67 31  3d 32 2a 72 65 61 6c 30  |R1=imag1=2*real0|
00000760  2a 69 6d 61 67 30 2b 69  6d 61 67 43 20 69 6e 20  |*imag0+imagC in |
00000770  41 43 25 0d 03 66 2b 3b  20 52 32 3d 64 72 65 61  |AC%..f+; R2=drea|
00000780  6c 31 2f 64 58 3d 64 69  6d 61 67 31 2f 64 59 3d  |l1/dX=dimag1/dY=|
00000790  32 2a 72 65 61 6c 30 20  69 6e 20 41 43 25 0d 03  |2*real0 in AC%..|
000007a0  70 2c 3b 20 52 33 3d 64  69 6d 61 67 31 2f 64 58  |p,; R3=dimag1/dX|
000007b0  3d 2d 64 72 65 61 6c 31  2f 64 59 3d 32 2a 69 6d  |=-dreal1/dY=2*im|
000007c0  61 67 30 20 69 6e 20 41  43 25 0d 03 7a 2b 3b 20  |ag0 in AC%..z+; |
000007d0  64 32 72 65 61 6c 31 2f  64 58 32 3d 64 69 6d 61  |d2real1/dX2=dima|
000007e0  67 31 2f 64 58 64 59 3d  2d 64 72 65 61 6c 31 2f  |g1/dXdY=-dreal1/|
000007f0  64 59 32 3d 32 0d 03 84  2c 3b 20 64 32 69 6d 61  |dY2=2...,; d2ima|
00000800  67 31 2f 64 58 32 3d 2d  64 72 65 61 6c 31 2f 64  |g1/dX2=-dreal1/d|
00000810  58 64 59 3d 2d 64 69 6d  61 67 31 2f 64 59 32 3d  |XdY=-dimag1/dY2=|
00000820  30 0d 03 8e 12 3b 20 53  74 61 72 74 20 61 74 20  |0....; Start at |
00000830  30 2c 30 0d 03 98 11 4c  44 52 20 52 30 2c 72 65  |0,0....LDR R0,re|
00000840  61 6c 63 25 0d 03 a2 11  4c 44 52 20 52 31 2c 69  |alc%....LDR R1,i|
00000850  6d 61 67 63 25 0d 03 ac  0d 4d 4f 56 20 52 32 2c  |magc%....MOV R2,|
00000860  23 30 0d 03 b6 0d 4d 4f  56 20 52 33 2c 23 30 0d  |#0....MOV R3,#0.|
00000870  03 c0 16 3b 20 47 6f 20  6c 65 66 74 20 61 6e 64  |...; Go left and|
00000880  20 75 70 20 32 0d 03 ca  29 53 55 42 20 52 30 2c  | up 2...)SUB R0,|
00000890  52 30 2c 52 32 2c 41 53  4c 23 31 3a 53 55 42 20  |R0,R2,ASL#1:SUB |
000008a0  52 31 2c 52 31 2c 52 33  2c 41 53 4c 23 31 0d 03  |R1,R1,R3,ASL#1..|
000008b0  d4 29 41 44 44 20 52 31  2c 52 31 2c 52 32 2c 41  |.)ADD R1,R1,R2,A|
000008c0  53 4c 23 31 3a 53 55 42  20 52 30 2c 52 30 2c 52  |SL#1:SUB R0,R0,R|
000008d0  33 2c 41 53 4c 23 31 0d  03 de 2c 53 55 42 20 52  |3,ASL#1...,SUB R|
000008e0  32 2c 52 32 2c 23 32 2a  32 3c 3c 41 43 25 3a 5c  |2,R2,#2*2<<AC%:\|
000008f0  53 55 42 20 52 33 2c 52  33 2c 23 30 2a 32 3c 3c  |SUB R3,R3,#0*2<<|
00000900  41 43 25 0d 03 e8 2c 41  44 44 20 52 33 2c 52 33  |AC%...,ADD R3,R3|
00000910  2c 23 32 2a 32 3c 3c 41  43 25 3a 5c 53 55 42 20  |,#2*2<<AC%:\SUB |
00000920  52 32 2c 52 32 2c 23 30  2a 32 3c 3c 41 43 25 0d  |R2,R2,#0*2<<AC%.|
00000930  03 f2 3e 53 55 42 20 52  31 2c 52 31 2c 23 32 2a  |..>SUB R1,R1,#2*|
00000940  28 32 2a 32 2a 32 29 3c  3c 41 43 25 2d 31 3a 5c  |(2*2*2)<<AC%-1:\|
00000950  41 44 44 20 52 30 2c 52  30 2c 23 30 2a 28 32 2a  |ADD R0,R0,#0*(2*|
00000960  32 2d 32 2a 32 29 3c 3c  41 43 25 2d 31 0d 03 fc  |2-2*2)<<AC%-1...|
00000970  2f 3b 20 47 6f 20 72 69  67 68 74 20 61 6e 64 20  |/; Go right and |
00000980  64 6f 77 6e 20 68 61 6c  66 20 61 20 70 69 78 65  |down half a pixe|
00000990  6c 20 3d 20 31 3e 3e 53  43 25 2d 31 0d 04 06 31  |l = 1>>SC%-1...1|
000009a0  41 44 44 20 52 30 2c 52  30 2c 52 32 2c 41 53 52  |ADD R0,R0,R2,ASR|
000009b0  23 53 43 25 2d 31 3a 41  44 44 20 52 31 2c 52 31  |#SC%-1:ADD R1,R1|
000009c0  2c 52 33 2c 41 53 52 23  53 43 25 2d 31 0d 04 10  |,R3,ASR#SC%-1...|
000009d0  31 53 55 42 20 52 31 2c  52 31 2c 52 32 2c 41 53  |1SUB R1,R1,R2,AS|
000009e0  52 23 53 43 25 2d 31 3a  41 44 44 20 52 30 2c 52  |R#SC%-1:ADD R0,R|
000009f0  30 2c 52 33 2c 41 53 52  23 53 43 25 2d 31 0d 04  |0,R3,ASR#SC%-1..|
00000a00  1a 38 41 44 44 20 52 32  2c 52 32 2c 23 32 3c 3c  |.8ADD R2,R2,#2<<|
00000a10  41 43 25 2d 28 53 43 25  2d 31 29 3a 5c 41 44 44  |AC%-(SC%-1):\ADD|
00000a20  20 52 33 2c 52 33 2c 23  30 3c 3c 41 43 25 2d 28  | R3,R3,#0<<AC%-(|
00000a30  53 43 25 2d 31 29 0d 04  24 38 53 55 42 20 52 33  |SC%-1)..$8SUB R3|
00000a40  2c 52 33 2c 23 32 3c 3c  41 43 25 2d 28 53 43 25  |,R3,#2<<AC%-(SC%|
00000a50  2d 31 29 3a 5c 41 44 44  20 52 32 2c 52 32 2c 23  |-1):\ADD R2,R2,#|
00000a60  30 3c 3c 41 43 25 2d 28  53 43 25 2d 31 29 0d 04  |0<<AC%-(SC%-1)..|
00000a70  2e 54 53 55 42 20 52 31  2c 52 31 2c 23 32 2a 32  |.TSUB R1,R1,#2*2|
00000a80  3c 3c 41 43 25 2d 28 53  43 25 2d 31 29 2d 28 53  |<<AC%-(SC%-1)-(S|
00000a90  43 25 2d 31 29 2d 31 3a  5c 41 44 44 20 52 30 2c  |C%-1)-1:\ADD R0,|
00000aa0  52 30 2c 23 30 2a 28 31  2d 31 29 3c 3c 41 43 25  |R0,#0*(1-1)<<AC%|
00000ab0  2d 28 53 43 25 2d 31 29  2d 28 53 43 25 2d 31 29  |-(SC%-1)-(SC%-1)|
00000ac0  2d 31 0d 04 38 14 4c 44  52 20 52 31 30 2c 73 63  |-1..8.LDR R10,sc|
00000ad0  72 61 64 64 72 25 0d 04  42 18 41 44 44 20 52 31  |raddr%..B.ADD R1|
00000ae0  32 2c 52 31 30 2c 23 31  32 38 2a 33 32 30 0d 04  |2,R10,#128*320..|
00000af0  4c 14 53 55 42 20 52 31  32 2c 52 31 32 2c 23 33  |L.SUB R12,R12,#3|
00000b00  32 30 0d 04 56 14 41 44  44 20 52 31 32 2c 52 31  |20..V.ADD R12,R1|
00000b10  32 2c 23 31 32 38 0d 04  60 13 4d 4f 56 20 52 31  |2,#128..`.MOV R1|
00000b20  31 2c 23 31 3c 3c 53 43  25 0d 04 6a 0b 2e 79 6c  |1,#1<<SC%..j..yl|
00000b30  6f 6f 70 25 0d 04 74 1a  53 55 42 20 52 31 31 2c  |oop%..t.SUB R11,|
00000b40  52 31 31 2c 23 31 3c 3c  31 36 2b 53 43 25 0d 04  |R11,#1<<16+SC%..|
00000b50  7e 0b 2e 78 6c 6f 6f 70  25 0d 04 88 0f 4d 4f 56  |~..xloop%....MOV|
00000b60  20 52 39 2c 23 32 35 35  0d 04 92 12 43 4d 50 20  | R9,#255....CMP |
00000b70  52 30 2c 23 32 3c 3c 41  43 25 0d 04 9c 14 43 4d  |R0,#2<<AC%....CM|
00000b80  50 4c 54 20 52 31 2c 23  32 3c 3c 41 43 25 0d 04  |PLT R1,#2<<AC%..|
00000b90  a6 0f 42 47 45 20 65 73  63 61 70 65 25 0d 04 b0  |..BGE escape%...|
00000ba0  12 43 4d 4e 20 52 30 2c  23 32 3c 3c 41 43 25 0d  |.CMN R0,#2<<AC%.|
00000bb0  04 ba 14 43 4d 4e 47 54  20 52 31 2c 23 32 3c 3c  |...CMNGT R1,#2<<|
00000bc0  41 43 25 0d 04 c4 0f 42  4c 45 20 65 73 63 61 70  |AC%....BLE escap|
00000bd0  65 25 0d 04 ce 1d 4d 4f  56 20 52 39 2c 52 31 2c  |e%....MOV R9,R1,|
00000be0  41 53 52 23 28 41 43 25  2b 32 29 2d 53 43 25 0d  |ASR#(AC%+2)-SC%.|
00000bf0  04 d8 16 41 44 44 20 52  39 2c 52 39 2c 52 39 2c  |...ADD R9,R9,R9,|
00000c00  41 53 4c 23 32 0d 04 e2  17 53 55 42 20 52 39 2c  |ASL#2....SUB R9,|
00000c10  52 31 32 2c 52 39 2c 41  53 4c 23 36 0d 04 ec 23  |R12,R9,ASL#6...#|
00000c20  4c 44 52 42 20 52 39 2c  5b 52 39 2c 52 30 2c 41  |LDRB R9,[R9,R0,A|
00000c30  53 52 23 28 41 43 25 2b  32 29 2d 53 43 25 5d 0d  |SR#(AC%+2)-SC%].|
00000c40  04 f6 11 53 55 42 53 20  52 39 2c 52 39 2c 23 31  |...SUBS R9,R9,#1|
00000c50  0d 05 00 0f 4d 4f 56 4c  54 20 52 39 2c 23 30 0d  |....MOVLT R9,#0.|
00000c60  05 0a 0c 2e 65 73 63 61  70 65 25 0d 05 14 14 53  |....escape%....S|
00000c70  54 52 42 20 52 39 2c 5b  52 31 30 5d 2c 23 31 0d  |TRB R9,[R10],#1.|
00000c80  05 1e 1e 3b 20 52 69 67  68 74 20 61 20 70 69 78  |...; Right a pix|
00000c90  65 6c 20 3d 20 31 3e 3e  53 43 25 2d 32 0d 05 28  |el = 1>>SC%-2..(|
00000ca0  31 41 44 44 20 52 30 2c  52 30 2c 52 32 2c 41 53  |1ADD R0,R0,R2,AS|
00000cb0  52 23 53 43 25 2d 32 3a  41 44 44 20 52 31 2c 52  |R#SC%-2:ADD R1,R|
00000cc0  31 2c 52 33 2c 41 53 52  23 53 43 25 2d 32 0d 05  |1,R3,ASR#SC%-2..|
00000cd0  32 38 41 44 44 20 52 32  2c 52 32 2c 23 32 3c 3c  |28ADD R2,R2,#2<<|
00000ce0  41 43 25 2d 28 53 43 25  2d 32 29 3a 5c 41 44 44  |AC%-(SC%-2):\ADD|
00000cf0  20 52 33 2c 52 33 2c 23  30 3c 3c 41 43 25 2d 28  | R3,R3,#0<<AC%-(|
00000d00  53 43 25 2d 32 29 0d 05  3c 4c 41 44 44 20 52 30  |SC%-2)..<LADD R0|
00000d10  2c 52 30 2c 23 32 3c 3c  41 43 25 2d 28 53 43 25  |,R0,#2<<AC%-(SC%|
00000d20  2d 32 29 2d 28 53 43 25  2d 32 29 2d 31 3a 5c 41  |-2)-(SC%-2)-1:\A|
00000d30  44 44 20 52 31 2c 52 31  2c 23 30 3c 3c 41 43 25  |DD R1,R1,#0<<AC%|
00000d40  2d 28 53 43 25 2d 32 29  2d 28 53 43 25 2d 32 29  |-(SC%-2)-(SC%-2)|
00000d50  2d 31 0d 05 46 17 41 44  44 53 20 52 31 31 2c 52  |-1..F.ADDS R11,R|
00000d60  31 31 2c 23 31 3c 3c 31  36 0d 05 50 0e 42 4c 45  |11,#1<<16..P.BLE|
00000d70  20 78 6c 6f 6f 70 25 0d  05 5a 0c 3b 20 4c 65 66  | xloop%..Z.; Lef|
00000d80  74 20 34 0d 05 64 29 53  55 42 20 52 30 2c 52 30  |t 4..d)SUB R0,R0|
00000d90  2c 52 32 2c 41 53 4c 23  32 3a 53 55 42 20 52 31  |,R2,ASL#2:SUB R1|
00000da0  2c 52 31 2c 52 33 2c 41  53 4c 23 32 0d 05 6e 2c  |,R1,R3,ASL#2..n,|
00000db0  53 55 42 20 52 32 2c 52  32 2c 23 32 2a 34 3c 3c  |SUB R2,R2,#2*4<<|
00000dc0  41 43 25 3a 5c 53 55 42  20 52 33 2c 52 33 2c 23  |AC%:\SUB R3,R3,#|
00000dd0  30 2a 34 3c 3c 41 43 25  0d 05 78 34 41 44 44 20  |0*4<<AC%..x4ADD |
00000de0  52 30 2c 52 30 2c 23 32  2a 34 2a 34 3c 3c 41 43  |R0,R0,#2*4*4<<AC|
00000df0  25 2d 31 3a 5c 41 44 44  20 52 31 2c 52 31 2c 23  |%-1:\ADD R1,R1,#|
00000e00  30 2a 34 2a 34 3c 3c 41  43 25 2d 31 0d 05 82 1d  |0*4*4<<AC%-1....|
00000e10  3b 20 44 6f 77 6e 20 61  20 70 69 78 65 6c 20 3d  |; Down a pixel =|
00000e20  20 31 3e 3e 53 43 25 2d  32 0d 05 8c 31 53 55 42  | 1>>SC%-2...1SUB|
00000e30  20 52 31 2c 52 31 2c 52  32 2c 41 53 52 23 53 43  | R1,R1,R2,ASR#SC|
00000e40  25 2d 32 3a 41 44 44 20  52 30 2c 52 30 2c 52 33  |%-2:ADD R0,R0,R3|
00000e50  2c 41 53 52 23 53 43 25  2d 32 0d 05 96 38 53 55  |,ASR#SC%-2...8SU|
00000e60  42 20 52 33 2c 52 33 2c  23 32 3c 3c 41 43 25 2d  |B R3,R3,#2<<AC%-|
00000e70  28 53 43 25 2d 32 29 3a  5c 41 44 44 20 52 32 2c  |(SC%-2):\ADD R2,|
00000e80  52 32 2c 23 30 3c 3c 41  43 25 2d 28 53 43 25 2d  |R2,#0<<AC%-(SC%-|
00000e90  32 29 0d 05 a0 4c 53 55  42 20 52 30 2c 52 30 2c  |2)...LSUB R0,R0,|
00000ea0  23 32 3c 3c 41 43 25 2d  28 53 43 25 2d 32 29 2d  |#2<<AC%-(SC%-2)-|
00000eb0  28 53 43 25 2d 32 29 2d  31 3a 5c 53 55 42 20 52  |(SC%-2)-1:\SUB R|
00000ec0  31 2c 52 31 2c 23 30 3c  3c 41 43 25 2d 28 53 43  |1,R1,#0<<AC%-(SC|
00000ed0  25 2d 32 29 2d 28 53 43  25 2d 32 29 2d 31 0d 05  |%-2)-(SC%-2)-1..|
00000ee0  aa 1d 41 44 44 20 52 31  30 2c 52 31 30 2c 23 33  |..ADD R10,R10,#3|
00000ef0  32 30 2d 28 31 3c 3c 53  43 25 29 0d 05 b4 13 53  |20-(1<<SC%)....S|
00000f00  55 42 53 20 52 31 31 2c  52 31 31 2c 23 31 0d 05  |UBS R11,R11,#1..|
00000f10  be 0e 42 47 54 20 79 6c  6f 6f 70 25 0d 05 c8 13  |..BGT yloop%....|
00000f20  4c 44 4d 46 44 20 52 31  33 21 2c 7b 50 43 7d 0d  |LDMFD R13!,{PC}.|
00000f30  05 d2 05 3a 0d 05 dc 35  5d 3a e7 50 25 3e 63 6f  |...:...5]:.P%>co|
00000f40  64 65 25 2b 63 6f 64 65  6c 65 6e 25 8c 85 32 35  |de%+codelen%..25|
00000f50  35 2c 22 43 6f 64 65 20  69 73 6e 27 74 20 62 69  |5,"Code isn't bi|
00000f60  67 20 65 6e 6f 75 67 68  22 0d 05 e6 05 ed 0d 05  |g enough".......|
00000f70  f0 05 e1 0d ff                                    |.....|
00000f75