Home » Archimedes archive » Acorn User » AU 1995-12 B.adf » Regulars » StarInfo/Vlietinck/!3dSurf/Fire_ball
StarInfo/Vlietinck/!3dSurf/Fire_ball
This website contains an archive of files for the Acorn Electron, BBC Micro, Acorn Archimedes, Commodore 16 and Commodore 64 computers, which Dominic Ford has rescued from his private collection of floppy disks and cassettes.
Some of these files were originally commercial releases in the 1980s and 1990s, but they are now widely available online. I assume that copyright over them is no longer being asserted. If you own the copyright and would like files to be removed, please contact me.
Tape/disk: | Home » Archimedes archive » Acorn User » AU 1995-12 B.adf » Regulars |
Filename: | StarInfo/Vlietinck/!3dSurf/Fire_ball |
Read OK: | ✔ |
File size: | 42DE bytes |
Load address: | 0000 |
Exec address: | 0000 |
File contents
10REM >Fire_ball 20REM (c) Jan Vlietinck 21REM vlietin@intec.rug.ac.be 60 70REMON ERROR::REPORT:PRINT" at line " ERL:END 71ON ERROR:END 80MODE13+128:MODE 9 90 100 110NR_OBJECTS=2 180SH=4:FIX=2^SH 190lengte=64+16 200DIM PUNT 2000*4*6+4 210 220 230MOTION_SIZE=4*3*4+8 240 250DIM PROJECT 1000*4*2 260DIM MOTION MOTION_SIZE*100+4 270 280DIM Point_Type(3) 290DIM Plane_Type(3) 300 320PROCbuildpunt 330PROCbuildmotion 340PROCass 350CLS:OFF 360REM move drawing object 20 steps ahead of cleanig object 370FOR I=1 TO 15*4-4:A%=MOTION:CALL moveobject:NEXT 380 390DIM C1(16),C2(16),C3(16) 400C1()=0:C2()=0:C3()=0 410FOR I=1 TO 5 420C1(I)=(I+10)*16 430C2(I)=(I+2)*16 440NEXT 450FOR I=1 TO 5 460C1(I+5)=(15)*16 470C2(I+5)=(2*I+5)*16 480C3(I+5)=(I+2)*16 490NEXT 500FOR I=1 TO 5 510C1(I+10)=(15)*16 520C2(I+10)=(15)*16 530C3(I+10)=(I+7)*16 540NEXT 550 560 570M=0:S=0 580FOR C=0 TO 14 590COL=(1+ ((C+M) MOD 15)) 600COLOUR C+1,C1(COL),C2(COL),C3(COL) 610NEXT 620M+=14 630 640REPEAT 650 660 670CALL set2 680A%=MOTION 690CALL moveobjects 700 710A%=MOTION+MOTION_SIZE 720CALL calc_rot_matrix 730A%=A%!48 740CALL transform_clear 750 760IF S=4 THEN 770S=0 780FOR C=0 TO 14 790COL=(1+ ((C+M) MOD 15)) 800COLOUR C+1,C1(COL),C2(COL),C3(COL) 810NEXT 820M+=14 830ENDIF 840S+=1 850 860A%=MOTION 870CALL calc_rot_matrix 880A%=A%!48 890CALL transform_draw 900UNTIL 0 910 920 930REM CALL main 940END 950 960 970 980DEF PROCmain 990 1000FOR PASS=0 TO 2 STEP 2 1010P%=Q% 1020[OPT PASS 1030.PUNTD EQUD PUNT 1040.PROJECTD EQUD PROJECT 1050.MOTIOND EQUD MOTION 1060 1070.main 1080 STMFD 13!,{14} 1090.mainloop 1100 BL set2 ; set display 1120 1130 LDR R0,MOTIOND 1140 BL moveobjects 1150 BL calc_rot_matrix 1160 LDR R0,[R0,#48] 1170 BL transform_draw 1180 1190 LDR R0,MOTIOND 1200 ADD R0,R0,#MOTION_SIZE 1210 BL calc_rot_matrix 1220 LDR R0,[R0,#48] 1230 BL transform_clear 1240 1250 SWI "OS_ReadEscapeState" 1260 BCC mainloop 1270 LDMFD 13!,{PC} 1280 1290 1300] 1310NEXT 1320Q%=P% 1330ENDPROC 1340 1350 1360DEF PROCass 1370DIM Q% 130000 1380DIM INVERS 4*1024 1390DIM DITABLE 4000*16*4 1400DIM CSTABLE 4096*8 1410DIM CTABLE 100*16 1420PROCcalc_invers 1430PROCcalc_cstable 1440PROCcalc_divtable 1450PROCtransform 1460PROCmoveobjects 1470PROCcalc_rot_matrix 1480PROCmain 1490ENDPROC 1500 1510 1520DEF PROCbuildpunt :REM calc coordinates of a sphere, 16x30 vert. 1530P%=PUNT 1540L=lengte*FIX 1550 1560 1570Point_Type(1)=P% 1580PROCOBJ1 1590Point_Type(2)=P% 1600REMPROCOBJ2 1610Point_Type(3)=P% 1620ENDPROC 1630 1640 1650DEF PROCOBJ1 1660M%=16:N%=30 1670REMM%=10:N%=16 1680DK=PI/M%:K=-PI/2+DK 1690[OPT 0 1700DCD 0:DCD 0:DCD -L : REM single lower point 1710] 1720FOR J%=1 TO M%-1 1730SN=SINK*L:CS=COSK*L 1740DH=2*PI/N%:H=0 1750FOR I%=1 TO N% 1760[OPT 0 1770DCD COSH*CS 1780DCD SINH*CS 1790DCD SN 1800] 1810H+=DH 1820NEXT 1830K+=DK 1840NEXT 1850[OPT 0 1860DCD 0:DCD 0:DCD L : REM single upper point 1870DCD (1<<30) 1880] 1890 1900ENDPROC 1910 1920DEF PROCOBJ2 1930N%=1000 1940DH=2*PI/N%:H=0 1950FOR I%=1 TO N% 1960[OPT 0 1970DCD COSH*L/2 1980DCD SINH*L/2 1990DCD 0 2000] 2010H+=DH 2020NEXT 2030[OPT 0 2040DCD (1<<30) 2050] 2060ENDPROC 2070 2080 2090 2100DEF PROCbuildmotion 2110LOCAL PNTR 2120VR=4 2130VT=4 2140TXD=0:TYD=4:TZD=8:DTXD=12:DTYD=16:DTZD=20 2150HXD=24:HYD=28:HZD=32:DHXD=36:DHYD=40:DHZD=44 2160 2170TYPE=1 2180I=1 2190 2200PNTR=MOTION+(I-1)*MOTION_SIZE 2210PNTR!TXD=(-1)^RND(2)*50*FIX : REM TX,TY,TZ 2220PNTR!TYD=(-1)^RND(2)*50*FIX 2230PNTR!TZD=(1+RND(1))*100*FIX 2240PNTR!DTXD=(-1)^RND(2)*(RND(VT*2)+VT)*FIX/10: REM DTX,DTY,DTZ 2250PNTR!DTYD=(-1)^RND(2)*(RND(VT*2)+VT)*FIX/10 2260PNTR!DTZD=(-1)^RND(2)*(RND(VT*2)+VT)*FIX/10 2270PNTR!HXD=0 : REM HX,HY,HZ 2280PNTR!HYD=0 2290PNTR!HZD=0 2300PNTR!DHXD=(-1)^RND(2)*(RND(VR*2)+VR): REM DHX,DHY,DYZ 2310PNTR!DHYD=(-1)^RND(2)*(RND(VR*2)+VR) 2320PNTR!DHZD=(-1)^RND(2)*(RND(VR*2)+VR) 2330PNTR!48=Point_Type(TYPE) 2340 2350REM initial position of drawing and cleaning object is the same 2360PNTRO=PNTR 2370I+=1 2380PNTR=MOTION+(I-1)*MOTION_SIZE 2390FOR J=0 TO 52 STEP 4 2400PNTR!J=PNTRO!J 2410NEXT 2420PNTR!48=Point_Type(TYPE) 2430PNTR!56=1<<31 2440ENDPROC 2450 2460 2470REM Nr of type objects 2480DATA 1 2490 2500 2510DEF PROCcalc_invers 2520K=2<<20 2530FOR I=1 TO 1023:INVERS!(4*I)=K/I+.5:NEXT 2540ENDPROC 2550 2560 2570DEF PROCcalc_cstable 2580F=2*PI/4096:V=2^15 2590T2=CSTABLE+8*1024 2600T3=CSTABLE+8*2048 2610T4=CSTABLE+8*3072 2620FOR H=0 TO 1023 2630K=F*H 2640CS=COS(K)*V:SN=SIN(K)*V 2650CSTABLE!(8*H)=CS 2660CSTABLE!(8*H+4)=SN 2670T2!(8*H)=-SN 2680T2!(8*H+4)=CS 2690T3!(8*H)=-CS 2700T3!(8*H+4)=-SN 2710T4!(8*H)=SN 2720T4!(8*H+4)=-CS 2730NEXT 2740ENDPROC 2750 2760DEF PROCcalc_divtable 2770T=0:N=1:Q=2:I=3:J=4:DIT=5 2780FOR PASS=0 TO 2 STEP 2 2790P%=Q% 2800[OPT PASS 2810.DNRD EQUD 4000*16 2820.DITH EQUD DITABLE 2830.calc_divtable 2840 STMFD 13!,{0-12,14} 2850 LDR DIT,DITH 2860 LDR I,DNRD 2870.DVLOOP2 2880 MOV T,#200<<12 2890 MOV N,I 2900 MOV J,#0 2910 MOV Q,#0 2920.DVLOOP3 2930 CMP N,T 2940 MOVLO N,N,LSL #1 2950 ADDLO J,J,#1 2960 BLO DVLOOP3 2970 MOV N,N,LSR J 2980.DVLOOP1 2990 CMP T,N,LSL J 3000 SUBHS T,T,N,LSL J 3010 ADC Q,Q,Q 3020 SUBS J,J,#1 3030 BPL DVLOOP1 3040 STR Q,[DIT,I,LSL #2] 3050 SUBS I,I,#1 3060 BNE DVLOOP2 3070 LDMFD 13!,{0-12,PC} 3080] 3090NEXT 3100Q%=P% 3110CALL calc_divtable 3120ENDPROC 3130 3140DEF PROCcalc_rot_matrix 3150CHX=0:SHX=1 3160CHY=2:SHY=3 3170CHZ=4:SHZ=5 3180T=6:S=7:H=8 3190DHX=3:DHY=4:DHZ=5 3200HX=9:HY=10:HZ=11 3210TX=9:TY=10:TZ=11 3220CS=12 3230SCR=0:COL=1 3240FOR PASS=0 TO 2 STEP 2 3250P%=Q% 3260[OPT PASS 3270; REM calc 3x4 transformation matrix on the basis of 3280; REM hx,hy,hz and tx,ty,tz of the motion array 3290.CSD EQUD CSTABLE 3300.calc_rot_matrix 3310 STMFD 13!,{0-12,14} 3320 MOV H,0 3330;REM Load angles HX,HY,HZ 3340 ADD T,H,#HXD 3350 LDMIA T,{HX,HY,HZ} 3360;REM Do a modulo 4096 operation on the angles (=> periodic lookup) 3370 MOV S,#4096 3380 SUB S,S,#1 3390;REM Lookup (cosHX,sinHX) (cosHY, sinHY) (cosHZ, sinHZ) 3400 LDR CS,CSD 3410 CMP HX,#0 3420 RSBMI HX,HX,#0 3430 AND HX,HX,S 3440 ADD T,CS,HX,LSL #3 3450 LDMIA T,{CHX,SHX} 3460 RSBMI SHX,SHX,#0 3470 CMP HY,#0 3480 RSBMI HY,HY,#0 3490 AND HY,HY,S 3500 ADD T,CS,HY,LSL #3 3510 LDMIA T,{CHY,SHY} 3520 RSBMI SHY,SHY,#0 3530 CMP HZ,#0 3540 RSBMI HZ,HZ,#0 3550 AND HZ,HZ,S 3560 ADD T,CS,HZ,LSL #3 3570 LDMIA T,{CHZ,SHZ} 3580 RSBMI SHZ,SHZ,#0 3590;REM Load displacement values TX,TY,TZ 3600 ADD T,H,#TXD 3610 LDMIA T,{TX,TY,TZ} 3620;REM ________First ROW____________ 3630;REM cosHY*cosHZ 3640;REM cosHY*sinHZ 3650;REM sinHY 3660;REM TX 3670 MUL T,CHY,CHZ 3680 MOV T,T,ASR #15 3690 MUL S,CHY,SHZ 3700 MOV S,S,LSR #15 3710 ADD T,S,T,LSL #16 3720 STR T,A1D 3730 ADD T,TX,SHY,LSL #16 3740 STR T,A2D 3750;REM _________Second ROW___________ 3760;REM -sinHX*sinHY*cosHZ-cosHX*sinHZ 3770;REM -sinHX*sinHY*sinHZ+cosHX*cosHZ 3780;REM sinHX*cosHY 3790;REM TY 3800 MUL T,SHX,SHY 3810 MOV T,T,ASR #15 3820 MOV S,T 3830 MUL H,CHX,SHZ 3840 MLA T,CHZ,T,H 3850 RSB T,T,#0 3860 MOV T,T,ASR #15 3870 MUL H,CHX,CHZ 3880 MUL S,SHZ,S 3890 SUB S,H,S 3900 MOV S,S,LSR #15 3910 ADD T,S,T,LSL #16 3920 STR T,B1D 3930 MUL T,SHX,CHY 3940 MOV T,T,ASR #15 3950 ADD T,TY,T,LSL #16 3960 STR T,B2D 3970;REM _______ Third ROW ___________ 3980;REM -cosHX*sinHY*cosHZ+sinHX*sinHZ 3990;REM -cosHX*sinHY*sinHZ-sinHX*cosHZ 4000;REM cosHX*cosHY 4010;REM TZ 4020 MUL T,CHX,SHY 4030 MOV T,T,ASR #15 4040 MOV S,T 4050 MUL T,CHZ,T 4060 MUL H,SHX,SHZ 4070 SUB T,H,T 4080 MOV T,T,ASR #15 4090 MUL S,SHZ,S 4100 MLA H,SHX,CHZ,S 4110 RSB S,H,#0 4120 MOV S,S,LSR #15 4130 ADD T,S,T,LSL #16 4140 STR T,C1D 4150 MUL T,CHX,CHY 4160 MOV T,T,ASR #15 4170 ADD T,TZ,T,LSL #16 4180 STR T,C2D 4190 LDMFD 13!,{0-12,PC} 4200] 4210NEXT 4220Q%=P% 4230ENDPROC 4240 4250DEF PROCmoveobjects 4260sentinel=1<<31 4270xmin=100*FIX 4280xmax=100*FIX 4290ymin=100*FIX 4300ymax=100*FIX 4310zmin=0*FIX 4320zmax=256*FIX 4330FOR PASS=0 TO 2 STEP 2 4340P%=Q% 4350[OPT PASS 4360.tmp EQUD 0 4370.moveobjects 4380 STMFD 13!,{0-12} 4390 STR 13,tmp 4400 MOV 12,0 4410.move_loop 4420 LDMIA 12,{0,1,2,3,4,5,6,7,8,9,10,11} 4430 CMP 0,#sentinel 4440 BEQ move_end 4450 4460 ADD 0,0,3 ; x=x+dx 4470 ADD 13,0,#xmin 4480 CMP 13,#xmax+xmin ; if x<xmin or x>xmax then 4490 RSBHI 3,3,#0 ; dx=-dx; x=x+2*dx 4500 ADDHI 0,0,3,LSL #1 4510 4520 ADD 1,1,4 4530 ADD 13,1,#ymin 4540 CMP 13,#ymax+ymin 4550 RSBHI 4,4,#0 4560 ADDHI 1,1,4,LSL #1 4570 4580 ADD 2,2,5 4590 SUB 13,2,#zmin 4600 CMP 13,#zmax-zmin 4610 RSBHI 5,5,#0 4620 ADDHI 2,2,5,LSL #1 4630 4640 ADD 6,6,9 ; hx=hx+dhx 4650 ADD 7,7,10 4660 ADD 8,8,11 4670 STMIA 12,{0,1,2,3,4,5,6,7,8} 4680 ADD 12,12,#MOTION_SIZE 4690 4700 BAL move_loop 4710 4720.move_end LDR 13,tmp 4730 LDMFD 13!,{0-12} 4740 MOV PC,R14 4750 4760.moveobject 4770 STMFD 13!,{0-12} 4780 STR 13,tmp 4790 MOV 12,0 4800 4810 LDMIA 12,{0,1,2,3,4,5,6,7,8,9,10,11} 4820 4830 ADD 0,0,3 ; x=x+dx 4840 ADD 13,0,#xmin 4850 CMP 13,#xmax+xmin ; if x<xmin or x>xmax then 4860 RSBHI 3,3,#0 ; dx=-dx; x=x+2*dx 4870 ADDHI 0,0,3,LSL #1 4880 4890 ADD 1,1,4 4900 ADD 13,1,#ymin 4910 CMP 13,#ymax+ymin 4920 RSBHI 4,4,#0 4930 ADDHI 1,1,4,LSL #1 4940 4950 ADD 2,2,5 4960 SUB 13,2,#zmin 4970 CMP 13,#zmax-zmin 4980 RSBHI 5,5,#0 4990 ADDHI 2,2,5,LSL #1 5000 5010 ADD 6,6,9 ; hx=hx+dhx 5020 ADD 7,7,10 5030 ADD 8,8,11 5040 STMIA 12,{0,1,2,3,4,5,6,7,8} 5050 5060 LDR 13,tmp 5070 LDMFD 13!,{0-12} 5080 MOV PC,R14 5090] 5100 5110 5120NEXT 5130Q%=P% 5140ENDPROC 5150 5160 5170 5180DEF PROCtransform 5190A1=0:A2=1:B1=2:B2=3:C1=4:C2=5:T=6:DIT=7:A=8:B=9 5200U=10:V=11:W=12:X=11:Y=13:Z=14 5210FOR PASS=0 TO 2 STEP 2 5220P%=Q% 5230[OPT PASS 5240.A1D EQUD 0:.A2D EQUD 0 5250.B1D EQUD 0:.B2D EQUD 0 5260.C1D EQUD 0:.C2D EQUD 0 5270.DITD EQUD DITABLE 5280.VD EQUD 0 5290.SP EQUD 0 5300.LK EQUD 0 5310 5320.screen1 EQUD 148:EQUD -1 5330.screen EQUD 0 5340.set2 5350ADR R0,screen1:ADR R1,screen:SWI "OS_ReadVduVariables" 5360MOV PC,R14 5370 5380.COLD EQUD 15 5390.CTEL EQUD 0 5400 5410.transform_draw 5420 STMFD 13!,{0-12,14} 5430 MOV A,0 5440 5450 5460 STR 13,SP 5470 ADR T,A1D 5480 LDMIA T,{A1,A2,B1,B2,C1,C2,DIT} 5490 LDMIA (A)!,{X,Y,Z} 5500 LDR B,screen 5510.trans_draw 5520 MOV T,C1,ASR #16 ; REM z transformed 5530 MUL W,T,X 5540 MOV T,C1,LSL #16 5550 MOV T,T,ASR #16 5560 MLA W,Y,T,W 5570 MOV T,C2,ASR #16 5580 MLA W,Z,T,W 5590 MOV T,C2,LSL #16 5600 MOV T,T,ASR #16 5610 ADDS W,T,W,ASR #15 5620 CMP W,#10*FIX 5630 BMI nodraw 5640 5650 MOV T,A1,ASR #16 ; REM x transformed 5660 MUL U,X,T 5670 MOV T,A1,LSL #16 5680 MOV T,T,ASR #16 5690 MLA U,Y,T,U 5700 MOV T,A2,ASR #16 5710 MLA U,Z,T,U 5720 MOV T,A2,LSL #16 5730 MOV T,T,ASR #16 5740 ADD U,T,U,ASR #15 5750 5760 MOV T,B1,ASR #16 ; REM y transformed 5770 MUL V,T,X 5780 MOV T,B1,LSL #16 5790 MOV T,T,ASR #16 5800 MLA V,Y,T,V 5810 MOV T,B2,ASR #16 5820 MLA V,Z,T,V 5830 MOV T,B2,LSL #16 5840 MOV T,T,ASR #16 5850 ADD V,T,V,ASR #15 5860 5870 LDR W,[DIT,W,LSL #2] ; REM perspective transformation 5880 MUL U,W,U 5890 MUL V,W,V 5900 MOV U,U,ASR #12 5910 MOV V,V,ASR #12 5920 ADD U,U,#160 5930 RSB V,V,#128 5940 5950 CMP U,#320 ; REM clipping and plotting 5960 CMPLO V,#256 5970 ADDLO T,V,V,LSL #2 5980 ADDLO T,U,T,LSL #6 5990 BHS nodraw 6000 6010 LDRB Z,COLD 6020 6030 LDRB W,[B,T,LSR #1] 6040 TST U,#1 6050 BICEQ W,W,#15 6060 BICNE W,W,#15*16 6070 ORREQ W,W,Z 6080 ORRNE W,W,Z,LSL #4 6090 STRB W,[B,T,LSR #1] 6100 6110.nodraw LDMIA (A)!,{X,Y,Z} ;REM U colour previous point 6120 CMP X,#1<<30 6130 BNE trans_draw 6140 6150 LDR 0,CTEL 6160 ADD 0,0,#1 6170 CMP 0,#4 6180 MOVEQ 0,#0 6190 STR 0,CTEL 6200 BNE skip 6210 6220 LDR 0,COLD 6230 ADD 0,0,#1 6240 CMP 0,#16 6250 MOVEQ 0,#1 6260 STR 0,COLD 6270 6280.skip 6290 LDR 13,SP 6300 LDMFD 13!,{0-12,PC} 6310 6320.transform_clear 6330 STMFD 13!,{0-12,14} 6340 MOV A,0 6350 STR 13,SP 6360 ADR T,A1D 6370 LDMIA T,{A1,A2,B1,B2,C1,C2,DIT} 6380 LDMIA (A)!,{X,Y,Z} 6390 LDR B,screen 6400.trans_clear 6410 MOV T,C1,ASR #16 ; REM z transformed 6420 MUL W,T,X 6430 MOV T,C1,LSL #16 6440 MOV T,T,ASR #16 6450 MLA W,Y,T,W 6460 MOV T,C2,ASR #16 6470 MLA W,Z,T,W 6480 MOV T,C2,LSL #16 6490 MOV T,T,ASR #16 6500 ADDS W,T,W,ASR #15 6510 CMP W,#10*FIX 6520 BMI noclear 6530 6540 MOV T,A1,ASR #16 ; REM x transformed 6550 MUL U,X,T 6560 MOV T,A1,LSL #16 6570 MOV T,T,ASR #16 6580 MLA U,Y,T,U 6590 MOV T,A2,ASR #16 6600 MLA U,Z,T,U 6610 MOV T,A2,LSL #16 6620 MOV T,T,ASR #16 6630 ADD U,T,U,ASR #15 6640 6650 MOV T,B1,ASR #16 ; REM y transformed 6660 MUL V,T,X 6670 MOV T,B1,LSL #16 6680 MOV T,T,ASR #16 6690 MLA V,Y,T,V 6700 MOV T,B2,ASR #16 6710 MLA V,Z,T,V 6720 MOV T,B2,LSL #16 6730 MOV T,T,ASR #16 6740 ADD V,T,V,ASR #15 6750 6760 LDR W,[DIT,W,LSL #2] ; REM perspective transformation 6770 MUL U,W,U 6780 MUL V,W,V 6790 MOV U,U,ASR #12 6800 MOV V,V,ASR #12 6810 ADD U,U,#160 6820 RSB V,V,#128 6830 6840 CMP U,#320 ; REM clipping and plotting 6850 CMPLO V,#256 6860 ADDLO T,V,V,LSL #2 6870 ADDLO T,U,T,LSL #6 6880 BHS noclear 6890 6900 LDR Z,COLD 6910 ADD Z,Z,#1 6920 CMP Z,#16 6930 MOVEQ Z,#1 6940 6950 LDRB W,[B,T,LSR #1] 6960 TST U,#1 6970 BNE odd 6980 AND Y,W,#15 6990 CMP Y,Z 7000 BNE noclear ;REM only clear a pixel if it is 7010 BIC W,W,#15 ;REM not yet overwritten 7020 STRB W,[B,T,LSR #1] 7030 7040.noclear LDMIA (A)!,{X,Y,Z} ;REM U colour previous point 7050 CMP X,#1<<30 7060 BNE trans_clear 7070 LDR 13,SP 7080 LDMFD 13!,{0-12,PC} 7090 7100.odd 7110 AND Y,W,#15*16 7120 CMP Y,Z,LSL #4 7130 BNE noclear 7140 BIC W,W,#15*16 7150 STRB W,[B,T,LSR #1] 7160 LDMIA (A)!,{X,Y,Z} ;REM U colour previous point 7170 CMP X,#1<<30 7180 BNE trans_clear 7190 LDR 13,SP 7200 LDMFD 13!,{0-12,PC} 7210 7220 7230] 7240NEXT 7250Q%=P% 7260ENDPROC 7270 7280 7290 7300 7310
� >Fire_ball � (c) Jan Vlietinck � vlietin@intec.rug.ac.be < F.�ON ERROR::REPORT:PRINT" at line " ERL:END G � �:� P�13+128:� 9 Z d nNR_OBJECTS=2 �SH=4:FIX=2^SH �lengte=64+16 �� PUNT 2000*4*6+4 � � �MOTION_SIZE=4*3*4+8 � �� PROJECT 1000*4*2 � MOTION MOTION_SIZE*100+4 � Point_Type(3) "� Plane_Type(3) , @�buildpunt J�buildmotion T�ass ^�:� h:� move drawing object 20 steps ahead of cleanig object r+� I=1 � 15*4-4:A%=MOTION:� moveobject:� | �� C1(16),C2(16),C3(16) �C1()=0:C2()=0:C3()=0 � � I=1 � 5 �C1(I)=(I+10)*16 �C2(I)=(I+2)*16 �� � � I=1 � 5 �C1(I+5)=(15)*16 �C2(I+5)=(2*I+5)*16 �C3(I+5)=(I+2)*16 �� � � I=1 � 5 �C1(I+10)=(15)*16 C2(I+10)=(15)*16 C3(I+10)=(I+7)*16 � & 0 :M=0:S=0 D� C=0 � 14 NCOL=(1+ ((C+M) � 15)) X!� C+1,C1(COL),C2(COL),C3(COL) b� l M+=14 v �� � � � � set2 � A%=MOTION �� moveobjects � �A%=MOTION+MOTION_SIZE �� calc_rot_matrix �A%=A%!48 �� transform_clear � �� S=4 � S=0 � C=0 � 14 COL=(1+ ((C+M) � 15)) !� C+1,C1(COL),C2(COL),C3(COL) *� 4 M+=14 >� HS+=1 R \ A%=MOTION f� calc_rot_matrix pA%=A%!48 z� transform_draw �� 0 � � �� CALL main �� � � � �� �main � �� PASS=0 � 2 � 2 � P%=Q% � [OPT PASS .PUNTD EQUD PUNT .PROJECTD EQUD PROJECT .MOTIOND EQUD MOTION $ . .main 8 STMFD 13!,{14} B .mainloop L: BL set2 ; set display ` j" LDR R0,MOTIOND t# BL moveobjects ~' BL calc_rot_matrix �# LDR R0,[R0,#48] �& BL transform_draw � �" LDR R0,MOTIOND �* ADD R0,R0,#MOTION_SIZE �' BL calc_rot_matrix �# LDR R0,[R0,#48] �' BL transform_clear � �, SWI "OS_ReadEscapeState" � BCC mainloop � LDMFD 13!,{PC} ] � ( Q%=P% 2� < F P � �ass Z� Q% 130000 d� INVERS 4*1024 n� DITABLE 4000*16*4 x� CSTABLE 4096*8 �� CTABLE 100*16 ��calc_invers ��calc_cstable ��calc_divtable ��transform ��moveobjects ��calc_rot_matrix � �main �� � � �?� �buildpunt :� calc coordinates of a sphere, 16x30 vert. �P%=PUNT L=lengte*FIX "Point_Type(1)=P% , �OBJ1 6Point_Type(2)=P% @ �PROCOBJ2 JPoint_Type(3)=P% T� ^ h r� �OBJ1 |M%=16:N%=30 ��M%=10:N%=16 �DK=�/M%:K=-�/2+DK � [OPT 0 �3DCD 0:DCD 0:DCD -L : � single lower point �] �� J%=1 � M%-1 �SN=�K*L:CS=�K*L �DH=2*�/N%:H=0 �� I%=1 � N% � [OPT 0 � DCD �H*CS � DCD �H*CS � DCD SN ] H+=DH � & K+=DK 0� : [OPT 0 D3DCD 0:DCD 0:DCD L : � single upper point NDCD (1<<30) X] b l� v �� �OBJ2 �N%=1000 �DH=2*�/N%:H=0 �� I%=1 � N% � [OPT 0 �DCD �H*L/2 �DCD �H*L/2 � DCD 0 �] � H+=DH �� � [OPT 0 �DCD (1<<30) ] � * 4� �buildmotion > � PNTR HVR=4 RVT=4 \-TXD=0:TYD=4:TZD=8:DTXD=12:DTYD=16:DTZD=20 f0HXD=24:HYD=28:HZD=32:DHXD=36:DHYD=40:DHZD=44 p z TYPE=1 �I=1 � �!PNTR=MOTION+(I-1)*MOTION_SIZE �8PNTR!TXD=(-1)^�(2)*50*FIX : � TX,TY,TZ �PNTR!TYD=(-1)^�(2)*50*FIX �PNTR!TZD=(1+�(1))*100*FIX �:PNTR!DTXD=(-1)^�(2)*(�(VT*2)+VT)*FIX/10: � DTX,DTY,DTZ �+PNTR!DTYD=(-1)^�(2)*(�(VT*2)+VT)*FIX/10 �+PNTR!DTZD=(-1)^�(2)*(�(VT*2)+VT)*FIX/10 �6PNTR!HXD=0 : � HX,HY,HZ �PNTR!HYD=0 �PNTR!HZD=0 �3PNTR!DHXD=(-1)^�(2)*(�(VR*2)+VR): � DHX,DHY,DYZ $PNTR!DHYD=(-1)^�(2)*(�(VR*2)+VR) $PNTR!DHZD=(-1)^�(2)*(�(VR*2)+VR) PNTR!48=Point_Type(TYPE) $ .A� initial position of drawing and cleaning object is the same 8PNTRO=PNTR BI+=1 L!PNTR=MOTION+(I-1)*MOTION_SIZE V� J=0 � 52 � 4 `PNTR!J=PNTRO!J j� tPNTR!48=Point_Type(TYPE) ~PNTR!56=1<<31 �� � � �� Nr of type objects �� 1 � � �� �calc_invers �K=2<<20 �&� I=1 � 1023:INVERS!(4*I)=K/I+.5:� �� � � �calc_cstable F=2*�/4096:V=2^15 T2=CSTABLE+8*1024 (T3=CSTABLE+8*2048 2T4=CSTABLE+8*3072 <� H=0 � 1023 F K=F*H PCS=�(K)*V:SN=�(K)*V ZCSTABLE!(8*H)=CS dCSTABLE!(8*H+4)=SN nT2!(8*H)=-SN xT2!(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 �� PASS=0 � 2 � 2 � P%=Q% � [OPT PASS �.DNRD EQUD 4000*16 .DITH EQUD DITABLE .calc_divtable % STMFD 13!,{0-12,14} " LDR DIT,DITH , LDR I,DNRD 6.DVLOOP2 @" MOV T,#200<<12 J MOV N,I T MOV J,#0 ^ MOV Q,#0 h.DVLOOP3 r 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 � SUBS J,J,#1 � BPL DVLOOP1 �( STR Q,[DIT,I,LSL #2] � SUBS I,I,#1 � BNE DVLOOP2 �% LDMFD 13!,{0-12,PC} ] � Q%=P% &� calc_divtable 0� : D� �calc_rot_matrix NCHX=0:SHX=1 XCHY=2:SHY=3 bCHZ=4:SHZ=5 lT=6:S=7:H=8 vDHX=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 �6; � calc 3x4 transformation matrix on the basis of �1; � hx,hy,hz and tx,ty,tz of the motion array �.CSD EQUD CSTABLE �.calc_rot_matrix �% STMFD 13!,{0-12,14} � MOV H,0 ;� Load angles HX,HY,HZ ADD T,H,#HXD $ LDMIA T,{HX,HY,HZ} D;� Do a modulo 4096 operation on the angles (=> periodic lookup) * MOV S,#4096 4 SUB S,S,#1 >9;� Lookup (cosHX,sinHX) (cosHY, sinHY) (cosHZ, sinHZ) H LDR CS,CSD R CMP HX,#0 \ RSBMI HX,HX,#0 f � HX,HX,S p& ADD T,CS,HX,LSL #3 z# LDMIA T,{CHX,SHX} �" RSBMI SHX,SHX,#0 � CMP HY,#0 � RSBMI HY,HY,#0 � � HY,HY,S �& ADD T,CS,HY,LSL #3 �# LDMIA T,{CHY,SHY} �" RSBMI SHY,SHY,#0 � CMP HZ,#0 � RSBMI HZ,HZ,#0 � � HZ,HZ,S �& ADD T,CS,HZ,LSL #3 �# LDMIA T,{CHZ,SHZ} �" RSBMI SHZ,SHZ,#0 (;� Load displacement values TX,TY,TZ ADD T,H,#TXD $ LDMIA T,{TX,TY,TZ} $$;� ________First ROW____________ .;� cosHY*cosHZ 8;� cosHY*sinHZ B;� sinHY L ;� TX V! MUL T,CHY,CHZ `# MOV T,T,ASR #15 j! MUL S,CHY,SHZ t# MOV S,S,LSR #15 ~% ADD T,S,T,LSL #16 � STR T,A1D �( ADD T,TX,SHY,LSL #16 � STR T,A2D �%;� _________Second ROW___________ �%;� -sinHX*sinHY*cosHZ-cosHX*sinHZ �%;� -sinHX*sinHY*sinHZ+cosHX*cosHZ �;� sinHX*cosHY � ;� TY �! 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 ! MUL H,CHX,CHZ ( MUL S,SHZ,S 2 SUB S,H,S <# MOV S,S,LSR #15 F% ADD T,S,T,LSL #16 P STR T,B1D Z! MUL T,SHX,CHY d# MOV T,T,ASR #15 n& ADD T,TY,T,LSL #16 x STR T,B2D �$;� _______ Third ROW ___________ �%;� -cosHX*sinHY*cosHZ+sinHX*sinHZ �%;� -cosHX*sinHY*sinHZ-sinHX*cosHZ �;� cosHX*cosHY � ;� TZ �! MUL T,CHX,SHY �# MOV T,T,ASR #15 � MOV S,T � MUL T,CHZ,T �! MUL H,SHX,SHZ � SUB T,H,T �# MOV T,T,ASR #15 � MUL S,SHZ,S # MLA H,SHX,CHZ,S RSB S,H,#0 # MOV S,S,LSR #15 "% ADD T,S,T,LSL #16 , STR T,C1D 6! MUL T,CHX,CHY @# MOV T,T,ASR #15 J& ADD T,TZ,T,LSL #16 T STR T,C2D ^% LDMFD 13!,{0-12,PC} h] r� | Q%=P% �� � �� �moveobjects �sentinel=1<<31 �xmin=100*FIX �xmax=100*FIX �ymin=100*FIX �ymax=100*FIX �zmin=0*FIX �zmax=256*FIX �� PASS=0 � 2 � 2 � P%=Q% � [OPT PASS .tmp EQUD 0 .moveobjects " STMFD 13!,{0-12} & STR 13,tmp 0 MOV 12,0 :.move_loop D6 LDMIA 12,{0,1,2,3,4,5,6,7,8,9,10,11} N# CMP 0,#sentinel X BEQ move_end b l0 ADD 0,0,3 ; x=x+dx v" ADD 13,0,#xmin �B CMP 13,#xmax+xmin ; if x<xmin or x>xmax then �: RSBHI 3,3,#0 ; dx=-dx; x=x+2*dx �$ ADDHI 0,0,3,LSL #1 � � ADD 1,1,4 �" ADD 13,1,#ymin �% CMP 13,#ymax+ymin � RSBHI 4,4,#0 �$ ADDHI 1,1,4,LSL #1 � � ADD 2,2,5 �" SUB 13,2,#zmin �% CMP 13,#zmax-zmin RSBHI 5,5,#0 $ ADDHI 2,2,5,LSL #1 2 ADD 6,6,9 ; hx=hx+dhx * ADD 7,7,10 4 ADD 8,8,11 >. STMIA 12,{0,1,2,3,4,5,6,7,8} H* ADD 12,12,#MOTION_SIZE R \! BAL move_loop f p.move_end LDR 13,tmp z" LDMFD 13!,{0-12} � MOV PC,R14 � �.moveobject �" STMFD 13!,{0-12} � STR 13,tmp � MOV 12,0 � �6 LDMIA 12,{0,1,2,3,4,5,6,7,8,9,10,11} � �0 ADD 0,0,3 ; x=x+dx �" ADD 13,0,#xmin �B CMP 13,#xmax+xmin ; if x<xmin or x>xmax then �: RSBHI 3,3,#0 ; dx=-dx; x=x+2*dx $ ADDHI 0,0,3,LSL #1 ADD 1,1,4 $" ADD 13,1,#ymin .% CMP 13,#ymax+ymin 8 RSBHI 4,4,#0 B$ ADDHI 1,1,4,LSL #1 L V ADD 2,2,5 `" SUB 13,2,#zmin j% CMP 13,#zmax-zmin t RSBHI 5,5,#0 ~$ ADDHI 2,2,5,LSL #1 � �2 ADD 6,6,9 ; hx=hx+dhx � ADD 7,7,10 � ADD 8,8,11 �. STMIA 12,{0,1,2,3,4,5,6,7,8} � � LDR 13,tmp �" LDMFD 13!,{0-12} � MOV PC,R14 �] � � � Q%=P% � ( 2 <� �transform F3A1=0:A2=1:B1=2:B2=3:C1=4:C2=5:T=6:DIT=7:A=8:B=9 P!U=10:V=11:W=12:X=11:Y=13:Z=14 Z� PASS=0 � 2 � 2 d P%=Q% n [OPT PASS x.A1D EQUD 0:.A2D EQUD 0 �.B1D EQUD 0:.B2D EQUD 0 �.C1D EQUD 0:.C2D EQUD 0 �.DITD EQUD DITABLE �.VD EQUD 0 �.SP EQUD 0 �.LK EQUD 0 � �.screen1 EQUD 148:EQUD -1 �.screen EQUD 0 � .set2 �:ADR R0,screen1:ADR R1,screen:SWI "OS_ReadVduVariables" �MOV PC,R14 � .COLD EQUD 15 .CTEL EQUD 0 ".transform_draw ,% STMFD 13!,{0-12,14} 6 MOV A,0 @ J T STR 13,SP ^ ADR T,A1D h1 LDMIA T,{A1,A2,B1,B2,C1,C2,DIT} r$ LDMIA (A)!,{X,Y,Z} | LDR B,screen �.trans_draw �< MOV T,C1,ASR #16 ; � z transformed � 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 �$ MOV T,C2,LSL #16 �# MOV T,T,ASR #16 �% ADDS W,T,W,ASR #15 �! CMP W,#10*FIX � BMI nodraw : MOV T,A1,ASR #16 ; � x transformed MUL U,X,T &$ MOV T,A1,LSL #16 0# MOV T,T,ASR #16 : MLA U,Y,T,U D$ MOV T,A2,ASR #16 N MLA U,Z,T,U X$ MOV T,A2,LSL #16 b# MOV T,T,ASR #16 l% ADD U,T,U,ASR #15 v �8 MOV T,B1,ASR #16 ; � y transformed � MUL V,T,X �$ 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 � �K LDR W,[DIT,W,LSL #2] ; � perspective transformation � MUL U,W,U MUL V,W,V # MOV U,U,ASR #12 # MOV V,V,ASR #12 ADD U,U,#160 * RSB V,V,#128 4 >F CMP U,#320 ; � clipping and plotting H CMPLO V,#256 R$ ADDLO T,V,V,LSL #2 \$ ADDLO T,U,T,LSL #6 f BHS nodraw p z LDRB Z,COLD � �& LDRB W,[B,T,LSR #1] � TST U,#1 � BICEQ W,W,#15 �" BICNE W,W,#15*16 � �REQ W,W,Z �# �RNE W,W,Z,LSL #4 �& STRB W,[B,T,LSR #1] � �F.nodraw LDMIA (A)!,{X,Y,Z} ;� U colour previous point � CMP X,#1<<30 �" BNE trans_draw � LDR 0,CTEL ADD 0,0,#1 CMP 0,#4 $ �Q 0,#0 . STR 0,CTEL 8 BNE skip B L LDR 0,COLD V ADD 0,0,#1 ` CMP 0,#16 j �Q 0,#1 t STR 0,COLD ~ � .skip � LDR 13,SP �% LDMFD 13!,{0-12,PC} � �.transform_clear �% STMFD 13!,{0-12,14} � MOV A,0 � STR 13,SP � ADR T,A1D �1 LDMIA T,{A1,A2,B1,B2,C1,C2,DIT} �$ LDMIA (A)!,{X,Y,Z} � LDR B,screen .trans_clear < MOV T,C1,ASR #16 ; � z transformed MUL W,T,X $ MOV T,C1,LSL #16 (# MOV T,T,ASR #16 2 MLA W,Y,T,W <$ MOV T,C2,ASR #16 F MLA W,Z,T,W P$ MOV T,C2,LSL #16 Z# MOV T,T,ASR #16 d% ADDS W,T,W,ASR #15 n! CMP W,#10*FIX x BMI noclear � �: MOV T,A1,ASR #16 ; � x transformed � MUL U,X,T �$ MOV T,A1,LSL #16 �# MOV 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 � �8 MOV T,B1,ASR #16 ; � y transformed MUL V,T,X $ MOV T,B1,LSL #16 # MOV T,T,ASR #16 " MLA V,Y,T,V ,$ MOV T,B2,ASR #16 6 MLA V,Z,T,V @$ MOV T,B2,LSL #16 J# MOV T,T,ASR #16 T% ADD V,T,V,ASR #15 ^ hK LDR W,[DIT,W,LSL #2] ; � perspective transformation r MUL U,W,U | MUL V,W,V �# MOV U,U,ASR #12 �# MOV V,V,ASR #12 � ADD U,U,#160 � RSB V,V,#128 � �F CMP U,#320 ; � clipping and plotting � CMPLO V,#256 �$ ADDLO T,V,V,LSL #2 �$ ADDLO T,U,T,LSL #6 � BHS noclear � � LDR Z,COLD � ADD Z,Z,#1 CMP Z,#16 �Q Z,#1 && LDRB W,[B,T,LSR #1] 0 TST U,#1 : BNE odd D � Y,W,#15 N CMP Y,Z XJ BNE noclear ;� only clear a pixel if it is bB BIC W,W,#15 ;� not yet overwritten l& STRB W,[B,T,LSR #1] v �F.noclear LDMIA (A)!,{X,Y,Z} ;� U colour previous point � CMP X,#1<<30 �# BNE trans_clear � LDR 13,SP �% LDMFD 13!,{0-12,PC} � �.odd � � Y,W,#15*16 �" CMP Y,Z,LSL #4 � BNE noclear �" BIC W,W,#15*16 �& STRB W,[B,T,LSR #1] �F LDMIA (A)!,{X,Y,Z} ;� U colour previous point CMP X,#1<<30 # BNE trans_clear LDR 13,SP % LDMFD 13!,{0-12,PC} * 4 >] H� R Q%=P% \� f p z � � �
00000000 0d 00 0a 10 f4 20 3e 46 69 72 65 5f 62 61 6c 6c |..... >Fire_ball| 00000010 0d 00 14 17 f4 20 28 63 29 20 4a 61 6e 20 56 6c |..... (c) Jan Vl| 00000020 69 65 74 69 6e 63 6b 0d 00 15 1d f4 20 76 6c 69 |ietinck..... vli| 00000030 65 74 69 6e 40 69 6e 74 65 63 2e 72 75 67 2e 61 |etin@intec.rug.a| 00000040 63 2e 62 65 0d 00 3c 04 0d 00 46 2e f4 4f 4e 20 |c.be..<...F..ON | 00000050 45 52 52 4f 52 3a 3a 52 45 50 4f 52 54 3a 50 52 |ERROR::REPORT:PR| 00000060 49 4e 54 22 20 61 74 20 6c 69 6e 65 20 22 20 45 |INT" at line " E| 00000070 52 4c 3a 45 4e 44 0d 00 47 09 ee 20 85 3a e0 0d |RL:END..G.. .:..| 00000080 00 50 0f eb 31 33 2b 31 32 38 3a eb 20 39 0d 00 |.P..13+128:. 9..| 00000090 5a 04 0d 00 64 04 0d 00 6e 10 4e 52 5f 4f 42 4a |Z...d...n.NR_OBJ| 000000a0 45 43 54 53 3d 32 0d 00 b4 11 53 48 3d 34 3a 46 |ECTS=2....SH=4:F| 000000b0 49 58 3d 32 5e 53 48 0d 00 be 10 6c 65 6e 67 74 |IX=2^SH....lengt| 000000c0 65 3d 36 34 2b 31 36 0d 00 c8 16 de 20 50 55 4e |e=64+16..... PUN| 000000d0 54 20 20 32 30 30 30 2a 34 2a 36 2b 34 0d 00 d2 |T 2000*4*6+4...| 000000e0 04 0d 00 dc 04 0d 00 e6 17 4d 4f 54 49 4f 4e 5f |.........MOTION_| 000000f0 53 49 5a 45 3d 34 2a 33 2a 34 2b 38 0d 00 f0 04 |SIZE=4*3*4+8....| 00000100 0d 00 fa 17 de 20 50 52 4f 4a 45 43 54 20 20 31 |..... PROJECT 1| 00000110 30 30 30 2a 34 2a 32 0d 01 04 20 de 20 4d 4f 54 |000*4*2... . MOT| 00000120 49 4f 4e 20 20 20 4d 4f 54 49 4f 4e 5f 53 49 5a |ION MOTION_SIZ| 00000130 45 2a 31 30 30 2b 34 0d 01 0e 04 0d 01 18 13 de |E*100+4.........| 00000140 20 50 6f 69 6e 74 5f 54 79 70 65 28 33 29 0d 01 | Point_Type(3)..| 00000150 22 13 de 20 50 6c 61 6e 65 5f 54 79 70 65 28 33 |".. Plane_Type(3| 00000160 29 0d 01 2c 04 0d 01 40 0e f2 62 75 69 6c 64 70 |)..,...@..buildp| 00000170 75 6e 74 0d 01 4a 10 f2 62 75 69 6c 64 6d 6f 74 |unt..J..buildmot| 00000180 69 6f 6e 0d 01 54 08 f2 61 73 73 0d 01 5e 07 db |ion..T..ass..^..| 00000190 3a 87 0d 01 68 3a f4 20 6d 6f 76 65 20 64 72 61 |:...h:. move dra| 000001a0 77 69 6e 67 20 6f 62 6a 65 63 74 20 32 30 20 73 |wing object 20 s| 000001b0 74 65 70 73 20 61 68 65 61 64 20 6f 66 20 63 6c |teps ahead of cl| 000001c0 65 61 6e 69 67 20 6f 62 6a 65 63 74 0d 01 72 2b |eanig object..r+| 000001d0 e3 20 49 3d 31 20 b8 20 31 35 2a 34 2d 34 3a 41 |. I=1 . 15*4-4:A| 000001e0 25 3d 4d 4f 54 49 4f 4e 3a d6 20 6d 6f 76 65 6f |%=MOTION:. moveo| 000001f0 62 6a 65 63 74 3a ed 0d 01 7c 04 0d 01 86 1a de |bject:...|......| 00000200 20 43 31 28 31 36 29 2c 43 32 28 31 36 29 2c 43 | C1(16),C2(16),C| 00000210 33 28 31 36 29 0d 01 90 18 43 31 28 29 3d 30 3a |3(16)....C1()=0:| 00000220 43 32 28 29 3d 30 3a 43 33 28 29 3d 30 0d 01 9a |C2()=0:C3()=0...| 00000230 0d e3 20 49 3d 31 20 b8 20 35 0d 01 a4 13 43 31 |.. I=1 . 5....C1| 00000240 28 49 29 3d 28 49 2b 31 30 29 2a 31 36 0d 01 ae |(I)=(I+10)*16...| 00000250 12 43 32 28 49 29 3d 28 49 2b 32 29 2a 31 36 0d |.C2(I)=(I+2)*16.| 00000260 01 b8 05 ed 0d 01 c2 0d e3 20 49 3d 31 20 b8 20 |......... I=1 . | 00000270 35 0d 01 cc 13 43 31 28 49 2b 35 29 3d 28 31 35 |5....C1(I+5)=(15| 00000280 29 2a 31 36 0d 01 d6 16 43 32 28 49 2b 35 29 3d |)*16....C2(I+5)=| 00000290 28 32 2a 49 2b 35 29 2a 31 36 0d 01 e0 14 43 33 |(2*I+5)*16....C3| 000002a0 28 49 2b 35 29 3d 28 49 2b 32 29 2a 31 36 0d 01 |(I+5)=(I+2)*16..| 000002b0 ea 05 ed 0d 01 f4 0d e3 20 49 3d 31 20 b8 20 35 |........ I=1 . 5| 000002c0 0d 01 fe 14 43 31 28 49 2b 31 30 29 3d 28 31 35 |....C1(I+10)=(15| 000002d0 29 2a 31 36 0d 02 08 14 43 32 28 49 2b 31 30 29 |)*16....C2(I+10)| 000002e0 3d 28 31 35 29 2a 31 36 0d 02 12 15 43 33 28 49 |=(15)*16....C3(I| 000002f0 2b 31 30 29 3d 28 49 2b 37 29 2a 31 36 0d 02 1c |+10)=(I+7)*16...| 00000300 05 ed 0d 02 26 04 0d 02 30 04 0d 02 3a 0b 4d 3d |....&...0...:.M=| 00000310 30 3a 53 3d 30 0d 02 44 0e e3 20 43 3d 30 20 b8 |0:S=0..D.. C=0 .| 00000320 20 31 34 0d 02 4e 19 43 4f 4c 3d 28 31 2b 20 28 | 14..N.COL=(1+ (| 00000330 28 43 2b 4d 29 20 83 20 31 35 29 29 0d 02 58 21 |(C+M) . 15))..X!| 00000340 fb 20 43 2b 31 2c 43 31 28 43 4f 4c 29 2c 43 32 |. C+1,C1(COL),C2| 00000350 28 43 4f 4c 29 2c 43 33 28 43 4f 4c 29 0d 02 62 |(COL),C3(COL)..b| 00000360 05 ed 0d 02 6c 09 4d 2b 3d 31 34 0d 02 76 04 0d |....l.M+=14..v..| 00000370 02 80 05 f5 0d 02 8a 04 0d 02 94 04 0d 02 9e 0a |................| 00000380 d6 20 73 65 74 32 0d 02 a8 0d 41 25 3d 4d 4f 54 |. set2....A%=MOT| 00000390 49 4f 4e 0d 02 b2 11 d6 20 6d 6f 76 65 6f 62 6a |ION..... moveobj| 000003a0 65 63 74 73 0d 02 bc 04 0d 02 c6 19 41 25 3d 4d |ects........A%=M| 000003b0 4f 54 49 4f 4e 2b 4d 4f 54 49 4f 4e 5f 53 49 5a |OTION+MOTION_SIZ| 000003c0 45 0d 02 d0 15 d6 20 63 61 6c 63 5f 72 6f 74 5f |E..... calc_rot_| 000003d0 6d 61 74 72 69 78 0d 02 da 0c 41 25 3d 41 25 21 |matrix....A%=A%!| 000003e0 34 38 0d 02 e4 15 d6 20 74 72 61 6e 73 66 6f 72 |48..... transfor| 000003f0 6d 5f 63 6c 65 61 72 0d 02 ee 04 0d 02 f8 0b e7 |m_clear.........| 00000400 20 53 3d 34 20 8c 0d 03 02 07 53 3d 30 0d 03 0c | S=4 .....S=0...| 00000410 0e e3 20 43 3d 30 20 b8 20 31 34 0d 03 16 19 43 |.. C=0 . 14....C| 00000420 4f 4c 3d 28 31 2b 20 28 28 43 2b 4d 29 20 83 20 |OL=(1+ ((C+M) . | 00000430 31 35 29 29 0d 03 20 21 fb 20 43 2b 31 2c 43 31 |15)).. !. C+1,C1| 00000440 28 43 4f 4c 29 2c 43 32 28 43 4f 4c 29 2c 43 33 |(COL),C2(COL),C3| 00000450 28 43 4f 4c 29 0d 03 2a 05 ed 0d 03 34 09 4d 2b |(COL)..*....4.M+| 00000460 3d 31 34 0d 03 3e 05 cd 0d 03 48 08 53 2b 3d 31 |=14..>....H.S+=1| 00000470 0d 03 52 04 0d 03 5c 0d 41 25 3d 4d 4f 54 49 4f |..R...\.A%=MOTIO| 00000480 4e 0d 03 66 15 d6 20 63 61 6c 63 5f 72 6f 74 5f |N..f.. calc_rot_| 00000490 6d 61 74 72 69 78 0d 03 70 0c 41 25 3d 41 25 21 |matrix..p.A%=A%!| 000004a0 34 38 0d 03 7a 14 d6 20 74 72 61 6e 73 66 6f 72 |48..z.. transfor| 000004b0 6d 5f 64 72 61 77 0d 03 84 07 fd 20 30 0d 03 8e |m_draw..... 0...| 000004c0 04 0d 03 98 04 0d 03 a2 0f f4 20 43 41 4c 4c 20 |.......... CALL | 000004d0 6d 61 69 6e 0d 03 ac 05 e0 0d 03 b6 04 0d 03 c0 |main............| 000004e0 04 0d 03 ca 04 0d 03 d4 0b dd 20 f2 6d 61 69 6e |.......... .main| 000004f0 0d 03 de 04 0d 03 e8 14 e3 20 50 41 53 53 3d 30 |......... PASS=0| 00000500 20 b8 20 32 20 88 20 32 0d 03 f2 09 50 25 3d 51 | . 2 . 2....P%=Q| 00000510 25 0d 03 fc 0d 5b 4f 50 54 20 50 41 53 53 0d 04 |%....[OPT PASS..| 00000520 06 1c 2e 50 55 4e 54 44 20 20 20 20 45 51 55 44 |...PUNTD EQUD| 00000530 20 20 20 20 20 20 50 55 4e 54 0d 04 10 1f 2e 50 | PUNT.....P| 00000540 52 4f 4a 45 43 54 44 20 45 51 55 44 20 20 20 20 |ROJECTD EQUD | 00000550 20 20 50 52 4f 4a 45 43 54 0d 04 1a 1e 2e 4d 4f | PROJECT.....MO| 00000560 54 49 4f 4e 44 20 20 45 51 55 44 20 20 20 20 20 |TIOND EQUD | 00000570 20 4d 4f 54 49 4f 4e 0d 04 24 04 0d 04 2e 09 2e | MOTION..$......| 00000580 6d 61 69 6e 0d 04 38 20 20 20 20 20 20 20 20 20 |main..8 | 00000590 20 20 53 54 4d 46 44 20 20 20 20 20 31 33 21 2c | STMFD 13!,| 000005a0 7b 31 34 7d 0d 04 42 0d 2e 6d 61 69 6e 6c 6f 6f |{14}..B..mainloo| 000005b0 70 0d 04 4c 3a 20 20 20 20 20 20 20 20 20 20 42 |p..L: B| 000005c0 4c 20 20 20 20 20 20 20 20 73 65 74 32 20 20 20 |L set2 | 000005d0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3b 20 | ; | 000005e0 73 65 74 20 64 69 73 70 6c 61 79 0d 04 60 04 0d |set display..`..| 000005f0 04 6a 22 20 20 20 20 20 20 20 20 20 20 4c 44 52 |.j" LDR| 00000600 20 20 20 20 20 20 20 52 30 2c 4d 4f 54 49 4f 4e | R0,MOTION| 00000610 44 0d 04 74 23 20 20 20 20 20 20 20 20 20 20 42 |D..t# B| 00000620 4c 20 20 20 20 20 20 20 20 6d 6f 76 65 6f 62 6a |L moveobj| 00000630 65 63 74 73 0d 04 7e 27 20 20 20 20 20 20 20 20 |ects..~' | 00000640 20 20 42 4c 20 20 20 20 20 20 20 20 63 61 6c 63 | BL calc| 00000650 5f 72 6f 74 5f 6d 61 74 72 69 78 0d 04 88 23 20 |_rot_matrix...# | 00000660 20 20 20 20 20 20 20 20 20 4c 44 52 20 20 20 20 | LDR | 00000670 20 20 20 52 30 2c 5b 52 30 2c 23 34 38 5d 0d 04 | R0,[R0,#48]..| 00000680 92 26 20 20 20 20 20 20 20 20 20 20 42 4c 20 20 |.& BL | 00000690 20 20 20 20 20 20 74 72 61 6e 73 66 6f 72 6d 5f | transform_| 000006a0 64 72 61 77 0d 04 9c 04 0d 04 a6 22 20 20 20 20 |draw......." | 000006b0 20 20 20 20 20 20 4c 44 52 20 20 20 20 20 20 20 | LDR | 000006c0 52 30 2c 4d 4f 54 49 4f 4e 44 0d 04 b0 2a 20 20 |R0,MOTIOND...* | 000006d0 20 20 20 20 20 20 20 20 41 44 44 20 20 20 20 20 | ADD | 000006e0 20 20 52 30 2c 52 30 2c 23 4d 4f 54 49 4f 4e 5f | R0,R0,#MOTION_| 000006f0 53 49 5a 45 0d 04 ba 27 20 20 20 20 20 20 20 20 |SIZE...' | 00000700 20 20 42 4c 20 20 20 20 20 20 20 20 63 61 6c 63 | BL calc| 00000710 5f 72 6f 74 5f 6d 61 74 72 69 78 0d 04 c4 23 20 |_rot_matrix...# | 00000720 20 20 20 20 20 20 20 20 20 4c 44 52 20 20 20 20 | LDR | 00000730 20 20 20 52 30 2c 5b 52 30 2c 23 34 38 5d 0d 04 | R0,[R0,#48]..| 00000740 ce 27 20 20 20 20 20 20 20 20 20 20 42 4c 20 20 |.' BL | 00000750 20 20 20 20 20 20 74 72 61 6e 73 66 6f 72 6d 5f | transform_| 00000760 63 6c 65 61 72 0d 04 d8 04 0d 04 e2 2c 20 20 20 |clear......., | 00000770 20 20 20 20 20 20 20 53 57 49 20 20 20 20 20 20 | SWI | 00000780 20 22 4f 53 5f 52 65 61 64 45 73 63 61 70 65 53 | "OS_ReadEscapeS| 00000790 74 61 74 65 22 0d 04 ec 20 20 20 20 20 20 20 20 |tate"... | 000007a0 20 20 20 42 43 43 20 20 20 20 20 20 20 6d 61 69 | BCC mai| 000007b0 6e 6c 6f 6f 70 0d 04 f6 20 20 20 20 20 20 20 20 |nloop... | 000007c0 20 20 20 4c 44 4d 46 44 20 20 20 20 20 31 33 21 | LDMFD 13!| 000007d0 2c 7b 50 43 7d 0d 05 00 04 0d 05 0a 04 0d 05 14 |,{PC}...........| 000007e0 05 5d 0d 05 1e 05 ed 0d 05 28 09 51 25 3d 50 25 |.].......(.Q%=P%| 000007f0 0d 05 32 05 e1 0d 05 3c 04 0d 05 46 04 0d 05 50 |..2....<...F...P| 00000800 0a dd 20 f2 61 73 73 0d 05 5a 0f de 20 51 25 20 |.. .ass..Z.. Q% | 00000810 31 33 30 30 30 30 0d 05 64 13 de 20 49 4e 56 45 |130000..d.. INVE| 00000820 52 53 20 34 2a 31 30 32 34 0d 05 6e 17 de 20 44 |RS 4*1024..n.. D| 00000830 49 54 41 42 4c 45 20 34 30 30 30 2a 31 36 2a 34 |ITABLE 4000*16*4| 00000840 0d 05 78 14 de 20 43 53 54 41 42 4c 45 20 34 30 |..x.. CSTABLE 40| 00000850 39 36 2a 38 0d 05 82 13 de 20 43 54 41 42 4c 45 |96*8..... CTABLE| 00000860 20 31 30 30 2a 31 36 0d 05 8c 10 f2 63 61 6c 63 | 100*16.....calc| 00000870 5f 69 6e 76 65 72 73 0d 05 96 11 f2 63 61 6c 63 |_invers.....calc| 00000880 5f 63 73 74 61 62 6c 65 0d 05 a0 12 f2 63 61 6c |_cstable.....cal| 00000890 63 5f 64 69 76 74 61 62 6c 65 0d 05 aa 0e f2 74 |c_divtable.....t| 000008a0 72 61 6e 73 66 6f 72 6d 0d 05 b4 10 f2 6d 6f 76 |ransform.....mov| 000008b0 65 6f 62 6a 65 63 74 73 0d 05 be 14 f2 63 61 6c |eobjects.....cal| 000008c0 63 5f 72 6f 74 5f 6d 61 74 72 69 78 0d 05 c8 09 |c_rot_matrix....| 000008d0 f2 6d 61 69 6e 0d 05 d2 05 e1 0d 05 dc 04 0d 05 |.main...........| 000008e0 e6 04 0d 05 f0 3f dd 20 f2 62 75 69 6c 64 70 75 |.....?. .buildpu| 000008f0 6e 74 20 20 20 3a f4 20 63 61 6c 63 20 63 6f 6f |nt :. calc coo| 00000900 72 64 69 6e 61 74 65 73 20 6f 66 20 61 20 73 70 |rdinates of a sp| 00000910 68 65 72 65 2c 20 31 36 78 33 30 20 76 65 72 74 |here, 16x30 vert| 00000920 2e 0d 05 fa 0b 50 25 3d 50 55 4e 54 0d 06 04 10 |.....P%=PUNT....| 00000930 4c 3d 6c 65 6e 67 74 65 2a 46 49 58 0d 06 0e 04 |L=lengte*FIX....| 00000940 0d 06 18 04 0d 06 22 14 50 6f 69 6e 74 5f 54 79 |......".Point_Ty| 00000950 70 65 28 31 29 3d 50 25 0d 06 2c 09 f2 4f 42 4a |pe(1)=P%..,..OBJ| 00000960 31 0d 06 36 14 50 6f 69 6e 74 5f 54 79 70 65 28 |1..6.Point_Type(| 00000970 32 29 3d 50 25 0d 06 40 0d f4 50 52 4f 43 4f 42 |2)=P%..@..PROCOB| 00000980 4a 32 0d 06 4a 14 50 6f 69 6e 74 5f 54 79 70 65 |J2..J.Point_Type| 00000990 28 33 29 3d 50 25 0d 06 54 05 e1 0d 06 5e 04 0d |(3)=P%..T....^..| 000009a0 06 68 04 0d 06 72 0b dd 20 f2 4f 42 4a 31 0d 06 |.h...r.. .OBJ1..| 000009b0 7c 0f 4d 25 3d 31 36 3a 4e 25 3d 33 30 0d 06 86 ||.M%=16:N%=30...| 000009c0 10 f4 4d 25 3d 31 30 3a 4e 25 3d 31 36 0d 06 90 |..M%=10:N%=16...| 000009d0 15 44 4b 3d af 2f 4d 25 3a 4b 3d 2d af 2f 32 2b |.DK=./M%:K=-./2+| 000009e0 44 4b 0d 06 9a 0a 5b 4f 50 54 20 30 0d 06 a4 33 |DK....[OPT 0...3| 000009f0 44 43 44 20 30 3a 44 43 44 20 30 3a 44 43 44 20 |DCD 0:DCD 0:DCD | 00000a00 2d 4c 20 20 20 20 20 20 20 3a 20 f4 20 73 69 6e |-L : . sin| 00000a10 67 6c 65 20 6c 6f 77 65 72 20 70 6f 69 6e 74 0d |gle lower point.| 00000a20 06 ae 05 5d 0d 06 b8 11 e3 20 4a 25 3d 31 20 b8 |...]..... J%=1 .| 00000a30 20 4d 25 2d 31 0d 06 c2 13 53 4e 3d b5 4b 2a 4c | M%-1....SN=.K*L| 00000a40 3a 43 53 3d 9b 4b 2a 4c 0d 06 cc 11 44 48 3d 32 |:CS=.K*L....DH=2| 00000a50 2a af 2f 4e 25 3a 48 3d 30 0d 06 d6 0f e3 20 49 |*./N%:H=0..... I| 00000a60 25 3d 31 20 b8 20 4e 25 0d 06 e0 0a 5b 4f 50 54 |%=1 . N%....[OPT| 00000a70 20 30 0d 06 ea 0d 44 43 44 20 9b 48 2a 43 53 0d | 0....DCD .H*CS.| 00000a80 06 f4 0d 44 43 44 20 b5 48 2a 43 53 0d 06 fe 0a |...DCD .H*CS....| 00000a90 44 43 44 20 53 4e 0d 07 08 05 5d 0d 07 12 09 48 |DCD SN....]....H| 00000aa0 2b 3d 44 48 0d 07 1c 05 ed 0d 07 26 09 4b 2b 3d |+=DH.......&.K+=| 00000ab0 44 4b 0d 07 30 05 ed 0d 07 3a 0a 5b 4f 50 54 20 |DK..0....:.[OPT | 00000ac0 30 0d 07 44 33 44 43 44 20 30 3a 44 43 44 20 30 |0..D3DCD 0:DCD 0| 00000ad0 3a 44 43 44 20 20 4c 20 20 20 20 20 20 20 3a 20 |:DCD L : | 00000ae0 f4 20 73 69 6e 67 6c 65 20 75 70 70 65 72 20 70 |. single upper p| 00000af0 6f 69 6e 74 0d 07 4e 0f 44 43 44 20 28 31 3c 3c |oint..N.DCD (1<<| 00000b00 33 30 29 0d 07 58 05 5d 0d 07 62 04 0d 07 6c 05 |30)..X.]..b...l.| 00000b10 e1 0d 07 76 04 0d 07 80 0b dd 20 f2 4f 42 4a 32 |...v...... .OBJ2| 00000b20 0d 07 8a 0b 4e 25 3d 31 30 30 30 0d 07 94 11 44 |....N%=1000....D| 00000b30 48 3d 32 2a af 2f 4e 25 3a 48 3d 30 0d 07 9e 0f |H=2*./N%:H=0....| 00000b40 e3 20 49 25 3d 31 20 b8 20 4e 25 0d 07 a8 0a 5b |. I%=1 . N%....[| 00000b50 4f 50 54 20 30 0d 07 b2 0e 44 43 44 20 9b 48 2a |OPT 0....DCD .H*| 00000b60 4c 2f 32 0d 07 bc 0e 44 43 44 20 b5 48 2a 4c 2f |L/2....DCD .H*L/| 00000b70 32 0d 07 c6 09 44 43 44 20 30 0d 07 d0 05 5d 0d |2....DCD 0....].| 00000b80 07 da 09 48 2b 3d 44 48 0d 07 e4 05 ed 0d 07 ee |...H+=DH........| 00000b90 0a 5b 4f 50 54 20 30 0d 07 f8 0f 44 43 44 20 28 |.[OPT 0....DCD (| 00000ba0 31 3c 3c 33 30 29 0d 08 02 05 5d 0d 08 0c 05 e1 |1<<30)....].....| 00000bb0 0d 08 16 04 0d 08 20 04 0d 08 2a 04 0d 08 34 12 |...... ...*...4.| 00000bc0 dd 20 f2 62 75 69 6c 64 6d 6f 74 69 6f 6e 0d 08 |. .buildmotion..| 00000bd0 3e 0a ea 20 50 4e 54 52 0d 08 48 08 56 52 3d 34 |>.. PNTR..H.VR=4| 00000be0 0d 08 52 08 56 54 3d 34 0d 08 5c 2d 54 58 44 3d |..R.VT=4..\-TXD=| 00000bf0 30 3a 54 59 44 3d 34 3a 54 5a 44 3d 38 3a 44 54 |0:TYD=4:TZD=8:DT| 00000c00 58 44 3d 31 32 3a 44 54 59 44 3d 31 36 3a 44 54 |XD=12:DTYD=16:DT| 00000c10 5a 44 3d 32 30 0d 08 66 30 48 58 44 3d 32 34 3a |ZD=20..f0HXD=24:| 00000c20 48 59 44 3d 32 38 3a 48 5a 44 3d 33 32 3a 44 48 |HYD=28:HZD=32:DH| 00000c30 58 44 3d 33 36 3a 44 48 59 44 3d 34 30 3a 44 48 |XD=36:DHYD=40:DH| 00000c40 5a 44 3d 34 34 0d 08 70 04 0d 08 7a 0a 54 59 50 |ZD=44..p...z.TYP| 00000c50 45 3d 31 0d 08 84 07 49 3d 31 0d 08 8e 04 0d 08 |E=1....I=1......| 00000c60 98 21 50 4e 54 52 3d 4d 4f 54 49 4f 4e 2b 28 49 |.!PNTR=MOTION+(I| 00000c70 2d 31 29 2a 4d 4f 54 49 4f 4e 5f 53 49 5a 45 0d |-1)*MOTION_SIZE.| 00000c80 08 a2 38 50 4e 54 52 21 54 58 44 3d 28 2d 31 29 |..8PNTR!TXD=(-1)| 00000c90 5e b3 28 32 29 2a 35 30 2a 46 49 58 20 20 20 20 |^.(2)*50*FIX | 00000ca0 20 20 20 20 20 20 20 20 20 20 20 3a 20 f4 20 54 | : . T| 00000cb0 58 2c 54 59 2c 54 5a 0d 08 ac 1d 50 4e 54 52 21 |X,TY,TZ....PNTR!| 00000cc0 54 59 44 3d 28 2d 31 29 5e b3 28 32 29 2a 35 30 |TYD=(-1)^.(2)*50| 00000cd0 2a 46 49 58 0d 08 b6 1d 50 4e 54 52 21 54 5a 44 |*FIX....PNTR!TZD| 00000ce0 3d 28 31 2b b3 28 31 29 29 2a 31 30 30 2a 46 49 |=(1+.(1))*100*FI| 00000cf0 58 0d 08 c0 3a 50 4e 54 52 21 44 54 58 44 3d 28 |X...:PNTR!DTXD=(| 00000d00 2d 31 29 5e b3 28 32 29 2a 28 b3 28 56 54 2a 32 |-1)^.(2)*(.(VT*2| 00000d10 29 2b 56 54 29 2a 46 49 58 2f 31 30 3a 20 f4 20 |)+VT)*FIX/10: . | 00000d20 44 54 58 2c 44 54 59 2c 44 54 5a 0d 08 ca 2b 50 |DTX,DTY,DTZ...+P| 00000d30 4e 54 52 21 44 54 59 44 3d 28 2d 31 29 5e b3 28 |NTR!DTYD=(-1)^.(| 00000d40 32 29 2a 28 b3 28 56 54 2a 32 29 2b 56 54 29 2a |2)*(.(VT*2)+VT)*| 00000d50 46 49 58 2f 31 30 0d 08 d4 2b 50 4e 54 52 21 44 |FIX/10...+PNTR!D| 00000d60 54 5a 44 3d 28 2d 31 29 5e b3 28 32 29 2a 28 b3 |TZD=(-1)^.(2)*(.| 00000d70 28 56 54 2a 32 29 2b 56 54 29 2a 46 49 58 2f 31 |(VT*2)+VT)*FIX/1| 00000d80 30 0d 08 de 36 50 4e 54 52 21 48 58 44 3d 30 20 |0...6PNTR!HXD=0 | 00000d90 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | | 00000da0 20 20 20 20 20 20 20 20 20 20 20 3a 20 f4 20 48 | : . H| 00000db0 58 2c 48 59 2c 48 5a 0d 08 e8 0e 50 4e 54 52 21 |X,HY,HZ....PNTR!| 00000dc0 48 59 44 3d 30 0d 08 f2 0e 50 4e 54 52 21 48 5a |HYD=0....PNTR!HZ| 00000dd0 44 3d 30 0d 08 fc 33 50 4e 54 52 21 44 48 58 44 |D=0...3PNTR!DHXD| 00000de0 3d 28 2d 31 29 5e b3 28 32 29 2a 28 b3 28 56 52 |=(-1)^.(2)*(.(VR| 00000df0 2a 32 29 2b 56 52 29 3a 20 f4 20 44 48 58 2c 44 |*2)+VR): . DHX,D| 00000e00 48 59 2c 44 59 5a 0d 09 06 24 50 4e 54 52 21 44 |HY,DYZ...$PNTR!D| 00000e10 48 59 44 3d 28 2d 31 29 5e b3 28 32 29 2a 28 b3 |HYD=(-1)^.(2)*(.| 00000e20 28 56 52 2a 32 29 2b 56 52 29 0d 09 10 24 50 4e |(VR*2)+VR)...$PN| 00000e30 54 52 21 44 48 5a 44 3d 28 2d 31 29 5e b3 28 32 |TR!DHZD=(-1)^.(2| 00000e40 29 2a 28 b3 28 56 52 2a 32 29 2b 56 52 29 0d 09 |)*(.(VR*2)+VR)..| 00000e50 1a 1c 50 4e 54 52 21 34 38 3d 50 6f 69 6e 74 5f |..PNTR!48=Point_| 00000e60 54 79 70 65 28 54 59 50 45 29 0d 09 24 04 0d 09 |Type(TYPE)..$...| 00000e70 2e 41 f4 20 69 6e 69 74 69 61 6c 20 70 6f 73 69 |.A. initial posi| 00000e80 74 69 6f 6e 20 6f 66 20 64 72 61 77 69 6e 67 20 |tion of drawing | 00000e90 61 6e 64 20 63 6c 65 61 6e 69 6e 67 20 6f 62 6a |and cleaning obj| 00000ea0 65 63 74 20 69 73 20 74 68 65 20 73 61 6d 65 0d |ect is the same.| 00000eb0 09 38 0e 50 4e 54 52 4f 3d 50 4e 54 52 0d 09 42 |.8.PNTRO=PNTR..B| 00000ec0 08 49 2b 3d 31 0d 09 4c 21 50 4e 54 52 3d 4d 4f |.I+=1..L!PNTR=MO| 00000ed0 54 49 4f 4e 2b 28 49 2d 31 29 2a 4d 4f 54 49 4f |TION+(I-1)*MOTIO| 00000ee0 4e 5f 53 49 5a 45 0d 09 56 12 e3 20 4a 3d 30 20 |N_SIZE..V.. J=0 | 00000ef0 b8 20 35 32 20 88 20 34 0d 09 60 12 50 4e 54 52 |. 52 . 4..`.PNTR| 00000f00 21 4a 3d 50 4e 54 52 4f 21 4a 0d 09 6a 05 ed 0d |!J=PNTRO!J..j...| 00000f10 09 74 1c 50 4e 54 52 21 34 38 3d 50 6f 69 6e 74 |.t.PNTR!48=Point| 00000f20 5f 54 79 70 65 28 54 59 50 45 29 0d 09 7e 11 50 |_Type(TYPE)..~.P| 00000f30 4e 54 52 21 35 36 3d 31 3c 3c 33 31 0d 09 88 05 |NTR!56=1<<31....| 00000f40 e1 0d 09 92 04 0d 09 9c 04 0d 09 a6 18 f4 20 4e |.............. N| 00000f50 72 20 6f 66 20 74 79 70 65 20 6f 62 6a 65 63 74 |r of type object| 00000f60 73 0d 09 b0 07 dc 20 31 0d 09 ba 04 0d 09 c4 04 |s..... 1........| 00000f70 0d 09 ce 12 dd 20 f2 63 61 6c 63 5f 69 6e 76 65 |..... .calc_inve| 00000f80 72 73 0d 09 d8 0b 4b 3d 32 3c 3c 32 30 0d 09 e2 |rs....K=2<<20...| 00000f90 26 e3 20 49 3d 31 20 b8 20 31 30 32 33 3a 49 4e |&. I=1 . 1023:IN| 00000fa0 56 45 52 53 21 28 34 2a 49 29 3d 4b 2f 49 2b 2e |VERS!(4*I)=K/I+.| 00000fb0 35 3a ed 0d 09 ec 05 e1 0d 09 f6 04 0d 0a 00 04 |5:..............| 00000fc0 0d 0a 0a 13 dd 20 f2 63 61 6c 63 5f 63 73 74 61 |..... .calc_csta| 00000fd0 62 6c 65 0d 0a 14 15 46 3d 32 2a af 2f 34 30 39 |ble....F=2*./409| 00000fe0 36 3a 56 3d 32 5e 31 35 0d 0a 1e 15 54 32 3d 43 |6:V=2^15....T2=C| 00000ff0 53 54 41 42 4c 45 2b 38 2a 31 30 32 34 0d 0a 28 |STABLE+8*1024..(| 00001000 15 54 33 3d 43 53 54 41 42 4c 45 2b 38 2a 32 30 |.T3=CSTABLE+8*20| 00001010 34 38 0d 0a 32 15 54 34 3d 43 53 54 41 42 4c 45 |48..2.T4=CSTABLE| 00001020 2b 38 2a 33 30 37 32 0d 0a 3c 10 e3 20 48 3d 30 |+8*3072..<.. H=0| 00001030 20 b8 20 31 30 32 33 0d 0a 46 09 4b 3d 46 2a 48 | . 1023..F.K=F*H| 00001040 0d 0a 50 17 43 53 3d 9b 28 4b 29 2a 56 3a 53 4e |..P.CS=.(K)*V:SN| 00001050 3d b5 28 4b 29 2a 56 0d 0a 5a 14 43 53 54 41 42 |=.(K)*V..Z.CSTAB| 00001060 4c 45 21 28 38 2a 48 29 3d 43 53 0d 0a 64 16 43 |LE!(8*H)=CS..d.C| 00001070 53 54 41 42 4c 45 21 28 38 2a 48 2b 34 29 3d 53 |STABLE!(8*H+4)=S| 00001080 4e 0d 0a 6e 10 54 32 21 28 38 2a 48 29 3d 2d 53 |N..n.T2!(8*H)=-S| 00001090 4e 0d 0a 78 11 54 32 21 28 38 2a 48 2b 34 29 3d |N..x.T2!(8*H+4)=| 000010a0 43 53 0d 0a 82 10 54 33 21 28 38 2a 48 29 3d 2d |CS....T3!(8*H)=-| 000010b0 43 53 0d 0a 8c 12 54 33 21 28 38 2a 48 2b 34 29 |CS....T3!(8*H+4)| 000010c0 3d 2d 53 4e 0d 0a 96 0f 54 34 21 28 38 2a 48 29 |=-SN....T4!(8*H)| 000010d0 3d 53 4e 0d 0a a0 12 54 34 21 28 38 2a 48 2b 34 |=SN....T4!(8*H+4| 000010e0 29 3d 2d 43 53 0d 0a aa 05 ed 0d 0a b4 05 e1 0d |)=-CS...........| 000010f0 0a be 04 0d 0a c8 14 dd 20 f2 63 61 6c 63 5f 64 |........ .calc_d| 00001100 69 76 74 61 62 6c 65 0d 0a d2 1d 54 3d 30 3a 4e |ivtable....T=0:N| 00001110 3d 31 3a 51 3d 32 3a 49 3d 33 3a 4a 3d 34 3a 44 |=1:Q=2:I=3:J=4:D| 00001120 49 54 3d 35 0d 0a dc 14 e3 20 50 41 53 53 3d 30 |IT=5..... PASS=0| 00001130 20 b8 20 32 20 88 20 32 0d 0a e6 09 50 25 3d 51 | . 2 . 2....P%=Q| 00001140 25 0d 0a f0 0d 5b 4f 50 54 20 50 41 53 53 0d 0a |%....[OPT PASS..| 00001150 fa 16 2e 44 4e 52 44 20 45 51 55 44 20 34 30 30 |...DNRD EQUD 400| 00001160 30 2a 31 36 0d 0b 04 16 2e 44 49 54 48 20 45 51 |0*16.....DITH EQ| 00001170 55 44 20 44 49 54 41 42 4c 45 0d 0b 0e 12 2e 63 |UD DITABLE.....c| 00001180 61 6c 63 5f 64 69 76 74 61 62 6c 65 0d 0b 18 25 |alc_divtable...%| 00001190 20 20 20 20 20 20 20 20 20 20 53 54 4d 46 44 20 | STMFD | 000011a0 20 20 20 20 31 33 21 2c 7b 30 2d 31 32 2c 31 34 | 13!,{0-12,14| 000011b0 7d 0d 0b 22 20 20 20 20 20 20 20 20 20 20 20 4c |}.." L| 000011c0 44 52 20 20 20 20 20 20 20 44 49 54 2c 44 49 54 |DR DIT,DIT| 000011d0 48 0d 0b 2c 1e 20 20 20 20 20 20 20 20 20 20 4c |H..,. L| 000011e0 44 52 20 20 20 20 20 20 20 49 2c 44 4e 52 44 0d |DR I,DNRD.| 000011f0 0b 36 0c 2e 44 56 4c 4f 4f 50 32 0d 0b 40 22 20 |.6..DVLOOP2..@" | 00001200 20 20 20 20 20 20 20 20 20 4d 4f 56 20 20 20 20 | MOV | 00001210 20 20 20 54 2c 23 32 30 30 3c 3c 31 32 0d 0b 4a | T,#200<<12..J| 00001220 1b 20 20 20 20 20 20 20 20 20 20 4d 4f 56 20 20 |. MOV | 00001230 20 20 20 20 20 4e 2c 49 0d 0b 54 1c 20 20 20 20 | N,I..T. | 00001240 20 20 20 20 20 20 4d 4f 56 20 20 20 20 20 20 20 | MOV | 00001250 4a 2c 23 30 0d 0b 5e 1c 20 20 20 20 20 20 20 20 |J,#0..^. | 00001260 20 20 4d 4f 56 20 20 20 20 20 20 20 51 2c 23 30 | MOV Q,#0| 00001270 0d 0b 68 0c 2e 44 56 4c 4f 4f 50 33 0d 0b 72 1b |..h..DVLOOP3..r.| 00001280 20 20 20 20 20 20 20 20 20 20 43 4d 50 20 20 20 | CMP | 00001290 20 20 20 20 4e 2c 54 0d 0b 7c 22 20 20 20 20 20 | N,T..|" | 000012a0 20 20 20 20 20 4d 4f 56 4c 4f 20 20 20 20 20 4e | MOVLO N| 000012b0 2c 4e 2c 4c 53 4c 20 23 31 0d 0b 86 1e 20 20 20 |,N,LSL #1.... | 000012c0 20 20 20 20 20 20 20 41 44 44 4c 4f 20 20 20 20 | ADDLO | 000012d0 20 4a 2c 4a 2c 23 31 0d 0b 90 1f 20 20 20 20 20 | J,J,#1.... | 000012e0 20 20 20 20 20 42 4c 4f 20 20 20 20 20 20 20 44 | BLO D| 000012f0 56 4c 4f 4f 50 33 0d 0b 9a 21 20 20 20 20 20 20 |VLOOP3...! | 00001300 20 20 20 20 4d 4f 56 20 20 20 20 20 20 20 4e 2c | MOV N,| 00001310 4e 2c 4c 53 52 20 4a 0d 0b a4 0c 2e 44 56 4c 4f |N,LSR J.....DVLO| 00001320 4f 50 31 0d 0b ae 21 20 20 20 20 20 20 20 20 20 |OP1...! | 00001330 20 43 4d 50 20 20 20 20 20 20 20 54 2c 4e 2c 4c | CMP T,N,L| 00001340 53 4c 20 4a 0d 0b b8 23 20 20 20 20 20 20 20 20 |SL J...# | 00001350 20 20 53 55 42 48 53 20 20 20 20 20 54 2c 54 2c | SUBHS T,T,| 00001360 4e 2c 4c 53 4c 20 4a 0d 0b c2 1d 20 20 20 20 20 |N,LSL J.... | 00001370 20 20 20 20 20 41 44 43 20 20 20 20 20 20 20 51 | ADC Q| 00001380 2c 51 2c 51 0d 0b cc 1e 20 20 20 20 20 20 20 20 |,Q,Q.... | 00001390 20 20 53 55 42 53 20 20 20 20 20 20 4a 2c 4a 2c | SUBS J,J,| 000013a0 23 31 0d 0b d6 1f 20 20 20 20 20 20 20 20 20 20 |#1.... | 000013b0 42 50 4c 20 20 20 20 20 20 20 44 56 4c 4f 4f 50 |BPL DVLOOP| 000013c0 31 0d 0b e0 28 20 20 20 20 20 20 20 20 20 20 53 |1...( S| 000013d0 54 52 20 20 20 20 20 20 20 51 2c 5b 44 49 54 2c |TR Q,[DIT,| 000013e0 49 2c 4c 53 4c 20 23 32 5d 0d 0b ea 1e 20 20 20 |I,LSL #2].... | 000013f0 20 20 20 20 20 20 20 53 55 42 53 20 20 20 20 20 | SUBS | 00001400 20 49 2c 49 2c 23 31 0d 0b f4 1f 20 20 20 20 20 | I,I,#1.... | 00001410 20 20 20 20 20 42 4e 45 20 20 20 20 20 20 20 44 | BNE D| 00001420 56 4c 4f 4f 50 32 0d 0b fe 25 20 20 20 20 20 20 |VLOOP2...% | 00001430 20 20 20 20 4c 44 4d 46 44 20 20 20 20 20 31 33 | LDMFD 13| 00001440 21 2c 7b 30 2d 31 32 2c 50 43 7d 0d 0c 08 05 5d |!,{0-12,PC}....]| 00001450 0d 0c 12 05 ed 0d 0c 1c 09 51 25 3d 50 25 0d 0c |.........Q%=P%..| 00001460 26 13 d6 20 63 61 6c 63 5f 64 69 76 74 61 62 6c |&.. calc_divtabl| 00001470 65 0d 0c 30 05 e1 0d 0c 3a 04 0d 0c 44 16 dd 20 |e..0....:...D.. | 00001480 f2 63 61 6c 63 5f 72 6f 74 5f 6d 61 74 72 69 78 |.calc_rot_matrix| 00001490 0d 0c 4e 0f 43 48 58 3d 30 3a 53 48 58 3d 31 0d |..N.CHX=0:SHX=1.| 000014a0 0c 58 0f 43 48 59 3d 32 3a 53 48 59 3d 33 0d 0c |.X.CHY=2:SHY=3..| 000014b0 62 0f 43 48 5a 3d 34 3a 53 48 5a 3d 35 0d 0c 6c |b.CHZ=4:SHZ=5..l| 000014c0 0f 54 3d 36 3a 53 3d 37 3a 48 3d 38 0d 0c 76 15 |.T=6:S=7:H=8..v.| 000014d0 44 48 58 3d 33 3a 44 48 59 3d 34 3a 44 48 5a 3d |DHX=3:DHY=4:DHZ=| 000014e0 35 0d 0c 80 14 48 58 3d 39 3a 48 59 3d 31 30 3a |5....HX=9:HY=10:| 000014f0 48 5a 3d 31 31 0d 0c 8a 14 54 58 3d 39 3a 54 59 |HZ=11....TX=9:TY| 00001500 3d 31 30 3a 54 5a 3d 31 31 0d 0c 94 09 43 53 3d |=10:TZ=11....CS=| 00001510 31 32 0d 0c 9e 0f 53 43 52 3d 30 3a 43 4f 4c 3d |12....SCR=0:COL=| 00001520 31 0d 0c a8 14 e3 20 50 41 53 53 3d 30 20 b8 20 |1..... PASS=0 . | 00001530 32 20 88 20 32 0d 0c b2 09 50 25 3d 51 25 0d 0c |2 . 2....P%=Q%..| 00001540 bc 0d 5b 4f 50 54 20 50 41 53 53 0d 0c c6 36 3b |..[OPT PASS...6;| 00001550 20 f4 20 63 61 6c 63 20 33 78 34 20 74 72 61 6e | . calc 3x4 tran| 00001560 73 66 6f 72 6d 61 74 69 6f 6e 20 6d 61 74 72 69 |sformation matri| 00001570 78 20 6f 6e 20 74 68 65 20 62 61 73 69 73 20 6f |x on the basis o| 00001580 66 0d 0c d0 31 3b 20 f4 20 68 78 2c 68 79 2c 68 |f...1; . hx,hy,h| 00001590 7a 20 61 6e 64 20 74 78 2c 74 79 2c 74 7a 20 6f |z and tx,ty,tz o| 000015a0 66 20 74 68 65 20 6d 6f 74 69 6f 6e 20 61 72 72 |f the motion arr| 000015b0 61 79 0d 0c da 15 2e 43 53 44 20 45 51 55 44 20 |ay.....CSD EQUD | 000015c0 43 53 54 41 42 4c 45 0d 0c e4 14 2e 63 61 6c 63 |CSTABLE.....calc| 000015d0 5f 72 6f 74 5f 6d 61 74 72 69 78 0d 0c ee 25 20 |_rot_matrix...% | 000015e0 20 20 20 20 20 20 20 20 20 53 54 4d 46 44 20 20 | STMFD | 000015f0 20 20 20 31 33 21 2c 7b 30 2d 31 32 2c 31 34 7d | 13!,{0-12,14}| 00001600 0d 0c f8 1b 20 20 20 20 20 20 20 20 20 20 4d 4f |.... MO| 00001610 56 20 20 20 20 20 20 20 48 2c 30 0d 0d 02 1c 3b |V H,0....;| 00001620 f4 20 4c 6f 61 64 20 61 6e 67 6c 65 73 20 20 48 |. Load angles H| 00001630 58 2c 48 59 2c 48 5a 0d 0d 0c 20 20 20 20 20 20 |X,HY,HZ... | 00001640 20 20 20 20 20 41 44 44 20 20 20 20 20 20 20 54 | ADD T| 00001650 2c 48 2c 23 48 58 44 0d 0d 16 24 20 20 20 20 20 |,H,#HXD...$ | 00001660 20 20 20 20 20 4c 44 4d 49 41 20 20 20 20 20 54 | LDMIA T| 00001670 2c 7b 48 58 2c 48 59 2c 48 5a 7d 0d 0d 20 44 3b |,{HX,HY,HZ}.. D;| 00001680 f4 20 44 6f 20 61 20 6d 6f 64 75 6c 6f 20 34 30 |. Do a modulo 40| 00001690 39 36 20 6f 70 65 72 61 74 69 6f 6e 20 6f 6e 20 |96 operation on | 000016a0 74 68 65 20 61 6e 67 6c 65 73 20 28 3d 3e 20 70 |the angles (=> p| 000016b0 65 72 69 6f 64 69 63 20 6c 6f 6f 6b 75 70 29 0d |eriodic lookup).| 000016c0 0d 2a 1f 20 20 20 20 20 20 20 20 20 20 4d 4f 56 |.*. MOV| 000016d0 20 20 20 20 20 20 20 53 2c 23 34 30 39 36 0d 0d | S,#4096..| 000016e0 34 1e 20 20 20 20 20 20 20 20 20 20 53 55 42 20 |4. SUB | 000016f0 20 20 20 20 20 20 53 2c 53 2c 23 31 0d 0d 3e 39 | S,S,#1..>9| 00001700 3b f4 20 4c 6f 6f 6b 75 70 20 28 63 6f 73 48 58 |;. Lookup (cosHX| 00001710 2c 73 69 6e 48 58 29 20 28 63 6f 73 48 59 2c 20 |,sinHX) (cosHY, | 00001720 73 69 6e 48 59 29 20 28 63 6f 73 48 5a 2c 20 73 |sinHY) (cosHZ, s| 00001730 69 6e 48 5a 29 0d 0d 48 1e 20 20 20 20 20 20 20 |inHZ)..H. | 00001740 20 20 20 4c 44 52 20 20 20 20 20 20 20 43 53 2c | LDR CS,| 00001750 43 53 44 0d 0d 52 1d 20 20 20 20 20 20 20 20 20 |CSD..R. | 00001760 20 43 4d 50 20 20 20 20 20 20 20 48 58 2c 23 30 | CMP HX,#0| 00001770 0d 0d 5c 20 20 20 20 20 20 20 20 20 20 20 52 53 |..\ RS| 00001780 42 4d 49 20 20 20 20 20 48 58 2c 48 58 2c 23 30 |BMI HX,HX,#0| 00001790 0d 0d 66 1d 20 20 20 20 20 20 20 20 20 20 80 20 |..f. . | 000017a0 20 20 20 20 20 20 48 58 2c 48 58 2c 53 0d 0d 70 | HX,HX,S..p| 000017b0 26 20 20 20 20 20 20 20 20 20 20 41 44 44 20 20 |& ADD | 000017c0 20 20 20 20 20 54 2c 43 53 2c 48 58 2c 4c 53 4c | T,CS,HX,LSL| 000017d0 20 23 33 0d 0d 7a 23 20 20 20 20 20 20 20 20 20 | #3..z# | 000017e0 20 4c 44 4d 49 41 20 20 20 20 20 54 2c 7b 43 48 | LDMIA T,{CH| 000017f0 58 2c 53 48 58 7d 0d 0d 84 22 20 20 20 20 20 20 |X,SHX}..." | 00001800 20 20 20 20 52 53 42 4d 49 20 20 20 20 20 53 48 | RSBMI SH| 00001810 58 2c 53 48 58 2c 23 30 0d 0d 8e 1d 20 20 20 20 |X,SHX,#0.... | 00001820 20 20 20 20 20 20 43 4d 50 20 20 20 20 20 20 20 | CMP | 00001830 48 59 2c 23 30 0d 0d 98 20 20 20 20 20 20 20 20 |HY,#0... | 00001840 20 20 20 52 53 42 4d 49 20 20 20 20 20 48 59 2c | RSBMI HY,| 00001850 48 59 2c 23 30 0d 0d a2 1d 20 20 20 20 20 20 20 |HY,#0.... | 00001860 20 20 20 80 20 20 20 20 20 20 20 48 59 2c 48 59 | . HY,HY| 00001870 2c 53 0d 0d ac 26 20 20 20 20 20 20 20 20 20 20 |,S...& | 00001880 41 44 44 20 20 20 20 20 20 20 54 2c 43 53 2c 48 |ADD T,CS,H| 00001890 59 2c 4c 53 4c 20 23 33 0d 0d b6 23 20 20 20 20 |Y,LSL #3...# | 000018a0 20 20 20 20 20 20 4c 44 4d 49 41 20 20 20 20 20 | LDMIA | 000018b0 54 2c 7b 43 48 59 2c 53 48 59 7d 0d 0d c0 22 20 |T,{CHY,SHY}..." | 000018c0 20 20 20 20 20 20 20 20 20 52 53 42 4d 49 20 20 | RSBMI | 000018d0 20 20 20 53 48 59 2c 53 48 59 2c 23 30 0d 0d ca | SHY,SHY,#0...| 000018e0 1d 20 20 20 20 20 20 20 20 20 20 43 4d 50 20 20 |. CMP | 000018f0 20 20 20 20 20 48 5a 2c 23 30 0d 0d d4 20 20 20 | HZ,#0... | 00001900 20 20 20 20 20 20 20 20 52 53 42 4d 49 20 20 20 | RSBMI | 00001910 20 20 48 5a 2c 48 5a 2c 23 30 0d 0d de 1d 20 20 | HZ,HZ,#0.... | 00001920 20 20 20 20 20 20 20 20 80 20 20 20 20 20 20 20 | . | 00001930 48 5a 2c 48 5a 2c 53 0d 0d e8 26 20 20 20 20 20 |HZ,HZ,S...& | 00001940 20 20 20 20 20 41 44 44 20 20 20 20 20 20 20 54 | ADD T| 00001950 2c 43 53 2c 48 5a 2c 4c 53 4c 20 23 33 0d 0d f2 |,CS,HZ,LSL #3...| 00001960 23 20 20 20 20 20 20 20 20 20 20 4c 44 4d 49 41 |# LDMIA| 00001970 20 20 20 20 20 54 2c 7b 43 48 5a 2c 53 48 5a 7d | T,{CHZ,SHZ}| 00001980 0d 0d fc 22 20 20 20 20 20 20 20 20 20 20 52 53 |..." RS| 00001990 42 4d 49 20 20 20 20 20 53 48 5a 2c 53 48 5a 2c |BMI SHZ,SHZ,| 000019a0 23 30 0d 0e 06 28 3b f4 20 4c 6f 61 64 20 64 69 |#0...(;. Load di| 000019b0 73 70 6c 61 63 65 6d 65 6e 74 20 76 61 6c 75 65 |splacement value| 000019c0 73 20 54 58 2c 54 59 2c 54 5a 0d 0e 10 20 20 20 |s TX,TY,TZ... | 000019d0 20 20 20 20 20 20 20 20 41 44 44 20 20 20 20 20 | ADD | 000019e0 20 20 54 2c 48 2c 23 54 58 44 0d 0e 1a 24 20 20 | T,H,#TXD...$ | 000019f0 20 20 20 20 20 20 20 20 4c 44 4d 49 41 20 20 20 | LDMIA | 00001a00 20 20 54 2c 7b 54 58 2c 54 59 2c 54 5a 7d 0d 0e | T,{TX,TY,TZ}..| 00001a10 24 24 3b f4 20 5f 5f 5f 5f 5f 5f 5f 5f 46 69 72 |$$;. ________Fir| 00001a20 73 74 20 52 4f 57 5f 5f 5f 5f 5f 5f 5f 5f 5f 5f |st ROW__________| 00001a30 5f 5f 0d 0e 2e 12 3b f4 20 63 6f 73 48 59 2a 63 |__....;. cosHY*c| 00001a40 6f 73 48 5a 0d 0e 38 12 3b f4 20 63 6f 73 48 59 |osHZ..8.;. cosHY| 00001a50 2a 73 69 6e 48 5a 0d 0e 42 0c 3b f4 20 73 69 6e |*sinHZ..B.;. sin| 00001a60 48 59 0d 0e 4c 09 3b f4 20 54 58 0d 0e 56 21 20 |HY..L.;. TX..V! | 00001a70 20 20 20 20 20 20 20 20 20 4d 55 4c 20 20 20 20 | MUL | 00001a80 20 20 20 54 2c 43 48 59 2c 43 48 5a 0d 0e 60 23 | T,CHY,CHZ..`#| 00001a90 20 20 20 20 20 20 20 20 20 20 4d 4f 56 20 20 20 | MOV | 00001aa0 20 20 20 20 54 2c 54 2c 41 53 52 20 23 31 35 0d | T,T,ASR #15.| 00001ab0 0e 6a 21 20 20 20 20 20 20 20 20 20 20 4d 55 4c |.j! MUL| 00001ac0 20 20 20 20 20 20 20 53 2c 43 48 59 2c 53 48 5a | S,CHY,SHZ| 00001ad0 0d 0e 74 23 20 20 20 20 20 20 20 20 20 20 4d 4f |..t# MO| 00001ae0 56 20 20 20 20 20 20 20 53 2c 53 2c 4c 53 52 20 |V S,S,LSR | 00001af0 23 31 35 0d 0e 7e 25 20 20 20 20 20 20 20 20 20 |#15..~% | 00001b00 20 41 44 44 20 20 20 20 20 20 20 54 2c 53 2c 54 | ADD T,S,T| 00001b10 2c 4c 53 4c 20 23 31 36 0d 0e 88 1d 20 20 20 20 |,LSL #16.... | 00001b20 20 20 20 20 20 20 53 54 52 20 20 20 20 20 20 20 | STR | 00001b30 54 2c 41 31 44 0d 0e 92 28 20 20 20 20 20 20 20 |T,A1D...( | 00001b40 20 20 20 41 44 44 20 20 20 20 20 20 20 54 2c 54 | ADD T,T| 00001b50 58 2c 53 48 59 2c 4c 53 4c 20 23 31 36 0d 0e 9c |X,SHY,LSL #16...| 00001b60 1d 20 20 20 20 20 20 20 20 20 20 53 54 52 20 20 |. STR | 00001b70 20 20 20 20 20 54 2c 41 32 44 0d 0e a6 25 3b f4 | T,A2D...%;.| 00001b80 20 5f 5f 5f 5f 5f 5f 5f 5f 5f 53 65 63 6f 6e 64 | _________Second| 00001b90 20 52 4f 57 5f 5f 5f 5f 5f 5f 5f 5f 5f 5f 5f 0d | ROW___________.| 00001ba0 0e b0 25 3b f4 20 2d 73 69 6e 48 58 2a 73 69 6e |..%;. -sinHX*sin| 00001bb0 48 59 2a 63 6f 73 48 5a 2d 63 6f 73 48 58 2a 73 |HY*cosHZ-cosHX*s| 00001bc0 69 6e 48 5a 0d 0e ba 25 3b f4 20 2d 73 69 6e 48 |inHZ...%;. -sinH| 00001bd0 58 2a 73 69 6e 48 59 2a 73 69 6e 48 5a 2b 63 6f |X*sinHY*sinHZ+co| 00001be0 73 48 58 2a 63 6f 73 48 5a 0d 0e c4 13 3b f4 20 |sHX*cosHZ....;. | 00001bf0 20 73 69 6e 48 58 2a 63 6f 73 48 59 0d 0e ce 0a | sinHX*cosHY....| 00001c00 3b f4 20 20 54 59 0d 0e d8 21 20 20 20 20 20 20 |;. TY...! | 00001c10 20 20 20 20 4d 55 4c 20 20 20 20 20 20 20 54 2c | MUL T,| 00001c20 53 48 58 2c 53 48 59 0d 0e e2 23 20 20 20 20 20 |SHX,SHY...# | 00001c30 20 20 20 20 20 4d 4f 56 20 20 20 20 20 20 20 54 | MOV T| 00001c40 2c 54 2c 41 53 52 20 23 31 35 0d 0e ec 1b 20 20 |,T,ASR #15.... | 00001c50 20 20 20 20 20 20 20 20 4d 4f 56 20 20 20 20 20 | MOV | 00001c60 20 20 53 2c 54 0d 0e f6 21 20 20 20 20 20 20 20 | S,T...! | 00001c70 20 20 20 4d 55 4c 20 20 20 20 20 20 20 48 2c 43 | MUL H,C| 00001c80 48 58 2c 53 48 5a 0d 0f 00 21 20 20 20 20 20 20 |HX,SHZ...! | 00001c90 20 20 20 20 4d 4c 41 20 20 20 20 20 20 20 54 2c | MLA T,| 00001ca0 43 48 5a 2c 54 2c 48 0d 0f 0a 1e 20 20 20 20 20 |CHZ,T,H.... | 00001cb0 20 20 20 20 20 52 53 42 20 20 20 20 20 20 20 54 | RSB T| 00001cc0 2c 54 2c 23 30 0d 0f 14 23 20 20 20 20 20 20 20 |,T,#0...# | 00001cd0 20 20 20 4d 4f 56 20 20 20 20 20 20 20 54 2c 54 | MOV T,T| 00001ce0 2c 41 53 52 20 23 31 35 0d 0f 1e 21 20 20 20 20 |,ASR #15...! | 00001cf0 20 20 20 20 20 20 4d 55 4c 20 20 20 20 20 20 20 | MUL | 00001d00 48 2c 43 48 58 2c 43 48 5a 0d 0f 28 1f 20 20 20 |H,CHX,CHZ..(. | 00001d10 20 20 20 20 20 20 20 4d 55 4c 20 20 20 20 20 20 | MUL | 00001d20 20 53 2c 53 48 5a 2c 53 0d 0f 32 1d 20 20 20 20 | S,SHZ,S..2. | 00001d30 20 20 20 20 20 20 53 55 42 20 20 20 20 20 20 20 | SUB | 00001d40 53 2c 48 2c 53 0d 0f 3c 23 20 20 20 20 20 20 20 |S,H,S..<# | 00001d50 20 20 20 4d 4f 56 20 20 20 20 20 20 20 53 2c 53 | MOV S,S| 00001d60 2c 4c 53 52 20 23 31 35 0d 0f 46 25 20 20 20 20 |,LSR #15..F% | 00001d70 20 20 20 20 20 20 41 44 44 20 20 20 20 20 20 20 | ADD | 00001d80 54 2c 53 2c 54 2c 4c 53 4c 20 23 31 36 0d 0f 50 |T,S,T,LSL #16..P| 00001d90 1d 20 20 20 20 20 20 20 20 20 20 53 54 52 20 20 |. STR | 00001da0 20 20 20 20 20 54 2c 42 31 44 0d 0f 5a 21 20 20 | T,B1D..Z! | 00001db0 20 20 20 20 20 20 20 20 4d 55 4c 20 20 20 20 20 | MUL | 00001dc0 20 20 54 2c 53 48 58 2c 43 48 59 0d 0f 64 23 20 | T,SHX,CHY..d# | 00001dd0 20 20 20 20 20 20 20 20 20 4d 4f 56 20 20 20 20 | MOV | 00001de0 20 20 20 54 2c 54 2c 41 53 52 20 23 31 35 0d 0f | T,T,ASR #15..| 00001df0 6e 26 20 20 20 20 20 20 20 20 20 20 41 44 44 20 |n& ADD | 00001e00 20 20 20 20 20 20 54 2c 54 59 2c 54 2c 4c 53 4c | T,TY,T,LSL| 00001e10 20 23 31 36 0d 0f 78 1d 20 20 20 20 20 20 20 20 | #16..x. | 00001e20 20 20 53 54 52 20 20 20 20 20 20 20 54 2c 42 32 | STR T,B2| 00001e30 44 0d 0f 82 24 3b f4 20 5f 5f 5f 5f 5f 5f 5f 20 |D...$;. _______ | 00001e40 54 68 69 72 64 20 52 4f 57 20 5f 5f 5f 5f 5f 5f |Third ROW ______| 00001e50 5f 5f 5f 5f 5f 0d 0f 8c 25 3b f4 20 2d 63 6f 73 |_____...%;. -cos| 00001e60 48 58 2a 73 69 6e 48 59 2a 63 6f 73 48 5a 2b 73 |HX*sinHY*cosHZ+s| 00001e70 69 6e 48 58 2a 73 69 6e 48 5a 0d 0f 96 25 3b f4 |inHX*sinHZ...%;.| 00001e80 20 2d 63 6f 73 48 58 2a 73 69 6e 48 59 2a 73 69 | -cosHX*sinHY*si| 00001e90 6e 48 5a 2d 73 69 6e 48 58 2a 63 6f 73 48 5a 0d |nHZ-sinHX*cosHZ.| 00001ea0 0f a0 13 3b f4 20 20 63 6f 73 48 58 2a 63 6f 73 |...;. cosHX*cos| 00001eb0 48 59 0d 0f aa 0a 3b f4 20 20 54 5a 0d 0f b4 21 |HY....;. TZ...!| 00001ec0 20 20 20 20 20 20 20 20 20 20 4d 55 4c 20 20 20 | MUL | 00001ed0 20 20 20 20 54 2c 43 48 58 2c 53 48 59 0d 0f be | T,CHX,SHY...| 00001ee0 23 20 20 20 20 20 20 20 20 20 20 4d 4f 56 20 20 |# MOV | 00001ef0 20 20 20 20 20 54 2c 54 2c 41 53 52 20 23 31 35 | T,T,ASR #15| 00001f00 0d 0f c8 1b 20 20 20 20 20 20 20 20 20 20 4d 4f |.... MO| 00001f10 56 20 20 20 20 20 20 20 53 2c 54 0d 0f d2 1f 20 |V S,T.... | 00001f20 20 20 20 20 20 20 20 20 20 4d 55 4c 20 20 20 20 | MUL | 00001f30 20 20 20 54 2c 43 48 5a 2c 54 0d 0f dc 21 20 20 | T,CHZ,T...! | 00001f40 20 20 20 20 20 20 20 20 4d 55 4c 20 20 20 20 20 | MUL | 00001f50 20 20 48 2c 53 48 58 2c 53 48 5a 0d 0f e6 1d 20 | H,SHX,SHZ.... | 00001f60 20 20 20 20 20 20 20 20 20 53 55 42 20 20 20 20 | SUB | 00001f70 20 20 20 54 2c 48 2c 54 0d 0f f0 23 20 20 20 20 | T,H,T...# | 00001f80 20 20 20 20 20 20 4d 4f 56 20 20 20 20 20 20 20 | MOV | 00001f90 54 2c 54 2c 41 53 52 20 23 31 35 0d 0f fa 1f 20 |T,T,ASR #15.... | 00001fa0 20 20 20 20 20 20 20 20 20 4d 55 4c 20 20 20 20 | MUL | 00001fb0 20 20 20 53 2c 53 48 5a 2c 53 0d 10 04 23 20 20 | S,SHZ,S...# | 00001fc0 20 20 20 20 20 20 20 20 4d 4c 41 20 20 20 20 20 | MLA | 00001fd0 20 20 48 2c 53 48 58 2c 43 48 5a 2c 53 0d 10 0e | H,SHX,CHZ,S...| 00001fe0 1e 20 20 20 20 20 20 20 20 20 20 52 53 42 20 20 |. RSB | 00001ff0 20 20 20 20 20 53 2c 48 2c 23 30 0d 10 18 23 20 | S,H,#0...# | 00002000 20 20 20 20 20 20 20 20 20 4d 4f 56 20 20 20 20 | MOV | 00002010 20 20 20 53 2c 53 2c 4c 53 52 20 23 31 35 0d 10 | S,S,LSR #15..| 00002020 22 25 20 20 20 20 20 20 20 20 20 20 41 44 44 20 |"% ADD | 00002030 20 20 20 20 20 20 54 2c 53 2c 54 2c 4c 53 4c 20 | T,S,T,LSL | 00002040 23 31 36 0d 10 2c 1d 20 20 20 20 20 20 20 20 20 |#16..,. | 00002050 20 53 54 52 20 20 20 20 20 20 20 54 2c 43 31 44 | STR T,C1D| 00002060 0d 10 36 21 20 20 20 20 20 20 20 20 20 20 4d 55 |..6! MU| 00002070 4c 20 20 20 20 20 20 20 54 2c 43 48 58 2c 43 48 |L T,CHX,CH| 00002080 59 0d 10 40 23 20 20 20 20 20 20 20 20 20 20 4d |Y..@# M| 00002090 4f 56 20 20 20 20 20 20 20 54 2c 54 2c 41 53 52 |OV T,T,ASR| 000020a0 20 23 31 35 0d 10 4a 26 20 20 20 20 20 20 20 20 | #15..J& | 000020b0 20 20 41 44 44 20 20 20 20 20 20 20 54 2c 54 5a | ADD T,TZ| 000020c0 2c 54 2c 4c 53 4c 20 23 31 36 0d 10 54 1d 20 20 |,T,LSL #16..T. | 000020d0 20 20 20 20 20 20 20 20 53 54 52 20 20 20 20 20 | STR | 000020e0 20 20 54 2c 43 32 44 0d 10 5e 25 20 20 20 20 20 | T,C2D..^% | 000020f0 20 20 20 20 20 4c 44 4d 46 44 20 20 20 20 20 31 | LDMFD 1| 00002100 33 21 2c 7b 30 2d 31 32 2c 50 43 7d 0d 10 68 05 |3!,{0-12,PC}..h.| 00002110 5d 0d 10 72 05 ed 0d 10 7c 09 51 25 3d 50 25 0d |]..r....|.Q%=P%.| 00002120 10 86 05 e1 0d 10 90 04 0d 10 9a 12 dd 20 f2 6d |............. .m| 00002130 6f 76 65 6f 62 6a 65 63 74 73 0d 10 a4 12 73 65 |oveobjects....se| 00002140 6e 74 69 6e 65 6c 3d 31 3c 3c 33 31 0d 10 ae 10 |ntinel=1<<31....| 00002150 78 6d 69 6e 3d 31 30 30 2a 46 49 58 0d 10 b8 10 |xmin=100*FIX....| 00002160 78 6d 61 78 3d 31 30 30 2a 46 49 58 0d 10 c2 10 |xmax=100*FIX....| 00002170 79 6d 69 6e 3d 31 30 30 2a 46 49 58 0d 10 cc 10 |ymin=100*FIX....| 00002180 79 6d 61 78 3d 31 30 30 2a 46 49 58 0d 10 d6 0e |ymax=100*FIX....| 00002190 7a 6d 69 6e 3d 30 2a 46 49 58 0d 10 e0 10 7a 6d |zmin=0*FIX....zm| 000021a0 61 78 3d 32 35 36 2a 46 49 58 0d 10 ea 14 e3 20 |ax=256*FIX..... | 000021b0 50 41 53 53 3d 30 20 b8 20 32 20 88 20 32 0d 10 |PASS=0 . 2 . 2..| 000021c0 f4 09 50 25 3d 51 25 0d 10 fe 0d 5b 4f 50 54 20 |..P%=Q%....[OPT | 000021d0 50 41 53 53 0d 11 08 14 2e 74 6d 70 20 20 20 20 |PASS.....tmp | 000021e0 20 20 45 51 55 44 20 30 0d 11 12 10 2e 6d 6f 76 | EQUD 0.....mov| 000021f0 65 6f 62 6a 65 63 74 73 0d 11 1c 22 20 20 20 20 |eobjects..." | 00002200 20 20 20 20 20 20 53 54 4d 46 44 20 20 20 20 20 | STMFD | 00002210 31 33 21 2c 7b 30 2d 31 32 7d 0d 11 26 1e 20 20 |13!,{0-12}..&. | 00002220 20 20 20 20 20 20 20 20 53 54 52 20 20 20 20 20 | STR | 00002230 20 20 31 33 2c 74 6d 70 0d 11 30 1c 20 20 20 20 | 13,tmp..0. | 00002240 20 20 20 20 20 20 4d 4f 56 20 20 20 20 20 20 20 | MOV | 00002250 31 32 2c 30 0d 11 3a 0e 2e 6d 6f 76 65 5f 6c 6f |12,0..:..move_lo| 00002260 6f 70 0d 11 44 36 20 20 20 20 20 20 20 20 20 20 |op..D6 | 00002270 4c 44 4d 49 41 20 20 20 20 20 31 32 2c 7b 30 2c |LDMIA 12,{0,| 00002280 31 2c 32 2c 33 2c 34 2c 35 2c 36 2c 37 2c 38 2c |1,2,3,4,5,6,7,8,| 00002290 39 2c 31 30 2c 31 31 7d 0d 11 4e 23 20 20 20 20 |9,10,11}..N# | 000022a0 20 20 20 20 20 20 43 4d 50 20 20 20 20 20 20 20 | CMP | 000022b0 30 2c 23 73 65 6e 74 69 6e 65 6c 0d 11 58 20 20 |0,#sentinel..X | 000022c0 20 20 20 20 20 20 20 20 20 42 45 51 20 20 20 20 | BEQ | 000022d0 20 20 20 6d 6f 76 65 5f 65 6e 64 0d 11 62 04 0d | move_end..b..| 000022e0 11 6c 30 20 20 20 20 20 20 20 20 20 20 41 44 44 |.l0 ADD| 000022f0 20 20 20 20 20 20 20 30 2c 30 2c 33 20 20 20 20 | 0,0,3 | 00002300 20 20 20 20 20 20 20 3b 20 78 3d 78 2b 64 78 0d | ; x=x+dx.| 00002310 11 76 22 20 20 20 20 20 20 20 20 20 20 41 44 44 |.v" ADD| 00002320 20 20 20 20 20 20 20 31 33 2c 30 2c 23 78 6d 69 | 13,0,#xmi| 00002330 6e 0d 11 80 42 20 20 20 20 20 20 20 20 20 20 43 |n...B C| 00002340 4d 50 20 20 20 20 20 20 20 31 33 2c 23 78 6d 61 |MP 13,#xma| 00002350 78 2b 78 6d 69 6e 20 20 20 3b 20 69 66 20 78 3c |x+xmin ; if x<| 00002360 78 6d 69 6e 20 6f 72 20 78 3e 78 6d 61 78 20 74 |xmin or x>xmax t| 00002370 68 65 6e 0d 11 8a 3a 20 20 20 20 20 20 20 20 20 |hen...: | 00002380 20 52 53 42 48 49 20 20 20 20 20 33 2c 33 2c 23 | RSBHI 3,3,#| 00002390 30 20 20 20 20 20 20 20 20 20 20 3b 20 64 78 3d |0 ; dx=| 000023a0 2d 64 78 3b 20 78 3d 78 2b 32 2a 64 78 0d 11 94 |-dx; x=x+2*dx...| 000023b0 24 20 20 20 20 20 20 20 20 20 20 41 44 44 48 49 |$ ADDHI| 000023c0 20 20 20 20 20 30 2c 30 2c 33 2c 4c 53 4c 20 23 | 0,0,3,LSL #| 000023d0 31 0d 11 9e 04 0d 11 a8 1d 20 20 20 20 20 20 20 |1........ | 000023e0 20 20 20 41 44 44 20 20 20 20 20 20 20 31 2c 31 | ADD 1,1| 000023f0 2c 34 0d 11 b2 22 20 20 20 20 20 20 20 20 20 20 |,4..." | 00002400 41 44 44 20 20 20 20 20 20 20 31 33 2c 31 2c 23 |ADD 13,1,#| 00002410 79 6d 69 6e 0d 11 bc 25 20 20 20 20 20 20 20 20 |ymin...% | 00002420 20 20 43 4d 50 20 20 20 20 20 20 20 31 33 2c 23 | CMP 13,#| 00002430 79 6d 61 78 2b 79 6d 69 6e 0d 11 c6 1e 20 20 20 |ymax+ymin.... | 00002440 20 20 20 20 20 20 20 52 53 42 48 49 20 20 20 20 | RSBHI | 00002450 20 34 2c 34 2c 23 30 0d 11 d0 24 20 20 20 20 20 | 4,4,#0...$ | 00002460 20 20 20 20 20 41 44 44 48 49 20 20 20 20 20 31 | ADDHI 1| 00002470 2c 31 2c 34 2c 4c 53 4c 20 23 31 0d 11 da 04 0d |,1,4,LSL #1.....| 00002480 11 e4 1d 20 20 20 20 20 20 20 20 20 20 41 44 44 |... ADD| 00002490 20 20 20 20 20 20 20 32 2c 32 2c 35 0d 11 ee 22 | 2,2,5..."| 000024a0 20 20 20 20 20 20 20 20 20 20 53 55 42 20 20 20 | SUB | 000024b0 20 20 20 20 31 33 2c 32 2c 23 7a 6d 69 6e 0d 11 | 13,2,#zmin..| 000024c0 f8 25 20 20 20 20 20 20 20 20 20 20 43 4d 50 20 |.% CMP | 000024d0 20 20 20 20 20 20 31 33 2c 23 7a 6d 61 78 2d 7a | 13,#zmax-z| 000024e0 6d 69 6e 0d 12 02 1e 20 20 20 20 20 20 20 20 20 |min.... | 000024f0 20 52 53 42 48 49 20 20 20 20 20 35 2c 35 2c 23 | RSBHI 5,5,#| 00002500 30 0d 12 0c 24 20 20 20 20 20 20 20 20 20 20 41 |0...$ A| 00002510 44 44 48 49 20 20 20 20 20 32 2c 32 2c 35 2c 4c |DDHI 2,2,5,L| 00002520 53 4c 20 23 31 0d 12 16 04 0d 12 20 32 20 20 20 |SL #1...... 2 | 00002530 20 20 20 20 20 20 20 41 44 44 20 20 20 20 20 20 | ADD | 00002540 20 36 2c 36 2c 39 20 20 20 20 20 20 20 20 20 20 | 6,6,9 | 00002550 3b 20 68 78 3d 68 78 2b 64 68 78 0d 12 2a 1e 20 |; hx=hx+dhx..*. | 00002560 20 20 20 20 20 20 20 20 20 41 44 44 20 20 20 20 | ADD | 00002570 20 20 20 37 2c 37 2c 31 30 0d 12 34 1e 20 20 20 | 7,7,10..4. | 00002580 20 20 20 20 20 20 20 41 44 44 20 20 20 20 20 20 | ADD | 00002590 20 38 2c 38 2c 31 31 0d 12 3e 2e 20 20 20 20 20 | 8,8,11..>. | 000025a0 20 20 20 20 20 53 54 4d 49 41 20 20 20 20 20 31 | STMIA 1| 000025b0 32 2c 7b 30 2c 31 2c 32 2c 33 2c 34 2c 35 2c 36 |2,{0,1,2,3,4,5,6| 000025c0 2c 37 2c 38 7d 0d 12 48 2a 20 20 20 20 20 20 20 |,7,8}..H* | 000025d0 20 20 20 41 44 44 20 20 20 20 20 20 20 31 32 2c | ADD 12,| 000025e0 31 32 2c 23 4d 4f 54 49 4f 4e 5f 53 49 5a 45 0d |12,#MOTION_SIZE.| 000025f0 12 52 04 0d 12 5c 21 20 20 20 20 20 20 20 20 20 |.R...\! | 00002600 20 42 41 4c 20 20 20 20 20 20 20 6d 6f 76 65 5f | BAL move_| 00002610 6c 6f 6f 70 0d 12 66 04 0d 12 70 1e 2e 6d 6f 76 |loop..f...p..mov| 00002620 65 5f 65 6e 64 20 4c 44 52 20 20 20 20 20 20 20 |e_end LDR | 00002630 31 33 2c 74 6d 70 0d 12 7a 22 20 20 20 20 20 20 |13,tmp..z" | 00002640 20 20 20 20 4c 44 4d 46 44 20 20 20 20 20 31 33 | LDMFD 13| 00002650 21 2c 7b 30 2d 31 32 7d 0d 12 84 1e 20 20 20 20 |!,{0-12}.... | 00002660 20 20 20 20 20 20 4d 4f 56 20 20 20 20 20 20 20 | MOV | 00002670 50 43 2c 52 31 34 0d 12 8e 04 0d 12 98 0f 2e 6d |PC,R14.........m| 00002680 6f 76 65 6f 62 6a 65 63 74 0d 12 a2 22 20 20 20 |oveobject..." | 00002690 20 20 20 20 20 20 20 53 54 4d 46 44 20 20 20 20 | STMFD | 000026a0 20 31 33 21 2c 7b 30 2d 31 32 7d 0d 12 ac 1e 20 | 13!,{0-12}.... | 000026b0 20 20 20 20 20 20 20 20 20 53 54 52 20 20 20 20 | STR | 000026c0 20 20 20 31 33 2c 74 6d 70 0d 12 b6 1c 20 20 20 | 13,tmp.... | 000026d0 20 20 20 20 20 20 20 4d 4f 56 20 20 20 20 20 20 | MOV | 000026e0 20 31 32 2c 30 0d 12 c0 04 0d 12 ca 36 20 20 20 | 12,0.......6 | 000026f0 20 20 20 20 20 20 20 4c 44 4d 49 41 20 20 20 20 | LDMIA | 00002700 20 31 32 2c 7b 30 2c 31 2c 32 2c 33 2c 34 2c 35 | 12,{0,1,2,3,4,5| 00002710 2c 36 2c 37 2c 38 2c 39 2c 31 30 2c 31 31 7d 0d |,6,7,8,9,10,11}.| 00002720 12 d4 04 0d 12 de 30 20 20 20 20 20 20 20 20 20 |......0 | 00002730 20 41 44 44 20 20 20 20 20 20 20 30 2c 30 2c 33 | ADD 0,0,3| 00002740 20 20 20 20 20 20 20 20 20 20 20 3b 20 78 3d 78 | ; x=x| 00002750 2b 64 78 0d 12 e8 22 20 20 20 20 20 20 20 20 20 |+dx..." | 00002760 20 41 44 44 20 20 20 20 20 20 20 31 33 2c 30 2c | ADD 13,0,| 00002770 23 78 6d 69 6e 0d 12 f2 42 20 20 20 20 20 20 20 |#xmin...B | 00002780 20 20 20 43 4d 50 20 20 20 20 20 20 20 31 33 2c | CMP 13,| 00002790 23 78 6d 61 78 2b 78 6d 69 6e 20 20 20 3b 20 69 |#xmax+xmin ; i| 000027a0 66 20 78 3c 78 6d 69 6e 20 6f 72 20 78 3e 78 6d |f x<xmin or x>xm| 000027b0 61 78 20 74 68 65 6e 0d 12 fc 3a 20 20 20 20 20 |ax then...: | 000027c0 20 20 20 20 20 52 53 42 48 49 20 20 20 20 20 33 | RSBHI 3| 000027d0 2c 33 2c 23 30 20 20 20 20 20 20 20 20 20 20 3b |,3,#0 ;| 000027e0 20 64 78 3d 2d 64 78 3b 20 78 3d 78 2b 32 2a 64 | dx=-dx; x=x+2*d| 000027f0 78 0d 13 06 24 20 20 20 20 20 20 20 20 20 20 41 |x...$ A| 00002800 44 44 48 49 20 20 20 20 20 30 2c 30 2c 33 2c 4c |DDHI 0,0,3,L| 00002810 53 4c 20 23 31 0d 13 10 04 0d 13 1a 1d 20 20 20 |SL #1........ | 00002820 20 20 20 20 20 20 20 41 44 44 20 20 20 20 20 20 | ADD | 00002830 20 31 2c 31 2c 34 0d 13 24 22 20 20 20 20 20 20 | 1,1,4..$" | 00002840 20 20 20 20 41 44 44 20 20 20 20 20 20 20 31 33 | ADD 13| 00002850 2c 31 2c 23 79 6d 69 6e 0d 13 2e 25 20 20 20 20 |,1,#ymin...% | 00002860 20 20 20 20 20 20 43 4d 50 20 20 20 20 20 20 20 | CMP | 00002870 31 33 2c 23 79 6d 61 78 2b 79 6d 69 6e 0d 13 38 |13,#ymax+ymin..8| 00002880 1e 20 20 20 20 20 20 20 20 20 20 52 53 42 48 49 |. RSBHI| 00002890 20 20 20 20 20 34 2c 34 2c 23 30 0d 13 42 24 20 | 4,4,#0..B$ | 000028a0 20 20 20 20 20 20 20 20 20 41 44 44 48 49 20 20 | ADDHI | 000028b0 20 20 20 31 2c 31 2c 34 2c 4c 53 4c 20 23 31 0d | 1,1,4,LSL #1.| 000028c0 13 4c 04 0d 13 56 1d 20 20 20 20 20 20 20 20 20 |.L...V. | 000028d0 20 41 44 44 20 20 20 20 20 20 20 32 2c 32 2c 35 | ADD 2,2,5| 000028e0 0d 13 60 22 20 20 20 20 20 20 20 20 20 20 53 55 |..`" SU| 000028f0 42 20 20 20 20 20 20 20 31 33 2c 32 2c 23 7a 6d |B 13,2,#zm| 00002900 69 6e 0d 13 6a 25 20 20 20 20 20 20 20 20 20 20 |in..j% | 00002910 43 4d 50 20 20 20 20 20 20 20 31 33 2c 23 7a 6d |CMP 13,#zm| 00002920 61 78 2d 7a 6d 69 6e 0d 13 74 1e 20 20 20 20 20 |ax-zmin..t. | 00002930 20 20 20 20 20 52 53 42 48 49 20 20 20 20 20 35 | RSBHI 5| 00002940 2c 35 2c 23 30 0d 13 7e 24 20 20 20 20 20 20 20 |,5,#0..~$ | 00002950 20 20 20 41 44 44 48 49 20 20 20 20 20 32 2c 32 | ADDHI 2,2| 00002960 2c 35 2c 4c 53 4c 20 23 31 0d 13 88 04 0d 13 92 |,5,LSL #1.......| 00002970 32 20 20 20 20 20 20 20 20 20 20 41 44 44 20 20 |2 ADD | 00002980 20 20 20 20 20 36 2c 36 2c 39 20 20 20 20 20 20 | 6,6,9 | 00002990 20 20 20 20 3b 20 68 78 3d 68 78 2b 64 68 78 0d | ; hx=hx+dhx.| 000029a0 13 9c 1e 20 20 20 20 20 20 20 20 20 20 41 44 44 |... ADD| 000029b0 20 20 20 20 20 20 20 37 2c 37 2c 31 30 0d 13 a6 | 7,7,10...| 000029c0 1e 20 20 20 20 20 20 20 20 20 20 41 44 44 20 20 |. ADD | 000029d0 20 20 20 20 20 38 2c 38 2c 31 31 0d 13 b0 2e 20 | 8,8,11.... | 000029e0 20 20 20 20 20 20 20 20 20 53 54 4d 49 41 20 20 | STMIA | 000029f0 20 20 20 31 32 2c 7b 30 2c 31 2c 32 2c 33 2c 34 | 12,{0,1,2,3,4| 00002a00 2c 35 2c 36 2c 37 2c 38 7d 0d 13 ba 04 0d 13 c4 |,5,6,7,8}.......| 00002a10 1e 20 20 20 20 20 20 20 20 20 20 4c 44 52 20 20 |. LDR | 00002a20 20 20 20 20 20 31 33 2c 74 6d 70 0d 13 ce 22 20 | 13,tmp..." | 00002a30 20 20 20 20 20 20 20 20 20 4c 44 4d 46 44 20 20 | LDMFD | 00002a40 20 20 20 31 33 21 2c 7b 30 2d 31 32 7d 0d 13 d8 | 13!,{0-12}...| 00002a50 1e 20 20 20 20 20 20 20 20 20 20 4d 4f 56 20 20 |. MOV | 00002a60 20 20 20 20 20 50 43 2c 52 31 34 0d 13 e2 05 5d | PC,R14....]| 00002a70 0d 13 ec 04 0d 13 f6 04 0d 14 00 05 ed 0d 14 0a |................| 00002a80 09 51 25 3d 50 25 0d 14 14 05 e1 0d 14 1e 04 0d |.Q%=P%..........| 00002a90 14 28 04 0d 14 32 04 0d 14 3c 10 dd 20 f2 74 72 |.(...2...<.. .tr| 00002aa0 61 6e 73 66 6f 72 6d 0d 14 46 33 41 31 3d 30 3a |ansform..F3A1=0:| 00002ab0 41 32 3d 31 3a 42 31 3d 32 3a 42 32 3d 33 3a 43 |A2=1:B1=2:B2=3:C| 00002ac0 31 3d 34 3a 43 32 3d 35 3a 54 3d 36 3a 44 49 54 |1=4:C2=5:T=6:DIT| 00002ad0 3d 37 3a 41 3d 38 3a 42 3d 39 0d 14 50 21 55 3d |=7:A=8:B=9..P!U=| 00002ae0 31 30 3a 56 3d 31 31 3a 57 3d 31 32 3a 58 3d 31 |10:V=11:W=12:X=1| 00002af0 31 3a 59 3d 31 33 3a 5a 3d 31 34 0d 14 5a 14 e3 |1:Y=13:Z=14..Z..| 00002b00 20 50 41 53 53 3d 30 20 b8 20 32 20 88 20 32 0d | PASS=0 . 2 . 2.| 00002b10 14 64 09 50 25 3d 51 25 0d 14 6e 0d 5b 4f 50 54 |.d.P%=Q%..n.[OPT| 00002b20 20 50 41 53 53 0d 14 78 1b 2e 41 31 44 20 45 51 | PASS..x..A1D EQ| 00002b30 55 44 20 30 3a 2e 41 32 44 20 45 51 55 44 20 30 |UD 0:.A2D EQUD 0| 00002b40 0d 14 82 1b 2e 42 31 44 20 45 51 55 44 20 30 3a |.....B1D EQUD 0:| 00002b50 2e 42 32 44 20 45 51 55 44 20 30 0d 14 8c 1b 2e |.B2D EQUD 0.....| 00002b60 43 31 44 20 45 51 55 44 20 30 3a 2e 43 32 44 20 |C1D EQUD 0:.C2D | 00002b70 45 51 55 44 20 30 0d 14 96 16 2e 44 49 54 44 20 |EQUD 0.....DITD | 00002b80 45 51 55 44 20 44 49 54 41 42 4c 45 0d 14 a0 0e |EQUD DITABLE....| 00002b90 2e 56 44 20 45 51 55 44 20 30 0d 14 aa 0e 2e 53 |.VD EQUD 0.....S| 00002ba0 50 20 45 51 55 44 20 30 0d 14 b4 0e 2e 4c 4b 20 |P EQUD 0.....LK | 00002bb0 45 51 55 44 20 30 0d 14 be 04 0d 14 c8 1d 2e 73 |EQUD 0.........s| 00002bc0 63 72 65 65 6e 31 20 45 51 55 44 20 31 34 38 3a |creen1 EQUD 148:| 00002bd0 45 51 55 44 20 2d 31 0d 14 d2 12 2e 73 63 72 65 |EQUD -1.....scre| 00002be0 65 6e 20 45 51 55 44 20 30 0d 14 dc 09 2e 73 65 |en EQUD 0.....se| 00002bf0 74 32 0d 14 e6 3a 41 44 52 20 52 30 2c 73 63 72 |t2...:ADR R0,scr| 00002c00 65 65 6e 31 3a 41 44 52 20 52 31 2c 73 63 72 65 |een1:ADR R1,scre| 00002c10 65 6e 3a 53 57 49 20 22 4f 53 5f 52 65 61 64 56 |en:SWI "OS_ReadV| 00002c20 64 75 56 61 72 69 61 62 6c 65 73 22 0d 14 f0 0e |duVariables"....| 00002c30 4d 4f 56 20 50 43 2c 52 31 34 0d 14 fa 04 0d 15 |MOV PC,R14......| 00002c40 04 15 2e 43 4f 4c 44 20 20 20 20 20 45 51 55 44 |...COLD EQUD| 00002c50 20 31 35 0d 15 0e 14 2e 43 54 45 4c 20 20 20 20 | 15.....CTEL | 00002c60 20 45 51 55 44 20 30 0d 15 18 04 0d 15 22 13 2e | EQUD 0......"..| 00002c70 74 72 61 6e 73 66 6f 72 6d 5f 64 72 61 77 0d 15 |transform_draw..| 00002c80 2c 25 20 20 20 20 20 20 20 20 20 20 53 54 4d 46 |,% STMF| 00002c90 44 20 20 20 20 20 31 33 21 2c 7b 30 2d 31 32 2c |D 13!,{0-12,| 00002ca0 31 34 7d 0d 15 36 1b 20 20 20 20 20 20 20 20 20 |14}..6. | 00002cb0 20 4d 4f 56 20 20 20 20 20 20 20 41 2c 30 0d 15 | MOV A,0..| 00002cc0 40 04 0d 15 4a 04 0d 15 54 1d 20 20 20 20 20 20 |@...J...T. | 00002cd0 20 20 20 20 53 54 52 20 20 20 20 20 20 20 31 33 | STR 13| 00002ce0 2c 53 50 0d 15 5e 1d 20 20 20 20 20 20 20 20 20 |,SP..^. | 00002cf0 20 41 44 52 20 20 20 20 20 20 20 54 2c 41 31 44 | ADR T,A1D| 00002d00 0d 15 68 31 20 20 20 20 20 20 20 20 20 20 4c 44 |..h1 LD| 00002d10 4d 49 41 20 20 20 20 20 54 2c 7b 41 31 2c 41 32 |MIA T,{A1,A2| 00002d20 2c 42 31 2c 42 32 2c 43 31 2c 43 32 2c 44 49 54 |,B1,B2,C1,C2,DIT| 00002d30 7d 0d 15 72 24 20 20 20 20 20 20 20 20 20 20 4c |}..r$ L| 00002d40 44 4d 49 41 20 20 20 20 20 28 41 29 21 2c 7b 58 |DMIA (A)!,{X| 00002d50 2c 59 2c 5a 7d 0d 15 7c 20 20 20 20 20 20 20 20 |,Y,Z}..| | 00002d60 20 20 20 4c 44 52 20 20 20 20 20 20 20 42 2c 73 | LDR B,s| 00002d70 63 72 65 65 6e 0d 15 86 0f 2e 74 72 61 6e 73 5f |creen.....trans_| 00002d80 64 72 61 77 0d 15 90 3c 20 20 20 20 20 20 20 20 |draw...< | 00002d90 20 20 4d 4f 56 20 20 20 20 20 20 20 54 2c 43 31 | MOV T,C1| 00002da0 2c 41 53 52 20 23 31 36 20 20 20 20 20 20 20 3b |,ASR #16 ;| 00002db0 20 f4 20 7a 20 74 72 61 6e 73 66 6f 72 6d 65 64 | . z transformed| 00002dc0 0d 15 9a 1d 20 20 20 20 20 20 20 20 20 20 4d 55 |.... MU| 00002dd0 4c 20 20 20 20 20 20 20 57 2c 54 2c 58 0d 15 a4 |L W,T,X...| 00002de0 24 20 20 20 20 20 20 20 20 20 20 4d 4f 56 20 20 |$ MOV | 00002df0 20 20 20 20 20 54 2c 43 31 2c 4c 53 4c 20 23 31 | T,C1,LSL #1| 00002e00 36 0d 15 ae 23 20 20 20 20 20 20 20 20 20 20 4d |6...# M| 00002e10 4f 56 20 20 20 20 20 20 20 54 2c 54 2c 41 53 52 |OV T,T,ASR| 00002e20 20 23 31 36 0d 15 b8 1f 20 20 20 20 20 20 20 20 | #16.... | 00002e30 20 20 4d 4c 41 20 20 20 20 20 20 20 57 2c 59 2c | MLA W,Y,| 00002e40 54 2c 57 0d 15 c2 24 20 20 20 20 20 20 20 20 20 |T,W...$ | 00002e50 20 4d 4f 56 20 20 20 20 20 20 20 54 2c 43 32 2c | MOV T,C2,| 00002e60 41 53 52 20 23 31 36 0d 15 cc 1f 20 20 20 20 20 |ASR #16.... | 00002e70 20 20 20 20 20 4d 4c 41 20 20 20 20 20 20 20 57 | MLA W| 00002e80 2c 5a 2c 54 2c 57 0d 15 d6 24 20 20 20 20 20 20 |,Z,T,W...$ | 00002e90 20 20 20 20 4d 4f 56 20 20 20 20 20 20 20 54 2c | MOV T,| 00002ea0 43 32 2c 4c 53 4c 20 23 31 36 0d 15 e0 23 20 20 |C2,LSL #16...# | 00002eb0 20 20 20 20 20 20 20 20 4d 4f 56 20 20 20 20 20 | MOV | 00002ec0 20 20 54 2c 54 2c 41 53 52 20 23 31 36 0d 15 ea | T,T,ASR #16...| 00002ed0 25 20 20 20 20 20 20 20 20 20 20 41 44 44 53 20 |% ADDS | 00002ee0 20 20 20 20 20 57 2c 54 2c 57 2c 41 53 52 20 23 | W,T,W,ASR #| 00002ef0 31 35 0d 15 f4 21 20 20 20 20 20 20 20 20 20 20 |15...! | 00002f00 43 4d 50 20 20 20 20 20 20 20 57 2c 23 31 30 2a |CMP W,#10*| 00002f10 46 49 58 0d 15 fe 1e 20 20 20 20 20 20 20 20 20 |FIX.... | 00002f20 20 42 4d 49 20 20 20 20 20 20 20 6e 6f 64 72 61 | BMI nodra| 00002f30 77 0d 16 08 04 0d 16 12 3a 20 20 20 20 20 20 20 |w.......: | 00002f40 20 20 20 4d 4f 56 20 20 20 20 20 20 20 54 2c 41 | MOV T,A| 00002f50 31 2c 41 53 52 20 23 31 36 20 20 20 20 20 3b 20 |1,ASR #16 ; | 00002f60 f4 20 78 20 74 72 61 6e 73 66 6f 72 6d 65 64 0d |. x transformed.| 00002f70 16 1c 1d 20 20 20 20 20 20 20 20 20 20 4d 55 4c |... MUL| 00002f80 20 20 20 20 20 20 20 55 2c 58 2c 54 0d 16 26 24 | U,X,T..&$| 00002f90 20 20 20 20 20 20 20 20 20 20 4d 4f 56 20 20 20 | MOV | 00002fa0 20 20 20 20 54 2c 41 31 2c 4c 53 4c 20 23 31 36 | T,A1,LSL #16| 00002fb0 0d 16 30 23 20 20 20 20 20 20 20 20 20 20 4d 4f |..0# MO| 00002fc0 56 20 20 20 20 20 20 20 54 2c 54 2c 41 53 52 20 |V T,T,ASR | 00002fd0 23 31 36 0d 16 3a 1f 20 20 20 20 20 20 20 20 20 |#16..:. | 00002fe0 20 4d 4c 41 20 20 20 20 20 20 20 55 2c 59 2c 54 | MLA U,Y,T| 00002ff0 2c 55 0d 16 44 24 20 20 20 20 20 20 20 20 20 20 |,U..D$ | 00003000 4d 4f 56 20 20 20 20 20 20 20 54 2c 41 32 2c 41 |MOV T,A2,A| 00003010 53 52 20 23 31 36 0d 16 4e 1f 20 20 20 20 20 20 |SR #16..N. | 00003020 20 20 20 20 4d 4c 41 20 20 20 20 20 20 20 55 2c | MLA U,| 00003030 5a 2c 54 2c 55 0d 16 58 24 20 20 20 20 20 20 20 |Z,T,U..X$ | 00003040 20 20 20 4d 4f 56 20 20 20 20 20 20 20 54 2c 41 | MOV T,A| 00003050 32 2c 4c 53 4c 20 23 31 36 0d 16 62 23 20 20 20 |2,LSL #16..b# | 00003060 20 20 20 20 20 20 20 4d 4f 56 20 20 20 20 20 20 | MOV | 00003070 20 54 2c 54 2c 41 53 52 20 23 31 36 0d 16 6c 25 | T,T,ASR #16..l%| 00003080 20 20 20 20 20 20 20 20 20 20 41 44 44 20 20 20 | ADD | 00003090 20 20 20 20 55 2c 54 2c 55 2c 41 53 52 20 23 31 | U,T,U,ASR #1| 000030a0 35 0d 16 76 04 0d 16 80 38 20 20 20 20 20 20 20 |5..v....8 | 000030b0 20 20 20 4d 4f 56 20 20 20 20 20 20 20 54 2c 42 | MOV T,B| 000030c0 31 2c 41 53 52 20 23 31 36 20 20 20 3b 20 f4 20 |1,ASR #16 ; . | 000030d0 79 20 74 72 61 6e 73 66 6f 72 6d 65 64 0d 16 8a |y transformed...| 000030e0 1d 20 20 20 20 20 20 20 20 20 20 4d 55 4c 20 20 |. MUL | 000030f0 20 20 20 20 20 56 2c 54 2c 58 0d 16 94 24 20 20 | V,T,X...$ | 00003100 20 20 20 20 20 20 20 20 4d 4f 56 20 20 20 20 20 | MOV | 00003110 20 20 54 2c 42 31 2c 4c 53 4c 20 23 31 36 0d 16 | T,B1,LSL #16..| 00003120 9e 23 20 20 20 20 20 20 20 20 20 20 4d 4f 56 20 |.# MOV | 00003130 20 20 20 20 20 20 54 2c 54 2c 41 53 52 20 23 31 | T,T,ASR #1| 00003140 36 0d 16 a8 1f 20 20 20 20 20 20 20 20 20 20 4d |6.... M| 00003150 4c 41 20 20 20 20 20 20 20 56 2c 59 2c 54 2c 56 |LA V,Y,T,V| 00003160 0d 16 b2 24 20 20 20 20 20 20 20 20 20 20 4d 4f |...$ MO| 00003170 56 20 20 20 20 20 20 20 54 2c 42 32 2c 41 53 52 |V T,B2,ASR| 00003180 20 23 31 36 0d 16 bc 1f 20 20 20 20 20 20 20 20 | #16.... | 00003190 20 20 4d 4c 41 20 20 20 20 20 20 20 56 2c 5a 2c | MLA V,Z,| 000031a0 54 2c 56 0d 16 c6 24 20 20 20 20 20 20 20 20 20 |T,V...$ | 000031b0 20 4d 4f 56 20 20 20 20 20 20 20 54 2c 42 32 2c | MOV T,B2,| 000031c0 4c 53 4c 20 23 31 36 0d 16 d0 23 20 20 20 20 20 |LSL #16...# | 000031d0 20 20 20 20 20 4d 4f 56 20 20 20 20 20 20 20 54 | MOV T| 000031e0 2c 54 2c 41 53 52 20 23 31 36 0d 16 da 25 20 20 |,T,ASR #16...% | 000031f0 20 20 20 20 20 20 20 20 41 44 44 20 20 20 20 20 | ADD | 00003200 20 20 56 2c 54 2c 56 2c 41 53 52 20 23 31 35 0d | V,T,V,ASR #15.| 00003210 16 e4 04 0d 16 ee 4b 20 20 20 20 20 20 20 20 20 |......K | 00003220 20 4c 44 52 20 20 20 20 20 20 20 57 2c 5b 44 49 | LDR W,[DI| 00003230 54 2c 57 2c 4c 53 4c 20 23 32 5d 20 20 20 20 20 |T,W,LSL #2] | 00003240 3b 20 f4 20 70 65 72 73 70 65 63 74 69 76 65 20 |; . perspective | 00003250 74 72 61 6e 73 66 6f 72 6d 61 74 69 6f 6e 0d 16 |transformation..| 00003260 f8 1d 20 20 20 20 20 20 20 20 20 20 4d 55 4c 20 |.. MUL | 00003270 20 20 20 20 20 20 55 2c 57 2c 55 0d 17 02 1d 20 | U,W,U.... | 00003280 20 20 20 20 20 20 20 20 20 4d 55 4c 20 20 20 20 | MUL | 00003290 20 20 20 56 2c 57 2c 56 0d 17 0c 23 20 20 20 20 | V,W,V...# | 000032a0 20 20 20 20 20 20 4d 4f 56 20 20 20 20 20 20 20 | MOV | 000032b0 55 2c 55 2c 41 53 52 20 23 31 32 0d 17 16 23 20 |U,U,ASR #12...# | 000032c0 20 20 20 20 20 20 20 20 20 4d 4f 56 20 20 20 20 | MOV | 000032d0 20 20 20 56 2c 56 2c 41 53 52 20 23 31 32 0d 17 | V,V,ASR #12..| 000032e0 20 20 20 20 20 20 20 20 20 20 20 20 41 44 44 20 | ADD | 000032f0 20 20 20 20 20 20 55 2c 55 2c 23 31 36 30 0d 17 | U,U,#160..| 00003300 2a 20 20 20 20 20 20 20 20 20 20 20 52 53 42 20 |* RSB | 00003310 20 20 20 20 20 20 56 2c 56 2c 23 31 32 38 0d 17 | V,V,#128..| 00003320 34 04 0d 17 3e 46 20 20 20 20 20 20 20 20 20 20 |4...>F | 00003330 43 4d 50 20 20 20 20 20 20 20 55 2c 23 33 32 30 |CMP U,#320| 00003340 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3b | ;| 00003350 20 f4 20 63 6c 69 70 70 69 6e 67 20 61 6e 64 20 | . clipping and | 00003360 70 6c 6f 74 74 69 6e 67 0d 17 48 1e 20 20 20 20 |plotting..H. | 00003370 20 20 20 20 20 20 43 4d 50 4c 4f 20 20 20 20 20 | CMPLO | 00003380 56 2c 23 32 35 36 0d 17 52 24 20 20 20 20 20 20 |V,#256..R$ | 00003390 20 20 20 20 41 44 44 4c 4f 20 20 20 20 20 54 2c | ADDLO T,| 000033a0 56 2c 56 2c 4c 53 4c 20 23 32 0d 17 5c 24 20 20 |V,V,LSL #2..\$ | 000033b0 20 20 20 20 20 20 20 20 41 44 44 4c 4f 20 20 20 | ADDLO | 000033c0 20 20 54 2c 55 2c 54 2c 4c 53 4c 20 23 36 0d 17 | T,U,T,LSL #6..| 000033d0 66 1e 20 20 20 20 20 20 20 20 20 20 42 48 53 20 |f. BHS | 000033e0 20 20 20 20 20 20 6e 6f 64 72 61 77 0d 17 70 04 | nodraw..p.| 000033f0 0d 17 7a 1d 20 20 20 20 20 20 20 20 20 20 4c 44 |..z. LD| 00003400 52 42 20 20 20 20 20 5a 2c 43 4f 4c 44 0d 17 84 |RB Z,COLD...| 00003410 04 0d 17 8e 26 20 20 20 20 20 20 20 20 20 20 4c |....& L| 00003420 44 52 42 20 20 20 20 20 20 57 2c 5b 42 2c 54 2c |DRB W,[B,T,| 00003430 4c 53 52 20 23 31 5d 0d 17 98 1c 20 20 20 20 20 |LSR #1].... | 00003440 20 20 20 20 20 54 53 54 20 20 20 20 20 20 20 55 | TST U| 00003450 2c 23 31 0d 17 a2 1f 20 20 20 20 20 20 20 20 20 |,#1.... | 00003460 20 42 49 43 45 51 20 20 20 20 20 57 2c 57 2c 23 | BICEQ W,W,#| 00003470 31 35 0d 17 ac 22 20 20 20 20 20 20 20 20 20 20 |15..." | 00003480 42 49 43 4e 45 20 20 20 20 20 57 2c 57 2c 23 31 |BICNE W,W,#1| 00003490 35 2a 31 36 0d 17 b6 1c 20 20 20 20 20 20 20 20 |5*16.... | 000034a0 20 20 84 52 45 51 20 20 20 20 20 57 2c 57 2c 5a | .REQ W,W,Z| 000034b0 0d 17 c0 23 20 20 20 20 20 20 20 20 20 20 84 52 |...# .R| 000034c0 4e 45 20 20 20 20 20 57 2c 57 2c 5a 2c 4c 53 4c |NE W,W,Z,LSL| 000034d0 20 23 34 0d 17 ca 26 20 20 20 20 20 20 20 20 20 | #4...& | 000034e0 20 53 54 52 42 20 20 20 20 20 20 57 2c 5b 42 2c | STRB W,[B,| 000034f0 54 2c 4c 53 52 20 23 31 5d 0d 17 d4 04 0d 17 de |T,LSR #1].......| 00003500 46 2e 6e 6f 64 72 61 77 20 20 20 4c 44 4d 49 41 |F.nodraw LDMIA| 00003510 20 20 20 20 20 28 41 29 21 2c 7b 58 2c 59 2c 5a | (A)!,{X,Y,Z| 00003520 7d 20 20 20 20 20 20 20 20 3b f4 20 55 20 63 6f |} ;. U co| 00003530 6c 6f 75 72 20 70 72 65 76 69 6f 75 73 20 70 6f |lour previous po| 00003540 69 6e 74 0d 17 e8 20 20 20 20 20 20 20 20 20 20 |int... | 00003550 20 43 4d 50 20 20 20 20 20 20 20 58 2c 23 31 3c | CMP X,#1<| 00003560 3c 33 30 0d 17 f2 22 20 20 20 20 20 20 20 20 20 |<30..." | 00003570 20 42 4e 45 20 20 20 20 20 20 20 74 72 61 6e 73 | BNE trans| 00003580 5f 64 72 61 77 0d 17 fc 04 0d 18 06 1e 20 20 20 |_draw........ | 00003590 20 20 20 20 20 20 20 4c 44 52 20 20 20 20 20 20 | LDR | 000035a0 20 30 2c 43 54 45 4c 0d 18 10 1e 20 20 20 20 20 | 0,CTEL.... | 000035b0 20 20 20 20 20 41 44 44 20 20 20 20 20 20 20 30 | ADD 0| 000035c0 2c 30 2c 23 31 0d 18 1a 1c 20 20 20 20 20 20 20 |,0,#1.... | 000035d0 20 20 20 43 4d 50 20 20 20 20 20 20 20 30 2c 23 | CMP 0,#| 000035e0 34 0d 18 24 19 20 20 20 20 20 20 20 20 20 20 ec |4..$. .| 000035f0 51 20 20 20 20 20 30 2c 23 30 0d 18 2e 1e 20 20 |Q 0,#0.... | 00003600 20 20 20 20 20 20 20 20 53 54 52 20 20 20 20 20 | STR | 00003610 20 20 30 2c 43 54 45 4c 0d 18 38 1c 20 20 20 20 | 0,CTEL..8. | 00003620 20 20 20 20 20 20 42 4e 45 20 20 20 20 20 20 20 | BNE | 00003630 73 6b 69 70 0d 18 42 04 0d 18 4c 1e 20 20 20 20 |skip..B...L. | 00003640 20 20 20 20 20 20 4c 44 52 20 20 20 20 20 20 20 | LDR | 00003650 30 2c 43 4f 4c 44 0d 18 56 1e 20 20 20 20 20 20 |0,COLD..V. | 00003660 20 20 20 20 41 44 44 20 20 20 20 20 20 20 30 2c | ADD 0,| 00003670 30 2c 23 31 0d 18 60 1d 20 20 20 20 20 20 20 20 |0,#1..`. | 00003680 20 20 43 4d 50 20 20 20 20 20 20 20 30 2c 23 31 | CMP 0,#1| 00003690 36 0d 18 6a 19 20 20 20 20 20 20 20 20 20 20 ec |6..j. .| 000036a0 51 20 20 20 20 20 30 2c 23 31 0d 18 74 1e 20 20 |Q 0,#1..t. | 000036b0 20 20 20 20 20 20 20 20 53 54 52 20 20 20 20 20 | STR | 000036c0 20 20 30 2c 43 4f 4c 44 0d 18 7e 04 0d 18 88 09 | 0,COLD..~.....| 000036d0 2e 73 6b 69 70 0d 18 92 1d 20 20 20 20 20 20 20 |.skip.... | 000036e0 20 20 20 4c 44 52 20 20 20 20 20 20 20 31 33 2c | LDR 13,| 000036f0 53 50 0d 18 9c 25 20 20 20 20 20 20 20 20 20 20 |SP...% | 00003700 4c 44 4d 46 44 20 20 20 20 20 31 33 21 2c 7b 30 |LDMFD 13!,{0| 00003710 2d 31 32 2c 50 43 7d 0d 18 a6 04 0d 18 b0 14 2e |-12,PC}.........| 00003720 74 72 61 6e 73 66 6f 72 6d 5f 63 6c 65 61 72 0d |transform_clear.| 00003730 18 ba 25 20 20 20 20 20 20 20 20 20 20 53 54 4d |..% STM| 00003740 46 44 20 20 20 20 20 31 33 21 2c 7b 30 2d 31 32 |FD 13!,{0-12| 00003750 2c 31 34 7d 0d 18 c4 1b 20 20 20 20 20 20 20 20 |,14}.... | 00003760 20 20 4d 4f 56 20 20 20 20 20 20 20 41 2c 30 0d | MOV A,0.| 00003770 18 ce 1d 20 20 20 20 20 20 20 20 20 20 53 54 52 |... STR| 00003780 20 20 20 20 20 20 20 31 33 2c 53 50 0d 18 d8 1d | 13,SP....| 00003790 20 20 20 20 20 20 20 20 20 20 41 44 52 20 20 20 | ADR | 000037a0 20 20 20 20 54 2c 41 31 44 0d 18 e2 31 20 20 20 | T,A1D...1 | 000037b0 20 20 20 20 20 20 20 4c 44 4d 49 41 20 20 20 20 | LDMIA | 000037c0 20 54 2c 7b 41 31 2c 41 32 2c 42 31 2c 42 32 2c | T,{A1,A2,B1,B2,| 000037d0 43 31 2c 43 32 2c 44 49 54 7d 0d 18 ec 24 20 20 |C1,C2,DIT}...$ | 000037e0 20 20 20 20 20 20 20 20 4c 44 4d 49 41 20 20 20 | LDMIA | 000037f0 20 20 28 41 29 21 2c 7b 58 2c 59 2c 5a 7d 0d 18 | (A)!,{X,Y,Z}..| 00003800 f6 20 20 20 20 20 20 20 20 20 20 20 4c 44 52 20 |. LDR | 00003810 20 20 20 20 20 20 42 2c 73 63 72 65 65 6e 0d 19 | B,screen..| 00003820 00 10 2e 74 72 61 6e 73 5f 63 6c 65 61 72 0d 19 |...trans_clear..| 00003830 0a 3c 20 20 20 20 20 20 20 20 20 20 4d 4f 56 20 |.< MOV | 00003840 20 20 20 20 20 20 54 2c 43 31 2c 41 53 52 20 23 | T,C1,ASR #| 00003850 31 36 20 20 20 20 20 20 20 3b 20 f4 20 7a 20 74 |16 ; . z t| 00003860 72 61 6e 73 66 6f 72 6d 65 64 0d 19 14 1d 20 20 |ransformed.... | 00003870 20 20 20 20 20 20 20 20 4d 55 4c 20 20 20 20 20 | MUL | 00003880 20 20 57 2c 54 2c 58 0d 19 1e 24 20 20 20 20 20 | W,T,X...$ | 00003890 20 20 20 20 20 4d 4f 56 20 20 20 20 20 20 20 54 | MOV T| 000038a0 2c 43 31 2c 4c 53 4c 20 23 31 36 0d 19 28 23 20 |,C1,LSL #16..(# | 000038b0 20 20 20 20 20 20 20 20 20 4d 4f 56 20 20 20 20 | MOV | 000038c0 20 20 20 54 2c 54 2c 41 53 52 20 23 31 36 0d 19 | T,T,ASR #16..| 000038d0 32 1f 20 20 20 20 20 20 20 20 20 20 4d 4c 41 20 |2. MLA | 000038e0 20 20 20 20 20 20 57 2c 59 2c 54 2c 57 0d 19 3c | W,Y,T,W..<| 000038f0 24 20 20 20 20 20 20 20 20 20 20 4d 4f 56 20 20 |$ MOV | 00003900 20 20 20 20 20 54 2c 43 32 2c 41 53 52 20 23 31 | T,C2,ASR #1| 00003910 36 0d 19 46 1f 20 20 20 20 20 20 20 20 20 20 4d |6..F. M| 00003920 4c 41 20 20 20 20 20 20 20 57 2c 5a 2c 54 2c 57 |LA W,Z,T,W| 00003930 0d 19 50 24 20 20 20 20 20 20 20 20 20 20 4d 4f |..P$ MO| 00003940 56 20 20 20 20 20 20 20 54 2c 43 32 2c 4c 53 4c |V T,C2,LSL| 00003950 20 23 31 36 0d 19 5a 23 20 20 20 20 20 20 20 20 | #16..Z# | 00003960 20 20 4d 4f 56 20 20 20 20 20 20 20 54 2c 54 2c | MOV T,T,| 00003970 41 53 52 20 23 31 36 0d 19 64 25 20 20 20 20 20 |ASR #16..d% | 00003980 20 20 20 20 20 41 44 44 53 20 20 20 20 20 20 57 | ADDS W| 00003990 2c 54 2c 57 2c 41 53 52 20 23 31 35 0d 19 6e 21 |,T,W,ASR #15..n!| 000039a0 20 20 20 20 20 20 20 20 20 20 43 4d 50 20 20 20 | CMP | 000039b0 20 20 20 20 57 2c 23 31 30 2a 46 49 58 0d 19 78 | W,#10*FIX..x| 000039c0 1f 20 20 20 20 20 20 20 20 20 20 42 4d 49 20 20 |. BMI | 000039d0 20 20 20 20 20 6e 6f 63 6c 65 61 72 0d 19 82 04 | noclear....| 000039e0 0d 19 8c 3a 20 20 20 20 20 20 20 20 20 20 4d 4f |...: MO| 000039f0 56 20 20 20 20 20 20 20 54 2c 41 31 2c 41 53 52 |V T,A1,ASR| 00003a00 20 23 31 36 20 20 20 20 20 3b 20 f4 20 78 20 74 | #16 ; . x t| 00003a10 72 61 6e 73 66 6f 72 6d 65 64 0d 19 96 1d 20 20 |ransformed.... | 00003a20 20 20 20 20 20 20 20 20 4d 55 4c 20 20 20 20 20 | MUL | 00003a30 20 20 55 2c 58 2c 54 0d 19 a0 24 20 20 20 20 20 | U,X,T...$ | 00003a40 20 20 20 20 20 4d 4f 56 20 20 20 20 20 20 20 54 | MOV T| 00003a50 2c 41 31 2c 4c 53 4c 20 23 31 36 0d 19 aa 23 20 |,A1,LSL #16...# | 00003a60 20 20 20 20 20 20 20 20 20 4d 4f 56 20 20 20 20 | MOV | 00003a70 20 20 20 54 2c 54 2c 41 53 52 20 23 31 36 0d 19 | T,T,ASR #16..| 00003a80 b4 1f 20 20 20 20 20 20 20 20 20 20 4d 4c 41 20 |.. MLA | 00003a90 20 20 20 20 20 20 55 2c 59 2c 54 2c 55 0d 19 be | U,Y,T,U...| 00003aa0 24 20 20 20 20 20 20 20 20 20 20 4d 4f 56 20 20 |$ MOV | 00003ab0 20 20 20 20 20 54 2c 41 32 2c 41 53 52 20 23 31 | T,A2,ASR #1| 00003ac0 36 0d 19 c8 1f 20 20 20 20 20 20 20 20 20 20 4d |6.... M| 00003ad0 4c 41 20 20 20 20 20 20 20 55 2c 5a 2c 54 2c 55 |LA U,Z,T,U| 00003ae0 0d 19 d2 24 20 20 20 20 20 20 20 20 20 20 4d 4f |...$ MO| 00003af0 56 20 20 20 20 20 20 20 54 2c 41 32 2c 4c 53 4c |V T,A2,LSL| 00003b00 20 23 31 36 0d 19 dc 23 20 20 20 20 20 20 20 20 | #16...# | 00003b10 20 20 4d 4f 56 20 20 20 20 20 20 20 54 2c 54 2c | MOV T,T,| 00003b20 41 53 52 20 23 31 36 0d 19 e6 25 20 20 20 20 20 |ASR #16...% | 00003b30 20 20 20 20 20 41 44 44 20 20 20 20 20 20 20 55 | ADD U| 00003b40 2c 54 2c 55 2c 41 53 52 20 23 31 35 0d 19 f0 04 |,T,U,ASR #15....| 00003b50 0d 19 fa 38 20 20 20 20 20 20 20 20 20 20 4d 4f |...8 MO| 00003b60 56 20 20 20 20 20 20 20 54 2c 42 31 2c 41 53 52 |V T,B1,ASR| 00003b70 20 23 31 36 20 20 20 3b 20 f4 20 79 20 74 72 61 | #16 ; . y tra| 00003b80 6e 73 66 6f 72 6d 65 64 0d 1a 04 1d 20 20 20 20 |nsformed.... | 00003b90 20 20 20 20 20 20 4d 55 4c 20 20 20 20 20 20 20 | MUL | 00003ba0 56 2c 54 2c 58 0d 1a 0e 24 20 20 20 20 20 20 20 |V,T,X...$ | 00003bb0 20 20 20 4d 4f 56 20 20 20 20 20 20 20 54 2c 42 | MOV T,B| 00003bc0 31 2c 4c 53 4c 20 23 31 36 0d 1a 18 23 20 20 20 |1,LSL #16...# | 00003bd0 20 20 20 20 20 20 20 4d 4f 56 20 20 20 20 20 20 | MOV | 00003be0 20 54 2c 54 2c 41 53 52 20 23 31 36 0d 1a 22 1f | T,T,ASR #16..".| 00003bf0 20 20 20 20 20 20 20 20 20 20 4d 4c 41 20 20 20 | MLA | 00003c00 20 20 20 20 56 2c 59 2c 54 2c 56 0d 1a 2c 24 20 | V,Y,T,V..,$ | 00003c10 20 20 20 20 20 20 20 20 20 4d 4f 56 20 20 20 20 | MOV | 00003c20 20 20 20 54 2c 42 32 2c 41 53 52 20 23 31 36 0d | T,B2,ASR #16.| 00003c30 1a 36 1f 20 20 20 20 20 20 20 20 20 20 4d 4c 41 |.6. MLA| 00003c40 20 20 20 20 20 20 20 56 2c 5a 2c 54 2c 56 0d 1a | V,Z,T,V..| 00003c50 40 24 20 20 20 20 20 20 20 20 20 20 4d 4f 56 20 |@$ MOV | 00003c60 20 20 20 20 20 20 54 2c 42 32 2c 4c 53 4c 20 23 | T,B2,LSL #| 00003c70 31 36 0d 1a 4a 23 20 20 20 20 20 20 20 20 20 20 |16..J# | 00003c80 4d 4f 56 20 20 20 20 20 20 20 54 2c 54 2c 41 53 |MOV T,T,AS| 00003c90 52 20 23 31 36 0d 1a 54 25 20 20 20 20 20 20 20 |R #16..T% | 00003ca0 20 20 20 41 44 44 20 20 20 20 20 20 20 56 2c 54 | ADD V,T| 00003cb0 2c 56 2c 41 53 52 20 23 31 35 0d 1a 5e 04 0d 1a |,V,ASR #15..^...| 00003cc0 68 4b 20 20 20 20 20 20 20 20 20 20 4c 44 52 20 |hK LDR | 00003cd0 20 20 20 20 20 20 57 2c 5b 44 49 54 2c 57 2c 4c | W,[DIT,W,L| 00003ce0 53 4c 20 23 32 5d 20 20 20 20 20 3b 20 f4 20 70 |SL #2] ; . p| 00003cf0 65 72 73 70 65 63 74 69 76 65 20 74 72 61 6e 73 |erspective trans| 00003d00 66 6f 72 6d 61 74 69 6f 6e 0d 1a 72 1d 20 20 20 |formation..r. | 00003d10 20 20 20 20 20 20 20 4d 55 4c 20 20 20 20 20 20 | MUL | 00003d20 20 55 2c 57 2c 55 0d 1a 7c 1d 20 20 20 20 20 20 | U,W,U..|. | 00003d30 20 20 20 20 4d 55 4c 20 20 20 20 20 20 20 56 2c | MUL V,| 00003d40 57 2c 56 0d 1a 86 23 20 20 20 20 20 20 20 20 20 |W,V...# | 00003d50 20 4d 4f 56 20 20 20 20 20 20 20 55 2c 55 2c 41 | MOV U,U,A| 00003d60 53 52 20 23 31 32 0d 1a 90 23 20 20 20 20 20 20 |SR #12...# | 00003d70 20 20 20 20 4d 4f 56 20 20 20 20 20 20 20 56 2c | MOV V,| 00003d80 56 2c 41 53 52 20 23 31 32 0d 1a 9a 20 20 20 20 |V,ASR #12... | 00003d90 20 20 20 20 20 20 20 41 44 44 20 20 20 20 20 20 | ADD | 00003da0 20 55 2c 55 2c 23 31 36 30 0d 1a a4 20 20 20 20 | U,U,#160... | 00003db0 20 20 20 20 20 20 20 52 53 42 20 20 20 20 20 20 | RSB | 00003dc0 20 56 2c 56 2c 23 31 32 38 0d 1a ae 04 0d 1a b8 | V,V,#128.......| 00003dd0 46 20 20 20 20 20 20 20 20 20 20 43 4d 50 20 20 |F CMP | 00003de0 20 20 20 20 20 55 2c 23 33 32 30 20 20 20 20 20 | U,#320 | 00003df0 20 20 20 20 20 20 20 20 20 20 3b 20 f4 20 63 6c | ; . cl| 00003e00 69 70 70 69 6e 67 20 61 6e 64 20 70 6c 6f 74 74 |ipping and plott| 00003e10 69 6e 67 0d 1a c2 1e 20 20 20 20 20 20 20 20 20 |ing.... | 00003e20 20 43 4d 50 4c 4f 20 20 20 20 20 56 2c 23 32 35 | CMPLO V,#25| 00003e30 36 0d 1a cc 24 20 20 20 20 20 20 20 20 20 20 41 |6...$ A| 00003e40 44 44 4c 4f 20 20 20 20 20 54 2c 56 2c 56 2c 4c |DDLO T,V,V,L| 00003e50 53 4c 20 23 32 0d 1a d6 24 20 20 20 20 20 20 20 |SL #2...$ | 00003e60 20 20 20 41 44 44 4c 4f 20 20 20 20 20 54 2c 55 | ADDLO T,U| 00003e70 2c 54 2c 4c 53 4c 20 23 36 0d 1a e0 1f 20 20 20 |,T,LSL #6.... | 00003e80 20 20 20 20 20 20 20 42 48 53 20 20 20 20 20 20 | BHS | 00003e90 20 6e 6f 63 6c 65 61 72 0d 1a ea 04 0d 1a f4 1e | noclear........| 00003ea0 20 20 20 20 20 20 20 20 20 20 4c 44 52 20 20 20 | LDR | 00003eb0 20 20 20 20 5a 2c 43 4f 4c 44 0d 1a fe 1e 20 20 | Z,COLD.... | 00003ec0 20 20 20 20 20 20 20 20 41 44 44 20 20 20 20 20 | ADD | 00003ed0 20 20 5a 2c 5a 2c 23 31 0d 1b 08 1d 20 20 20 20 | Z,Z,#1.... | 00003ee0 20 20 20 20 20 20 43 4d 50 20 20 20 20 20 20 20 | CMP | 00003ef0 5a 2c 23 31 36 0d 1b 12 19 20 20 20 20 20 20 20 |Z,#16.... | 00003f00 20 20 20 ec 51 20 20 20 20 20 5a 2c 23 31 0d 1b | .Q Z,#1..| 00003f10 1c 04 0d 1b 26 26 20 20 20 20 20 20 20 20 20 20 |....&& | 00003f20 4c 44 52 42 20 20 20 20 20 20 57 2c 5b 42 2c 54 |LDRB W,[B,T| 00003f30 2c 4c 53 52 20 23 31 5d 0d 1b 30 1c 20 20 20 20 |,LSR #1]..0. | 00003f40 20 20 20 20 20 20 54 53 54 20 20 20 20 20 20 20 | TST | 00003f50 55 2c 23 31 0d 1b 3a 1b 20 20 20 20 20 20 20 20 |U,#1..:. | 00003f60 20 20 42 4e 45 20 20 20 20 20 20 20 6f 64 64 0d | BNE odd.| 00003f70 1b 44 1d 20 20 20 20 20 20 20 20 20 20 80 20 20 |.D. . | 00003f80 20 20 20 20 20 59 2c 57 2c 23 31 35 0d 1b 4e 1b | Y,W,#15..N.| 00003f90 20 20 20 20 20 20 20 20 20 20 43 4d 50 20 20 20 | CMP | 00003fa0 20 20 20 20 59 2c 5a 0d 1b 58 4a 20 20 20 20 20 | Y,Z..XJ | 00003fb0 20 20 20 20 20 42 4e 45 20 20 20 20 20 20 20 6e | BNE n| 00003fc0 6f 63 6c 65 61 72 20 20 20 20 20 20 20 20 20 20 |oclear | 00003fd0 20 20 20 3b f4 20 6f 6e 6c 79 20 63 6c 65 61 72 | ;. only clear| 00003fe0 20 61 20 70 69 78 65 6c 20 69 66 20 69 74 20 69 | a pixel if it i| 00003ff0 73 0d 1b 62 42 20 20 20 20 20 20 20 20 20 20 42 |s..bB B| 00004000 49 43 20 20 20 20 20 20 20 57 2c 57 2c 23 31 35 |IC W,W,#15| 00004010 20 20 20 20 20 20 20 20 20 20 20 20 20 3b f4 20 | ;. | 00004020 6e 6f 74 20 79 65 74 20 6f 76 65 72 77 72 69 74 |not yet overwrit| 00004030 74 65 6e 0d 1b 6c 26 20 20 20 20 20 20 20 20 20 |ten..l& | 00004040 20 53 54 52 42 20 20 20 20 20 20 57 2c 5b 42 2c | STRB W,[B,| 00004050 54 2c 4c 53 52 20 23 31 5d 0d 1b 76 04 0d 1b 80 |T,LSR #1]..v....| 00004060 46 2e 6e 6f 63 6c 65 61 72 20 20 4c 44 4d 49 41 |F.noclear LDMIA| 00004070 20 20 20 20 20 28 41 29 21 2c 7b 58 2c 59 2c 5a | (A)!,{X,Y,Z| 00004080 7d 20 20 20 20 20 20 20 20 3b f4 20 55 20 63 6f |} ;. U co| 00004090 6c 6f 75 72 20 70 72 65 76 69 6f 75 73 20 70 6f |lour previous po| 000040a0 69 6e 74 0d 1b 8a 20 20 20 20 20 20 20 20 20 20 |int... | 000040b0 20 43 4d 50 20 20 20 20 20 20 20 58 2c 23 31 3c | CMP X,#1<| 000040c0 3c 33 30 0d 1b 94 23 20 20 20 20 20 20 20 20 20 |<30...# | 000040d0 20 42 4e 45 20 20 20 20 20 20 20 74 72 61 6e 73 | BNE trans| 000040e0 5f 63 6c 65 61 72 0d 1b 9e 1d 20 20 20 20 20 20 |_clear.... | 000040f0 20 20 20 20 4c 44 52 20 20 20 20 20 20 20 31 33 | LDR 13| 00004100 2c 53 50 0d 1b a8 25 20 20 20 20 20 20 20 20 20 |,SP...% | 00004110 20 4c 44 4d 46 44 20 20 20 20 20 31 33 21 2c 7b | LDMFD 13!,{| 00004120 30 2d 31 32 2c 50 43 7d 0d 1b b2 04 0d 1b bc 08 |0-12,PC}........| 00004130 2e 6f 64 64 0d 1b c6 20 20 20 20 20 20 20 20 20 |.odd... | 00004140 20 20 80 20 20 20 20 20 20 20 59 2c 57 2c 23 31 | . Y,W,#1| 00004150 35 2a 31 36 0d 1b d0 22 20 20 20 20 20 20 20 20 |5*16..." | 00004160 20 20 43 4d 50 20 20 20 20 20 20 20 59 2c 5a 2c | CMP Y,Z,| 00004170 4c 53 4c 20 23 34 0d 1b da 1f 20 20 20 20 20 20 |LSL #4.... | 00004180 20 20 20 20 42 4e 45 20 20 20 20 20 20 20 6e 6f | BNE no| 00004190 63 6c 65 61 72 0d 1b e4 22 20 20 20 20 20 20 20 |clear..." | 000041a0 20 20 20 42 49 43 20 20 20 20 20 20 20 57 2c 57 | BIC W,W| 000041b0 2c 23 31 35 2a 31 36 0d 1b ee 26 20 20 20 20 20 |,#15*16...& | 000041c0 20 20 20 20 20 53 54 52 42 20 20 20 20 20 20 57 | STRB W| 000041d0 2c 5b 42 2c 54 2c 4c 53 52 20 23 31 5d 0d 1b f8 |,[B,T,LSR #1]...| 000041e0 46 20 20 20 20 20 20 20 20 20 20 4c 44 4d 49 41 |F LDMIA| 000041f0 20 20 20 20 20 28 41 29 21 2c 7b 58 2c 59 2c 5a | (A)!,{X,Y,Z| 00004200 7d 20 20 20 20 20 20 20 20 3b f4 20 55 20 63 6f |} ;. U co| 00004210 6c 6f 75 72 20 70 72 65 76 69 6f 75 73 20 70 6f |lour previous po| 00004220 69 6e 74 0d 1c 02 20 20 20 20 20 20 20 20 20 20 |int... | 00004230 20 43 4d 50 20 20 20 20 20 20 20 58 2c 23 31 3c | CMP X,#1<| 00004240 3c 33 30 0d 1c 0c 23 20 20 20 20 20 20 20 20 20 |<30...# | 00004250 20 42 4e 45 20 20 20 20 20 20 20 74 72 61 6e 73 | BNE trans| 00004260 5f 63 6c 65 61 72 0d 1c 16 1d 20 20 20 20 20 20 |_clear.... | 00004270 20 20 20 20 4c 44 52 20 20 20 20 20 20 20 31 33 | LDR 13| 00004280 2c 53 50 0d 1c 20 25 20 20 20 20 20 20 20 20 20 |,SP.. % | 00004290 20 4c 44 4d 46 44 20 20 20 20 20 31 33 21 2c 7b | LDMFD 13!,{| 000042a0 30 2d 31 32 2c 50 43 7d 0d 1c 2a 04 0d 1c 34 04 |0-12,PC}..*...4.| 000042b0 0d 1c 3e 05 5d 0d 1c 48 05 ed 0d 1c 52 09 51 25 |..>.]..H....R.Q%| 000042c0 3d 50 25 0d 1c 5c 05 e1 0d 1c 66 04 0d 1c 70 04 |=P%..\....f...p.| 000042d0 0d 1c 7a 04 0d 1c 84 04 0d 1c 8e 04 0d ff |..z...........| 000042de