Home » Archimedes archive » Acorn User » AU 1997-06 B.adf » Regulars » StarInfo/Vlietinck/!Trackman2/Trackman2

StarInfo/Vlietinck/!Trackman2/Trackman2

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-06 B.adf » Regulars
Filename: StarInfo/Vlietinck/!Trackman2/Trackman2
Read OK:
File size: 358A bytes
Load address: 0000
Exec address: 0000
File contents
   10REM >Trackman2
   20REM By Jan Vlietinck
   30ON ERROR:REPORT:PRINT ERL:END
   40
   50PROCinit
   60REPEAT
   70REPEAT
   80MOUSE X%,Y%,Z%
   90IF Z%=4 THEN W%+=4
  100IF Z%=1 THEN W%-=4:IF W%<16:W%=16
  110RECTANGLE X%,Y%,W%*(1-1/16)*4/3,W%*(1-1/16)
  120WAIT
  130SYS "ColourTrans_WritePalette",-1,,pal%
  140RECTANGLE X%,Y%,W%*(1-1/16)*4/3,W%*(1-1/16)
  150K=INKEY(0)
  160CASE K OF
  170WHEN 67, 99: PROCcycle_down:                  REM c,C
  180WHEN 68, 100: PROCcycle_up:                   REM d,D
  190WHEN 73,105:INPUT  "Iterations ",IT:IF IT<>0 THEN ITER=IT: REM i,I
  200WHEN 82, 114: OX=-2.3:OY=-2*0.75:S=3/480
  210!OXHD=OX*2^29:!OXLD=0
  220!OYHD=OY*2^29:!OYLD=0
  230!SHD=S*2^29:!SLD=0
  240!XD=0:!YD=0:!WD=1024
  250PROCdraw:   REM r,R
  260WHEN 83, 115: OSCLI "SCREENSAVE <trackman2$dir>.mandel"+STR$name:name+=1:REM s,S
  270ENDCASE
  280UNTIL Z%=2
  290OX=OX+X%*S/2
  300OY=OY+Y%*S/2
  310S=S*W%/1024
  320!XD=X%/2
  330!YD=Y%/2
  340!WD=W%
  350PROCdraw
  360UNTIL 0
  370END
  380
  390DEF PROCdraw
  400CLG
  410!DD=ITER
  420CALL set
  430A%=0:B%=0:C%=0
  440TIME=0
  450CALL begin
  460IF (!SHD=0 AND !SLD=1) VDU7
  470VDU 30
  480*FX 5
  490CALL filler
  500VDU 5:MOVE 1280*(1-84/Col),960*(1-2/Row)
  510GCOL 63:PRINT TIME/100:VDU 4
  520OFF:GCOL 3,63
  530*FX 5
  540ENDPROC
  550
  560
  570DEF PROCset_palette
  580DIM pal% 256*4
  590P1=2*PI/3
  600FOR c=1 TO 255
  610P=c/256*2*PI
  620red%=  128*(1+COS(P))
  630green%=128*(1+COS(2*P+P1))
  640blue%= 128*(1+COS(P-P1))
  650pal%!(4*c)=((blue%*256+green%)*256+red%)<<8
  660NEXT
  670!pal%=0
  680SYS "ColourTrans_WritePalette",-1,,pal%
  690ENDPROC
  700
  710DEF PROCcycle_up
  720FOR J%=1 TO 2
  730T%=pal%!4
  740FOR I%=1 TO 254
  750pal%!(4*I%)=pal%!(4*I%+4)
  760NEXT
  770pal%!(4*255)=T%
  780NEXT
  790ENDPROC
  800
  810DEF PROCcycle_down
  820FOR J%=1 TO 2
  830T%=pal%!(4*255)
  840FOR I%=254 TO 1 STEP -1
  850pal%!(4*I%+4)=pal%!(4*I%)
  860NEXT
  870pal%!4=T%
  880NEXT
  890ENDPROC
  900
  910DEF PROCinit
  920DIM Q% 700000
  930PROCtest_forSA
  940CALL test_forSA
  950IF !poke=0 THEN StrongARM=TRUE ELSE StrongARM=FALSE
  960Row=480:Col=640:Shf=7
  970PROCASS
  980PROCASS2
  990CALL set_mode
 1000PROCset_palette
 1010FOR I=1 TO 20:PROCcycle_down:NEXT
 1020name=0
 1030GCOL 3,63
 1040*POINTER
 1050MOUSE ON
 1060VDU 28,Col/8-12,Row/8-1,Col/8-1,0
 1070OX=-2.3:OY=-2*0.75:S=3/480
 1080!OXHD=OX*2^29:!OXLD=0
 1090!OYHD=OY*2^29:!OYLD=0
 1100!SHD=S*2^29:!SLD=0
 1110!XD=0:!YD=0:!WD=1024
 1120ITER=200
 1130SYS "ColourTrans_WritePalette",-1,,pal%
 1140PROCdraw
 1150W%=256
 1160ENDPROC
 1170
 1180DEF PROCtest_forSA
 1190FOR PASS=0 TO 2 STEP 2
 1200P%=Q%
 1210[OPT PASS
 1220.poke DCD 0
 1230.test_forSA
 1240MOV 2,#2
 1250.modify
 1260MOV 3,#0
 1270LDR 1,modify
 1280ORR 1,1,#1
 1290STR 1,modify
 1300SUBS 2,2,#1
 1310BNE modify
 1320STR 3,poke
 1330MOV PC,R14
 1340]
 1350NEXT
 1360Q%=P%
 1370ENDPROC
 1380
 1390DEF PROCASS2
 1400T=0:K=1:XX=2:YY=7:D=8:X=5:Y=6:A=3:B=4:SCR=9:S=10:CO=11:C=12
 1410STAK=2:W=7
 1420FOR PASS=0 TO 2 STEP 2
 1430P%=Q%
 1440[OPT PASS
 1450.screen1 EQUD 148:EQUD -1
 1460.screen  EQUD 0
 1470.set
 1480  ADR R0,screen1
 1490  ADR R1,screen
 1500  SWI "OS_ReadVduVariables"
 1510MOV PC,R14
 1520
 1530.mode
 1540 DCD 1
 1550 DCD 640
 1560 DCD 480
 1570 DCD 3
 1580 DCD -1
 1590 DCD 0:DCD 128
 1600 DCD 3:DCD 255
 1610 DCD -1
 1620.set_mode
 1630MOV R0,#0
 1640ADR R1,mode
 1650SWI "OS_ScreenMode"
 1660SWI "OS_RemoveCursors"
 1670MOV pc,r14
 1680
 1690.screen_size DCD Row*Col
 1700.filler
 1710LDR SCR,screen
 1720ADD K,SCR,#Row*Col
 1730.vulloop
 1740  LDR CO,[SCR]
 1750  ANDS X,CO,#&000000FF
 1760  MOVNE T,X
 1770  CMP T,#255
 1780  MOVEQ T,#0
 1790  MOV C,T
 1800  ANDS X,CO,#&0000FF00
 1810  MOVNE T,X,LSR #8
 1820  CMP T,#255
 1830  ORRNE C,C,T,LSL #8
 1840  ANDS X,CO,#&00FF0000
 1850  MOVNE T,X,LSR #16
 1860  CMP T,#255
 1870  ORRNE C,C,T,LSL #16
 1880  ANDS X,CO,#&FF000000
 1890  MOVNE T,X,LSR #24
 1900  CMP T,#255
 1910  ORRNE C,C,T,LSL #24
 1920  STR C,[SCR],#4
 1930  CMP SCR,K
 1940BLO vulloop
 1950MOV PC,R14
 1960
 1970.begin
 1980STMFD 13!,{14}
 1990  BL calc
 2000  LDR SCR,screen
 2010  ADD SCR,SCR,#Row*Col
 2020  SUB SCR,SCR,#Col
 2030  ADR STAK,stack
 2040  MOV A,#0
 2050  MOV B,#0
 2060  BL iteration
 2070  STRB T,[SCR]
 2080  MOV S,#0
 2090  STMIA (STAK)!,{S}
 2100  .while_1
 2110    ADR T,stack
 2120    CMP STAK,T
 2130      BLNE track
 2140  BNE while_1
 2150LDMFD 13!,{PC}
 2160
 2170.track
 2180STMFD 13!,{14}
 2190  LDMDB (STAK)!,{S}
 2200  MOV T,#1024
 2210  SUB T,T,#1
 2220  AND X,T,S
 2230  AND Y,T,S,LSR #10
 2240  MOV C,S,LSR #20
 2250  AND C,C,#255
 2260  MOV D,S,LSR #28
 2270  AND D,D,#7
 2280  ADD S,Y,Y,LSL #2
 2290REMDD S,Y,S,LSL #3
 2300  SUB S,X,S,LSL #Shf
 2310  LDRB K,[SCR,S]
 2320  MOV W,#0
 2330.while_2
 2340  ADD D,D,#5
 2350  CMP K,#255
 2360    BICEQ D,D,#1
 2370  MOV CO,#8
 2380  .loop
 2390    SUBS CO,CO,#1
 2400      LDMEQFD 13!,{PC}^
 2410    MOV A,X
 2420    MOV B,Y
 2430    ADD D,D,#1
 2440    CMP K,#255
 2450      ADDEQ D,D,#1
 2460    AND D,D,#%111
 2470    CMP D,#0
 2480      ADDHS A,X,#1
 2490    CMP D,#1
 2500      ADDHS B,Y,#1
 2510    CMP D,#2
 2520      SUBHS A,A,#1
 2530    CMP D,#3
 2540      SUBHS A,A,#1
 2550    CMP D,#4
 2560      SUBHS B,B,#1
 2570    CMP D,#5
 2580      SUBHS B,B,#1
 2590    CMP D,#6
 2600      ADDHS A,A,#1
 2610    CMP D,#7
 2620      ADDHS A,A,#1
 2630    CMP A,#Col
 2640  BHS loop
 2650    CMP B,#Row
 2660  BHS loop
 2670    ADD S,B,B,LSL #2
 2680    SUB S,A,S,LSL #Shf
 2690    LDRB T,[SCR,S]
 2700    CMP T,K
 2710      ADDEQ W,W,#1
 2720    CMP CO,#5
 2730      BEQ over
 2740    CMP W,#8
 2750      LDMHIFD  13!,{PC}^
 2760    .over
 2770    CMP T,#0
 2780    BNE endif_3
 2790      BL iteration
 2800      STRB T,[S,SCR]
 2810      CMP T,K
 2820        MOVEQ W,#0
 2830      BEQ endif_2
 2840        CMP T,C
 2850        BEQ endif_1
 2860          ADD S,A,B,LSL #10
 2870          ADD S,S,C,LSL #20
 2880          ADD S,S,D,LSL #28
 2890          STMIA (STAK)!,{S}
 2900          MOV C,T
 2910        .endif_1
 2920      .endif_2
 2930    .endif_3
 2940    CMP T,K
 2950  BNE loop
 2960  MOV X,A
 2970  MOV Y,B
 2980BAL while_2
 2990.stack
 3000]
 3010NEXT
 3020ENDPROC
 3030
 3040
 3050DEF PROCASS
 3060A=3:B=4:G=5:S=7:U=8:V=9::M=11:N=12
 3070T=0:H=1:D=2:AH=3:BH=4:AL=5:BL=6:UL=7:UH=8:VL=9:VH=10
 3080SL=11:SH=12:TL=13:TH=14
 3090
 3100FOR PASS=0 TO 2 STEP 2
 3110P%=Q%
 3120[OPT PASS
 3130.DD EQUD 0
 3140.OXD EQUD 0
 3150.OYD EQUD 0
 3160.FD EQUD 0
 3170.iteration
 3180STMFD 13!,{1-12,14}
 3190  LDR D,SHD
 3200  CMP D,#4
 3210  BLE iterationH
 3220  LDR U,OXHD
 3230  LDR V,OYHD
 3240  MLA A,D,A,U
 3250  MLA B,D,B,V
 3260  MOVS T,D,LSR #16
 3270  BNE iterationL
 3280  MOV T,#0
 3290  STR T,OXLD
 3300  STR T,OYLD
 3310  STR T,SLD
 3320  MOV U,A
 3330  MOV V,B
 3340  LDR D,DD
 3350  BIC D,D,#1
 3360 ]
 3370 IF StrongARM  THEN
 3380 [ OPT PASS
 3390  FNSMULL(G,M,U,U)
 3400  BAL in_it
 3410  .while_2
 3420  FNSMULL(G,M,U,U)
 3430  ADD V,B,V,LSL #1+3
 3440  ADD V,V,H,LSR #28
 3450.in_it
 3460  FNSMULL(H,N,V,V)
 3470  MOV G,G,LSR #29
 3480  ADD S,G,M,LSL #3
 3490  ADD M,M,N
 3500  CMP M,#4<<(29-3)
 3510  BHS break
 3520  FNSMULL(G,V,U,V)
 3530  MOV H,H,LSR #29
 3540  ADD T,H,N,LSL #3
 3550  SUB U,S,T
 3560  ADD U,A,U
 3570  FNSMULL(H,M,U,U)
 3580  ADD V,B,V,LSL #1+3
 3590  ADD V,V,G,LSR #28
 3600  FNSMULL(G,N,V,V)
 3610  MOV H,H,LSR #29
 3620  ADD S,H,M,LSL #3
 3630  ADD M,M,N
 3640  CMP M,#4<<(29-3)
 3650  BHS break1
 3660  FNSMULL(H,V,U,V)
 3670  MOV G,G,LSR #29
 3680  ADD T,G,N,LSL #3
 3690  SUB U,S,T
 3700  ADD U,A,U
 3710  SUBS D,D,#2
 3720  BNE while_2
 3730MOV T,#255
 3740LDMFD 13!,{1-12,PC}
 3750.break1
 3760SUB D,D,#1
 3770.break
 3780  .while_3
 3790    CMP D,#254
 3800    SUBHI D,D,#254
 3810  BHI while_3
 3820  MOV T,D
 3830  LDMFD 13!,{1-12,PC}
 3840 ]
 3850 ELSE
 3860 [ OPT PASS
 3870 .while_2
 3880    MOVS H,U
 3890      RSBMI H,H,#0
 3900    MOV M,H,LSR #16
 3910    BIC N,H,M,LSL #16
 3920    MUL N,M,N
 3930    CMP H,#2<<29
 3940      BHS break
 3950    MOVS H,V
 3960    MUL T,M,M
 3970      RSBMI H,H,#0
 3980    MOV M,H,LSR #16
 3990    MOV T,T,LSL #3
 4000    ADD S,T,N,LSR #12
 4010    BIC N,H,M,LSL #16
 4020    MUL N,M,N
 4030    CMP H,#2<<29
 4040      BHS break
 4050    MUL T,M,M
 4060    ADDS M,U,V
 4070      RSBMI M,M,#0
 4080    MOV T,T,LSL #3
 4090    ADD T,T,N,LSR #12
 4100    ADD H,S,T
 4110    CMP H,#4<<29
 4120      BHS break
 4130    MOV N,M,LSR #16
 4140    MUL U,N,N
 4150    BIC M,M,N,LSL #16
 4160    SUBS D,D,#1
 4170    MOV U,U,LSL #3
 4180    MUL V,M,N
 4190    SUB H,U,H
 4200    SUB U,S,T
 4210    ADD U,U,A
 4220    ADD H,H,V,LSR #12
 4230    ADD V,B,H
 4240  BNE while_2
 4250MOV T,#255
 4260LDMFD 13!,{1-12,PC}
 4270.break
 4280  .while_3
 4290    CMP D,#254
 4300    SUBHI D,D,#254
 4310  BHI while_3
 4320  MOV T,D
 4330  LDMFD 13!,{1-12,PC}
 4340]
 4350ENDIF
 4360[ OPT PASS
 4370.iterationL
 4380  MOV A,A,ASR #16
 4390  MOV B,B,ASR #16
 4400  MOV U,A
 4410  MOV V,B
 4420  LDR D,DD
 4430  BIC D,D,#3
 4440  MUL T,V,V
 4450BAL win
 4460  .while_2L
 4470    MUL T,V,V
 4480    SUB U,S,H,LSL #1
 4490    ADD U,A,U,ASR #13
 4500.win
 4510    MLA S,U,U,T
 4520    CMP S,#4<< 26
 4530    MUL H,U,V
 4540    BHS breakL
 4550    ADD V,B,H,ASR #12
 4560    MUL H,V,V
 4570    SUB U,S,T,LSL #1
 4580    ADD U,A,U,ASR #13
 4590    MLA S,U,U,H
 4600    CMP S,#4<< 26
 4610    MUL T,U,V
 4620    BHS break2L
 4630    ADD V,B,T,ASR #12
 4640    MUL T,V,V
 4650    SUB U,S,H,LSL #1
 4660    ADD U,A,U,ASR #13
 4670    MLA S,U,U,T
 4680    CMP S,#4<< 26
 4690    MUL H,U,V
 4700    BHS break3L
 4710    ADD V,B,H,ASR #12
 4720    MUL H,V,V
 4730    SUB U,S,T,LSL #1
 4740    ADD U,A,U,ASR #13
 4750    MLA S,U,U,H
 4760    CMP S,#4<< 26
 4770    BHS break4L
 4780    MUL T,U,V
 4790    ADD V,B,T,ASR #12
 4800    SUBS D,D,#4
 4810  BNE while_2L
 4820MOV T,#255
 4830LDMFD 13!,{1-12,PC}
 4840.break4L
 4850 SUBS D,D,#1
 4860.break3L
 4870 SUBS D,D,#1
 4880.break2L
 4890 SUBS D,D,#1
 4900.breakL
 4910  .while_3L
 4920    CMP D,#254
 4930    SUBHI D,D,#254
 4940  BHI while_3L
 4950  MOV T,D
 4960  LDMFD 13!,{1-12,PC}
 4970  
 4980.WD DCD 0
 4990.XD DCD 0
 5000.YD DCD 0
 5010.OXHD DCD 0
 5020.OXLD DCD 0
 5030.OYHD DCD 0
 5040.OYLD DCD 0
 5050.SHD  DCD 0
 5060.SLD  DCD 0  
 5070.calc
 5080STMFD 13!,{0-12,14}
 5090STR 13,SPD
 5100LDR UH,OXHD
 5110LDR UL,OXLD
 5120LDR VH,OYHD
 5130LDR VL,OYLD
 5140LDR SH,SHD
 5150LDR SL,SLD
 5160LDR T,XD   ; ox+=x*s
 5170FNUMULL(TL,TH,SL,T)
 5180FNUMULL(T,H,SH,T)
 5190ADD TH,TH,T
 5200ADDS UL,TL,UL
 5210ADC  UH,TH,UH
 5220STR UH,OXHD
 5230STR UL,OXLD
 5240LDR T,YD  ;oy+=y*s
 5250FNUMULL(TL,TH,SL,T)
 5260FNUMULL(T,H,SH,T)
 5270ADD TH,TH,T
 5280ADDS VL,TL,VL
 5290ADC  VH,TH,VH
 5300STR VH,OYHD
 5310STR VL,OYLD
 5320LDR T,WD  ;s=s*w/1024
 5330FNUMULL(TL,TH,SL,T)
 5340FNUMULL(T,H,SH,T)
 5350ADD TH,TH,T
 5360MOV TL,TL,LSR #10
 5370ORR TL,TL,TH,LSL #22
 5380MOV TH,TH,LSR #10
 5390CMP TH,#0
 5400CMPEQ TL,#0
 5410MOVEQ TL,#1
 5420STR TH,SHD
 5430STR TL,SLD
 5440LDR 13,SPD
 5450LDMFD 13!,{0-12,PC}
 5460] 
 5470
 5480IF StrongARM THEN
 5490[OPT PASS
 5500.SPD DCD 0
 5510.iterationH
 5520STR 13,SPD
 5530LDR SL,SLD
 5540LDR SH,SHD
 5550LDR UL,OXLD
 5560LDR UH,OXHD
 5570LDR VL,OYLD
 5580LDR VH,OYHD
 5590FNUMULL(TL,TH,SL,A)
 5600FNUMULL(T,H,SH,A)
 5610ADD TH,TH,T
 5620ADDS AL,UL,TL
 5630ADC  AH,UH,TH
 5640FNUMULL(TL,TH,SL,B)
 5650FNUMULL(T,H,SH,B)
 5660ADD TH,TH,T
 5670ADDS BL,VL,TL
 5680ADC  BH,VH,TH
 5690LDR D,DD
 5700MOV UL,AL:MOV UH,AH
 5710MOV VL,#0:MOV VH,#0
 5720MOV TL,#0:MOV TH,#0
 5730.loopH
 5740RSBS T,UL,#0
 5750RSCS H,UH,#0
 5760MOVMI T,UL
 5770MOVMI H,UH
 5780FNUMULL(SL,SH,H,H)
 5790SUBS VL,VL,TL
 5800SBC  VH,VH,TH
 5810ADDS VL,VL,BL
 5820ADC  VH,VH,BH
 5830CMP SH,#4<<(29-3)
 5840BHS breakH
 5850FNUMULL(T,H,T,H)
 5860MOV SH,SH,LSL #3
 5870ORR SH,SH,SL,LSR #29
 5880MOV SL,SL,LSL #3
 5890MOV T,T,LSR #28
 5900ADD T,T,H,LSL #4
 5910ADDS SL,SL,T
 5920ADC  SH,SH,H,LSR #28
 5930RSBS T,VL,#0
 5940RSCS H,VH,#0
 5950MOVMI H,VH
 5960FNUMULL(TL,TH,H,H)
 5970MOVMI T,VL
 5980ADDS VL,VL,UL
 5990ADCS VH,VH,UH
 6010CMP TH,#4<<(29-3)
 6020BHS breakH
 6030FNUMULL(T,H,T,H)
 6040MOV TH,TH,LSL #3
 6050ORR TH,TH,TL,LSR #29
 6060MOV TL,TL,LSL #3
 6070MOV T,T,LSR #28
 6080ADD T,T,H,LSL #4
 6090ADDS TL,TL,T
 6100ADC  TH,TH,H,LSR #28
 6110RSBS T,VL,#0
 6120RSCS H,VH,#0
 6130MOVMI T,VL
 6140MOVMI H,VH
 6150FNUMULL(VL,VH,H,H)
 6160SUBS UL,SL,TL
 6170SBC  UH,SH,TH
 6180ADDS TL,SL,TL
 6190ADC  TH,SH,TH
 6200ADDS UL,UL,AL
 6210ADC  UH,UH,AH
 6220FNUMULL(T,H,T,H)
 6230CMP  TH,#4<<29
 6240BHS  breakH
 6250MOV VH,VH,LSL #3
 6260ORR VH,VH,VL,LSR #29
 6270MOV VL,VL,LSL #3
 6280MOV T,T,LSR #28
 6290ADD T,T,H,LSL #4
 6300ADDS VL,VL,T
 6310ADC  VH,VH,H,LSR #28
 6320SUBS D,D,#1
 6330BNE loopH
 6340MOV 0,#255
 6350LDR 13,SPD
 6360LDMFD 13!,{1-12,PC}
 6370.breakH
 6380 .whileH
 6390   CMP D,#254
 6400   SUBHI D,D,#254
 6410BHI whileH
 6420MOV 0,D
 6430LDR 13,SPD
 6440LDMFD 13!,{1-12,PC}
 6450]
 6460ELSE 
 6470[OPT PASS
 6480.SPD DCD 0
 6490.ALD DCD 0:DCD 0:DCD 0:DCD 0
 6500.iterationH
 6510STR 13,SPD
 6520LDR SL,SLD
 6530LDR SH,SHD
 6540LDR UL,OXLD
 6550LDR UH,OXHD
 6560LDR VL,OYLD
 6570LDR VH,OYHD
 6580MOV H,B
 6590MUL T,SH,A
 6600MOV TL,A
 6610FNUMULL(TL,TH,SL,TL)
 6620ADD TH,TH,T
 6630ADDS UL,UL,TL
 6640ADC  UH,UH,TH
 6650MUL T,SH,H
 6660FNUMULL(TL,TH,SL,H)
 6670ADD TH,TH,T
 6680ADDS BL,VL,TL
 6690ADC  BH,VH,TH
 6700MOV AL,UL
 6710MOV AH,UH
 6720ADR T,ALD:STMIA T,{AL,AH,BL,BH}
 6730LDR D,DD
 6740MOV UL,AL:MOV UH,AH
 6750MOV VL,BL:MOV VH,BH
 6760.loopH
 6770RSBS T,UL,#0
 6780RSCS H,UH,#0
 6790MOVMI T,UL
 6800MOVMI H,UH
 6810FNUMULL(SL,SH,H,H)
 6820CMP SH,#4<<(29-3)
 6830BHS breakH
 6840MOV SH,SH,LSL #3
 6850ORR SH,SH,SL,LSR #29
 6860MOV SL,SL,LSL #3
 6870FNUMULL(T,H,T,H)
 6880MOV T,T,LSR #28
 6890ADD T,T,H,LSL #4
 6900ADDS SL,SL,T
 6910ADC  SH,SH,H,LSR #28
 6920RSBS T,VL,#0
 6930RSCS H,VH,#0
 6940MOVMI T,VL
 6950MOVMI H,VH
 6960FNUMULL(TL,TH,H,H)
 6970CMP TH,#4<<(29-3)
 6980BHS breakH
 6990MOV TH,TH,LSL #3
 7000ORR TH,TH,TL,LSR #29
 7010MOV TL,TL,LSL #3
 7020FNUMULL(T,H,T,H)
 7030MOV T,T,LSR #28
 7040ADD T,T,H,LSL #4
 7050ADDS TL,TL,T
 7060ADC  TH,TH,H,LSR #28
 7070ADDS VL,VL,UL
 7080ADC  VH,VH,UH
 7090SUBS UL,SL,TL
 7100SBC  UH,SH,TH
 7110ADDS TL,SL,TL
 7120ADC  TH,SH,TH
 7140CMP  TH,#4<<29
 7150BHS  breakH
 7160RSBS T,VL,#0
 7170RSCS H,VH,#0
 7180MOVMI T,VL
 7190MOVMI H,VH
 7200FNUMULL(SL,SH,H,H)
 7210MOV SH,SH,LSL #3
 7220ORR SH,SH,SL,LSR #29
 7230MOV SL,SL,LSL #3
 7240FNUMULL(T,H,T,H)
 7250MOV T,T,LSR #28
 7260ADD T,T,H,LSL #4
 7270ADDS SL,SL,T
 7280ADC  SH,SH,H,LSR #28
 7290SUBS VL,SL,TL
 7300SBC  VH,SH,TH
 7310ADR T,ALD:LDMIA T,{AL,AH,BL,BH}
 7320ADDS UL,UL,AL
 7330ADC  UH,UH,AH
 7340ADDS VL,VL,BL
 7350ADC  VH,VH,BH
 7360SUBS D,D,#1
 7370BNE loopH
 7380MOV 0,#255
 7390LDR 13,SPD
 7400LDMFD 13!,{1-12,PC}
 7410.breakH
 7420 .whileH
 7430   CMP D,#254
 7440   SUBHI D,D,#254
 7450BHI whileH
 7460MOV 0,D
 7470LDR 13,SPD
 7480LDMFD 13!,{1-12,PC}^
 7490]
 7500ENDIF
 7510NEXT PASS
 7520Q%=P%
 7530ENDPROC
 7540
 7550
 7560DEF FNSMULL(Rl,Rh,Rm,Rs)
 7570[OPT PASS
 7580DCD  &E0C00090+(Rh<<16)+(Rl<<12)+(Rs<<8)+Rm
 7590]
 7600=""
 7610
 7620DEF FNUMULL(Rl,Rh,Rm,Rs)
 7630IF  StrongARM  THEN
 7640[OPT PASS
 7650DCD  &E0800090+(Rh<<16)+(Rl<<12)+(Rs<<8)+Rm
 7660]
 7670ELSE
 7680IF Rs<>Rm  THEN
 7690[OPT PASS
 7700MOV AH,Rm,LSR #16
 7710MOV BH,Rs,LSR #16
 7720EOR AL,Rm,AH,LSL #16
 7730EOR BL,Rs,BH,LSL #16
 7740MUL Rh,AH,BH
 7750MUL Rl,AL,BL
 7760MUL AH,BL,AH
 7770MUL BH,AL,BH
 7780ADDS Rl,Rl,BH,LSL #16
 7790ADC  Rh,Rh,BH,LSR #16
 7800ADDS Rl,Rl,AH,LSL #16
 7810ADC  Rh,Rh,AH,LSR #16
 7820]
 7830ELSE
 7840[OPT PASS
 7850MOV AH,Rm,LSR #16
 7860EOR AL,Rm,AH,LSL #16
 7870MUL Rh,AH,AH
 7880MUL Rl,AL,AL
 7890MUL AH,AL,AH
 7900ADDS Rl,Rl,AH,LSL #17
 7910ADC  Rh,Rh,AH,LSR #15
 7920]
 7930ENDIF
 7940ENDIF
 7950=""
 7960
 7970
 7980
 7990

� >Trackman2
� By Jan Vlietinck
� �:�:� �:�
(
2	�init
<�
F�
Pȗ X%,Y%,Z%
Z� Z%=4 � W%+=4
d � Z%=1 � W%-=4:� W%<16:W%=16
n(ȓ X%,Y%,W%*(1-1/16)*4/3,W%*(1-1/16)
xȖ
�*ș "ColourTrans_WritePalette",-1,,pal%
�(ȓ X%,Y%,W%*(1-1/16)*4/3,W%*(1-1/16)
�
K=�(0)
�
Ȏ K �
�1� 67, 99: �cycle_down:                  � c,C
�1� 68, 100: �cycle_up:                   � d,D
�9� 73,105:�  "Iterations ",IT:� IT<>0 � ITER=IT: � i,I
�)� 82, 114: OX=-2.3:OY=-2*0.75:S=3/480
�!OXHD=OX*2^29:!OXLD=0
�!OYHD=OY*2^29:!OYLD=0
�!SHD=S*2^29:!SLD=0
�!XD=0:!YD=0:!WD=1024
��draw:   � r,R
H� 83, 115: � "SCREENSAVE <trackman2$dir>.mandel"+�name:name+=1:� s,S
�

� Z%=2
"OX=OX+X%*S/2
,OY=OY+Y%*S/2
6S=S*W%/1024
@!XD=X%/2
J!YD=Y%/2
T
!WD=W%
^	�draw
h� 0
r�
|
�� �draw
��
�!DD=ITER
�	� set
�A%=0:B%=0:C%=0
��=0
�� begin
�� (!SHD=0 � !SLD=1) �7
�� 30
�	*FX 5
�� filler
�'� 5:� 1280*(1-84/Col),960*(1-2/Row)
�� 63:� �/100:� 4
�:� 3,63
	*FX 5
�
&
0
:� �set_palette
D� pal% 256*4
NP1=2*�/3
X� c=1 � 255
bP=c/256*2*�
lred%=  128*(1+�(P))
vgreen%=128*(1+�(2*P+P1))
�blue%= 128*(1+�(P-P1))
�/pal%!(4*c)=((blue%*256+green%)*256+red%)<<8
��
�!pal%=0
�*ș "ColourTrans_WritePalette",-1,,pal%
��
�
�� �cycle_up
�� J%=1 � 2
�
T%=pal%!4
�� I%=1 � 254
�pal%!(4*I%)=pal%!(4*I%+4)
��
pal%!(4*255)=T%
�
�
 
*� �cycle_down
4� J%=1 � 2
>T%=pal%!(4*255)
H� I%=254 � 1 � -1
Rpal%!(4*I%+4)=pal%!(4*I%)
\�
f
pal%!4=T%
p�
z�
�
�� �init
�� Q% 700000
��test_forSA
�� test_forSA
�)� !poke=0 � StrongARM=� � StrongARM=�
�Row=480:Col=640:Shf=7
��ASS
�	�ASS2
�� set_mode
��set_palette
�� I=1 � 20:�cycle_down:�
�
name=0

� 3,63
*POINTER
ȗ �
$#� 28,Col/8-12,Row/8-1,Col/8-1,0
.OX=-2.3:OY=-2*0.75:S=3/480
8!OXHD=OX*2^29:!OXLD=0
B!OYHD=OY*2^29:!OYLD=0
L!SHD=S*2^29:!SLD=0
V!XD=0:!YD=0:!WD=1024
`ITER=200
j*ș "ColourTrans_WritePalette",-1,,pal%
t	�draw
~
W%=256
��
�
�� �test_forSA
�� PASS=0 � 2 � 2
�	P%=Q%
�
[OPT PASS
�.poke DCD 0
�.test_forSA
�MOV 2,#2
�.modify
�MOV 3,#0
�LDR 1,modify

�R 1,1,#1

STR 1,modify
SUBS 2,2,#1
BNE modify
(STR 3,poke
2MOV PC,R14
<]
F�
P	Q%=P%
Z�
d
n� �ASS2
x?T=0:K=1:XX=2:YY=7:D=8:X=5:Y=6:A=3:B=4:SCR=9:S=10:CO=11:C=12
�STAK=2:W=7
�� PASS=0 � 2 � 2
�	P%=Q%
�
[OPT PASS
�.screen1 EQUD 148:EQUD -1
�.screen  EQUD 0
�.set
�  ADR R0,screen1
�  ADR R1,screen
�  SWI "OS_ReadVduVariables"
�MOV PC,R14
�
�	.mode

 DCD 1
 DCD 640
 DCD 480
"
 DCD 3
, DCD -1
6 DCD 0:DCD 128
@ DCD 3:DCD 255
J DCD -1
T
.set_mode
^
MOV R0,#0
hADR R1,mode
rSWI "OS_ScreenMode"
|SWI "OS_RemoveCursors"
�MOV pc,r14
�
�.screen_size DCD Row*Col
�.filler
�LDR SCR,screen
�ADD K,SCR,#Row*Col
�.vulloop
�  LDR CO,[SCR]
�  �S X,CO,#&000000FF
�  MOVNE T,X
�  CMP T,#255
�
  �Q T,#0
�
  MOV C,T
  �S X,CO,#&0000FF00
  MOVNE T,X,LSR #8
  CMP T,#255
&  �RNE C,C,T,LSL #8
0  �S X,CO,#&00FF0000
:  MOVNE T,X,LSR #16
D  CMP T,#255
N  �RNE C,C,T,LSL #16
X  �S X,CO,#&FF000000
b  MOVNE T,X,LSR #24
l  CMP T,#255
v  �RNE C,C,T,LSL #24
�  STR C,[SCR],#4
�  CMP SCR,K
�BLO vulloop
�MOV PC,R14
�
�
.begin
�STMFD 13!,{14}
�
  BL calc
�  LDR SCR,screen
�  ADD SCR,SCR,#Row*Col
�  SUB SCR,SCR,#Col
�  ADR STAK,stack
�  MOV A,#0
  MOV B,#0
  BL iteration
  STRB T,[SCR]
   MOV S,#0
*  STMIA (STAK)!,{S}
4  .while_1
>    ADR T,stack
H    CMP STAK,T
R      BLNE track
\  BNE while_1
fLDMFD 13!,{PC}
p
z
.track
�STMFD 13!,{14}
�  LDMDB (STAK)!,{S}
�  MOV T,#1024
�  SUB T,T,#1
�
  � X,T,S
�  � Y,T,S,LSR #10
�  MOV C,S,LSR #20
�  � C,C,#255
�  MOV D,S,LSR #28
�  � D,D,#7
�  ADD S,Y,Y,LSL #2
��DD S,Y,S,LSL #3
�  SUB S,X,S,LSL #Shf
	  LDRB K,[SCR,S]
	  MOV W,#0
	.while_2
	$  ADD D,D,#5
	.  CMP K,#255
	8    BICEQ D,D,#1
	B  MOV CO,#8
	L  .loop
	V    SUBS CO,CO,#1
	`      LDMEQFD 13!,{PC}^
	j    MOV A,X
	t    MOV B,Y
	~    ADD D,D,#1
	�    CMP K,#255
	�      ADDEQ D,D,#1
	�    � D,D,#%111
	�    CMP D,#0
	�      ADDHS A,X,#1
	�    CMP D,#1
	�      ADDHS B,Y,#1
	�    CMP D,#2
	�      SUBHS A,A,#1
	�    CMP D,#3
	�      SUBHS A,A,#1
	�    CMP D,#4
      SUBHS B,B,#1

    CMP D,#5
      SUBHS B,B,#1
    CMP D,#6
(      ADDHS A,A,#1
2    CMP D,#7
<      ADDHS A,A,#1
F    CMP A,#Col
P  BHS loop
Z    CMP B,#Row
d  BHS loop
n    ADD S,B,B,LSL #2
x    SUB S,A,S,LSL #Shf
�    LDRB T,[SCR,S]
�    CMP T,K
�      ADDEQ W,W,#1
�    CMP CO,#5
�      BEQ over
�    CMP W,#8
�      LDMHIFD  13!,{PC}^
�
    .over
�    CMP T,#0
�    BNE endif_3
�      BL iteration
�      STRB T,[S,SCR]
�      CMP T,K
        �Q W,#0
      BEQ endif_2
        CMP T,C
"        BEQ endif_1
,          ADD S,A,B,LSL #10
6          ADD S,S,C,LSL #20
@          ADD S,S,D,LSL #28
J          STMIA (STAK)!,{S}
T          MOV C,T
^        .endif_1
h      .endif_2
r    .endif_3
|    CMP T,K
�  BNE loop
�
  MOV X,A
�
  MOV Y,B
�BAL while_2
�
.stack
�]
��
��
�
�
�
� �ASS
�&A=3:B=4:G=5:S=7:U=8:V=9::M=11:N=12
�8T=0:H=1:D=2:AH=3:BH=4:AL=5:BL=6:UL=7:UH=8:VL=9:VH=10
SL=11:SH=12:TL=13:TH=14

� PASS=0 � 2 � 2
&	P%=Q%
0
[OPT PASS
:.DD EQUD 0
D.OXD EQUD 0
N.OYD EQUD 0
X.FD EQUD 0
b.iteration
lSTMFD 13!,{1-12,14}
v  LDR D,SHD
�  CMP D,#4
�  BLE iterationH
�  LDR U,OXHD
�  LDR V,OYHD
�  MLA A,D,A,U
�  MLA B,D,B,V
�  MOVS T,D,LSR #16
�  BNE iterationL
�  MOV T,#0
�  STR T,OXLD
�  STR T,OYLD
�  STR T,SLD
�
  MOV U,A


  MOV V,B

  LDR D,DD

  BIC D,D,#1

  ]

* � StrongARM  �

4 [ OPT PASS

>  �SMULL(G,M,U,U)

H  BAL in_it

R  .while_2

\  �SMULL(G,M,U,U)

f  ADD V,B,V,LSL #1+3

p  ADD V,V,H,LSR #28

z
.in_it

�  �SMULL(H,N,V,V)

�  MOV G,G,LSR #29

�  ADD S,G,M,LSL #3

�  ADD M,M,N

�  CMP M,#4<<(29-3)

�  BHS break

�  �SMULL(G,V,U,V)

�  MOV H,H,LSR #29

�  ADD T,H,N,LSL #3

�  SUB U,S,T

�  ADD U,A,U

�  �SMULL(H,M,U,U)

�  ADD V,B,V,LSL #1+3
  ADD V,V,G,LSR #28
  �SMULL(G,N,V,V)
  MOV H,H,LSR #29
$  ADD S,H,M,LSL #3
.  ADD M,M,N
8  CMP M,#4<<(29-3)
B  BHS break1
L  �SMULL(H,V,U,V)
V  MOV G,G,LSR #29
`  ADD T,G,N,LSL #3
j  SUB U,S,T
t  ADD U,A,U
~  SUBS D,D,#2
�  BNE while_2
�MOV T,#255
�LDMFD 13!,{1-12,PC}
�.break1
�SUB D,D,#1
�
.break
�  .while_3
�    CMP D,#254
�    SUBHI D,D,#254
�  BHI while_3
�
  MOV T,D
�  LDMFD 13!,{1-12,PC}
 ]

 �
 [ OPT PASS

 .while_2
(    MOVS H,U
2      RSBMI H,H,#0
<    MOV M,H,LSR #16
F    BIC N,H,M,LSL #16
P    MUL N,M,N
Z    CMP H,#2<<29
d      BHS break
n    MOVS H,V
x    MUL T,M,M
�      RSBMI H,H,#0
�    MOV M,H,LSR #16
�    MOV T,T,LSL #3
�    ADD S,T,N,LSR #12
�    BIC N,H,M,LSL #16
�    MUL N,M,N
�    CMP H,#2<<29
�      BHS break
�    MUL T,M,M
�    ADDS M,U,V
�      RSBMI M,M,#0
�    MOV T,T,LSL #3
�    ADD T,T,N,LSR #12
    ADD H,S,T
    CMP H,#4<<29
      BHS break
"    MOV N,M,LSR #16
,    MUL U,N,N
6    BIC M,M,N,LSL #16
@    SUBS D,D,#1
J    MOV U,U,LSL #3
T    MUL V,M,N
^    SUB H,U,H
h    SUB U,S,T
r    ADD U,U,A
|    ADD H,H,V,LSR #12
�    ADD V,B,H
�  BNE while_2
�MOV T,#255
�LDMFD 13!,{1-12,PC}
�
.break
�  .while_3
�    CMP D,#254
�    SUBHI D,D,#254
�  BHI while_3
�
  MOV T,D
�  LDMFD 13!,{1-12,PC}
�]
��
[ OPT PASS
.iterationL
  MOV A,A,ASR #16
&  MOV B,B,ASR #16
0
  MOV U,A
:
  MOV V,B
D  LDR D,DD
N  BIC D,D,#3
X  MUL T,V,V
bBAL win
l  .while_2L
v    MUL T,V,V
�    SUB U,S,H,LSL #1
�    ADD U,A,U,ASR #13
�.win
�    MLA S,U,U,T
�    CMP S,#4<< 26
�    MUL H,U,V
�    BHS breakL
�    ADD V,B,H,ASR #12
�    MUL H,V,V
�    SUB U,S,T,LSL #1
�    ADD U,A,U,ASR #13
�    MLA S,U,U,H
�    CMP S,#4<< 26
    MUL T,U,V
    BHS break2L
    ADD V,B,T,ASR #12
     MUL T,V,V
*    SUB U,S,H,LSL #1
4    ADD U,A,U,ASR #13
>    MLA S,U,U,T
H    CMP S,#4<< 26
R    MUL H,U,V
\    BHS break3L
f    ADD V,B,H,ASR #12
p    MUL H,V,V
z    SUB U,S,T,LSL #1
�    ADD U,A,U,ASR #13
�    MLA S,U,U,H
�    CMP S,#4<< 26
�    BHS break4L
�    MUL T,U,V
�    ADD V,B,T,ASR #12
�    SUBS D,D,#4
�  BNE while_2L
�MOV T,#255
�LDMFD 13!,{1-12,PC}
�.break4L
� SUBS D,D,#1
�.break3L
 SUBS D,D,#1
.break2L
 SUBS D,D,#1
$.breakL
.  .while_3L
8    CMP D,#254
B    SUBHI D,D,#254
L  BHI while_3L
V
  MOV T,D
`  LDMFD 13!,{1-12,PC}
j  
t
.WD DCD 0
~
.XD DCD 0
�
.YD DCD 0
�.OXHD DCD 0
�.OXLD DCD 0
�.OYHD DCD 0
�.OYLD DCD 0
�.SHD  DCD 0
�.SLD  DCD 0  
�	.calc
�STMFD 13!,{0-12,14}
�STR 13,SPD
�LDR UH,OXHD
�LDR UL,OXLD
LDR VH,OYHD

LDR VL,OYLD
LDR SH,SHD
LDR SL,SLD
(LDR T,XD   ; ox+=x*s
2�UMULL(TL,TH,SL,T)
<�UMULL(T,H,SH,T)
FADD TH,TH,T
PADDS UL,TL,UL
ZADC  UH,TH,UH
dSTR UH,OXHD
nSTR UL,OXLD
xLDR T,YD  ;oy+=y*s
��UMULL(TL,TH,SL,T)
��UMULL(T,H,SH,T)
�ADD TH,TH,T
�ADDS VL,TL,VL
�ADC  VH,TH,VH
�STR VH,OYHD
�STR VL,OYLD
�LDR T,WD  ;s=s*w/1024
��UMULL(TL,TH,SL,T)
��UMULL(T,H,SH,T)
�ADD TH,TH,T
�MOV TL,TL,LSR #10
��R TL,TL,TH,LSL #22
MOV TH,TH,LSR #10

CMP TH,#0
CMPEQ TL,#0
"�Q TL,#1
,STR TH,SHD
6STR TL,SLD
@LDR 13,SPD
JLDMFD 13!,{0-12,PC}
T] 
^
h� StrongARM �
r
[OPT PASS
|.SPD DCD 0
�.iterationH
�STR 13,SPD
�LDR SL,SLD
�LDR SH,SHD
�LDR UL,OXLD
�LDR UH,OXHD
�LDR VL,OYLD
�LDR VH,OYHD
��UMULL(TL,TH,SL,A)
��UMULL(T,H,SH,A)
�ADD TH,TH,T
�ADDS AL,UL,TL
�ADC  AH,UH,TH
�UMULL(TL,TH,SL,B)
�UMULL(T,H,SH,B)
ADD TH,TH,T
&ADDS BL,VL,TL
0ADC  BH,VH,TH
:LDR D,DD
DMOV UL,AL:MOV UH,AH
NMOV VL,#0:MOV VH,#0
XMOV TL,#0:MOV TH,#0
b
.loopH
lRSBS T,UL,#0
vRSCS H,UH,#0
�MOVMI T,UL
�MOVMI H,UH
��UMULL(SL,SH,H,H)
�SUBS VL,VL,TL
�SBC  VH,VH,TH
�ADDS VL,VL,BL
�ADC  VH,VH,BH
�CMP SH,#4<<(29-3)
�BHS breakH
��UMULL(T,H,T,H)
�MOV SH,SH,LSL #3
��R SH,SH,SL,LSR #29
�MOV SL,SL,LSL #3
MOV T,T,LSR #28
ADD T,T,H,LSL #4
ADDS SL,SL,T
 ADC  SH,SH,H,LSR #28
*RSBS T,VL,#0
4RSCS H,VH,#0
>MOVMI H,VH
H�UMULL(TL,TH,H,H)
RMOVMI T,VL
\ADDS VL,VL,UL
fADCS VH,VH,UH
zCMP TH,#4<<(29-3)
�BHS breakH
��UMULL(T,H,T,H)
�MOV TH,TH,LSL #3
��R TH,TH,TL,LSR #29
�MOV TL,TL,LSL #3
�MOV T,T,LSR #28
�ADD T,T,H,LSL #4
�ADDS TL,TL,T
�ADC  TH,TH,H,LSR #28
�RSBS T,VL,#0
�RSCS H,VH,#0
�MOVMI T,VL
�MOVMI H,VH
�UMULL(VL,VH,H,H)
SUBS UL,SL,TL
SBC  UH,SH,TH
$ADDS TL,SL,TL
.ADC  TH,SH,TH
8ADDS UL,UL,AL
BADC  UH,UH,AH
L�UMULL(T,H,T,H)
VCMP  TH,#4<<29
`BHS  breakH
jMOV VH,VH,LSL #3
t�R VH,VH,VL,LSR #29
~MOV VL,VL,LSL #3
�MOV T,T,LSR #28
�ADD T,T,H,LSL #4
�ADDS VL,VL,T
�ADC  VH,VH,H,LSR #28
�SUBS D,D,#1
�
BNE loopH
�MOV 0,#255
�LDR 13,SPD
�LDMFD 13!,{1-12,PC}
�.breakH
� .whileH
�   CMP D,#254
   SUBHI D,D,#254

BHI whileH
MOV 0,D
LDR 13,SPD
(LDMFD 13!,{1-12,PC}
2]
<� 
F
[OPT PASS
P.SPD DCD 0
Z .ALD DCD 0:DCD 0:DCD 0:DCD 0
d.iterationH
nSTR 13,SPD
xLDR SL,SLD
�LDR SH,SHD
�LDR UL,OXLD
�LDR UH,OXHD
�LDR VL,OYLD
�LDR VH,OYHD
�MOV H,B
�MUL T,SH,A
�MOV TL,A
��UMULL(TL,TH,SL,TL)
�ADD TH,TH,T
�ADDS UL,UL,TL
�ADC  UH,UH,TH
�MUL T,SH,H
�UMULL(TL,TH,SL,H)
ADD TH,TH,T
ADDS BL,VL,TL
"ADC  BH,VH,TH
,
MOV AL,UL
6
MOV AH,UH
@#ADR T,ALD:STMIA T,{AL,AH,BL,BH}
JLDR D,DD
TMOV UL,AL:MOV UH,AH
^MOV VL,BL:MOV VH,BH
h
.loopH
rRSBS T,UL,#0
|RSCS H,UH,#0
�MOVMI T,UL
�MOVMI H,UH
��UMULL(SL,SH,H,H)
�CMP SH,#4<<(29-3)
�BHS breakH
�MOV SH,SH,LSL #3
��R SH,SH,SL,LSR #29
�MOV SL,SL,LSL #3
��UMULL(T,H,T,H)
�MOV T,T,LSR #28
�ADD T,T,H,LSL #4
�ADDS SL,SL,T
�ADC  SH,SH,H,LSR #28
RSBS T,VL,#0
RSCS H,VH,#0
MOVMI T,VL
&MOVMI H,VH
0�UMULL(TL,TH,H,H)
:CMP TH,#4<<(29-3)
DBHS breakH
NMOV TH,TH,LSL #3
X�R TH,TH,TL,LSR #29
bMOV TL,TL,LSL #3
l�UMULL(T,H,T,H)
vMOV T,T,LSR #28
�ADD T,T,H,LSL #4
�ADDS TL,TL,T
�ADC  TH,TH,H,LSR #28
�ADDS VL,VL,UL
�ADC  VH,VH,UH
�SUBS UL,SL,TL
�SBC  UH,SH,TH
�ADDS TL,SL,TL
�ADC  TH,SH,TH
�CMP  TH,#4<<29
�BHS  breakH
�RSBS T,VL,#0
RSCS H,VH,#0
MOVMI T,VL
MOVMI H,VH
 �UMULL(SL,SH,H,H)
*MOV SH,SH,LSL #3
4�R SH,SH,SL,LSR #29
>MOV SL,SL,LSL #3
H�UMULL(T,H,T,H)
RMOV T,T,LSR #28
\ADD T,T,H,LSL #4
fADDS SL,SL,T
pADC  SH,SH,H,LSR #28
zSUBS VL,SL,TL
�SBC  VH,SH,TH
�#ADR T,ALD:LDMIA T,{AL,AH,BL,BH}
�ADDS UL,UL,AL
�ADC  UH,UH,AH
�ADDS VL,VL,BL
�ADC  VH,VH,BH
�SUBS D,D,#1
�
BNE loopH
�MOV 0,#255
�LDR 13,SPD
�LDMFD 13!,{1-12,PC}
�.breakH
� .whileH
   CMP D,#254
   SUBHI D,D,#254
BHI whileH
$MOV 0,D
.LDR 13,SPD
8LDMFD 13!,{1-12,PC}^
B]
L�
V
� PASS
`	Q%=P%
j�
t
~
�� �SMULL(Rl,Rh,Rm,Rs)
�
[OPT PASS
�/DCD  &E0C00090+(Rh<<16)+(Rl<<12)+(Rs<<8)+Rm
�]
�=""
�
�� �UMULL(Rl,Rh,Rm,Rs)
��  StrongARM  �
�
[OPT PASS
�/DCD  &E0800090+(Rh<<16)+(Rl<<12)+(Rs<<8)+Rm
�]
��
� Rs<>Rm  �


[OPT PASS
MOV AH,Rm,LSR #16
MOV BH,Rs,LSR #16
(� AL,Rm,AH,LSL #16
2� BL,Rs,BH,LSL #16
<MUL Rh,AH,BH
FMUL Rl,AL,BL
PMUL AH,BL,AH
ZMUL BH,AL,BH
dADDS Rl,Rl,BH,LSL #16
nADC  Rh,Rh,BH,LSR #16
xADDS Rl,Rl,AH,LSL #16
�ADC  Rh,Rh,AH,LSR #16
�]
��
�
[OPT PASS
�MOV AH,Rm,LSR #16
�� AL,Rm,AH,LSL #16
�MUL Rh,AH,AH
�MUL Rl,AL,AL
�MUL AH,AL,AH
�ADDS Rl,Rl,AH,LSL #17
�ADC  Rh,Rh,AH,LSR #15
�]
��
�
=""

"
,
6
�
00000000  0d 00 0a 10 f4 20 3e 54  72 61 63 6b 6d 61 6e 32  |..... >Trackman2|
00000010  0d 00 14 16 f4 20 42 79  20 4a 61 6e 20 56 6c 69  |..... By Jan Vli|
00000020  65 74 69 6e 63 6b 0d 00  1e 0f ee 20 85 3a f6 3a  |etinck..... .:.:|
00000030  f1 20 9e 3a e0 0d 00 28  04 0d 00 32 09 f2 69 6e  |. .:...(...2..in|
00000040  69 74 0d 00 3c 05 f5 0d  00 46 05 f5 0d 00 50 0f  |it..<....F....P.|
00000050  c8 97 20 58 25 2c 59 25  2c 5a 25 0d 00 5a 12 e7  |.. X%,Y%,Z%..Z..|
00000060  20 5a 25 3d 34 20 8c 20  57 25 2b 3d 34 0d 00 64  | Z%=4 . W%+=4..d|
00000070  20 e7 20 5a 25 3d 31 20  8c 20 57 25 2d 3d 34 3a  | . Z%=1 . W%-=4:|
00000080  e7 20 57 25 3c 31 36 3a  57 25 3d 31 36 0d 00 6e  |. W%<16:W%=16..n|
00000090  28 c8 93 20 58 25 2c 59  25 2c 57 25 2a 28 31 2d  |(.. X%,Y%,W%*(1-|
000000a0  31 2f 31 36 29 2a 34 2f  33 2c 57 25 2a 28 31 2d  |1/16)*4/3,W%*(1-|
000000b0  31 2f 31 36 29 0d 00 78  06 c8 96 0d 00 82 2a c8  |1/16)..x......*.|
000000c0  99 20 22 43 6f 6c 6f 75  72 54 72 61 6e 73 5f 57  |. "ColourTrans_W|
000000d0  72 69 74 65 50 61 6c 65  74 74 65 22 2c 2d 31 2c  |ritePalette",-1,|
000000e0  2c 70 61 6c 25 0d 00 8c  28 c8 93 20 58 25 2c 59  |,pal%...(.. X%,Y|
000000f0  25 2c 57 25 2a 28 31 2d  31 2f 31 36 29 2a 34 2f  |%,W%*(1-1/16)*4/|
00000100  33 2c 57 25 2a 28 31 2d  31 2f 31 36 29 0d 00 96  |3,W%*(1-1/16)...|
00000110  0a 4b 3d a6 28 30 29 0d  00 a0 0a c8 8e 20 4b 20  |.K=.(0)...... K |
00000120  ca 0d 00 aa 31 c9 20 36  37 2c 20 39 39 3a 20 f2  |....1. 67, 99: .|
00000130  63 79 63 6c 65 5f 64 6f  77 6e 3a 20 20 20 20 20  |cycle_down:     |
00000140  20 20 20 20 20 20 20 20  20 20 20 20 20 f4 20 63  |             . c|
00000150  2c 43 0d 00 b4 31 c9 20  36 38 2c 20 31 30 30 3a  |,C...1. 68, 100:|
00000160  20 f2 63 79 63 6c 65 5f  75 70 3a 20 20 20 20 20  | .cycle_up:     |
00000170  20 20 20 20 20 20 20 20  20 20 20 20 20 20 f4 20  |              . |
00000180  64 2c 44 0d 00 be 39 c9  20 37 33 2c 31 30 35 3a  |d,D...9. 73,105:|
00000190  e8 20 20 22 49 74 65 72  61 74 69 6f 6e 73 20 22  |.  "Iterations "|
000001a0  2c 49 54 3a e7 20 49 54  3c 3e 30 20 8c 20 49 54  |,IT:. IT<>0 . IT|
000001b0  45 52 3d 49 54 3a 20 f4  20 69 2c 49 0d 00 c8 29  |ER=IT: . i,I...)|
000001c0  c9 20 38 32 2c 20 31 31  34 3a 20 4f 58 3d 2d 32  |. 82, 114: OX=-2|
000001d0  2e 33 3a 4f 59 3d 2d 32  2a 30 2e 37 35 3a 53 3d  |.3:OY=-2*0.75:S=|
000001e0  33 2f 34 38 30 0d 00 d2  19 21 4f 58 48 44 3d 4f  |3/480....!OXHD=O|
000001f0  58 2a 32 5e 32 39 3a 21  4f 58 4c 44 3d 30 0d 00  |X*2^29:!OXLD=0..|
00000200  dc 19 21 4f 59 48 44 3d  4f 59 2a 32 5e 32 39 3a  |..!OYHD=OY*2^29:|
00000210  21 4f 59 4c 44 3d 30 0d  00 e6 16 21 53 48 44 3d  |!OYLD=0....!SHD=|
00000220  53 2a 32 5e 32 39 3a 21  53 4c 44 3d 30 0d 00 f0  |S*2^29:!SLD=0...|
00000230  18 21 58 44 3d 30 3a 21  59 44 3d 30 3a 21 57 44  |.!XD=0:!YD=0:!WD|
00000240  3d 31 30 32 34 0d 00 fa  12 f2 64 72 61 77 3a 20  |=1024.....draw: |
00000250  20 20 f4 20 72 2c 52 0d  01 04 48 c9 20 38 33 2c  |  . r,R...H. 83,|
00000260  20 31 31 35 3a 20 ff 20  22 53 43 52 45 45 4e 53  | 115: . "SCREENS|
00000270  41 56 45 20 3c 74 72 61  63 6b 6d 61 6e 32 24 64  |AVE <trackman2$d|
00000280  69 72 3e 2e 6d 61 6e 64  65 6c 22 2b c3 6e 61 6d  |ir>.mandel"+.nam|
00000290  65 3a 6e 61 6d 65 2b 3d  31 3a f4 20 73 2c 53 0d  |e:name+=1:. s,S.|
000002a0  01 0e 05 cb 0d 01 18 0a  fd 20 5a 25 3d 32 0d 01  |......... Z%=2..|
000002b0  22 10 4f 58 3d 4f 58 2b  58 25 2a 53 2f 32 0d 01  |".OX=OX+X%*S/2..|
000002c0  2c 10 4f 59 3d 4f 59 2b  59 25 2a 53 2f 32 0d 01  |,.OY=OY+Y%*S/2..|
000002d0  36 0f 53 3d 53 2a 57 25  2f 31 30 32 34 0d 01 40  |6.S=S*W%/1024..@|
000002e0  0c 21 58 44 3d 58 25 2f  32 0d 01 4a 0c 21 59 44  |.!XD=X%/2..J.!YD|
000002f0  3d 59 25 2f 32 0d 01 54  0a 21 57 44 3d 57 25 0d  |=Y%/2..T.!WD=W%.|
00000300  01 5e 09 f2 64 72 61 77  0d 01 68 07 fd 20 30 0d  |.^..draw..h.. 0.|
00000310  01 72 05 e0 0d 01 7c 04  0d 01 86 0b dd 20 f2 64  |.r....|...... .d|
00000320  72 61 77 0d 01 90 05 da  0d 01 9a 0c 21 44 44 3d  |raw.........!DD=|
00000330  49 54 45 52 0d 01 a4 09  d6 20 73 65 74 0d 01 ae  |ITER..... set...|
00000340  12 41 25 3d 30 3a 42 25  3d 30 3a 43 25 3d 30 0d  |.A%=0:B%=0:C%=0.|
00000350  01 b8 07 d1 3d 30 0d 01  c2 0b d6 20 62 65 67 69  |....=0..... begi|
00000360  6e 0d 01 cc 1a e7 20 28  21 53 48 44 3d 30 20 80  |n..... (!SHD=0 .|
00000370  20 21 53 4c 44 3d 31 29  20 ef 37 0d 01 d6 08 ef  | !SLD=1) .7.....|
00000380  20 33 30 0d 01 e0 09 2a  46 58 20 35 0d 01 ea 0c  | 30....*FX 5....|
00000390  d6 20 66 69 6c 6c 65 72  0d 01 f4 27 ef 20 35 3a  |. filler...'. 5:|
000003a0  ec 20 31 32 38 30 2a 28  31 2d 38 34 2f 43 6f 6c  |. 1280*(1-84/Col|
000003b0  29 2c 39 36 30 2a 28 31  2d 32 2f 52 6f 77 29 0d  |),960*(1-2/Row).|
000003c0  01 fe 14 e6 20 36 33 3a  f1 20 91 2f 31 30 30 3a  |.... 63:. ./100:|
000003d0  ef 20 34 0d 02 08 0c 87  3a e6 20 33 2c 36 33 0d  |. 4.....:. 3,63.|
000003e0  02 12 09 2a 46 58 20 35  0d 02 1c 05 e1 0d 02 26  |...*FX 5.......&|
000003f0  04 0d 02 30 04 0d 02 3a  12 dd 20 f2 73 65 74 5f  |...0...:.. .set_|
00000400  70 61 6c 65 74 74 65 0d  02 44 10 de 20 70 61 6c  |palette..D.. pal|
00000410  25 20 32 35 36 2a 34 0d  02 4e 0c 50 31 3d 32 2a  |% 256*4..N.P1=2*|
00000420  af 2f 33 0d 02 58 0f e3  20 63 3d 31 20 b8 20 32  |./3..X.. c=1 . 2|
00000430  35 35 0d 02 62 0f 50 3d  63 2f 32 35 36 2a 32 2a  |55..b.P=c/256*2*|
00000440  af 0d 02 6c 17 72 65 64  25 3d 20 20 31 32 38 2a  |...l.red%=  128*|
00000450  28 31 2b 9b 28 50 29 29  0d 02 76 1c 67 72 65 65  |(1+.(P))..v.gree|
00000460  6e 25 3d 31 32 38 2a 28  31 2b 9b 28 32 2a 50 2b  |n%=128*(1+.(2*P+|
00000470  50 31 29 29 0d 02 80 1a  62 6c 75 65 25 3d 20 31  |P1))....blue%= 1|
00000480  32 38 2a 28 31 2b 9b 28  50 2d 50 31 29 29 0d 02  |28*(1+.(P-P1))..|
00000490  8a 2f 70 61 6c 25 21 28  34 2a 63 29 3d 28 28 62  |./pal%!(4*c)=((b|
000004a0  6c 75 65 25 2a 32 35 36  2b 67 72 65 65 6e 25 29  |lue%*256+green%)|
000004b0  2a 32 35 36 2b 72 65 64  25 29 3c 3c 38 0d 02 94  |*256+red%)<<8...|
000004c0  05 ed 0d 02 9e 0b 21 70  61 6c 25 3d 30 0d 02 a8  |......!pal%=0...|
000004d0  2a c8 99 20 22 43 6f 6c  6f 75 72 54 72 61 6e 73  |*.. "ColourTrans|
000004e0  5f 57 72 69 74 65 50 61  6c 65 74 74 65 22 2c 2d  |_WritePalette",-|
000004f0  31 2c 2c 70 61 6c 25 0d  02 b2 05 e1 0d 02 bc 04  |1,,pal%.........|
00000500  0d 02 c6 0f dd 20 f2 63  79 63 6c 65 5f 75 70 0d  |..... .cycle_up.|
00000510  02 d0 0e e3 20 4a 25 3d  31 20 b8 20 32 0d 02 da  |.... J%=1 . 2...|
00000520  0d 54 25 3d 70 61 6c 25  21 34 0d 02 e4 10 e3 20  |.T%=pal%!4..... |
00000530  49 25 3d 31 20 b8 20 32  35 34 0d 02 ee 1d 70 61  |I%=1 . 254....pa|
00000540  6c 25 21 28 34 2a 49 25  29 3d 70 61 6c 25 21 28  |l%!(4*I%)=pal%!(|
00000550  34 2a 49 25 2b 34 29 0d  02 f8 05 ed 0d 03 02 13  |4*I%+4).........|
00000560  70 61 6c 25 21 28 34 2a  32 35 35 29 3d 54 25 0d  |pal%!(4*255)=T%.|
00000570  03 0c 05 ed 0d 03 16 05  e1 0d 03 20 04 0d 03 2a  |........... ...*|
00000580  11 dd 20 f2 63 79 63 6c  65 5f 64 6f 77 6e 0d 03  |.. .cycle_down..|
00000590  34 0e e3 20 4a 25 3d 31  20 b8 20 32 0d 03 3e 13  |4.. J%=1 . 2..>.|
000005a0  54 25 3d 70 61 6c 25 21  28 34 2a 32 35 35 29 0d  |T%=pal%!(4*255).|
000005b0  03 48 15 e3 20 49 25 3d  32 35 34 20 b8 20 31 20  |.H.. I%=254 . 1 |
000005c0  88 20 2d 31 0d 03 52 1d  70 61 6c 25 21 28 34 2a  |. -1..R.pal%!(4*|
000005d0  49 25 2b 34 29 3d 70 61  6c 25 21 28 34 2a 49 25  |I%+4)=pal%!(4*I%|
000005e0  29 0d 03 5c 05 ed 0d 03  66 0d 70 61 6c 25 21 34  |)..\....f.pal%!4|
000005f0  3d 54 25 0d 03 70 05 ed  0d 03 7a 05 e1 0d 03 84  |=T%..p....z.....|
00000600  04 0d 03 8e 0b dd 20 f2  69 6e 69 74 0d 03 98 0f  |...... .init....|
00000610  de 20 51 25 20 37 30 30  30 30 30 0d 03 a2 0f f2  |. Q% 700000.....|
00000620  74 65 73 74 5f 66 6f 72  53 41 0d 03 ac 10 d6 20  |test_forSA..... |
00000630  74 65 73 74 5f 66 6f 72  53 41 0d 03 b6 29 e7 20  |test_forSA...). |
00000640  21 70 6f 6b 65 3d 30 20  8c 20 53 74 72 6f 6e 67  |!poke=0 . Strong|
00000650  41 52 4d 3d b9 20 8b 20  53 74 72 6f 6e 67 41 52  |ARM=. . StrongAR|
00000660  4d 3d a3 0d 03 c0 19 52  6f 77 3d 34 38 30 3a 43  |M=.....Row=480:C|
00000670  6f 6c 3d 36 34 30 3a 53  68 66 3d 37 0d 03 ca 08  |ol=640:Shf=7....|
00000680  f2 41 53 53 0d 03 d4 09  f2 41 53 53 32 0d 03 de  |.ASS.....ASS2...|
00000690  0e d6 20 73 65 74 5f 6d  6f 64 65 0d 03 e8 10 f2  |.. set_mode.....|
000006a0  73 65 74 5f 70 61 6c 65  74 74 65 0d 03 f2 1c e3  |set_palette.....|
000006b0  20 49 3d 31 20 b8 20 32  30 3a f2 63 79 63 6c 65  | I=1 . 20:.cycle|
000006c0  5f 64 6f 77 6e 3a ed 0d  03 fc 0a 6e 61 6d 65 3d  |_down:.....name=|
000006d0  30 0d 04 06 0a e6 20 33  2c 36 33 0d 04 10 0c 2a  |0..... 3,63....*|
000006e0  50 4f 49 4e 54 45 52 0d  04 1a 08 c8 97 20 ee 0d  |POINTER...... ..|
000006f0  04 24 23 ef 20 32 38 2c  43 6f 6c 2f 38 2d 31 32  |.$#. 28,Col/8-12|
00000700  2c 52 6f 77 2f 38 2d 31  2c 43 6f 6c 2f 38 2d 31  |,Row/8-1,Col/8-1|
00000710  2c 30 0d 04 2e 1e 4f 58  3d 2d 32 2e 33 3a 4f 59  |,0....OX=-2.3:OY|
00000720  3d 2d 32 2a 30 2e 37 35  3a 53 3d 33 2f 34 38 30  |=-2*0.75:S=3/480|
00000730  0d 04 38 19 21 4f 58 48  44 3d 4f 58 2a 32 5e 32  |..8.!OXHD=OX*2^2|
00000740  39 3a 21 4f 58 4c 44 3d  30 0d 04 42 19 21 4f 59  |9:!OXLD=0..B.!OY|
00000750  48 44 3d 4f 59 2a 32 5e  32 39 3a 21 4f 59 4c 44  |HD=OY*2^29:!OYLD|
00000760  3d 30 0d 04 4c 16 21 53  48 44 3d 53 2a 32 5e 32  |=0..L.!SHD=S*2^2|
00000770  39 3a 21 53 4c 44 3d 30  0d 04 56 18 21 58 44 3d  |9:!SLD=0..V.!XD=|
00000780  30 3a 21 59 44 3d 30 3a  21 57 44 3d 31 30 32 34  |0:!YD=0:!WD=1024|
00000790  0d 04 60 0c 49 54 45 52  3d 32 30 30 0d 04 6a 2a  |..`.ITER=200..j*|
000007a0  c8 99 20 22 43 6f 6c 6f  75 72 54 72 61 6e 73 5f  |.. "ColourTrans_|
000007b0  57 72 69 74 65 50 61 6c  65 74 74 65 22 2c 2d 31  |WritePalette",-1|
000007c0  2c 2c 70 61 6c 25 0d 04  74 09 f2 64 72 61 77 0d  |,,pal%..t..draw.|
000007d0  04 7e 0a 57 25 3d 32 35  36 0d 04 88 05 e1 0d 04  |.~.W%=256.......|
000007e0  92 04 0d 04 9c 11 dd 20  f2 74 65 73 74 5f 66 6f  |....... .test_fo|
000007f0  72 53 41 0d 04 a6 14 e3  20 50 41 53 53 3d 30 20  |rSA..... PASS=0 |
00000800  b8 20 32 20 88 20 32 0d  04 b0 09 50 25 3d 51 25  |. 2 . 2....P%=Q%|
00000810  0d 04 ba 0d 5b 4f 50 54  20 50 41 53 53 0d 04 c4  |....[OPT PASS...|
00000820  0f 2e 70 6f 6b 65 20 44  43 44 20 30 0d 04 ce 0f  |..poke DCD 0....|
00000830  2e 74 65 73 74 5f 66 6f  72 53 41 0d 04 d8 0c 4d  |.test_forSA....M|
00000840  4f 56 20 32 2c 23 32 0d  04 e2 0b 2e 6d 6f 64 69  |OV 2,#2.....modi|
00000850  66 79 0d 04 ec 0c 4d 4f  56 20 33 2c 23 30 0d 04  |fy....MOV 3,#0..|
00000860  f6 10 4c 44 52 20 31 2c  6d 6f 64 69 66 79 0d 05  |..LDR 1,modify..|
00000870  00 0d 84 52 20 31 2c 31  2c 23 31 0d 05 0a 10 53  |...R 1,1,#1....S|
00000880  54 52 20 31 2c 6d 6f 64  69 66 79 0d 05 14 0f 53  |TR 1,modify....S|
00000890  55 42 53 20 32 2c 32 2c  23 31 0d 05 1e 0e 42 4e  |UBS 2,2,#1....BN|
000008a0  45 20 6d 6f 64 69 66 79  0d 05 28 0e 53 54 52 20  |E modify..(.STR |
000008b0  33 2c 70 6f 6b 65 0d 05  32 0e 4d 4f 56 20 50 43  |3,poke..2.MOV PC|
000008c0  2c 52 31 34 0d 05 3c 05  5d 0d 05 46 05 ed 0d 05  |,R14..<.]..F....|
000008d0  50 09 51 25 3d 50 25 0d  05 5a 05 e1 0d 05 64 04  |P.Q%=P%..Z....d.|
000008e0  0d 05 6e 0b dd 20 f2 41  53 53 32 0d 05 78 3f 54  |..n.. .ASS2..x?T|
000008f0  3d 30 3a 4b 3d 31 3a 58  58 3d 32 3a 59 59 3d 37  |=0:K=1:XX=2:YY=7|
00000900  3a 44 3d 38 3a 58 3d 35  3a 59 3d 36 3a 41 3d 33  |:D=8:X=5:Y=6:A=3|
00000910  3a 42 3d 34 3a 53 43 52  3d 39 3a 53 3d 31 30 3a  |:B=4:SCR=9:S=10:|
00000920  43 4f 3d 31 31 3a 43 3d  31 32 0d 05 82 0e 53 54  |CO=11:C=12....ST|
00000930  41 4b 3d 32 3a 57 3d 37  0d 05 8c 14 e3 20 50 41  |AK=2:W=7..... PA|
00000940  53 53 3d 30 20 b8 20 32  20 88 20 32 0d 05 96 09  |SS=0 . 2 . 2....|
00000950  50 25 3d 51 25 0d 05 a0  0d 5b 4f 50 54 20 50 41  |P%=Q%....[OPT PA|
00000960  53 53 0d 05 aa 1d 2e 73  63 72 65 65 6e 31 20 45  |SS.....screen1 E|
00000970  51 55 44 20 31 34 38 3a  45 51 55 44 20 2d 31 0d  |QUD 148:EQUD -1.|
00000980  05 b4 13 2e 73 63 72 65  65 6e 20 20 45 51 55 44  |....screen  EQUD|
00000990  20 30 0d 05 be 08 2e 73  65 74 0d 05 c8 14 20 20  | 0.....set....  |
000009a0  41 44 52 20 52 30 2c 73  63 72 65 65 6e 31 0d 05  |ADR R0,screen1..|
000009b0  d2 13 20 20 41 44 52 20  52 31 2c 73 63 72 65 65  |..  ADR R1,scree|
000009c0  6e 0d 05 dc 1f 20 20 53  57 49 20 22 4f 53 5f 52  |n....  SWI "OS_R|
000009d0  65 61 64 56 64 75 56 61  72 69 61 62 6c 65 73 22  |eadVduVariables"|
000009e0  0d 05 e6 0e 4d 4f 56 20  50 43 2c 52 31 34 0d 05  |....MOV PC,R14..|
000009f0  f0 04 0d 05 fa 09 2e 6d  6f 64 65 0d 06 04 0a 20  |.......mode.... |
00000a00  44 43 44 20 31 0d 06 0e  0c 20 44 43 44 20 36 34  |DCD 1.... DCD 64|
00000a10  30 0d 06 18 0c 20 44 43  44 20 34 38 30 0d 06 22  |0.... DCD 480.."|
00000a20  0a 20 44 43 44 20 33 0d  06 2c 0b 20 44 43 44 20  |. DCD 3..,. DCD |
00000a30  2d 31 0d 06 36 12 20 44  43 44 20 30 3a 44 43 44  |-1..6. DCD 0:DCD|
00000a40  20 31 32 38 0d 06 40 12  20 44 43 44 20 33 3a 44  | 128..@. DCD 3:D|
00000a50  43 44 20 32 35 35 0d 06  4a 0b 20 44 43 44 20 2d  |CD 255..J. DCD -|
00000a60  31 0d 06 54 0d 2e 73 65  74 5f 6d 6f 64 65 0d 06  |1..T..set_mode..|
00000a70  5e 0d 4d 4f 56 20 52 30  2c 23 30 0d 06 68 0f 41  |^.MOV R0,#0..h.A|
00000a80  44 52 20 52 31 2c 6d 6f  64 65 0d 06 72 17 53 57  |DR R1,mode..r.SW|
00000a90  49 20 22 4f 53 5f 53 63  72 65 65 6e 4d 6f 64 65  |I "OS_ScreenMode|
00000aa0  22 0d 06 7c 1a 53 57 49  20 22 4f 53 5f 52 65 6d  |"..|.SWI "OS_Rem|
00000ab0  6f 76 65 43 75 72 73 6f  72 73 22 0d 06 86 0e 4d  |oveCursors"....M|
00000ac0  4f 56 20 70 63 2c 72 31  34 0d 06 90 04 0d 06 9a  |OV pc,r14.......|
00000ad0  1c 2e 73 63 72 65 65 6e  5f 73 69 7a 65 20 44 43  |..screen_size DC|
00000ae0  44 20 52 6f 77 2a 43 6f  6c 0d 06 a4 0b 2e 66 69  |D Row*Col.....fi|
00000af0  6c 6c 65 72 0d 06 ae 12  4c 44 52 20 53 43 52 2c  |ller....LDR SCR,|
00000b00  73 63 72 65 65 6e 0d 06  b8 16 41 44 44 20 4b 2c  |screen....ADD K,|
00000b10  53 43 52 2c 23 52 6f 77  2a 43 6f 6c 0d 06 c2 0c  |SCR,#Row*Col....|
00000b20  2e 76 75 6c 6c 6f 6f 70  0d 06 cc 12 20 20 4c 44  |.vulloop....  LD|
00000b30  52 20 43 4f 2c 5b 53 43  52 5d 0d 06 d6 18 20 20  |R CO,[SCR]....  |
00000b40  80 53 20 58 2c 43 4f 2c  23 26 30 30 30 30 30 30  |.S X,CO,#&000000|
00000b50  46 46 0d 06 e0 0f 20 20  4d 4f 56 4e 45 20 54 2c  |FF....  MOVNE T,|
00000b60  58 0d 06 ea 10 20 20 43  4d 50 20 54 2c 23 32 35  |X....  CMP T,#25|
00000b70  35 0d 06 f4 0d 20 20 ec  51 20 54 2c 23 30 0d 06  |5....  .Q T,#0..|
00000b80  fe 0d 20 20 4d 4f 56 20  43 2c 54 0d 07 08 18 20  |..  MOV C,T.... |
00000b90  20 80 53 20 58 2c 43 4f  2c 23 26 30 30 30 30 46  | .S X,CO,#&0000F|
00000ba0  46 30 30 0d 07 12 16 20  20 4d 4f 56 4e 45 20 54  |F00....  MOVNE T|
00000bb0  2c 58 2c 4c 53 52 20 23  38 0d 07 1c 10 20 20 43  |,X,LSR #8....  C|
00000bc0  4d 50 20 54 2c 23 32 35  35 0d 07 26 17 20 20 84  |MP T,#255..&.  .|
00000bd0  52 4e 45 20 43 2c 43 2c  54 2c 4c 53 4c 20 23 38  |RNE C,C,T,LSL #8|
00000be0  0d 07 30 18 20 20 80 53  20 58 2c 43 4f 2c 23 26  |..0.  .S X,CO,#&|
00000bf0  30 30 46 46 30 30 30 30  0d 07 3a 17 20 20 4d 4f  |00FF0000..:.  MO|
00000c00  56 4e 45 20 54 2c 58 2c  4c 53 52 20 23 31 36 0d  |VNE T,X,LSR #16.|
00000c10  07 44 10 20 20 43 4d 50  20 54 2c 23 32 35 35 0d  |.D.  CMP T,#255.|
00000c20  07 4e 18 20 20 84 52 4e  45 20 43 2c 43 2c 54 2c  |.N.  .RNE C,C,T,|
00000c30  4c 53 4c 20 23 31 36 0d  07 58 18 20 20 80 53 20  |LSL #16..X.  .S |
00000c40  58 2c 43 4f 2c 23 26 46  46 30 30 30 30 30 30 0d  |X,CO,#&FF000000.|
00000c50  07 62 17 20 20 4d 4f 56  4e 45 20 54 2c 58 2c 4c  |.b.  MOVNE T,X,L|
00000c60  53 52 20 23 32 34 0d 07  6c 10 20 20 43 4d 50 20  |SR #24..l.  CMP |
00000c70  54 2c 23 32 35 35 0d 07  76 18 20 20 84 52 4e 45  |T,#255..v.  .RNE|
00000c80  20 43 2c 43 2c 54 2c 4c  53 4c 20 23 32 34 0d 07  | C,C,T,LSL #24..|
00000c90  80 14 20 20 53 54 52 20  43 2c 5b 53 43 52 5d 2c  |..  STR C,[SCR],|
00000ca0  23 34 0d 07 8a 0f 20 20  43 4d 50 20 53 43 52 2c  |#4....  CMP SCR,|
00000cb0  4b 0d 07 94 0f 42 4c 4f  20 76 75 6c 6c 6f 6f 70  |K....BLO vulloop|
00000cc0  0d 07 9e 0e 4d 4f 56 20  50 43 2c 52 31 34 0d 07  |....MOV PC,R14..|
00000cd0  a8 04 0d 07 b2 0a 2e 62  65 67 69 6e 0d 07 bc 12  |.......begin....|
00000ce0  53 54 4d 46 44 20 31 33  21 2c 7b 31 34 7d 0d 07  |STMFD 13!,{14}..|
00000cf0  c6 0d 20 20 42 4c 20 63  61 6c 63 0d 07 d0 14 20  |..  BL calc.... |
00000d00  20 4c 44 52 20 53 43 52  2c 73 63 72 65 65 6e 0d  | LDR SCR,screen.|
00000d10  07 da 1a 20 20 41 44 44  20 53 43 52 2c 53 43 52  |...  ADD SCR,SCR|
00000d20  2c 23 52 6f 77 2a 43 6f  6c 0d 07 e4 16 20 20 53  |,#Row*Col....  S|
00000d30  55 42 20 53 43 52 2c 53  43 52 2c 23 43 6f 6c 0d  |UB SCR,SCR,#Col.|
00000d40  07 ee 14 20 20 41 44 52  20 53 54 41 4b 2c 73 74  |...  ADR STAK,st|
00000d50  61 63 6b 0d 07 f8 0e 20  20 4d 4f 56 20 41 2c 23  |ack....  MOV A,#|
00000d60  30 0d 08 02 0e 20 20 4d  4f 56 20 42 2c 23 30 0d  |0....  MOV B,#0.|
00000d70  08 0c 12 20 20 42 4c 20  69 74 65 72 61 74 69 6f  |...  BL iteratio|
00000d80  6e 0d 08 16 12 20 20 53  54 52 42 20 54 2c 5b 53  |n....  STRB T,[S|
00000d90  43 52 5d 0d 08 20 0e 20  20 4d 4f 56 20 53 2c 23  |CR].. .  MOV S,#|
00000da0  30 0d 08 2a 17 20 20 53  54 4d 49 41 20 28 53 54  |0..*.  STMIA (ST|
00000db0  41 4b 29 21 2c 7b 53 7d  0d 08 34 0e 20 20 2e 77  |AK)!,{S}..4.  .w|
00000dc0  68 69 6c 65 5f 31 0d 08  3e 13 20 20 20 20 41 44  |hile_1..>.    AD|
00000dd0  52 20 54 2c 73 74 61 63  6b 0d 08 48 12 20 20 20  |R T,stack..H.   |
00000de0  20 43 4d 50 20 53 54 41  4b 2c 54 0d 08 52 14 20  | CMP STAK,T..R. |
00000df0  20 20 20 20 20 42 4c 4e  45 20 74 72 61 63 6b 0d  |     BLNE track.|
00000e00  08 5c 11 20 20 42 4e 45  20 77 68 69 6c 65 5f 31  |.\.  BNE while_1|
00000e10  0d 08 66 12 4c 44 4d 46  44 20 31 33 21 2c 7b 50  |..f.LDMFD 13!,{P|
00000e20  43 7d 0d 08 70 04 0d 08  7a 0a 2e 74 72 61 63 6b  |C}..p...z..track|
00000e30  0d 08 84 12 53 54 4d 46  44 20 31 33 21 2c 7b 31  |....STMFD 13!,{1|
00000e40  34 7d 0d 08 8e 17 20 20  4c 44 4d 44 42 20 28 53  |4}....  LDMDB (S|
00000e50  54 41 4b 29 21 2c 7b 53  7d 0d 08 98 11 20 20 4d  |TAK)!,{S}....  M|
00000e60  4f 56 20 54 2c 23 31 30  32 34 0d 08 a2 10 20 20  |OV T,#1024....  |
00000e70  53 55 42 20 54 2c 54 2c  23 31 0d 08 ac 0d 20 20  |SUB T,T,#1....  |
00000e80  80 20 58 2c 54 2c 53 0d  08 b6 15 20 20 80 20 59  |. X,T,S....  . Y|
00000e90  2c 54 2c 53 2c 4c 53 52  20 23 31 30 0d 08 c0 15  |,T,S,LSR #10....|
00000ea0  20 20 4d 4f 56 20 43 2c  53 2c 4c 53 52 20 23 32  |  MOV C,S,LSR #2|
00000eb0  30 0d 08 ca 10 20 20 80  20 43 2c 43 2c 23 32 35  |0....  . C,C,#25|
00000ec0  35 0d 08 d4 15 20 20 4d  4f 56 20 44 2c 53 2c 4c  |5....  MOV D,S,L|
00000ed0  53 52 20 23 32 38 0d 08  de 0e 20 20 80 20 44 2c  |SR #28....  . D,|
00000ee0  44 2c 23 37 0d 08 e8 16  20 20 41 44 44 20 53 2c  |D,#7....  ADD S,|
00000ef0  59 2c 59 2c 4c 53 4c 20  23 32 0d 08 f2 14 f4 44  |Y,Y,LSL #2.....D|
00000f00  44 20 53 2c 59 2c 53 2c  4c 53 4c 20 23 33 0d 08  |D S,Y,S,LSL #3..|
00000f10  fc 18 20 20 53 55 42 20  53 2c 58 2c 53 2c 4c 53  |..  SUB S,X,S,LS|
00000f20  4c 20 23 53 68 66 0d 09  06 14 20 20 4c 44 52 42  |L #Shf....  LDRB|
00000f30  20 4b 2c 5b 53 43 52 2c  53 5d 0d 09 10 0e 20 20  | K,[SCR,S]....  |
00000f40  4d 4f 56 20 57 2c 23 30  0d 09 1a 0c 2e 77 68 69  |MOV W,#0.....whi|
00000f50  6c 65 5f 32 0d 09 24 10  20 20 41 44 44 20 44 2c  |le_2..$.  ADD D,|
00000f60  44 2c 23 35 0d 09 2e 10  20 20 43 4d 50 20 4b 2c  |D,#5....  CMP K,|
00000f70  23 32 35 35 0d 09 38 14  20 20 20 20 42 49 43 45  |#255..8.    BICE|
00000f80  51 20 44 2c 44 2c 23 31  0d 09 42 0f 20 20 4d 4f  |Q D,D,#1..B.  MO|
00000f90  56 20 43 4f 2c 23 38 0d  09 4c 0b 20 20 2e 6c 6f  |V CO,#8..L.  .lo|
00000fa0  6f 70 0d 09 56 15 20 20  20 20 53 55 42 53 20 43  |op..V.    SUBS C|
00000fb0  4f 2c 43 4f 2c 23 31 0d  09 60 1b 20 20 20 20 20  |O,CO,#1..`.     |
00000fc0  20 4c 44 4d 45 51 46 44  20 31 33 21 2c 7b 50 43  | LDMEQFD 13!,{PC|
00000fd0  7d 5e 0d 09 6a 0f 20 20  20 20 4d 4f 56 20 41 2c  |}^..j.    MOV A,|
00000fe0  58 0d 09 74 0f 20 20 20  20 4d 4f 56 20 42 2c 59  |X..t.    MOV B,Y|
00000ff0  0d 09 7e 12 20 20 20 20  41 44 44 20 44 2c 44 2c  |..~.    ADD D,D,|
00001000  23 31 0d 09 88 12 20 20  20 20 43 4d 50 20 4b 2c  |#1....    CMP K,|
00001010  23 32 35 35 0d 09 92 16  20 20 20 20 20 20 41 44  |#255....      AD|
00001020  44 45 51 20 44 2c 44 2c  23 31 0d 09 9c 13 20 20  |DEQ D,D,#1....  |
00001030  20 20 80 20 44 2c 44 2c  23 25 31 31 31 0d 09 a6  |  . D,D,#%111...|
00001040  10 20 20 20 20 43 4d 50  20 44 2c 23 30 0d 09 b0  |.    CMP D,#0...|
00001050  16 20 20 20 20 20 20 41  44 44 48 53 20 41 2c 58  |.      ADDHS A,X|
00001060  2c 23 31 0d 09 ba 10 20  20 20 20 43 4d 50 20 44  |,#1....    CMP D|
00001070  2c 23 31 0d 09 c4 16 20  20 20 20 20 20 41 44 44  |,#1....      ADD|
00001080  48 53 20 42 2c 59 2c 23  31 0d 09 ce 10 20 20 20  |HS B,Y,#1....   |
00001090  20 43 4d 50 20 44 2c 23  32 0d 09 d8 16 20 20 20  | CMP D,#2....   |
000010a0  20 20 20 53 55 42 48 53  20 41 2c 41 2c 23 31 0d  |   SUBHS A,A,#1.|
000010b0  09 e2 10 20 20 20 20 43  4d 50 20 44 2c 23 33 0d  |...    CMP D,#3.|
000010c0  09 ec 16 20 20 20 20 20  20 53 55 42 48 53 20 41  |...      SUBHS A|
000010d0  2c 41 2c 23 31 0d 09 f6  10 20 20 20 20 43 4d 50  |,A,#1....    CMP|
000010e0  20 44 2c 23 34 0d 0a 00  16 20 20 20 20 20 20 53  | D,#4....      S|
000010f0  55 42 48 53 20 42 2c 42  2c 23 31 0d 0a 0a 10 20  |UBHS B,B,#1.... |
00001100  20 20 20 43 4d 50 20 44  2c 23 35 0d 0a 14 16 20  |   CMP D,#5.... |
00001110  20 20 20 20 20 53 55 42  48 53 20 42 2c 42 2c 23  |     SUBHS B,B,#|
00001120  31 0d 0a 1e 10 20 20 20  20 43 4d 50 20 44 2c 23  |1....    CMP D,#|
00001130  36 0d 0a 28 16 20 20 20  20 20 20 41 44 44 48 53  |6..(.      ADDHS|
00001140  20 41 2c 41 2c 23 31 0d  0a 32 10 20 20 20 20 43  | A,A,#1..2.    C|
00001150  4d 50 20 44 2c 23 37 0d  0a 3c 16 20 20 20 20 20  |MP D,#7..<.     |
00001160  20 41 44 44 48 53 20 41  2c 41 2c 23 31 0d 0a 46  | ADDHS A,A,#1..F|
00001170  12 20 20 20 20 43 4d 50  20 41 2c 23 43 6f 6c 0d  |.    CMP A,#Col.|
00001180  0a 50 0e 20 20 42 48 53  20 6c 6f 6f 70 0d 0a 5a  |.P.  BHS loop..Z|
00001190  12 20 20 20 20 43 4d 50  20 42 2c 23 52 6f 77 0d  |.    CMP B,#Row.|
000011a0  0a 64 0e 20 20 42 48 53  20 6c 6f 6f 70 0d 0a 6e  |.d.  BHS loop..n|
000011b0  18 20 20 20 20 41 44 44  20 53 2c 42 2c 42 2c 4c  |.    ADD S,B,B,L|
000011c0  53 4c 20 23 32 0d 0a 78  1a 20 20 20 20 53 55 42  |SL #2..x.    SUB|
000011d0  20 53 2c 41 2c 53 2c 4c  53 4c 20 23 53 68 66 0d  | S,A,S,LSL #Shf.|
000011e0  0a 82 16 20 20 20 20 4c  44 52 42 20 54 2c 5b 53  |...    LDRB T,[S|
000011f0  43 52 2c 53 5d 0d 0a 8c  0f 20 20 20 20 43 4d 50  |CR,S]....    CMP|
00001200  20 54 2c 4b 0d 0a 96 16  20 20 20 20 20 20 41 44  | T,K....      AD|
00001210  44 45 51 20 57 2c 57 2c  23 31 0d 0a a0 11 20 20  |DEQ W,W,#1....  |
00001220  20 20 43 4d 50 20 43 4f  2c 23 35 0d 0a aa 12 20  |  CMP CO,#5.... |
00001230  20 20 20 20 20 42 45 51  20 6f 76 65 72 0d 0a b4  |     BEQ over...|
00001240  10 20 20 20 20 43 4d 50  20 57 2c 23 38 0d 0a be  |.    CMP W,#8...|
00001250  1c 20 20 20 20 20 20 4c  44 4d 48 49 46 44 20 20  |.      LDMHIFD  |
00001260  31 33 21 2c 7b 50 43 7d  5e 0d 0a c8 0d 20 20 20  |13!,{PC}^....   |
00001270  20 2e 6f 76 65 72 0d 0a  d2 10 20 20 20 20 43 4d  | .over....    CM|
00001280  50 20 54 2c 23 30 0d 0a  dc 13 20 20 20 20 42 4e  |P T,#0....    BN|
00001290  45 20 65 6e 64 69 66 5f  33 0d 0a e6 16 20 20 20  |E endif_3....   |
000012a0  20 20 20 42 4c 20 69 74  65 72 61 74 69 6f 6e 0d  |   BL iteration.|
000012b0  0a f0 18 20 20 20 20 20  20 53 54 52 42 20 54 2c  |...      STRB T,|
000012c0  5b 53 2c 53 43 52 5d 0d  0a fa 11 20 20 20 20 20  |[S,SCR]....     |
000012d0  20 43 4d 50 20 54 2c 4b  0d 0b 04 13 20 20 20 20  | CMP T,K....    |
000012e0  20 20 20 20 ec 51 20 57  2c 23 30 0d 0b 0e 15 20  |    .Q W,#0.... |
000012f0  20 20 20 20 20 42 45 51  20 65 6e 64 69 66 5f 32  |     BEQ endif_2|
00001300  0d 0b 18 13 20 20 20 20  20 20 20 20 43 4d 50 20  |....        CMP |
00001310  54 2c 43 0d 0b 22 17 20  20 20 20 20 20 20 20 42  |T,C..".        B|
00001320  45 51 20 65 6e 64 69 66  5f 31 0d 0b 2c 1f 20 20  |EQ endif_1..,.  |
00001330  20 20 20 20 20 20 20 20  41 44 44 20 53 2c 41 2c  |        ADD S,A,|
00001340  42 2c 4c 53 4c 20 23 31  30 0d 0b 36 1f 20 20 20  |B,LSL #10..6.   |
00001350  20 20 20 20 20 20 20 41  44 44 20 53 2c 53 2c 43  |       ADD S,S,C|
00001360  2c 4c 53 4c 20 23 32 30  0d 0b 40 1f 20 20 20 20  |,LSL #20..@.    |
00001370  20 20 20 20 20 20 41 44  44 20 53 2c 53 2c 44 2c  |      ADD S,S,D,|
00001380  4c 53 4c 20 23 32 38 0d  0b 4a 1f 20 20 20 20 20  |LSL #28..J.     |
00001390  20 20 20 20 20 53 54 4d  49 41 20 28 53 54 41 4b  |     STMIA (STAK|
000013a0  29 21 2c 7b 53 7d 0d 0b  54 15 20 20 20 20 20 20  |)!,{S}..T.      |
000013b0  20 20 20 20 4d 4f 56 20  43 2c 54 0d 0b 5e 14 20  |    MOV C,T..^. |
000013c0  20 20 20 20 20 20 20 2e  65 6e 64 69 66 5f 31 0d  |       .endif_1.|
000013d0  0b 68 12 20 20 20 20 20  20 2e 65 6e 64 69 66 5f  |.h.      .endif_|
000013e0  32 0d 0b 72 10 20 20 20  20 2e 65 6e 64 69 66 5f  |2..r.    .endif_|
000013f0  33 0d 0b 7c 0f 20 20 20  20 43 4d 50 20 54 2c 4b  |3..|.    CMP T,K|
00001400  0d 0b 86 0e 20 20 42 4e  45 20 6c 6f 6f 70 0d 0b  |....  BNE loop..|
00001410  90 0d 20 20 4d 4f 56 20  58 2c 41 0d 0b 9a 0d 20  |..  MOV X,A.... |
00001420  20 4d 4f 56 20 59 2c 42  0d 0b a4 0f 42 41 4c 20  | MOV Y,B....BAL |
00001430  77 68 69 6c 65 5f 32 0d  0b ae 0a 2e 73 74 61 63  |while_2.....stac|
00001440  6b 0d 0b b8 05 5d 0d 0b  c2 05 ed 0d 0b cc 05 e1  |k....]..........|
00001450  0d 0b d6 04 0d 0b e0 04  0d 0b ea 0a dd 20 f2 41  |............. .A|
00001460  53 53 0d 0b f4 26 41 3d  33 3a 42 3d 34 3a 47 3d  |SS...&A=3:B=4:G=|
00001470  35 3a 53 3d 37 3a 55 3d  38 3a 56 3d 39 3a 3a 4d  |5:S=7:U=8:V=9::M|
00001480  3d 31 31 3a 4e 3d 31 32  0d 0b fe 38 54 3d 30 3a  |=11:N=12...8T=0:|
00001490  48 3d 31 3a 44 3d 32 3a  41 48 3d 33 3a 42 48 3d  |H=1:D=2:AH=3:BH=|
000014a0  34 3a 41 4c 3d 35 3a 42  4c 3d 36 3a 55 4c 3d 37  |4:AL=5:BL=6:UL=7|
000014b0  3a 55 48 3d 38 3a 56 4c  3d 39 3a 56 48 3d 31 30  |:UH=8:VL=9:VH=10|
000014c0  0d 0c 08 1b 53 4c 3d 31  31 3a 53 48 3d 31 32 3a  |....SL=11:SH=12:|
000014d0  54 4c 3d 31 33 3a 54 48  3d 31 34 0d 0c 12 04 0d  |TL=13:TH=14.....|
000014e0  0c 1c 14 e3 20 50 41 53  53 3d 30 20 b8 20 32 20  |.... PASS=0 . 2 |
000014f0  88 20 32 0d 0c 26 09 50  25 3d 51 25 0d 0c 30 0d  |. 2..&.P%=Q%..0.|
00001500  5b 4f 50 54 20 50 41 53  53 0d 0c 3a 0e 2e 44 44  |[OPT PASS..:..DD|
00001510  20 45 51 55 44 20 30 0d  0c 44 0f 2e 4f 58 44 20  | EQUD 0..D..OXD |
00001520  45 51 55 44 20 30 0d 0c  4e 0f 2e 4f 59 44 20 45  |EQUD 0..N..OYD E|
00001530  51 55 44 20 30 0d 0c 58  0e 2e 46 44 20 45 51 55  |QUD 0..X..FD EQU|
00001540  44 20 30 0d 0c 62 0e 2e  69 74 65 72 61 74 69 6f  |D 0..b..iteratio|
00001550  6e 0d 0c 6c 17 53 54 4d  46 44 20 31 33 21 2c 7b  |n..l.STMFD 13!,{|
00001560  31 2d 31 32 2c 31 34 7d  0d 0c 76 0f 20 20 4c 44  |1-12,14}..v.  LD|
00001570  52 20 44 2c 53 48 44 0d  0c 80 0e 20 20 43 4d 50  |R D,SHD....  CMP|
00001580  20 44 2c 23 34 0d 0c 8a  14 20 20 42 4c 45 20 69  | D,#4....  BLE i|
00001590  74 65 72 61 74 69 6f 6e  48 0d 0c 94 10 20 20 4c  |terationH....  L|
000015a0  44 52 20 55 2c 4f 58 48  44 0d 0c 9e 10 20 20 4c  |DR U,OXHD....  L|
000015b0  44 52 20 56 2c 4f 59 48  44 0d 0c a8 11 20 20 4d  |DR V,OYHD....  M|
000015c0  4c 41 20 41 2c 44 2c 41  2c 55 0d 0c b2 11 20 20  |LA A,D,A,U....  |
000015d0  4d 4c 41 20 42 2c 44 2c  42 2c 56 0d 0c bc 16 20  |MLA B,D,B,V.... |
000015e0  20 4d 4f 56 53 20 54 2c  44 2c 4c 53 52 20 23 31  | MOVS T,D,LSR #1|
000015f0  36 0d 0c c6 14 20 20 42  4e 45 20 69 74 65 72 61  |6....  BNE itera|
00001600  74 69 6f 6e 4c 0d 0c d0  0e 20 20 4d 4f 56 20 54  |tionL....  MOV T|
00001610  2c 23 30 0d 0c da 10 20  20 53 54 52 20 54 2c 4f  |,#0....  STR T,O|
00001620  58 4c 44 0d 0c e4 10 20  20 53 54 52 20 54 2c 4f  |XLD....  STR T,O|
00001630  59 4c 44 0d 0c ee 0f 20  20 53 54 52 20 54 2c 53  |YLD....  STR T,S|
00001640  4c 44 0d 0c f8 0d 20 20  4d 4f 56 20 55 2c 41 0d  |LD....  MOV U,A.|
00001650  0d 02 0d 20 20 4d 4f 56  20 56 2c 42 0d 0d 0c 0e  |...  MOV V,B....|
00001660  20 20 4c 44 52 20 44 2c  44 44 0d 0d 16 10 20 20  |  LDR D,DD....  |
00001670  42 49 43 20 44 2c 44 2c  23 31 0d 0d 20 06 20 5d  |BIC D,D,#1.. . ]|
00001680  0d 0d 2a 13 20 e7 20 53  74 72 6f 6e 67 41 52 4d  |..*. . StrongARM|
00001690  20 20 8c 0d 0d 34 0f 20  5b 20 4f 50 54 20 50 41  |  ...4. [ OPT PA|
000016a0  53 53 0d 0d 3e 15 20 20  a4 53 4d 55 4c 4c 28 47  |SS..>.  .SMULL(G|
000016b0  2c 4d 2c 55 2c 55 29 0d  0d 48 0f 20 20 42 41 4c  |,M,U,U)..H.  BAL|
000016c0  20 69 6e 5f 69 74 0d 0d  52 0e 20 20 2e 77 68 69  | in_it..R.  .whi|
000016d0  6c 65 5f 32 0d 0d 5c 15  20 20 a4 53 4d 55 4c 4c  |le_2..\.  .SMULL|
000016e0  28 47 2c 4d 2c 55 2c 55  29 0d 0d 66 18 20 20 41  |(G,M,U,U)..f.  A|
000016f0  44 44 20 56 2c 42 2c 56  2c 4c 53 4c 20 23 31 2b  |DD V,B,V,LSL #1+|
00001700  33 0d 0d 70 17 20 20 41  44 44 20 56 2c 56 2c 48  |3..p.  ADD V,V,H|
00001710  2c 4c 53 52 20 23 32 38  0d 0d 7a 0a 2e 69 6e 5f  |,LSR #28..z..in_|
00001720  69 74 0d 0d 84 15 20 20  a4 53 4d 55 4c 4c 28 48  |it....  .SMULL(H|
00001730  2c 4e 2c 56 2c 56 29 0d  0d 8e 15 20 20 4d 4f 56  |,N,V,V)....  MOV|
00001740  20 47 2c 47 2c 4c 53 52  20 23 32 39 0d 0d 98 16  | G,G,LSR #29....|
00001750  20 20 41 44 44 20 53 2c  47 2c 4d 2c 4c 53 4c 20  |  ADD S,G,M,LSL |
00001760  23 33 0d 0d a2 0f 20 20  41 44 44 20 4d 2c 4d 2c  |#3....  ADD M,M,|
00001770  4e 0d 0d ac 16 20 20 43  4d 50 20 4d 2c 23 34 3c  |N....  CMP M,#4<|
00001780  3c 28 32 39 2d 33 29 0d  0d b6 0f 20 20 42 48 53  |<(29-3)....  BHS|
00001790  20 62 72 65 61 6b 0d 0d  c0 15 20 20 a4 53 4d 55  | break....  .SMU|
000017a0  4c 4c 28 47 2c 56 2c 55  2c 56 29 0d 0d ca 15 20  |LL(G,V,U,V).... |
000017b0  20 4d 4f 56 20 48 2c 48  2c 4c 53 52 20 23 32 39  | MOV H,H,LSR #29|
000017c0  0d 0d d4 16 20 20 41 44  44 20 54 2c 48 2c 4e 2c  |....  ADD T,H,N,|
000017d0  4c 53 4c 20 23 33 0d 0d  de 0f 20 20 53 55 42 20  |LSL #3....  SUB |
000017e0  55 2c 53 2c 54 0d 0d e8  0f 20 20 41 44 44 20 55  |U,S,T....  ADD U|
000017f0  2c 41 2c 55 0d 0d f2 15  20 20 a4 53 4d 55 4c 4c  |,A,U....  .SMULL|
00001800  28 48 2c 4d 2c 55 2c 55  29 0d 0d fc 18 20 20 41  |(H,M,U,U)....  A|
00001810  44 44 20 56 2c 42 2c 56  2c 4c 53 4c 20 23 31 2b  |DD V,B,V,LSL #1+|
00001820  33 0d 0e 06 17 20 20 41  44 44 20 56 2c 56 2c 47  |3....  ADD V,V,G|
00001830  2c 4c 53 52 20 23 32 38  0d 0e 10 15 20 20 a4 53  |,LSR #28....  .S|
00001840  4d 55 4c 4c 28 47 2c 4e  2c 56 2c 56 29 0d 0e 1a  |MULL(G,N,V,V)...|
00001850  15 20 20 4d 4f 56 20 48  2c 48 2c 4c 53 52 20 23  |.  MOV H,H,LSR #|
00001860  32 39 0d 0e 24 16 20 20  41 44 44 20 53 2c 48 2c  |29..$.  ADD S,H,|
00001870  4d 2c 4c 53 4c 20 23 33  0d 0e 2e 0f 20 20 41 44  |M,LSL #3....  AD|
00001880  44 20 4d 2c 4d 2c 4e 0d  0e 38 16 20 20 43 4d 50  |D M,M,N..8.  CMP|
00001890  20 4d 2c 23 34 3c 3c 28  32 39 2d 33 29 0d 0e 42  | M,#4<<(29-3)..B|
000018a0  10 20 20 42 48 53 20 62  72 65 61 6b 31 0d 0e 4c  |.  BHS break1..L|
000018b0  15 20 20 a4 53 4d 55 4c  4c 28 48 2c 56 2c 55 2c  |.  .SMULL(H,V,U,|
000018c0  56 29 0d 0e 56 15 20 20  4d 4f 56 20 47 2c 47 2c  |V)..V.  MOV G,G,|
000018d0  4c 53 52 20 23 32 39 0d  0e 60 16 20 20 41 44 44  |LSR #29..`.  ADD|
000018e0  20 54 2c 47 2c 4e 2c 4c  53 4c 20 23 33 0d 0e 6a  | T,G,N,LSL #3..j|
000018f0  0f 20 20 53 55 42 20 55  2c 53 2c 54 0d 0e 74 0f  |.  SUB U,S,T..t.|
00001900  20 20 41 44 44 20 55 2c  41 2c 55 0d 0e 7e 11 20  |  ADD U,A,U..~. |
00001910  20 53 55 42 53 20 44 2c  44 2c 23 32 0d 0e 88 11  | SUBS D,D,#2....|
00001920  20 20 42 4e 45 20 77 68  69 6c 65 5f 32 0d 0e 92  |  BNE while_2...|
00001930  0e 4d 4f 56 20 54 2c 23  32 35 35 0d 0e 9c 17 4c  |.MOV T,#255....L|
00001940  44 4d 46 44 20 31 33 21  2c 7b 31 2d 31 32 2c 50  |DMFD 13!,{1-12,P|
00001950  43 7d 0d 0e a6 0b 2e 62  72 65 61 6b 31 0d 0e b0  |C}.....break1...|
00001960  0e 53 55 42 20 44 2c 44  2c 23 31 0d 0e ba 0a 2e  |.SUB D,D,#1.....|
00001970  62 72 65 61 6b 0d 0e c4  0e 20 20 2e 77 68 69 6c  |break....  .whil|
00001980  65 5f 33 0d 0e ce 12 20  20 20 20 43 4d 50 20 44  |e_3....    CMP D|
00001990  2c 23 32 35 34 0d 0e d8  16 20 20 20 20 53 55 42  |,#254....    SUB|
000019a0  48 49 20 44 2c 44 2c 23  32 35 34 0d 0e e2 11 20  |HI D,D,#254.... |
000019b0  20 42 48 49 20 77 68 69  6c 65 5f 33 0d 0e ec 0d  | BHI while_3....|
000019c0  20 20 4d 4f 56 20 54 2c  44 0d 0e f6 19 20 20 4c  |  MOV T,D....  L|
000019d0  44 4d 46 44 20 31 33 21  2c 7b 31 2d 31 32 2c 50  |DMFD 13!,{1-12,P|
000019e0  43 7d 0d 0f 00 06 20 5d  0d 0f 0a 06 20 cc 0d 0f  |C}.... ].... ...|
000019f0  14 0f 20 5b 20 4f 50 54  20 50 41 53 53 0d 0f 1e  |.. [ OPT PASS...|
00001a00  0d 20 2e 77 68 69 6c 65  5f 32 0d 0f 28 10 20 20  |. .while_2..(.  |
00001a10  20 20 4d 4f 56 53 20 48  2c 55 0d 0f 32 16 20 20  |  MOVS H,U..2.  |
00001a20  20 20 20 20 52 53 42 4d  49 20 48 2c 48 2c 23 30  |    RSBMI H,H,#0|
00001a30  0d 0f 3c 17 20 20 20 20  4d 4f 56 20 4d 2c 48 2c  |..<.    MOV M,H,|
00001a40  4c 53 52 20 23 31 36 0d  0f 46 19 20 20 20 20 42  |LSR #16..F.    B|
00001a50  49 43 20 4e 2c 48 2c 4d  2c 4c 53 4c 20 23 31 36  |IC N,H,M,LSL #16|
00001a60  0d 0f 50 11 20 20 20 20  4d 55 4c 20 4e 2c 4d 2c  |..P.    MUL N,M,|
00001a70  4e 0d 0f 5a 14 20 20 20  20 43 4d 50 20 48 2c 23  |N..Z.    CMP H,#|
00001a80  32 3c 3c 32 39 0d 0f 64  13 20 20 20 20 20 20 42  |2<<29..d.      B|
00001a90  48 53 20 62 72 65 61 6b  0d 0f 6e 10 20 20 20 20  |HS break..n.    |
00001aa0  4d 4f 56 53 20 48 2c 56  0d 0f 78 11 20 20 20 20  |MOVS H,V..x.    |
00001ab0  4d 55 4c 20 54 2c 4d 2c  4d 0d 0f 82 16 20 20 20  |MUL T,M,M....   |
00001ac0  20 20 20 52 53 42 4d 49  20 48 2c 48 2c 23 30 0d  |   RSBMI H,H,#0.|
00001ad0  0f 8c 17 20 20 20 20 4d  4f 56 20 4d 2c 48 2c 4c  |...    MOV M,H,L|
00001ae0  53 52 20 23 31 36 0d 0f  96 16 20 20 20 20 4d 4f  |SR #16....    MO|
00001af0  56 20 54 2c 54 2c 4c 53  4c 20 23 33 0d 0f a0 19  |V T,T,LSL #3....|
00001b00  20 20 20 20 41 44 44 20  53 2c 54 2c 4e 2c 4c 53  |    ADD S,T,N,LS|
00001b10  52 20 23 31 32 0d 0f aa  19 20 20 20 20 42 49 43  |R #12....    BIC|
00001b20  20 4e 2c 48 2c 4d 2c 4c  53 4c 20 23 31 36 0d 0f  | N,H,M,LSL #16..|
00001b30  b4 11 20 20 20 20 4d 55  4c 20 4e 2c 4d 2c 4e 0d  |..    MUL N,M,N.|
00001b40  0f be 14 20 20 20 20 43  4d 50 20 48 2c 23 32 3c  |...    CMP H,#2<|
00001b50  3c 32 39 0d 0f c8 13 20  20 20 20 20 20 42 48 53  |<29....      BHS|
00001b60  20 62 72 65 61 6b 0d 0f  d2 11 20 20 20 20 4d 55  | break....    MU|
00001b70  4c 20 54 2c 4d 2c 4d 0d  0f dc 12 20 20 20 20 41  |L T,M,M....    A|
00001b80  44 44 53 20 4d 2c 55 2c  56 0d 0f e6 16 20 20 20  |DDS M,U,V....   |
00001b90  20 20 20 52 53 42 4d 49  20 4d 2c 4d 2c 23 30 0d  |   RSBMI M,M,#0.|
00001ba0  0f f0 16 20 20 20 20 4d  4f 56 20 54 2c 54 2c 4c  |...    MOV T,T,L|
00001bb0  53 4c 20 23 33 0d 0f fa  19 20 20 20 20 41 44 44  |SL #3....    ADD|
00001bc0  20 54 2c 54 2c 4e 2c 4c  53 52 20 23 31 32 0d 10  | T,T,N,LSR #12..|
00001bd0  04 11 20 20 20 20 41 44  44 20 48 2c 53 2c 54 0d  |..    ADD H,S,T.|
00001be0  10 0e 14 20 20 20 20 43  4d 50 20 48 2c 23 34 3c  |...    CMP H,#4<|
00001bf0  3c 32 39 0d 10 18 13 20  20 20 20 20 20 42 48 53  |<29....      BHS|
00001c00  20 62 72 65 61 6b 0d 10  22 17 20 20 20 20 4d 4f  | break..".    MO|
00001c10  56 20 4e 2c 4d 2c 4c 53  52 20 23 31 36 0d 10 2c  |V N,M,LSR #16..,|
00001c20  11 20 20 20 20 4d 55 4c  20 55 2c 4e 2c 4e 0d 10  |.    MUL U,N,N..|
00001c30  36 19 20 20 20 20 42 49  43 20 4d 2c 4d 2c 4e 2c  |6.    BIC M,M,N,|
00001c40  4c 53 4c 20 23 31 36 0d  10 40 13 20 20 20 20 53  |LSL #16..@.    S|
00001c50  55 42 53 20 44 2c 44 2c  23 31 0d 10 4a 16 20 20  |UBS D,D,#1..J.  |
00001c60  20 20 4d 4f 56 20 55 2c  55 2c 4c 53 4c 20 23 33  |  MOV U,U,LSL #3|
00001c70  0d 10 54 11 20 20 20 20  4d 55 4c 20 56 2c 4d 2c  |..T.    MUL V,M,|
00001c80  4e 0d 10 5e 11 20 20 20  20 53 55 42 20 48 2c 55  |N..^.    SUB H,U|
00001c90  2c 48 0d 10 68 11 20 20  20 20 53 55 42 20 55 2c  |,H..h.    SUB U,|
00001ca0  53 2c 54 0d 10 72 11 20  20 20 20 41 44 44 20 55  |S,T..r.    ADD U|
00001cb0  2c 55 2c 41 0d 10 7c 19  20 20 20 20 41 44 44 20  |,U,A..|.    ADD |
00001cc0  48 2c 48 2c 56 2c 4c 53  52 20 23 31 32 0d 10 86  |H,H,V,LSR #12...|
00001cd0  11 20 20 20 20 41 44 44  20 56 2c 42 2c 48 0d 10  |.    ADD V,B,H..|
00001ce0  90 11 20 20 42 4e 45 20  77 68 69 6c 65 5f 32 0d  |..  BNE while_2.|
00001cf0  10 9a 0e 4d 4f 56 20 54  2c 23 32 35 35 0d 10 a4  |...MOV T,#255...|
00001d00  17 4c 44 4d 46 44 20 31  33 21 2c 7b 31 2d 31 32  |.LDMFD 13!,{1-12|
00001d10  2c 50 43 7d 0d 10 ae 0a  2e 62 72 65 61 6b 0d 10  |,PC}.....break..|
00001d20  b8 0e 20 20 2e 77 68 69  6c 65 5f 33 0d 10 c2 12  |..  .while_3....|
00001d30  20 20 20 20 43 4d 50 20  44 2c 23 32 35 34 0d 10  |    CMP D,#254..|
00001d40  cc 16 20 20 20 20 53 55  42 48 49 20 44 2c 44 2c  |..    SUBHI D,D,|
00001d50  23 32 35 34 0d 10 d6 11  20 20 42 48 49 20 77 68  |#254....  BHI wh|
00001d60  69 6c 65 5f 33 0d 10 e0  0d 20 20 4d 4f 56 20 54  |ile_3....  MOV T|
00001d70  2c 44 0d 10 ea 19 20 20  4c 44 4d 46 44 20 31 33  |,D....  LDMFD 13|
00001d80  21 2c 7b 31 2d 31 32 2c  50 43 7d 0d 10 f4 05 5d  |!,{1-12,PC}....]|
00001d90  0d 10 fe 05 cd 0d 11 08  0e 5b 20 4f 50 54 20 50  |.........[ OPT P|
00001da0  41 53 53 0d 11 12 0f 2e  69 74 65 72 61 74 69 6f  |ASS.....iteratio|
00001db0  6e 4c 0d 11 1c 15 20 20  4d 4f 56 20 41 2c 41 2c  |nL....  MOV A,A,|
00001dc0  41 53 52 20 23 31 36 0d  11 26 15 20 20 4d 4f 56  |ASR #16..&.  MOV|
00001dd0  20 42 2c 42 2c 41 53 52  20 23 31 36 0d 11 30 0d  | B,B,ASR #16..0.|
00001de0  20 20 4d 4f 56 20 55 2c  41 0d 11 3a 0d 20 20 4d  |  MOV U,A..:.  M|
00001df0  4f 56 20 56 2c 42 0d 11  44 0e 20 20 4c 44 52 20  |OV V,B..D.  LDR |
00001e00  44 2c 44 44 0d 11 4e 10  20 20 42 49 43 20 44 2c  |D,DD..N.  BIC D,|
00001e10  44 2c 23 33 0d 11 58 0f  20 20 4d 55 4c 20 54 2c  |D,#3..X.  MUL T,|
00001e20  56 2c 56 0d 11 62 0b 42  41 4c 20 77 69 6e 0d 11  |V,V..b.BAL win..|
00001e30  6c 0f 20 20 2e 77 68 69  6c 65 5f 32 4c 0d 11 76  |l.  .while_2L..v|
00001e40  11 20 20 20 20 4d 55 4c  20 54 2c 56 2c 56 0d 11  |.    MUL T,V,V..|
00001e50  80 18 20 20 20 20 53 55  42 20 55 2c 53 2c 48 2c  |..    SUB U,S,H,|
00001e60  4c 53 4c 20 23 31 0d 11  8a 19 20 20 20 20 41 44  |LSL #1....    AD|
00001e70  44 20 55 2c 41 2c 55 2c  41 53 52 20 23 31 33 0d  |D U,A,U,ASR #13.|
00001e80  11 94 08 2e 77 69 6e 0d  11 9e 13 20 20 20 20 4d  |....win....    M|
00001e90  4c 41 20 53 2c 55 2c 55  2c 54 0d 11 a8 15 20 20  |LA S,U,U,T....  |
00001ea0  20 20 43 4d 50 20 53 2c  23 34 3c 3c 20 32 36 0d  |  CMP S,#4<< 26.|
00001eb0  11 b2 11 20 20 20 20 4d  55 4c 20 48 2c 55 2c 56  |...    MUL H,U,V|
00001ec0  0d 11 bc 12 20 20 20 20  42 48 53 20 62 72 65 61  |....    BHS brea|
00001ed0  6b 4c 0d 11 c6 19 20 20  20 20 41 44 44 20 56 2c  |kL....    ADD V,|
00001ee0  42 2c 48 2c 41 53 52 20  23 31 32 0d 11 d0 11 20  |B,H,ASR #12.... |
00001ef0  20 20 20 4d 55 4c 20 48  2c 56 2c 56 0d 11 da 18  |   MUL H,V,V....|
00001f00  20 20 20 20 53 55 42 20  55 2c 53 2c 54 2c 4c 53  |    SUB U,S,T,LS|
00001f10  4c 20 23 31 0d 11 e4 19  20 20 20 20 41 44 44 20  |L #1....    ADD |
00001f20  55 2c 41 2c 55 2c 41 53  52 20 23 31 33 0d 11 ee  |U,A,U,ASR #13...|
00001f30  13 20 20 20 20 4d 4c 41  20 53 2c 55 2c 55 2c 48  |.    MLA S,U,U,H|
00001f40  0d 11 f8 15 20 20 20 20  43 4d 50 20 53 2c 23 34  |....    CMP S,#4|
00001f50  3c 3c 20 32 36 0d 12 02  11 20 20 20 20 4d 55 4c  |<< 26....    MUL|
00001f60  20 54 2c 55 2c 56 0d 12  0c 13 20 20 20 20 42 48  | T,U,V....    BH|
00001f70  53 20 62 72 65 61 6b 32  4c 0d 12 16 19 20 20 20  |S break2L....   |
00001f80  20 41 44 44 20 56 2c 42  2c 54 2c 41 53 52 20 23  | ADD V,B,T,ASR #|
00001f90  31 32 0d 12 20 11 20 20  20 20 4d 55 4c 20 54 2c  |12.. .    MUL T,|
00001fa0  56 2c 56 0d 12 2a 18 20  20 20 20 53 55 42 20 55  |V,V..*.    SUB U|
00001fb0  2c 53 2c 48 2c 4c 53 4c  20 23 31 0d 12 34 19 20  |,S,H,LSL #1..4. |
00001fc0  20 20 20 41 44 44 20 55  2c 41 2c 55 2c 41 53 52  |   ADD U,A,U,ASR|
00001fd0  20 23 31 33 0d 12 3e 13  20 20 20 20 4d 4c 41 20  | #13..>.    MLA |
00001fe0  53 2c 55 2c 55 2c 54 0d  12 48 15 20 20 20 20 43  |S,U,U,T..H.    C|
00001ff0  4d 50 20 53 2c 23 34 3c  3c 20 32 36 0d 12 52 11  |MP S,#4<< 26..R.|
00002000  20 20 20 20 4d 55 4c 20  48 2c 55 2c 56 0d 12 5c  |    MUL H,U,V..\|
00002010  13 20 20 20 20 42 48 53  20 62 72 65 61 6b 33 4c  |.    BHS break3L|
00002020  0d 12 66 19 20 20 20 20  41 44 44 20 56 2c 42 2c  |..f.    ADD V,B,|
00002030  48 2c 41 53 52 20 23 31  32 0d 12 70 11 20 20 20  |H,ASR #12..p.   |
00002040  20 4d 55 4c 20 48 2c 56  2c 56 0d 12 7a 18 20 20  | MUL H,V,V..z.  |
00002050  20 20 53 55 42 20 55 2c  53 2c 54 2c 4c 53 4c 20  |  SUB U,S,T,LSL |
00002060  23 31 0d 12 84 19 20 20  20 20 41 44 44 20 55 2c  |#1....    ADD U,|
00002070  41 2c 55 2c 41 53 52 20  23 31 33 0d 12 8e 13 20  |A,U,ASR #13.... |
00002080  20 20 20 4d 4c 41 20 53  2c 55 2c 55 2c 48 0d 12  |   MLA S,U,U,H..|
00002090  98 15 20 20 20 20 43 4d  50 20 53 2c 23 34 3c 3c  |..    CMP S,#4<<|
000020a0  20 32 36 0d 12 a2 13 20  20 20 20 42 48 53 20 62  | 26....    BHS b|
000020b0  72 65 61 6b 34 4c 0d 12  ac 11 20 20 20 20 4d 55  |reak4L....    MU|
000020c0  4c 20 54 2c 55 2c 56 0d  12 b6 19 20 20 20 20 41  |L T,U,V....    A|
000020d0  44 44 20 56 2c 42 2c 54  2c 41 53 52 20 23 31 32  |DD V,B,T,ASR #12|
000020e0  0d 12 c0 13 20 20 20 20  53 55 42 53 20 44 2c 44  |....    SUBS D,D|
000020f0  2c 23 34 0d 12 ca 12 20  20 42 4e 45 20 77 68 69  |,#4....  BNE whi|
00002100  6c 65 5f 32 4c 0d 12 d4  0e 4d 4f 56 20 54 2c 23  |le_2L....MOV T,#|
00002110  32 35 35 0d 12 de 17 4c  44 4d 46 44 20 31 33 21  |255....LDMFD 13!|
00002120  2c 7b 31 2d 31 32 2c 50  43 7d 0d 12 e8 0c 2e 62  |,{1-12,PC}.....b|
00002130  72 65 61 6b 34 4c 0d 12  f2 10 20 53 55 42 53 20  |reak4L.... SUBS |
00002140  44 2c 44 2c 23 31 0d 12  fc 0c 2e 62 72 65 61 6b  |D,D,#1.....break|
00002150  33 4c 0d 13 06 10 20 53  55 42 53 20 44 2c 44 2c  |3L.... SUBS D,D,|
00002160  23 31 0d 13 10 0c 2e 62  72 65 61 6b 32 4c 0d 13  |#1.....break2L..|
00002170  1a 10 20 53 55 42 53 20  44 2c 44 2c 23 31 0d 13  |.. SUBS D,D,#1..|
00002180  24 0b 2e 62 72 65 61 6b  4c 0d 13 2e 0f 20 20 2e  |$..breakL....  .|
00002190  77 68 69 6c 65 5f 33 4c  0d 13 38 12 20 20 20 20  |while_3L..8.    |
000021a0  43 4d 50 20 44 2c 23 32  35 34 0d 13 42 16 20 20  |CMP D,#254..B.  |
000021b0  20 20 53 55 42 48 49 20  44 2c 44 2c 23 32 35 34  |  SUBHI D,D,#254|
000021c0  0d 13 4c 12 20 20 42 48  49 20 77 68 69 6c 65 5f  |..L.  BHI while_|
000021d0  33 4c 0d 13 56 0d 20 20  4d 4f 56 20 54 2c 44 0d  |3L..V.  MOV T,D.|
000021e0  13 60 19 20 20 4c 44 4d  46 44 20 31 33 21 2c 7b  |.`.  LDMFD 13!,{|
000021f0  31 2d 31 32 2c 50 43 7d  0d 13 6a 06 20 20 0d 13  |1-12,PC}..j.  ..|
00002200  74 0d 2e 57 44 20 44 43  44 20 30 0d 13 7e 0d 2e  |t..WD DCD 0..~..|
00002210  58 44 20 44 43 44 20 30  0d 13 88 0d 2e 59 44 20  |XD DCD 0.....YD |
00002220  44 43 44 20 30 0d 13 92  0f 2e 4f 58 48 44 20 44  |DCD 0.....OXHD D|
00002230  43 44 20 30 0d 13 9c 0f  2e 4f 58 4c 44 20 44 43  |CD 0.....OXLD DC|
00002240  44 20 30 0d 13 a6 0f 2e  4f 59 48 44 20 44 43 44  |D 0.....OYHD DCD|
00002250  20 30 0d 13 b0 0f 2e 4f  59 4c 44 20 44 43 44 20  | 0.....OYLD DCD |
00002260  30 0d 13 ba 0f 2e 53 48  44 20 20 44 43 44 20 30  |0.....SHD  DCD 0|
00002270  0d 13 c4 11 2e 53 4c 44  20 20 44 43 44 20 30 20  |.....SLD  DCD 0 |
00002280  20 0d 13 ce 09 2e 63 61  6c 63 0d 13 d8 17 53 54  | .....calc....ST|
00002290  4d 46 44 20 31 33 21 2c  7b 30 2d 31 32 2c 31 34  |MFD 13!,{0-12,14|
000022a0  7d 0d 13 e2 0e 53 54 52  20 31 33 2c 53 50 44 0d  |}....STR 13,SPD.|
000022b0  13 ec 0f 4c 44 52 20 55  48 2c 4f 58 48 44 0d 13  |...LDR UH,OXHD..|
000022c0  f6 0f 4c 44 52 20 55 4c  2c 4f 58 4c 44 0d 14 00  |..LDR UL,OXLD...|
000022d0  0f 4c 44 52 20 56 48 2c  4f 59 48 44 0d 14 0a 0f  |.LDR VH,OYHD....|
000022e0  4c 44 52 20 56 4c 2c 4f  59 4c 44 0d 14 14 0e 4c  |LDR VL,OYLD....L|
000022f0  44 52 20 53 48 2c 53 48  44 0d 14 1e 0e 4c 44 52  |DR SH,SHD....LDR|
00002300  20 53 4c 2c 53 4c 44 0d  14 28 18 4c 44 52 20 54  | SL,SLD..(.LDR T|
00002310  2c 58 44 20 20 20 3b 20  6f 78 2b 3d 78 2a 73 0d  |,XD   ; ox+=x*s.|
00002320  14 32 16 a4 55 4d 55 4c  4c 28 54 4c 2c 54 48 2c  |.2..UMULL(TL,TH,|
00002330  53 4c 2c 54 29 0d 14 3c  14 a4 55 4d 55 4c 4c 28  |SL,T)..<..UMULL(|
00002340  54 2c 48 2c 53 48 2c 54  29 0d 14 46 0f 41 44 44  |T,H,SH,T)..F.ADD|
00002350  20 54 48 2c 54 48 2c 54  0d 14 50 11 41 44 44 53  | TH,TH,T..P.ADDS|
00002360  20 55 4c 2c 54 4c 2c 55  4c 0d 14 5a 11 41 44 43  | UL,TL,UL..Z.ADC|
00002370  20 20 55 48 2c 54 48 2c  55 48 0d 14 64 0f 53 54  |  UH,TH,UH..d.ST|
00002380  52 20 55 48 2c 4f 58 48  44 0d 14 6e 0f 53 54 52  |R UH,OXHD..n.STR|
00002390  20 55 4c 2c 4f 58 4c 44  0d 14 78 16 4c 44 52 20  | UL,OXLD..x.LDR |
000023a0  54 2c 59 44 20 20 3b 6f  79 2b 3d 79 2a 73 0d 14  |T,YD  ;oy+=y*s..|
000023b0  82 16 a4 55 4d 55 4c 4c  28 54 4c 2c 54 48 2c 53  |...UMULL(TL,TH,S|
000023c0  4c 2c 54 29 0d 14 8c 14  a4 55 4d 55 4c 4c 28 54  |L,T).....UMULL(T|
000023d0  2c 48 2c 53 48 2c 54 29  0d 14 96 0f 41 44 44 20  |,H,SH,T)....ADD |
000023e0  54 48 2c 54 48 2c 54 0d  14 a0 11 41 44 44 53 20  |TH,TH,T....ADDS |
000023f0  56 4c 2c 54 4c 2c 56 4c  0d 14 aa 11 41 44 43 20  |VL,TL,VL....ADC |
00002400  20 56 48 2c 54 48 2c 56  48 0d 14 b4 0f 53 54 52  | VH,TH,VH....STR|
00002410  20 56 48 2c 4f 59 48 44  0d 14 be 0f 53 54 52 20  | VH,OYHD....STR |
00002420  56 4c 2c 4f 59 4c 44 0d  14 c8 19 4c 44 52 20 54  |VL,OYLD....LDR T|
00002430  2c 57 44 20 20 3b 73 3d  73 2a 77 2f 31 30 32 34  |,WD  ;s=s*w/1024|
00002440  0d 14 d2 16 a4 55 4d 55  4c 4c 28 54 4c 2c 54 48  |.....UMULL(TL,TH|
00002450  2c 53 4c 2c 54 29 0d 14  dc 14 a4 55 4d 55 4c 4c  |,SL,T).....UMULL|
00002460  28 54 2c 48 2c 53 48 2c  54 29 0d 14 e6 0f 41 44  |(T,H,SH,T)....AD|
00002470  44 20 54 48 2c 54 48 2c  54 0d 14 f0 15 4d 4f 56  |D TH,TH,T....MOV|
00002480  20 54 4c 2c 54 4c 2c 4c  53 52 20 23 31 30 0d 14  | TL,TL,LSR #10..|
00002490  fa 17 84 52 20 54 4c 2c  54 4c 2c 54 48 2c 4c 53  |...R TL,TL,TH,LS|
000024a0  4c 20 23 32 32 0d 15 04  15 4d 4f 56 20 54 48 2c  |L #22....MOV TH,|
000024b0  54 48 2c 4c 53 52 20 23  31 30 0d 15 0e 0d 43 4d  |TH,LSR #10....CM|
000024c0  50 20 54 48 2c 23 30 0d  15 18 0f 43 4d 50 45 51  |P TH,#0....CMPEQ|
000024d0  20 54 4c 2c 23 30 0d 15  22 0c ec 51 20 54 4c 2c  | TL,#0.."..Q TL,|
000024e0  23 31 0d 15 2c 0e 53 54  52 20 54 48 2c 53 48 44  |#1..,.STR TH,SHD|
000024f0  0d 15 36 0e 53 54 52 20  54 4c 2c 53 4c 44 0d 15  |..6.STR TL,SLD..|
00002500  40 0e 4c 44 52 20 31 33  2c 53 50 44 0d 15 4a 17  |@.LDR 13,SPD..J.|
00002510  4c 44 4d 46 44 20 31 33  21 2c 7b 30 2d 31 32 2c  |LDMFD 13!,{0-12,|
00002520  50 43 7d 0d 15 54 06 5d  20 0d 15 5e 04 0d 15 68  |PC}..T.] ..^...h|
00002530  11 e7 20 53 74 72 6f 6e  67 41 52 4d 20 8c 0d 15  |.. StrongARM ...|
00002540  72 0d 5b 4f 50 54 20 50  41 53 53 0d 15 7c 0e 2e  |r.[OPT PASS..|..|
00002550  53 50 44 20 44 43 44 20  30 0d 15 86 0f 2e 69 74  |SPD DCD 0.....it|
00002560  65 72 61 74 69 6f 6e 48  0d 15 90 0e 53 54 52 20  |erationH....STR |
00002570  31 33 2c 53 50 44 0d 15  9a 0e 4c 44 52 20 53 4c  |13,SPD....LDR SL|
00002580  2c 53 4c 44 0d 15 a4 0e  4c 44 52 20 53 48 2c 53  |,SLD....LDR SH,S|
00002590  48 44 0d 15 ae 0f 4c 44  52 20 55 4c 2c 4f 58 4c  |HD....LDR UL,OXL|
000025a0  44 0d 15 b8 0f 4c 44 52  20 55 48 2c 4f 58 48 44  |D....LDR UH,OXHD|
000025b0  0d 15 c2 0f 4c 44 52 20  56 4c 2c 4f 59 4c 44 0d  |....LDR VL,OYLD.|
000025c0  15 cc 0f 4c 44 52 20 56  48 2c 4f 59 48 44 0d 15  |...LDR VH,OYHD..|
000025d0  d6 16 a4 55 4d 55 4c 4c  28 54 4c 2c 54 48 2c 53  |...UMULL(TL,TH,S|
000025e0  4c 2c 41 29 0d 15 e0 14  a4 55 4d 55 4c 4c 28 54  |L,A).....UMULL(T|
000025f0  2c 48 2c 53 48 2c 41 29  0d 15 ea 0f 41 44 44 20  |,H,SH,A)....ADD |
00002600  54 48 2c 54 48 2c 54 0d  15 f4 11 41 44 44 53 20  |TH,TH,T....ADDS |
00002610  41 4c 2c 55 4c 2c 54 4c  0d 15 fe 11 41 44 43 20  |AL,UL,TL....ADC |
00002620  20 41 48 2c 55 48 2c 54  48 0d 16 08 16 a4 55 4d  | AH,UH,TH.....UM|
00002630  55 4c 4c 28 54 4c 2c 54  48 2c 53 4c 2c 42 29 0d  |ULL(TL,TH,SL,B).|
00002640  16 12 14 a4 55 4d 55 4c  4c 28 54 2c 48 2c 53 48  |....UMULL(T,H,SH|
00002650  2c 42 29 0d 16 1c 0f 41  44 44 20 54 48 2c 54 48  |,B)....ADD TH,TH|
00002660  2c 54 0d 16 26 11 41 44  44 53 20 42 4c 2c 56 4c  |,T..&.ADDS BL,VL|
00002670  2c 54 4c 0d 16 30 11 41  44 43 20 20 42 48 2c 56  |,TL..0.ADC  BH,V|
00002680  48 2c 54 48 0d 16 3a 0c  4c 44 52 20 44 2c 44 44  |H,TH..:.LDR D,DD|
00002690  0d 16 44 17 4d 4f 56 20  55 4c 2c 41 4c 3a 4d 4f  |..D.MOV UL,AL:MO|
000026a0  56 20 55 48 2c 41 48 0d  16 4e 17 4d 4f 56 20 56  |V UH,AH..N.MOV V|
000026b0  4c 2c 23 30 3a 4d 4f 56  20 56 48 2c 23 30 0d 16  |L,#0:MOV VH,#0..|
000026c0  58 17 4d 4f 56 20 54 4c  2c 23 30 3a 4d 4f 56 20  |X.MOV TL,#0:MOV |
000026d0  54 48 2c 23 30 0d 16 62  0a 2e 6c 6f 6f 70 48 0d  |TH,#0..b..loopH.|
000026e0  16 6c 10 52 53 42 53 20  54 2c 55 4c 2c 23 30 0d  |.l.RSBS T,UL,#0.|
000026f0  16 76 10 52 53 43 53 20  48 2c 55 48 2c 23 30 0d  |.v.RSCS H,UH,#0.|
00002700  16 80 0e 4d 4f 56 4d 49  20 54 2c 55 4c 0d 16 8a  |...MOVMI T,UL...|
00002710  0e 4d 4f 56 4d 49 20 48  2c 55 48 0d 16 94 15 a4  |.MOVMI H,UH.....|
00002720  55 4d 55 4c 4c 28 53 4c  2c 53 48 2c 48 2c 48 29  |UMULL(SL,SH,H,H)|
00002730  0d 16 9e 11 53 55 42 53  20 56 4c 2c 56 4c 2c 54  |....SUBS VL,VL,T|
00002740  4c 0d 16 a8 11 53 42 43  20 20 56 48 2c 56 48 2c  |L....SBC  VH,VH,|
00002750  54 48 0d 16 b2 11 41 44  44 53 20 56 4c 2c 56 4c  |TH....ADDS VL,VL|
00002760  2c 42 4c 0d 16 bc 11 41  44 43 20 20 56 48 2c 56  |,BL....ADC  VH,V|
00002770  48 2c 42 48 0d 16 c6 15  43 4d 50 20 53 48 2c 23  |H,BH....CMP SH,#|
00002780  34 3c 3c 28 32 39 2d 33  29 0d 16 d0 0e 42 48 53  |4<<(29-3)....BHS|
00002790  20 62 72 65 61 6b 48 0d  16 da 13 a4 55 4d 55 4c  | breakH.....UMUL|
000027a0  4c 28 54 2c 48 2c 54 2c  48 29 0d 16 e4 14 4d 4f  |L(T,H,T,H)....MO|
000027b0  56 20 53 48 2c 53 48 2c  4c 53 4c 20 23 33 0d 16  |V SH,SH,LSL #3..|
000027c0  ee 17 84 52 20 53 48 2c  53 48 2c 53 4c 2c 4c 53  |...R SH,SH,SL,LS|
000027d0  52 20 23 32 39 0d 16 f8  14 4d 4f 56 20 53 4c 2c  |R #29....MOV SL,|
000027e0  53 4c 2c 4c 53 4c 20 23  33 0d 17 02 13 4d 4f 56  |SL,LSL #3....MOV|
000027f0  20 54 2c 54 2c 4c 53 52  20 23 32 38 0d 17 0c 14  | T,T,LSR #28....|
00002800  41 44 44 20 54 2c 54 2c  48 2c 4c 53 4c 20 23 34  |ADD T,T,H,LSL #4|
00002810  0d 17 16 10 41 44 44 53  20 53 4c 2c 53 4c 2c 54  |....ADDS SL,SL,T|
00002820  0d 17 20 18 41 44 43 20  20 53 48 2c 53 48 2c 48  |.. .ADC  SH,SH,H|
00002830  2c 4c 53 52 20 23 32 38  0d 17 2a 10 52 53 42 53  |,LSR #28..*.RSBS|
00002840  20 54 2c 56 4c 2c 23 30  0d 17 34 10 52 53 43 53  | T,VL,#0..4.RSCS|
00002850  20 48 2c 56 48 2c 23 30  0d 17 3e 0e 4d 4f 56 4d  | H,VH,#0..>.MOVM|
00002860  49 20 48 2c 56 48 0d 17  48 15 a4 55 4d 55 4c 4c  |I H,VH..H..UMULL|
00002870  28 54 4c 2c 54 48 2c 48  2c 48 29 0d 17 52 0e 4d  |(TL,TH,H,H)..R.M|
00002880  4f 56 4d 49 20 54 2c 56  4c 0d 17 5c 11 41 44 44  |OVMI T,VL..\.ADD|
00002890  53 20 56 4c 2c 56 4c 2c  55 4c 0d 17 66 11 41 44  |S VL,VL,UL..f.AD|
000028a0  43 53 20 56 48 2c 56 48  2c 55 48 0d 17 7a 15 43  |CS VH,VH,UH..z.C|
000028b0  4d 50 20 54 48 2c 23 34  3c 3c 28 32 39 2d 33 29  |MP TH,#4<<(29-3)|
000028c0  0d 17 84 0e 42 48 53 20  62 72 65 61 6b 48 0d 17  |....BHS breakH..|
000028d0  8e 13 a4 55 4d 55 4c 4c  28 54 2c 48 2c 54 2c 48  |...UMULL(T,H,T,H|
000028e0  29 0d 17 98 14 4d 4f 56  20 54 48 2c 54 48 2c 4c  |)....MOV TH,TH,L|
000028f0  53 4c 20 23 33 0d 17 a2  17 84 52 20 54 48 2c 54  |SL #3.....R TH,T|
00002900  48 2c 54 4c 2c 4c 53 52  20 23 32 39 0d 17 ac 14  |H,TL,LSR #29....|
00002910  4d 4f 56 20 54 4c 2c 54  4c 2c 4c 53 4c 20 23 33  |MOV TL,TL,LSL #3|
00002920  0d 17 b6 13 4d 4f 56 20  54 2c 54 2c 4c 53 52 20  |....MOV T,T,LSR |
00002930  23 32 38 0d 17 c0 14 41  44 44 20 54 2c 54 2c 48  |#28....ADD T,T,H|
00002940  2c 4c 53 4c 20 23 34 0d  17 ca 10 41 44 44 53 20  |,LSL #4....ADDS |
00002950  54 4c 2c 54 4c 2c 54 0d  17 d4 18 41 44 43 20 20  |TL,TL,T....ADC  |
00002960  54 48 2c 54 48 2c 48 2c  4c 53 52 20 23 32 38 0d  |TH,TH,H,LSR #28.|
00002970  17 de 10 52 53 42 53 20  54 2c 56 4c 2c 23 30 0d  |...RSBS T,VL,#0.|
00002980  17 e8 10 52 53 43 53 20  48 2c 56 48 2c 23 30 0d  |...RSCS H,VH,#0.|
00002990  17 f2 0e 4d 4f 56 4d 49  20 54 2c 56 4c 0d 17 fc  |...MOVMI T,VL...|
000029a0  0e 4d 4f 56 4d 49 20 48  2c 56 48 0d 18 06 15 a4  |.MOVMI H,VH.....|
000029b0  55 4d 55 4c 4c 28 56 4c  2c 56 48 2c 48 2c 48 29  |UMULL(VL,VH,H,H)|
000029c0  0d 18 10 11 53 55 42 53  20 55 4c 2c 53 4c 2c 54  |....SUBS UL,SL,T|
000029d0  4c 0d 18 1a 11 53 42 43  20 20 55 48 2c 53 48 2c  |L....SBC  UH,SH,|
000029e0  54 48 0d 18 24 11 41 44  44 53 20 54 4c 2c 53 4c  |TH..$.ADDS TL,SL|
000029f0  2c 54 4c 0d 18 2e 11 41  44 43 20 20 54 48 2c 53  |,TL....ADC  TH,S|
00002a00  48 2c 54 48 0d 18 38 11  41 44 44 53 20 55 4c 2c  |H,TH..8.ADDS UL,|
00002a10  55 4c 2c 41 4c 0d 18 42  11 41 44 43 20 20 55 48  |UL,AL..B.ADC  UH|
00002a20  2c 55 48 2c 41 48 0d 18  4c 13 a4 55 4d 55 4c 4c  |,UH,AH..L..UMULL|
00002a30  28 54 2c 48 2c 54 2c 48  29 0d 18 56 12 43 4d 50  |(T,H,T,H)..V.CMP|
00002a40  20 20 54 48 2c 23 34 3c  3c 32 39 0d 18 60 0f 42  |  TH,#4<<29..`.B|
00002a50  48 53 20 20 62 72 65 61  6b 48 0d 18 6a 14 4d 4f  |HS  breakH..j.MO|
00002a60  56 20 56 48 2c 56 48 2c  4c 53 4c 20 23 33 0d 18  |V VH,VH,LSL #3..|
00002a70  74 17 84 52 20 56 48 2c  56 48 2c 56 4c 2c 4c 53  |t..R VH,VH,VL,LS|
00002a80  52 20 23 32 39 0d 18 7e  14 4d 4f 56 20 56 4c 2c  |R #29..~.MOV VL,|
00002a90  56 4c 2c 4c 53 4c 20 23  33 0d 18 88 13 4d 4f 56  |VL,LSL #3....MOV|
00002aa0  20 54 2c 54 2c 4c 53 52  20 23 32 38 0d 18 92 14  | T,T,LSR #28....|
00002ab0  41 44 44 20 54 2c 54 2c  48 2c 4c 53 4c 20 23 34  |ADD T,T,H,LSL #4|
00002ac0  0d 18 9c 10 41 44 44 53  20 56 4c 2c 56 4c 2c 54  |....ADDS VL,VL,T|
00002ad0  0d 18 a6 18 41 44 43 20  20 56 48 2c 56 48 2c 48  |....ADC  VH,VH,H|
00002ae0  2c 4c 53 52 20 23 32 38  0d 18 b0 0f 53 55 42 53  |,LSR #28....SUBS|
00002af0  20 44 2c 44 2c 23 31 0d  18 ba 0d 42 4e 45 20 6c  | D,D,#1....BNE l|
00002b00  6f 6f 70 48 0d 18 c4 0e  4d 4f 56 20 30 2c 23 32  |oopH....MOV 0,#2|
00002b10  35 35 0d 18 ce 0e 4c 44  52 20 31 33 2c 53 50 44  |55....LDR 13,SPD|
00002b20  0d 18 d8 17 4c 44 4d 46  44 20 31 33 21 2c 7b 31  |....LDMFD 13!,{1|
00002b30  2d 31 32 2c 50 43 7d 0d  18 e2 0b 2e 62 72 65 61  |-12,PC}.....brea|
00002b40  6b 48 0d 18 ec 0c 20 2e  77 68 69 6c 65 48 0d 18  |kH.... .whileH..|
00002b50  f6 11 20 20 20 43 4d 50  20 44 2c 23 32 35 34 0d  |..   CMP D,#254.|
00002b60  19 00 15 20 20 20 53 55  42 48 49 20 44 2c 44 2c  |...   SUBHI D,D,|
00002b70  23 32 35 34 0d 19 0a 0e  42 48 49 20 77 68 69 6c  |#254....BHI whil|
00002b80  65 48 0d 19 14 0b 4d 4f  56 20 30 2c 44 0d 19 1e  |eH....MOV 0,D...|
00002b90  0e 4c 44 52 20 31 33 2c  53 50 44 0d 19 28 17 4c  |.LDR 13,SPD..(.L|
00002ba0  44 4d 46 44 20 31 33 21  2c 7b 31 2d 31 32 2c 50  |DMFD 13!,{1-12,P|
00002bb0  43 7d 0d 19 32 05 5d 0d  19 3c 06 cc 20 0d 19 46  |C}..2.]..<.. ..F|
00002bc0  0d 5b 4f 50 54 20 50 41  53 53 0d 19 50 0e 2e 53  |.[OPT PASS..P..S|
00002bd0  50 44 20 44 43 44 20 30  0d 19 5a 20 2e 41 4c 44  |PD DCD 0..Z .ALD|
00002be0  20 44 43 44 20 30 3a 44  43 44 20 30 3a 44 43 44  | DCD 0:DCD 0:DCD|
00002bf0  20 30 3a 44 43 44 20 30  0d 19 64 0f 2e 69 74 65  | 0:DCD 0..d..ite|
00002c00  72 61 74 69 6f 6e 48 0d  19 6e 0e 53 54 52 20 31  |rationH..n.STR 1|
00002c10  33 2c 53 50 44 0d 19 78  0e 4c 44 52 20 53 4c 2c  |3,SPD..x.LDR SL,|
00002c20  53 4c 44 0d 19 82 0e 4c  44 52 20 53 48 2c 53 48  |SLD....LDR SH,SH|
00002c30  44 0d 19 8c 0f 4c 44 52  20 55 4c 2c 4f 58 4c 44  |D....LDR UL,OXLD|
00002c40  0d 19 96 0f 4c 44 52 20  55 48 2c 4f 58 48 44 0d  |....LDR UH,OXHD.|
00002c50  19 a0 0f 4c 44 52 20 56  4c 2c 4f 59 4c 44 0d 19  |...LDR VL,OYLD..|
00002c60  aa 0f 4c 44 52 20 56 48  2c 4f 59 48 44 0d 19 b4  |..LDR VH,OYHD...|
00002c70  0b 4d 4f 56 20 48 2c 42  0d 19 be 0e 4d 55 4c 20  |.MOV H,B....MUL |
00002c80  54 2c 53 48 2c 41 0d 19  c8 0c 4d 4f 56 20 54 4c  |T,SH,A....MOV TL|
00002c90  2c 41 0d 19 d2 17 a4 55  4d 55 4c 4c 28 54 4c 2c  |,A.....UMULL(TL,|
00002ca0  54 48 2c 53 4c 2c 54 4c  29 0d 19 dc 0f 41 44 44  |TH,SL,TL)....ADD|
00002cb0  20 54 48 2c 54 48 2c 54  0d 19 e6 11 41 44 44 53  | TH,TH,T....ADDS|
00002cc0  20 55 4c 2c 55 4c 2c 54  4c 0d 19 f0 11 41 44 43  | UL,UL,TL....ADC|
00002cd0  20 20 55 48 2c 55 48 2c  54 48 0d 19 fa 0e 4d 55  |  UH,UH,TH....MU|
00002ce0  4c 20 54 2c 53 48 2c 48  0d 1a 04 16 a4 55 4d 55  |L T,SH,H.....UMU|
00002cf0  4c 4c 28 54 4c 2c 54 48  2c 53 4c 2c 48 29 0d 1a  |LL(TL,TH,SL,H)..|
00002d00  0e 0f 41 44 44 20 54 48  2c 54 48 2c 54 0d 1a 18  |..ADD TH,TH,T...|
00002d10  11 41 44 44 53 20 42 4c  2c 56 4c 2c 54 4c 0d 1a  |.ADDS BL,VL,TL..|
00002d20  22 11 41 44 43 20 20 42  48 2c 56 48 2c 54 48 0d  |".ADC  BH,VH,TH.|
00002d30  1a 2c 0d 4d 4f 56 20 41  4c 2c 55 4c 0d 1a 36 0d  |.,.MOV AL,UL..6.|
00002d40  4d 4f 56 20 41 48 2c 55  48 0d 1a 40 23 41 44 52  |MOV AH,UH..@#ADR|
00002d50  20 54 2c 41 4c 44 3a 53  54 4d 49 41 20 54 2c 7b  | T,ALD:STMIA T,{|
00002d60  41 4c 2c 41 48 2c 42 4c  2c 42 48 7d 0d 1a 4a 0c  |AL,AH,BL,BH}..J.|
00002d70  4c 44 52 20 44 2c 44 44  0d 1a 54 17 4d 4f 56 20  |LDR D,DD..T.MOV |
00002d80  55 4c 2c 41 4c 3a 4d 4f  56 20 55 48 2c 41 48 0d  |UL,AL:MOV UH,AH.|
00002d90  1a 5e 17 4d 4f 56 20 56  4c 2c 42 4c 3a 4d 4f 56  |.^.MOV VL,BL:MOV|
00002da0  20 56 48 2c 42 48 0d 1a  68 0a 2e 6c 6f 6f 70 48  | VH,BH..h..loopH|
00002db0  0d 1a 72 10 52 53 42 53  20 54 2c 55 4c 2c 23 30  |..r.RSBS T,UL,#0|
00002dc0  0d 1a 7c 10 52 53 43 53  20 48 2c 55 48 2c 23 30  |..|.RSCS H,UH,#0|
00002dd0  0d 1a 86 0e 4d 4f 56 4d  49 20 54 2c 55 4c 0d 1a  |....MOVMI T,UL..|
00002de0  90 0e 4d 4f 56 4d 49 20  48 2c 55 48 0d 1a 9a 15  |..MOVMI H,UH....|
00002df0  a4 55 4d 55 4c 4c 28 53  4c 2c 53 48 2c 48 2c 48  |.UMULL(SL,SH,H,H|
00002e00  29 0d 1a a4 15 43 4d 50  20 53 48 2c 23 34 3c 3c  |)....CMP SH,#4<<|
00002e10  28 32 39 2d 33 29 0d 1a  ae 0e 42 48 53 20 62 72  |(29-3)....BHS br|
00002e20  65 61 6b 48 0d 1a b8 14  4d 4f 56 20 53 48 2c 53  |eakH....MOV SH,S|
00002e30  48 2c 4c 53 4c 20 23 33  0d 1a c2 17 84 52 20 53  |H,LSL #3.....R S|
00002e40  48 2c 53 48 2c 53 4c 2c  4c 53 52 20 23 32 39 0d  |H,SH,SL,LSR #29.|
00002e50  1a cc 14 4d 4f 56 20 53  4c 2c 53 4c 2c 4c 53 4c  |...MOV SL,SL,LSL|
00002e60  20 23 33 0d 1a d6 13 a4  55 4d 55 4c 4c 28 54 2c  | #3.....UMULL(T,|
00002e70  48 2c 54 2c 48 29 0d 1a  e0 13 4d 4f 56 20 54 2c  |H,T,H)....MOV T,|
00002e80  54 2c 4c 53 52 20 23 32  38 0d 1a ea 14 41 44 44  |T,LSR #28....ADD|
00002e90  20 54 2c 54 2c 48 2c 4c  53 4c 20 23 34 0d 1a f4  | T,T,H,LSL #4...|
00002ea0  10 41 44 44 53 20 53 4c  2c 53 4c 2c 54 0d 1a fe  |.ADDS SL,SL,T...|
00002eb0  18 41 44 43 20 20 53 48  2c 53 48 2c 48 2c 4c 53  |.ADC  SH,SH,H,LS|
00002ec0  52 20 23 32 38 0d 1b 08  10 52 53 42 53 20 54 2c  |R #28....RSBS T,|
00002ed0  56 4c 2c 23 30 0d 1b 12  10 52 53 43 53 20 48 2c  |VL,#0....RSCS H,|
00002ee0  56 48 2c 23 30 0d 1b 1c  0e 4d 4f 56 4d 49 20 54  |VH,#0....MOVMI T|
00002ef0  2c 56 4c 0d 1b 26 0e 4d  4f 56 4d 49 20 48 2c 56  |,VL..&.MOVMI H,V|
00002f00  48 0d 1b 30 15 a4 55 4d  55 4c 4c 28 54 4c 2c 54  |H..0..UMULL(TL,T|
00002f10  48 2c 48 2c 48 29 0d 1b  3a 15 43 4d 50 20 54 48  |H,H,H)..:.CMP TH|
00002f20  2c 23 34 3c 3c 28 32 39  2d 33 29 0d 1b 44 0e 42  |,#4<<(29-3)..D.B|
00002f30  48 53 20 62 72 65 61 6b  48 0d 1b 4e 14 4d 4f 56  |HS breakH..N.MOV|
00002f40  20 54 48 2c 54 48 2c 4c  53 4c 20 23 33 0d 1b 58  | TH,TH,LSL #3..X|
00002f50  17 84 52 20 54 48 2c 54  48 2c 54 4c 2c 4c 53 52  |..R TH,TH,TL,LSR|
00002f60  20 23 32 39 0d 1b 62 14  4d 4f 56 20 54 4c 2c 54  | #29..b.MOV TL,T|
00002f70  4c 2c 4c 53 4c 20 23 33  0d 1b 6c 13 a4 55 4d 55  |L,LSL #3..l..UMU|
00002f80  4c 4c 28 54 2c 48 2c 54  2c 48 29 0d 1b 76 13 4d  |LL(T,H,T,H)..v.M|
00002f90  4f 56 20 54 2c 54 2c 4c  53 52 20 23 32 38 0d 1b  |OV T,T,LSR #28..|
00002fa0  80 14 41 44 44 20 54 2c  54 2c 48 2c 4c 53 4c 20  |..ADD T,T,H,LSL |
00002fb0  23 34 0d 1b 8a 10 41 44  44 53 20 54 4c 2c 54 4c  |#4....ADDS TL,TL|
00002fc0  2c 54 0d 1b 94 18 41 44  43 20 20 54 48 2c 54 48  |,T....ADC  TH,TH|
00002fd0  2c 48 2c 4c 53 52 20 23  32 38 0d 1b 9e 11 41 44  |,H,LSR #28....AD|
00002fe0  44 53 20 56 4c 2c 56 4c  2c 55 4c 0d 1b a8 11 41  |DS VL,VL,UL....A|
00002ff0  44 43 20 20 56 48 2c 56  48 2c 55 48 0d 1b b2 11  |DC  VH,VH,UH....|
00003000  53 55 42 53 20 55 4c 2c  53 4c 2c 54 4c 0d 1b bc  |SUBS UL,SL,TL...|
00003010  11 53 42 43 20 20 55 48  2c 53 48 2c 54 48 0d 1b  |.SBC  UH,SH,TH..|
00003020  c6 11 41 44 44 53 20 54  4c 2c 53 4c 2c 54 4c 0d  |..ADDS TL,SL,TL.|
00003030  1b d0 11 41 44 43 20 20  54 48 2c 53 48 2c 54 48  |...ADC  TH,SH,TH|
00003040  0d 1b e4 12 43 4d 50 20  20 54 48 2c 23 34 3c 3c  |....CMP  TH,#4<<|
00003050  32 39 0d 1b ee 0f 42 48  53 20 20 62 72 65 61 6b  |29....BHS  break|
00003060  48 0d 1b f8 10 52 53 42  53 20 54 2c 56 4c 2c 23  |H....RSBS T,VL,#|
00003070  30 0d 1c 02 10 52 53 43  53 20 48 2c 56 48 2c 23  |0....RSCS H,VH,#|
00003080  30 0d 1c 0c 0e 4d 4f 56  4d 49 20 54 2c 56 4c 0d  |0....MOVMI T,VL.|
00003090  1c 16 0e 4d 4f 56 4d 49  20 48 2c 56 48 0d 1c 20  |...MOVMI H,VH.. |
000030a0  15 a4 55 4d 55 4c 4c 28  53 4c 2c 53 48 2c 48 2c  |..UMULL(SL,SH,H,|
000030b0  48 29 0d 1c 2a 14 4d 4f  56 20 53 48 2c 53 48 2c  |H)..*.MOV SH,SH,|
000030c0  4c 53 4c 20 23 33 0d 1c  34 17 84 52 20 53 48 2c  |LSL #3..4..R SH,|
000030d0  53 48 2c 53 4c 2c 4c 53  52 20 23 32 39 0d 1c 3e  |SH,SL,LSR #29..>|
000030e0  14 4d 4f 56 20 53 4c 2c  53 4c 2c 4c 53 4c 20 23  |.MOV SL,SL,LSL #|
000030f0  33 0d 1c 48 13 a4 55 4d  55 4c 4c 28 54 2c 48 2c  |3..H..UMULL(T,H,|
00003100  54 2c 48 29 0d 1c 52 13  4d 4f 56 20 54 2c 54 2c  |T,H)..R.MOV T,T,|
00003110  4c 53 52 20 23 32 38 0d  1c 5c 14 41 44 44 20 54  |LSR #28..\.ADD T|
00003120  2c 54 2c 48 2c 4c 53 4c  20 23 34 0d 1c 66 10 41  |,T,H,LSL #4..f.A|
00003130  44 44 53 20 53 4c 2c 53  4c 2c 54 0d 1c 70 18 41  |DDS SL,SL,T..p.A|
00003140  44 43 20 20 53 48 2c 53  48 2c 48 2c 4c 53 52 20  |DC  SH,SH,H,LSR |
00003150  23 32 38 0d 1c 7a 11 53  55 42 53 20 56 4c 2c 53  |#28..z.SUBS VL,S|
00003160  4c 2c 54 4c 0d 1c 84 11  53 42 43 20 20 56 48 2c  |L,TL....SBC  VH,|
00003170  53 48 2c 54 48 0d 1c 8e  23 41 44 52 20 54 2c 41  |SH,TH...#ADR T,A|
00003180  4c 44 3a 4c 44 4d 49 41  20 54 2c 7b 41 4c 2c 41  |LD:LDMIA T,{AL,A|
00003190  48 2c 42 4c 2c 42 48 7d  0d 1c 98 11 41 44 44 53  |H,BL,BH}....ADDS|
000031a0  20 55 4c 2c 55 4c 2c 41  4c 0d 1c a2 11 41 44 43  | UL,UL,AL....ADC|
000031b0  20 20 55 48 2c 55 48 2c  41 48 0d 1c ac 11 41 44  |  UH,UH,AH....AD|
000031c0  44 53 20 56 4c 2c 56 4c  2c 42 4c 0d 1c b6 11 41  |DS VL,VL,BL....A|
000031d0  44 43 20 20 56 48 2c 56  48 2c 42 48 0d 1c c0 0f  |DC  VH,VH,BH....|
000031e0  53 55 42 53 20 44 2c 44  2c 23 31 0d 1c ca 0d 42  |SUBS D,D,#1....B|
000031f0  4e 45 20 6c 6f 6f 70 48  0d 1c d4 0e 4d 4f 56 20  |NE loopH....MOV |
00003200  30 2c 23 32 35 35 0d 1c  de 0e 4c 44 52 20 31 33  |0,#255....LDR 13|
00003210  2c 53 50 44 0d 1c e8 17  4c 44 4d 46 44 20 31 33  |,SPD....LDMFD 13|
00003220  21 2c 7b 31 2d 31 32 2c  50 43 7d 0d 1c f2 0b 2e  |!,{1-12,PC}.....|
00003230  62 72 65 61 6b 48 0d 1c  fc 0c 20 2e 77 68 69 6c  |breakH.... .whil|
00003240  65 48 0d 1d 06 11 20 20  20 43 4d 50 20 44 2c 23  |eH....   CMP D,#|
00003250  32 35 34 0d 1d 10 15 20  20 20 53 55 42 48 49 20  |254....   SUBHI |
00003260  44 2c 44 2c 23 32 35 34  0d 1d 1a 0e 42 48 49 20  |D,D,#254....BHI |
00003270  77 68 69 6c 65 48 0d 1d  24 0b 4d 4f 56 20 30 2c  |whileH..$.MOV 0,|
00003280  44 0d 1d 2e 0e 4c 44 52  20 31 33 2c 53 50 44 0d  |D....LDR 13,SPD.|
00003290  1d 38 18 4c 44 4d 46 44  20 31 33 21 2c 7b 31 2d  |.8.LDMFD 13!,{1-|
000032a0  31 32 2c 50 43 7d 5e 0d  1d 42 05 5d 0d 1d 4c 05  |12,PC}^..B.]..L.|
000032b0  cd 0d 1d 56 0a ed 20 50  41 53 53 0d 1d 60 09 51  |...V.. PASS..`.Q|
000032c0  25 3d 50 25 0d 1d 6a 05  e1 0d 1d 74 04 0d 1d 7e  |%=P%..j....t...~|
000032d0  04 0d 1d 88 19 dd 20 a4  53 4d 55 4c 4c 28 52 6c  |...... .SMULL(Rl|
000032e0  2c 52 68 2c 52 6d 2c 52  73 29 0d 1d 92 0d 5b 4f  |,Rh,Rm,Rs)....[O|
000032f0  50 54 20 50 41 53 53 0d  1d 9c 2f 44 43 44 20 20  |PT PASS.../DCD  |
00003300  26 45 30 43 30 30 30 39  30 2b 28 52 68 3c 3c 31  |&E0C00090+(Rh<<1|
00003310  36 29 2b 28 52 6c 3c 3c  31 32 29 2b 28 52 73 3c  |6)+(Rl<<12)+(Rs<|
00003320  3c 38 29 2b 52 6d 0d 1d  a6 05 5d 0d 1d b0 07 3d  |<8)+Rm....]....=|
00003330  22 22 0d 1d ba 04 0d 1d  c4 19 dd 20 a4 55 4d 55  |""......... .UMU|
00003340  4c 4c 28 52 6c 2c 52 68  2c 52 6d 2c 52 73 29 0d  |LL(Rl,Rh,Rm,Rs).|
00003350  1d ce 13 e7 20 20 53 74  72 6f 6e 67 41 52 4d 20  |....  StrongARM |
00003360  20 8c 0d 1d d8 0d 5b 4f  50 54 20 50 41 53 53 0d  | .....[OPT PASS.|
00003370  1d e2 2f 44 43 44 20 20  26 45 30 38 30 30 30 39  |../DCD  &E080009|
00003380  30 2b 28 52 68 3c 3c 31  36 29 2b 28 52 6c 3c 3c  |0+(Rh<<16)+(Rl<<|
00003390  31 32 29 2b 28 52 73 3c  3c 38 29 2b 52 6d 0d 1d  |12)+(Rs<<8)+Rm..|
000033a0  ec 05 5d 0d 1d f6 05 cc  0d 1e 00 0f e7 20 52 73  |..].......... Rs|
000033b0  3c 3e 52 6d 20 20 8c 0d  1e 0a 0d 5b 4f 50 54 20  |<>Rm  .....[OPT |
000033c0  50 41 53 53 0d 1e 14 15  4d 4f 56 20 41 48 2c 52  |PASS....MOV AH,R|
000033d0  6d 2c 4c 53 52 20 23 31  36 0d 1e 1e 15 4d 4f 56  |m,LSR #16....MOV|
000033e0  20 42 48 2c 52 73 2c 4c  53 52 20 23 31 36 0d 1e  | BH,Rs,LSR #16..|
000033f0  28 16 82 20 41 4c 2c 52  6d 2c 41 48 2c 4c 53 4c  |(.. AL,Rm,AH,LSL|
00003400  20 23 31 36 0d 1e 32 16  82 20 42 4c 2c 52 73 2c  | #16..2.. BL,Rs,|
00003410  42 48 2c 4c 53 4c 20 23  31 36 0d 1e 3c 10 4d 55  |BH,LSL #16..<.MU|
00003420  4c 20 52 68 2c 41 48 2c  42 48 0d 1e 46 10 4d 55  |L Rh,AH,BH..F.MU|
00003430  4c 20 52 6c 2c 41 4c 2c  42 4c 0d 1e 50 10 4d 55  |L Rl,AL,BL..P.MU|
00003440  4c 20 41 48 2c 42 4c 2c  41 48 0d 1e 5a 10 4d 55  |L AH,BL,AH..Z.MU|
00003450  4c 20 42 48 2c 41 4c 2c  42 48 0d 1e 64 19 41 44  |L BH,AL,BH..d.AD|
00003460  44 53 20 52 6c 2c 52 6c  2c 42 48 2c 4c 53 4c 20  |DS Rl,Rl,BH,LSL |
00003470  23 31 36 0d 1e 6e 19 41  44 43 20 20 52 68 2c 52  |#16..n.ADC  Rh,R|
00003480  68 2c 42 48 2c 4c 53 52  20 23 31 36 0d 1e 78 19  |h,BH,LSR #16..x.|
00003490  41 44 44 53 20 52 6c 2c  52 6c 2c 41 48 2c 4c 53  |ADDS Rl,Rl,AH,LS|
000034a0  4c 20 23 31 36 0d 1e 82  19 41 44 43 20 20 52 68  |L #16....ADC  Rh|
000034b0  2c 52 68 2c 41 48 2c 4c  53 52 20 23 31 36 0d 1e  |,Rh,AH,LSR #16..|
000034c0  8c 05 5d 0d 1e 96 05 cc  0d 1e a0 0d 5b 4f 50 54  |..].........[OPT|
000034d0  20 50 41 53 53 0d 1e aa  15 4d 4f 56 20 41 48 2c  | PASS....MOV AH,|
000034e0  52 6d 2c 4c 53 52 20 23  31 36 0d 1e b4 16 82 20  |Rm,LSR #16..... |
000034f0  41 4c 2c 52 6d 2c 41 48  2c 4c 53 4c 20 23 31 36  |AL,Rm,AH,LSL #16|
00003500  0d 1e be 10 4d 55 4c 20  52 68 2c 41 48 2c 41 48  |....MUL Rh,AH,AH|
00003510  0d 1e c8 10 4d 55 4c 20  52 6c 2c 41 4c 2c 41 4c  |....MUL Rl,AL,AL|
00003520  0d 1e d2 10 4d 55 4c 20  41 48 2c 41 4c 2c 41 48  |....MUL AH,AL,AH|
00003530  0d 1e dc 19 41 44 44 53  20 52 6c 2c 52 6c 2c 41  |....ADDS Rl,Rl,A|
00003540  48 2c 4c 53 4c 20 23 31  37 0d 1e e6 19 41 44 43  |H,LSL #17....ADC|
00003550  20 20 52 68 2c 52 68 2c  41 48 2c 4c 53 52 20 23  |  Rh,Rh,AH,LSR #|
00003560  31 35 0d 1e f0 05 5d 0d  1e fa 05 cd 0d 1f 04 05  |15....].........|
00003570  cd 0d 1f 0e 07 3d 22 22  0d 1f 18 04 0d 1f 22 04  |.....=""......".|
00003580  0d 1f 2c 04 0d 1f 36 04  0d ff                    |..,...6...|
0000358a