Home » Recent acquisitions » Acorn ADFS disks » adfs_AcornUser_199512_2.adf » !Regulars » Regulars/StarInfo/Vlietinck/3DSwarm
Regulars/StarInfo/Vlietinck/3DSwarm
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 » Recent acquisitions » Acorn ADFS disks » adfs_AcornUser_199512_2.adf » !Regulars |
Filename: | Regulars/StarInfo/Vlietinck/3DSwarm |
Read OK: | ✔ |
File size: | 40C2 bytes |
Load address: | 0000 |
Exec address: | 0000 |
File contents
10REM >3DSWARM 20REM (c) Jan Vlietinck 21REM vlietin@intec.rug.ac.be 40 50REMON ERROR:PRINT "Error at line ";ERL:END 51ON ERROR:END 60MODE13+128:MODE 13 70 80ND=150 90SH=4:FIX=2^SH 100box=160 110 120DIM PIX ND*6*4+4 130DIM PIXPROJ ND*4*4+100 140DIM BOX 4*(8*5+1) 150PROCass 160PROCbuildpix 170PROCbuildbox 190OFF:CALL main 200END 210 220 230DEF PROCmain 240!DNRD=4000*16:!DITH=DITABLE:!BIAS=200<<12:CALL calc_divtable 250!DNRD=400*16:!DITH=DITABLE3:!BIAS=256<<12:CALL calc_divtable 260VT=2 270!DHXD=(-1)^RND(2)*(RND(VT*2)+VT) 280!DHYD=(-1)^RND(2)*(RND(VT*2)+VT) 290!DHZD=(-1)^RND(2)*(RND(VT*2)+VT) 300!TXD=0:!TYD=0:!TZD=440*16 310FOR PASS=0 TO 2 STEP 2 320P%=Q% 330[OPT PASS 340.bank EQUD 2 350.main 360STMFD 13!,{14} 370BL calc_rot_matrix 380BL adjustpix 390BL transformpix 400.mainloop 410BL calc_rot_matrix 440BL adjustpix 450BL transformpix 460MOV R0,#&70:LDR R1,bank:SWI "OS_Byte" 470SWI &10C 480BL set 490BL transformbox 500BL drawbox_back 530BL drawpix 540BL drawbox_front 550MOV R0,#&13:SWI "OS_Byte" 560MOV R0,#&71:LDR R1,bank:SWI "OS_Byte" 570LDR R1,bank:EOR R1,R1,#3:STR R1,bank 590SWI "OS_ReadEscapeState" 600BCC mainloop 610LDMFD 13!,{PC} 620] 630NEXT 640Q%=P% 650ENDPROC 660 670 680DEF PROCass 690DIM Q% 130000 700DIM INVERS 4*1024 710DIM DITABLE 4000*16*4 720DIM DITABLE3 400*16*4 730DIM CSTABLE 4096*8 740DIM CTABLE 100*16 750PROCcalc_invers 760PROCcalc_cstable 770PROCcalc_divtable 780PROCtransform 790PROCline 800PROCcalc_rot_matrix 810PROCadjustposition 820PROCdrawbox 830PROCmain 840ENDPROC 850 860DEF PROCbuildpix 870P%=PIX 880SP=20 890[OPT 0 900EQUD (RND(100)-50)<<SH 910EQUD (RND(100)-50)<<SH 920EQUD (RND(100)-50)<<SH 930EQUD (-1)^RND(2)*RND(SP)+10 940EQUD (-1)^RND(2)*RND(SP)+10 950EQUD (-1)^RND(2)*RND(SP)+10 960] 970SP=10 980FOR I=1 TO ND-1 990[OPT 0 1000EQUD RND(100*FIX)-50*FIX:EQUD RND(100*FIX)-50*FIX:EQUD RND(100*FIX)-50*FIX 1010EQUD RND(2*SP)-SP:EQUD RND(2*SP)-SP:EQUD RND(2*SP)-SP 1020] 1030NEXT 1040[OPT 0:EQUD 1<<30:] 1050ENDPROC 1060 1070DEF PROCbuildbox 1080P%=BOX 1090BO=box*FIX 1100NO=100*FIX 1110[OPT 0 1120EQUD BO:EQUD -BO:EQUD -BO:EQUD 0:EQUD 0 1130EQUD BO:EQUD BO:EQUD -BO:EQUD 0:EQUD 0 1140EQUD -BO:EQUD BO:EQUD -BO:EQUD 0:EQUD 0 1150EQUD -BO:EQUD -BO:EQUD -BO:EQUD 0:EQUD 0 1160EQUD BO:EQUD -BO:EQUD BO:EQUD 0:EQUD 0 1170EQUD BO:EQUD BO:EQUD BO:EQUD 0:EQUD 0 1180EQUD -BO:EQUD BO:EQUD BO:EQUD 0:EQUD 0 1190EQUD -BO:EQUD -BO:EQUD BO:EQUD 0:EQUD 0 1200EQUD 1<<30 1210] 1220ENDPROC 1230 1240DEF PROCdrawbox 1250LOCAL X1,Y1,X2,Y2,T,BOXR 1260X1=0:Y1=1:X2=2:Y2=3:BOXR=8:NX=9:NY=10:NZ=11:T=12 1270FOR PASS=0 TO 2 STEP 2 1280P%=Q% 1290[OPT PASS 1300 1310.BOXD EQUD BOX 1320.drawbox_front 1330STMFD 13!,{14} 1340LDR T,C1D 1350MOV NX,T,ASR #16 1360MOV T,T,LSL #16 1370MOV NY,T,ASR #16 1380LDR T,C2D 1390MOV NZ,T,ASR #16 1400LDR BOXR,BOXD 1410ADD BOXR,BOXR,#12 1420CMP NX,#0:RSBLTS T,NZ,#0 1430ADD T,BOXR,#0*20:LDMLTIA T,{X1,Y1} 1440ADD T,BOXR,#1*20:LDMLTIA T,{X2,Y2} 1450BLLT line 1460CMP NY,#0:RSBLTS T,NZ,#0 1470ADD T,BOXR,#1*20:LDMLTIA T,{X1,Y1} 1480ADD T,BOXR,#2*20:LDMLTIA T,{X2,Y2} 1490BLLT line 1500RSBS T,NX,#0:RSBLTS T,NZ,#0 1510ADD T,BOXR,#2*20:LDMLTIA T,{X1,Y1} 1520ADD T,BOXR,#3*20:LDMLTIA T,{X2,Y2} 1530BLLT line 1540RSBS T,NY,#0:RSBLTS T,NZ,#0 1550ADD T,BOXR,#3*20:LDMLTIA T,{X1,Y1} 1560ADD T,BOXR,#0*20:LDMLTIA T,{X2,Y2} 1570BLLT line 1580 1590CMP NX,#0:CMPLT NZ,#0 1600ADD T,BOXR,#4*20:LDMLTIA T,{X1,Y1} 1610ADD T,BOXR,#5*20:LDMLTIA T,{X2,Y2} 1620BLLT line 1630CMP NY,#0:CMPLT NZ,#0 1640ADD T,BOXR,#5*20:LDMLTIA T,{X1,Y1} 1650ADD T,BOXR,#6*20:LDMLTIA T,{X2,Y2} 1660BLLT line 1670RSBS T,NX,#0:CMPLT NZ,#0 1680ADD T,BOXR,#6*20:LDMLTIA T,{X1,Y1} 1690ADD T,BOXR,#7*20:LDMLTIA T,{X2,Y2} 1700BLLT line 1710RSBS T,NY,#0:CMPLT NZ,#0 1720ADD T,BOXR,#7*20:LDMLTIA T,{X1,Y1} 1730ADD T,BOXR,#4*20:LDMLTIA T,{X2,Y2} 1740BLLT line 1750 1760RSBS T,NY,#0:CMPLT NX,#0 1770ADD T,BOXR,#0*20:LDMLTIA T,{X1,Y1} 1780ADD T,BOXR,#4*20:LDMLTIA T,{X2,Y2} 1790BLLT line 1800CMP NX,#0:CMPLT NY,#0 1810ADD T,BOXR,#1*20:LDMLTIA T,{X1,Y1} 1820ADD T,BOXR,#5*20:LDMLTIA T,{X2,Y2} 1830BLLT line 1840CMP NY,#0:RSBLTS T,NX,#0 1850ADD T,BOXR,#2*20:LDMLTIA T,{X1,Y1} 1860ADD T,BOXR,#6*20:LDMLTIA T,{X2,Y2} 1870BLLT line 1880RSBS T,NX,#0:RSBLTS T,NY,#0 1890ADD T,BOXR,#3*20:LDMLTIA T,{X1,Y1} 1900ADD T,BOXR,#7*20:LDMLTIA T,{X2,Y2} 1910BLLT line 1920LDMFD 13!,{PC} 1930 1940.drawbox_back 1950STMFD 13!,{14} 1960LDR T,C1D 1970MOV NX,T,ASR #16 1980MOV T,T,LSL #16 1990MOV NY,T,ASR #16 2000LDR T,C2D 2010MOV NZ,T,ASR #16 2020LDR BOXR,BOXD 2030ADD BOXR,BOXR,#12 2040CMP NX,#0:RSBLTS T,NZ,#0 2050ADD T,BOXR,#0*20:LDMGEIA T,{X1,Y1} 2060ADD T,BOXR,#1*20:LDMGEIA T,{X2,Y2} 2070BLGE line 2080CMP NY,#0:RSBLTS T,NZ,#0 2090ADD T,BOXR,#1*20:LDMGEIA T,{X1,Y1} 2100ADD T,BOXR,#2*20:LDMGEIA T,{X2,Y2} 2110BLGE line 2120RSBS T,NX,#0:RSBLTS T,NZ,#0 2130ADD T,BOXR,#2*20:LDMGEIA T,{X1,Y1} 2140ADD T,BOXR,#3*20:LDMGEIA T,{X2,Y2} 2150BLGE line 2160RSBS T,NY,#0:RSBLTS T,NZ,#0 2170ADD T,BOXR,#3*20:LDMGEIA T,{X1,Y1} 2180ADD T,BOXR,#0*20:LDMGEIA T,{X2,Y2} 2190BLGE line 2200 2210CMP NX,#0:CMPLT NZ,#0 2220ADD T,BOXR,#4*20:LDMGEIA T,{X1,Y1} 2230ADD T,BOXR,#5*20:LDMGEIA T,{X2,Y2} 2240BLGE line 2250CMP NY,#0:CMPLT NZ,#0 2260ADD T,BOXR,#5*20:LDMGEIA T,{X1,Y1} 2270ADD T,BOXR,#6*20:LDMGEIA T,{X2,Y2} 2280BLGE line 2290RSBS T,NX,#0:CMPLT NZ,#0 2300ADD T,BOXR,#6*20:LDMGEIA T,{X1,Y1} 2310ADD T,BOXR,#7*20:LDMGEIA T,{X2,Y2} 2320BLGE line 2330RSBS T,NY,#0:CMPLT NZ,#0 2340ADD T,BOXR,#7*20:LDMGEIA T,{X1,Y1} 2350ADD T,BOXR,#4*20:LDMGEIA T,{X2,Y2} 2360BLGE line 2370 2380RSBS T,NY,#0:CMPLT NX,#0 2390ADD T,BOXR,#0*20:LDMGEIA T,{X1,Y1} 2400ADD T,BOXR,#4*20:LDMGEIA T,{X2,Y2} 2410BLGE line 2420CMP NX,#0:CMPLT NY,#0 2430ADD T,BOXR,#1*20:LDMGEIA T,{X1,Y1} 2440ADD T,BOXR,#5*20:LDMGEIA T,{X2,Y2} 2450BLGE line 2460CMP NY,#0:RSBLTS T,NX,#0 2470ADD T,BOXR,#2*20:LDMGEIA T,{X1,Y1} 2480ADD T,BOXR,#6*20:LDMGEIA T,{X2,Y2} 2490BLGE line 2500RSBS T,NX,#0:RSBLTS T,NY,#0 2510ADD T,BOXR,#3*20:LDMGEIA T,{X1,Y1} 2520ADD T,BOXR,#7*20:LDMGEIA T,{X2,Y2} 2530BLGE line 2540LDMFD 13!,{PC} 2550] 2560NEXT 2570Q%=P% 2580ENDPROC 2590 2600 2610DEF PROCcalc_invers 2620K=2<<20 2630FOR I=1 TO 1023:INVERS!(4*I)=K/I+.5:NEXT 2640ENDPROC 2650 2660DEF PROCcalc_cstable 2670F=2*PI/4096:V=2^15 2680T2=CSTABLE+8*1024 2690T3=CSTABLE+8*2048 2700T4=CSTABLE+8*3072 2710FOR H=0 TO 1023 2720K=F*H 2730CS=COS(K)*V:SN=SIN(K)*V 2740CSTABLE!(8*H)=CS 2750CSTABLE!(8*H+4)=SN 2760T2!(8*H)=-SN 2770T2!(8*H+4)=CS 2780T3!(8*H)=-CS 2790T3!(8*H+4)=-SN 2800T4!(8*H)=SN 2810T4!(8*H+4)=-CS 2820NEXT 2830ENDPROC 2840 2850DEF PROCcalc_divtable 2860T=0:N=1:Q=2:I=3:J=4:DIT=5 2870FOR PASS=0 TO 2 STEP 2 2880P%=Q% 2890[OPT PASS 2900.DNRD EQUD 0 2910.DITH EQUD 0 2920.BIAS EQUD 0 2930.calc_divtable 2940STMFD 13!,{0-12,14} 2950LDR DIT,DITH 2960LDR I,DNRD 2970.DVLOOP2 2980LDR T,BIAS 2990MOV N,I 3000MOV J,#0 3010MOV Q,#0 3020.DVLOOP3 3030CMP N,T 3040MOVLO N,N,LSL #1 3050ADDLO J,J,#1 3060BLO DVLOOP3 3070MOV N,N,LSR J 3080.DVLOOP1 3090CMP T,N,LSL J 3100SUBHS T,T,N,LSL J 3110ADC Q,Q,Q 3120SUBS J,J,#1 3130BPL DVLOOP1 3140STR Q,[DIT,I,LSL #2] 3150SUBS I,I,#1 3160BNE DVLOOP2 3170LDMFD 13!,{0-12,PC} 3180] 3190NEXT 3200Q%=P% 3210ENDPROC 3220 3230DEF PROCcalc_rot_matrix 3240CHX=0:SHX=1 3250CHY=2:SHY=3 3260CHZ=4:SHZ=5 3270T=6:S=7:H=8 3280DHX=3:DHY=4:DHZ=5 3290HX=9:HY=10:HZ=11 3300TX=9:TY=10:TZ=11 3310CS=12 3320SCR=0:COL=1 3330FOR PASS=0 TO 2 STEP 2 3340P%=Q% 3350[OPT PASS 3360.DHXD EQUD 0:.DHYD EQUD 0:.DHZD EQUD 0 3370.HXD EQUD 0:.HYD EQUD 0:.HZD EQUD 0 3380.CSD EQUD CSTABLE 3390.TXD EQUD 0:.TYD EQUD 0:.TZD EQUD 0 3420.calc_rot_matrix 3430STMFD 13!,{0-12,14} 3440SWI "OS_Mouse" 3450SUB R0,R0,#640:MOV R0,R0,LSL #3:STR R0,TXD 3460SUB R1,R1,#512:MOV R1,R1,LSL #3:STR R1,TYD 3461LDR R0,TZD:TST R2,#1:SUBEQ R0,R0,#64:TST R2,#4:ADDEQ R0,R0,#64:STR R0,TZD 3660ADR T,DHXD:LDMIA T,{DHX,DHY,DHZ,HX,HY,HZ,CS} 3670ADD DHX,DHX,HX:ADD DHY,DHY,HY:ADD DHZ,DHZ,HZ 3680ADD T,T,#3*4:STMIA T,{DHX,DHY,DHZ} 3690MOV S,#4096:SUB S,S,#1 3700CMP HX,#0:RSBMI HX,HX,#0:AND HX,HX,S:ADD T,CS,HX,LSL #3 3710LDMIA T,{CHX,SHX}:RSBMI SHX,SHX,#0 3720CMP HY,#0:RSBMI HY,HY,#0:AND HY,HY,S:ADD T,CS,HY,LSL #3 3730LDMIA T,{CHY,SHY}:RSBMI SHY,SHY,#0 3740CMP HZ,#0:RSBMI HZ,HZ,#0:AND HZ,HZ,S:ADD T,CS,HZ,LSL #3 3750LDMIA T,{CHZ,SHZ}:RSBMI SHZ,SHZ,#0 3760ADR T,TXD:LDMIA T,{TX,TY,TZ} 3770MUL T,CHY,CHZ:MOV T,T,ASR #15 3780MUL S,CHY,SHZ:MOV S,S,LSR #15 3790ADD T,S,T,LSL #16:STR T,A1D 3800ADD T,TX,SHY,LSL #16:STR T,A2D 3810 3820MUL T,SHX,SHY:MOV T,T,ASR #15:MOV S,T 3830MUL H,CHX,SHZ:MLA T,CHZ,T,H:RSB T,T,#0:MOV T,T,ASR #15 3840MUL H,CHX,CHZ:MUL S,SHZ,S:SUB S,H,S:MOV S,S,LSR #15 3850 3860ADD T,S,T,LSL #16:STR T,B1D 3870MUL T,SHX,CHY:MOV T,T,ASR #15 3880ADD T,TY,T,LSL #16:STR T,B2D 3890MUL T,CHX,SHY:MOV T,T,ASR #15:MOV S,T 3900MUL T,CHZ,T:MUL H,SHX,SHZ:SUB T,H,T:MOV T,T,ASR #15 3910MUL S,SHZ,S:MLA H,SHX,CHZ,S:RSB S,H,#0:MOV S,S,LSR #15 3920ADD T,S,T,LSL #16:STR T,C1D 3930MUL T,CHX,CHY:MOV T,T,ASR #15 3940ADD T,TZ,T,LSL #16:STR T,C2D 3950LDMFD 13!,{0-12,PC} 3960] 3970NEXT 3980Q%=P% 3990ENDPROC 4000 4010 4020 4030DEF PROCtransform 4040A1=0:A2=1:B1=2:B2=3:C1=4:C2=5:T=6:DIT=7:U=8:V=9:W=10:X=10:Y=11:Z=12 4050A=13:B=14 4060FOR PASS=0 TO 2 STEP 2 4070P%=Q% 4080[OPT PASS 4090.A1D EQUD 0:.A2D EQUD 0 4100.B1D EQUD 0:.B2D EQUD 0 4110.C1D EQUD 0:.C2D EQUD 0 4120.DITD EQUD DITABLE 4130 4140.VD EQUD 0 4150.SP EQUD 0 4160.LK EQUD 0 4170 4180.PIXD EQUD PIX 4190.PIXT EQUD PIXPROJ 4200.TG EQUD 0 4210.transformpix 4220STMFD 13!,{0-12,14} 4230STR 13,SP 4240ADR T,A1D 4250LDMIA T,{A1,A2,B1,B2,C1,C2,DIT} 4260LDR A,PIXD:LDR B,PIXT 4270LDR T,TG:CMP T,#0:MOVNE T,#0:MOVEQ T,#1:ADDNE B,B,#2*4:STR T,TG 4280LDMIA (A)!,{X,Y,Z}:ADD A,A,#3*4 4290BAL TRANS 4300 4310 4320.transform 4330STMFD 13!,{0-12,14} 4340STR 13,SP 4350ADR T,A1D 4360LDMIA T,{A1,A2,B1,B2,C1,C2,DIT,A,B} 4370LDMIA (A)!,{X,Y,Z}:ADD A,A,#3*4 4380.TRANS 4390MOV T,A1,ASR #16 4400MUL U,X,T 4410MOV T,A1,LSL #16 4420MOV T,T,ASR #16 4430MLA U,Y,T,U 4440MOV T,A2,ASR #16 4450MLA U,Z,T,U 4460MOV T,A2,LSL #16 4470MOV T,T,ASR #16 4480ADD U,T,U,ASR #15 4490MOV T,B1,ASR #16 4500MUL V,X,T 4510MOV T,B1,LSL #16 4520MOV T,T,ASR #16 4530MLA V,Y,T,V 4540MOV T,B2,ASR #16 4550MLA V,Z,T,V 4560MOV T,B2,LSL #16 4570MOV T,T,ASR #16 4580ADD V,T,V,ASR #15 4590MOV T,C1,ASR #16 4600MUL W,T,X 4610MOV T,C1,LSL #16 4620MOV T,T,ASR #16 4630MLA W,Y,T,W 4640MOV T,C2,ASR #16 4650MLA W,Z,T,W 4660MOV T,C2,LSL #16 4670MOV T,T,ASR #16 4680ADD W,T,W,ASR #15 4690; CMP W,#0 4700; MOVMI W,#1 4710LDR W,[DIT,W,LSL #2] 4720MUL U,W,U 4730MUL V,W,V 4740MOV U,U,ASR #12 4750MOV V,V,ASR #12 4760ADD U,U,#160 4770ADD V,V,#128 4780STMIA (B)!,{U,V}:ADD B,B,#2*4 4790LDMIA (A)!,{X,Y,Z}:ADD A,A,#3*4 4800CMP X,#1<<30 4810BNE TRANS 4820LDR 13,SP 4830LDMFD 13!,{0-12,PC} 4840 4850 4860.BOXD EQUD BOX 4870.transformbox 4880STMFD 13!,{0-12,14} 4890STR 13,SP 4900ADR T,A1D 4910LDMIA T,{A1,A2,B1,B2,C1,C2,DIT} 4920LDR A,BOXD 4930LDMIA (A)!,{X,Y,Z} 4940.TRANSB 4950MOV T,A1,ASR #16 4960MUL U,X,T 4970MOV T,A1,LSL #16 4980MOV T,T,ASR #16 4990MLA U,Y,T,U 5000MOV T,A2,ASR #16 5010MLA U,Z,T,U 5020MOV T,A2,LSL #16 5030MOV T,T,ASR #16 5040ADD U,T,U,ASR #15 5050MOV T,B1,ASR #16 5060MUL V,X,T 5070MOV T,B1,LSL #16 5080MOV T,T,ASR #16 5090MLA V,Y,T,V 5100MOV T,B2,ASR #16 5110MLA V,Z,T,V 5120MOV T,B2,LSL #16 5130MOV T,T,ASR #16 5140ADD V,T,V,ASR #15 5150MOV T,C1,ASR #16 5160MUL W,T,X 5170MOV T,C1,LSL #16 5180MOV T,T,ASR #16 5190MLA W,Y,T,W 5200MOV T,C2,ASR #16 5210MLA W,Z,T,W 5220MOV T,C2,LSL #16 5230MOV T,T,ASR #16 5240ADDS W,T,W,ASR #15 5250LDR W,[DIT,W,LSL #2] 5260MUL U,W,U 5270MUL V,W,V 5280MOV U,U,ASR #12 5290MOV V,V,ASR #12 5300ADD U,U,#160 5310ADD V,V,#128 5320STMIA (A)!,{U,V} 5330LDMIA (A)!,{X,Y,Z} 5340CMP X,#1<<30 5350BNE TRANSB 5360LDR 13,SP 5370LDMFD 13!,{0-12,PC} 5400] 5410NEXT 5420Q%=P% 5430ENDPROC 5690 5700 5710DEF PROCadjustposition 5720P=0:CP=1:X=2:Y=3:Z=4:VX=5:VY=6:VZ=7:T=8:GX=9:GY=10:GZ=11:DT=12 5730FO=4+4*SH 5740FOR PASS=0 TO 2 STEP 2 5750P%=Q% 5760[OPT PASS 5770 5780 5790.DITD EQUD DITABLE 5800.adjustpix 5810STMFD 13!,{0-12,14} 5820LDR P,PIXD 5830LDR DT,DITD 5840MOV CP,#ND 5850LDMIA P,{X,Y,Z,VX,VY,VZ} 5860 ADD X,X,VX 5870ADD T,X,#box<<SH 5880CMP T,#2*box<<SH 5890RSBHI VX,VX,#0 5900ADDHI X,X,VX,LSL #1 5910 ADD Y,Y,VY 5920ADD T,Y,#box<<SH 5930CMP T,#2*box<<SH 5940RSBHI VY,VY,#0 5950ADDHI Y,Y,VY,LSL #1 5960 ADD Z,Z,VZ 5970ADD T,Z,#box<<SH 5980CMP T,#2*box<<SH 5990RSBHI VZ,VZ,#0 6000ADDHI Z,Z,VZ,LSL #1 6010STMIA (P)!,{X,Y,Z,VX,VY,VZ} 6020SUBS CP,CP,#1 6030MOV GX,X:MOV GY,Y:MOV GZ,Z 6040 6050.adjust2 6060LDMIA P,{X,Y,Z,VX,VY,VZ} 6070 ADD X,X,VX 6080; ADD T,X,#box<<SH 6090; CMP T,#2*box<<SH 6100; RSBHI VX,VX,#0 6110; ADDHI X,X,VX,LSL #1 6120 6130 ADD Y,Y,VY 6140; ADD T,Y,#box<<SH 6150; CMP T,#2*box<<SH 6160; RSBHI VY,VY,#0 6170; ADDHI Y,Y,VY,LSL #1 6180 6190 ADD Z,Z,VZ 6200; ADD T,Z,#box<<SH 6210; CMP T,#2*box<<SH 6220; RSBHI VZ,VZ,#0 6230; ADDHI Z,Z,VZ,LSL #1 6240STMIA (P)!,{X,Y,Z} 6250 6260SUBS X,GX,X 6270MOV T,X 6280RSBMI T,T,#0 6290 6300SUBS Y,GY,Y 6310ADDPL T,T,Y 6320SUBMI T,T,Y 6330 6340SUBS Z,GZ,Z 6350ADDPL T,T,Z 6360SUBMI T,T,Z 6370 6380ADD VX,VX,X,ASR #9 6390ADD VY,VY,Y,ASR #9 6400ADD VZ,VZ,Z,ASR #9 6410MOV T,#20<<SH 6420CMP VX,T:MOVGT VX,T 6430CMN VX,T:RSBLT VX,T,#0 6440CMP VY,T:MOVGT VY,T 6450CMN VY,T:RSBLT VY,T,#0 6460CMP VZ,T:MOVGT VZ,T 6470CMN VZ,T:RSBLT VZ,T,#0 6480 6490STMIA (P)!,{VX,VY,VZ} 6500 6510SUBS CP,CP,#1 6520BNE adjust2 6530LDMFD 13!,{0-12,PC} 6540 6550] 6560Q%=P% 6570ENDPROC 6580 6590 6600DEF PROCline 6610 6620DIM DITABLE2 1024*4 6630P%=DITABLE2+4 6640FOR I=1 TO 1024 6650[OPT 0 6660EQUD (2^20/I) 6670] 6680NEXT 6690 6700DIM CTABLE2 16 6710P%=CTABLE2 6720[OPT 0 6730EQUB %11111111 6740EQUB %11111110 6750EQUB %11111101 6760EQUB %11111100 6770EQUB %11010011 6780EQUB %11010010 6790EQUB %11010001 6800EQUB %11010000 6810EQUB %00101111 6820EQUB %00101110 6830EQUB %00101101 6840EQUB %00101100 6850EQUB %00000011 6860EQUB %00000010 6870EQUB %00000001 6880EQUB %00000000 6890] 7110 7120X1=0:Y1=1:X2=2:Y2=3:XL=4:XR=5:YB=6:YT=7:K1=8:K2=9:DT=10:S=11:T=12 7140LL=0:RR=1:A=2:B=3:C=4:O=5:D=6:CT=7 7150FOR PASS=0 TO 2 STEP 2 7160P%=Q% 7170[OPT PASS 7180\------------------------------------------------------------------------- 7190.screen1 EQUD 148:EQUD -1 7200.screen EQUD 0 7210.CTABLED EQUD CTABLE2 7220 7230.BOXD EQUD 1:EQUD 318:EQUD 1:EQUD 254 7240.DITABLED EQUD DITABLE2 7250.set 7260ADR R0,screen1:ADR R1,screen:SWI "OS_ReadVduVariables" 7270MOV PC,R14 7271 7280REM Anti-aliased lines, with Sutherland clipping 7281REM Parameters (X1,Y1) => (R0,R1); (X2,Y2) => (R2,R3) 7300.line 7310STMFD 13!,{8-11} 7320ADR T,BOXD 7330LDMIA T,{XL,XR,YB,YT,DT} 7340MOV K1,#0 7350CMP X1,XL 7360ORRLT K1,K1,#1 7370CMP X1,XR 7380ORRGT K1,K1,#2 7390CMP Y1,YB 7400ORRLT K1,K1,#4 7410CMP Y1,YT 7420ORRGT K1,K1,#8 7430MOV K2,#0 7440CMP X2,XL 7450ORRLT K2,K2,#1 7460CMP X2,XR 7470ORRGT K2,K2,#2 7480CMP Y2,YB 7490ORRLT K2,K2,#4 7500CMP Y2,YT 7510ORRGT K2,K2,#8 7520ORRS T,K1,K2 7530BEQ endwhile \ Line completely inside box 7540ANDS T,K1,K2 7550LDMNEFD 13!,{8-11} 7560MOVNE PC,R14 \ Line completely outside box 7570 7580.while 7590CMP K1,#0 \ Swap (x1,y1) outside box 7600MOVEQ T,X1:MOVEQ X1,X2:MOVEQ X2,T 7610MOVEQ T,Y1:MOVEQ Y1,Y2:MOVEQ Y2,T 7620MOVEQ T,K1:MOVEQ K1,K2:MOVEQ K2,T 7630 7640TST K1,#1:BEQ sk1 7650SUBS T,X2,X1:RSBMI T,T,#0:LDR S,[DT,T,LSL #2] 7660SUB T,Y2,Y1:RSBMI T,T,#0:MUL S,T,S:MOV S,S,ASR #10 7670SUB T,XL,X1:MUL S,T,S 7680ADD Y1,Y1,S,ASR #10 7690MOV X1,XL 7700.sk1 7710TST K1,#2:BEQ sk2 7720SUBS T,X2,X1:RSBMI T,T,#0:LDR S,[DT,T,LSL #2] 7730SUB T,Y2,Y1:RSBMI T,T,#0:MUL S,T,S:MOV S,S,ASR #10 7740SUB T,XR,X1:MUL S,T,S 7750ADD Y1,Y1,S,ASR #10 7760MOV X1,XR 7770.sk2 7780 7790MOV K1,#0 7800CMP Y1,YB 7810ORRLT K1,K1,#4 7820CMP Y1,YT 7830ORRGT K1,K1,#8 7840ANDS T,K1,K2 7850LDMNEFD 13!,{8-11} 7860MOVNE PC,R14 \ Line completely outside box 7870ORRS T,K1,K2 7880BEQ endwhile \ Line completely inside box 7890 7900TST K1,#4:BEQ sk3 7910SUBS T,Y2,Y1:RSBMI T,T,#0:LDR S,[DT,T,LSL #2] 7920SUB T,X2,X1:RSBMI T,T,#0:MUL S,T,S:MOV S,S,ASR #10 7930SUB T,YB,Y1:MUL S,T,S 7940ADD X1,X1,S,ASR #10 7950MOV Y1,YB 7960.sk3 7970TST K1,#8:BEQ sk4 7980SUBS T,Y2,Y1:RSBMI T,T,#0:LDR S,[DT,T,LSL #2] 7990SUB T,X2,X1:RSBMI T,T,#0:MUL S,T,S:MOV S,S,ASR #10 8000SUB T,YT,Y1:MUL S,T,S 8010ADD X1,X1,S,ASR #10 8020MOV Y1,YT 8030.sk4 8040 8050MOV K1,#0 8060CMP X1,XL 8070ORRLT K1,K1,#1 8080CMP X1,XR 8090ORRGT K1,K1,#2 8100ANDS T,K1,K2 8110LDMNEFD 13!,{8-11} 8120MOVNE PC,R14 \ Line completely outside box 8130ORRS T,K1,K2 8140BNE while 8150.endwhile \ Line completely inside box 8160 8170ADR T,screen 8180LDMIA T,{O,CT} 8190RSB T,Y1,#255 8200ADD T,T,T,LSL #2 8210ADD T,X1,T,LSL #6 8220ADD O,O,T 8230SUB A,X2,X1 8240SUB B,Y2,Y1 8250MOV LL,#1 8260MOV RR,#320 8270RSB RR,RR,#0 8280CMP A,#0 8290 RSBLT A,A,#0 8300 RSBLT LL,LL,#0 8310CMP B,#0 8320 RSBLT B,B,#0 8330 RSBLT RR,RR,#0 8340CMP A,B 8350 MOVLT T,A 8360 MOVLT A,B 8370 MOVLT B,T 8380 MOVLT T,LL 8390 MOVLT LL,RR 8400 MOVLT RR,T 8410LDRB C,[CT] 8420STRB C,[O] 8430CMP A,#0 8440LDMEQFD 13!,{8-11} 8450 MOVEQ PC,R14 8460LDR T,[DT,A,LSL #2] 8470MUL B,T,B 8480MOV D,#1<<20 8490.line_loop 8500SUBS D,D,B 8510ADDLE D,D,#1<<20 8520ADDLE O,O,RR 8530RSB T,D,#1<<20 8540LDRB C,[CT,T,LSR #17] 8550STRB C,[O,LL]! 8560LDRB C,[CT,D,LSR #17] 8570STRB C,[O,RR] 8580SUBS A,A,#1 8590BNE line_loop 8600LDMFD 13!,{8-11} 8610MOV PC,R14 8620 8630 8640] 8650NEXT 8660Q%=P% 8670 8680 8690NL=0: :TAB=2:FREE=3:NR=4:INV=5:CO=6: N=7: X1=9:Y1=10:X2=11:Y2=12 8700LE=0:RE=1: L=2: R=3:XL=4: XR=5:DXL=6:DXR=7: O=8:C1=9:C2=10:C3=11:C4=12 8710PL=0:PR=1 8720 Q=13:T=14 8730PO=13 8740FOR PASS=0 TO 2 STEP 2 8750P%=Q% 8760[OPT PASS 8770 8780.PIXL EQUD PIXPROJ 8790.drawpix 8800STMFD 13!,{14} 8810LDR 5,PIXL 8820MOV 4,#%11111100 8830MOV 6,#ND 8840.pixloop 8850LDMIA 5!,{0,1,2,3} 8860STMFD 13!,{4-6} 8870BL line 8880LDMFD 13!,{4-6} 8890SUBS 6,6,#1 8900BNE pixloop 8910LDMFD 13!,{PC} 8920 8930] 8940NEXT 8950Q%=P% 8960ENDPROC
� >3DSWARM � (c) Jan Vlietinck � vlietin@intec.rug.ac.be ( 2,�ON ERROR:PRINT "Error at line ";ERL:END 3 � �:� <�13+128:� 13 F P ND=150 ZSH=4:FIX=2^SH dbox=160 n x� PIX ND*6*4+4 �� PIXPROJ ND*4*4+100 �� BOX 4*(8*5+1) ��ass � �buildpix � �buildbox ��:� main �� � � �� �main �=!DNRD=4000*16:!DITH=DITABLE:!BIAS=200<<12:� calc_divtable �=!DNRD=400*16:!DITH=DITABLE3:!BIAS=256<<12:� calc_divtable VT=2 !DHXD=(-1)^�(2)*(�(VT*2)+VT) !DHYD=(-1)^�(2)*(�(VT*2)+VT) " !DHZD=(-1)^�(2)*(�(VT*2)+VT) ,!TXD=0:!TYD=0:!TZD=440*16 6� PASS=0 � 2 � 2 @ P%=Q% J [OPT PASS T.bank EQUD 2 ^ .main hSTMFD 13!,{14} rBL calc_rot_matrix |BL adjustpix �BL transformpix � .mainloop �BL calc_rot_matrix �BL adjustpix �BL transformpix �)MOV R0,#&70:LDR R1,bank:SWI "OS_Byte" �SWI &10C � BL set �BL transformbox �BL drawbox_back BL drawpix BL drawbox_front &MOV R0,#&13:SWI "OS_Byte" 0)MOV R0,#&71:LDR R1,bank:SWI "OS_Byte" :&LDR R1,bank:� R1,R1,#3:STR R1,bank NSWI "OS_ReadEscapeState" XBCC mainloop bLDMFD 13!,{PC} l] v� � Q%=P% �� � � � � �ass �� Q% 130000 �� INVERS 4*1024 �� DITABLE 4000*16*4 �� DITABLE3 400*16*4 �� CSTABLE 4096*8 �� CTABLE 100*16 ��calc_invers ��calc_cstable �calc_divtable �transform �line �calc_rot_matrix *�adjustposition 4�drawbox > �main H� R \� �buildpix f P%=PIX p SP=20 z [OPT 0 �EQUD (�(100)-50)<<SH �EQUD (�(100)-50)<<SH �EQUD (�(100)-50)<<SH �EQUD (-1)^�(2)*�(SP)+10 �EQUD (-1)^�(2)*�(SP)+10 �EQUD (-1)^�(2)*�(SP)+10 �] � SP=10 �� I=1 � ND-1 � [OPT 0 �HEQUD �(100*FIX)-50*FIX:EQUD �(100*FIX)-50*FIX:EQUD �(100*FIX)-50*FIX �3EQUD �(2*SP)-SP:EQUD �(2*SP)-SP:EQUD �(2*SP)-SP �] � [OPT 0:EQUD 1<<30:] � $ .� �buildbox 8 P%=BOX BBO=box*FIX LNO=100*FIX V [OPT 0 `,EQUD BO:EQUD -BO:EQUD -BO:EQUD 0:EQUD 0 j,EQUD BO:EQUD BO:EQUD -BO:EQUD 0:EQUD 0 t,EQUD -BO:EQUD BO:EQUD -BO:EQUD 0:EQUD 0 ~,EQUD -BO:EQUD -BO:EQUD -BO:EQUD 0:EQUD 0 �,EQUD BO:EQUD -BO:EQUD BO:EQUD 0:EQUD 0 �,EQUD BO:EQUD BO:EQUD BO:EQUD 0:EQUD 0 �,EQUD -BO:EQUD BO:EQUD BO:EQUD 0:EQUD 0 �,EQUD -BO:EQUD -BO:EQUD BO:EQUD 0:EQUD 0 �EQUD 1<<30 �] �� � �� �drawbox �� X1,Y1,X2,Y2,T,BOXR �4X1=0:Y1=1:X2=2:Y2=3:BOXR=8:NX=9:NY=10:NZ=11:T=12 �� PASS=0 � 2 � 2 P%=Q% [OPT PASS .BOXD EQUD BOX (.drawbox_front 2STMFD 13!,{14} < LDR T,C1D FMOV NX,T,ASR #16 PMOV T,T,LSL #16 ZMOV NY,T,ASR #16 d LDR T,C2D nMOV NZ,T,ASR #16 xLDR BOXR,BOXD �ADD BOXR,BOXR,#12 �CMP NX,#0:RSBLTS T,NZ,#0 �&ADD T,BOXR,#0*20:LDMLTIA T,{X1,Y1} �&ADD T,BOXR,#1*20:LDMLTIA T,{X2,Y2} � BLLT line �CMP NY,#0:RSBLTS T,NZ,#0 �&ADD T,BOXR,#1*20:LDMLTIA T,{X1,Y1} �&ADD T,BOXR,#2*20:LDMLTIA T,{X2,Y2} � BLLT line �RSBS T,NX,#0:RSBLTS T,NZ,#0 �&ADD T,BOXR,#2*20:LDMLTIA T,{X1,Y1} �&ADD T,BOXR,#3*20:LDMLTIA T,{X2,Y2} � BLLT line RSBS T,NY,#0:RSBLTS T,NZ,#0 &ADD T,BOXR,#3*20:LDMLTIA T,{X1,Y1} &ADD T,BOXR,#0*20:LDMLTIA T,{X2,Y2} " BLLT line , 6CMP NX,#0:CMPLT NZ,#0 @&ADD T,BOXR,#4*20:LDMLTIA T,{X1,Y1} J&ADD T,BOXR,#5*20:LDMLTIA T,{X2,Y2} T BLLT line ^CMP NY,#0:CMPLT NZ,#0 h&ADD T,BOXR,#5*20:LDMLTIA T,{X1,Y1} r&ADD T,BOXR,#6*20:LDMLTIA T,{X2,Y2} | BLLT line �RSBS T,NX,#0:CMPLT NZ,#0 �&ADD T,BOXR,#6*20:LDMLTIA T,{X1,Y1} �&ADD T,BOXR,#7*20:LDMLTIA T,{X2,Y2} � BLLT line �RSBS T,NY,#0:CMPLT NZ,#0 �&ADD T,BOXR,#7*20:LDMLTIA T,{X1,Y1} �&ADD T,BOXR,#4*20:LDMLTIA T,{X2,Y2} � BLLT line � �RSBS T,NY,#0:CMPLT NX,#0 �&ADD T,BOXR,#0*20:LDMLTIA T,{X1,Y1} �&ADD T,BOXR,#4*20:LDMLTIA T,{X2,Y2} � BLLT line CMP NX,#0:CMPLT NY,#0 &ADD T,BOXR,#1*20:LDMLTIA T,{X1,Y1} &ADD T,BOXR,#5*20:LDMLTIA T,{X2,Y2} & BLLT line 0CMP NY,#0:RSBLTS T,NX,#0 :&ADD T,BOXR,#2*20:LDMLTIA T,{X1,Y1} D&ADD T,BOXR,#6*20:LDMLTIA T,{X2,Y2} N BLLT line XRSBS T,NX,#0:RSBLTS T,NY,#0 b&ADD T,BOXR,#3*20:LDMLTIA T,{X1,Y1} l&ADD T,BOXR,#7*20:LDMLTIA T,{X2,Y2} v BLLT line �LDMFD 13!,{PC} � �.drawbox_back �STMFD 13!,{14} � LDR T,C1D �MOV NX,T,ASR #16 �MOV T,T,LSL #16 �MOV NY,T,ASR #16 � LDR T,C2D �MOV NZ,T,ASR #16 �LDR BOXR,BOXD �ADD BOXR,BOXR,#12 �CMP NX,#0:RSBLTS T,NZ,#0 &ADD T,BOXR,#0*20:LDMGEIA T,{X1,Y1} &ADD T,BOXR,#1*20:LDMGEIA T,{X2,Y2} BLGE line CMP NY,#0:RSBLTS T,NZ,#0 *&ADD T,BOXR,#1*20:LDMGEIA T,{X1,Y1} 4&ADD T,BOXR,#2*20:LDMGEIA T,{X2,Y2} > BLGE line HRSBS T,NX,#0:RSBLTS T,NZ,#0 R&ADD T,BOXR,#2*20:LDMGEIA T,{X1,Y1} \&ADD T,BOXR,#3*20:LDMGEIA T,{X2,Y2} f BLGE line pRSBS T,NY,#0:RSBLTS T,NZ,#0 z&ADD T,BOXR,#3*20:LDMGEIA T,{X1,Y1} �&ADD T,BOXR,#0*20:LDMGEIA T,{X2,Y2} � BLGE line � �CMP NX,#0:CMPLT NZ,#0 �&ADD T,BOXR,#4*20:LDMGEIA T,{X1,Y1} �&ADD T,BOXR,#5*20:LDMGEIA T,{X2,Y2} � BLGE line �CMP NY,#0:CMPLT NZ,#0 �&ADD T,BOXR,#5*20:LDMGEIA T,{X1,Y1} �&ADD T,BOXR,#6*20:LDMGEIA T,{X2,Y2} � BLGE line �RSBS T,NX,#0:CMPLT NZ,#0 �&ADD T,BOXR,#6*20:LDMGEIA T,{X1,Y1} &ADD T,BOXR,#7*20:LDMGEIA T,{X2,Y2} BLGE line RSBS T,NY,#0:CMPLT NZ,#0 $&ADD T,BOXR,#7*20:LDMGEIA T,{X1,Y1} .&ADD T,BOXR,#4*20:LDMGEIA T,{X2,Y2} 8 BLGE line B LRSBS T,NY,#0:CMPLT NX,#0 V&ADD T,BOXR,#0*20:LDMGEIA T,{X1,Y1} `&ADD T,BOXR,#4*20:LDMGEIA T,{X2,Y2} j BLGE line tCMP NX,#0:CMPLT NY,#0 ~&ADD T,BOXR,#1*20:LDMGEIA T,{X1,Y1} �&ADD T,BOXR,#5*20:LDMGEIA T,{X2,Y2} � BLGE line �CMP NY,#0:RSBLTS T,NX,#0 �&ADD T,BOXR,#2*20:LDMGEIA T,{X1,Y1} �&ADD T,BOXR,#6*20:LDMGEIA T,{X2,Y2} � BLGE line �RSBS T,NX,#0:RSBLTS T,NY,#0 �&ADD T,BOXR,#3*20:LDMGEIA T,{X1,Y1} �&ADD T,BOXR,#7*20:LDMGEIA T,{X2,Y2} � BLGE line �LDMFD 13!,{PC} �] � Q%=P% � ( 2� �calc_invers <K=2<<20 F&� I=1 � 1023:INVERS!(4*I)=K/I+.5:� P� Z d� �calc_cstable nF=2*�/4096:V=2^15 xT2=CSTABLE+8*1024 �T3=CSTABLE+8*2048 �T4=CSTABLE+8*3072 �� H=0 � 1023 � K=F*H �CS=�(K)*V:SN=�(K)*V �CSTABLE!(8*H)=CS �CSTABLE!(8*H+4)=SN �T2!(8*H)=-SN �T2!(8*H+4)=CS �T3!(8*H)=-CS �T3!(8*H+4)=-SN �T4!(8*H)=SN �T4!(8*H+4)=-CS � � "� �calc_divtable ,T=0:N=1:Q=2:I=3:J=4:DIT=5 6� PASS=0 � 2 � 2 @ P%=Q% J [OPT PASS T.DNRD EQUD 0 ^.DITH EQUD 0 h.BIAS EQUD 0 r.calc_divtable |STMFD 13!,{0-12,14} �LDR DIT,DITH �LDR I,DNRD �.DVLOOP2 �LDR T,BIAS �MOV N,I �MOV J,#0 �MOV Q,#0 �.DVLOOP3 �CMP N,T �MOVLO N,N,LSL #1 �ADDLO J,J,#1 �BLO DVLOOP3 �MOV N,N,LSR J .DVLOOP1 CMP T,N,LSL J SUBHS T,T,N,LSL J & ADC Q,Q,Q 0SUBS J,J,#1 :BPL DVLOOP1 DSTR Q,[DIT,I,LSL #2] NSUBS I,I,#1 XBNE DVLOOP2 bLDMFD 13!,{0-12,PC} l] v� � Q%=P% �� � �� �calc_rot_matrix �CHX=0:SHX=1 �CHY=2:SHY=3 �CHZ=4:SHZ=5 �T=6:S=7:H=8 �DHX=3:DHY=4:DHZ=5 �HX=9:HY=10:HZ=11 �TX=9:TY=10:TZ=11 � CS=12 �SCR=0:COL=1 � PASS=0 � 2 � 2 P%=Q% [OPT PASS *.DHXD EQUD 0:.DHYD EQUD 0:.DHZD EQUD 0 *'.HXD EQUD 0:.HYD EQUD 0:.HZD EQUD 0 4.CSD EQUD CSTABLE >'.TXD EQUD 0:.TYD EQUD 0:.TZD EQUD 0 \.calc_rot_matrix fSTMFD 13!,{0-12,14} pSWI "OS_Mouse" z.SUB R0,R0,#640:MOV R0,R0,LSL #3:STR R0,TXD �.SUB R1,R1,#512:MOV R1,R1,LSL #3:STR R1,TYD �MLDR R0,TZD:TST R2,#1:SUBEQ R0,R0,#64:TST R2,#4:ADDEQ R0,R0,#64:STR R0,TZD L0ADR T,DHXD:LDMIA T,{DHX,DHY,DHZ,HX,HY,HZ,CS} V0ADD DHX,DHX,HX:ADD DHY,DHY,HY:ADD DHZ,DHZ,HZ `&ADD T,T,#3*4:STMIA T,{DHX,DHY,DHZ} jMOV S,#4096:SUB S,S,#1 t9CMP HX,#0:RSBMI HX,HX,#0:� HX,HX,S:ADD T,CS,HX,LSL #3 ~&LDMIA T,{CHX,SHX}:RSBMI SHX,SHX,#0 �9CMP HY,#0:RSBMI HY,HY,#0:� HY,HY,S:ADD T,CS,HY,LSL #3 �&LDMIA T,{CHY,SHY}:RSBMI SHY,SHY,#0 �9CMP HZ,#0:RSBMI HZ,HZ,#0:� HZ,HZ,S:ADD T,CS,HZ,LSL #3 �&LDMIA T,{CHZ,SHZ}:RSBMI SHZ,SHZ,#0 � ADR T,TXD:LDMIA T,{TX,TY,TZ} �!MUL T,CHY,CHZ:MOV T,T,ASR #15 �!MUL S,CHY,SHZ:MOV S,S,LSR #15 �ADD T,S,T,LSL #16:STR T,A1D �"ADD T,TX,SHY,LSL #16:STR T,A2D � �)MUL T,SHX,SHY:MOV T,T,ASR #15:MOV S,T �:MUL H,CHX,SHZ:MLA T,CHZ,T,H:RSB T,T,#0:MOV T,T,ASR #15 7MUL H,CHX,CHZ:MUL S,SHZ,S:SUB S,H,S:MOV S,S,LSR #15 ADD T,S,T,LSL #16:STR T,B1D !MUL T,SHX,CHY:MOV T,T,ASR #15 ( ADD T,TY,T,LSL #16:STR T,B2D 2)MUL T,CHX,SHY:MOV T,T,ASR #15:MOV S,T <7MUL T,CHZ,T:MUL H,SHX,SHZ:SUB T,H,T:MOV T,T,ASR #15 F:MUL S,SHZ,S:MLA H,SHX,CHZ,S:RSB S,H,#0:MOV S,S,LSR #15 PADD T,S,T,LSL #16:STR T,C1D Z!MUL T,CHX,CHY:MOV T,T,ASR #15 d ADD T,TZ,T,LSL #16:STR T,C2D nLDMFD 13!,{0-12,PC} x] �� � Q%=P% �� � � � �� �transform �GA1=0:A2=1:B1=2:B2=3:C1=4:C2=5:T=6:DIT=7:U=8:V=9:W=10:X=10:Y=11:Z=12 � A=13:B=14 �� PASS=0 � 2 � 2 � P%=Q% � [OPT PASS �.A1D EQUD 0:.A2D EQUD 0 .B1D EQUD 0:.B2D EQUD 0 .C1D EQUD 0:.C2D EQUD 0 .DITD EQUD DITABLE " ,.VD EQUD 0 6.SP EQUD 0 @.LK EQUD 0 J T.PIXD EQUD PIX ^.PIXT EQUD PIXPROJ h.TG EQUD 0 r.transformpix |STMFD 13!,{0-12,14} � STR 13,SP � ADR T,A1D �#LDMIA T,{A1,A2,B1,B2,C1,C2,DIT} �LDR A,PIXD:LDR B,PIXT �@LDR T,TG:CMP T,#0:MOVNE T,#0:�Q T,#1:ADDNE B,B,#2*4:STR T,TG �#LDMIA (A)!,{X,Y,Z}:ADD A,A,#3*4 � BAL TRANS � � �.transform �STMFD 13!,{0-12,14} � STR 13,SP � ADR T,A1D 'LDMIA T,{A1,A2,B1,B2,C1,C2,DIT,A,B} #LDMIA (A)!,{X,Y,Z}:ADD A,A,#3*4 .TRANS &MOV T,A1,ASR #16 0 MUL U,X,T :MOV T,A1,LSL #16 DMOV T,T,ASR #16 NMLA U,Y,T,U XMOV T,A2,ASR #16 bMLA U,Z,T,U lMOV T,A2,LSL #16 vMOV T,T,ASR #16 �ADD U,T,U,ASR #15 �MOV T,B1,ASR #16 � MUL V,X,T �MOV T,B1,LSL #16 �MOV T,T,ASR #16 �MLA V,Y,T,V �MOV T,B2,ASR #16 �MLA V,Z,T,V �MOV T,B2,LSL #16 �MOV T,T,ASR #16 �ADD V,T,V,ASR #15 �MOV T,C1,ASR #16 � MUL W,T,X MOV T,C1,LSL #16 MOV T,T,ASR #16 MLA W,Y,T,W MOV T,C2,ASR #16 *MLA W,Z,T,W 4MOV T,C2,LSL #16 >MOV T,T,ASR #16 HADD W,T,W,ASR #15 R; CMP W,#0 \; MOVMI W,#1 fLDR W,[DIT,W,LSL #2] p MUL U,W,U z MUL V,W,V �MOV U,U,ASR #12 �MOV V,V,ASR #12 �ADD U,U,#160 �ADD V,V,#128 �!STMIA (B)!,{U,V}:ADD B,B,#2*4 �#LDMIA (A)!,{X,Y,Z}:ADD A,A,#3*4 �CMP X,#1<<30 � BNE TRANS � LDR 13,SP �LDMFD 13!,{0-12,PC} � � �.BOXD EQUD BOX .transformbox STMFD 13!,{0-12,14} STR 13,SP $ ADR T,A1D .#LDMIA T,{A1,A2,B1,B2,C1,C2,DIT} 8LDR A,BOXD BLDMIA (A)!,{X,Y,Z} L.TRANSB VMOV T,A1,ASR #16 ` MUL U,X,T jMOV T,A1,LSL #16 tMOV T,T,ASR #16 ~MLA U,Y,T,U �MOV T,A2,ASR #16 �MLA U,Z,T,U �MOV T,A2,LSL #16 �MOV T,T,ASR #16 �ADD U,T,U,ASR #15 �MOV T,B1,ASR #16 � MUL V,X,T �MOV T,B1,LSL #16 �MOV T,T,ASR #16 �MLA V,Y,T,V �MOV T,B2,ASR #16 �MLA V,Z,T,V MOV T,B2,LSL #16 MOV T,T,ASR #16 ADD V,T,V,ASR #15 MOV T,C1,ASR #16 ( MUL W,T,X 2MOV T,C1,LSL #16 <MOV T,T,ASR #16 FMLA W,Y,T,W PMOV T,C2,ASR #16 ZMLA W,Z,T,W dMOV T,C2,LSL #16 nMOV T,T,ASR #16 xADDS W,T,W,ASR #15 �LDR W,[DIT,W,LSL #2] � MUL U,W,U � MUL V,W,V �MOV U,U,ASR #12 �MOV V,V,ASR #12 �ADD U,U,#160 �ADD V,V,#128 �STMIA (A)!,{U,V} �LDMIA (A)!,{X,Y,Z} �CMP X,#1<<30 �BNE TRANSB � LDR 13,SP �LDMFD 13!,{0-12,PC} ] "� , Q%=P% 6� : D N� �adjustposition XBP=0:CP=1:X=2:Y=3:Z=4:VX=5:VY=6:VZ=7:T=8:GX=9:GY=10:GZ=11:DT=12 b FO=4+4*SH l� PASS=0 � 2 � 2 v P%=Q% � [OPT PASS � � �.DITD EQUD DITABLE �.adjustpix �STMFD 13!,{0-12,14} �LDR P,PIXD �LDR DT,DITD �MOV CP,#ND �LDMIA P,{X,Y,Z,VX,VY,VZ} � ADD X,X,VX �ADD T,X,#box<<SH �CMP T,#2*box<<SH RSBHI VX,VX,#0 ADDHI X,X,VX,LSL #1 ADD Y,Y,VY ADD T,Y,#box<<SH *CMP T,#2*box<<SH 4RSBHI VY,VY,#0 >ADDHI Y,Y,VY,LSL #1 H ADD Z,Z,VZ RADD T,Z,#box<<SH \CMP T,#2*box<<SH fRSBHI VZ,VZ,#0 pADDHI Z,Z,VZ,LSL #1 zSTMIA (P)!,{X,Y,Z,VX,VY,VZ} �SUBS CP,CP,#1 �MOV GX,X:MOV GY,Y:MOV GZ,Z � �.adjust2 �LDMIA P,{X,Y,Z,VX,VY,VZ} � ADD X,X,VX �; ADD T,X,#box<<SH �; CMP T,#2*box<<SH �; RSBHI VX,VX,#0 �; ADDHI X,X,VX,LSL #1 � � ADD Y,Y,VY �; ADD T,Y,#box<<SH ; CMP T,#2*box<<SH ; RSBHI VY,VY,#0 ; ADDHI Y,Y,VY,LSL #1 $ . ADD Z,Z,VZ 8; ADD T,Z,#box<<SH B; CMP T,#2*box<<SH L; RSBHI VZ,VZ,#0 V; ADDHI Z,Z,VZ,LSL #1 `STMIA (P)!,{X,Y,Z} j tSUBS X,GX,X ~MOV T,X �RSBMI T,T,#0 � �SUBS Y,GY,Y �ADDPL T,T,Y �SUBMI T,T,Y � �SUBS Z,GZ,Z �ADDPL T,T,Z �SUBMI T,T,Z � �ADD VX,VX,X,ASR #9 �ADD VY,VY,Y,ASR #9 ADD VZ,VZ,Z,ASR #9 MOV T,#20<<SH CMP VX,T:MOVGT VX,T CMN VX,T:RSBLT VX,T,#0 (CMP VY,T:MOVGT VY,T 2CMN VY,T:RSBLT VY,T,#0 <CMP VZ,T:MOVGT VZ,T FCMN VZ,T:RSBLT VZ,T,#0 P ZSTMIA (P)!,{VX,VY,VZ} d nSUBS CP,CP,#1 xBNE adjust2 �LDMFD 13!,{0-12,PC} � �] � Q%=P% �� � � �� �line � �� DITABLE2 1024*4 �P%=DITABLE2+4 �� I=1 � 1024 � [OPT 0 EQUD (2^20/I) ] � " ,� CTABLE2 16 6P%=CTABLE2 @ [OPT 0 JEQUB %11111111 TEQUB %11111110 ^EQUB %11111101 hEQUB %11111100 rEQUB %11010011 |EQUB %11010010 �EQUB %11010001 �EQUB %11010000 �EQUB %00101111 �EQUB %00101110 �EQUB %00101101 �EQUB %00101100 �EQUB %00000011 �EQUB %00000010 �EQUB %00000001 �EQUB %00000000 �] � �EX1=0:Y1=1:X2=2:Y2=3:XL=4:XR=5:YB=6:YT=7:K1=8:K2=9:DT=10:S=11:T=12 �&LL=0:RR=1:A=2:B=3:C=4:O=5:D=6:CT=7 �� PASS=0 � 2 � 2 � P%=Q% [OPT PASS N\------------------------------------------------------------------------- .screen1 EQUD 148:EQUD -1 .screen EQUD 0 *.CTABLED EQUD CTABLE2 4 >).BOXD EQUD 1:EQUD 318:EQUD 1:EQUD 254 H.DITABLED EQUD DITABLE2 R.set \:ADR R0,screen1:ADR R1,screen:SWI "OS_ReadVduVariables" fMOV PC,R14 g p2� Anti-aliased lines, with Sutherland clipping q8� Parameters (X1,Y1) => (R0,R1); (X2,Y2) => (R2,R3) � .line �STMFD 13!,{8-11} �ADR T,BOXD �LDMIA T,{XL,XR,YB,YT,DT} � MOV K1,#0 � CMP X1,XL ��RLT K1,K1,#1 � CMP X1,XR ��RGT K1,K1,#2 � CMP Y1,YB ��RLT K1,K1,#4 � CMP Y1,YT ��RGT K1,K1,#8 MOV K2,#0 CMP X2,XL �RLT K2,K2,#1 $ CMP X2,XR .�RGT K2,K2,#2 8 CMP Y2,YB B�RLT K2,K2,#4 L CMP Y2,YT V�RGT K2,K2,#8 `�RS T,K1,K2 j.BEQ endwhile \ Line completely inside box t�S T,K1,K2 ~LDMNEFD 13!,{8-11} �/MOVNE PC,R14 \ Line completely outside box � � .while �,CMP K1,#0 \ Swap (x1,y1) outside box ��Q T,X1:�Q X1,X2:�Q X2,T ��Q T,Y1:�Q Y1,Y2:�Q Y2,T ��Q T,K1:�Q K1,K2:�Q K2,T � �TST K1,#1:BEQ sk1 �1SUBS T,X2,X1:RSBMI T,T,#0:LDR S,[DT,T,LSL #2] �7SUB T,Y2,Y1:RSBMI T,T,#0:MUL S,T,S:MOV S,S,ASR #10 �SUB T,XL,X1:MUL S,T,S ADD Y1,Y1,S,ASR #10 MOV X1,XL .sk1 TST K1,#2:BEQ sk2 (1SUBS T,X2,X1:RSBMI T,T,#0:LDR S,[DT,T,LSL #2] 27SUB T,Y2,Y1:RSBMI T,T,#0:MUL S,T,S:MOV S,S,ASR #10 <SUB T,XR,X1:MUL S,T,S FADD Y1,Y1,S,ASR #10 PMOV X1,XR Z.sk2 d n MOV K1,#0 x CMP Y1,YB ��RLT K1,K1,#4 � CMP Y1,YT ��RGT K1,K1,#8 ��S T,K1,K2 �LDMNEFD 13!,{8-11} �/MOVNE PC,R14 \ Line completely outside box ��RS T,K1,K2 �.BEQ endwhile \ Line completely inside box � �TST K1,#4:BEQ sk3 �1SUBS T,Y2,Y1:RSBMI T,T,#0:LDR S,[DT,T,LSL #2] �7SUB T,X2,X1:RSBMI T,T,#0:MUL S,T,S:MOV S,S,ASR #10 �SUB T,YB,Y1:MUL S,T,S ADD X1,X1,S,ASR #10 MOV Y1,YB .sk3 "TST K1,#8:BEQ sk4 ,1SUBS T,Y2,Y1:RSBMI T,T,#0:LDR S,[DT,T,LSL #2] 67SUB T,X2,X1:RSBMI T,T,#0:MUL S,T,S:MOV S,S,ASR #10 @SUB T,YT,Y1:MUL S,T,S JADD X1,X1,S,ASR #10 TMOV Y1,YT ^.sk4 h r MOV K1,#0 | CMP X1,XL ��RLT K1,K1,#1 � CMP X1,XR ��RGT K1,K1,#2 ��S T,K1,K2 �LDMNEFD 13!,{8-11} �/MOVNE PC,R14 \ Line completely outside box ��RS T,K1,K2 � BNE while �..endwhile \ Line completely inside box � �ADR T,screen �LDMIA T,{O,CT} �RSB T,Y1,#255 ADD T,T,T,LSL #2 ADD T,X1,T,LSL #6 ADD O,O,T &SUB A,X2,X1 0SUB B,Y2,Y1 : MOV LL,#1 DMOV RR,#320 NRSB RR,RR,#0 XCMP A,#0 b RSBLT A,A,#0 l RSBLT LL,LL,#0 vCMP B,#0 � RSBLT B,B,#0 � RSBLT RR,RR,#0 �CMP A,B � MOVLT T,A � MOVLT A,B � MOVLT B,T � MOVLT T,LL � MOVLT LL,RR � MOVLT RR,T �LDRB C,[CT] �STRB C,[O] �CMP A,#0 �LDMEQFD 13!,{8-11} ! �Q PC,R14 !LDR T,[DT,A,LSL #2] ! MUL B,T,B ! MOV D,#1<<20 !*.line_loop !4SUBS D,D,B !>ADDLE D,D,#1<<20 !HADDLE O,O,RR !RRSB T,D,#1<<20 !\LDRB C,[CT,T,LSR #17] !fSTRB C,[O,LL]! !pLDRB C,[CT,D,LSR #17] !zSTRB C,[O,RR] !�SUBS A,A,#1 !�BNE line_loop !�LDMFD 13!,{8-11} !�MOV PC,R14 !� !� !�] !�� !� Q%=P% !� !� !�MNL=0: :TAB=2:FREE=3:NR=4:INV=5:CO=6: N=7: X1=9:Y1=10:X2=11:Y2=12 !�MLE=0:RE=1: L=2: R=3:XL=4: XR=5:DXL=6:DXR=7: O=8:C1=9:C2=10:C3=11:C4=12 " PL=0:PR=1 " Q=13:T=14 " PO=13 "$� PASS=0 � 2 � 2 ". P%=Q% "8 [OPT PASS "B "L.PIXL EQUD PIXPROJ "V.drawpix "`STMFD 13!,{14} "jLDR 5,PIXL "tMOV 4,#%11111100 "~ MOV 6,#ND "�.pixloop "�LDMIA 5!,{0,1,2,3} "�STMFD 13!,{4-6} "�BL line "�LDMFD 13!,{4-6} "�SUBS 6,6,#1 "�BNE pixloop "�LDMFD 13!,{PC} "� "�] "�� "� Q%=P% # � �
00000000 0d 00 0a 0e f4 20 3e 33 44 53 57 41 52 4d 0d 00 |..... >3DSWARM..| 00000010 14 17 f4 20 28 63 29 20 4a 61 6e 20 56 6c 69 65 |... (c) Jan Vlie| 00000020 74 69 6e 63 6b 0d 00 15 1d f4 20 76 6c 69 65 74 |tinck..... vliet| 00000030 69 6e 40 69 6e 74 65 63 2e 72 75 67 2e 61 63 2e |in@intec.rug.ac.| 00000040 62 65 0d 00 28 04 0d 00 32 2c f4 4f 4e 20 45 52 |be..(...2,.ON ER| 00000050 52 4f 52 3a 50 52 49 4e 54 20 22 45 72 72 6f 72 |ROR:PRINT "Error| 00000060 20 61 74 20 6c 69 6e 65 20 22 3b 45 52 4c 3a 45 | at line ";ERL:E| 00000070 4e 44 0d 00 33 09 ee 20 85 3a e0 0d 00 3c 10 eb |ND..3.. .:...<..| 00000080 31 33 2b 31 32 38 3a eb 20 31 33 0d 00 46 04 0d |13+128:. 13..F..| 00000090 00 50 0a 4e 44 3d 31 35 30 0d 00 5a 11 53 48 3d |.P.ND=150..Z.SH=| 000000a0 34 3a 46 49 58 3d 32 5e 53 48 0d 00 64 0b 62 6f |4:FIX=2^SH..d.bo| 000000b0 78 3d 31 36 30 0d 00 6e 04 0d 00 78 12 de 20 50 |x=160..n...x.. P| 000000c0 49 58 20 4e 44 2a 36 2a 34 2b 34 0d 00 82 18 de |IX ND*6*4+4.....| 000000d0 20 50 49 58 50 52 4f 4a 20 4e 44 2a 34 2a 34 2b | PIXPROJ ND*4*4+| 000000e0 31 30 30 0d 00 8c 13 de 20 42 4f 58 20 34 2a 28 |100..... BOX 4*(| 000000f0 38 2a 35 2b 31 29 0d 00 96 08 f2 61 73 73 0d 00 |8*5+1).....ass..| 00000100 a0 0d f2 62 75 69 6c 64 70 69 78 0d 00 aa 0d f2 |...buildpix.....| 00000110 62 75 69 6c 64 62 6f 78 0d 00 be 0c 87 3a d6 20 |buildbox.....:. | 00000120 6d 61 69 6e 0d 00 c8 05 e0 0d 00 d2 04 0d 00 dc |main............| 00000130 04 0d 00 e6 0b dd 20 f2 6d 61 69 6e 0d 00 f0 3d |...... .main...=| 00000140 21 44 4e 52 44 3d 34 30 30 30 2a 31 36 3a 21 44 |!DNRD=4000*16:!D| 00000150 49 54 48 3d 44 49 54 41 42 4c 45 3a 21 42 49 41 |ITH=DITABLE:!BIA| 00000160 53 3d 32 30 30 3c 3c 31 32 3a d6 20 63 61 6c 63 |S=200<<12:. calc| 00000170 5f 64 69 76 74 61 62 6c 65 0d 00 fa 3d 21 44 4e |_divtable...=!DN| 00000180 52 44 3d 34 30 30 2a 31 36 3a 21 44 49 54 48 3d |RD=400*16:!DITH=| 00000190 44 49 54 41 42 4c 45 33 3a 21 42 49 41 53 3d 32 |DITABLE3:!BIAS=2| 000001a0 35 36 3c 3c 31 32 3a d6 20 63 61 6c 63 5f 64 69 |56<<12:. calc_di| 000001b0 76 74 61 62 6c 65 0d 01 04 08 56 54 3d 32 0d 01 |vtable....VT=2..| 000001c0 0e 20 21 44 48 58 44 3d 28 2d 31 29 5e b3 28 32 |. !DHXD=(-1)^.(2| 000001d0 29 2a 28 b3 28 56 54 2a 32 29 2b 56 54 29 0d 01 |)*(.(VT*2)+VT)..| 000001e0 18 20 21 44 48 59 44 3d 28 2d 31 29 5e b3 28 32 |. !DHYD=(-1)^.(2| 000001f0 29 2a 28 b3 28 56 54 2a 32 29 2b 56 54 29 0d 01 |)*(.(VT*2)+VT)..| 00000200 22 20 21 44 48 5a 44 3d 28 2d 31 29 5e b3 28 32 |" !DHZD=(-1)^.(2| 00000210 29 2a 28 b3 28 56 54 2a 32 29 2b 56 54 29 0d 01 |)*(.(VT*2)+VT)..| 00000220 2c 1d 21 54 58 44 3d 30 3a 21 54 59 44 3d 30 3a |,.!TXD=0:!TYD=0:| 00000230 21 54 5a 44 3d 34 34 30 2a 31 36 0d 01 36 14 e3 |!TZD=440*16..6..| 00000240 20 50 41 53 53 3d 30 20 b8 20 32 20 88 20 32 0d | PASS=0 . 2 . 2.| 00000250 01 40 09 50 25 3d 51 25 0d 01 4a 0d 5b 4f 50 54 |.@.P%=Q%..J.[OPT| 00000260 20 50 41 53 53 0d 01 54 10 2e 62 61 6e 6b 20 45 | PASS..T..bank E| 00000270 51 55 44 20 32 0d 01 5e 09 2e 6d 61 69 6e 0d 01 |QUD 2..^..main..| 00000280 68 12 53 54 4d 46 44 20 31 33 21 2c 7b 31 34 7d |h.STMFD 13!,{14}| 00000290 0d 01 72 16 42 4c 20 63 61 6c 63 5f 72 6f 74 5f |..r.BL calc_rot_| 000002a0 6d 61 74 72 69 78 0d 01 7c 10 42 4c 20 61 64 6a |matrix..|.BL adj| 000002b0 75 73 74 70 69 78 0d 01 86 13 42 4c 20 74 72 61 |ustpix....BL tra| 000002c0 6e 73 66 6f 72 6d 70 69 78 0d 01 90 0d 2e 6d 61 |nsformpix.....ma| 000002d0 69 6e 6c 6f 6f 70 0d 01 9a 16 42 4c 20 63 61 6c |inloop....BL cal| 000002e0 63 5f 72 6f 74 5f 6d 61 74 72 69 78 0d 01 b8 10 |c_rot_matrix....| 000002f0 42 4c 20 61 64 6a 75 73 74 70 69 78 0d 01 c2 13 |BL adjustpix....| 00000300 42 4c 20 74 72 61 6e 73 66 6f 72 6d 70 69 78 0d |BL transformpix.| 00000310 01 cc 29 4d 4f 56 20 52 30 2c 23 26 37 30 3a 4c |..)MOV R0,#&70:L| 00000320 44 52 20 52 31 2c 62 61 6e 6b 3a 53 57 49 20 22 |DR R1,bank:SWI "| 00000330 4f 53 5f 42 79 74 65 22 0d 01 d6 0c 53 57 49 20 |OS_Byte"....SWI | 00000340 26 31 30 43 0d 01 e0 0a 42 4c 20 73 65 74 0d 01 |&10C....BL set..| 00000350 ea 13 42 4c 20 74 72 61 6e 73 66 6f 72 6d 62 6f |..BL transformbo| 00000360 78 0d 01 f4 13 42 4c 20 64 72 61 77 62 6f 78 5f |x....BL drawbox_| 00000370 62 61 63 6b 0d 02 12 0e 42 4c 20 64 72 61 77 70 |back....BL drawp| 00000380 69 78 0d 02 1c 14 42 4c 20 64 72 61 77 62 6f 78 |ix....BL drawbox| 00000390 5f 66 72 6f 6e 74 0d 02 26 1d 4d 4f 56 20 52 30 |_front..&.MOV R0| 000003a0 2c 23 26 31 33 3a 53 57 49 20 22 4f 53 5f 42 79 |,#&13:SWI "OS_By| 000003b0 74 65 22 0d 02 30 29 4d 4f 56 20 52 30 2c 23 26 |te"..0)MOV R0,#&| 000003c0 37 31 3a 4c 44 52 20 52 31 2c 62 61 6e 6b 3a 53 |71:LDR R1,bank:S| 000003d0 57 49 20 22 4f 53 5f 42 79 74 65 22 0d 02 3a 26 |WI "OS_Byte"..:&| 000003e0 4c 44 52 20 52 31 2c 62 61 6e 6b 3a 82 20 52 31 |LDR R1,bank:. R1| 000003f0 2c 52 31 2c 23 33 3a 53 54 52 20 52 31 2c 62 61 |,R1,#3:STR R1,ba| 00000400 6e 6b 0d 02 4e 1c 53 57 49 20 22 4f 53 5f 52 65 |nk..N.SWI "OS_Re| 00000410 61 64 45 73 63 61 70 65 53 74 61 74 65 22 0d 02 |adEscapeState"..| 00000420 58 10 42 43 43 20 6d 61 69 6e 6c 6f 6f 70 0d 02 |X.BCC mainloop..| 00000430 62 12 4c 44 4d 46 44 20 31 33 21 2c 7b 50 43 7d |b.LDMFD 13!,{PC}| 00000440 0d 02 6c 05 5d 0d 02 76 05 ed 0d 02 80 09 51 25 |..l.]..v......Q%| 00000450 3d 50 25 0d 02 8a 05 e1 0d 02 94 04 0d 02 9e 04 |=P%.............| 00000460 0d 02 a8 0a dd 20 f2 61 73 73 0d 02 b2 0f de 20 |..... .ass..... | 00000470 51 25 20 31 33 30 30 30 30 0d 02 bc 13 de 20 49 |Q% 130000..... I| 00000480 4e 56 45 52 53 20 34 2a 31 30 32 34 0d 02 c6 17 |NVERS 4*1024....| 00000490 de 20 44 49 54 41 42 4c 45 20 34 30 30 30 2a 31 |. DITABLE 4000*1| 000004a0 36 2a 34 0d 02 d0 17 de 20 44 49 54 41 42 4c 45 |6*4..... DITABLE| 000004b0 33 20 34 30 30 2a 31 36 2a 34 0d 02 da 14 de 20 |3 400*16*4..... | 000004c0 43 53 54 41 42 4c 45 20 34 30 39 36 2a 38 0d 02 |CSTABLE 4096*8..| 000004d0 e4 13 de 20 43 54 41 42 4c 45 20 31 30 30 2a 31 |... CTABLE 100*1| 000004e0 36 0d 02 ee 10 f2 63 61 6c 63 5f 69 6e 76 65 72 |6.....calc_inver| 000004f0 73 0d 02 f8 11 f2 63 61 6c 63 5f 63 73 74 61 62 |s.....calc_cstab| 00000500 6c 65 0d 03 02 12 f2 63 61 6c 63 5f 64 69 76 74 |le.....calc_divt| 00000510 61 62 6c 65 0d 03 0c 0e f2 74 72 61 6e 73 66 6f |able.....transfo| 00000520 72 6d 0d 03 16 09 f2 6c 69 6e 65 0d 03 20 14 f2 |rm.....line.. ..| 00000530 63 61 6c 63 5f 72 6f 74 5f 6d 61 74 72 69 78 0d |calc_rot_matrix.| 00000540 03 2a 13 f2 61 64 6a 75 73 74 70 6f 73 69 74 69 |.*..adjustpositi| 00000550 6f 6e 0d 03 34 0c f2 64 72 61 77 62 6f 78 0d 03 |on..4..drawbox..| 00000560 3e 09 f2 6d 61 69 6e 0d 03 48 05 e1 0d 03 52 04 |>..main..H....R.| 00000570 0d 03 5c 0f dd 20 f2 62 75 69 6c 64 70 69 78 0d |..\.. .buildpix.| 00000580 03 66 0a 50 25 3d 50 49 58 0d 03 70 09 53 50 3d |.f.P%=PIX..p.SP=| 00000590 32 30 0d 03 7a 0a 5b 4f 50 54 20 30 0d 03 84 18 |20..z.[OPT 0....| 000005a0 45 51 55 44 20 28 b3 28 31 30 30 29 2d 35 30 29 |EQUD (.(100)-50)| 000005b0 3c 3c 53 48 0d 03 8e 18 45 51 55 44 20 28 b3 28 |<<SH....EQUD (.(| 000005c0 31 30 30 29 2d 35 30 29 3c 3c 53 48 0d 03 98 18 |100)-50)<<SH....| 000005d0 45 51 55 44 20 28 b3 28 31 30 30 29 2d 35 30 29 |EQUD (.(100)-50)| 000005e0 3c 3c 53 48 0d 03 a2 1b 45 51 55 44 20 28 2d 31 |<<SH....EQUD (-1| 000005f0 29 5e b3 28 32 29 2a b3 28 53 50 29 2b 31 30 0d |)^.(2)*.(SP)+10.| 00000600 03 ac 1b 45 51 55 44 20 28 2d 31 29 5e b3 28 32 |...EQUD (-1)^.(2| 00000610 29 2a b3 28 53 50 29 2b 31 30 0d 03 b6 1b 45 51 |)*.(SP)+10....EQ| 00000620 55 44 20 28 2d 31 29 5e b3 28 32 29 2a b3 28 53 |UD (-1)^.(2)*.(S| 00000630 50 29 2b 31 30 0d 03 c0 05 5d 0d 03 ca 09 53 50 |P)+10....]....SP| 00000640 3d 31 30 0d 03 d4 10 e3 20 49 3d 31 20 b8 20 4e |=10..... I=1 . N| 00000650 44 2d 31 0d 03 de 0a 5b 4f 50 54 20 30 0d 03 e8 |D-1....[OPT 0...| 00000660 48 45 51 55 44 20 b3 28 31 30 30 2a 46 49 58 29 |HEQUD .(100*FIX)| 00000670 2d 35 30 2a 46 49 58 3a 45 51 55 44 20 b3 28 31 |-50*FIX:EQUD .(1| 00000680 30 30 2a 46 49 58 29 2d 35 30 2a 46 49 58 3a 45 |00*FIX)-50*FIX:E| 00000690 51 55 44 20 b3 28 31 30 30 2a 46 49 58 29 2d 35 |QUD .(100*FIX)-5| 000006a0 30 2a 46 49 58 0d 03 f2 33 45 51 55 44 20 b3 28 |0*FIX...3EQUD .(| 000006b0 32 2a 53 50 29 2d 53 50 3a 45 51 55 44 20 b3 28 |2*SP)-SP:EQUD .(| * 000006d0 32 2a 53 50 29 2d 53 50 0d 03 fc 05 5d 0d 04 06 |2*SP)-SP....]...| 000006e0 05 ed 0d 04 10 17 5b 4f 50 54 20 30 3a 45 51 55 |......[OPT 0:EQU| 000006f0 44 20 31 3c 3c 33 30 3a 5d 0d 04 1a 05 e1 0d 04 |D 1<<30:].......| 00000700 24 04 0d 04 2e 0f dd 20 f2 62 75 69 6c 64 62 6f |$...... .buildbo| 00000710 78 0d 04 38 0a 50 25 3d 42 4f 58 0d 04 42 0e 42 |x..8.P%=BOX..B.B| 00000720 4f 3d 62 6f 78 2a 46 49 58 0d 04 4c 0e 4e 4f 3d |O=box*FIX..L.NO=| 00000730 31 30 30 2a 46 49 58 0d 04 56 0a 5b 4f 50 54 20 |100*FIX..V.[OPT | 00000740 30 0d 04 60 2c 45 51 55 44 20 20 42 4f 3a 45 51 |0..`,EQUD BO:EQ| 00000750 55 44 20 2d 42 4f 3a 45 51 55 44 20 2d 42 4f 3a |UD -BO:EQUD -BO:| 00000760 45 51 55 44 20 30 3a 45 51 55 44 20 30 0d 04 6a |EQUD 0:EQUD 0..j| 00000770 2c 45 51 55 44 20 20 42 4f 3a 45 51 55 44 20 20 |,EQUD BO:EQUD | 00000780 42 4f 3a 45 51 55 44 20 2d 42 4f 3a 45 51 55 44 |BO:EQUD -BO:EQUD| 00000790 20 30 3a 45 51 55 44 20 30 0d 04 74 2c 45 51 55 | 0:EQUD 0..t,EQU| 000007a0 44 20 2d 42 4f 3a 45 51 55 44 20 20 42 4f 3a 45 |D -BO:EQUD BO:E| 000007b0 51 55 44 20 2d 42 4f 3a 45 51 55 44 20 30 3a 45 |QUD -BO:EQUD 0:E| 000007c0 51 55 44 20 30 0d 04 7e 2c 45 51 55 44 20 2d 42 |QUD 0..~,EQUD -B| 000007d0 4f 3a 45 51 55 44 20 2d 42 4f 3a 45 51 55 44 20 |O:EQUD -BO:EQUD | 000007e0 2d 42 4f 3a 45 51 55 44 20 30 3a 45 51 55 44 20 |-BO:EQUD 0:EQUD | 000007f0 30 0d 04 88 2c 45 51 55 44 20 20 42 4f 3a 45 51 |0...,EQUD BO:EQ| 00000800 55 44 20 2d 42 4f 3a 45 51 55 44 20 20 42 4f 3a |UD -BO:EQUD BO:| 00000810 45 51 55 44 20 30 3a 45 51 55 44 20 30 0d 04 92 |EQUD 0:EQUD 0...| 00000820 2c 45 51 55 44 20 20 42 4f 3a 45 51 55 44 20 20 |,EQUD BO:EQUD | 00000830 42 4f 3a 45 51 55 44 20 20 42 4f 3a 45 51 55 44 |BO:EQUD BO:EQUD| 00000840 20 30 3a 45 51 55 44 20 30 0d 04 9c 2c 45 51 55 | 0:EQUD 0...,EQU| 00000850 44 20 2d 42 4f 3a 45 51 55 44 20 20 42 4f 3a 45 |D -BO:EQUD BO:E| 00000860 51 55 44 20 20 42 4f 3a 45 51 55 44 20 30 3a 45 |QUD BO:EQUD 0:E| 00000870 51 55 44 20 30 0d 04 a6 2c 45 51 55 44 20 2d 42 |QUD 0...,EQUD -B| 00000880 4f 3a 45 51 55 44 20 2d 42 4f 3a 45 51 55 44 20 |O:EQUD -BO:EQUD | 00000890 20 42 4f 3a 45 51 55 44 20 30 3a 45 51 55 44 20 | BO:EQUD 0:EQUD | 000008a0 30 0d 04 b0 0e 45 51 55 44 20 31 3c 3c 33 30 0d |0....EQUD 1<<30.| 000008b0 04 ba 05 5d 0d 04 c4 05 e1 0d 04 ce 04 0d 04 d8 |...]............| 000008c0 0e dd 20 f2 64 72 61 77 62 6f 78 0d 04 e2 18 ea |.. .drawbox.....| 000008d0 20 58 31 2c 59 31 2c 58 32 2c 59 32 2c 54 2c 42 | X1,Y1,X2,Y2,T,B| 000008e0 4f 58 52 0d 04 ec 34 58 31 3d 30 3a 59 31 3d 31 |OXR...4X1=0:Y1=1| 000008f0 3a 58 32 3d 32 3a 59 32 3d 33 3a 42 4f 58 52 3d |:X2=2:Y2=3:BOXR=| 00000900 38 3a 4e 58 3d 39 3a 4e 59 3d 31 30 3a 4e 5a 3d |8:NX=9:NY=10:NZ=| 00000910 31 31 3a 54 3d 31 32 0d 04 f6 14 e3 20 50 41 53 |11:T=12..... PAS| 00000920 53 3d 30 20 b8 20 32 20 88 20 32 0d 05 00 09 50 |S=0 . 2 . 2....P| 00000930 25 3d 51 25 0d 05 0a 0d 5b 4f 50 54 20 50 41 53 |%=Q%....[OPT PAS| 00000940 53 0d 05 14 04 0d 05 1e 12 2e 42 4f 58 44 20 45 |S.........BOXD E| 00000950 51 55 44 20 42 4f 58 0d 05 28 12 2e 64 72 61 77 |QUD BOX..(..draw| 00000960 62 6f 78 5f 66 72 6f 6e 74 0d 05 32 12 53 54 4d |box_front..2.STM| 00000970 46 44 20 31 33 21 2c 7b 31 34 7d 0d 05 3c 0d 4c |FD 13!,{14}..<.L| 00000980 44 52 20 54 2c 43 31 44 0d 05 46 14 4d 4f 56 20 |DR T,C1D..F.MOV | 00000990 4e 58 2c 54 2c 41 53 52 20 23 31 36 0d 05 50 13 |NX,T,ASR #16..P.| 000009a0 4d 4f 56 20 54 2c 54 2c 4c 53 4c 20 23 31 36 0d |MOV T,T,LSL #16.| 000009b0 05 5a 14 4d 4f 56 20 4e 59 2c 54 2c 41 53 52 20 |.Z.MOV NY,T,ASR | 000009c0 23 31 36 0d 05 64 0d 4c 44 52 20 54 2c 43 32 44 |#16..d.LDR T,C2D| 000009d0 0d 05 6e 14 4d 4f 56 20 4e 5a 2c 54 2c 41 53 52 |..n.MOV NZ,T,ASR| 000009e0 20 23 31 36 0d 05 78 11 4c 44 52 20 42 4f 58 52 | #16..x.LDR BOXR| 000009f0 2c 42 4f 58 44 0d 05 82 15 41 44 44 20 42 4f 58 |,BOXD....ADD BOX| 00000a00 52 2c 42 4f 58 52 2c 23 31 32 0d 05 8c 1c 43 4d |R,BOXR,#12....CM| 00000a10 50 20 4e 58 2c 23 30 3a 52 53 42 4c 54 53 20 54 |P NX,#0:RSBLTS T| 00000a20 2c 4e 5a 2c 23 30 0d 05 96 26 41 44 44 20 54 2c |,NZ,#0...&ADD T,| 00000a30 42 4f 58 52 2c 23 30 2a 32 30 3a 4c 44 4d 4c 54 |BOXR,#0*20:LDMLT| 00000a40 49 41 20 54 2c 7b 58 31 2c 59 31 7d 0d 05 a0 26 |IA T,{X1,Y1}...&| 00000a50 41 44 44 20 54 2c 42 4f 58 52 2c 23 31 2a 32 30 |ADD T,BOXR,#1*20| 00000a60 3a 4c 44 4d 4c 54 49 41 20 54 2c 7b 58 32 2c 59 |:LDMLTIA T,{X2,Y| 00000a70 32 7d 0d 05 aa 0d 42 4c 4c 54 20 6c 69 6e 65 0d |2}....BLLT line.| 00000a80 05 b4 1c 43 4d 50 20 4e 59 2c 23 30 3a 52 53 42 |...CMP NY,#0:RSB| 00000a90 4c 54 53 20 54 2c 4e 5a 2c 23 30 0d 05 be 26 41 |LTS T,NZ,#0...&A| 00000aa0 44 44 20 54 2c 42 4f 58 52 2c 23 31 2a 32 30 3a |DD T,BOXR,#1*20:| 00000ab0 4c 44 4d 4c 54 49 41 20 54 2c 7b 58 31 2c 59 31 |LDMLTIA T,{X1,Y1| 00000ac0 7d 0d 05 c8 26 41 44 44 20 54 2c 42 4f 58 52 2c |}...&ADD T,BOXR,| 00000ad0 23 32 2a 32 30 3a 4c 44 4d 4c 54 49 41 20 54 2c |#2*20:LDMLTIA T,| 00000ae0 7b 58 32 2c 59 32 7d 0d 05 d2 0d 42 4c 4c 54 20 |{X2,Y2}....BLLT | 00000af0 6c 69 6e 65 0d 05 dc 1f 52 53 42 53 20 54 2c 4e |line....RSBS T,N| 00000b00 58 2c 23 30 3a 52 53 42 4c 54 53 20 54 2c 4e 5a |X,#0:RSBLTS T,NZ| 00000b10 2c 23 30 0d 05 e6 26 41 44 44 20 54 2c 42 4f 58 |,#0...&ADD T,BOX| 00000b20 52 2c 23 32 2a 32 30 3a 4c 44 4d 4c 54 49 41 20 |R,#2*20:LDMLTIA | 00000b30 54 2c 7b 58 31 2c 59 31 7d 0d 05 f0 26 41 44 44 |T,{X1,Y1}...&ADD| 00000b40 20 54 2c 42 4f 58 52 2c 23 33 2a 32 30 3a 4c 44 | T,BOXR,#3*20:LD| 00000b50 4d 4c 54 49 41 20 54 2c 7b 58 32 2c 59 32 7d 0d |MLTIA T,{X2,Y2}.| 00000b60 05 fa 0d 42 4c 4c 54 20 6c 69 6e 65 0d 06 04 1f |...BLLT line....| 00000b70 52 53 42 53 20 54 2c 4e 59 2c 23 30 3a 52 53 42 |RSBS T,NY,#0:RSB| 00000b80 4c 54 53 20 54 2c 4e 5a 2c 23 30 0d 06 0e 26 41 |LTS T,NZ,#0...&A| 00000b90 44 44 20 54 2c 42 4f 58 52 2c 23 33 2a 32 30 3a |DD T,BOXR,#3*20:| 00000ba0 4c 44 4d 4c 54 49 41 20 54 2c 7b 58 31 2c 59 31 |LDMLTIA T,{X1,Y1| 00000bb0 7d 0d 06 18 26 41 44 44 20 54 2c 42 4f 58 52 2c |}...&ADD T,BOXR,| 00000bc0 23 30 2a 32 30 3a 4c 44 4d 4c 54 49 41 20 54 2c |#0*20:LDMLTIA T,| 00000bd0 7b 58 32 2c 59 32 7d 0d 06 22 0d 42 4c 4c 54 20 |{X2,Y2}..".BLLT | 00000be0 6c 69 6e 65 0d 06 2c 04 0d 06 36 19 43 4d 50 20 |line..,...6.CMP | 00000bf0 4e 58 2c 23 30 3a 43 4d 50 4c 54 20 4e 5a 2c 23 |NX,#0:CMPLT NZ,#| 00000c00 30 0d 06 40 26 41 44 44 20 54 2c 42 4f 58 52 2c |0..@&ADD T,BOXR,| 00000c10 23 34 2a 32 30 3a 4c 44 4d 4c 54 49 41 20 54 2c |#4*20:LDMLTIA T,| 00000c20 7b 58 31 2c 59 31 7d 0d 06 4a 26 41 44 44 20 54 |{X1,Y1}..J&ADD T| 00000c30 2c 42 4f 58 52 2c 23 35 2a 32 30 3a 4c 44 4d 4c |,BOXR,#5*20:LDML| 00000c40 54 49 41 20 54 2c 7b 58 32 2c 59 32 7d 0d 06 54 |TIA T,{X2,Y2}..T| 00000c50 0d 42 4c 4c 54 20 6c 69 6e 65 0d 06 5e 19 43 4d |.BLLT line..^.CM| 00000c60 50 20 4e 59 2c 23 30 3a 43 4d 50 4c 54 20 4e 5a |P NY,#0:CMPLT NZ| 00000c70 2c 23 30 0d 06 68 26 41 44 44 20 54 2c 42 4f 58 |,#0..h&ADD T,BOX| 00000c80 52 2c 23 35 2a 32 30 3a 4c 44 4d 4c 54 49 41 20 |R,#5*20:LDMLTIA | 00000c90 54 2c 7b 58 31 2c 59 31 7d 0d 06 72 26 41 44 44 |T,{X1,Y1}..r&ADD| 00000ca0 20 54 2c 42 4f 58 52 2c 23 36 2a 32 30 3a 4c 44 | T,BOXR,#6*20:LD| 00000cb0 4d 4c 54 49 41 20 54 2c 7b 58 32 2c 59 32 7d 0d |MLTIA T,{X2,Y2}.| 00000cc0 06 7c 0d 42 4c 4c 54 20 6c 69 6e 65 0d 06 86 1c |.|.BLLT line....| 00000cd0 52 53 42 53 20 54 2c 4e 58 2c 23 30 3a 43 4d 50 |RSBS T,NX,#0:CMP| 00000ce0 4c 54 20 4e 5a 2c 23 30 0d 06 90 26 41 44 44 20 |LT NZ,#0...&ADD | 00000cf0 54 2c 42 4f 58 52 2c 23 36 2a 32 30 3a 4c 44 4d |T,BOXR,#6*20:LDM| 00000d00 4c 54 49 41 20 54 2c 7b 58 31 2c 59 31 7d 0d 06 |LTIA T,{X1,Y1}..| 00000d10 9a 26 41 44 44 20 54 2c 42 4f 58 52 2c 23 37 2a |.&ADD T,BOXR,#7*| 00000d20 32 30 3a 4c 44 4d 4c 54 49 41 20 54 2c 7b 58 32 |20:LDMLTIA T,{X2| 00000d30 2c 59 32 7d 0d 06 a4 0d 42 4c 4c 54 20 6c 69 6e |,Y2}....BLLT lin| 00000d40 65 0d 06 ae 1c 52 53 42 53 20 54 2c 4e 59 2c 23 |e....RSBS T,NY,#| 00000d50 30 3a 43 4d 50 4c 54 20 4e 5a 2c 23 30 0d 06 b8 |0:CMPLT NZ,#0...| 00000d60 26 41 44 44 20 54 2c 42 4f 58 52 2c 23 37 2a 32 |&ADD T,BOXR,#7*2| 00000d70 30 3a 4c 44 4d 4c 54 49 41 20 54 2c 7b 58 31 2c |0:LDMLTIA T,{X1,| 00000d80 59 31 7d 0d 06 c2 26 41 44 44 20 54 2c 42 4f 58 |Y1}...&ADD T,BOX| 00000d90 52 2c 23 34 2a 32 30 3a 4c 44 4d 4c 54 49 41 20 |R,#4*20:LDMLTIA | 00000da0 54 2c 7b 58 32 2c 59 32 7d 0d 06 cc 0d 42 4c 4c |T,{X2,Y2}....BLL| 00000db0 54 20 6c 69 6e 65 0d 06 d6 04 0d 06 e0 1c 52 53 |T line........RS| 00000dc0 42 53 20 54 2c 4e 59 2c 23 30 3a 43 4d 50 4c 54 |BS T,NY,#0:CMPLT| 00000dd0 20 4e 58 2c 23 30 0d 06 ea 26 41 44 44 20 54 2c | NX,#0...&ADD T,| 00000de0 42 4f 58 52 2c 23 30 2a 32 30 3a 4c 44 4d 4c 54 |BOXR,#0*20:LDMLT| 00000df0 49 41 20 54 2c 7b 58 31 2c 59 31 7d 0d 06 f4 26 |IA T,{X1,Y1}...&| 00000e00 41 44 44 20 54 2c 42 4f 58 52 2c 23 34 2a 32 30 |ADD T,BOXR,#4*20| 00000e10 3a 4c 44 4d 4c 54 49 41 20 54 2c 7b 58 32 2c 59 |:LDMLTIA T,{X2,Y| 00000e20 32 7d 0d 06 fe 0d 42 4c 4c 54 20 6c 69 6e 65 0d |2}....BLLT line.| 00000e30 07 08 19 43 4d 50 20 4e 58 2c 23 30 3a 43 4d 50 |...CMP NX,#0:CMP| 00000e40 4c 54 20 4e 59 2c 23 30 0d 07 12 26 41 44 44 20 |LT NY,#0...&ADD | 00000e50 54 2c 42 4f 58 52 2c 23 31 2a 32 30 3a 4c 44 4d |T,BOXR,#1*20:LDM| 00000e60 4c 54 49 41 20 54 2c 7b 58 31 2c 59 31 7d 0d 07 |LTIA T,{X1,Y1}..| 00000e70 1c 26 41 44 44 20 54 2c 42 4f 58 52 2c 23 35 2a |.&ADD T,BOXR,#5*| 00000e80 32 30 3a 4c 44 4d 4c 54 49 41 20 54 2c 7b 58 32 |20:LDMLTIA T,{X2| 00000e90 2c 59 32 7d 0d 07 26 0d 42 4c 4c 54 20 6c 69 6e |,Y2}..&.BLLT lin| 00000ea0 65 0d 07 30 1c 43 4d 50 20 4e 59 2c 23 30 3a 52 |e..0.CMP NY,#0:R| 00000eb0 53 42 4c 54 53 20 54 2c 4e 58 2c 23 30 0d 07 3a |SBLTS T,NX,#0..:| 00000ec0 26 41 44 44 20 54 2c 42 4f 58 52 2c 23 32 2a 32 |&ADD T,BOXR,#2*2| 00000ed0 30 3a 4c 44 4d 4c 54 49 41 20 54 2c 7b 58 31 2c |0:LDMLTIA T,{X1,| 00000ee0 59 31 7d 0d 07 44 26 41 44 44 20 54 2c 42 4f 58 |Y1}..D&ADD T,BOX| 00000ef0 52 2c 23 36 2a 32 30 3a 4c 44 4d 4c 54 49 41 20 |R,#6*20:LDMLTIA | 00000f00 54 2c 7b 58 32 2c 59 32 7d 0d 07 4e 0d 42 4c 4c |T,{X2,Y2}..N.BLL| 00000f10 54 20 6c 69 6e 65 0d 07 58 1f 52 53 42 53 20 54 |T line..X.RSBS T| 00000f20 2c 4e 58 2c 23 30 3a 52 53 42 4c 54 53 20 54 2c |,NX,#0:RSBLTS T,| 00000f30 4e 59 2c 23 30 0d 07 62 26 41 44 44 20 54 2c 42 |NY,#0..b&ADD T,B| 00000f40 4f 58 52 2c 23 33 2a 32 30 3a 4c 44 4d 4c 54 49 |OXR,#3*20:LDMLTI| 00000f50 41 20 54 2c 7b 58 31 2c 59 31 7d 0d 07 6c 26 41 |A T,{X1,Y1}..l&A| 00000f60 44 44 20 54 2c 42 4f 58 52 2c 23 37 2a 32 30 3a |DD T,BOXR,#7*20:| 00000f70 4c 44 4d 4c 54 49 41 20 54 2c 7b 58 32 2c 59 32 |LDMLTIA T,{X2,Y2| 00000f80 7d 0d 07 76 0d 42 4c 4c 54 20 6c 69 6e 65 0d 07 |}..v.BLLT line..| 00000f90 80 12 4c 44 4d 46 44 20 31 33 21 2c 7b 50 43 7d |..LDMFD 13!,{PC}| 00000fa0 0d 07 8a 04 0d 07 94 11 2e 64 72 61 77 62 6f 78 |.........drawbox| 00000fb0 5f 62 61 63 6b 0d 07 9e 12 53 54 4d 46 44 20 31 |_back....STMFD 1| 00000fc0 33 21 2c 7b 31 34 7d 0d 07 a8 0d 4c 44 52 20 54 |3!,{14}....LDR T| 00000fd0 2c 43 31 44 0d 07 b2 14 4d 4f 56 20 4e 58 2c 54 |,C1D....MOV NX,T| 00000fe0 2c 41 53 52 20 23 31 36 0d 07 bc 13 4d 4f 56 20 |,ASR #16....MOV | 00000ff0 54 2c 54 2c 4c 53 4c 20 23 31 36 0d 07 c6 14 4d |T,T,LSL #16....M| 00001000 4f 56 20 4e 59 2c 54 2c 41 53 52 20 23 31 36 0d |OV NY,T,ASR #16.| 00001010 07 d0 0d 4c 44 52 20 54 2c 43 32 44 0d 07 da 14 |...LDR T,C2D....| 00001020 4d 4f 56 20 4e 5a 2c 54 2c 41 53 52 20 23 31 36 |MOV NZ,T,ASR #16| 00001030 0d 07 e4 11 4c 44 52 20 42 4f 58 52 2c 42 4f 58 |....LDR BOXR,BOX| 00001040 44 0d 07 ee 15 41 44 44 20 42 4f 58 52 2c 42 4f |D....ADD BOXR,BO| 00001050 58 52 2c 23 31 32 0d 07 f8 1c 43 4d 50 20 4e 58 |XR,#12....CMP NX| 00001060 2c 23 30 3a 52 53 42 4c 54 53 20 54 2c 4e 5a 2c |,#0:RSBLTS T,NZ,| 00001070 23 30 0d 08 02 26 41 44 44 20 54 2c 42 4f 58 52 |#0...&ADD T,BOXR| 00001080 2c 23 30 2a 32 30 3a 4c 44 4d 47 45 49 41 20 54 |,#0*20:LDMGEIA T| 00001090 2c 7b 58 31 2c 59 31 7d 0d 08 0c 26 41 44 44 20 |,{X1,Y1}...&ADD | 000010a0 54 2c 42 4f 58 52 2c 23 31 2a 32 30 3a 4c 44 4d |T,BOXR,#1*20:LDM| 000010b0 47 45 49 41 20 54 2c 7b 58 32 2c 59 32 7d 0d 08 |GEIA T,{X2,Y2}..| 000010c0 16 0d 42 4c 47 45 20 6c 69 6e 65 0d 08 20 1c 43 |..BLGE line.. .C| 000010d0 4d 50 20 4e 59 2c 23 30 3a 52 53 42 4c 54 53 20 |MP NY,#0:RSBLTS | 000010e0 54 2c 4e 5a 2c 23 30 0d 08 2a 26 41 44 44 20 54 |T,NZ,#0..*&ADD T| 000010f0 2c 42 4f 58 52 2c 23 31 2a 32 30 3a 4c 44 4d 47 |,BOXR,#1*20:LDMG| 00001100 45 49 41 20 54 2c 7b 58 31 2c 59 31 7d 0d 08 34 |EIA T,{X1,Y1}..4| 00001110 26 41 44 44 20 54 2c 42 4f 58 52 2c 23 32 2a 32 |&ADD T,BOXR,#2*2| 00001120 30 3a 4c 44 4d 47 45 49 41 20 54 2c 7b 58 32 2c |0:LDMGEIA T,{X2,| 00001130 59 32 7d 0d 08 3e 0d 42 4c 47 45 20 6c 69 6e 65 |Y2}..>.BLGE line| 00001140 0d 08 48 1f 52 53 42 53 20 54 2c 4e 58 2c 23 30 |..H.RSBS T,NX,#0| 00001150 3a 52 53 42 4c 54 53 20 54 2c 4e 5a 2c 23 30 0d |:RSBLTS T,NZ,#0.| 00001160 08 52 26 41 44 44 20 54 2c 42 4f 58 52 2c 23 32 |.R&ADD T,BOXR,#2| 00001170 2a 32 30 3a 4c 44 4d 47 45 49 41 20 54 2c 7b 58 |*20:LDMGEIA T,{X| 00001180 31 2c 59 31 7d 0d 08 5c 26 41 44 44 20 54 2c 42 |1,Y1}..\&ADD T,B| 00001190 4f 58 52 2c 23 33 2a 32 30 3a 4c 44 4d 47 45 49 |OXR,#3*20:LDMGEI| 000011a0 41 20 54 2c 7b 58 32 2c 59 32 7d 0d 08 66 0d 42 |A T,{X2,Y2}..f.B| 000011b0 4c 47 45 20 6c 69 6e 65 0d 08 70 1f 52 53 42 53 |LGE line..p.RSBS| 000011c0 20 54 2c 4e 59 2c 23 30 3a 52 53 42 4c 54 53 20 | T,NY,#0:RSBLTS | 000011d0 54 2c 4e 5a 2c 23 30 0d 08 7a 26 41 44 44 20 54 |T,NZ,#0..z&ADD T| 000011e0 2c 42 4f 58 52 2c 23 33 2a 32 30 3a 4c 44 4d 47 |,BOXR,#3*20:LDMG| 000011f0 45 49 41 20 54 2c 7b 58 31 2c 59 31 7d 0d 08 84 |EIA T,{X1,Y1}...| 00001200 26 41 44 44 20 54 2c 42 4f 58 52 2c 23 30 2a 32 |&ADD T,BOXR,#0*2| 00001210 30 3a 4c 44 4d 47 45 49 41 20 54 2c 7b 58 32 2c |0:LDMGEIA T,{X2,| 00001220 59 32 7d 0d 08 8e 0d 42 4c 47 45 20 6c 69 6e 65 |Y2}....BLGE line| 00001230 0d 08 98 04 0d 08 a2 19 43 4d 50 20 4e 58 2c 23 |........CMP NX,#| 00001240 30 3a 43 4d 50 4c 54 20 4e 5a 2c 23 30 0d 08 ac |0:CMPLT NZ,#0...| 00001250 26 41 44 44 20 54 2c 42 4f 58 52 2c 23 34 2a 32 |&ADD T,BOXR,#4*2| 00001260 30 3a 4c 44 4d 47 45 49 41 20 54 2c 7b 58 31 2c |0:LDMGEIA T,{X1,| 00001270 59 31 7d 0d 08 b6 26 41 44 44 20 54 2c 42 4f 58 |Y1}...&ADD T,BOX| 00001280 52 2c 23 35 2a 32 30 3a 4c 44 4d 47 45 49 41 20 |R,#5*20:LDMGEIA | 00001290 54 2c 7b 58 32 2c 59 32 7d 0d 08 c0 0d 42 4c 47 |T,{X2,Y2}....BLG| 000012a0 45 20 6c 69 6e 65 0d 08 ca 19 43 4d 50 20 4e 59 |E line....CMP NY| 000012b0 2c 23 30 3a 43 4d 50 4c 54 20 4e 5a 2c 23 30 0d |,#0:CMPLT NZ,#0.| 000012c0 08 d4 26 41 44 44 20 54 2c 42 4f 58 52 2c 23 35 |..&ADD T,BOXR,#5| 000012d0 2a 32 30 3a 4c 44 4d 47 45 49 41 20 54 2c 7b 58 |*20:LDMGEIA T,{X| 000012e0 31 2c 59 31 7d 0d 08 de 26 41 44 44 20 54 2c 42 |1,Y1}...&ADD T,B| 000012f0 4f 58 52 2c 23 36 2a 32 30 3a 4c 44 4d 47 45 49 |OXR,#6*20:LDMGEI| 00001300 41 20 54 2c 7b 58 32 2c 59 32 7d 0d 08 e8 0d 42 |A T,{X2,Y2}....B| 00001310 4c 47 45 20 6c 69 6e 65 0d 08 f2 1c 52 53 42 53 |LGE line....RSBS| 00001320 20 54 2c 4e 58 2c 23 30 3a 43 4d 50 4c 54 20 4e | T,NX,#0:CMPLT N| 00001330 5a 2c 23 30 0d 08 fc 26 41 44 44 20 54 2c 42 4f |Z,#0...&ADD T,BO| 00001340 58 52 2c 23 36 2a 32 30 3a 4c 44 4d 47 45 49 41 |XR,#6*20:LDMGEIA| 00001350 20 54 2c 7b 58 31 2c 59 31 7d 0d 09 06 26 41 44 | T,{X1,Y1}...&AD| 00001360 44 20 54 2c 42 4f 58 52 2c 23 37 2a 32 30 3a 4c |D T,BOXR,#7*20:L| 00001370 44 4d 47 45 49 41 20 54 2c 7b 58 32 2c 59 32 7d |DMGEIA T,{X2,Y2}| 00001380 0d 09 10 0d 42 4c 47 45 20 6c 69 6e 65 0d 09 1a |....BLGE line...| 00001390 1c 52 53 42 53 20 54 2c 4e 59 2c 23 30 3a 43 4d |.RSBS T,NY,#0:CM| 000013a0 50 4c 54 20 4e 5a 2c 23 30 0d 09 24 26 41 44 44 |PLT NZ,#0..$&ADD| 000013b0 20 54 2c 42 4f 58 52 2c 23 37 2a 32 30 3a 4c 44 | T,BOXR,#7*20:LD| 000013c0 4d 47 45 49 41 20 54 2c 7b 58 31 2c 59 31 7d 0d |MGEIA T,{X1,Y1}.| 000013d0 09 2e 26 41 44 44 20 54 2c 42 4f 58 52 2c 23 34 |..&ADD T,BOXR,#4| 000013e0 2a 32 30 3a 4c 44 4d 47 45 49 41 20 54 2c 7b 58 |*20:LDMGEIA T,{X| 000013f0 32 2c 59 32 7d 0d 09 38 0d 42 4c 47 45 20 6c 69 |2,Y2}..8.BLGE li| 00001400 6e 65 0d 09 42 04 0d 09 4c 1c 52 53 42 53 20 54 |ne..B...L.RSBS T| 00001410 2c 4e 59 2c 23 30 3a 43 4d 50 4c 54 20 4e 58 2c |,NY,#0:CMPLT NX,| 00001420 23 30 0d 09 56 26 41 44 44 20 54 2c 42 4f 58 52 |#0..V&ADD T,BOXR| 00001430 2c 23 30 2a 32 30 3a 4c 44 4d 47 45 49 41 20 54 |,#0*20:LDMGEIA T| 00001440 2c 7b 58 31 2c 59 31 7d 0d 09 60 26 41 44 44 20 |,{X1,Y1}..`&ADD | 00001450 54 2c 42 4f 58 52 2c 23 34 2a 32 30 3a 4c 44 4d |T,BOXR,#4*20:LDM| 00001460 47 45 49 41 20 54 2c 7b 58 32 2c 59 32 7d 0d 09 |GEIA T,{X2,Y2}..| 00001470 6a 0d 42 4c 47 45 20 6c 69 6e 65 0d 09 74 19 43 |j.BLGE line..t.C| 00001480 4d 50 20 4e 58 2c 23 30 3a 43 4d 50 4c 54 20 4e |MP NX,#0:CMPLT N| 00001490 59 2c 23 30 0d 09 7e 26 41 44 44 20 54 2c 42 4f |Y,#0..~&ADD T,BO| 000014a0 58 52 2c 23 31 2a 32 30 3a 4c 44 4d 47 45 49 41 |XR,#1*20:LDMGEIA| 000014b0 20 54 2c 7b 58 31 2c 59 31 7d 0d 09 88 26 41 44 | T,{X1,Y1}...&AD| 000014c0 44 20 54 2c 42 4f 58 52 2c 23 35 2a 32 30 3a 4c |D T,BOXR,#5*20:L| 000014d0 44 4d 47 45 49 41 20 54 2c 7b 58 32 2c 59 32 7d |DMGEIA T,{X2,Y2}| 000014e0 0d 09 92 0d 42 4c 47 45 20 6c 69 6e 65 0d 09 9c |....BLGE line...| 000014f0 1c 43 4d 50 20 4e 59 2c 23 30 3a 52 53 42 4c 54 |.CMP NY,#0:RSBLT| 00001500 53 20 54 2c 4e 58 2c 23 30 0d 09 a6 26 41 44 44 |S T,NX,#0...&ADD| 00001510 20 54 2c 42 4f 58 52 2c 23 32 2a 32 30 3a 4c 44 | T,BOXR,#2*20:LD| 00001520 4d 47 45 49 41 20 54 2c 7b 58 31 2c 59 31 7d 0d |MGEIA T,{X1,Y1}.| 00001530 09 b0 26 41 44 44 20 54 2c 42 4f 58 52 2c 23 36 |..&ADD T,BOXR,#6| 00001540 2a 32 30 3a 4c 44 4d 47 45 49 41 20 54 2c 7b 58 |*20:LDMGEIA T,{X| 00001550 32 2c 59 32 7d 0d 09 ba 0d 42 4c 47 45 20 6c 69 |2,Y2}....BLGE li| 00001560 6e 65 0d 09 c4 1f 52 53 42 53 20 54 2c 4e 58 2c |ne....RSBS T,NX,| 00001570 23 30 3a 52 53 42 4c 54 53 20 54 2c 4e 59 2c 23 |#0:RSBLTS T,NY,#| 00001580 30 0d 09 ce 26 41 44 44 20 54 2c 42 4f 58 52 2c |0...&ADD T,BOXR,| 00001590 23 33 2a 32 30 3a 4c 44 4d 47 45 49 41 20 54 2c |#3*20:LDMGEIA T,| 000015a0 7b 58 31 2c 59 31 7d 0d 09 d8 26 41 44 44 20 54 |{X1,Y1}...&ADD T| 000015b0 2c 42 4f 58 52 2c 23 37 2a 32 30 3a 4c 44 4d 47 |,BOXR,#7*20:LDMG| 000015c0 45 49 41 20 54 2c 7b 58 32 2c 59 32 7d 0d 09 e2 |EIA T,{X2,Y2}...| 000015d0 0d 42 4c 47 45 20 6c 69 6e 65 0d 09 ec 12 4c 44 |.BLGE line....LD| 000015e0 4d 46 44 20 31 33 21 2c 7b 50 43 7d 0d 09 f6 05 |MFD 13!,{PC}....| 000015f0 5d 0d 0a 00 05 ed 0d 0a 0a 09 51 25 3d 50 25 0d |].........Q%=P%.| 00001600 0a 14 05 e1 0d 0a 1e 04 0d 0a 28 04 0d 0a 32 12 |..........(...2.| 00001610 dd 20 f2 63 61 6c 63 5f 69 6e 76 65 72 73 0d 0a |. .calc_invers..| 00001620 3c 0b 4b 3d 32 3c 3c 32 30 0d 0a 46 26 e3 20 49 |<.K=2<<20..F&. I| 00001630 3d 31 20 b8 20 31 30 32 33 3a 49 4e 56 45 52 53 |=1 . 1023:INVERS| 00001640 21 28 34 2a 49 29 3d 4b 2f 49 2b 2e 35 3a ed 0d |!(4*I)=K/I+.5:..| 00001650 0a 50 05 e1 0d 0a 5a 04 0d 0a 64 13 dd 20 f2 63 |.P....Z...d.. .c| 00001660 61 6c 63 5f 63 73 74 61 62 6c 65 0d 0a 6e 15 46 |alc_cstable..n.F| 00001670 3d 32 2a af 2f 34 30 39 36 3a 56 3d 32 5e 31 35 |=2*./4096:V=2^15| 00001680 0d 0a 78 15 54 32 3d 43 53 54 41 42 4c 45 2b 38 |..x.T2=CSTABLE+8| 00001690 2a 31 30 32 34 0d 0a 82 15 54 33 3d 43 53 54 41 |*1024....T3=CSTA| 000016a0 42 4c 45 2b 38 2a 32 30 34 38 0d 0a 8c 15 54 34 |BLE+8*2048....T4| 000016b0 3d 43 53 54 41 42 4c 45 2b 38 2a 33 30 37 32 0d |=CSTABLE+8*3072.| 000016c0 0a 96 10 e3 20 48 3d 30 20 b8 20 31 30 32 33 0d |.... H=0 . 1023.| 000016d0 0a a0 09 4b 3d 46 2a 48 0d 0a aa 17 43 53 3d 9b |...K=F*H....CS=.| 000016e0 28 4b 29 2a 56 3a 53 4e 3d b5 28 4b 29 2a 56 0d |(K)*V:SN=.(K)*V.| 000016f0 0a b4 14 43 53 54 41 42 4c 45 21 28 38 2a 48 29 |...CSTABLE!(8*H)| 00001700 3d 43 53 0d 0a be 16 43 53 54 41 42 4c 45 21 28 |=CS....CSTABLE!(| 00001710 38 2a 48 2b 34 29 3d 53 4e 0d 0a c8 10 54 32 21 |8*H+4)=SN....T2!| 00001720 28 38 2a 48 29 3d 2d 53 4e 0d 0a d2 11 54 32 21 |(8*H)=-SN....T2!| 00001730 28 38 2a 48 2b 34 29 3d 43 53 0d 0a dc 10 54 33 |(8*H+4)=CS....T3| 00001740 21 28 38 2a 48 29 3d 2d 43 53 0d 0a e6 12 54 33 |!(8*H)=-CS....T3| 00001750 21 28 38 2a 48 2b 34 29 3d 2d 53 4e 0d 0a f0 0f |!(8*H+4)=-SN....| 00001760 54 34 21 28 38 2a 48 29 3d 53 4e 0d 0a fa 12 54 |T4!(8*H)=SN....T| 00001770 34 21 28 38 2a 48 2b 34 29 3d 2d 43 53 0d 0b 04 |4!(8*H+4)=-CS...| 00001780 05 ed 0d 0b 0e 05 e1 0d 0b 18 04 0d 0b 22 14 dd |............."..| 00001790 20 f2 63 61 6c 63 5f 64 69 76 74 61 62 6c 65 0d | .calc_divtable.| 000017a0 0b 2c 1d 54 3d 30 3a 4e 3d 31 3a 51 3d 32 3a 49 |.,.T=0:N=1:Q=2:I| 000017b0 3d 33 3a 4a 3d 34 3a 44 49 54 3d 35 0d 0b 36 14 |=3:J=4:DIT=5..6.| 000017c0 e3 20 50 41 53 53 3d 30 20 b8 20 32 20 88 20 32 |. PASS=0 . 2 . 2| 000017d0 0d 0b 40 09 50 25 3d 51 25 0d 0b 4a 0d 5b 4f 50 |..@.P%=Q%..J.[OP| 000017e0 54 20 50 41 53 53 0d 0b 54 10 2e 44 4e 52 44 20 |T PASS..T..DNRD | 000017f0 45 51 55 44 20 30 0d 0b 5e 10 2e 44 49 54 48 20 |EQUD 0..^..DITH | 00001800 45 51 55 44 20 30 0d 0b 68 10 2e 42 49 41 53 20 |EQUD 0..h..BIAS | 00001810 45 51 55 44 20 30 0d 0b 72 12 2e 63 61 6c 63 5f |EQUD 0..r..calc_| 00001820 64 69 76 74 61 62 6c 65 0d 0b 7c 17 53 54 4d 46 |divtable..|.STMF| 00001830 44 20 31 33 21 2c 7b 30 2d 31 32 2c 31 34 7d 0d |D 13!,{0-12,14}.| 00001840 0b 86 10 4c 44 52 20 44 49 54 2c 44 49 54 48 0d |...LDR DIT,DITH.| 00001850 0b 90 0e 4c 44 52 20 49 2c 44 4e 52 44 0d 0b 9a |...LDR I,DNRD...| 00001860 0c 2e 44 56 4c 4f 4f 50 32 0d 0b a4 0e 4c 44 52 |..DVLOOP2....LDR| 00001870 20 54 2c 42 49 41 53 0d 0b ae 0b 4d 4f 56 20 4e | T,BIAS....MOV N| 00001880 2c 49 0d 0b b8 0c 4d 4f 56 20 4a 2c 23 30 0d 0b |,I....MOV J,#0..| 00001890 c2 0c 4d 4f 56 20 51 2c 23 30 0d 0b cc 0c 2e 44 |..MOV Q,#0.....D| 000018a0 56 4c 4f 4f 50 33 0d 0b d6 0b 43 4d 50 20 4e 2c |VLOOP3....CMP N,| 000018b0 54 0d 0b e0 14 4d 4f 56 4c 4f 20 4e 2c 4e 2c 4c |T....MOVLO N,N,L| 000018c0 53 4c 20 23 31 0d 0b ea 10 41 44 44 4c 4f 20 4a |SL #1....ADDLO J| 000018d0 2c 4a 2c 23 31 0d 0b f4 0f 42 4c 4f 20 44 56 4c |,J,#1....BLO DVL| 000018e0 4f 4f 50 33 0d 0b fe 11 4d 4f 56 20 4e 2c 4e 2c |OOP3....MOV N,N,| 000018f0 4c 53 52 20 4a 0d 0c 08 0c 2e 44 56 4c 4f 4f 50 |LSR J.....DVLOOP| 00001900 31 0d 0c 12 11 43 4d 50 20 54 2c 4e 2c 4c 53 4c |1....CMP T,N,LSL| 00001910 20 4a 0d 0c 1c 15 53 55 42 48 53 20 54 2c 54 2c | J....SUBHS T,T,| 00001920 4e 2c 4c 53 4c 20 4a 0d 0c 26 0d 41 44 43 20 51 |N,LSL J..&.ADC Q| 00001930 2c 51 2c 51 0d 0c 30 0f 53 55 42 53 20 4a 2c 4a |,Q,Q..0.SUBS J,J| 00001940 2c 23 31 0d 0c 3a 0f 42 50 4c 20 44 56 4c 4f 4f |,#1..:.BPL DVLOO| 00001950 50 31 0d 0c 44 18 53 54 52 20 51 2c 5b 44 49 54 |P1..D.STR Q,[DIT| 00001960 2c 49 2c 4c 53 4c 20 23 32 5d 0d 0c 4e 0f 53 55 |,I,LSL #2]..N.SU| 00001970 42 53 20 49 2c 49 2c 23 31 0d 0c 58 0f 42 4e 45 |BS I,I,#1..X.BNE| 00001980 20 44 56 4c 4f 4f 50 32 0d 0c 62 17 4c 44 4d 46 | DVLOOP2..b.LDMF| 00001990 44 20 31 33 21 2c 7b 30 2d 31 32 2c 50 43 7d 0d |D 13!,{0-12,PC}.| 000019a0 0c 6c 05 5d 0d 0c 76 05 ed 0d 0c 80 09 51 25 3d |.l.]..v......Q%=| 000019b0 50 25 0d 0c 8a 05 e1 0d 0c 94 04 0d 0c 9e 16 dd |P%..............| 000019c0 20 f2 63 61 6c 63 5f 72 6f 74 5f 6d 61 74 72 69 | .calc_rot_matri| 000019d0 78 0d 0c a8 0f 43 48 58 3d 30 3a 53 48 58 3d 31 |x....CHX=0:SHX=1| 000019e0 0d 0c b2 0f 43 48 59 3d 32 3a 53 48 59 3d 33 0d |....CHY=2:SHY=3.| 000019f0 0c bc 0f 43 48 5a 3d 34 3a 53 48 5a 3d 35 0d 0c |...CHZ=4:SHZ=5..| 00001a00 c6 0f 54 3d 36 3a 53 3d 37 3a 48 3d 38 0d 0c d0 |..T=6:S=7:H=8...| 00001a10 15 44 48 58 3d 33 3a 44 48 59 3d 34 3a 44 48 5a |.DHX=3:DHY=4:DHZ| 00001a20 3d 35 0d 0c da 14 48 58 3d 39 3a 48 59 3d 31 30 |=5....HX=9:HY=10| 00001a30 3a 48 5a 3d 31 31 0d 0c e4 14 54 58 3d 39 3a 54 |:HZ=11....TX=9:T| 00001a40 59 3d 31 30 3a 54 5a 3d 31 31 0d 0c ee 09 43 53 |Y=10:TZ=11....CS| 00001a50 3d 31 32 0d 0c f8 0f 53 43 52 3d 30 3a 43 4f 4c |=12....SCR=0:COL| 00001a60 3d 31 0d 0d 02 14 e3 20 50 41 53 53 3d 30 20 b8 |=1..... PASS=0 .| 00001a70 20 32 20 88 20 32 0d 0d 0c 09 50 25 3d 51 25 0d | 2 . 2....P%=Q%.| 00001a80 0d 16 0d 5b 4f 50 54 20 50 41 53 53 0d 0d 20 2a |...[OPT PASS.. *| 00001a90 2e 44 48 58 44 20 45 51 55 44 20 30 3a 2e 44 48 |.DHXD EQUD 0:.DH| 00001aa0 59 44 20 45 51 55 44 20 30 3a 2e 44 48 5a 44 20 |YD EQUD 0:.DHZD | 00001ab0 45 51 55 44 20 30 0d 0d 2a 27 2e 48 58 44 20 45 |EQUD 0..*'.HXD E| 00001ac0 51 55 44 20 30 3a 2e 48 59 44 20 45 51 55 44 20 |QUD 0:.HYD EQUD | 00001ad0 30 3a 2e 48 5a 44 20 45 51 55 44 20 30 0d 0d 34 |0:.HZD EQUD 0..4| 00001ae0 15 2e 43 53 44 20 45 51 55 44 20 43 53 54 41 42 |..CSD EQUD CSTAB| 00001af0 4c 45 0d 0d 3e 27 2e 54 58 44 20 45 51 55 44 20 |LE..>'.TXD EQUD | 00001b00 30 3a 2e 54 59 44 20 45 51 55 44 20 30 3a 2e 54 |0:.TYD EQUD 0:.T| 00001b10 5a 44 20 45 51 55 44 20 30 0d 0d 5c 14 2e 63 61 |ZD EQUD 0..\..ca| 00001b20 6c 63 5f 72 6f 74 5f 6d 61 74 72 69 78 0d 0d 66 |lc_rot_matrix..f| 00001b30 17 53 54 4d 46 44 20 31 33 21 2c 7b 30 2d 31 32 |.STMFD 13!,{0-12| 00001b40 2c 31 34 7d 0d 0d 70 12 53 57 49 20 22 4f 53 5f |,14}..p.SWI "OS_| 00001b50 4d 6f 75 73 65 22 0d 0d 7a 2e 53 55 42 20 52 30 |Mouse"..z.SUB R0| 00001b60 2c 52 30 2c 23 36 34 30 3a 4d 4f 56 20 52 30 2c |,R0,#640:MOV R0,| 00001b70 52 30 2c 4c 53 4c 20 23 33 3a 53 54 52 20 52 30 |R0,LSL #3:STR R0| 00001b80 2c 54 58 44 0d 0d 84 2e 53 55 42 20 52 31 2c 52 |,TXD....SUB R1,R| 00001b90 31 2c 23 35 31 32 3a 4d 4f 56 20 52 31 2c 52 31 |1,#512:MOV R1,R1| 00001ba0 2c 4c 53 4c 20 23 33 3a 53 54 52 20 52 31 2c 54 |,LSL #3:STR R1,T| 00001bb0 59 44 0d 0d 85 4d 4c 44 52 20 52 30 2c 54 5a 44 |YD...MLDR R0,TZD| 00001bc0 3a 54 53 54 20 52 32 2c 23 31 3a 53 55 42 45 51 |:TST R2,#1:SUBEQ| 00001bd0 20 52 30 2c 52 30 2c 23 36 34 3a 54 53 54 20 52 | R0,R0,#64:TST R| 00001be0 32 2c 23 34 3a 41 44 44 45 51 20 52 30 2c 52 30 |2,#4:ADDEQ R0,R0| 00001bf0 2c 23 36 34 3a 53 54 52 20 52 30 2c 54 5a 44 0d |,#64:STR R0,TZD.| 00001c00 0e 4c 30 41 44 52 20 54 2c 44 48 58 44 3a 4c 44 |.L0ADR T,DHXD:LD| 00001c10 4d 49 41 20 54 2c 7b 44 48 58 2c 44 48 59 2c 44 |MIA T,{DHX,DHY,D| 00001c20 48 5a 2c 48 58 2c 48 59 2c 48 5a 2c 43 53 7d 0d |HZ,HX,HY,HZ,CS}.| 00001c30 0e 56 30 41 44 44 20 44 48 58 2c 44 48 58 2c 48 |.V0ADD DHX,DHX,H| 00001c40 58 3a 41 44 44 20 44 48 59 2c 44 48 59 2c 48 59 |X:ADD DHY,DHY,HY| 00001c50 3a 41 44 44 20 44 48 5a 2c 44 48 5a 2c 48 5a 0d |:ADD DHZ,DHZ,HZ.| 00001c60 0e 60 26 41 44 44 20 54 2c 54 2c 23 33 2a 34 3a |.`&ADD T,T,#3*4:| 00001c70 53 54 4d 49 41 20 54 2c 7b 44 48 58 2c 44 48 59 |STMIA T,{DHX,DHY| 00001c80 2c 44 48 5a 7d 0d 0e 6a 1a 4d 4f 56 20 53 2c 23 |,DHZ}..j.MOV S,#| 00001c90 34 30 39 36 3a 53 55 42 20 53 2c 53 2c 23 31 0d |4096:SUB S,S,#1.| 00001ca0 0e 74 39 43 4d 50 20 48 58 2c 23 30 3a 52 53 42 |.t9CMP HX,#0:RSB| 00001cb0 4d 49 20 48 58 2c 48 58 2c 23 30 3a 80 20 48 58 |MI HX,HX,#0:. HX| 00001cc0 2c 48 58 2c 53 3a 41 44 44 20 54 2c 43 53 2c 48 |,HX,S:ADD T,CS,H| 00001cd0 58 2c 4c 53 4c 20 23 33 0d 0e 7e 26 4c 44 4d 49 |X,LSL #3..~&LDMI| 00001ce0 41 20 54 2c 7b 43 48 58 2c 53 48 58 7d 3a 52 53 |A T,{CHX,SHX}:RS| 00001cf0 42 4d 49 20 53 48 58 2c 53 48 58 2c 23 30 0d 0e |BMI SHX,SHX,#0..| 00001d00 88 39 43 4d 50 20 48 59 2c 23 30 3a 52 53 42 4d |.9CMP HY,#0:RSBM| 00001d10 49 20 48 59 2c 48 59 2c 23 30 3a 80 20 48 59 2c |I HY,HY,#0:. HY,| 00001d20 48 59 2c 53 3a 41 44 44 20 54 2c 43 53 2c 48 59 |HY,S:ADD T,CS,HY| 00001d30 2c 4c 53 4c 20 23 33 0d 0e 92 26 4c 44 4d 49 41 |,LSL #3...&LDMIA| 00001d40 20 54 2c 7b 43 48 59 2c 53 48 59 7d 3a 52 53 42 | T,{CHY,SHY}:RSB| 00001d50 4d 49 20 53 48 59 2c 53 48 59 2c 23 30 0d 0e 9c |MI SHY,SHY,#0...| 00001d60 39 43 4d 50 20 48 5a 2c 23 30 3a 52 53 42 4d 49 |9CMP HZ,#0:RSBMI| 00001d70 20 48 5a 2c 48 5a 2c 23 30 3a 80 20 48 5a 2c 48 | HZ,HZ,#0:. HZ,H| 00001d80 5a 2c 53 3a 41 44 44 20 54 2c 43 53 2c 48 5a 2c |Z,S:ADD T,CS,HZ,| 00001d90 4c 53 4c 20 23 33 0d 0e a6 26 4c 44 4d 49 41 20 |LSL #3...&LDMIA | 00001da0 54 2c 7b 43 48 5a 2c 53 48 5a 7d 3a 52 53 42 4d |T,{CHZ,SHZ}:RSBM| 00001db0 49 20 53 48 5a 2c 53 48 5a 2c 23 30 0d 0e b0 20 |I SHZ,SHZ,#0... | 00001dc0 41 44 52 20 54 2c 54 58 44 3a 4c 44 4d 49 41 20 |ADR T,TXD:LDMIA | 00001dd0 54 2c 7b 54 58 2c 54 59 2c 54 5a 7d 0d 0e ba 21 |T,{TX,TY,TZ}...!| 00001de0 4d 55 4c 20 54 2c 43 48 59 2c 43 48 5a 3a 4d 4f |MUL T,CHY,CHZ:MO| 00001df0 56 20 54 2c 54 2c 41 53 52 20 23 31 35 0d 0e c4 |V T,T,ASR #15...| 00001e00 21 4d 55 4c 20 53 2c 43 48 59 2c 53 48 5a 3a 4d |!MUL S,CHY,SHZ:M| 00001e10 4f 56 20 53 2c 53 2c 4c 53 52 20 23 31 35 0d 0e |OV S,S,LSR #15..| 00001e20 ce 1f 41 44 44 20 54 2c 53 2c 54 2c 4c 53 4c 20 |..ADD T,S,T,LSL | 00001e30 23 31 36 3a 53 54 52 20 54 2c 41 31 44 0d 0e d8 |#16:STR T,A1D...| 00001e40 22 41 44 44 20 54 2c 54 58 2c 53 48 59 2c 4c 53 |"ADD T,TX,SHY,LS| 00001e50 4c 20 23 31 36 3a 53 54 52 20 54 2c 41 32 44 0d |L #16:STR T,A2D.| 00001e60 0e e2 04 0d 0e ec 29 4d 55 4c 20 54 2c 53 48 58 |......)MUL T,SHX| 00001e70 2c 53 48 59 3a 4d 4f 56 20 54 2c 54 2c 41 53 52 |,SHY:MOV T,T,ASR| 00001e80 20 23 31 35 3a 4d 4f 56 20 53 2c 54 0d 0e f6 3a | #15:MOV S,T...:| 00001e90 4d 55 4c 20 48 2c 43 48 58 2c 53 48 5a 3a 4d 4c |MUL H,CHX,SHZ:ML| 00001ea0 41 20 54 2c 43 48 5a 2c 54 2c 48 3a 52 53 42 20 |A T,CHZ,T,H:RSB | 00001eb0 54 2c 54 2c 23 30 3a 4d 4f 56 20 54 2c 54 2c 41 |T,T,#0:MOV T,T,A| 00001ec0 53 52 20 23 31 35 0d 0f 00 37 4d 55 4c 20 48 2c |SR #15...7MUL H,| 00001ed0 43 48 58 2c 43 48 5a 3a 4d 55 4c 20 53 2c 53 48 |CHX,CHZ:MUL S,SH| 00001ee0 5a 2c 53 3a 53 55 42 20 53 2c 48 2c 53 3a 4d 4f |Z,S:SUB S,H,S:MO| 00001ef0 56 20 53 2c 53 2c 4c 53 52 20 23 31 35 0d 0f 0a |V S,S,LSR #15...| 00001f00 04 0d 0f 14 1f 41 44 44 20 54 2c 53 2c 54 2c 4c |.....ADD T,S,T,L| 00001f10 53 4c 20 23 31 36 3a 53 54 52 20 54 2c 42 31 44 |SL #16:STR T,B1D| 00001f20 0d 0f 1e 21 4d 55 4c 20 54 2c 53 48 58 2c 43 48 |...!MUL T,SHX,CH| 00001f30 59 3a 4d 4f 56 20 54 2c 54 2c 41 53 52 20 23 31 |Y:MOV T,T,ASR #1| 00001f40 35 0d 0f 28 20 41 44 44 20 54 2c 54 59 2c 54 2c |5..( ADD T,TY,T,| 00001f50 4c 53 4c 20 23 31 36 3a 53 54 52 20 54 2c 42 32 |LSL #16:STR T,B2| 00001f60 44 0d 0f 32 29 4d 55 4c 20 54 2c 43 48 58 2c 53 |D..2)MUL T,CHX,S| 00001f70 48 59 3a 4d 4f 56 20 54 2c 54 2c 41 53 52 20 23 |HY:MOV T,T,ASR #| 00001f80 31 35 3a 4d 4f 56 20 53 2c 54 0d 0f 3c 37 4d 55 |15:MOV S,T..<7MU| 00001f90 4c 20 54 2c 43 48 5a 2c 54 3a 4d 55 4c 20 48 2c |L T,CHZ,T:MUL H,| 00001fa0 53 48 58 2c 53 48 5a 3a 53 55 42 20 54 2c 48 2c |SHX,SHZ:SUB T,H,| 00001fb0 54 3a 4d 4f 56 20 54 2c 54 2c 41 53 52 20 23 31 |T:MOV T,T,ASR #1| 00001fc0 35 0d 0f 46 3a 4d 55 4c 20 53 2c 53 48 5a 2c 53 |5..F:MUL S,SHZ,S| 00001fd0 3a 4d 4c 41 20 48 2c 53 48 58 2c 43 48 5a 2c 53 |:MLA H,SHX,CHZ,S| 00001fe0 3a 52 53 42 20 53 2c 48 2c 23 30 3a 4d 4f 56 20 |:RSB S,H,#0:MOV | 00001ff0 53 2c 53 2c 4c 53 52 20 23 31 35 0d 0f 50 1f 41 |S,S,LSR #15..P.A| 00002000 44 44 20 54 2c 53 2c 54 2c 4c 53 4c 20 23 31 36 |DD T,S,T,LSL #16| 00002010 3a 53 54 52 20 54 2c 43 31 44 0d 0f 5a 21 4d 55 |:STR T,C1D..Z!MU| 00002020 4c 20 54 2c 43 48 58 2c 43 48 59 3a 4d 4f 56 20 |L T,CHX,CHY:MOV | 00002030 54 2c 54 2c 41 53 52 20 23 31 35 0d 0f 64 20 41 |T,T,ASR #15..d A| 00002040 44 44 20 54 2c 54 5a 2c 54 2c 4c 53 4c 20 23 31 |DD T,TZ,T,LSL #1| 00002050 36 3a 53 54 52 20 54 2c 43 32 44 0d 0f 6e 17 4c |6:STR T,C2D..n.L| 00002060 44 4d 46 44 20 31 33 21 2c 7b 30 2d 31 32 2c 50 |DMFD 13!,{0-12,P| 00002070 43 7d 0d 0f 78 05 5d 0d 0f 82 05 ed 0d 0f 8c 09 |C}..x.].........| 00002080 51 25 3d 50 25 0d 0f 96 05 e1 0d 0f a0 04 0d 0f |Q%=P%...........| 00002090 aa 04 0d 0f b4 04 0d 0f be 10 dd 20 f2 74 72 61 |........... .tra| 000020a0 6e 73 66 6f 72 6d 0d 0f c8 47 41 31 3d 30 3a 41 |nsform...GA1=0:A| 000020b0 32 3d 31 3a 42 31 3d 32 3a 42 32 3d 33 3a 43 31 |2=1:B1=2:B2=3:C1| 000020c0 3d 34 3a 43 32 3d 35 3a 54 3d 36 3a 44 49 54 3d |=4:C2=5:T=6:DIT=| 000020d0 37 3a 55 3d 38 3a 56 3d 39 3a 57 3d 31 30 3a 58 |7:U=8:V=9:W=10:X| 000020e0 3d 31 30 3a 59 3d 31 31 3a 5a 3d 31 32 0d 0f d2 |=10:Y=11:Z=12...| 000020f0 0d 41 3d 31 33 3a 42 3d 31 34 0d 0f dc 14 e3 20 |.A=13:B=14..... | 00002100 50 41 53 53 3d 30 20 b8 20 32 20 88 20 32 0d 0f |PASS=0 . 2 . 2..| 00002110 e6 09 50 25 3d 51 25 0d 0f f0 0d 5b 4f 50 54 20 |..P%=Q%....[OPT | 00002120 50 41 53 53 0d 0f fa 1b 2e 41 31 44 20 45 51 55 |PASS.....A1D EQU| 00002130 44 20 30 3a 2e 41 32 44 20 45 51 55 44 20 30 0d |D 0:.A2D EQUD 0.| 00002140 10 04 1b 2e 42 31 44 20 45 51 55 44 20 30 3a 2e |....B1D EQUD 0:.| 00002150 42 32 44 20 45 51 55 44 20 30 0d 10 0e 1b 2e 43 |B2D EQUD 0.....C| 00002160 31 44 20 45 51 55 44 20 30 3a 2e 43 32 44 20 45 |1D EQUD 0:.C2D E| 00002170 51 55 44 20 30 0d 10 18 16 2e 44 49 54 44 20 45 |QUD 0.....DITD E| 00002180 51 55 44 20 44 49 54 41 42 4c 45 0d 10 22 04 0d |QUD DITABLE.."..| 00002190 10 2c 0e 2e 56 44 20 45 51 55 44 20 30 0d 10 36 |.,..VD EQUD 0..6| 000021a0 0e 2e 53 50 20 45 51 55 44 20 30 0d 10 40 0e 2e |..SP EQUD 0..@..| 000021b0 4c 4b 20 45 51 55 44 20 30 0d 10 4a 04 0d 10 54 |LK EQUD 0..J...T| 000021c0 12 2e 50 49 58 44 20 45 51 55 44 20 50 49 58 0d |..PIXD EQUD PIX.| 000021d0 10 5e 16 2e 50 49 58 54 20 45 51 55 44 20 50 49 |.^..PIXT EQUD PI| 000021e0 58 50 52 4f 4a 0d 10 68 0e 2e 54 47 20 45 51 55 |XPROJ..h..TG EQU| 000021f0 44 20 30 0d 10 72 11 2e 74 72 61 6e 73 66 6f 72 |D 0..r..transfor| 00002200 6d 70 69 78 0d 10 7c 17 53 54 4d 46 44 20 31 33 |mpix..|.STMFD 13| 00002210 21 2c 7b 30 2d 31 32 2c 31 34 7d 0d 10 86 0d 53 |!,{0-12,14}....S| 00002220 54 52 20 31 33 2c 53 50 0d 10 90 0d 41 44 52 20 |TR 13,SP....ADR | 00002230 54 2c 41 31 44 0d 10 9a 23 4c 44 4d 49 41 20 54 |T,A1D...#LDMIA T| 00002240 2c 7b 41 31 2c 41 32 2c 42 31 2c 42 32 2c 43 31 |,{A1,A2,B1,B2,C1| 00002250 2c 43 32 2c 44 49 54 7d 0d 10 a4 19 4c 44 52 20 |,C2,DIT}....LDR | 00002260 41 2c 50 49 58 44 3a 4c 44 52 20 42 2c 50 49 58 |A,PIXD:LDR B,PIX| 00002270 54 0d 10 ae 40 4c 44 52 20 54 2c 54 47 3a 43 4d |T...@LDR T,TG:CM| 00002280 50 20 54 2c 23 30 3a 4d 4f 56 4e 45 20 54 2c 23 |P T,#0:MOVNE T,#| 00002290 30 3a ec 51 20 54 2c 23 31 3a 41 44 44 4e 45 20 |0:.Q T,#1:ADDNE | 000022a0 42 2c 42 2c 23 32 2a 34 3a 53 54 52 20 54 2c 54 |B,B,#2*4:STR T,T| 000022b0 47 0d 10 b8 23 4c 44 4d 49 41 20 28 41 29 21 2c |G...#LDMIA (A)!,| 000022c0 7b 58 2c 59 2c 5a 7d 3a 41 44 44 20 41 2c 41 2c |{X,Y,Z}:ADD A,A,| 000022d0 23 33 2a 34 0d 10 c2 0d 42 41 4c 20 54 52 41 4e |#3*4....BAL TRAN| 000022e0 53 0d 10 cc 04 0d 10 d6 04 0d 10 e0 0e 2e 74 72 |S.............tr| 000022f0 61 6e 73 66 6f 72 6d 0d 10 ea 17 53 54 4d 46 44 |ansform....STMFD| 00002300 20 31 33 21 2c 7b 30 2d 31 32 2c 31 34 7d 0d 10 | 13!,{0-12,14}..| 00002310 f4 0d 53 54 52 20 31 33 2c 53 50 0d 10 fe 0d 41 |..STR 13,SP....A| 00002320 44 52 20 54 2c 41 31 44 0d 11 08 27 4c 44 4d 49 |DR T,A1D...'LDMI| 00002330 41 20 54 2c 7b 41 31 2c 41 32 2c 42 31 2c 42 32 |A T,{A1,A2,B1,B2| 00002340 2c 43 31 2c 43 32 2c 44 49 54 2c 41 2c 42 7d 0d |,C1,C2,DIT,A,B}.| 00002350 11 12 23 4c 44 4d 49 41 20 28 41 29 21 2c 7b 58 |..#LDMIA (A)!,{X| 00002360 2c 59 2c 5a 7d 3a 41 44 44 20 41 2c 41 2c 23 33 |,Y,Z}:ADD A,A,#3| 00002370 2a 34 0d 11 1c 0a 2e 54 52 41 4e 53 0d 11 26 14 |*4.....TRANS..&.| 00002380 4d 4f 56 20 54 2c 41 31 2c 41 53 52 20 23 31 36 |MOV T,A1,ASR #16| 00002390 0d 11 30 0d 4d 55 4c 20 55 2c 58 2c 54 0d 11 3a |..0.MUL U,X,T..:| 000023a0 14 4d 4f 56 20 54 2c 41 31 2c 4c 53 4c 20 23 31 |.MOV T,A1,LSL #1| 000023b0 36 0d 11 44 13 4d 4f 56 20 54 2c 54 2c 41 53 52 |6..D.MOV T,T,ASR| 000023c0 20 23 31 36 0d 11 4e 0f 4d 4c 41 20 55 2c 59 2c | #16..N.MLA U,Y,| 000023d0 54 2c 55 0d 11 58 14 4d 4f 56 20 54 2c 41 32 2c |T,U..X.MOV T,A2,| 000023e0 41 53 52 20 23 31 36 0d 11 62 0f 4d 4c 41 20 55 |ASR #16..b.MLA U| 000023f0 2c 5a 2c 54 2c 55 0d 11 6c 14 4d 4f 56 20 54 2c |,Z,T,U..l.MOV T,| 00002400 41 32 2c 4c 53 4c 20 23 31 36 0d 11 76 13 4d 4f |A2,LSL #16..v.MO| 00002410 56 20 54 2c 54 2c 41 53 52 20 23 31 36 0d 11 80 |V T,T,ASR #16...| 00002420 15 41 44 44 20 55 2c 54 2c 55 2c 41 53 52 20 23 |.ADD U,T,U,ASR #| 00002430 31 35 0d 11 8a 14 4d 4f 56 20 54 2c 42 31 2c 41 |15....MOV T,B1,A| 00002440 53 52 20 23 31 36 0d 11 94 0d 4d 55 4c 20 56 2c |SR #16....MUL V,| 00002450 58 2c 54 0d 11 9e 14 4d 4f 56 20 54 2c 42 31 2c |X,T....MOV T,B1,| 00002460 4c 53 4c 20 23 31 36 0d 11 a8 13 4d 4f 56 20 54 |LSL #16....MOV T| 00002470 2c 54 2c 41 53 52 20 23 31 36 0d 11 b2 0f 4d 4c |,T,ASR #16....ML| 00002480 41 20 56 2c 59 2c 54 2c 56 0d 11 bc 14 4d 4f 56 |A V,Y,T,V....MOV| 00002490 20 54 2c 42 32 2c 41 53 52 20 23 31 36 0d 11 c6 | T,B2,ASR #16...| 000024a0 0f 4d 4c 41 20 56 2c 5a 2c 54 2c 56 0d 11 d0 14 |.MLA V,Z,T,V....| 000024b0 4d 4f 56 20 54 2c 42 32 2c 4c 53 4c 20 23 31 36 |MOV T,B2,LSL #16| 000024c0 0d 11 da 13 4d 4f 56 20 54 2c 54 2c 41 53 52 20 |....MOV T,T,ASR | 000024d0 23 31 36 0d 11 e4 15 41 44 44 20 56 2c 54 2c 56 |#16....ADD V,T,V| 000024e0 2c 41 53 52 20 23 31 35 0d 11 ee 14 4d 4f 56 20 |,ASR #15....MOV | 000024f0 54 2c 43 31 2c 41 53 52 20 23 31 36 0d 11 f8 0d |T,C1,ASR #16....| 00002500 4d 55 4c 20 57 2c 54 2c 58 0d 12 02 14 4d 4f 56 |MUL W,T,X....MOV| 00002510 20 54 2c 43 31 2c 4c 53 4c 20 23 31 36 0d 12 0c | T,C1,LSL #16...| 00002520 13 4d 4f 56 20 54 2c 54 2c 41 53 52 20 23 31 36 |.MOV T,T,ASR #16| 00002530 0d 12 16 0f 4d 4c 41 20 57 2c 59 2c 54 2c 57 0d |....MLA W,Y,T,W.| 00002540 12 20 14 4d 4f 56 20 54 2c 43 32 2c 41 53 52 20 |. .MOV T,C2,ASR | 00002550 23 31 36 0d 12 2a 0f 4d 4c 41 20 57 2c 5a 2c 54 |#16..*.MLA W,Z,T| 00002560 2c 57 0d 12 34 14 4d 4f 56 20 54 2c 43 32 2c 4c |,W..4.MOV T,C2,L| 00002570 53 4c 20 23 31 36 0d 12 3e 13 4d 4f 56 20 54 2c |SL #16..>.MOV T,| 00002580 54 2c 41 53 52 20 23 31 36 0d 12 48 15 41 44 44 |T,ASR #16..H.ADD| 00002590 20 57 2c 54 2c 57 2c 41 53 52 20 23 31 35 0d 12 | W,T,W,ASR #15..| 000025a0 52 0e 3b 20 43 4d 50 20 57 2c 23 30 0d 12 5c 10 |R.; CMP W,#0..\.| 000025b0 3b 20 4d 4f 56 4d 49 20 57 2c 23 31 0d 12 66 18 |; MOVMI W,#1..f.| 000025c0 4c 44 52 20 57 2c 5b 44 49 54 2c 57 2c 4c 53 4c |LDR W,[DIT,W,LSL| 000025d0 20 23 32 5d 0d 12 70 0d 4d 55 4c 20 55 2c 57 2c | #2]..p.MUL U,W,| 000025e0 55 0d 12 7a 0d 4d 55 4c 20 56 2c 57 2c 56 0d 12 |U..z.MUL V,W,V..| 000025f0 84 13 4d 4f 56 20 55 2c 55 2c 41 53 52 20 23 31 |..MOV U,U,ASR #1| 00002600 32 0d 12 8e 13 4d 4f 56 20 56 2c 56 2c 41 53 52 |2....MOV V,V,ASR| 00002610 20 23 31 32 0d 12 98 10 41 44 44 20 55 2c 55 2c | #12....ADD U,U,| 00002620 23 31 36 30 0d 12 a2 10 41 44 44 20 56 2c 56 2c |#160....ADD V,V,| 00002630 23 31 32 38 0d 12 ac 21 53 54 4d 49 41 20 28 42 |#128...!STMIA (B| 00002640 29 21 2c 7b 55 2c 56 7d 3a 41 44 44 20 42 2c 42 |)!,{U,V}:ADD B,B| 00002650 2c 23 32 2a 34 0d 12 b6 23 4c 44 4d 49 41 20 28 |,#2*4...#LDMIA (| 00002660 41 29 21 2c 7b 58 2c 59 2c 5a 7d 3a 41 44 44 20 |A)!,{X,Y,Z}:ADD | 00002670 41 2c 41 2c 23 33 2a 34 0d 12 c0 10 43 4d 50 20 |A,A,#3*4....CMP | 00002680 58 2c 23 31 3c 3c 33 30 0d 12 ca 0d 42 4e 45 20 |X,#1<<30....BNE | 00002690 54 52 41 4e 53 0d 12 d4 0d 4c 44 52 20 31 33 2c |TRANS....LDR 13,| 000026a0 53 50 0d 12 de 17 4c 44 4d 46 44 20 31 33 21 2c |SP....LDMFD 13!,| 000026b0 7b 30 2d 31 32 2c 50 43 7d 0d 12 e8 04 0d 12 f2 |{0-12,PC}.......| 000026c0 04 0d 12 fc 12 2e 42 4f 58 44 20 45 51 55 44 20 |......BOXD EQUD | 000026d0 42 4f 58 0d 13 06 11 2e 74 72 61 6e 73 66 6f 72 |BOX.....transfor| 000026e0 6d 62 6f 78 0d 13 10 17 53 54 4d 46 44 20 31 33 |mbox....STMFD 13| 000026f0 21 2c 7b 30 2d 31 32 2c 31 34 7d 0d 13 1a 0d 53 |!,{0-12,14}....S| 00002700 54 52 20 31 33 2c 53 50 0d 13 24 0d 41 44 52 20 |TR 13,SP..$.ADR | 00002710 54 2c 41 31 44 0d 13 2e 23 4c 44 4d 49 41 20 54 |T,A1D...#LDMIA T| 00002720 2c 7b 41 31 2c 41 32 2c 42 31 2c 42 32 2c 43 31 |,{A1,A2,B1,B2,C1| 00002730 2c 43 32 2c 44 49 54 7d 0d 13 38 0e 4c 44 52 20 |,C2,DIT}..8.LDR | 00002740 41 2c 42 4f 58 44 0d 13 42 16 4c 44 4d 49 41 20 |A,BOXD..B.LDMIA | 00002750 28 41 29 21 2c 7b 58 2c 59 2c 5a 7d 0d 13 4c 0b |(A)!,{X,Y,Z}..L.| 00002760 2e 54 52 41 4e 53 42 0d 13 56 14 4d 4f 56 20 54 |.TRANSB..V.MOV T| 00002770 2c 41 31 2c 41 53 52 20 23 31 36 0d 13 60 0d 4d |,A1,ASR #16..`.M| 00002780 55 4c 20 55 2c 58 2c 54 0d 13 6a 14 4d 4f 56 20 |UL U,X,T..j.MOV | 00002790 54 2c 41 31 2c 4c 53 4c 20 23 31 36 0d 13 74 13 |T,A1,LSL #16..t.| 000027a0 4d 4f 56 20 54 2c 54 2c 41 53 52 20 23 31 36 0d |MOV T,T,ASR #16.| 000027b0 13 7e 0f 4d 4c 41 20 55 2c 59 2c 54 2c 55 0d 13 |.~.MLA U,Y,T,U..| 000027c0 88 14 4d 4f 56 20 54 2c 41 32 2c 41 53 52 20 23 |..MOV T,A2,ASR #| 000027d0 31 36 0d 13 92 0f 4d 4c 41 20 55 2c 5a 2c 54 2c |16....MLA U,Z,T,| 000027e0 55 0d 13 9c 14 4d 4f 56 20 54 2c 41 32 2c 4c 53 |U....MOV T,A2,LS| 000027f0 4c 20 23 31 36 0d 13 a6 13 4d 4f 56 20 54 2c 54 |L #16....MOV T,T| 00002800 2c 41 53 52 20 23 31 36 0d 13 b0 15 41 44 44 20 |,ASR #16....ADD | 00002810 55 2c 54 2c 55 2c 41 53 52 20 23 31 35 0d 13 ba |U,T,U,ASR #15...| 00002820 14 4d 4f 56 20 54 2c 42 31 2c 41 53 52 20 23 31 |.MOV T,B1,ASR #1| 00002830 36 0d 13 c4 0d 4d 55 4c 20 56 2c 58 2c 54 0d 13 |6....MUL V,X,T..| 00002840 ce 14 4d 4f 56 20 54 2c 42 31 2c 4c 53 4c 20 23 |..MOV T,B1,LSL #| 00002850 31 36 0d 13 d8 13 4d 4f 56 20 54 2c 54 2c 41 53 |16....MOV T,T,AS| 00002860 52 20 23 31 36 0d 13 e2 0f 4d 4c 41 20 56 2c 59 |R #16....MLA V,Y| 00002870 2c 54 2c 56 0d 13 ec 14 4d 4f 56 20 54 2c 42 32 |,T,V....MOV T,B2| 00002880 2c 41 53 52 20 23 31 36 0d 13 f6 0f 4d 4c 41 20 |,ASR #16....MLA | 00002890 56 2c 5a 2c 54 2c 56 0d 14 00 14 4d 4f 56 20 54 |V,Z,T,V....MOV T| 000028a0 2c 42 32 2c 4c 53 4c 20 23 31 36 0d 14 0a 13 4d |,B2,LSL #16....M| 000028b0 4f 56 20 54 2c 54 2c 41 53 52 20 23 31 36 0d 14 |OV T,T,ASR #16..| 000028c0 14 15 41 44 44 20 56 2c 54 2c 56 2c 41 53 52 20 |..ADD V,T,V,ASR | 000028d0 23 31 35 0d 14 1e 14 4d 4f 56 20 54 2c 43 31 2c |#15....MOV T,C1,| 000028e0 41 53 52 20 23 31 36 0d 14 28 0d 4d 55 4c 20 57 |ASR #16..(.MUL W| 000028f0 2c 54 2c 58 0d 14 32 14 4d 4f 56 20 54 2c 43 31 |,T,X..2.MOV T,C1| 00002900 2c 4c 53 4c 20 23 31 36 0d 14 3c 13 4d 4f 56 20 |,LSL #16..<.MOV | 00002910 54 2c 54 2c 41 53 52 20 23 31 36 0d 14 46 0f 4d |T,T,ASR #16..F.M| 00002920 4c 41 20 57 2c 59 2c 54 2c 57 0d 14 50 14 4d 4f |LA W,Y,T,W..P.MO| 00002930 56 20 54 2c 43 32 2c 41 53 52 20 23 31 36 0d 14 |V T,C2,ASR #16..| 00002940 5a 0f 4d 4c 41 20 57 2c 5a 2c 54 2c 57 0d 14 64 |Z.MLA W,Z,T,W..d| 00002950 14 4d 4f 56 20 54 2c 43 32 2c 4c 53 4c 20 23 31 |.MOV T,C2,LSL #1| 00002960 36 0d 14 6e 13 4d 4f 56 20 54 2c 54 2c 41 53 52 |6..n.MOV T,T,ASR| 00002970 20 23 31 36 0d 14 78 16 41 44 44 53 20 57 2c 54 | #16..x.ADDS W,T| 00002980 2c 57 2c 41 53 52 20 23 31 35 0d 14 82 18 4c 44 |,W,ASR #15....LD| 00002990 52 20 57 2c 5b 44 49 54 2c 57 2c 4c 53 4c 20 23 |R W,[DIT,W,LSL #| 000029a0 32 5d 0d 14 8c 0d 4d 55 4c 20 55 2c 57 2c 55 0d |2]....MUL U,W,U.| 000029b0 14 96 0d 4d 55 4c 20 56 2c 57 2c 56 0d 14 a0 13 |...MUL V,W,V....| 000029c0 4d 4f 56 20 55 2c 55 2c 41 53 52 20 23 31 32 0d |MOV U,U,ASR #12.| 000029d0 14 aa 13 4d 4f 56 20 56 2c 56 2c 41 53 52 20 23 |...MOV V,V,ASR #| 000029e0 31 32 0d 14 b4 10 41 44 44 20 55 2c 55 2c 23 31 |12....ADD U,U,#1| 000029f0 36 30 0d 14 be 10 41 44 44 20 56 2c 56 2c 23 31 |60....ADD V,V,#1| 00002a00 32 38 0d 14 c8 14 53 54 4d 49 41 20 28 41 29 21 |28....STMIA (A)!| 00002a10 2c 7b 55 2c 56 7d 0d 14 d2 16 4c 44 4d 49 41 20 |,{U,V}....LDMIA | 00002a20 28 41 29 21 2c 7b 58 2c 59 2c 5a 7d 0d 14 dc 10 |(A)!,{X,Y,Z}....| 00002a30 43 4d 50 20 58 2c 23 31 3c 3c 33 30 0d 14 e6 0e |CMP X,#1<<30....| 00002a40 42 4e 45 20 54 52 41 4e 53 42 0d 14 f0 0d 4c 44 |BNE TRANSB....LD| 00002a50 52 20 31 33 2c 53 50 0d 14 fa 17 4c 44 4d 46 44 |R 13,SP....LDMFD| 00002a60 20 31 33 21 2c 7b 30 2d 31 32 2c 50 43 7d 0d 15 | 13!,{0-12,PC}..| 00002a70 18 05 5d 0d 15 22 05 ed 0d 15 2c 09 51 25 3d 50 |..].."....,.Q%=P| 00002a80 25 0d 15 36 05 e1 0d 16 3a 04 0d 16 44 04 0d 16 |%..6....:...D...| 00002a90 4e 15 dd 20 f2 61 64 6a 75 73 74 70 6f 73 69 74 |N.. .adjustposit| 00002aa0 69 6f 6e 0d 16 58 42 50 3d 30 3a 43 50 3d 31 3a |ion..XBP=0:CP=1:| 00002ab0 58 3d 32 3a 59 3d 33 3a 5a 3d 34 3a 56 58 3d 35 |X=2:Y=3:Z=4:VX=5| 00002ac0 3a 56 59 3d 36 3a 56 5a 3d 37 3a 54 3d 38 3a 47 |:VY=6:VZ=7:T=8:G| 00002ad0 58 3d 39 3a 47 59 3d 31 30 3a 47 5a 3d 31 31 3a |X=9:GY=10:GZ=11:| 00002ae0 44 54 3d 31 32 0d 16 62 0d 46 4f 3d 34 2b 34 2a |DT=12..b.FO=4+4*| 00002af0 53 48 0d 16 6c 14 e3 20 50 41 53 53 3d 30 20 b8 |SH..l.. PASS=0 .| 00002b00 20 32 20 88 20 32 0d 16 76 09 50 25 3d 51 25 0d | 2 . 2..v.P%=Q%.| 00002b10 16 80 0d 5b 4f 50 54 20 50 41 53 53 0d 16 8a 04 |...[OPT PASS....| 00002b20 0d 16 94 04 0d 16 9e 16 2e 44 49 54 44 20 45 51 |.........DITD EQ| 00002b30 55 44 20 44 49 54 41 42 4c 45 0d 16 a8 0e 2e 61 |UD DITABLE.....a| 00002b40 64 6a 75 73 74 70 69 78 0d 16 b2 17 53 54 4d 46 |djustpix....STMF| 00002b50 44 20 31 33 21 2c 7b 30 2d 31 32 2c 31 34 7d 0d |D 13!,{0-12,14}.| 00002b60 16 bc 0e 4c 44 52 20 50 2c 50 49 58 44 0d 16 c6 |...LDR P,PIXD...| 00002b70 0f 4c 44 52 20 44 54 2c 44 49 54 44 0d 16 d0 0e |.LDR DT,DITD....| 00002b80 4d 4f 56 20 43 50 2c 23 4e 44 0d 16 da 1c 4c 44 |MOV CP,#ND....LD| 00002b90 4d 49 41 20 50 2c 7b 58 2c 59 2c 5a 2c 56 58 2c |MIA P,{X,Y,Z,VX,| 00002ba0 56 59 2c 56 5a 7d 0d 16 e4 0f 20 41 44 44 20 58 |VY,VZ}.... ADD X| 00002bb0 2c 58 2c 56 58 0d 16 ee 14 41 44 44 20 54 2c 58 |,X,VX....ADD T,X| 00002bc0 2c 23 62 6f 78 3c 3c 53 48 0d 16 f8 14 43 4d 50 |,#box<<SH....CMP| 00002bd0 20 54 2c 23 32 2a 62 6f 78 3c 3c 53 48 0d 17 02 | T,#2*box<<SH...| 00002be0 12 52 53 42 48 49 20 56 58 2c 56 58 2c 23 30 0d |.RSBHI VX,VX,#0.| 00002bf0 17 0c 17 41 44 44 48 49 20 58 2c 58 2c 56 58 2c |...ADDHI X,X,VX,| 00002c00 4c 53 4c 20 23 31 0d 17 16 0f 20 41 44 44 20 59 |LSL #1.... ADD Y| 00002c10 2c 59 2c 56 59 0d 17 20 14 41 44 44 20 54 2c 59 |,Y,VY.. .ADD T,Y| 00002c20 2c 23 62 6f 78 3c 3c 53 48 0d 17 2a 14 43 4d 50 |,#box<<SH..*.CMP| 00002c30 20 54 2c 23 32 2a 62 6f 78 3c 3c 53 48 0d 17 34 | T,#2*box<<SH..4| 00002c40 12 52 53 42 48 49 20 56 59 2c 56 59 2c 23 30 0d |.RSBHI VY,VY,#0.| 00002c50 17 3e 17 41 44 44 48 49 20 59 2c 59 2c 56 59 2c |.>.ADDHI Y,Y,VY,| 00002c60 4c 53 4c 20 23 31 0d 17 48 0f 20 41 44 44 20 5a |LSL #1..H. ADD Z| 00002c70 2c 5a 2c 56 5a 0d 17 52 14 41 44 44 20 54 2c 5a |,Z,VZ..R.ADD T,Z| 00002c80 2c 23 62 6f 78 3c 3c 53 48 0d 17 5c 14 43 4d 50 |,#box<<SH..\.CMP| 00002c90 20 54 2c 23 32 2a 62 6f 78 3c 3c 53 48 0d 17 66 | T,#2*box<<SH..f| 00002ca0 12 52 53 42 48 49 20 56 5a 2c 56 5a 2c 23 30 0d |.RSBHI VZ,VZ,#0.| 00002cb0 17 70 17 41 44 44 48 49 20 5a 2c 5a 2c 56 5a 2c |.p.ADDHI Z,Z,VZ,| 00002cc0 4c 53 4c 20 23 31 0d 17 7a 1f 53 54 4d 49 41 20 |LSL #1..z.STMIA | 00002cd0 28 50 29 21 2c 7b 58 2c 59 2c 5a 2c 56 58 2c 56 |(P)!,{X,Y,Z,VX,V| 00002ce0 59 2c 56 5a 7d 0d 17 84 11 53 55 42 53 20 43 50 |Y,VZ}....SUBS CP| 00002cf0 2c 43 50 2c 23 31 0d 17 8e 1e 4d 4f 56 20 47 58 |,CP,#1....MOV GX| 00002d00 2c 58 3a 4d 4f 56 20 47 59 2c 59 3a 4d 4f 56 20 |,X:MOV GY,Y:MOV | 00002d10 47 5a 2c 5a 0d 17 98 04 0d 17 a2 0c 2e 61 64 6a |GZ,Z.........adj| 00002d20 75 73 74 32 0d 17 ac 1c 4c 44 4d 49 41 20 50 2c |ust2....LDMIA P,| 00002d30 7b 58 2c 59 2c 5a 2c 56 58 2c 56 59 2c 56 5a 7d |{X,Y,Z,VX,VY,VZ}| 00002d40 0d 17 b6 0f 20 41 44 44 20 58 2c 58 2c 56 58 0d |.... ADD X,X,VX.| 00002d50 17 c0 16 3b 20 41 44 44 20 54 2c 58 2c 23 62 6f |...; ADD T,X,#bo| 00002d60 78 3c 3c 53 48 0d 17 ca 16 3b 20 43 4d 50 20 54 |x<<SH....; CMP T| 00002d70 2c 23 32 2a 62 6f 78 3c 3c 53 48 0d 17 d4 15 3b |,#2*box<<SH....;| 00002d80 20 20 52 53 42 48 49 20 56 58 2c 56 58 2c 23 30 | RSBHI VX,VX,#0| 00002d90 0d 17 de 19 3b 20 41 44 44 48 49 20 58 2c 58 2c |....; ADDHI X,X,| 00002da0 56 58 2c 4c 53 4c 20 23 31 0d 17 e8 04 0d 17 f2 |VX,LSL #1.......| 00002db0 0f 20 41 44 44 20 59 2c 59 2c 56 59 0d 17 fc 16 |. ADD Y,Y,VY....| 00002dc0 3b 20 41 44 44 20 54 2c 59 2c 23 62 6f 78 3c 3c |; ADD T,Y,#box<<| 00002dd0 53 48 0d 18 06 16 3b 20 43 4d 50 20 54 2c 23 32 |SH....; CMP T,#2| 00002de0 2a 62 6f 78 3c 3c 53 48 0d 18 10 14 3b 20 52 53 |*box<<SH....; RS| 00002df0 42 48 49 20 56 59 2c 56 59 2c 23 30 0d 18 1a 19 |BHI VY,VY,#0....| 00002e00 3b 20 41 44 44 48 49 20 59 2c 59 2c 56 59 2c 4c |; ADDHI Y,Y,VY,L| 00002e10 53 4c 20 23 31 0d 18 24 04 0d 18 2e 0f 20 41 44 |SL #1..$..... AD| 00002e20 44 20 5a 2c 5a 2c 56 5a 0d 18 38 16 3b 20 41 44 |D Z,Z,VZ..8.; AD| 00002e30 44 20 54 2c 5a 2c 23 62 6f 78 3c 3c 53 48 0d 18 |D T,Z,#box<<SH..| 00002e40 42 16 3b 20 43 4d 50 20 54 2c 23 32 2a 62 6f 78 |B.; CMP T,#2*box| 00002e50 3c 3c 53 48 0d 18 4c 14 3b 20 52 53 42 48 49 20 |<<SH..L.; RSBHI | 00002e60 56 5a 2c 56 5a 2c 23 30 0d 18 56 19 3b 20 41 44 |VZ,VZ,#0..V.; AD| 00002e70 44 48 49 20 5a 2c 5a 2c 56 5a 2c 4c 53 4c 20 23 |DHI Z,Z,VZ,LSL #| 00002e80 31 0d 18 60 16 53 54 4d 49 41 20 28 50 29 21 2c |1..`.STMIA (P)!,| 00002e90 7b 58 2c 59 2c 5a 7d 0d 18 6a 04 0d 18 74 0f 53 |{X,Y,Z}..j...t.S| 00002ea0 55 42 53 20 58 2c 47 58 2c 58 0d 18 7e 0b 4d 4f |UBS X,GX,X..~.MO| 00002eb0 56 20 54 2c 58 0d 18 88 10 52 53 42 4d 49 20 54 |V T,X....RSBMI T| 00002ec0 2c 54 2c 23 30 0d 18 92 04 0d 18 9c 0f 53 55 42 |,T,#0........SUB| 00002ed0 53 20 59 2c 47 59 2c 59 0d 18 a6 0f 41 44 44 50 |S Y,GY,Y....ADDP| 00002ee0 4c 20 54 2c 54 2c 59 0d 18 b0 0f 53 55 42 4d 49 |L T,T,Y....SUBMI| 00002ef0 20 54 2c 54 2c 59 0d 18 ba 04 0d 18 c4 0f 53 55 | T,T,Y........SU| 00002f00 42 53 20 5a 2c 47 5a 2c 5a 0d 18 ce 0f 41 44 44 |BS Z,GZ,Z....ADD| 00002f10 50 4c 20 54 2c 54 2c 5a 0d 18 d8 0f 53 55 42 4d |PL T,T,Z....SUBM| 00002f20 49 20 54 2c 54 2c 5a 0d 18 e2 04 0d 18 ec 16 41 |I T,T,Z........A| 00002f30 44 44 20 56 58 2c 56 58 2c 58 2c 41 53 52 20 23 |DD VX,VX,X,ASR #| 00002f40 39 0d 18 f6 16 41 44 44 20 56 59 2c 56 59 2c 59 |9....ADD VY,VY,Y| 00002f50 2c 41 53 52 20 23 39 0d 19 00 16 41 44 44 20 56 |,ASR #9....ADD V| 00002f60 5a 2c 56 5a 2c 5a 2c 41 53 52 20 23 39 0d 19 0a |Z,VZ,Z,ASR #9...| 00002f70 11 4d 4f 56 20 54 2c 23 32 30 3c 3c 53 48 0d 19 |.MOV T,#20<<SH..| 00002f80 14 17 43 4d 50 20 56 58 2c 54 3a 4d 4f 56 47 54 |..CMP VX,T:MOVGT| 00002f90 20 56 58 2c 54 0d 19 1e 1a 43 4d 4e 20 56 58 2c | VX,T....CMN VX,| 00002fa0 54 3a 52 53 42 4c 54 20 56 58 2c 54 2c 23 30 0d |T:RSBLT VX,T,#0.| 00002fb0 19 28 17 43 4d 50 20 56 59 2c 54 3a 4d 4f 56 47 |.(.CMP VY,T:MOVG| 00002fc0 54 20 56 59 2c 54 0d 19 32 1a 43 4d 4e 20 56 59 |T VY,T..2.CMN VY| 00002fd0 2c 54 3a 52 53 42 4c 54 20 56 59 2c 54 2c 23 30 |,T:RSBLT VY,T,#0| 00002fe0 0d 19 3c 17 43 4d 50 20 56 5a 2c 54 3a 4d 4f 56 |..<.CMP VZ,T:MOV| 00002ff0 47 54 20 56 5a 2c 54 0d 19 46 1a 43 4d 4e 20 56 |GT VZ,T..F.CMN V| 00003000 5a 2c 54 3a 52 53 42 4c 54 20 56 5a 2c 54 2c 23 |Z,T:RSBLT VZ,T,#| 00003010 30 0d 19 50 04 0d 19 5a 19 53 54 4d 49 41 20 28 |0..P...Z.STMIA (| 00003020 50 29 21 2c 7b 56 58 2c 56 59 2c 56 5a 7d 0d 19 |P)!,{VX,VY,VZ}..| 00003030 64 04 0d 19 6e 11 53 55 42 53 20 43 50 2c 43 50 |d...n.SUBS CP,CP| 00003040 2c 23 31 0d 19 78 0f 42 4e 45 20 61 64 6a 75 73 |,#1..x.BNE adjus| 00003050 74 32 0d 19 82 17 4c 44 4d 46 44 20 31 33 21 2c |t2....LDMFD 13!,| 00003060 7b 30 2d 31 32 2c 50 43 7d 0d 19 8c 04 0d 19 96 |{0-12,PC}.......| 00003070 05 5d 0d 19 a0 09 51 25 3d 50 25 0d 19 aa 05 e1 |.]....Q%=P%.....| 00003080 0d 19 b4 04 0d 19 be 04 0d 19 c8 0b dd 20 f2 6c |............. .l| 00003090 69 6e 65 0d 19 d2 04 0d 19 dc 15 de 20 44 49 54 |ine......... DIT| 000030a0 41 42 4c 45 32 20 31 30 32 34 2a 34 0d 19 e6 11 |ABLE2 1024*4....| 000030b0 50 25 3d 44 49 54 41 42 4c 45 32 2b 34 0d 19 f0 |P%=DITABLE2+4...| 000030c0 10 e3 20 49 3d 31 20 b8 20 31 30 32 34 0d 19 fa |.. I=1 . 1024...| 000030d0 0a 5b 4f 50 54 20 30 0d 1a 04 11 45 51 55 44 20 |.[OPT 0....EQUD | 000030e0 28 32 5e 32 30 2f 49 29 0d 1a 0e 05 5d 0d 1a 18 |(2^20/I)....]...| 000030f0 05 ed 0d 1a 22 04 0d 1a 2c 10 de 20 43 54 41 42 |...."...,.. CTAB| 00003100 4c 45 32 20 31 36 0d 1a 36 0e 50 25 3d 43 54 41 |LE2 16..6.P%=CTA| 00003110 42 4c 45 32 0d 1a 40 0a 5b 4f 50 54 20 30 0d 1a |BLE2..@.[OPT 0..| 00003120 4a 12 45 51 55 42 20 25 31 31 31 31 31 31 31 31 |J.EQUB %11111111| 00003130 0d 1a 54 12 45 51 55 42 20 25 31 31 31 31 31 31 |..T.EQUB %111111| 00003140 31 30 0d 1a 5e 12 45 51 55 42 20 25 31 31 31 31 |10..^.EQUB %1111| 00003150 31 31 30 31 0d 1a 68 12 45 51 55 42 20 25 31 31 |1101..h.EQUB %11| 00003160 31 31 31 31 30 30 0d 1a 72 12 45 51 55 42 20 25 |111100..r.EQUB %| 00003170 31 31 30 31 30 30 31 31 0d 1a 7c 12 45 51 55 42 |11010011..|.EQUB| 00003180 20 25 31 31 30 31 30 30 31 30 0d 1a 86 12 45 51 | %11010010....EQ| 00003190 55 42 20 25 31 31 30 31 30 30 30 31 0d 1a 90 12 |UB %11010001....| 000031a0 45 51 55 42 20 25 31 31 30 31 30 30 30 30 0d 1a |EQUB %11010000..| 000031b0 9a 12 45 51 55 42 20 25 30 30 31 30 31 31 31 31 |..EQUB %00101111| 000031c0 0d 1a a4 12 45 51 55 42 20 25 30 30 31 30 31 31 |....EQUB %001011| 000031d0 31 30 0d 1a ae 12 45 51 55 42 20 25 30 30 31 30 |10....EQUB %0010| 000031e0 31 31 30 31 0d 1a b8 12 45 51 55 42 20 25 30 30 |1101....EQUB %00| 000031f0 31 30 31 31 30 30 0d 1a c2 12 45 51 55 42 20 25 |101100....EQUB %| 00003200 30 30 30 30 30 30 31 31 0d 1a cc 12 45 51 55 42 |00000011....EQUB| 00003210 20 25 30 30 30 30 30 30 31 30 0d 1a d6 12 45 51 | %00000010....EQ| 00003220 55 42 20 25 30 30 30 30 30 30 30 31 0d 1a e0 12 |UB %00000001....| 00003230 45 51 55 42 20 25 30 30 30 30 30 30 30 30 0d 1a |EQUB %00000000..| 00003240 ea 05 5d 0d 1b c6 04 0d 1b d0 45 58 31 3d 30 3a |..].......EX1=0:| 00003250 59 31 3d 31 3a 58 32 3d 32 3a 59 32 3d 33 3a 58 |Y1=1:X2=2:Y2=3:X| 00003260 4c 3d 34 3a 58 52 3d 35 3a 59 42 3d 36 3a 59 54 |L=4:XR=5:YB=6:YT| 00003270 3d 37 3a 4b 31 3d 38 3a 4b 32 3d 39 3a 44 54 3d |=7:K1=8:K2=9:DT=| 00003280 31 30 3a 53 3d 31 31 3a 54 3d 31 32 0d 1b e4 26 |10:S=11:T=12...&| 00003290 4c 4c 3d 30 3a 52 52 3d 31 3a 41 3d 32 3a 42 3d |LL=0:RR=1:A=2:B=| 000032a0 33 3a 43 3d 34 3a 4f 3d 35 3a 44 3d 36 3a 43 54 |3:C=4:O=5:D=6:CT| 000032b0 3d 37 0d 1b ee 14 e3 20 50 41 53 53 3d 30 20 b8 |=7..... PASS=0 .| 000032c0 20 32 20 88 20 32 0d 1b f8 09 50 25 3d 51 25 0d | 2 . 2....P%=Q%.| 000032d0 1c 02 0d 5b 4f 50 54 20 50 41 53 53 0d 1c 0c 4e |...[OPT PASS...N| 000032e0 5c 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d |\---------------| 000032f0 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d |----------------| * 00003320 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 0d 1c 16 1d 2e 73 |----------.....s| 00003330 63 72 65 65 6e 31 20 45 51 55 44 20 31 34 38 3a |creen1 EQUD 148:| 00003340 45 51 55 44 20 2d 31 0d 1c 20 12 2e 73 63 72 65 |EQUD -1.. ..scre| 00003350 65 6e 20 45 51 55 44 20 30 0d 1c 2a 19 2e 43 54 |en EQUD 0..*..CT| 00003360 41 42 4c 45 44 20 45 51 55 44 20 43 54 41 42 4c |ABLED EQUD CTABL| 00003370 45 32 0d 1c 34 04 0d 1c 3e 29 2e 42 4f 58 44 20 |E2..4...>).BOXD | 00003380 45 51 55 44 20 31 3a 45 51 55 44 20 33 31 38 3a |EQUD 1:EQUD 318:| 00003390 45 51 55 44 20 31 3a 45 51 55 44 20 32 35 34 0d |EQUD 1:EQUD 254.| 000033a0 1c 48 1b 2e 44 49 54 41 42 4c 45 44 20 45 51 55 |.H..DITABLED EQU| 000033b0 44 20 44 49 54 41 42 4c 45 32 0d 1c 52 08 2e 73 |D DITABLE2..R..s| 000033c0 65 74 0d 1c 5c 3a 41 44 52 20 52 30 2c 73 63 72 |et..\:ADR R0,scr| 000033d0 65 65 6e 31 3a 41 44 52 20 52 31 2c 73 63 72 65 |een1:ADR R1,scre| 000033e0 65 6e 3a 53 57 49 20 22 4f 53 5f 52 65 61 64 56 |en:SWI "OS_ReadV| 000033f0 64 75 56 61 72 69 61 62 6c 65 73 22 0d 1c 66 0e |duVariables"..f.| 00003400 4d 4f 56 20 50 43 2c 52 31 34 0d 1c 67 04 0d 1c |MOV PC,R14..g...| 00003410 70 32 f4 20 41 6e 74 69 2d 61 6c 69 61 73 65 64 |p2. Anti-aliased| 00003420 20 6c 69 6e 65 73 2c 20 77 69 74 68 20 53 75 74 | lines, with Sut| 00003430 68 65 72 6c 61 6e 64 20 63 6c 69 70 70 69 6e 67 |herland clipping| 00003440 0d 1c 71 38 f4 20 50 61 72 61 6d 65 74 65 72 73 |..q8. Parameters| 00003450 20 20 28 58 31 2c 59 31 29 20 3d 3e 20 28 52 30 | (X1,Y1) => (R0| 00003460 2c 52 31 29 3b 20 28 58 32 2c 59 32 29 20 3d 3e |,R1); (X2,Y2) =>| 00003470 20 28 52 32 2c 52 33 29 0d 1c 84 09 2e 6c 69 6e | (R2,R3).....lin| 00003480 65 0d 1c 8e 14 53 54 4d 46 44 20 31 33 21 2c 7b |e....STMFD 13!,{| 00003490 38 2d 31 31 7d 0d 1c 98 0e 41 44 52 20 54 2c 42 |8-11}....ADR T,B| 000034a0 4f 58 44 0d 1c a2 1c 4c 44 4d 49 41 20 54 2c 7b |OXD....LDMIA T,{| 000034b0 58 4c 2c 58 52 2c 59 42 2c 59 54 2c 44 54 7d 0d |XL,XR,YB,YT,DT}.| 000034c0 1c ac 0d 4d 4f 56 20 4b 31 2c 23 30 0d 1c b6 0d |...MOV K1,#0....| 000034d0 43 4d 50 20 58 31 2c 58 4c 0d 1c c0 11 84 52 4c |CMP X1,XL.....RL| 000034e0 54 20 4b 31 2c 4b 31 2c 23 31 0d 1c ca 0d 43 4d |T K1,K1,#1....CM| 000034f0 50 20 58 31 2c 58 52 0d 1c d4 11 84 52 47 54 20 |P X1,XR.....RGT | 00003500 4b 31 2c 4b 31 2c 23 32 0d 1c de 0d 43 4d 50 20 |K1,K1,#2....CMP | 00003510 59 31 2c 59 42 0d 1c e8 11 84 52 4c 54 20 4b 31 |Y1,YB.....RLT K1| 00003520 2c 4b 31 2c 23 34 0d 1c f2 0d 43 4d 50 20 59 31 |,K1,#4....CMP Y1| 00003530 2c 59 54 0d 1c fc 11 84 52 47 54 20 4b 31 2c 4b |,YT.....RGT K1,K| 00003540 31 2c 23 38 0d 1d 06 0d 4d 4f 56 20 4b 32 2c 23 |1,#8....MOV K2,#| 00003550 30 0d 1d 10 0d 43 4d 50 20 58 32 2c 58 4c 0d 1d |0....CMP X2,XL..| 00003560 1a 11 84 52 4c 54 20 4b 32 2c 4b 32 2c 23 31 0d |...RLT K2,K2,#1.| 00003570 1d 24 0d 43 4d 50 20 58 32 2c 58 52 0d 1d 2e 11 |.$.CMP X2,XR....| 00003580 84 52 47 54 20 4b 32 2c 4b 32 2c 23 32 0d 1d 38 |.RGT K2,K2,#2..8| 00003590 0d 43 4d 50 20 59 32 2c 59 42 0d 1d 42 11 84 52 |.CMP Y2,YB..B..R| 000035a0 4c 54 20 4b 32 2c 4b 32 2c 23 34 0d 1d 4c 0d 43 |LT K2,K2,#4..L.C| 000035b0 4d 50 20 59 32 2c 59 54 0d 1d 56 11 84 52 47 54 |MP Y2,YT..V..RGT| 000035c0 20 4b 32 2c 4b 32 2c 23 38 0d 1d 60 0f 84 52 53 | K2,K2,#8..`..RS| 000035d0 20 54 2c 4b 31 2c 4b 32 0d 1d 6a 2e 42 45 51 20 | T,K1,K2..j.BEQ | 000035e0 65 6e 64 77 68 69 6c 65 20 20 5c 20 4c 69 6e 65 |endwhile \ Line| 000035f0 20 63 6f 6d 70 6c 65 74 65 6c 79 20 69 6e 73 69 | completely insi| 00003600 64 65 20 62 6f 78 0d 1d 74 0e 80 53 20 54 2c 4b |de box..t..S T,K| 00003610 31 2c 4b 32 0d 1d 7e 16 4c 44 4d 4e 45 46 44 20 |1,K2..~.LDMNEFD | 00003620 31 33 21 2c 7b 38 2d 31 31 7d 0d 1d 88 2f 4d 4f |13!,{8-11}.../MO| 00003630 56 4e 45 20 50 43 2c 52 31 34 20 20 5c 20 4c 69 |VNE PC,R14 \ Li| 00003640 6e 65 20 63 6f 6d 70 6c 65 74 65 6c 79 20 6f 75 |ne completely ou| 00003650 74 73 69 64 65 20 62 6f 78 0d 1d 92 04 0d 1d 9c |tside box.......| 00003660 0a 2e 77 68 69 6c 65 0d 1d a6 2c 43 4d 50 20 4b |..while...,CMP K| 00003670 31 2c 23 30 20 20 20 20 20 5c 20 53 77 61 70 20 |1,#0 \ Swap | 00003680 28 78 31 2c 79 31 29 20 6f 75 74 73 69 64 65 20 |(x1,y1) outside | 00003690 62 6f 78 0d 1d b0 1c ec 51 20 54 2c 58 31 3a ec |box.....Q T,X1:.| 000036a0 51 20 58 31 2c 58 32 3a ec 51 20 58 32 2c 54 0d |Q X1,X2:.Q X2,T.| 000036b0 1d ba 1c ec 51 20 54 2c 59 31 3a ec 51 20 59 31 |....Q T,Y1:.Q Y1| 000036c0 2c 59 32 3a ec 51 20 59 32 2c 54 0d 1d c4 1c ec |,Y2:.Q Y2,T.....| 000036d0 51 20 54 2c 4b 31 3a ec 51 20 4b 31 2c 4b 32 3a |Q T,K1:.Q K1,K2:| 000036e0 ec 51 20 4b 32 2c 54 0d 1d ce 04 0d 1d d8 15 54 |.Q K2,T........T| 000036f0 53 54 20 4b 31 2c 23 31 3a 42 45 51 20 73 6b 31 |ST K1,#1:BEQ sk1| 00003700 0d 1d e2 31 53 55 42 53 20 54 2c 58 32 2c 58 31 |...1SUBS T,X2,X1| 00003710 3a 52 53 42 4d 49 20 54 2c 54 2c 23 30 3a 4c 44 |:RSBMI T,T,#0:LD| 00003720 52 20 53 2c 5b 44 54 2c 54 2c 4c 53 4c 20 23 32 |R S,[DT,T,LSL #2| 00003730 5d 0d 1d ec 37 53 55 42 20 20 54 2c 59 32 2c 59 |]...7SUB T,Y2,Y| 00003740 31 3a 52 53 42 4d 49 20 54 2c 54 2c 23 30 3a 4d |1:RSBMI T,T,#0:M| 00003750 55 4c 20 53 2c 54 2c 53 3a 4d 4f 56 20 53 2c 53 |UL S,T,S:MOV S,S| 00003760 2c 41 53 52 20 23 31 30 0d 1d f6 1a 53 55 42 20 |,ASR #10....SUB | 00003770 20 54 2c 58 4c 2c 58 31 3a 4d 55 4c 20 53 2c 54 | T,XL,X1:MUL S,T| 00003780 2c 53 0d 1e 00 18 41 44 44 20 20 59 31 2c 59 31 |,S....ADD Y1,Y1| 00003790 2c 53 2c 41 53 52 20 23 31 30 0d 1e 0a 0e 4d 4f |,S,ASR #10....MO| 000037a0 56 20 20 58 31 2c 58 4c 0d 1e 14 08 2e 73 6b 31 |V X1,XL.....sk1| 000037b0 0d 1e 1e 15 54 53 54 20 4b 31 2c 23 32 3a 42 45 |....TST K1,#2:BE| 000037c0 51 20 73 6b 32 0d 1e 28 31 53 55 42 53 20 54 2c |Q sk2..(1SUBS T,| 000037d0 58 32 2c 58 31 3a 52 53 42 4d 49 20 54 2c 54 2c |X2,X1:RSBMI T,T,| 000037e0 23 30 3a 4c 44 52 20 53 2c 5b 44 54 2c 54 2c 4c |#0:LDR S,[DT,T,L| 000037f0 53 4c 20 23 32 5d 0d 1e 32 37 53 55 42 20 20 54 |SL #2]..27SUB T| 00003800 2c 59 32 2c 59 31 3a 52 53 42 4d 49 20 54 2c 54 |,Y2,Y1:RSBMI T,T| 00003810 2c 23 30 3a 4d 55 4c 20 53 2c 54 2c 53 3a 4d 4f |,#0:MUL S,T,S:MO| 00003820 56 20 53 2c 53 2c 41 53 52 20 23 31 30 0d 1e 3c |V S,S,ASR #10..<| 00003830 1a 53 55 42 20 20 54 2c 58 52 2c 58 31 3a 4d 55 |.SUB T,XR,X1:MU| 00003840 4c 20 53 2c 54 2c 53 0d 1e 46 18 41 44 44 20 20 |L S,T,S..F.ADD | 00003850 59 31 2c 59 31 2c 53 2c 41 53 52 20 23 31 30 0d |Y1,Y1,S,ASR #10.| 00003860 1e 50 0e 4d 4f 56 20 20 58 31 2c 58 52 0d 1e 5a |.P.MOV X1,XR..Z| 00003870 08 2e 73 6b 32 0d 1e 64 04 0d 1e 6e 0d 4d 4f 56 |..sk2..d...n.MOV| 00003880 20 4b 31 2c 23 30 0d 1e 78 0d 43 4d 50 20 59 31 | K1,#0..x.CMP Y1| 00003890 2c 59 42 0d 1e 82 11 84 52 4c 54 20 4b 31 2c 4b |,YB.....RLT K1,K| 000038a0 31 2c 23 34 0d 1e 8c 0d 43 4d 50 20 59 31 2c 59 |1,#4....CMP Y1,Y| 000038b0 54 0d 1e 96 11 84 52 47 54 20 4b 31 2c 4b 31 2c |T.....RGT K1,K1,| 000038c0 23 38 0d 1e a0 0e 80 53 20 54 2c 4b 31 2c 4b 32 |#8.....S T,K1,K2| 000038d0 0d 1e aa 16 4c 44 4d 4e 45 46 44 20 31 33 21 2c |....LDMNEFD 13!,| 000038e0 7b 38 2d 31 31 7d 0d 1e b4 2f 4d 4f 56 4e 45 20 |{8-11}.../MOVNE | 000038f0 50 43 2c 52 31 34 20 20 5c 20 4c 69 6e 65 20 63 |PC,R14 \ Line c| 00003900 6f 6d 70 6c 65 74 65 6c 79 20 6f 75 74 73 69 64 |ompletely outsid| 00003910 65 20 62 6f 78 0d 1e be 0f 84 52 53 20 54 2c 4b |e box.....RS T,K| 00003920 31 2c 4b 32 0d 1e c8 2e 42 45 51 20 65 6e 64 77 |1,K2....BEQ endw| 00003930 68 69 6c 65 20 20 5c 20 4c 69 6e 65 20 63 6f 6d |hile \ Line com| 00003940 70 6c 65 74 65 6c 79 20 69 6e 73 69 64 65 20 62 |pletely inside b| 00003950 6f 78 0d 1e d2 04 0d 1e dc 15 54 53 54 20 4b 31 |ox........TST K1| 00003960 2c 23 34 3a 42 45 51 20 73 6b 33 0d 1e e6 31 53 |,#4:BEQ sk3...1S| 00003970 55 42 53 20 54 2c 59 32 2c 59 31 3a 52 53 42 4d |UBS T,Y2,Y1:RSBM| 00003980 49 20 54 2c 54 2c 23 30 3a 4c 44 52 20 53 2c 5b |I T,T,#0:LDR S,[| 00003990 44 54 2c 54 2c 4c 53 4c 20 23 32 5d 0d 1e f0 37 |DT,T,LSL #2]...7| 000039a0 53 55 42 20 20 54 2c 58 32 2c 58 31 3a 52 53 42 |SUB T,X2,X1:RSB| 000039b0 4d 49 20 54 2c 54 2c 23 30 3a 4d 55 4c 20 53 2c |MI T,T,#0:MUL S,| 000039c0 54 2c 53 3a 4d 4f 56 20 53 2c 53 2c 41 53 52 20 |T,S:MOV S,S,ASR | 000039d0 23 31 30 0d 1e fa 1a 53 55 42 20 20 54 2c 59 42 |#10....SUB T,YB| 000039e0 2c 59 31 3a 4d 55 4c 20 53 2c 54 2c 53 0d 1f 04 |,Y1:MUL S,T,S...| 000039f0 18 41 44 44 20 20 58 31 2c 58 31 2c 53 2c 41 53 |.ADD X1,X1,S,AS| 00003a00 52 20 23 31 30 0d 1f 0e 0e 4d 4f 56 20 20 59 31 |R #10....MOV Y1| 00003a10 2c 59 42 0d 1f 18 08 2e 73 6b 33 0d 1f 22 15 54 |,YB.....sk3..".T| 00003a20 53 54 20 4b 31 2c 23 38 3a 42 45 51 20 73 6b 34 |ST K1,#8:BEQ sk4| 00003a30 0d 1f 2c 31 53 55 42 53 20 54 2c 59 32 2c 59 31 |..,1SUBS T,Y2,Y1| 00003a40 3a 52 53 42 4d 49 20 54 2c 54 2c 23 30 3a 4c 44 |:RSBMI T,T,#0:LD| 00003a50 52 20 53 2c 5b 44 54 2c 54 2c 4c 53 4c 20 23 32 |R S,[DT,T,LSL #2| 00003a60 5d 0d 1f 36 37 53 55 42 20 20 54 2c 58 32 2c 58 |]..67SUB T,X2,X| 00003a70 31 3a 52 53 42 4d 49 20 54 2c 54 2c 23 30 3a 4d |1:RSBMI T,T,#0:M| 00003a80 55 4c 20 53 2c 54 2c 53 3a 4d 4f 56 20 53 2c 53 |UL S,T,S:MOV S,S| 00003a90 2c 41 53 52 20 23 31 30 0d 1f 40 1a 53 55 42 20 |,ASR #10..@.SUB | 00003aa0 20 54 2c 59 54 2c 59 31 3a 4d 55 4c 20 53 2c 54 | T,YT,Y1:MUL S,T| 00003ab0 2c 53 0d 1f 4a 18 41 44 44 20 20 58 31 2c 58 31 |,S..J.ADD X1,X1| 00003ac0 2c 53 2c 41 53 52 20 23 31 30 0d 1f 54 0e 4d 4f |,S,ASR #10..T.MO| 00003ad0 56 20 20 59 31 2c 59 54 0d 1f 5e 08 2e 73 6b 34 |V Y1,YT..^..sk4| 00003ae0 0d 1f 68 04 0d 1f 72 0d 4d 4f 56 20 4b 31 2c 23 |..h...r.MOV K1,#| 00003af0 30 0d 1f 7c 0d 43 4d 50 20 58 31 2c 58 4c 0d 1f |0..|.CMP X1,XL..| 00003b00 86 11 84 52 4c 54 20 4b 31 2c 4b 31 2c 23 31 0d |...RLT K1,K1,#1.| 00003b10 1f 90 0d 43 4d 50 20 58 31 2c 58 52 0d 1f 9a 11 |...CMP X1,XR....| 00003b20 84 52 47 54 20 4b 31 2c 4b 31 2c 23 32 0d 1f a4 |.RGT K1,K1,#2...| 00003b30 0e 80 53 20 54 2c 4b 31 2c 4b 32 0d 1f ae 16 4c |..S T,K1,K2....L| 00003b40 44 4d 4e 45 46 44 20 31 33 21 2c 7b 38 2d 31 31 |DMNEFD 13!,{8-11| 00003b50 7d 0d 1f b8 2f 4d 4f 56 4e 45 20 50 43 2c 52 31 |}.../MOVNE PC,R1| 00003b60 34 20 20 5c 20 4c 69 6e 65 20 63 6f 6d 70 6c 65 |4 \ Line comple| 00003b70 74 65 6c 79 20 6f 75 74 73 69 64 65 20 62 6f 78 |tely outside box| 00003b80 0d 1f c2 0f 84 52 53 20 54 2c 4b 31 2c 4b 32 0d |.....RS T,K1,K2.| 00003b90 1f cc 0d 42 4e 45 20 77 68 69 6c 65 0d 1f d6 2e |...BNE while....| 00003ba0 2e 65 6e 64 77 68 69 6c 65 20 20 20 20 20 5c 20 |.endwhile \ | 00003bb0 4c 69 6e 65 20 63 6f 6d 70 6c 65 74 65 6c 79 20 |Line completely | 00003bc0 69 6e 73 69 64 65 20 62 6f 78 0d 1f e0 04 0d 1f |inside box......| 00003bd0 ea 10 41 44 52 20 54 2c 73 63 72 65 65 6e 0d 1f |..ADR T,screen..| 00003be0 f4 12 4c 44 4d 49 41 20 54 2c 7b 4f 2c 43 54 7d |..LDMIA T,{O,CT}| 00003bf0 0d 1f fe 11 52 53 42 20 54 2c 59 31 2c 23 32 35 |....RSB T,Y1,#25| 00003c00 35 0d 20 08 14 41 44 44 20 54 2c 54 2c 54 2c 4c |5. ..ADD T,T,T,L| 00003c10 53 4c 20 23 32 0d 20 12 15 41 44 44 20 54 2c 58 |SL #2. ..ADD T,X| 00003c20 31 2c 54 2c 4c 53 4c 20 23 36 0d 20 1c 0d 41 44 |1,T,LSL #6. ..AD| 00003c30 44 20 4f 2c 4f 2c 54 0d 20 26 0f 53 55 42 20 41 |D O,O,T. &.SUB A| 00003c40 2c 58 32 2c 58 31 0d 20 30 0f 53 55 42 20 42 2c |,X2,X1. 0.SUB B,| 00003c50 59 32 2c 59 31 0d 20 3a 0d 4d 4f 56 20 4c 4c 2c |Y2,Y1. :.MOV LL,| 00003c60 23 31 0d 20 44 0f 4d 4f 56 20 52 52 2c 23 33 32 |#1. D.MOV RR,#32| 00003c70 30 0d 20 4e 10 52 53 42 20 52 52 2c 52 52 2c 23 |0. N.RSB RR,RR,#| 00003c80 30 0d 20 58 0c 43 4d 50 20 41 2c 23 30 0d 20 62 |0. X.CMP A,#0. b| 00003c90 11 20 52 53 42 4c 54 20 41 2c 41 2c 23 30 0d 20 |. RSBLT A,A,#0. | 00003ca0 6c 13 20 52 53 42 4c 54 20 4c 4c 2c 4c 4c 2c 23 |l. RSBLT LL,LL,#| 00003cb0 30 0d 20 76 0c 43 4d 50 20 42 2c 23 30 0d 20 80 |0. v.CMP B,#0. .| 00003cc0 11 20 52 53 42 4c 54 20 42 2c 42 2c 23 30 0d 20 |. RSBLT B,B,#0. | 00003cd0 8a 13 20 52 53 42 4c 54 20 52 52 2c 52 52 2c 23 |.. RSBLT RR,RR,#| 00003ce0 30 0d 20 94 0b 43 4d 50 20 41 2c 42 0d 20 9e 0e |0. ..CMP A,B. ..| 00003cf0 20 4d 4f 56 4c 54 20 54 2c 41 0d 20 a8 0e 20 4d | MOVLT T,A. .. M| 00003d00 4f 56 4c 54 20 41 2c 42 0d 20 b2 0e 20 4d 4f 56 |OVLT A,B. .. MOV| 00003d10 4c 54 20 42 2c 54 0d 20 bc 0f 20 4d 4f 56 4c 54 |LT B,T. .. MOVLT| 00003d20 20 54 2c 4c 4c 0d 20 c6 10 20 4d 4f 56 4c 54 20 | T,LL. .. MOVLT | 00003d30 4c 4c 2c 52 52 0d 20 d0 0f 20 4d 4f 56 4c 54 20 |LL,RR. .. MOVLT | 00003d40 52 52 2c 54 0d 20 da 0f 4c 44 52 42 20 43 2c 5b |RR,T. ..LDRB C,[| 00003d50 43 54 5d 0d 20 e4 0e 53 54 52 42 20 43 2c 5b 4f |CT]. ..STRB C,[O| 00003d60 5d 0d 20 ee 0c 43 4d 50 20 41 2c 23 30 0d 20 f8 |]. ..CMP A,#0. .| 00003d70 16 4c 44 4d 45 51 46 44 20 31 33 21 2c 7b 38 2d |.LDMEQFD 13!,{8-| 00003d80 31 31 7d 0d 21 02 0e 20 ec 51 20 50 43 2c 52 31 |11}.!.. .Q PC,R1| 00003d90 34 0d 21 0c 17 4c 44 52 20 54 2c 5b 44 54 2c 41 |4.!..LDR T,[DT,A| 00003da0 2c 4c 53 4c 20 23 32 5d 0d 21 16 0d 4d 55 4c 20 |,LSL #2].!..MUL | 00003db0 42 2c 54 2c 42 0d 21 20 10 4d 4f 56 20 44 2c 23 |B,T,B.! .MOV D,#| 00003dc0 31 3c 3c 32 30 0d 21 2a 0e 2e 6c 69 6e 65 5f 6c |1<<20.!*..line_l| 00003dd0 6f 6f 70 0d 21 34 0e 53 55 42 53 20 44 2c 44 2c |oop.!4.SUBS D,D,| 00003de0 42 0d 21 3e 14 41 44 44 4c 45 20 44 2c 44 2c 23 |B.!>.ADDLE D,D,#| 00003df0 31 3c 3c 32 30 0d 21 48 10 41 44 44 4c 45 20 4f |1<<20.!H.ADDLE O| 00003e00 2c 4f 2c 52 52 0d 21 52 13 52 53 42 20 20 54 2c |,O,RR.!R.RSB T,| 00003e10 44 2c 23 31 3c 3c 32 30 0d 21 5c 19 4c 44 52 42 |D,#1<<20.!\.LDRB| 00003e20 20 43 2c 5b 43 54 2c 54 2c 4c 53 52 20 23 31 37 | C,[CT,T,LSR #17| 00003e30 5d 0d 21 66 12 53 54 52 42 20 43 2c 5b 4f 2c 4c |].!f.STRB C,[O,L| 00003e40 4c 5d 21 0d 21 70 19 4c 44 52 42 20 43 2c 5b 43 |L]!.!p.LDRB C,[C| 00003e50 54 2c 44 2c 4c 53 52 20 23 31 37 5d 0d 21 7a 11 |T,D,LSR #17].!z.| 00003e60 53 54 52 42 20 43 2c 5b 4f 2c 52 52 5d 0d 21 84 |STRB C,[O,RR].!.| 00003e70 0f 53 55 42 53 20 41 2c 41 2c 23 31 0d 21 8e 11 |.SUBS A,A,#1.!..| 00003e80 42 4e 45 20 6c 69 6e 65 5f 6c 6f 6f 70 0d 21 98 |BNE line_loop.!.| 00003e90 14 4c 44 4d 46 44 20 31 33 21 2c 7b 38 2d 31 31 |.LDMFD 13!,{8-11| 00003ea0 7d 0d 21 a2 0e 4d 4f 56 20 50 43 2c 52 31 34 0d |}.!..MOV PC,R14.| 00003eb0 21 ac 04 0d 21 b6 04 0d 21 c0 05 5d 0d 21 ca 05 |!...!...!..].!..| 00003ec0 ed 0d 21 d4 09 51 25 3d 50 25 0d 21 de 04 0d 21 |..!..Q%=P%.!...!| 00003ed0 e8 04 0d 21 f2 4d 4e 4c 3d 30 3a 20 20 20 20 3a |...!.MNL=0: :| 00003ee0 54 41 42 3d 32 3a 46 52 45 45 3d 33 3a 4e 52 3d |TAB=2:FREE=3:NR=| 00003ef0 34 3a 49 4e 56 3d 35 3a 43 4f 3d 36 3a 20 20 20 |4:INV=5:CO=6: | 00003f00 4e 3d 37 3a 20 20 20 20 20 58 31 3d 39 3a 59 31 |N=7: X1=9:Y1| 00003f10 3d 31 30 3a 58 32 3d 31 31 3a 59 32 3d 31 32 0d |=10:X2=11:Y2=12.| 00003f20 21 fc 4d 4c 45 3d 30 3a 52 45 3d 31 3a 20 20 4c |!.MLE=0:RE=1: L| 00003f30 3d 32 3a 20 20 20 52 3d 33 3a 58 4c 3d 34 3a 20 |=2: R=3:XL=4: | 00003f40 58 52 3d 35 3a 44 58 4c 3d 36 3a 44 58 52 3d 37 |XR=5:DXL=6:DXR=7| 00003f50 3a 20 4f 3d 38 3a 43 31 3d 39 3a 43 32 3d 31 30 |: O=8:C1=9:C2=10| 00003f60 3a 43 33 3d 31 31 3a 43 34 3d 31 32 0d 22 06 0d |:C3=11:C4=12."..| 00003f70 50 4c 3d 30 3a 50 52 3d 31 0d 22 10 0e 20 51 3d |PL=0:PR=1.".. Q=| 00003f80 31 33 3a 54 3d 31 34 0d 22 1a 09 50 4f 3d 31 33 |13:T=14."..PO=13| 00003f90 0d 22 24 14 e3 20 50 41 53 53 3d 30 20 b8 20 32 |."$.. PASS=0 . 2| 00003fa0 20 88 20 32 0d 22 2e 09 50 25 3d 51 25 0d 22 38 | . 2."..P%=Q%."8| 00003fb0 0d 5b 4f 50 54 20 50 41 53 53 0d 22 42 04 0d 22 |.[OPT PASS."B.."| 00003fc0 4c 16 2e 50 49 58 4c 20 45 51 55 44 20 50 49 58 |L..PIXL EQUD PIX| 00003fd0 50 52 4f 4a 0d 22 56 0c 2e 64 72 61 77 70 69 78 |PROJ."V..drawpix| 00003fe0 0d 22 60 12 53 54 4d 46 44 20 31 33 21 2c 7b 31 |."`.STMFD 13!,{1| 00003ff0 34 7d 0d 22 6a 0e 4c 44 52 20 35 2c 50 49 58 4c |4}."j.LDR 5,PIXL| 00004000 0d 22 74 14 4d 4f 56 20 34 2c 23 25 31 31 31 31 |."t.MOV 4,#%1111| 00004010 31 31 30 30 0d 22 7e 0d 4d 4f 56 20 36 2c 23 4e |1100."~.MOV 6,#N| 00004020 44 0d 22 88 0c 2e 70 69 78 6c 6f 6f 70 0d 22 92 |D."...pixloop.".| 00004030 16 4c 44 4d 49 41 20 35 21 2c 7b 30 2c 31 2c 32 |.LDMIA 5!,{0,1,2| 00004040 2c 33 7d 0d 22 9c 13 53 54 4d 46 44 20 31 33 21 |,3}."..STMFD 13!| 00004050 2c 7b 34 2d 36 7d 0d 22 a6 0b 42 4c 20 6c 69 6e |,{4-6}."..BL lin| 00004060 65 0d 22 b0 13 4c 44 4d 46 44 20 31 33 21 2c 7b |e."..LDMFD 13!,{| 00004070 34 2d 36 7d 0d 22 ba 0f 53 55 42 53 20 36 2c 36 |4-6}."..SUBS 6,6| 00004080 2c 23 31 0d 22 c4 0f 42 4e 45 20 70 69 78 6c 6f |,#1."..BNE pixlo| 00004090 6f 70 0d 22 ce 12 4c 44 4d 46 44 20 31 33 21 2c |op."..LDMFD 13!,| 000040a0 7b 50 43 7d 0d 22 d8 04 0d 22 e2 05 5d 0d 22 ec |{PC}."..."..].".| 000040b0 05 ed 0d 22 f6 09 51 25 3d 50 25 0d 23 00 05 e1 |..."..Q%=P%.#...| 000040c0 0d ff |..| 000040c2