Home » Archimedes archive » Acorn User » AU 1993-06.adf » !Render_Render » !Compile/Assemble
!Compile/Assemble
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 1993-06.adf » !Render_Render |
Filename: | !Compile/Assemble |
Read OK: | ✔ |
File size: | 5D0D bytes |
Load address: | 0000 |
Exec address: | 0000 |
File contents
10REM >Assemble 20REM By Robin Barnes 30REM For 32-bit machines 40REM (c) BAU June 1993 50: 60name$="Code" 70DIM assem% &8000 80PROCassem(end%) 90SYS "OS_File",&00,name$,0,0,assem%,end% 100END 110: 120DEF PROCassem(RETURN end%) 130FOR opt%=0 TO 3 STEP 3 140P%=assem% 150[ OPT opt% 160EQUD boundbox-assem% 170EQUD plane-assem% 180EQUD pointnormal-assem% 190EQUD polynormal-assem% 200EQUD scanline-assem% 210EQUD point-assem% 220EQUD intensity-assem% 230EQUD colour-assem% 240EQUD fputobas-assem% 250EQUD bastofpu-assem% 260EQUD number-assem% 270EQUD transform-assem% 280EQUD perspective-assem% 290: 300.input EQUD 0 310.output EQUD 0 320] 330PROCtransform 340PROCperspective 350PROCboundbox 360PROCplane 370PROCpointnormal 380PROCpolynormal 390PROCscanline 400PROCpoint 410PROCintensity 420PROCcolour 430PROCnumber 440NEXT opt% 450end%=P% 460ENDPROC 470: 480DEF PROCtransform 490[ OPT opt% 500\ tranform points 510: 520.transform 530LDR R0,input 540LDR R1,[R0,#8] 550LDR R2,[R0,#40] 560LDR R3,[R1] 570: 580.translp 590SUBS R3,R3,#&01 600MOVLT PC,R14 610ADD R12,R3,R3,ASL #&01 620ADD R12,R1,R12,ASL #&02 630EQUD FNfpu("LDFS F0,[R12,#4]") 640EQUD FNfpu("LDFS F1,[R12,#8]") 650EQUD FNfpu("LDFS F2,[R12,#12]") 660EQUD FNfpu("LDFS F7,[R2,#0]"):EQUD FNfpu("ADFS F0,F0,F7") 670EQUD FNfpu("LDFS F7,[R2,#4]"):EQUD FNfpu("ADFS F1,F1,F7") 680EQUD FNfpu("LDFS F7,[R2,#8]"):EQUD FNfpu("ADFS F2,F2,F7") 690: 700EQUD FNfpu("LDFS F7,[R2,#12]"):EQUD FNfpu("MUFS F3,F0,F7") 710EQUD FNfpu("LDFS F7,[R2,#16]"):EQUD FNfpu("MUFS F6,F1,F7") 720EQUD FNfpu("ADFS F3,F3,F6"):EQUD FNfpu("LDFS F7,[R2,#20]") 730EQUD FNfpu("MUFS F6,F2,F7"):EQUD FNfpu("ADFS F3,F3,F6") 740: 750EQUD FNfpu("LDFS F7,[R2,#24]"):EQUD FNfpu("MUFS F4,F0,F7") 760EQUD FNfpu("LDFS F7,[R2,#28]"):EQUD FNfpu("MUFS F6,F1,F7") 770EQUD FNfpu("ADFS F4,F4,F6"):EQUD FNfpu("LDFS F7,[R2,#32]") 780EQUD FNfpu("MUFS F6,F2,F7"):EQUD FNfpu("ADFS F4,F4,F6") 790: 800EQUD FNfpu("LDFS F7,[R2,#36]"):EQUD FNfpu("MUFS F5,F0,F7") 810EQUD FNfpu("LDFS F7,[R2,#40]"):EQUD FNfpu("MUFS F6,F1,F7") 820EQUD FNfpu("ADFS F5,F5,F6"):EQUD FNfpu("LDFS F7,[R2,#44]") 830EQUD FNfpu("MUFS F6,F2,F7"):EQUD FNfpu("ADFS F5,F5,F6") 840EQUD FNfpu("STFS F3,[R12,#4]") 850EQUD FNfpu("STFS F4,[R12,#8]") 860EQUD FNfpu("STFS F5,[R12,#12]") 870B translp 880] 890ENDPROC 900: 910DEF PROCperspective 920[ OPT opt% 930\ perspective transform 940: 950.perspective 960LDR R0,input 970LDR R1,[R0,#8] 980LDR R2,[R1] 990EQUD FNfpu("MVFS F6,#1.0") 1000EQUD FNfpu("DVFS F6,F6,#10.0") 1010EQUD FNfpu("POWS F6,F6,#10.0") 1020: 1030.prspctlp 1040SUBS R2,R2,#&01 1050MOVLT PC,R14 1060ADD R12,R2,R2,ASL #&01 1070ADD R12,R1,R12,ASL #&02 1080EQUD FNfpu("LDFS F0,[R12,#4]") 1090EQUD FNfpu("LDFS F1,[R12,#8]") 1100EQUD FNfpu("LDFS F2,[R12,#12]") 1110EQUD FNfpu("CMES F2,#0.0") 1120EQUD FNfpu("MVFLES F2,F6") 1130EQUD FNfpu("DVFS F0,F0,F2") 1140EQUD FNfpu("DVFS F1,F1,F2") 1150EQUD FNfpu("STFS F0,[R12,#4]") 1160EQUD FNfpu("STFS F1,[R12,#8]") 1170B prspctlp 1180] 1190ENDPROC 1200: 1210DEF PROCpolynormal 1220[ OPT opt% 1230\ calculate normal to polygon 1240: 1250.polynormal 1260LDR R0,input 1270LDR R1,output 1280LDR R2,[R0,#28] 1290LDR R3,[R0,#44] 1300ADD R12,R2,R3,ASL #&04 1310EQUD FNfpu("LDFS F0,[R12,#0]") 1320EQUD FNfpu("LDFS F1,[R12,#4]") 1330EQUD FNfpu("LDFS F2,[R12,#8]") 1340EQUD FNfpu("MUFS F3,F0,F0") 1350EQUD FNfpu("MUFS F4,F1,F1") 1360EQUD FNfpu("ADFS F3,F3,F4") 1370EQUD FNfpu("MUFS F4,F2,F2") 1380EQUD FNfpu("ADFS F3,F3,F4") 1390EQUD FNfpu("SQTS F3,F3") 1400EQUD FNfpu("DVFS F0,F0,F3") 1410EQUD FNfpu("DVFS F1,F1,F3") 1420EQUD FNfpu("DVFS F2,F2,F3") 1430EQUD FNfpu("STFS F0,[R1,#4]") 1440EQUD FNfpu("STFS F1,[R1,#8]") 1450EQUD FNfpu("STFS F2,[R1,#12]") 1460MOV PC,R14 1470] 1480ENDPROC 1490: 1500DEF PROCboundbox 1510[OPT opt% 1520\ calculate bounding boxes for polygons 1530: 1540.boundbox 1550STMFD R13!,{R14} 1560LDR R0,input 1570LDR R1,[R0,#8] 1580LDR R2,[R0,#12] 1590LDR R3,[R0,#16] 1600LDR R4,[R0,#36] 1610LDR R0,output 1620LDR R5,[R2] 1630EQUD FNfpu("MVFS F4,#10.0") 1640EQUD FNfpu("POWS F4,F4,#10.0") 1650EQUD FNfpu("MVFS F5,F4") 1660EQUD FNfpu("MNFS F6,F4") 1670EQUD FNfpu("MNFS F7,F4") 1680: 1690.bndboxlp 1700SUBS R5,R5,#&01 1710EQUD FNfpu("STFLTS F4,[R0]") 1720EQUD FNfpu("STFLTS F5,[R0,#4]") 1730EQUD FNfpu("STFLTS F6,[R0,#8]") 1740EQUD FNfpu("STFLTS F7,[R0,#12]") 1750LDMLTFD R13!,{PC} 1760BL bndpoly 1770B bndboxlp 1780: 1790.bndpoly 1800ADD R11,R5,#&01 1810LDR R11,[R2,R11,ASL #&02] 1820ADD R11,R11,R3 1830ADD R11,R11,#&04 1840LDR R6,[R11] 1850EQUD FNfpu("MVFS F0,#10.0") 1860EQUD FNfpu("POWS F0,F0,#10.0") 1870EQUD FNfpu("MNFS F1,F0") 1880: 1890.bndpollp 1900LDR R7,[R11,R6,ASL #&02] 1910ADD R12,R7,R7,ASL #&01 1920ADD R12,R1,R12,ASL #&02 1930EQUD FNfpu("LDFS F2,[R12,#04]") 1940EQUD FNfpu("LDFS F3,[R12,#08]") 1950EQUD FNfpu("CMES F3,F0") 1960EQUD FNfpu("MVFLTS F0,F3") 1970EQUD FNfpu("CMES F3,F1") 1980EQUD FNfpu("MVFGTS F1,F3") 1990EQUD FNfpu("CMES F2,F4") 2000EQUD FNfpu("MVFLTS F4,F2") 2010EQUD FNfpu("CMES F2,F6") 2020EQUD FNfpu("MVFGTS F6,F2") 2030SUBS R6,R6,#&01 2040BGT bndpollp 2050ADD R12,R4,R5,ASL #&03 2060EQUD FNfpu("STFS F0,[R12,#0]") 2070EQUD FNfpu("STFS F1,[R12,#4]") 2080EQUD FNfpu("CMES F0,F5") 2090EQUD FNfpu("MVFLTS F5,F0") 2100EQUD FNfpu("CMES F1,F7") 2110EQUD FNfpu("MVFGTS F7,F1") 2120MOV PC,R14 2130] 2140ENDPROC 2150: 2160DEF PROCpointnormal 2170[ OPT opt% 2180\ calculate normals at vertices 2190: 2200.pointnormal 2210STMFD R13!,{R14} 2220LDR R0,input 2230LDR R4,[R0,#32] 2240LDR R1,[R0,#8] 2250LDR R1,[R1] 2260EQUD FNfpu("MVFS F0,#0.0") 2270: 2280.normblnk 2290SUBS R1,R1,#&01 2300LDRLT R1,[R0,#12] 2310LDRLT R2,[R0,#16] 2320LDRLT R3,[R0,#28] 2330LDRLT R5,[R1] 2340BLT pntnormlp 2350ADD R12,R1,R1,ASL #&01 2360ADD R12,R4,R12,ASL #&02 2370EQUD FNfpu("STFS F0,[R12,#0]") 2380EQUD FNfpu("STFS F0,[R12,#4]") 2390EQUD FNfpu("STFS F0,[R12,#8]") 2400B normblnk 2410: 2420.pntnormlp 2430SUBS R5,R5,#&01 2440LDRLT R1,[R0,#8] 2450LDRLT R1,[R1] 2460BLT modulus 2470BL sumpoly 2480B pntnormlp 2490: 2500.modulus 2510SUBS R1,R1,#&01 2520LDMLTFD R13!,{PC} 2530ADD R12,R1,R1,ASL #&01 2540ADD R12,R4,R12,ASL #&02 2550EQUD FNfpu("LDFS F0,[R12]") 2560EQUD FNfpu("LDFS F1,[R12,#4]") 2570EQUD FNfpu("LDFS F2,[R12,#8]") 2580EQUD FNfpu("MUFS F3,F0,F0") 2590EQUD FNfpu("MUFS F4,F1,F1") 2600EQUD FNfpu("MUFS F5,F2,F2") 2610EQUD FNfpu("ADFS F3,F3,F4") 2620EQUD FNfpu("ADFS F3,F3,F5") 2630EQUD FNfpu("SQTS F3,F3") 2640EQUD FNfpu("DVFS F0,F0,F3") 2650EQUD FNfpu("DVFS F1,F1,F3") 2660EQUD FNfpu("DVFS F2,F2,F3") 2670EQUD FNfpu("STFS F0,[R12]") 2680EQUD FNfpu("STFS F1,[R12,#4]") 2690EQUD FNfpu("STFS F2,[R12,#8]") 2700B modulus 2710: 2720.sumpoly 2730ADD R11,R5,#&01 2740LDR R11,[R1,R11,ASL #&02] 2750ADD R11,R11,R2 2760ADD R11,R11,#&04 2770LDR R6,[R11] 2780ADD R12,R3,R5,ASL #&04 2790EQUD FNfpu("LDFS F0,[R12]") 2800EQUD FNfpu("LDFS F1,[R12,#4]") 2810EQUD FNfpu("LDFS F2,[R12,#8]") 2820: 2830.sumpolylp 2840SUBS R6,R6,#&01 2850MOVLE PC,R14 2860LDR R7,[R11,R6,ASL #&02] 2870ADD R12,R7,R7,ASL #&01 2880ADD R12,R4,R12,ASL #&02 2890EQUD FNfpu("LDFS F3,[R12]") 2900EQUD FNfpu("LDFS F4,[R12,#4]") 2910EQUD FNfpu("LDFS F5,[R12,#8]") 2920EQUD FNfpu("ADFS F3,F3,F0") 2930EQUD FNfpu("ADFS F4,F4,F1") 2940EQUD FNfpu("ADFS F5,F5,F2") 2950EQUD FNfpu("STFS F3,[R12]") 2960EQUD FNfpu("STFS F4,[R12,#4]") 2970EQUD FNfpu("STFS F5,[R12,#8]") 2980B sumpolylp 2990] 3000ENDPROC 3010: 3020DEF PROCplane 3030[ OPT opt% 3040\ calculate plane equations for polygons 3050: 3060.plane 3070STMFD R13!,{R14} 3080LDR R0,input 3090LDR R1,[R0,#8] 3100LDR R2,[R0,#12] 3110LDR R3,[R0,#16] 3120LDR R4,[R0,#28] 3130LDR R5,[R2] 3140: 3150.plnpollp 3160SUBS R5,R5,#&01 3170LDMLTFD R13!,{PC} 3180BL planecalc 3190B plnpollp 3200: 3210.planecalc 3220ADD R10,R5,#&01 3230LDR R10,[R2,R10,ASL #&02] 3240ADD R10,R10,R3 3250ADD R10,R10,#&04 3260LDR R6,[R10] 3270EQUD FNfpu("MVFS F0,#0.0") 3280EQUD FNfpu("MVFS F1,#0.0") 3290EQUD FNfpu("MVFS F2,#0.0") 3300: 3310.planelp 3320LDR R7,[R10,R6,ASL #&02] 3330SUBS R6,R6,#&01 3340BLE planestore 3350LDR R8,[R10,R6,ASL #&02] 3360ADD R11,R7,R7,ASL #&01 3370ADD R11,R1,R11,ASL #&02 3380ADD R12,R8,R8,ASL #&01 3390ADD R12,R1,R12,ASL #&02 3400EQUD FNfpu("LDFS F4,[R11,#04]") 3410EQUD FNfpu("LDFS F5,[R12,#04]") 3420EQUD FNfpu("LDFS F6,[R11,#08]") 3430EQUD FNfpu("LDFS F7,[R12,#08]") 3440EQUD FNfpu("SUFS F4,F5,F4") 3450EQUD FNfpu("ADFS F5,F6,F7") 3460EQUD FNfpu("MUFS F4,F4,F5") 3470EQUD FNfpu("ADFS F2,F2,F4") 3480EQUD FNfpu("LDFS F4,[R11,#12]") 3490EQUD FNfpu("LDFS F5,[R12,#12]") 3500EQUD FNfpu("SUFS F6,F7,F6") 3510EQUD FNfpu("ADFS F7,F5,F4") 3520EQUD FNfpu("MUFS F6,F6,F7") 3530EQUD FNfpu("ADFS F0,F0,F6") 3540EQUD FNfpu("LDFS F6,[R11,#4]") 3550EQUD FNfpu("LDFS F7,[R12,#4]") 3560EQUD FNfpu("SUFS F4,F5,F4") 3570EQUD FNfpu("ADFS F5,F7,F6") 3580EQUD FNfpu("MUFS F4,F4,F5") 3590EQUD FNfpu("ADFS F1,F1,F4") 3600B planelp 3610: 3620.planestore 3630ADD R11,R7,R7,ASL #&01 3640ADD R11,R1,R11,ASL #&02 3650EQUD FNfpu("LDFS F4,[R11,#4]") 3660EQUD FNfpu("LDFS F5,[R11,#8]") 3670EQUD FNfpu("LDFS F6,[R11,#12]") 3680EQUD FNfpu("MUFS F4,F4,F0") 3690EQUD FNfpu("MUFS F5,F5,F1") 3700EQUD FNfpu("MUFS F6,F6,F2") 3710EQUD FNfpu("ADFS F4,F4,F5") 3720EQUD FNfpu("ADFS F4,F4,F6") 3730EQUD FNfpu("MNFS F4,F4") 3740ADD R12,R4,R5,ASL #&04 3750EQUD FNfpu("STFS F0,[R12]") 3760EQUD FNfpu("STFS F1,[R12,#04]") 3770EQUD FNfpu("STFS F2,[R12,#08]") 3780EQUD FNfpu("STFS F4,[R12,#12]") 3790MOV PC,R14 3800] 3810ENDPROC 3820: 3830DEF PROCscanline 3840[ OPT opt% 3850\ produce ordered edge pair list 3860: 3870.inside 3880ADD R12,R5,R7,ASL #&03 3890EQUD FNfpu("LDFS F2,[R12]") 3900EQUD FNfpu("CMES F1,F2") 3910MOVLT PC,R14 3920EQUD FNfpu("LDFS F2,[R12,#4]") 3930EQUD FNfpu("CMES F1,F2") 3940MOVGT PC,R14 3950ADD R11,R7,#&01 3960LDR R11,[R2,R11,ASL #&02] 3970ADD R11,R11,R3 3980ADD R11,R11,#&04 3990LDR R8,[R11] 4000: 4010.edgelp 4020LDR R9,[R11,R8,ASL #&02] 4030SUBS R8,R8,#&01 4040MOVLE PC,R14 4050ADD R12,R9,R9,ASL #&01 4060ADD R12,R1,R12,ASL #&02 4070EQUD FNfpu("LDFS F2,[R12,#08]") 4080LDR R10,[R11,R8,ASL #&02] 4090ADD R12,R10,R10,ASL #&01 4100ADD R12,R1,R12,ASL #&02 4110EQUD FNfpu("LDFS F3,[R12,#08]") 4120: 4130EQUD FNfpu("MVFS F4,F2") 4140EQUD FNfpu("MVFS F5,F3") 4150EQUD FNfpu("CMES F2,F3") 4160EQUD FNfpu("MVFGTS F5,F2") 4170EQUD FNfpu("MVFGTS F4,F3") 4180EQUD FNfpu("CMES F1,F5") 4190BGT edgelp 4200EQUD FNfpu("CMES F1,F4") 4210BLE edgelp 4220: 4230EQUD FNfpu("SUFS F5,F3,F2") 4240ADD R12,R9,R9,ASL #&01 4250ADD R12,R1,R12,ASL #&02 4260EQUD FNfpu("LDFS F7,[R12,#04]") 4270ADD R12,R10,R10,ASL #&01 4280ADD R12,R1,R12,ASL #&02 4290EQUD FNfpu("LDFS F3,[R12,#04]") 4300EQUD FNfpu("SUFS F4,F3,F7") 4310EQUD FNfpu("SUFS F2,F1,F2") 4320EQUD FNfpu("DVFS F5,F2,F5") 4330EQUD FNfpu("MUFS F4,F5,F4") 4340EQUD FNfpu("ADFS F4,F4,F7") 4350: 4360ADD R12,R4,R6,ASL #&03 4370EQUD FNfpu("STFS F4,[R12]") 4380MOV R9,R7,ASL #&10 4390ORR R9,R9,R8 4400STR R9,[R12,#&04] 4410ADD R6,R6,#&01 4420B edgelp 4430: 4440.scanline 4450STMFD R13!,{R14} 4460LDR R0,input 4470EQUD FNfpu("LDFS F1,[R0,#4]") 4480LDR R1,[R0,#8] 4490LDR R2,[R0,#12] 4500LDR R3,[R0,#16] 4510LDR R4,[R0,#20] 4520ADD R4,R4,#&04 4530LDR R5,[R0,#36] 4540MOV R6,#&00 4550LDR R7,[R2] 4560: 4570.scanlp 4580SUBS R7,R7,#&01 4590BLT ordertable 4600BL inside 4610B scanlp 4620: 4630.ordertable 4640STR R6,[R4,#-4] 4650CMP R6,#&02 4660LDMLTFD R13!,{PC} 4670ANDS R12,R6,#&01 4680ADDNE R6,R6,#&01 4690EQUD FNfpu("MVFNES F7,#10.0") 4700EQUD FNfpu("POWNES F7,F7,#10.0") 4710EQUD FNfpu("MNFNES F7,F7") 4720ADDNE R12,R4,R6,ASL #&03 4730EQUD FNfpu("STFNES F7,[R12,#0]") 4740MOV R0,R4 4750MOV R1,R6 4760BL sort 4770LDMFD R13!,{PC} 4780: 4790.pileup 4800MOV R5,R3,ASL #&01 4810CMP R5,R4 4820MOVGT PC,R14 4830CMP R5,R4 4840BEQ equal 4850MOV R6,R5 4860ADD R7,R5,#&01 4870ADD R6,R0,R6,ASL #&03 4880ADD R7,R0,R7,ASL #&03 4890EQUD FNfpu("LDFS F3,[R6]") 4900EQUD FNfpu("LDFS F2,[R7]") 4910EQUD FNfpu("CMES F3,F2") 4920ADDGT R5,R5,#&01 4930ADD R6,R0,R3,ASL #&03 4940ADD R7,R0,R5,ASL #&03 4950EQUD FNfpu("LDFS F3,[R6]") 4960EQUD FNfpu("LDFS F2,[R7]") 4970EQUD FNfpu("CMES F3,F2") 4980MOVLE PC,R14 4990ADD R6,R0,R3,ASL #&03 5000ADD R7,R0,R5,ASL #&03 5010LDMIA R6,{R9-R10} 5020LDMIA R7,{R11-R12} 5030STMIA R7,{R9-R10} 5040STMIA R6,{R11-R12} 5050MOV R3,R5 5060B pileup 5070: 5080.equal 5090ADD R6,R0,R3,ASL #&03 5100ADD R7,R0,R4,ASL #&03 5110EQUD FNfpu("LDFS F3,[R6]") 5120EQUD FNfpu("LDFS F3,[R7]") 5130EQUD FNfpu("CMES F3,F2") 5140MOVLT PC,R14 5150ADD R6,R0,R3,ASL #&03 5160ADD R7,R0,R4,ASL #&03 5170LDMIA R6,{R9-R10} 5180LDMIA R7,{R11-R12} 5190STMIA R7,{R9-R10} 5200STMIA R6,{R11-R12} 5210MOV PC,R14 5220: 5230.sort 5240STMFD R13!,{R14} 5250SUB R1,R1,#&01 5260MOV R2,R1,ASR #&01 5270: 5280.upper 5290MOV R3,R2 5300MOV R4,R1 5310BL pileup 5320SUBS R2,R2,#&01 5330BGE upper 5340MOV R2,R1 5350: 5360.lower 5370MOV R6,R0 5380ADD R7,R0,R2,ASL #&03 5390LDMIA R6,{R9-R10} 5400LDMIA R7,{R11-R12} 5410STMIA R7,{R9-R10} 5420STMIA R6,{R11-R12} 5430SUB R4,R2,#&01 5440MOV R3,#&00 5450BL pileup 5460SUBS R2,R2,#&01 5470BGT lower 5480LDMFD R13!,{PC} 5490] 5500ENDPROC 5510: 5520DEF PROCpoint 5530[ OPT opt% 5540\ calculate normal at point 5550: 5560.point 5570LDR R0,input 5580LDR R1,output 5590EQUD FNfpu("LDFS F0,[R0]") 5600EQUD FNfpu("LDFS F1,[R0,#4]") 5610LDR R2,[R0,#12] 5620LDR R3,[R0,#20] 5630LDR R4,[R0,#24] 5640LDR R5,[R0,#28] 5650LDR R6,[R2] 5660LDR R7,[R3],#&04 5670MOV R8,R6 5680MOV R9,#&00 5690SUB R9,R9,#&01 5700EQUD FNfpu("MVFS F7,#10.0") 5710EQUD FNfpu("POWS F7,F7,#10.0") 5720: 5730.pointblnk 5740SUBS R8,R8,#&01 5750MOVLT R8,#&00 5760BLT findedge 5770STR R9,[R4,R8,ASL #&02] 5780B pointblnk 5790: 5800.findedge 5810ADD R12,R3,R8,ASL #&03 5820EQUD FNfpu("LDFS F2,[R12]") 5830EQUD FNfpu("CMES F2,F0") 5840MOVLT R8,R6 5850BLT depth 5860LDR R10,[R12,#&04] 5870MOV R10,R10,ASR #&10 5880LDR R11,[R4,R10,ASL #&02] 5890CMP R11,R9 5900MOVNE R11,R9 5910MOVEQ R11,R8 5920STR R11,[R4,R10,ASL #&02] 5930ADD R8,R8,#&01 5940CMP R8,R7 5950BLT findedge 5960MOV R8,R6 5970: 5980.depth 5990SUBS R8,R8,#&01 6000BLT pair 6010LDR R10,[R4,R8,ASL #&02] 6020CMP R10,#&00 6030BLT depth 6040ADD R12,R5,R8,ASL #&04 6050EQUD FNfpu("LDFS F2,[R12]") 6060EQUD FNfpu("LDFS F3,[R12,#04]") 6070EQUD FNfpu("LDFS F4,[R12,#08]") 6080EQUD FNfpu("LDFS F5,[R12,#12]") 6090EQUD FNfpu("MUFS F2,F2,F0") 6100EQUD FNfpu("MUFS F3,F3,F1") 6110EQUD FNfpu("ADFS F2,F2,F3") 6120EQUD FNfpu("ADFS F4,F4,F2") 6130EQUD FNfpu("CMES F4,#0.0") 6140BEQ depth 6150EQUD FNfpu("DVFS F5,F5,F4") 6160EQUD FNfpu("MNFS F5,F5") 6170EQUD FNfpu("CMES F5,#0.0") 6180EQUD FNfpu("CMEGES F7,F5") 6190MOVGE R9,R10 6200EQUD FNfpu("MVFGES F7,F5") 6210B depth 6220: 6230.pair 6240CMP R9,#&00 6250STRLT R9,[R1] 6260MOVLT PC,R14 6270ADD R12,R3,R9,ASL #&03 6280LDR R11,[R12,#&04] 6290MOV R11,R11,ASR #&10 6300ADD R10,R9,#&01 6310: 6320.pairlp 6330ADD R12,R3,R10,ASL #&03 6340LDR R8,[R12,#&04] 6350MOV R8,R8,ASR #&10 6360CMP R8,R11 6370BEQ detect 6380ADD R10,R10,#&01 6390CMP R10,R7 6400BLT pairlp 6410MOV R10,#&00 6420SUB R10,R10,#&01 6430STR R10,[R1] 6440MOV PC,R14 6450: 6460.detect 6470ADD R12,R2,#&04 6480LDR R12,[R12,R11,ASL #&02] 6490LDR R2,[R0,#8] 6500LDR R4,[R0,#16] 6510LDR R5,[R0,#32] 6520ADD R4,R4,R12 6530LDR R6,[R4],#&08 6540: 6550ADD R12,R3,R9,ASL #&03 6560EQUD FNfpu("LDFS F2,[R12]") 6570LDR R9,[R12,#&04] 6580ADD R12,R3,R10,ASL #&03 6590EQUD FNfpu("LDFS F3,[R12]") 6600LDR R10,[R12,#&04] 6610MOV R9,R9,ASL #&10:MOV R9,R9,LSR #&10 6620MOV R10,R10,ASL #&10:MOV R10,R10,LSR #&10 6630: 6640LDR R7,[R4,R9,ASL #&02] 6650SUB R9,R9,#&01 6660LDR R9,[R4,R9,ASL #&02] 6670LDR R8,[R4,R10,ASL #&02] 6680SUB R10,R10,#&01 6690LDR R10,[R4,R10,ASL #&02] 6700: 6710ANDS R12,R6,#&02 6720STRNE R11,[R1] 6730STRNE R7,[R1,#16] 6740STRNE R8,[R1,#20] 6750STRNE R9,[R1,#24] 6760STRNE R10,[R1,#28] 6770MOVNE PC,R14 6780: 6790EQUD FNfpu("SUFS F4,F2,F3") 6800EQUD FNfpu("SUFS F5,F0,F3") 6810EQUD FNfpu("CMES F4,#0.0") 6820EQUD FNfpu("DVFNES F7,F5,F4") 6830EQUD FNfpu("MVFEQS F7,#0.0") 6840: 6850ADD R12,R7,R7,ASL #&01 6860ADD R12,R2,R12,ASL #&02 6870EQUD FNfpu("LDFS F4,[R12,#04]") 6880EQUD FNfpu("LDFS F5,[R12,#08]") 6890ADD R12,R9,R9,ASL #&01 6900ADD R12,R2,R12,ASL #&02 6910EQUD FNfpu("LDFS F6,[R12,#04]") 6920EQUD FNfpu("SUFS F4,F4,F6") 6930EQUD FNfpu("SUFS F2,F2,F6") 6940EQUD FNfpu("LDFS F6,[R12,#08]") 6950EQUD FNfpu("SUFS F5,F5,F6") 6960EQUD FNfpu("SUFS F6,F1,F6") 6970EQUD FNfpu("MUFS F4,F4,F4") 6980EQUD FNfpu("MUFS F5,F5,F5") 6990EQUD FNfpu("ADFS F4,F4,F5") 7000EQUD FNfpu("SQTS F4,F4") 7010EQUD FNfpu("MUFS F6,F6,F6") 7020EQUD FNfpu("MUFS F2,F2,F2") 7030EQUD FNfpu("ADFS F2,F2,F6") 7040EQUD FNfpu("SQTS F2,F2") 7050EQUD FNfpu("CMES F4,#0.0") 7060EQUD FNfpu("DVFNES F2,F2,F4") 7070EQUD FNfpu("MVFEQS F2,#0.0") 7080: 7090ADD R12,R8,R8,ASL #&01 7100ADD R12,R2,R12,ASL #&02 7110EQUD FNfpu("LDFS F4,[R12,#04]") 7120EQUD FNfpu("LDFS F5,[R12,#08]") 7130ADD R12,R10,R10,ASL #&01 7140ADD R12,R2,R12,ASL #&02 7150EQUD FNfpu("LDFS F6,[R12,#04]") 7160EQUD FNfpu("SUFS F4,F4,F6") 7170EQUD FNfpu("SUFS F3,F3,F6") 7180EQUD FNfpu("LDFS F6,[R12,#08]") 7190EQUD FNfpu("SUFS F5,F5,F6") 7200EQUD FNfpu("SUFS F6,F1,F6") 7210EQUD FNfpu("MUFS F4,F4,F4") 7220EQUD FNfpu("MUFS F5,F5,F5") 7230EQUD FNfpu("ADFS F4,F4,F5") 7240EQUD FNfpu("SQTS F4,F4") 7250EQUD FNfpu("MUFS F6,F6,F6") 7260EQUD FNfpu("MUFS F3,F3,F3") 7270EQUD FNfpu("ADFS F3,F3,F6") 7280EQUD FNfpu("SQTS F3,F3") 7290EQUD FNfpu("CMES F4,#0.0") 7300EQUD FNfpu("DVFNES F3,F3,F4") 7310EQUD FNfpu("MVFEQS F3,#0.0") 7320: 7330ANDS R12,R6,#&01 7340STRNE R11,[R1] 7350STRNE R7,[R1,#16] 7360STRNE R8,[R1,#20] 7370STRNE R9,[R1,#24] 7380STRNE R10,[R1,#28] 7390EQUD FNfpu("STFNES F2,[R1,#32]") 7400EQUD FNfpu("STFNES F3,[R1,#36]") 7410EQUD FNfpu("STFNES F7,[R1,#40]") 7420MOVNE PC,R14 7430: 7440] 7450FOR nmas%=0 TO 2 7460[ OPT opt% 7470ADD R12,R7,R7,ASL #&01 7480ADD R12,R5,R12,ASL #&02 7490EQUD FNfpu("LDFS F4,[R12,#"+STR$(4*nmas%)+"]") 7500ADD R12,R9,R9,ASL #&01 7510ADD R12,R5,R12,ASL #&02 7520EQUD FNfpu("LDFS F5,[R12,#"+STR$(4*nmas%)+"]") 7530EQUD FNfpu("CMES F4,F5") 7540EQUD FNfpu("MUFNES F4,F4,F2") 7550EQUD FNfpu("RSFNES F2,F2,#1.0") 7560EQUD FNfpu("MUFNES F5,F5,F2") 7570EQUD FNfpu("ADFNES F4,F4,F5") 7580EQUD FNfpu("RSFNES F2,F2,#1.0") 7590ADD R12,R8,R8,ASL #&01 7600ADD R12,R5,R12,ASL #&02 7610EQUD FNfpu("LDFS F5,[R12,#"+STR$(4*nmas%)+"]") 7620ADD R12,R10,R10,ASL #&01 7630ADD R12,R5,R12,ASL #&02 7640EQUD FNfpu("LDFS F6,[R12,#"+STR$(4*nmas%)+"]") 7650EQUD FNfpu("CMES F5,F6") 7660EQUD FNfpu("MUFNES F5,F5,F3") 7670EQUD FNfpu("RSFNES F3,F3,#1.0") 7680EQUD FNfpu("MUFNES F6,F6,F3") 7690EQUD FNfpu("ADFNES F5,F5,F6") 7700EQUD FNfpu("RSFNES F3,F3,#1.0") 7710EQUD FNfpu("CMES F4,F5") 7720EQUD FNfpu("MUFNES F4,F4,F7") 7730EQUD FNfpu("RSFNES F7,F7,#1.0") 7740EQUD FNfpu("MUFNES F5,F5,F7") 7750EQUD FNfpu("ADFNES F4,F4,F5") 7760EQUD FNfpu("RSFNES F7,F7,#1.0") 7770EQUD FNfpu("STFS F4,[R1,#"+STR$(4*nmas%+4)+"]") 7780] 7790NEXT nmas% 7800[ OPT opt% 7810STR R11,[R1] 7820STR R7,[R1,#16] 7830STR R8,[R1,#20] 7840STR R9,[R1,#24] 7850STR R10,[R1,#28] 7860EQUD FNfpu("STFS F2,[R1,#32]") 7870EQUD FNfpu("STFS F3,[R1,#36]") 7880EQUD FNfpu("STFS F7,[R1,#40]") 7890MOV PC,R14 7900] 7910ENDPROC 7920: 7930DEF PROCnumber 7940[ OPT opt% 7950.bastofpu 7960LDR R0,number 7970LDRB R1,number+4 7980CMP R0,#&00 7990CMPEQ R1,#&00 8000LDREQ R12,[R9] 8010STREQ R0,[R12] 8020MOVEQ PC,R14 8030MOV R2,#&80000000 8040AND R3,R0,R2 8050SUB R2,R2,#&01 8060AND R0,R0,R2 8070SUB R1,R1,#&02 8080ORR R3,R3,R1,ASL #23 8090ORR R0,R3,R0,LSR #8 8100LDR R12,[R9] 8110STR R0,[R12] 8120MOV PC,R14 8130: 8140.fputobas 8150LDR R12,[R9] 8160LDR R0,[R12] 8170CMP R0,#&00 8180STREQ R0,number 8190STREQB R0,number+4 8200MOVEQ PC,R14 8210MOV R1,#&80000000 8220AND R2,R1,R0 8230SUB R1,R1,#&01 8240AND R3,R0,R1,LSR #8 8250ORR R2,R2,R3,ASL #8 8260AND R3,R0,R1 8270MOV R3,R3,LSR #23 8280ADD R3,R3,#&02 8290STR R2,number 8300STRB R3,number+4 8310MOV PC,R14 8320: 8330.number 8340EQUD &00 8350EQUD &00 8360] 8370ENDPROC 8380: 8390DEF PROCintensity 8400[ OPT opt% 8410.intensity 8420LDR R0,input 8430LDR R1,output 8440EQUD FNfpu("LDFS F0,[R0]") 8450EQUD FNfpu("LDFS F1,[R0,#4]") 8460EQUD FNfpu("LDFS F2,[R0,#8]") 8470EQUD FNfpu("LDFS F7,[R0,#16]") 8480EQUD FNfpu("STFS F7,[R1]") 8490EQUD FNfpu("LDFS F7,[R0,#20]") 8500EQUD FNfpu("STFS F7,[R1,#4]") 8510EQUD FNfpu("LDFS F7,[R0,#24]") 8520EQUD FNfpu("STFS F7,[R1,#8]") 8530LDR R2,[R0,#12] 8540LDR R3,[R2] 8550: 8560.intenlp 8570SUBS R3,R3,#&01 8580MOVLT PC,R14 8590ADD R12,R3,R3,ASL #&01 8600ADD R12,R2,R12,ASL #&02 8610EQUD FNfpu("LDFS F3,[R12,#04]") 8620EQUD FNfpu("LDFS F4,[R12,#08]") 8630EQUD FNfpu("LDFS F5,[R12,#12]") 8640EQUD FNfpu("MUFS F6,F0,F3") 8650EQUD FNfpu("MUFS F7,F1,F4") 8660EQUD FNfpu("ADFS F6,F6,F7") 8670EQUD FNfpu("MUFS F7,F2,F5") 8680EQUD FNfpu("ADFS F6,F6,F7") 8690: 8700EQUD FNfpu("MUFS F3,F3,F2") 8710EQUD FNfpu("MUFS F3,F3,F0") 8720EQUD FNfpu("MUFS F3,F3,#2.0") 8730EQUD FNfpu("MUFS F4,F4,F2") 8740EQUD FNfpu("MUFS F4,F4,F1") 8750EQUD FNfpu("MUFS F4,F4,#2.0") 8760EQUD FNfpu("ADFS F3,F3,F4") 8770EQUD FNfpu("MUFS F7,F2,F2") 8780EQUD FNfpu("MUFS F4,F1,F1") 8790EQUD FNfpu("SUFS F7,F7,F4") 8800EQUD FNfpu("MUFS F4,F0,F0") 8810EQUD FNfpu("SUFS F7,F7,F4") 8820EQUD FNfpu("MUFS F7,F7,F5") 8830EQUD FNfpu("ADFS F7,F7,F3") 8840EQUD FNfpu("MUFS F5,F1,F1") 8850EQUD FNfpu("ADFS F4,F4,F5") 8860EQUD FNfpu("MUFS F5,F2,F2") 8870EQUD FNfpu("ADFS F4,F4,F5") 8880EQUD FNfpu("DVFS F7,F7,F4") 8890EQUD FNfpu("MNFS F7,F7") 8900EQUD FNfpu("CMES F7,#0.0") 8910EQUD FNfpu("MVFLTS F7,#0.0") 8920EQUD FNfpu("CMES F6,#0.0") 8930EQUD FNfpu("MVFLTS F6,#0.0") 8940EQUD FNfpu("LDFS F3,[R0,#52]") 8950EQUD FNfpu("POWS F7,F7,F3") 8960EQUD FNfpu("LDFS F3,[R0,#40]") 8970EQUD FNfpu("MUFS F4,F3,F7") 8980EQUD FNfpu("LDFS F3,[R0,#28]") 8990EQUD FNfpu("MUFS F3,F3,F6") 9000EQUD FNfpu("LDFS F5,[R1]") 9010EQUD FNfpu("ADFS F5,F5,F3") 9020EQUD FNfpu("ADFS F5,F5,F4") 9030EQUD FNfpu("STFS F5,[R1]") 9040EQUD FNfpu("LDFS F3,[R0,#44]") 9050EQUD FNfpu("MUFS F4,F3,F7") 9060EQUD FNfpu("LDFS F3,[R0,#32]") 9070EQUD FNfpu("MUFS F3,F3,F6") 9080EQUD FNfpu("LDFS F5,[R1,#4]") 9090EQUD FNfpu("ADFS F5,F5,F3") 9100EQUD FNfpu("ADFS F5,F5,F4") 9110EQUD FNfpu("STFS F5,[R1,#4]") 9120EQUD FNfpu("LDFS F3,[R0,#48]") 9130EQUD FNfpu("MUFS F4,F3,F7") 9140EQUD FNfpu("LDFS F3,[R0,#36]") 9150EQUD FNfpu("MUFS F3,F3,F6") 9160EQUD FNfpu("LDFS F5,[R1,#8]") 9170EQUD FNfpu("ADFS F5,F5,F3") 9180EQUD FNfpu("ADFS F5,F5,F4") 9190EQUD FNfpu("STFS F5,[R1,#8]") 9200B intenlp 9210] 9220ENDPROC 9230: 9240DEF PROCcolour 9250[ OPT opt% 9260.colour 9270STMFD R13!,{R14} 9280LDR R0,input 9290LDR R1,output 9300LDR R2,[R0] 9310LDR R3,[R0,#4] 9320LDR R4,[R0,#8] 9330LDR R12,seed 9340LDR R11,bitmap 9350MOV R9,#&DD 9360BL random:ADD R2,R2,R10 9370BL random:ADD R3,R3,R10 9380BL random:ADD R4,R4,R10 9390STR R12,seed 9400CMP R2,#&00:MOVLT R2,#&00:CMP R2,#&FF:MOVGT R2,#&FF 9410CMP R3,#&00:MOVLT R3,#&00:CMP R3,#&FF:MOVGT R3,#&FF 9420CMP R4,#&00:MOVLT R4,#&00:CMP R4,#&FF:MOVGT R4,#&FF 9430AND R5,R2,#&C0:AND R6,R3,#&C0:AND R7,R4,#&C0 9440AND R2,R2,#&3F:AND R3,R3,#&3F:AND R4,R4,#&3F 9450MOV R8,R5,ASR #&06:ORR R8,R8,R6,ASR #&04:ORR R8,R8,R7,ASR #&02 9460MOV R10,#&64:MUL R9,R2,R10:MOV R10,#&82:MLA R9,R3,R10,R9 9470MOV R10,#&19:MLA R9,R4,R10,R9:AND R9,R9,#&3000 9480ORR R8,R8,R9,ASR #&06 9490STR R8,[R1] 9500LDMFD R13!,{PC} 9510: 9520.random 9530MOVS R12,R12,LSL #1:EORCS R12,R12,R11:MOV R10,R10,LSR #&0A 9540MOVS R12,R12,LSL #1:EORCS R12,R12,R11:ADD R10,R10,R12,LSR #&0A 9550MOVS R12,R12,LSL #1:EORCS R12,R12,R11:ADD R10,R10,R12,LSR #&0A 9560MOVS R12,R12,LSL #1:EORCS R12,R12,R11:ADD R10,R10,R12,LSR #&0A 9570SUB R10,R10,#&800000 9580MUL R10,R9,R10 9590MOV R10,R10,ASR #&1A 9600MOV PC,R14 9610: 9620.seed EQUD TIME 9630.bitmap EQUD &1D872B41 9640] 9650ENDPROC 9660: 9670DEF FNfpu(code$) 9680op$=LEFT$(code$,3) 9690opt$=MID$(code$,4,INSTR(code$," ")-4) 9700reg$=MID$(code$,INSTR(code$," ")+1) 9710IF LEN(opt$)<3 THEN opt$="AL"+opt$ 9720cnd%=INSTR("EQNECSCCMIPLVSVCHILSGELTGTLEALNV",LEFT$(opt$,2)) DIV 2 9730prc%=INSTR("SDEP",MID$(opt$,3,1))-1 9740rnd%=INSTR("PMZ",opt$,4) 9750: 9760op%=INSTR("STFLDF",op$)-1 9770IF op%>=0 THEN =FNdata(op% DIV 3,cnd%,prc%,reg$) 9780: 9790in%=(cnd%<<28) OR ((prc% AND 2)<<19) OR ((prc% AND 1)<<7) OR (rnd%<<5) 9800: 9810op%=INSTR("ADFMUFSUFRSFDVFRDFPOWRPWRMFFMLFDVFRDPOL",op$)-1 9820IF op%>=0 THEN =FNbinops(op% DIV 3,in%,reg$) 9830op%=INSTR("MVFMNFABSRNDSQTLOGLGNEXPSINCOSTANASNACSATN",op$)-1 9840IF op%>=0 THEN =FNunops(op% DIV 3,in%,reg$) 9850op%=INSTR("CMFCNFCMECNE",op$)-1 9860IF op%>=0 THEN =FNcmp(op% DIV 3,in%,reg$) 9870: 9880ERROR 255,"Unrecognised fpu instruction" 9890: 9900DEF FNeval(reg$,type$,RETURN chr%) 9910chr%=INSTR(reg$,type$,chr%+1) 9920=VAL(MID$(reg$,chr%+1)) 9930: 9940DEF FNconstant(reg$,chr%) 9950=INSTR("0 1 2 3 4 5 0.510",STR$(FNeval(reg$,"#",chr%))) DIV 3 9960: 9970DEF FNdata(op%,cnd%,prc%,reg$) 9980chr%=0 9990fd%=FNeval(reg$,"F",chr%)<<12 10000rn%=FNeval(reg$,"R",chr%)<<16 10010offset%=FNeval(reg$,"#",chr%) 10020pre%=(INSTR(reg$,"]",chr%)>0) AND (1<<24) 10030wb%=(INSTR(reg$,"!")>0)AND (1<<21) 10040sgn%=(offset%>=0) AND (1<<23) 10050offset%=ABS(offset% DIV 4) 10060in%=(cnd%<<28) OR ((prc% AND 2)<<22) OR ((prc% AND 1)<<15) OR (op%<<20) 10070=in% OR pre% OR sgn% OR wb% OR rn% OR fd% OR offset% OR &C000100 10080: 10090DEF FNbinops(op%,in%,reg$) 10100chr%=0 10110fd%=FNeval(reg$,"F",chr%)<<12 10120fn%=FNeval(reg$,"F",chr%)<<16 10130fm%=FNeval(reg$,"F",chr%) 10140IF chr%=0 THEN fm%=FNconstant(reg$,chr%):i%=1<<3 ELSE i%=0 10150=in% OR (op%<<20) OR fn% OR fd% OR i% OR fm% OR &E000100 10160: 10170DEF FNunops(op%,in%,reg$) 10180chr%=0 10190fd%=FNeval(reg$,"F",chr%)<<12 10200fm%=FNeval(reg$,"F",chr%) 10210IF chr%=0 THEN fm%=FNconstant(reg$,chr%):i%=1<<3 ELSE i%=0 10220=in% OR (op%<<20) OR fd% OR i% OR fm% OR &E008100 10230: 10240DEF FNcmp(op%,in%,reg$) 10250chr%=0 10260fd%=FNeval(reg$,"F",chr%)<<16 10270fm%=FNeval(reg$,"F",chr%) 10280IF chr%=0 THEN fm%=FNconstant(reg$,chr%):i%=1<<3 ELSE i%=0 10290=in% OR (op%<<21) OR fd% OR i% OR fm% OR &E90F110
� >Assemble � By Robin Barnes � For 32-bit machines (� (c) BAU June 1993 2: <name$="Code" F� assem% &8000 P�assem(end%) Z*ș "OS_File",&00,name$,0,0,assem%,end% d� n: x� �assem(� end%) �� opt%=0 � 3 � 3 � P%=assem% �[ OPT opt% �EQUD boundbox-assem% �EQUD plane-assem% �EQUD pointnormal-assem% �EQUD polynormal-assem% �EQUD scanline-assem% �EQUD point-assem% �EQUD intensity-assem% �EQUD colour-assem% �EQUD fputobas-assem% �EQUD bastofpu-assem% EQUD number-assem% EQUD transform-assem% EQUD perspective-assem% ": ,.input EQUD 0 6.output EQUD 0 @] J�transform T�perspective ^ �boundbox h �plane r�pointnormal |�polynormal � �scanline � �point ��intensity ��colour ��number � � opt% �end%=P% �� �: �� �transform �[ OPT opt% �\ tranform points �: .transform LDR R0,input LDR R1,[R0,#8] &LDR R2,[R0,#40] 0LDR R3,[R1] :: D.translp NSUBS R3,R3,#&01 XMOVLT PC,R14 bADD R12,R3,R3,ASL #&01 lADD R12,R1,R12,ASL #&02 v!EQUD �fpu("LDFS F0,[R12,#4]") �!EQUD �fpu("LDFS F1,[R12,#8]") �"EQUD �fpu("LDFS F2,[R12,#12]") �;EQUD �fpu("LDFS F7,[R2,#0]"):EQUD �fpu("ADFS F0,F0,F7") �;EQUD �fpu("LDFS F7,[R2,#4]"):EQUD �fpu("ADFS F1,F1,F7") �;EQUD �fpu("LDFS F7,[R2,#8]"):EQUD �fpu("ADFS F2,F2,F7") �: �<EQUD �fpu("LDFS F7,[R2,#12]"):EQUD �fpu("MUFS F3,F0,F7") �<EQUD �fpu("LDFS F7,[R2,#16]"):EQUD �fpu("MUFS F6,F1,F7") �<EQUD �fpu("ADFS F3,F3,F6"):EQUD �fpu("LDFS F7,[R2,#20]") �9EQUD �fpu("MUFS F6,F2,F7"):EQUD �fpu("ADFS F3,F3,F6") �: �<EQUD �fpu("LDFS F7,[R2,#24]"):EQUD �fpu("MUFS F4,F0,F7") �<EQUD �fpu("LDFS F7,[R2,#28]"):EQUD �fpu("MUFS F6,F1,F7") <EQUD �fpu("ADFS F4,F4,F6"):EQUD �fpu("LDFS F7,[R2,#32]") 9EQUD �fpu("MUFS F6,F2,F7"):EQUD �fpu("ADFS F4,F4,F6") : <EQUD �fpu("LDFS F7,[R2,#36]"):EQUD �fpu("MUFS F5,F0,F7") *<EQUD �fpu("LDFS F7,[R2,#40]"):EQUD �fpu("MUFS F6,F1,F7") 4<EQUD �fpu("ADFS F5,F5,F6"):EQUD �fpu("LDFS F7,[R2,#44]") >9EQUD �fpu("MUFS F6,F2,F7"):EQUD �fpu("ADFS F5,F5,F6") H!EQUD �fpu("STFS F3,[R12,#4]") R!EQUD �fpu("STFS F4,[R12,#8]") \"EQUD �fpu("STFS F5,[R12,#12]") f B translp p] z� �: �� �perspective �[ OPT opt% �\ perspective transform �: �.perspective �LDR R0,input �LDR R1,[R0,#8] �LDR R2,[R1] �EQUD �fpu("MVFS F6,#1.0") �!EQUD �fpu("DVFS F6,F6,#10.0") �!EQUD �fpu("POWS F6,F6,#10.0") �: .prspctlp SUBS R2,R2,#&01 MOVLT PC,R14 $ADD R12,R2,R2,ASL #&01 .ADD R12,R1,R12,ASL #&02 8!EQUD �fpu("LDFS F0,[R12,#4]") B!EQUD �fpu("LDFS F1,[R12,#8]") L"EQUD �fpu("LDFS F2,[R12,#12]") VEQUD �fpu("CMES F2,#0.0") `EQUD �fpu("MVFLES F2,F6") jEQUD �fpu("DVFS F0,F0,F2") tEQUD �fpu("DVFS F1,F1,F2") ~!EQUD �fpu("STFS F0,[R12,#4]") �!EQUD �fpu("STFS F1,[R12,#8]") �B prspctlp �] �� �: �� �polynormal �[ OPT opt% �!\ calculate normal to polygon �: �.polynormal �LDR R0,input �LDR R1,output LDR R2,[R0,#28] LDR R3,[R0,#44] ADD R12,R2,R3,ASL #&04 !EQUD �fpu("LDFS F0,[R12,#0]") (!EQUD �fpu("LDFS F1,[R12,#4]") 2!EQUD �fpu("LDFS F2,[R12,#8]") <EQUD �fpu("MUFS F3,F0,F0") FEQUD �fpu("MUFS F4,F1,F1") PEQUD �fpu("ADFS F3,F3,F4") ZEQUD �fpu("MUFS F4,F2,F2") dEQUD �fpu("ADFS F3,F3,F4") nEQUD �fpu("SQTS F3,F3") xEQUD �fpu("DVFS F0,F0,F3") �EQUD �fpu("DVFS F1,F1,F3") �EQUD �fpu("DVFS F2,F2,F3") � EQUD �fpu("STFS F0,[R1,#4]") � EQUD �fpu("STFS F1,[R1,#8]") �!EQUD �fpu("STFS F2,[R1,#12]") �MOV PC,R14 �] �� �: �� �boundbox � [OPT opt% �+\ calculate bounding boxes for polygons �: .boundbox STMFD R13!,{R14} LDR R0,input "LDR R1,[R0,#8] ,LDR R2,[R0,#12] 6LDR R3,[R0,#16] @LDR R4,[R0,#36] JLDR R0,output TLDR R5,[R2] ^EQUD �fpu("MVFS F4,#10.0") h!EQUD �fpu("POWS F4,F4,#10.0") rEQUD �fpu("MVFS F5,F4") |EQUD �fpu("MNFS F6,F4") �EQUD �fpu("MNFS F7,F4") �: � .bndboxlp �SUBS R5,R5,#&01 �EQUD �fpu("STFLTS F4,[R0]") �"EQUD �fpu("STFLTS F5,[R0,#4]") �"EQUD �fpu("STFLTS F6,[R0,#8]") �#EQUD �fpu("STFLTS F7,[R0,#12]") �LDMLTFD R13!,{PC} �BL bndpoly �B bndboxlp �: �.bndpoly ADD R11,R5,#&01 LDR R11,[R2,R11,ASL #&02] ADD R11,R11,R3 &ADD R11,R11,#&04 0LDR R6,[R11] :EQUD �fpu("MVFS F0,#10.0") D!EQUD �fpu("POWS F0,F0,#10.0") NEQUD �fpu("MNFS F1,F0") X: b .bndpollp lLDR R7,[R11,R6,ASL #&02] vADD R12,R7,R7,ASL #&01 �ADD R12,R1,R12,ASL #&02 �"EQUD �fpu("LDFS F2,[R12,#04]") �"EQUD �fpu("LDFS F3,[R12,#08]") �EQUD �fpu("CMES F3,F0") �EQUD �fpu("MVFLTS F0,F3") �EQUD �fpu("CMES F3,F1") �EQUD �fpu("MVFGTS F1,F3") �EQUD �fpu("CMES F2,F4") �EQUD �fpu("MVFLTS F4,F2") �EQUD �fpu("CMES F2,F6") �EQUD �fpu("MVFGTS F6,F2") �SUBS R6,R6,#&01 �BGT bndpollp ADD R12,R4,R5,ASL #&03 !EQUD �fpu("STFS F0,[R12,#0]") !EQUD �fpu("STFS F1,[R12,#4]") EQUD �fpu("CMES F0,F5") *EQUD �fpu("MVFLTS F5,F0") 4EQUD �fpu("CMES F1,F7") >EQUD �fpu("MVFGTS F7,F1") HMOV PC,R14 R] \� f: p� �pointnormal z[ OPT opt% �#\ calculate normals at vertices �: �.pointnormal �STMFD R13!,{R14} �LDR R0,input �LDR R4,[R0,#32] �LDR R1,[R0,#8] �LDR R1,[R1] �EQUD �fpu("MVFS F0,#0.0") �: � .normblnk �SUBS R1,R1,#&01 �LDRLT R1,[R0,#12] LDRLT R2,[R0,#16] LDRLT R3,[R0,#28] LDRLT R5,[R1] $BLT pntnormlp .ADD R12,R1,R1,ASL #&01 8ADD R12,R4,R12,ASL #&02 B!EQUD �fpu("STFS F0,[R12,#0]") L!EQUD �fpu("STFS F0,[R12,#4]") V!EQUD �fpu("STFS F0,[R12,#8]") `B normblnk j: t.pntnormlp ~SUBS R5,R5,#&01 �LDRLT R1,[R0,#8] �LDRLT R1,[R1] �BLT modulus �BL sumpoly �B pntnormlp �: �.modulus �SUBS R1,R1,#&01 �LDMLTFD R13!,{PC} �ADD R12,R1,R1,ASL #&01 �ADD R12,R4,R12,ASL #&02 �EQUD �fpu("LDFS F0,[R12]") !EQUD �fpu("LDFS F1,[R12,#4]") !EQUD �fpu("LDFS F2,[R12,#8]") EQUD �fpu("MUFS F3,F0,F0") EQUD �fpu("MUFS F4,F1,F1") (EQUD �fpu("MUFS F5,F2,F2") 2EQUD �fpu("ADFS F3,F3,F4") <EQUD �fpu("ADFS F3,F3,F5") FEQUD �fpu("SQTS F3,F3") PEQUD �fpu("DVFS F0,F0,F3") ZEQUD �fpu("DVFS F1,F1,F3") dEQUD �fpu("DVFS F2,F2,F3") nEQUD �fpu("STFS F0,[R12]") x!EQUD �fpu("STFS F1,[R12,#4]") �!EQUD �fpu("STFS F2,[R12,#8]") � B modulus �: �.sumpoly �ADD R11,R5,#&01 �LDR R11,[R1,R11,ASL #&02] �ADD R11,R11,R2 �ADD R11,R11,#&04 �LDR R6,[R11] �ADD R12,R3,R5,ASL #&04 �EQUD �fpu("LDFS F0,[R12]") �!EQUD �fpu("LDFS F1,[R12,#4]") �!EQUD �fpu("LDFS F2,[R12,#8]") : .sumpolylp SUBS R6,R6,#&01 "MOVLE PC,R14 ,LDR R7,[R11,R6,ASL #&02] 6ADD R12,R7,R7,ASL #&01 @ADD R12,R4,R12,ASL #&02 JEQUD �fpu("LDFS F3,[R12]") T!EQUD �fpu("LDFS F4,[R12,#4]") ^!EQUD �fpu("LDFS F5,[R12,#8]") hEQUD �fpu("ADFS F3,F3,F0") rEQUD �fpu("ADFS F4,F4,F1") |EQUD �fpu("ADFS F5,F5,F2") �EQUD �fpu("STFS F3,[R12]") �!EQUD �fpu("STFS F4,[R12,#4]") �!EQUD �fpu("STFS F5,[R12,#8]") �B sumpolylp �] �� �: �� �plane �[ OPT opt% �,\ calculate plane equations for polygons �: � .plane �STMFD R13!,{R14} LDR R0,input LDR R1,[R0,#8] LDR R2,[R0,#12] &LDR R3,[R0,#16] 0LDR R4,[R0,#28] :LDR R5,[R2] D: N .plnpollp XSUBS R5,R5,#&01 bLDMLTFD R13!,{PC} lBL planecalc vB plnpollp �: �.planecalc �ADD R10,R5,#&01 �LDR R10,[R2,R10,ASL #&02] �ADD R10,R10,R3 �ADD R10,R10,#&04 �LDR R6,[R10] �EQUD �fpu("MVFS F0,#0.0") �EQUD �fpu("MVFS F1,#0.0") �EQUD �fpu("MVFS F2,#0.0") �: �.planelp �LDR R7,[R10,R6,ASL #&02] SUBS R6,R6,#&01 BLE planestore LDR R8,[R10,R6,ASL #&02] ADD R11,R7,R7,ASL #&01 *ADD R11,R1,R11,ASL #&02 4ADD R12,R8,R8,ASL #&01 >ADD R12,R1,R12,ASL #&02 H"EQUD �fpu("LDFS F4,[R11,#04]") R"EQUD �fpu("LDFS F5,[R12,#04]") \"EQUD �fpu("LDFS F6,[R11,#08]") f"EQUD �fpu("LDFS F7,[R12,#08]") pEQUD �fpu("SUFS F4,F5,F4") zEQUD �fpu("ADFS F5,F6,F7") �EQUD �fpu("MUFS F4,F4,F5") �EQUD �fpu("ADFS F2,F2,F4") �"EQUD �fpu("LDFS F4,[R11,#12]") �"EQUD �fpu("LDFS F5,[R12,#12]") �EQUD �fpu("SUFS F6,F7,F6") �EQUD �fpu("ADFS F7,F5,F4") �EQUD �fpu("MUFS F6,F6,F7") �EQUD �fpu("ADFS F0,F0,F6") �!EQUD �fpu("LDFS F6,[R11,#4]") �!EQUD �fpu("LDFS F7,[R12,#4]") �EQUD �fpu("SUFS F4,F5,F4") �EQUD �fpu("ADFS F5,F7,F6") �EQUD �fpu("MUFS F4,F4,F5") EQUD �fpu("ADFS F1,F1,F4") B planelp : $.planestore .ADD R11,R7,R7,ASL #&01 8ADD R11,R1,R11,ASL #&02 B!EQUD �fpu("LDFS F4,[R11,#4]") L!EQUD �fpu("LDFS F5,[R11,#8]") V"EQUD �fpu("LDFS F6,[R11,#12]") `EQUD �fpu("MUFS F4,F4,F0") jEQUD �fpu("MUFS F5,F5,F1") tEQUD �fpu("MUFS F6,F6,F2") ~EQUD �fpu("ADFS F4,F4,F5") �EQUD �fpu("ADFS F4,F4,F6") �EQUD �fpu("MNFS F4,F4") �ADD R12,R4,R5,ASL #&04 �EQUD �fpu("STFS F0,[R12]") �"EQUD �fpu("STFS F1,[R12,#04]") �"EQUD �fpu("STFS F2,[R12,#08]") �"EQUD �fpu("STFS F4,[R12,#12]") �MOV PC,R14 �] �� �: �� �scanline [ OPT opt% $\ produce ordered edge pair list : .inside (ADD R12,R5,R7,ASL #&03 2EQUD �fpu("LDFS F2,[R12]") <EQUD �fpu("CMES F1,F2") FMOVLT PC,R14 P!EQUD �fpu("LDFS F2,[R12,#4]") ZEQUD �fpu("CMES F1,F2") dMOVGT PC,R14 nADD R11,R7,#&01 xLDR R11,[R2,R11,ASL #&02] �ADD R11,R11,R3 �ADD R11,R11,#&04 �LDR R8,[R11] �: �.edgelp �LDR R9,[R11,R8,ASL #&02] �SUBS R8,R8,#&01 �MOVLE PC,R14 �ADD R12,R9,R9,ASL #&01 �ADD R12,R1,R12,ASL #&02 �"EQUD �fpu("LDFS F2,[R12,#08]") �LDR R10,[R11,R8,ASL #&02] �ADD R12,R10,R10,ASL #&01 ADD R12,R1,R12,ASL #&02 "EQUD �fpu("LDFS F3,[R12,#08]") : "EQUD �fpu("MVFS F4,F2") ,EQUD �fpu("MVFS F5,F3") 6EQUD �fpu("CMES F2,F3") @EQUD �fpu("MVFGTS F5,F2") JEQUD �fpu("MVFGTS F4,F3") TEQUD �fpu("CMES F1,F5") ^BGT edgelp hEQUD �fpu("CMES F1,F4") rBLE edgelp |: �EQUD �fpu("SUFS F5,F3,F2") �ADD R12,R9,R9,ASL #&01 �ADD R12,R1,R12,ASL #&02 �"EQUD �fpu("LDFS F7,[R12,#04]") �ADD R12,R10,R10,ASL #&01 �ADD R12,R1,R12,ASL #&02 �"EQUD �fpu("LDFS F3,[R12,#04]") �EQUD �fpu("SUFS F4,F3,F7") �EQUD �fpu("SUFS F2,F1,F2") �EQUD �fpu("DVFS F5,F2,F5") �EQUD �fpu("MUFS F4,F5,F4") �EQUD �fpu("ADFS F4,F4,F7") �: ADD R12,R4,R6,ASL #&03 EQUD �fpu("STFS F4,[R12]") MOV R9,R7,ASL #&10 &�R R9,R9,R8 0STR R9,[R12,#&04] :ADD R6,R6,#&01 DB edgelp N: X .scanline bSTMFD R13!,{R14} lLDR R0,input v EQUD �fpu("LDFS F1,[R0,#4]") �LDR R1,[R0,#8] �LDR R2,[R0,#12] �LDR R3,[R0,#16] �LDR R4,[R0,#20] �ADD R4,R4,#&04 �LDR R5,[R0,#36] �MOV R6,#&00 �LDR R7,[R2] �: �.scanlp �SUBS R7,R7,#&01 �BLT ordertable � BL inside B scanlp : .ordertable STR R6,[R4,#-4] *CMP R6,#&02 4LDMLTFD R13!,{PC} >�S R12,R6,#&01 HADDNE R6,R6,#&01 R EQUD �fpu("MVFNES F7,#10.0") \#EQUD �fpu("POWNES F7,F7,#10.0") fEQUD �fpu("MNFNES F7,F7") pADDNE R12,R4,R6,ASL #&03 z#EQUD �fpu("STFNES F7,[R12,#0]") � MOV R0,R4 � MOV R1,R6 �BL sort �LDMFD R13!,{PC} �: �.pileup �MOV R5,R3,ASL #&01 � CMP R5,R4 �MOVGT PC,R14 � CMP R5,R4 � BEQ equal � MOV R6,R5 �ADD R7,R5,#&01 ADD R6,R0,R6,ASL #&03 ADD R7,R0,R7,ASL #&03 EQUD �fpu("LDFS F3,[R6]") $EQUD �fpu("LDFS F2,[R7]") .EQUD �fpu("CMES F3,F2") 8ADDGT R5,R5,#&01 BADD R6,R0,R3,ASL #&03 LADD R7,R0,R5,ASL #&03 VEQUD �fpu("LDFS F3,[R6]") `EQUD �fpu("LDFS F2,[R7]") jEQUD �fpu("CMES F3,F2") tMOVLE PC,R14 ~ADD R6,R0,R3,ASL #&03 �ADD R7,R0,R5,ASL #&03 �LDMIA R6,{R9-R10} �LDMIA R7,{R11-R12} �STMIA R7,{R9-R10} �STMIA R6,{R11-R12} � MOV R3,R5 �B pileup �: � .equal �ADD R6,R0,R3,ASL #&03 �ADD R7,R0,R4,ASL #&03 �EQUD �fpu("LDFS F3,[R6]") EQUD �fpu("LDFS F3,[R7]") EQUD �fpu("CMES F3,F2") MOVLT PC,R14 ADD R6,R0,R3,ASL #&03 (ADD R7,R0,R4,ASL #&03 2LDMIA R6,{R9-R10} <LDMIA R7,{R11-R12} FSTMIA R7,{R9-R10} PSTMIA R6,{R11-R12} ZMOV PC,R14 d: n .sort xSTMFD R13!,{R14} �SUB R1,R1,#&01 �MOV R2,R1,ASR #&01 �: � .upper � MOV R3,R2 � MOV R4,R1 � BL pileup �SUBS R2,R2,#&01 � BGE upper � MOV R2,R1 �: � .lower � MOV R6,R0 ADD R7,R0,R2,ASL #&03 LDMIA R6,{R9-R10} LDMIA R7,{R11-R12} "STMIA R7,{R9-R10} ,STMIA R6,{R11-R12} 6SUB R4,R2,#&01 @MOV R3,#&00 J BL pileup TSUBS R2,R2,#&01 ^ BGT lower hLDMFD R13!,{PC} r] |� �: �� �point �[ OPT opt% �\ calculate normal at point �: � .point �LDR R0,input �LDR R1,output �EQUD �fpu("LDFS F0,[R0]") � EQUD �fpu("LDFS F1,[R0,#4]") �LDR R2,[R0,#12] �LDR R3,[R0,#20] �LDR R4,[R0,#24] LDR R5,[R0,#28] LDR R6,[R2] LDR R7,[R3],#&04 & MOV R8,R6 0MOV R9,#&00 :SUB R9,R9,#&01 DEQUD �fpu("MVFS F7,#10.0") N!EQUD �fpu("POWS F7,F7,#10.0") X: b.pointblnk lSUBS R8,R8,#&01 vMOVLT R8,#&00 �BLT findedge �STR R9,[R4,R8,ASL #&02] �B pointblnk �: � .findedge �ADD R12,R3,R8,ASL #&03 �EQUD �fpu("LDFS F2,[R12]") �EQUD �fpu("CMES F2,F0") �MOVLT R8,R6 � BLT depth �LDR R10,[R12,#&04] �MOV R10,R10,ASR #&10 �LDR R11,[R4,R10,ASL #&02] CMP R11,R9 MOVNE R11,R9 �Q R11,R8 STR R11,[R4,R10,ASL #&02] *ADD R8,R8,#&01 4 CMP R8,R7 >BLT findedge H MOV R8,R6 R: \ .depth fSUBS R8,R8,#&01 pBLT pair zLDR R10,[R4,R8,ASL #&02] �CMP R10,#&00 � BLT depth �ADD R12,R5,R8,ASL #&04 �EQUD �fpu("LDFS F2,[R12]") �"EQUD �fpu("LDFS F3,[R12,#04]") �"EQUD �fpu("LDFS F4,[R12,#08]") �"EQUD �fpu("LDFS F5,[R12,#12]") �EQUD �fpu("MUFS F2,F2,F0") �EQUD �fpu("MUFS F3,F3,F1") �EQUD �fpu("ADFS F2,F2,F3") �EQUD �fpu("ADFS F4,F4,F2") �EQUD �fpu("CMES F4,#0.0") � BEQ depth EQUD �fpu("DVFS F5,F5,F4") EQUD �fpu("MNFS F5,F5") EQUD �fpu("CMES F5,#0.0") $EQUD �fpu("CMEGES F7,F5") .MOVGE R9,R10 8EQUD �fpu("MVFGES F7,F5") BB depth L: V .pair `CMP R9,#&00 jSTRLT R9,[R1] tMOVLT PC,R14 ~ADD R12,R3,R9,ASL #&03 �LDR R11,[R12,#&04] �MOV R11,R11,ASR #&10 �ADD R10,R9,#&01 �: �.pairlp �ADD R12,R3,R10,ASL #&03 �LDR R8,[R12,#&04] �MOV R8,R8,ASR #&10 �CMP R8,R11 �BEQ detect �ADD R10,R10,#&01 �CMP R10,R7 BLT pairlp MOV R10,#&00 SUB R10,R10,#&01 STR R10,[R1] (MOV PC,R14 2: <.detect FADD R12,R2,#&04 PLDR R12,[R12,R11,ASL #&02] ZLDR R2,[R0,#8] dLDR R4,[R0,#16] nLDR R5,[R0,#32] xADD R4,R4,R12 �LDR R6,[R4],#&08 �: �ADD R12,R3,R9,ASL #&03 �EQUD �fpu("LDFS F2,[R12]") �LDR R9,[R12,#&04] �ADD R12,R3,R10,ASL #&03 �EQUD �fpu("LDFS F3,[R12]") �LDR R10,[R12,#&04] �)MOV R9,R9,ASL #&10:MOV R9,R9,LSR #&10 �-MOV R10,R10,ASL #&10:MOV R10,R10,LSR #&10 �: �LDR R7,[R4,R9,ASL #&02] �SUB R9,R9,#&01 LDR R9,[R4,R9,ASL #&02] LDR R8,[R4,R10,ASL #&02] SUB R10,R10,#&01 "LDR R10,[R4,R10,ASL #&02] ,: 6�S R12,R6,#&02 @STRNE R11,[R1] JSTRNE R7,[R1,#16] TSTRNE R8,[R1,#20] ^STRNE R9,[R1,#24] hSTRNE R10,[R1,#28] rMOVNE PC,R14 |: �EQUD �fpu("SUFS F4,F2,F3") �EQUD �fpu("SUFS F5,F0,F3") �EQUD �fpu("CMES F4,#0.0") � EQUD �fpu("DVFNES F7,F5,F4") �EQUD �fpu("MVFEQS F7,#0.0") �: �ADD R12,R7,R7,ASL #&01 �ADD R12,R2,R12,ASL #&02 �"EQUD �fpu("LDFS F4,[R12,#04]") �"EQUD �fpu("LDFS F5,[R12,#08]") �ADD R12,R9,R9,ASL #&01 �ADD R12,R2,R12,ASL #&02 �"EQUD �fpu("LDFS F6,[R12,#04]") EQUD �fpu("SUFS F4,F4,F6") EQUD �fpu("SUFS F2,F2,F6") "EQUD �fpu("LDFS F6,[R12,#08]") &EQUD �fpu("SUFS F5,F5,F6") 0EQUD �fpu("SUFS F6,F1,F6") :EQUD �fpu("MUFS F4,F4,F4") DEQUD �fpu("MUFS F5,F5,F5") NEQUD �fpu("ADFS F4,F4,F5") XEQUD �fpu("SQTS F4,F4") bEQUD �fpu("MUFS F6,F6,F6") lEQUD �fpu("MUFS F2,F2,F2") vEQUD �fpu("ADFS F2,F2,F6") �EQUD �fpu("SQTS F2,F2") �EQUD �fpu("CMES F4,#0.0") � EQUD �fpu("DVFNES F2,F2,F4") �EQUD �fpu("MVFEQS F2,#0.0") �: �ADD R12,R8,R8,ASL #&01 �ADD R12,R2,R12,ASL #&02 �"EQUD �fpu("LDFS F4,[R12,#04]") �"EQUD �fpu("LDFS F5,[R12,#08]") �ADD R12,R10,R10,ASL #&01 �ADD R12,R2,R12,ASL #&02 �"EQUD �fpu("LDFS F6,[R12,#04]") �EQUD �fpu("SUFS F4,F4,F6") EQUD �fpu("SUFS F3,F3,F6") "EQUD �fpu("LDFS F6,[R12,#08]") EQUD �fpu("SUFS F5,F5,F6") EQUD �fpu("SUFS F6,F1,F6") *EQUD �fpu("MUFS F4,F4,F4") 4EQUD �fpu("MUFS F5,F5,F5") >EQUD �fpu("ADFS F4,F4,F5") HEQUD �fpu("SQTS F4,F4") REQUD �fpu("MUFS F6,F6,F6") \EQUD �fpu("MUFS F3,F3,F3") fEQUD �fpu("ADFS F3,F3,F6") pEQUD �fpu("SQTS F3,F3") zEQUD �fpu("CMES F4,#0.0") � EQUD �fpu("DVFNES F3,F3,F4") �EQUD �fpu("MVFEQS F3,#0.0") �: ��S R12,R6,#&01 �STRNE R11,[R1] �STRNE R7,[R1,#16] �STRNE R8,[R1,#20] �STRNE R9,[R1,#24] �STRNE R10,[R1,#28] �#EQUD �fpu("STFNES F2,[R1,#32]") �#EQUD �fpu("STFNES F3,[R1,#36]") �#EQUD �fpu("STFNES F7,[R1,#40]") �MOVNE PC,R14 : ] � nmas%=0 � 2 $[ OPT opt% .ADD R12,R7,R7,ASL #&01 8ADD R12,R5,R12,ASL #&02 B.EQUD �fpu("LDFS F4,[R12,#"+�(4*nmas%)+"]") LADD R12,R9,R9,ASL #&01 VADD R12,R5,R12,ASL #&02 `.EQUD �fpu("LDFS F5,[R12,#"+�(4*nmas%)+"]") jEQUD �fpu("CMES F4,F5") t EQUD �fpu("MUFNES F4,F4,F2") ~"EQUD �fpu("RSFNES F2,F2,#1.0") � EQUD �fpu("MUFNES F5,F5,F2") � EQUD �fpu("ADFNES F4,F4,F5") �"EQUD �fpu("RSFNES F2,F2,#1.0") �ADD R12,R8,R8,ASL #&01 �ADD R12,R5,R12,ASL #&02 �.EQUD �fpu("LDFS F5,[R12,#"+�(4*nmas%)+"]") �ADD R12,R10,R10,ASL #&01 �ADD R12,R5,R12,ASL #&02 �.EQUD �fpu("LDFS F6,[R12,#"+�(4*nmas%)+"]") �EQUD �fpu("CMES F5,F6") � EQUD �fpu("MUFNES F5,F5,F3") �"EQUD �fpu("RSFNES F3,F3,#1.0") EQUD �fpu("MUFNES F6,F6,F3") EQUD �fpu("ADFNES F5,F5,F6") "EQUD �fpu("RSFNES F3,F3,#1.0") EQUD �fpu("CMES F4,F5") ( EQUD �fpu("MUFNES F4,F4,F7") 2"EQUD �fpu("RSFNES F7,F7,#1.0") < EQUD �fpu("MUFNES F5,F5,F7") F EQUD �fpu("ADFNES F4,F4,F5") P"EQUD �fpu("RSFNES F7,F7,#1.0") Z/EQUD �fpu("STFS F4,[R1,#"+�(4*nmas%+4)+"]") d] n� nmas% x[ OPT opt% �STR R11,[R1] �STR R7,[R1,#16] �STR R8,[R1,#20] �STR R9,[R1,#24] �STR R10,[R1,#28] �!EQUD �fpu("STFS F2,[R1,#32]") �!EQUD �fpu("STFS F3,[R1,#36]") �!EQUD �fpu("STFS F7,[R1,#40]") �MOV PC,R14 �] �� �: � � �number [ OPT opt% .bastofpu LDR R0,number "LDRB R1,number+4 ,CMP R0,#&00 6CMPEQ R1,#&00 @LDREQ R12,[R9] JSTREQ R0,[R12] T �Q PC,R14 ^MOV R2,#&80000000 h� R3,R0,R2 rSUB R2,R2,#&01 |� R0,R0,R2 �SUB R1,R1,#&02 ��R R3,R3,R1,ASL #23 ��R R0,R3,R0,LSR #8 �LDR R12,[R9] �STR R0,[R12] �MOV PC,R14 �: � .fputobas �LDR R12,[R9] �LDR R0,[R12] �CMP R0,#&00 �STREQ R0,number �STREQB R0,number+4 �Q PC,R14 MOV R1,#&80000000 � R2,R1,R0 &SUB R1,R1,#&01 0� R3,R0,R1,LSR #8 :�R R2,R2,R3,ASL #8 D� R3,R0,R1 NMOV R3,R3,LSR #23 XADD R3,R3,#&02 bSTR R2,number lSTRB R3,number+4 vMOV PC,R14 �: �.number �EQUD &00 �EQUD &00 �] �� �: �� �intensity �[ OPT opt% �.intensity �LDR R0,input �LDR R1,output �EQUD �fpu("LDFS F0,[R0]") ! EQUD �fpu("LDFS F1,[R0,#4]") ! EQUD �fpu("LDFS F2,[R0,#8]") !!EQUD �fpu("LDFS F7,[R0,#16]") ! EQUD �fpu("STFS F7,[R1]") !*!EQUD �fpu("LDFS F7,[R0,#20]") !4 EQUD �fpu("STFS F7,[R1,#4]") !>!EQUD �fpu("LDFS F7,[R0,#24]") !H EQUD �fpu("STFS F7,[R1,#8]") !RLDR R2,[R0,#12] !\LDR R3,[R2] !f: !p.intenlp !zSUBS R3,R3,#&01 !�MOVLT PC,R14 !�ADD R12,R3,R3,ASL #&01 !�ADD R12,R2,R12,ASL #&02 !�"EQUD �fpu("LDFS F3,[R12,#04]") !�"EQUD �fpu("LDFS F4,[R12,#08]") !�"EQUD �fpu("LDFS F5,[R12,#12]") !�EQUD �fpu("MUFS F6,F0,F3") !�EQUD �fpu("MUFS F7,F1,F4") !�EQUD �fpu("ADFS F6,F6,F7") !�EQUD �fpu("MUFS F7,F2,F5") !�EQUD �fpu("ADFS F6,F6,F7") !�: !�EQUD �fpu("MUFS F3,F3,F2") "EQUD �fpu("MUFS F3,F3,F0") " EQUD �fpu("MUFS F3,F3,#2.0") "EQUD �fpu("MUFS F4,F4,F2") "$EQUD �fpu("MUFS F4,F4,F1") ". EQUD �fpu("MUFS F4,F4,#2.0") "8EQUD �fpu("ADFS F3,F3,F4") "BEQUD �fpu("MUFS F7,F2,F2") "LEQUD �fpu("MUFS F4,F1,F1") "VEQUD �fpu("SUFS F7,F7,F4") "`EQUD �fpu("MUFS F4,F0,F0") "jEQUD �fpu("SUFS F7,F7,F4") "tEQUD �fpu("MUFS F7,F7,F5") "~EQUD �fpu("ADFS F7,F7,F3") "�EQUD �fpu("MUFS F5,F1,F1") "�EQUD �fpu("ADFS F4,F4,F5") "�EQUD �fpu("MUFS F5,F2,F2") "�EQUD �fpu("ADFS F4,F4,F5") "�EQUD �fpu("DVFS F7,F7,F4") "�EQUD �fpu("MNFS F7,F7") "�EQUD �fpu("CMES F7,#0.0") "�EQUD �fpu("MVFLTS F7,#0.0") "�EQUD �fpu("CMES F6,#0.0") "�EQUD �fpu("MVFLTS F6,#0.0") "�!EQUD �fpu("LDFS F3,[R0,#52]") "�EQUD �fpu("POWS F7,F7,F3") # !EQUD �fpu("LDFS F3,[R0,#40]") # EQUD �fpu("MUFS F4,F3,F7") #!EQUD �fpu("LDFS F3,[R0,#28]") #EQUD �fpu("MUFS F3,F3,F6") #(EQUD �fpu("LDFS F5,[R1]") #2EQUD �fpu("ADFS F5,F5,F3") #<EQUD �fpu("ADFS F5,F5,F4") #FEQUD �fpu("STFS F5,[R1]") #P!EQUD �fpu("LDFS F3,[R0,#44]") #ZEQUD �fpu("MUFS F4,F3,F7") #d!EQUD �fpu("LDFS F3,[R0,#32]") #nEQUD �fpu("MUFS F3,F3,F6") #x EQUD �fpu("LDFS F5,[R1,#4]") #�EQUD �fpu("ADFS F5,F5,F3") #�EQUD �fpu("ADFS F5,F5,F4") #� EQUD �fpu("STFS F5,[R1,#4]") #�!EQUD �fpu("LDFS F3,[R0,#48]") #�EQUD �fpu("MUFS F4,F3,F7") #�!EQUD �fpu("LDFS F3,[R0,#36]") #�EQUD �fpu("MUFS F3,F3,F6") #� EQUD �fpu("LDFS F5,[R1,#8]") #�EQUD �fpu("ADFS F5,F5,F3") #�EQUD �fpu("ADFS F5,F5,F4") #� EQUD �fpu("STFS F5,[R1,#8]") #� B intenlp #�] $� $: $ � �colour $"[ OPT opt% $,.colour $6STMFD R13!,{R14} $@LDR R0,input $JLDR R1,output $TLDR R2,[R0] $^LDR R3,[R0,#4] $hLDR R4,[R0,#8] $rLDR R12,seed $|LDR R11,bitmap $�MOV R9,#&DD $�BL random:ADD R2,R2,R10 $�BL random:ADD R3,R3,R10 $�BL random:ADD R4,R4,R10 $�STR R12,seed $�7CMP R2,#&00:MOVLT R2,#&00:CMP R2,#&FF:MOVGT R2,#&FF $�7CMP R3,#&00:MOVLT R3,#&00:CMP R3,#&FF:MOVGT R3,#&FF $�7CMP R4,#&00:MOVLT R4,#&00:CMP R4,#&FF:MOVGT R4,#&FF $�*� R5,R2,#&C0:� R6,R3,#&C0:� R7,R4,#&C0 $�*� R2,R2,#&3F:� R3,R3,#&3F:� R4,R4,#&3F $�@MOV R8,R5,ASR #&06:�R R8,R8,R6,ASR #&04:�R R8,R8,R7,ASR #&02 $�<MOV R10,#&64:MUL R9,R2,R10:MOV R10,#&82:MLA R9,R3,R10,R9 $�0MOV R10,#&19:MLA R9,R4,R10,R9:� R9,R9,#&3000 %�R R8,R8,R9,ASR #&06 %STR R8,[R1] %LDMFD R13!,{PC} %&: %0.random %:<MOVS R12,R12,LSL #1:�CS R12,R12,R11:MOV R10,R10,LSR #&0A %D@MOVS R12,R12,LSL #1:�CS R12,R12,R11:ADD R10,R10,R12,LSR #&0A %N@MOVS R12,R12,LSL #1:�CS R12,R12,R11:ADD R10,R10,R12,LSR #&0A %X@MOVS R12,R12,LSL #1:�CS R12,R12,R11:ADD R10,R10,R12,LSR #&0A %bSUB R10,R10,#&800000 %lMUL R10,R9,R10 %vMOV R10,R10,ASR #&1A %�MOV PC,R14 %�: %�.seed EQUD � %�.bitmap EQUD &1D872B41 %�] %�� %�: %�� �fpu(code$) %�op$=�code$,3) %� opt$=�code$,4,�code$," ")-4) %�reg$=�code$,�code$," ")+1) %� � �(opt$)<3 � opt$="AL"+opt$ %�:cnd%=�"EQNECSCCMIPLVSVCHILSGELTGTLEALNV",�opt$,2)) � 2 &prc%=�"SDEP",�opt$,3,1))-1 &rnd%=�"PMZ",opt$,4) &: & op%=�"STFLDF",op$)-1 &*-� op%>=0 � =�data(op% � 3,cnd%,prc%,reg$) &4: &>Cin%=(cnd%<<28) � ((prc% � 2)<<19) � ((prc% � 1)<<7) � (rnd%<<5) &H: &R9op%=�"ADFMUFSUFRSFDVFRDFPOWRPWRMFFMLFDVFRDPOL",op$)-1 &\)� op%>=0 � =�binops(op% � 3,in%,reg$) &f<op%=�"MVFMNFABSRNDSQTLOGLGNEXPSINCOSTANASNACSATN",op$)-1 &p(� op%>=0 � =�unops(op% � 3,in%,reg$) &zop%=�"CMFCNFCMECNE",op$)-1 &�&� op%>=0 � =�cmp(op% � 3,in%,reg$) &�: &�(� 255,"Unrecognised fpu instruction" &�: &�� �eval(reg$,type$,� chr%) &�chr%=�reg$,type$,chr%+1) &�=�(�reg$,chr%+1)) &�: &�� �constant(reg$,chr%) &�<=�"0 1 2 3 4 5 0.510",�(�eval(reg$,"#",chr%))) � 3 &�: &�� �data(op%,cnd%,prc%,reg$) &� chr%=0 ' fd%=�eval(reg$,"F",chr%)<<12 ' rn%=�eval(reg$,"R",chr%)<<16 ' offset%=�eval(reg$,"#",chr%) '$&pre%=(�reg$,"]",chr%)>0) � (1<<24) '.wb%=(�reg$,"!")>0)� (1<<21) '8sgn%=(offset%>=0) � (1<<23) 'Boffset%=�(offset% � 4) 'LDin%=(cnd%<<28) � ((prc% � 2)<<22) � ((prc% � 1)<<15) � (op%<<20) 'V==in% � pre% � sgn% � wb% � rn% � fd% � offset% � &C000100 '`: 'j� �binops(op%,in%,reg$) 't chr%=0 '~ fd%=�eval(reg$,"F",chr%)<<12 '� fn%=�eval(reg$,"F",chr%)<<16 '�fm%=�eval(reg$,"F",chr%) '�6� chr%=0 � fm%=�constant(reg$,chr%):i%=1<<3 � i%=0 '�6=in% � (op%<<20) � fn% � fd% � i% � fm% � &E000100 '�: '�� �unops(op%,in%,reg$) '� chr%=0 '� fd%=�eval(reg$,"F",chr%)<<12 '�fm%=�eval(reg$,"F",chr%) '�6� chr%=0 � fm%=�constant(reg$,chr%):i%=1<<3 � i%=0 '�0=in% � (op%<<20) � fd% � i% � fm% � &E008100 '�: ( � �cmp(op%,in%,reg$) ( chr%=0 ( fd%=�eval(reg$,"F",chr%)<<16 (fm%=�eval(reg$,"F",chr%) ((6� chr%=0 � fm%=�constant(reg$,chr%):i%=1<<3 � i%=0 (20=in% � (op%<<21) � fd% � i% � fm% � &E90F110 �
00000000 0d 00 0a 13 f4 20 20 20 20 20 3e 41 73 73 65 6d |..... >Assem| 00000010 62 6c 65 0d 00 14 16 f4 20 42 79 20 20 52 6f 62 |ble..... By Rob| 00000020 69 6e 20 42 61 72 6e 65 73 0d 00 1e 19 f4 20 46 |in Barnes..... F| 00000030 6f 72 20 33 32 2d 62 69 74 20 6d 61 63 68 69 6e |or 32-bit machin| 00000040 65 73 0d 00 28 17 f4 20 28 63 29 20 42 41 55 20 |es..(.. (c) BAU | 00000050 4a 75 6e 65 20 31 39 39 33 0d 00 32 05 3a 0d 00 |June 1993..2.:..| 00000060 3c 10 6e 61 6d 65 24 3d 22 43 6f 64 65 22 0d 00 |<.name$="Code"..| 00000070 46 12 de 20 61 73 73 65 6d 25 20 26 38 30 30 30 |F.. assem% &8000| 00000080 0d 00 50 10 f2 61 73 73 65 6d 28 65 6e 64 25 29 |..P..assem(end%)| 00000090 0d 00 5a 2a c8 99 20 22 4f 53 5f 46 69 6c 65 22 |..Z*.. "OS_File"| 000000a0 2c 26 30 30 2c 6e 61 6d 65 24 2c 30 2c 30 2c 61 |,&00,name$,0,0,a| 000000b0 73 73 65 6d 25 2c 65 6e 64 25 0d 00 64 05 e0 0d |ssem%,end%..d...| 000000c0 00 6e 05 3a 0d 00 78 14 dd 20 f2 61 73 73 65 6d |.n.:..x.. .assem| 000000d0 28 f8 20 65 6e 64 25 29 0d 00 82 14 e3 20 6f 70 |(. end%)..... op| 000000e0 74 25 3d 30 20 b8 20 33 20 88 20 33 0d 00 8c 0d |t%=0 . 3 . 3....| 000000f0 50 25 3d 61 73 73 65 6d 25 0d 00 96 0e 5b 20 4f |P%=assem%....[ O| 00000100 50 54 20 6f 70 74 25 0d 00 a0 18 45 51 55 44 20 |PT opt%....EQUD | 00000110 62 6f 75 6e 64 62 6f 78 2d 61 73 73 65 6d 25 0d |boundbox-assem%.| 00000120 00 aa 15 45 51 55 44 20 70 6c 61 6e 65 2d 61 73 |...EQUD plane-as| 00000130 73 65 6d 25 0d 00 b4 1b 45 51 55 44 20 70 6f 69 |sem%....EQUD poi| 00000140 6e 74 6e 6f 72 6d 61 6c 2d 61 73 73 65 6d 25 0d |ntnormal-assem%.| 00000150 00 be 1a 45 51 55 44 20 70 6f 6c 79 6e 6f 72 6d |...EQUD polynorm| 00000160 61 6c 2d 61 73 73 65 6d 25 0d 00 c8 18 45 51 55 |al-assem%....EQU| 00000170 44 20 73 63 61 6e 6c 69 6e 65 2d 61 73 73 65 6d |D scanline-assem| 00000180 25 0d 00 d2 15 45 51 55 44 20 70 6f 69 6e 74 2d |%....EQUD point-| 00000190 61 73 73 65 6d 25 0d 00 dc 19 45 51 55 44 20 69 |assem%....EQUD i| 000001a0 6e 74 65 6e 73 69 74 79 2d 61 73 73 65 6d 25 0d |ntensity-assem%.| 000001b0 00 e6 16 45 51 55 44 20 63 6f 6c 6f 75 72 2d 61 |...EQUD colour-a| 000001c0 73 73 65 6d 25 0d 00 f0 18 45 51 55 44 20 66 70 |ssem%....EQUD fp| 000001d0 75 74 6f 62 61 73 2d 61 73 73 65 6d 25 0d 00 fa |utobas-assem%...| 000001e0 18 45 51 55 44 20 62 61 73 74 6f 66 70 75 2d 61 |.EQUD bastofpu-a| 000001f0 73 73 65 6d 25 0d 01 04 16 45 51 55 44 20 6e 75 |ssem%....EQUD nu| 00000200 6d 62 65 72 2d 61 73 73 65 6d 25 0d 01 0e 19 45 |mber-assem%....E| 00000210 51 55 44 20 74 72 61 6e 73 66 6f 72 6d 2d 61 73 |QUD transform-as| 00000220 73 65 6d 25 0d 01 18 1b 45 51 55 44 20 70 65 72 |sem%....EQUD per| 00000230 73 70 65 63 74 69 76 65 2d 61 73 73 65 6d 25 0d |spective-assem%.| 00000240 01 22 05 3a 0d 01 2c 11 2e 69 6e 70 75 74 20 45 |.".:..,..input E| 00000250 51 55 44 20 30 0d 01 36 12 2e 6f 75 74 70 75 74 |QUD 0..6..output| 00000260 20 45 51 55 44 20 30 0d 01 40 05 5d 0d 01 4a 0e | EQUD 0..@.]..J.| 00000270 f2 74 72 61 6e 73 66 6f 72 6d 0d 01 54 10 f2 70 |.transform..T..p| 00000280 65 72 73 70 65 63 74 69 76 65 0d 01 5e 0d f2 62 |erspective..^..b| 00000290 6f 75 6e 64 62 6f 78 0d 01 68 0a f2 70 6c 61 6e |oundbox..h..plan| 000002a0 65 0d 01 72 10 f2 70 6f 69 6e 74 6e 6f 72 6d 61 |e..r..pointnorma| 000002b0 6c 0d 01 7c 0f f2 70 6f 6c 79 6e 6f 72 6d 61 6c |l..|..polynormal| 000002c0 0d 01 86 0d f2 73 63 61 6e 6c 69 6e 65 0d 01 90 |.....scanline...| 000002d0 0a f2 70 6f 69 6e 74 0d 01 9a 0e f2 69 6e 74 65 |..point.....inte| 000002e0 6e 73 69 74 79 0d 01 a4 0b f2 63 6f 6c 6f 75 72 |nsity.....colour| 000002f0 0d 01 ae 0b f2 6e 75 6d 62 65 72 0d 01 b8 0a ed |.....number.....| 00000300 20 6f 70 74 25 0d 01 c2 0b 65 6e 64 25 3d 50 25 | opt%....end%=P%| 00000310 0d 01 cc 05 e1 0d 01 d6 05 3a 0d 01 e0 10 dd 20 |.........:..... | 00000320 f2 74 72 61 6e 73 66 6f 72 6d 0d 01 ea 0e 5b 20 |.transform....[ | 00000330 4f 50 54 20 6f 70 74 25 0d 01 f4 15 5c 20 74 72 |OPT opt%....\ tr| 00000340 61 6e 66 6f 72 6d 20 70 6f 69 6e 74 73 0d 01 fe |anform points...| 00000350 05 3a 0d 02 08 0e 2e 74 72 61 6e 73 66 6f 72 6d |.:.....transform| 00000360 0d 02 12 10 4c 44 52 20 52 30 2c 69 6e 70 75 74 |....LDR R0,input| 00000370 0d 02 1c 12 4c 44 52 20 52 31 2c 5b 52 30 2c 23 |....LDR R1,[R0,#| 00000380 38 5d 0d 02 26 13 4c 44 52 20 52 32 2c 5b 52 30 |8]..&.LDR R2,[R0| 00000390 2c 23 34 30 5d 0d 02 30 0f 4c 44 52 20 52 33 2c |,#40]..0.LDR R3,| 000003a0 5b 52 31 5d 0d 02 3a 05 3a 0d 02 44 0c 2e 74 72 |[R1]..:.:..D..tr| 000003b0 61 6e 73 6c 70 0d 02 4e 13 53 55 42 53 20 52 33 |anslp..N.SUBS R3| 000003c0 2c 52 33 2c 23 26 30 31 0d 02 58 10 4d 4f 56 4c |,R3,#&01..X.MOVL| 000003d0 54 20 50 43 2c 52 31 34 0d 02 62 1a 41 44 44 20 |T PC,R14..b.ADD | 000003e0 52 31 32 2c 52 33 2c 52 33 2c 41 53 4c 20 23 26 |R12,R3,R3,ASL #&| 000003f0 30 31 0d 02 6c 1b 41 44 44 20 52 31 32 2c 52 31 |01..l.ADD R12,R1| 00000400 2c 52 31 32 2c 41 53 4c 20 23 26 30 32 0d 02 76 |,R12,ASL #&02..v| 00000410 21 45 51 55 44 20 a4 66 70 75 28 22 4c 44 46 53 |!EQUD .fpu("LDFS| 00000420 20 46 30 2c 5b 52 31 32 2c 23 34 5d 22 29 0d 02 | F0,[R12,#4]")..| 00000430 80 21 45 51 55 44 20 a4 66 70 75 28 22 4c 44 46 |.!EQUD .fpu("LDF| 00000440 53 20 46 31 2c 5b 52 31 32 2c 23 38 5d 22 29 0d |S F1,[R12,#8]").| 00000450 02 8a 22 45 51 55 44 20 a4 66 70 75 28 22 4c 44 |.."EQUD .fpu("LD| 00000460 46 53 20 46 32 2c 5b 52 31 32 2c 23 31 32 5d 22 |FS F2,[R12,#12]"| 00000470 29 0d 02 94 3b 45 51 55 44 20 a4 66 70 75 28 22 |)...;EQUD .fpu("| 00000480 4c 44 46 53 20 46 37 2c 5b 52 32 2c 23 30 5d 22 |LDFS F7,[R2,#0]"| 00000490 29 3a 45 51 55 44 20 a4 66 70 75 28 22 41 44 46 |):EQUD .fpu("ADF| 000004a0 53 20 46 30 2c 46 30 2c 46 37 22 29 0d 02 9e 3b |S F0,F0,F7")...;| 000004b0 45 51 55 44 20 a4 66 70 75 28 22 4c 44 46 53 20 |EQUD .fpu("LDFS | 000004c0 46 37 2c 5b 52 32 2c 23 34 5d 22 29 3a 45 51 55 |F7,[R2,#4]"):EQU| 000004d0 44 20 a4 66 70 75 28 22 41 44 46 53 20 46 31 2c |D .fpu("ADFS F1,| 000004e0 46 31 2c 46 37 22 29 0d 02 a8 3b 45 51 55 44 20 |F1,F7")...;EQUD | 000004f0 a4 66 70 75 28 22 4c 44 46 53 20 46 37 2c 5b 52 |.fpu("LDFS F7,[R| 00000500 32 2c 23 38 5d 22 29 3a 45 51 55 44 20 a4 66 70 |2,#8]"):EQUD .fp| 00000510 75 28 22 41 44 46 53 20 46 32 2c 46 32 2c 46 37 |u("ADFS F2,F2,F7| 00000520 22 29 0d 02 b2 05 3a 0d 02 bc 3c 45 51 55 44 20 |")....:...<EQUD | 00000530 a4 66 70 75 28 22 4c 44 46 53 20 46 37 2c 5b 52 |.fpu("LDFS F7,[R| 00000540 32 2c 23 31 32 5d 22 29 3a 45 51 55 44 20 a4 66 |2,#12]"):EQUD .f| 00000550 70 75 28 22 4d 55 46 53 20 46 33 2c 46 30 2c 46 |pu("MUFS F3,F0,F| 00000560 37 22 29 0d 02 c6 3c 45 51 55 44 20 a4 66 70 75 |7")...<EQUD .fpu| 00000570 28 22 4c 44 46 53 20 46 37 2c 5b 52 32 2c 23 31 |("LDFS F7,[R2,#1| 00000580 36 5d 22 29 3a 45 51 55 44 20 a4 66 70 75 28 22 |6]"):EQUD .fpu("| 00000590 4d 55 46 53 20 46 36 2c 46 31 2c 46 37 22 29 0d |MUFS F6,F1,F7").| 000005a0 02 d0 3c 45 51 55 44 20 a4 66 70 75 28 22 41 44 |..<EQUD .fpu("AD| 000005b0 46 53 20 46 33 2c 46 33 2c 46 36 22 29 3a 45 51 |FS F3,F3,F6"):EQ| 000005c0 55 44 20 a4 66 70 75 28 22 4c 44 46 53 20 46 37 |UD .fpu("LDFS F7| 000005d0 2c 5b 52 32 2c 23 32 30 5d 22 29 0d 02 da 39 45 |,[R2,#20]")...9E| 000005e0 51 55 44 20 a4 66 70 75 28 22 4d 55 46 53 20 46 |QUD .fpu("MUFS F| 000005f0 36 2c 46 32 2c 46 37 22 29 3a 45 51 55 44 20 a4 |6,F2,F7"):EQUD .| 00000600 66 70 75 28 22 41 44 46 53 20 46 33 2c 46 33 2c |fpu("ADFS F3,F3,| 00000610 46 36 22 29 0d 02 e4 05 3a 0d 02 ee 3c 45 51 55 |F6")....:...<EQU| 00000620 44 20 a4 66 70 75 28 22 4c 44 46 53 20 46 37 2c |D .fpu("LDFS F7,| 00000630 5b 52 32 2c 23 32 34 5d 22 29 3a 45 51 55 44 20 |[R2,#24]"):EQUD | 00000640 a4 66 70 75 28 22 4d 55 46 53 20 46 34 2c 46 30 |.fpu("MUFS F4,F0| 00000650 2c 46 37 22 29 0d 02 f8 3c 45 51 55 44 20 a4 66 |,F7")...<EQUD .f| 00000660 70 75 28 22 4c 44 46 53 20 46 37 2c 5b 52 32 2c |pu("LDFS F7,[R2,| 00000670 23 32 38 5d 22 29 3a 45 51 55 44 20 a4 66 70 75 |#28]"):EQUD .fpu| 00000680 28 22 4d 55 46 53 20 46 36 2c 46 31 2c 46 37 22 |("MUFS F6,F1,F7"| 00000690 29 0d 03 02 3c 45 51 55 44 20 a4 66 70 75 28 22 |)...<EQUD .fpu("| 000006a0 41 44 46 53 20 46 34 2c 46 34 2c 46 36 22 29 3a |ADFS F4,F4,F6"):| 000006b0 45 51 55 44 20 a4 66 70 75 28 22 4c 44 46 53 20 |EQUD .fpu("LDFS | 000006c0 46 37 2c 5b 52 32 2c 23 33 32 5d 22 29 0d 03 0c |F7,[R2,#32]")...| 000006d0 39 45 51 55 44 20 a4 66 70 75 28 22 4d 55 46 53 |9EQUD .fpu("MUFS| 000006e0 20 46 36 2c 46 32 2c 46 37 22 29 3a 45 51 55 44 | F6,F2,F7"):EQUD| 000006f0 20 a4 66 70 75 28 22 41 44 46 53 20 46 34 2c 46 | .fpu("ADFS F4,F| 00000700 34 2c 46 36 22 29 0d 03 16 05 3a 0d 03 20 3c 45 |4,F6")....:.. <E| 00000710 51 55 44 20 a4 66 70 75 28 22 4c 44 46 53 20 46 |QUD .fpu("LDFS F| 00000720 37 2c 5b 52 32 2c 23 33 36 5d 22 29 3a 45 51 55 |7,[R2,#36]"):EQU| 00000730 44 20 a4 66 70 75 28 22 4d 55 46 53 20 46 35 2c |D .fpu("MUFS F5,| 00000740 46 30 2c 46 37 22 29 0d 03 2a 3c 45 51 55 44 20 |F0,F7")..*<EQUD | 00000750 a4 66 70 75 28 22 4c 44 46 53 20 46 37 2c 5b 52 |.fpu("LDFS F7,[R| 00000760 32 2c 23 34 30 5d 22 29 3a 45 51 55 44 20 a4 66 |2,#40]"):EQUD .f| 00000770 70 75 28 22 4d 55 46 53 20 46 36 2c 46 31 2c 46 |pu("MUFS F6,F1,F| 00000780 37 22 29 0d 03 34 3c 45 51 55 44 20 a4 66 70 75 |7")..4<EQUD .fpu| 00000790 28 22 41 44 46 53 20 46 35 2c 46 35 2c 46 36 22 |("ADFS F5,F5,F6"| 000007a0 29 3a 45 51 55 44 20 a4 66 70 75 28 22 4c 44 46 |):EQUD .fpu("LDF| 000007b0 53 20 46 37 2c 5b 52 32 2c 23 34 34 5d 22 29 0d |S F7,[R2,#44]").| 000007c0 03 3e 39 45 51 55 44 20 a4 66 70 75 28 22 4d 55 |.>9EQUD .fpu("MU| 000007d0 46 53 20 46 36 2c 46 32 2c 46 37 22 29 3a 45 51 |FS F6,F2,F7"):EQ| 000007e0 55 44 20 a4 66 70 75 28 22 41 44 46 53 20 46 35 |UD .fpu("ADFS F5| 000007f0 2c 46 35 2c 46 36 22 29 0d 03 48 21 45 51 55 44 |,F5,F6")..H!EQUD| 00000800 20 a4 66 70 75 28 22 53 54 46 53 20 46 33 2c 5b | .fpu("STFS F3,[| 00000810 52 31 32 2c 23 34 5d 22 29 0d 03 52 21 45 51 55 |R12,#4]")..R!EQU| 00000820 44 20 a4 66 70 75 28 22 53 54 46 53 20 46 34 2c |D .fpu("STFS F4,| 00000830 5b 52 31 32 2c 23 38 5d 22 29 0d 03 5c 22 45 51 |[R12,#8]")..\"EQ| 00000840 55 44 20 a4 66 70 75 28 22 53 54 46 53 20 46 35 |UD .fpu("STFS F5| 00000850 2c 5b 52 31 32 2c 23 31 32 5d 22 29 0d 03 66 0d |,[R12,#12]")..f.| 00000860 42 20 74 72 61 6e 73 6c 70 0d 03 70 05 5d 0d 03 |B translp..p.]..| 00000870 7a 05 e1 0d 03 84 05 3a 0d 03 8e 12 dd 20 f2 70 |z......:..... .p| 00000880 65 72 73 70 65 63 74 69 76 65 0d 03 98 0e 5b 20 |erspective....[ | 00000890 4f 50 54 20 6f 70 74 25 0d 03 a2 1b 5c 20 70 65 |OPT opt%....\ pe| 000008a0 72 73 70 65 63 74 69 76 65 20 74 72 61 6e 73 66 |rspective transf| 000008b0 6f 72 6d 0d 03 ac 05 3a 0d 03 b6 10 2e 70 65 72 |orm....:.....per| 000008c0 73 70 65 63 74 69 76 65 0d 03 c0 10 4c 44 52 20 |spective....LDR | 000008d0 52 30 2c 69 6e 70 75 74 0d 03 ca 12 4c 44 52 20 |R0,input....LDR | 000008e0 52 31 2c 5b 52 30 2c 23 38 5d 0d 03 d4 0f 4c 44 |R1,[R0,#8]....LD| 000008f0 52 20 52 32 2c 5b 52 31 5d 0d 03 de 1d 45 51 55 |R R2,[R1]....EQU| 00000900 44 20 a4 66 70 75 28 22 4d 56 46 53 20 46 36 2c |D .fpu("MVFS F6,| 00000910 23 31 2e 30 22 29 0d 03 e8 21 45 51 55 44 20 a4 |#1.0")...!EQUD .| 00000920 66 70 75 28 22 44 56 46 53 20 46 36 2c 46 36 2c |fpu("DVFS F6,F6,| 00000930 23 31 30 2e 30 22 29 0d 03 f2 21 45 51 55 44 20 |#10.0")...!EQUD | 00000940 a4 66 70 75 28 22 50 4f 57 53 20 46 36 2c 46 36 |.fpu("POWS F6,F6| 00000950 2c 23 31 30 2e 30 22 29 0d 03 fc 05 3a 0d 04 06 |,#10.0")....:...| 00000960 0d 2e 70 72 73 70 63 74 6c 70 0d 04 10 13 53 55 |..prspctlp....SU| 00000970 42 53 20 52 32 2c 52 32 2c 23 26 30 31 0d 04 1a |BS R2,R2,#&01...| 00000980 10 4d 4f 56 4c 54 20 50 43 2c 52 31 34 0d 04 24 |.MOVLT PC,R14..$| 00000990 1a 41 44 44 20 52 31 32 2c 52 32 2c 52 32 2c 41 |.ADD R12,R2,R2,A| 000009a0 53 4c 20 23 26 30 31 0d 04 2e 1b 41 44 44 20 52 |SL #&01....ADD R| 000009b0 31 32 2c 52 31 2c 52 31 32 2c 41 53 4c 20 23 26 |12,R1,R12,ASL #&| 000009c0 30 32 0d 04 38 21 45 51 55 44 20 a4 66 70 75 28 |02..8!EQUD .fpu(| 000009d0 22 4c 44 46 53 20 46 30 2c 5b 52 31 32 2c 23 34 |"LDFS F0,[R12,#4| 000009e0 5d 22 29 0d 04 42 21 45 51 55 44 20 a4 66 70 75 |]")..B!EQUD .fpu| 000009f0 28 22 4c 44 46 53 20 46 31 2c 5b 52 31 32 2c 23 |("LDFS F1,[R12,#| 00000a00 38 5d 22 29 0d 04 4c 22 45 51 55 44 20 a4 66 70 |8]")..L"EQUD .fp| 00000a10 75 28 22 4c 44 46 53 20 46 32 2c 5b 52 31 32 2c |u("LDFS F2,[R12,| 00000a20 23 31 32 5d 22 29 0d 04 56 1d 45 51 55 44 20 a4 |#12]")..V.EQUD .| 00000a30 66 70 75 28 22 43 4d 45 53 20 46 32 2c 23 30 2e |fpu("CMES F2,#0.| 00000a40 30 22 29 0d 04 60 1d 45 51 55 44 20 a4 66 70 75 |0")..`.EQUD .fpu| 00000a50 28 22 4d 56 46 4c 45 53 20 46 32 2c 46 36 22 29 |("MVFLES F2,F6")| 00000a60 0d 04 6a 1e 45 51 55 44 20 a4 66 70 75 28 22 44 |..j.EQUD .fpu("D| 00000a70 56 46 53 20 46 30 2c 46 30 2c 46 32 22 29 0d 04 |VFS F0,F0,F2")..| 00000a80 74 1e 45 51 55 44 20 a4 66 70 75 28 22 44 56 46 |t.EQUD .fpu("DVF| 00000a90 53 20 46 31 2c 46 31 2c 46 32 22 29 0d 04 7e 21 |S F1,F1,F2")..~!| 00000aa0 45 51 55 44 20 a4 66 70 75 28 22 53 54 46 53 20 |EQUD .fpu("STFS | 00000ab0 46 30 2c 5b 52 31 32 2c 23 34 5d 22 29 0d 04 88 |F0,[R12,#4]")...| 00000ac0 21 45 51 55 44 20 a4 66 70 75 28 22 53 54 46 53 |!EQUD .fpu("STFS| 00000ad0 20 46 31 2c 5b 52 31 32 2c 23 38 5d 22 29 0d 04 | F1,[R12,#8]")..| 00000ae0 92 0e 42 20 70 72 73 70 63 74 6c 70 0d 04 9c 05 |..B prspctlp....| 00000af0 5d 0d 04 a6 05 e1 0d 04 b0 05 3a 0d 04 ba 11 dd |].........:.....| 00000b00 20 f2 70 6f 6c 79 6e 6f 72 6d 61 6c 0d 04 c4 0e | .polynormal....| 00000b10 5b 20 4f 50 54 20 6f 70 74 25 0d 04 ce 21 5c 20 |[ OPT opt%...!\ | 00000b20 63 61 6c 63 75 6c 61 74 65 20 6e 6f 72 6d 61 6c |calculate normal| 00000b30 20 74 6f 20 70 6f 6c 79 67 6f 6e 0d 04 d8 05 3a | to polygon....:| 00000b40 0d 04 e2 0f 2e 70 6f 6c 79 6e 6f 72 6d 61 6c 0d |.....polynormal.| 00000b50 04 ec 10 4c 44 52 20 52 30 2c 69 6e 70 75 74 0d |...LDR R0,input.| 00000b60 04 f6 11 4c 44 52 20 52 31 2c 6f 75 74 70 75 74 |...LDR R1,output| 00000b70 0d 05 00 13 4c 44 52 20 52 32 2c 5b 52 30 2c 23 |....LDR R2,[R0,#| 00000b80 32 38 5d 0d 05 0a 13 4c 44 52 20 52 33 2c 5b 52 |28]....LDR R3,[R| 00000b90 30 2c 23 34 34 5d 0d 05 14 1a 41 44 44 20 52 31 |0,#44]....ADD R1| 00000ba0 32 2c 52 32 2c 52 33 2c 41 53 4c 20 23 26 30 34 |2,R2,R3,ASL #&04| 00000bb0 0d 05 1e 21 45 51 55 44 20 a4 66 70 75 28 22 4c |...!EQUD .fpu("L| 00000bc0 44 46 53 20 46 30 2c 5b 52 31 32 2c 23 30 5d 22 |DFS F0,[R12,#0]"| 00000bd0 29 0d 05 28 21 45 51 55 44 20 a4 66 70 75 28 22 |)..(!EQUD .fpu("| 00000be0 4c 44 46 53 20 46 31 2c 5b 52 31 32 2c 23 34 5d |LDFS F1,[R12,#4]| 00000bf0 22 29 0d 05 32 21 45 51 55 44 20 a4 66 70 75 28 |")..2!EQUD .fpu(| 00000c00 22 4c 44 46 53 20 46 32 2c 5b 52 31 32 2c 23 38 |"LDFS F2,[R12,#8| 00000c10 5d 22 29 0d 05 3c 1e 45 51 55 44 20 a4 66 70 75 |]")..<.EQUD .fpu| 00000c20 28 22 4d 55 46 53 20 46 33 2c 46 30 2c 46 30 22 |("MUFS F3,F0,F0"| 00000c30 29 0d 05 46 1e 45 51 55 44 20 a4 66 70 75 28 22 |)..F.EQUD .fpu("| 00000c40 4d 55 46 53 20 46 34 2c 46 31 2c 46 31 22 29 0d |MUFS F4,F1,F1").| 00000c50 05 50 1e 45 51 55 44 20 a4 66 70 75 28 22 41 44 |.P.EQUD .fpu("AD| 00000c60 46 53 20 46 33 2c 46 33 2c 46 34 22 29 0d 05 5a |FS F3,F3,F4")..Z| 00000c70 1e 45 51 55 44 20 a4 66 70 75 28 22 4d 55 46 53 |.EQUD .fpu("MUFS| 00000c80 20 46 34 2c 46 32 2c 46 32 22 29 0d 05 64 1e 45 | F4,F2,F2")..d.E| 00000c90 51 55 44 20 a4 66 70 75 28 22 41 44 46 53 20 46 |QUD .fpu("ADFS F| 00000ca0 33 2c 46 33 2c 46 34 22 29 0d 05 6e 1b 45 51 55 |3,F3,F4")..n.EQU| 00000cb0 44 20 a4 66 70 75 28 22 53 51 54 53 20 46 33 2c |D .fpu("SQTS F3,| 00000cc0 46 33 22 29 0d 05 78 1e 45 51 55 44 20 a4 66 70 |F3")..x.EQUD .fp| 00000cd0 75 28 22 44 56 46 53 20 46 30 2c 46 30 2c 46 33 |u("DVFS F0,F0,F3| 00000ce0 22 29 0d 05 82 1e 45 51 55 44 20 a4 66 70 75 28 |")....EQUD .fpu(| 00000cf0 22 44 56 46 53 20 46 31 2c 46 31 2c 46 33 22 29 |"DVFS F1,F1,F3")| 00000d00 0d 05 8c 1e 45 51 55 44 20 a4 66 70 75 28 22 44 |....EQUD .fpu("D| 00000d10 56 46 53 20 46 32 2c 46 32 2c 46 33 22 29 0d 05 |VFS F2,F2,F3")..| 00000d20 96 20 45 51 55 44 20 a4 66 70 75 28 22 53 54 46 |. EQUD .fpu("STF| 00000d30 53 20 46 30 2c 5b 52 31 2c 23 34 5d 22 29 0d 05 |S F0,[R1,#4]")..| 00000d40 a0 20 45 51 55 44 20 a4 66 70 75 28 22 53 54 46 |. EQUD .fpu("STF| 00000d50 53 20 46 31 2c 5b 52 31 2c 23 38 5d 22 29 0d 05 |S F1,[R1,#8]")..| 00000d60 aa 21 45 51 55 44 20 a4 66 70 75 28 22 53 54 46 |.!EQUD .fpu("STF| 00000d70 53 20 46 32 2c 5b 52 31 2c 23 31 32 5d 22 29 0d |S F2,[R1,#12]").| 00000d80 05 b4 0e 4d 4f 56 20 50 43 2c 52 31 34 0d 05 be |...MOV PC,R14...| 00000d90 05 5d 0d 05 c8 05 e1 0d 05 d2 05 3a 0d 05 dc 0f |.].........:....| 00000da0 dd 20 f2 62 6f 75 6e 64 62 6f 78 0d 05 e6 0d 5b |. .boundbox....[| 00000db0 4f 50 54 20 6f 70 74 25 0d 05 f0 2b 5c 20 63 61 |OPT opt%...+\ ca| 00000dc0 6c 63 75 6c 61 74 65 20 62 6f 75 6e 64 69 6e 67 |lculate bounding| 00000dd0 20 62 6f 78 65 73 20 66 6f 72 20 70 6f 6c 79 67 | boxes for polyg| 00000de0 6f 6e 73 0d 05 fa 05 3a 0d 06 04 0d 2e 62 6f 75 |ons....:.....bou| 00000df0 6e 64 62 6f 78 0d 06 0e 14 53 54 4d 46 44 20 52 |ndbox....STMFD R| 00000e00 31 33 21 2c 7b 52 31 34 7d 0d 06 18 10 4c 44 52 |13!,{R14}....LDR| 00000e10 20 52 30 2c 69 6e 70 75 74 0d 06 22 12 4c 44 52 | R0,input..".LDR| 00000e20 20 52 31 2c 5b 52 30 2c 23 38 5d 0d 06 2c 13 4c | R1,[R0,#8]..,.L| 00000e30 44 52 20 52 32 2c 5b 52 30 2c 23 31 32 5d 0d 06 |DR R2,[R0,#12]..| 00000e40 36 13 4c 44 52 20 52 33 2c 5b 52 30 2c 23 31 36 |6.LDR R3,[R0,#16| 00000e50 5d 0d 06 40 13 4c 44 52 20 52 34 2c 5b 52 30 2c |]..@.LDR R4,[R0,| 00000e60 23 33 36 5d 0d 06 4a 11 4c 44 52 20 52 30 2c 6f |#36]..J.LDR R0,o| 00000e70 75 74 70 75 74 0d 06 54 0f 4c 44 52 20 52 35 2c |utput..T.LDR R5,| 00000e80 5b 52 32 5d 0d 06 5e 1e 45 51 55 44 20 a4 66 70 |[R2]..^.EQUD .fp| 00000e90 75 28 22 4d 56 46 53 20 46 34 2c 23 31 30 2e 30 |u("MVFS F4,#10.0| 00000ea0 22 29 0d 06 68 21 45 51 55 44 20 a4 66 70 75 28 |")..h!EQUD .fpu(| 00000eb0 22 50 4f 57 53 20 46 34 2c 46 34 2c 23 31 30 2e |"POWS F4,F4,#10.| 00000ec0 30 22 29 0d 06 72 1b 45 51 55 44 20 a4 66 70 75 |0")..r.EQUD .fpu| 00000ed0 28 22 4d 56 46 53 20 46 35 2c 46 34 22 29 0d 06 |("MVFS F5,F4")..| 00000ee0 7c 1b 45 51 55 44 20 a4 66 70 75 28 22 4d 4e 46 ||.EQUD .fpu("MNF| 00000ef0 53 20 46 36 2c 46 34 22 29 0d 06 86 1b 45 51 55 |S F6,F4")....EQU| 00000f00 44 20 a4 66 70 75 28 22 4d 4e 46 53 20 46 37 2c |D .fpu("MNFS F7,| 00000f10 46 34 22 29 0d 06 90 05 3a 0d 06 9a 0d 2e 62 6e |F4")....:.....bn| 00000f20 64 62 6f 78 6c 70 0d 06 a4 13 53 55 42 53 20 52 |dboxlp....SUBS R| 00000f30 35 2c 52 35 2c 23 26 30 31 0d 06 ae 1f 45 51 55 |5,R5,#&01....EQU| 00000f40 44 20 a4 66 70 75 28 22 53 54 46 4c 54 53 20 46 |D .fpu("STFLTS F| 00000f50 34 2c 5b 52 30 5d 22 29 0d 06 b8 22 45 51 55 44 |4,[R0]")..."EQUD| 00000f60 20 a4 66 70 75 28 22 53 54 46 4c 54 53 20 46 35 | .fpu("STFLTS F5| 00000f70 2c 5b 52 30 2c 23 34 5d 22 29 0d 06 c2 22 45 51 |,[R0,#4]")..."EQ| 00000f80 55 44 20 a4 66 70 75 28 22 53 54 46 4c 54 53 20 |UD .fpu("STFLTS | 00000f90 46 36 2c 5b 52 30 2c 23 38 5d 22 29 0d 06 cc 23 |F6,[R0,#8]")...#| 00000fa0 45 51 55 44 20 a4 66 70 75 28 22 53 54 46 4c 54 |EQUD .fpu("STFLT| 00000fb0 53 20 46 37 2c 5b 52 30 2c 23 31 32 5d 22 29 0d |S F7,[R0,#12]").| 00000fc0 06 d6 15 4c 44 4d 4c 54 46 44 20 52 31 33 21 2c |...LDMLTFD R13!,| 00000fd0 7b 50 43 7d 0d 06 e0 0e 42 4c 20 62 6e 64 70 6f |{PC}....BL bndpo| 00000fe0 6c 79 0d 06 ea 0e 42 20 62 6e 64 62 6f 78 6c 70 |ly....B bndboxlp| 00000ff0 0d 06 f4 05 3a 0d 06 fe 0c 2e 62 6e 64 70 6f 6c |....:.....bndpol| 00001000 79 0d 07 08 13 41 44 44 20 52 31 31 2c 52 35 2c |y....ADD R11,R5,| 00001010 23 26 30 31 0d 07 12 1d 4c 44 52 20 52 31 31 2c |#&01....LDR R11,| 00001020 5b 52 32 2c 52 31 31 2c 41 53 4c 20 23 26 30 32 |[R2,R11,ASL #&02| 00001030 5d 0d 07 1c 12 41 44 44 20 52 31 31 2c 52 31 31 |]....ADD R11,R11| 00001040 2c 52 33 0d 07 26 14 41 44 44 20 52 31 31 2c 52 |,R3..&.ADD R11,R| 00001050 31 31 2c 23 26 30 34 0d 07 30 10 4c 44 52 20 52 |11,#&04..0.LDR R| 00001060 36 2c 5b 52 31 31 5d 0d 07 3a 1e 45 51 55 44 20 |6,[R11]..:.EQUD | 00001070 a4 66 70 75 28 22 4d 56 46 53 20 46 30 2c 23 31 |.fpu("MVFS F0,#1| 00001080 30 2e 30 22 29 0d 07 44 21 45 51 55 44 20 a4 66 |0.0")..D!EQUD .f| 00001090 70 75 28 22 50 4f 57 53 20 46 30 2c 46 30 2c 23 |pu("POWS F0,F0,#| 000010a0 31 30 2e 30 22 29 0d 07 4e 1b 45 51 55 44 20 a4 |10.0")..N.EQUD .| 000010b0 66 70 75 28 22 4d 4e 46 53 20 46 31 2c 46 30 22 |fpu("MNFS F1,F0"| 000010c0 29 0d 07 58 05 3a 0d 07 62 0d 2e 62 6e 64 70 6f |)..X.:..b..bndpo| 000010d0 6c 6c 70 0d 07 6c 1c 4c 44 52 20 52 37 2c 5b 52 |llp..l.LDR R7,[R| 000010e0 31 31 2c 52 36 2c 41 53 4c 20 23 26 30 32 5d 0d |11,R6,ASL #&02].| 000010f0 07 76 1a 41 44 44 20 52 31 32 2c 52 37 2c 52 37 |.v.ADD R12,R7,R7| 00001100 2c 41 53 4c 20 23 26 30 31 0d 07 80 1b 41 44 44 |,ASL #&01....ADD| 00001110 20 52 31 32 2c 52 31 2c 52 31 32 2c 41 53 4c 20 | R12,R1,R12,ASL | 00001120 23 26 30 32 0d 07 8a 22 45 51 55 44 20 a4 66 70 |#&02..."EQUD .fp| 00001130 75 28 22 4c 44 46 53 20 46 32 2c 5b 52 31 32 2c |u("LDFS F2,[R12,| 00001140 23 30 34 5d 22 29 0d 07 94 22 45 51 55 44 20 a4 |#04]")..."EQUD .| 00001150 66 70 75 28 22 4c 44 46 53 20 46 33 2c 5b 52 31 |fpu("LDFS F3,[R1| 00001160 32 2c 23 30 38 5d 22 29 0d 07 9e 1b 45 51 55 44 |2,#08]")....EQUD| 00001170 20 a4 66 70 75 28 22 43 4d 45 53 20 46 33 2c 46 | .fpu("CMES F3,F| 00001180 30 22 29 0d 07 a8 1d 45 51 55 44 20 a4 66 70 75 |0")....EQUD .fpu| 00001190 28 22 4d 56 46 4c 54 53 20 46 30 2c 46 33 22 29 |("MVFLTS F0,F3")| 000011a0 0d 07 b2 1b 45 51 55 44 20 a4 66 70 75 28 22 43 |....EQUD .fpu("C| 000011b0 4d 45 53 20 46 33 2c 46 31 22 29 0d 07 bc 1d 45 |MES F3,F1")....E| 000011c0 51 55 44 20 a4 66 70 75 28 22 4d 56 46 47 54 53 |QUD .fpu("MVFGTS| 000011d0 20 46 31 2c 46 33 22 29 0d 07 c6 1b 45 51 55 44 | F1,F3")....EQUD| 000011e0 20 a4 66 70 75 28 22 43 4d 45 53 20 46 32 2c 46 | .fpu("CMES F2,F| 000011f0 34 22 29 0d 07 d0 1d 45 51 55 44 20 a4 66 70 75 |4")....EQUD .fpu| 00001200 28 22 4d 56 46 4c 54 53 20 46 34 2c 46 32 22 29 |("MVFLTS F4,F2")| 00001210 0d 07 da 1b 45 51 55 44 20 a4 66 70 75 28 22 43 |....EQUD .fpu("C| 00001220 4d 45 53 20 46 32 2c 46 36 22 29 0d 07 e4 1d 45 |MES F2,F6")....E| 00001230 51 55 44 20 a4 66 70 75 28 22 4d 56 46 47 54 53 |QUD .fpu("MVFGTS| 00001240 20 46 36 2c 46 32 22 29 0d 07 ee 13 53 55 42 53 | F6,F2")....SUBS| 00001250 20 52 36 2c 52 36 2c 23 26 30 31 0d 07 f8 10 42 | R6,R6,#&01....B| 00001260 47 54 20 62 6e 64 70 6f 6c 6c 70 0d 08 02 1a 41 |GT bndpollp....A| 00001270 44 44 20 52 31 32 2c 52 34 2c 52 35 2c 41 53 4c |DD R12,R4,R5,ASL| 00001280 20 23 26 30 33 0d 08 0c 21 45 51 55 44 20 a4 66 | #&03...!EQUD .f| 00001290 70 75 28 22 53 54 46 53 20 46 30 2c 5b 52 31 32 |pu("STFS F0,[R12| 000012a0 2c 23 30 5d 22 29 0d 08 16 21 45 51 55 44 20 a4 |,#0]")...!EQUD .| 000012b0 66 70 75 28 22 53 54 46 53 20 46 31 2c 5b 52 31 |fpu("STFS F1,[R1| 000012c0 32 2c 23 34 5d 22 29 0d 08 20 1b 45 51 55 44 20 |2,#4]").. .EQUD | 000012d0 a4 66 70 75 28 22 43 4d 45 53 20 46 30 2c 46 35 |.fpu("CMES F0,F5| 000012e0 22 29 0d 08 2a 1d 45 51 55 44 20 a4 66 70 75 28 |")..*.EQUD .fpu(| 000012f0 22 4d 56 46 4c 54 53 20 46 35 2c 46 30 22 29 0d |"MVFLTS F5,F0").| 00001300 08 34 1b 45 51 55 44 20 a4 66 70 75 28 22 43 4d |.4.EQUD .fpu("CM| 00001310 45 53 20 46 31 2c 46 37 22 29 0d 08 3e 1d 45 51 |ES F1,F7")..>.EQ| 00001320 55 44 20 a4 66 70 75 28 22 4d 56 46 47 54 53 20 |UD .fpu("MVFGTS | 00001330 46 37 2c 46 31 22 29 0d 08 48 0e 4d 4f 56 20 50 |F7,F1")..H.MOV P| 00001340 43 2c 52 31 34 0d 08 52 05 5d 0d 08 5c 05 e1 0d |C,R14..R.]..\...| 00001350 08 66 05 3a 0d 08 70 12 dd 20 f2 70 6f 69 6e 74 |.f.:..p.. .point| 00001360 6e 6f 72 6d 61 6c 0d 08 7a 0e 5b 20 4f 50 54 20 |normal..z.[ OPT | 00001370 6f 70 74 25 0d 08 84 23 5c 20 63 61 6c 63 75 6c |opt%...#\ calcul| 00001380 61 74 65 20 6e 6f 72 6d 61 6c 73 20 61 74 20 76 |ate normals at v| 00001390 65 72 74 69 63 65 73 0d 08 8e 05 3a 0d 08 98 10 |ertices....:....| 000013a0 2e 70 6f 69 6e 74 6e 6f 72 6d 61 6c 0d 08 a2 14 |.pointnormal....| 000013b0 53 54 4d 46 44 20 52 31 33 21 2c 7b 52 31 34 7d |STMFD R13!,{R14}| 000013c0 0d 08 ac 10 4c 44 52 20 52 30 2c 69 6e 70 75 74 |....LDR R0,input| 000013d0 0d 08 b6 13 4c 44 52 20 52 34 2c 5b 52 30 2c 23 |....LDR R4,[R0,#| 000013e0 33 32 5d 0d 08 c0 12 4c 44 52 20 52 31 2c 5b 52 |32]....LDR R1,[R| 000013f0 30 2c 23 38 5d 0d 08 ca 0f 4c 44 52 20 52 31 2c |0,#8]....LDR R1,| 00001400 5b 52 31 5d 0d 08 d4 1d 45 51 55 44 20 a4 66 70 |[R1]....EQUD .fp| 00001410 75 28 22 4d 56 46 53 20 46 30 2c 23 30 2e 30 22 |u("MVFS F0,#0.0"| 00001420 29 0d 08 de 05 3a 0d 08 e8 0d 2e 6e 6f 72 6d 62 |)....:.....normb| 00001430 6c 6e 6b 0d 08 f2 13 53 55 42 53 20 52 31 2c 52 |lnk....SUBS R1,R| 00001440 31 2c 23 26 30 31 0d 08 fc 15 4c 44 52 4c 54 20 |1,#&01....LDRLT | 00001450 52 31 2c 5b 52 30 2c 23 31 32 5d 0d 09 06 15 4c |R1,[R0,#12]....L| 00001460 44 52 4c 54 20 52 32 2c 5b 52 30 2c 23 31 36 5d |DRLT R2,[R0,#16]| 00001470 0d 09 10 15 4c 44 52 4c 54 20 52 33 2c 5b 52 30 |....LDRLT R3,[R0| 00001480 2c 23 32 38 5d 0d 09 1a 11 4c 44 52 4c 54 20 52 |,#28]....LDRLT R| 00001490 35 2c 5b 52 31 5d 0d 09 24 11 42 4c 54 20 70 6e |5,[R1]..$.BLT pn| 000014a0 74 6e 6f 72 6d 6c 70 0d 09 2e 1a 41 44 44 20 52 |tnormlp....ADD R| 000014b0 31 32 2c 52 31 2c 52 31 2c 41 53 4c 20 23 26 30 |12,R1,R1,ASL #&0| 000014c0 31 0d 09 38 1b 41 44 44 20 52 31 32 2c 52 34 2c |1..8.ADD R12,R4,| 000014d0 52 31 32 2c 41 53 4c 20 23 26 30 32 0d 09 42 21 |R12,ASL #&02..B!| 000014e0 45 51 55 44 20 a4 66 70 75 28 22 53 54 46 53 20 |EQUD .fpu("STFS | 000014f0 46 30 2c 5b 52 31 32 2c 23 30 5d 22 29 0d 09 4c |F0,[R12,#0]")..L| 00001500 21 45 51 55 44 20 a4 66 70 75 28 22 53 54 46 53 |!EQUD .fpu("STFS| 00001510 20 46 30 2c 5b 52 31 32 2c 23 34 5d 22 29 0d 09 | F0,[R12,#4]")..| 00001520 56 21 45 51 55 44 20 a4 66 70 75 28 22 53 54 46 |V!EQUD .fpu("STF| 00001530 53 20 46 30 2c 5b 52 31 32 2c 23 38 5d 22 29 0d |S F0,[R12,#8]").| 00001540 09 60 0e 42 20 6e 6f 72 6d 62 6c 6e 6b 0d 09 6a |.`.B normblnk..j| 00001550 05 3a 0d 09 74 0e 2e 70 6e 74 6e 6f 72 6d 6c 70 |.:..t..pntnormlp| 00001560 0d 09 7e 13 53 55 42 53 20 52 35 2c 52 35 2c 23 |..~.SUBS R5,R5,#| 00001570 26 30 31 0d 09 88 14 4c 44 52 4c 54 20 52 31 2c |&01....LDRLT R1,| 00001580 5b 52 30 2c 23 38 5d 0d 09 92 11 4c 44 52 4c 54 |[R0,#8]....LDRLT| 00001590 20 52 31 2c 5b 52 31 5d 0d 09 9c 0f 42 4c 54 20 | R1,[R1]....BLT | 000015a0 6d 6f 64 75 6c 75 73 0d 09 a6 0e 42 4c 20 73 75 |modulus....BL su| 000015b0 6d 70 6f 6c 79 0d 09 b0 0f 42 20 70 6e 74 6e 6f |mpoly....B pntno| 000015c0 72 6d 6c 70 0d 09 ba 05 3a 0d 09 c4 0c 2e 6d 6f |rmlp....:.....mo| 000015d0 64 75 6c 75 73 0d 09 ce 13 53 55 42 53 20 52 31 |dulus....SUBS R1| 000015e0 2c 52 31 2c 23 26 30 31 0d 09 d8 15 4c 44 4d 4c |,R1,#&01....LDML| 000015f0 54 46 44 20 52 31 33 21 2c 7b 50 43 7d 0d 09 e2 |TFD R13!,{PC}...| 00001600 1a 41 44 44 20 52 31 32 2c 52 31 2c 52 31 2c 41 |.ADD R12,R1,R1,A| 00001610 53 4c 20 23 26 30 31 0d 09 ec 1b 41 44 44 20 52 |SL #&01....ADD R| 00001620 31 32 2c 52 34 2c 52 31 32 2c 41 53 4c 20 23 26 |12,R4,R12,ASL #&| 00001630 30 32 0d 09 f6 1e 45 51 55 44 20 a4 66 70 75 28 |02....EQUD .fpu(| 00001640 22 4c 44 46 53 20 46 30 2c 5b 52 31 32 5d 22 29 |"LDFS F0,[R12]")| 00001650 0d 0a 00 21 45 51 55 44 20 a4 66 70 75 28 22 4c |...!EQUD .fpu("L| 00001660 44 46 53 20 46 31 2c 5b 52 31 32 2c 23 34 5d 22 |DFS F1,[R12,#4]"| 00001670 29 0d 0a 0a 21 45 51 55 44 20 a4 66 70 75 28 22 |)...!EQUD .fpu("| 00001680 4c 44 46 53 20 46 32 2c 5b 52 31 32 2c 23 38 5d |LDFS F2,[R12,#8]| 00001690 22 29 0d 0a 14 1e 45 51 55 44 20 a4 66 70 75 28 |")....EQUD .fpu(| 000016a0 22 4d 55 46 53 20 46 33 2c 46 30 2c 46 30 22 29 |"MUFS F3,F0,F0")| 000016b0 0d 0a 1e 1e 45 51 55 44 20 a4 66 70 75 28 22 4d |....EQUD .fpu("M| 000016c0 55 46 53 20 46 34 2c 46 31 2c 46 31 22 29 0d 0a |UFS F4,F1,F1")..| 000016d0 28 1e 45 51 55 44 20 a4 66 70 75 28 22 4d 55 46 |(.EQUD .fpu("MUF| 000016e0 53 20 46 35 2c 46 32 2c 46 32 22 29 0d 0a 32 1e |S F5,F2,F2")..2.| 000016f0 45 51 55 44 20 a4 66 70 75 28 22 41 44 46 53 20 |EQUD .fpu("ADFS | 00001700 46 33 2c 46 33 2c 46 34 22 29 0d 0a 3c 1e 45 51 |F3,F3,F4")..<.EQ| 00001710 55 44 20 a4 66 70 75 28 22 41 44 46 53 20 46 33 |UD .fpu("ADFS F3| 00001720 2c 46 33 2c 46 35 22 29 0d 0a 46 1b 45 51 55 44 |,F3,F5")..F.EQUD| 00001730 20 a4 66 70 75 28 22 53 51 54 53 20 46 33 2c 46 | .fpu("SQTS F3,F| 00001740 33 22 29 0d 0a 50 1e 45 51 55 44 20 a4 66 70 75 |3")..P.EQUD .fpu| 00001750 28 22 44 56 46 53 20 46 30 2c 46 30 2c 46 33 22 |("DVFS F0,F0,F3"| 00001760 29 0d 0a 5a 1e 45 51 55 44 20 a4 66 70 75 28 22 |)..Z.EQUD .fpu("| 00001770 44 56 46 53 20 46 31 2c 46 31 2c 46 33 22 29 0d |DVFS F1,F1,F3").| 00001780 0a 64 1e 45 51 55 44 20 a4 66 70 75 28 22 44 56 |.d.EQUD .fpu("DV| 00001790 46 53 20 46 32 2c 46 32 2c 46 33 22 29 0d 0a 6e |FS F2,F2,F3")..n| 000017a0 1e 45 51 55 44 20 a4 66 70 75 28 22 53 54 46 53 |.EQUD .fpu("STFS| 000017b0 20 46 30 2c 5b 52 31 32 5d 22 29 0d 0a 78 21 45 | F0,[R12]")..x!E| 000017c0 51 55 44 20 a4 66 70 75 28 22 53 54 46 53 20 46 |QUD .fpu("STFS F| 000017d0 31 2c 5b 52 31 32 2c 23 34 5d 22 29 0d 0a 82 21 |1,[R12,#4]")...!| 000017e0 45 51 55 44 20 a4 66 70 75 28 22 53 54 46 53 20 |EQUD .fpu("STFS | 000017f0 46 32 2c 5b 52 31 32 2c 23 38 5d 22 29 0d 0a 8c |F2,[R12,#8]")...| 00001800 0d 42 20 6d 6f 64 75 6c 75 73 0d 0a 96 05 3a 0d |.B modulus....:.| 00001810 0a a0 0c 2e 73 75 6d 70 6f 6c 79 0d 0a aa 13 41 |....sumpoly....A| 00001820 44 44 20 52 31 31 2c 52 35 2c 23 26 30 31 0d 0a |DD R11,R5,#&01..| 00001830 b4 1d 4c 44 52 20 52 31 31 2c 5b 52 31 2c 52 31 |..LDR R11,[R1,R1| 00001840 31 2c 41 53 4c 20 23 26 30 32 5d 0d 0a be 12 41 |1,ASL #&02]....A| 00001850 44 44 20 52 31 31 2c 52 31 31 2c 52 32 0d 0a c8 |DD R11,R11,R2...| 00001860 14 41 44 44 20 52 31 31 2c 52 31 31 2c 23 26 30 |.ADD R11,R11,#&0| 00001870 34 0d 0a d2 10 4c 44 52 20 52 36 2c 5b 52 31 31 |4....LDR R6,[R11| 00001880 5d 0d 0a dc 1a 41 44 44 20 52 31 32 2c 52 33 2c |]....ADD R12,R3,| 00001890 52 35 2c 41 53 4c 20 23 26 30 34 0d 0a e6 1e 45 |R5,ASL #&04....E| 000018a0 51 55 44 20 a4 66 70 75 28 22 4c 44 46 53 20 46 |QUD .fpu("LDFS F| 000018b0 30 2c 5b 52 31 32 5d 22 29 0d 0a f0 21 45 51 55 |0,[R12]")...!EQU| 000018c0 44 20 a4 66 70 75 28 22 4c 44 46 53 20 46 31 2c |D .fpu("LDFS F1,| 000018d0 5b 52 31 32 2c 23 34 5d 22 29 0d 0a fa 21 45 51 |[R12,#4]")...!EQ| 000018e0 55 44 20 a4 66 70 75 28 22 4c 44 46 53 20 46 32 |UD .fpu("LDFS F2| 000018f0 2c 5b 52 31 32 2c 23 38 5d 22 29 0d 0b 04 05 3a |,[R12,#8]")....:| 00001900 0d 0b 0e 0e 2e 73 75 6d 70 6f 6c 79 6c 70 0d 0b |.....sumpolylp..| 00001910 18 13 53 55 42 53 20 52 36 2c 52 36 2c 23 26 30 |..SUBS R6,R6,#&0| 00001920 31 0d 0b 22 10 4d 4f 56 4c 45 20 50 43 2c 52 31 |1..".MOVLE PC,R1| 00001930 34 0d 0b 2c 1c 4c 44 52 20 52 37 2c 5b 52 31 31 |4..,.LDR R7,[R11| 00001940 2c 52 36 2c 41 53 4c 20 23 26 30 32 5d 0d 0b 36 |,R6,ASL #&02]..6| 00001950 1a 41 44 44 20 52 31 32 2c 52 37 2c 52 37 2c 41 |.ADD R12,R7,R7,A| 00001960 53 4c 20 23 26 30 31 0d 0b 40 1b 41 44 44 20 52 |SL #&01..@.ADD R| 00001970 31 32 2c 52 34 2c 52 31 32 2c 41 53 4c 20 23 26 |12,R4,R12,ASL #&| 00001980 30 32 0d 0b 4a 1e 45 51 55 44 20 a4 66 70 75 28 |02..J.EQUD .fpu(| 00001990 22 4c 44 46 53 20 46 33 2c 5b 52 31 32 5d 22 29 |"LDFS F3,[R12]")| 000019a0 0d 0b 54 21 45 51 55 44 20 a4 66 70 75 28 22 4c |..T!EQUD .fpu("L| 000019b0 44 46 53 20 46 34 2c 5b 52 31 32 2c 23 34 5d 22 |DFS F4,[R12,#4]"| 000019c0 29 0d 0b 5e 21 45 51 55 44 20 a4 66 70 75 28 22 |)..^!EQUD .fpu("| 000019d0 4c 44 46 53 20 46 35 2c 5b 52 31 32 2c 23 38 5d |LDFS F5,[R12,#8]| 000019e0 22 29 0d 0b 68 1e 45 51 55 44 20 a4 66 70 75 28 |")..h.EQUD .fpu(| 000019f0 22 41 44 46 53 20 46 33 2c 46 33 2c 46 30 22 29 |"ADFS F3,F3,F0")| 00001a00 0d 0b 72 1e 45 51 55 44 20 a4 66 70 75 28 22 41 |..r.EQUD .fpu("A| 00001a10 44 46 53 20 46 34 2c 46 34 2c 46 31 22 29 0d 0b |DFS F4,F4,F1")..| 00001a20 7c 1e 45 51 55 44 20 a4 66 70 75 28 22 41 44 46 ||.EQUD .fpu("ADF| 00001a30 53 20 46 35 2c 46 35 2c 46 32 22 29 0d 0b 86 1e |S F5,F5,F2")....| 00001a40 45 51 55 44 20 a4 66 70 75 28 22 53 54 46 53 20 |EQUD .fpu("STFS | 00001a50 46 33 2c 5b 52 31 32 5d 22 29 0d 0b 90 21 45 51 |F3,[R12]")...!EQ| 00001a60 55 44 20 a4 66 70 75 28 22 53 54 46 53 20 46 34 |UD .fpu("STFS F4| 00001a70 2c 5b 52 31 32 2c 23 34 5d 22 29 0d 0b 9a 21 45 |,[R12,#4]")...!E| 00001a80 51 55 44 20 a4 66 70 75 28 22 53 54 46 53 20 46 |QUD .fpu("STFS F| 00001a90 35 2c 5b 52 31 32 2c 23 38 5d 22 29 0d 0b a4 0f |5,[R12,#8]")....| 00001aa0 42 20 73 75 6d 70 6f 6c 79 6c 70 0d 0b ae 05 5d |B sumpolylp....]| 00001ab0 0d 0b b8 05 e1 0d 0b c2 05 3a 0d 0b cc 0c dd 20 |.........:..... | 00001ac0 f2 70 6c 61 6e 65 0d 0b d6 0e 5b 20 4f 50 54 20 |.plane....[ OPT | 00001ad0 6f 70 74 25 0d 0b e0 2c 5c 20 63 61 6c 63 75 6c |opt%...,\ calcul| 00001ae0 61 74 65 20 70 6c 61 6e 65 20 65 71 75 61 74 69 |ate plane equati| 00001af0 6f 6e 73 20 66 6f 72 20 70 6f 6c 79 67 6f 6e 73 |ons for polygons| 00001b00 0d 0b ea 05 3a 0d 0b f4 0a 2e 70 6c 61 6e 65 0d |....:.....plane.| 00001b10 0b fe 14 53 54 4d 46 44 20 52 31 33 21 2c 7b 52 |...STMFD R13!,{R| 00001b20 31 34 7d 0d 0c 08 10 4c 44 52 20 52 30 2c 69 6e |14}....LDR R0,in| 00001b30 70 75 74 0d 0c 12 12 4c 44 52 20 52 31 2c 5b 52 |put....LDR R1,[R| 00001b40 30 2c 23 38 5d 0d 0c 1c 13 4c 44 52 20 52 32 2c |0,#8]....LDR R2,| 00001b50 5b 52 30 2c 23 31 32 5d 0d 0c 26 13 4c 44 52 20 |[R0,#12]..&.LDR | 00001b60 52 33 2c 5b 52 30 2c 23 31 36 5d 0d 0c 30 13 4c |R3,[R0,#16]..0.L| 00001b70 44 52 20 52 34 2c 5b 52 30 2c 23 32 38 5d 0d 0c |DR R4,[R0,#28]..| 00001b80 3a 0f 4c 44 52 20 52 35 2c 5b 52 32 5d 0d 0c 44 |:.LDR R5,[R2]..D| 00001b90 05 3a 0d 0c 4e 0d 2e 70 6c 6e 70 6f 6c 6c 70 0d |.:..N..plnpollp.| 00001ba0 0c 58 13 53 55 42 53 20 52 35 2c 52 35 2c 23 26 |.X.SUBS R5,R5,#&| 00001bb0 30 31 0d 0c 62 15 4c 44 4d 4c 54 46 44 20 52 31 |01..b.LDMLTFD R1| 00001bc0 33 21 2c 7b 50 43 7d 0d 0c 6c 10 42 4c 20 70 6c |3!,{PC}..l.BL pl| 00001bd0 61 6e 65 63 61 6c 63 0d 0c 76 0e 42 20 70 6c 6e |anecalc..v.B pln| 00001be0 70 6f 6c 6c 70 0d 0c 80 05 3a 0d 0c 8a 0e 2e 70 |pollp....:.....p| 00001bf0 6c 61 6e 65 63 61 6c 63 0d 0c 94 13 41 44 44 20 |lanecalc....ADD | 00001c00 52 31 30 2c 52 35 2c 23 26 30 31 0d 0c 9e 1d 4c |R10,R5,#&01....L| 00001c10 44 52 20 52 31 30 2c 5b 52 32 2c 52 31 30 2c 41 |DR R10,[R2,R10,A| 00001c20 53 4c 20 23 26 30 32 5d 0d 0c a8 12 41 44 44 20 |SL #&02]....ADD | 00001c30 52 31 30 2c 52 31 30 2c 52 33 0d 0c b2 14 41 44 |R10,R10,R3....AD| 00001c40 44 20 52 31 30 2c 52 31 30 2c 23 26 30 34 0d 0c |D R10,R10,#&04..| 00001c50 bc 10 4c 44 52 20 52 36 2c 5b 52 31 30 5d 0d 0c |..LDR R6,[R10]..| 00001c60 c6 1d 45 51 55 44 20 a4 66 70 75 28 22 4d 56 46 |..EQUD .fpu("MVF| 00001c70 53 20 46 30 2c 23 30 2e 30 22 29 0d 0c d0 1d 45 |S F0,#0.0")....E| 00001c80 51 55 44 20 a4 66 70 75 28 22 4d 56 46 53 20 46 |QUD .fpu("MVFS F| 00001c90 31 2c 23 30 2e 30 22 29 0d 0c da 1d 45 51 55 44 |1,#0.0")....EQUD| 00001ca0 20 a4 66 70 75 28 22 4d 56 46 53 20 46 32 2c 23 | .fpu("MVFS F2,#| 00001cb0 30 2e 30 22 29 0d 0c e4 05 3a 0d 0c ee 0c 2e 70 |0.0")....:.....p| 00001cc0 6c 61 6e 65 6c 70 0d 0c f8 1c 4c 44 52 20 52 37 |lanelp....LDR R7| 00001cd0 2c 5b 52 31 30 2c 52 36 2c 41 53 4c 20 23 26 30 |,[R10,R6,ASL #&0| 00001ce0 32 5d 0d 0d 02 13 53 55 42 53 20 52 36 2c 52 36 |2]....SUBS R6,R6| 00001cf0 2c 23 26 30 31 0d 0d 0c 12 42 4c 45 20 70 6c 61 |,#&01....BLE pla| 00001d00 6e 65 73 74 6f 72 65 0d 0d 16 1c 4c 44 52 20 52 |nestore....LDR R| 00001d10 38 2c 5b 52 31 30 2c 52 36 2c 41 53 4c 20 23 26 |8,[R10,R6,ASL #&| 00001d20 30 32 5d 0d 0d 20 1a 41 44 44 20 52 31 31 2c 52 |02].. .ADD R11,R| 00001d30 37 2c 52 37 2c 41 53 4c 20 23 26 30 31 0d 0d 2a |7,R7,ASL #&01..*| 00001d40 1b 41 44 44 20 52 31 31 2c 52 31 2c 52 31 31 2c |.ADD R11,R1,R11,| 00001d50 41 53 4c 20 23 26 30 32 0d 0d 34 1a 41 44 44 20 |ASL #&02..4.ADD | 00001d60 52 31 32 2c 52 38 2c 52 38 2c 41 53 4c 20 23 26 |R12,R8,R8,ASL #&| 00001d70 30 31 0d 0d 3e 1b 41 44 44 20 52 31 32 2c 52 31 |01..>.ADD R12,R1| 00001d80 2c 52 31 32 2c 41 53 4c 20 23 26 30 32 0d 0d 48 |,R12,ASL #&02..H| 00001d90 22 45 51 55 44 20 a4 66 70 75 28 22 4c 44 46 53 |"EQUD .fpu("LDFS| 00001da0 20 46 34 2c 5b 52 31 31 2c 23 30 34 5d 22 29 0d | F4,[R11,#04]").| 00001db0 0d 52 22 45 51 55 44 20 a4 66 70 75 28 22 4c 44 |.R"EQUD .fpu("LD| 00001dc0 46 53 20 46 35 2c 5b 52 31 32 2c 23 30 34 5d 22 |FS F5,[R12,#04]"| 00001dd0 29 0d 0d 5c 22 45 51 55 44 20 a4 66 70 75 28 22 |)..\"EQUD .fpu("| 00001de0 4c 44 46 53 20 46 36 2c 5b 52 31 31 2c 23 30 38 |LDFS F6,[R11,#08| 00001df0 5d 22 29 0d 0d 66 22 45 51 55 44 20 a4 66 70 75 |]")..f"EQUD .fpu| 00001e00 28 22 4c 44 46 53 20 46 37 2c 5b 52 31 32 2c 23 |("LDFS F7,[R12,#| 00001e10 30 38 5d 22 29 0d 0d 70 1e 45 51 55 44 20 a4 66 |08]")..p.EQUD .f| 00001e20 70 75 28 22 53 55 46 53 20 46 34 2c 46 35 2c 46 |pu("SUFS F4,F5,F| 00001e30 34 22 29 0d 0d 7a 1e 45 51 55 44 20 a4 66 70 75 |4")..z.EQUD .fpu| 00001e40 28 22 41 44 46 53 20 46 35 2c 46 36 2c 46 37 22 |("ADFS F5,F6,F7"| 00001e50 29 0d 0d 84 1e 45 51 55 44 20 a4 66 70 75 28 22 |)....EQUD .fpu("| 00001e60 4d 55 46 53 20 46 34 2c 46 34 2c 46 35 22 29 0d |MUFS F4,F4,F5").| 00001e70 0d 8e 1e 45 51 55 44 20 a4 66 70 75 28 22 41 44 |...EQUD .fpu("AD| 00001e80 46 53 20 46 32 2c 46 32 2c 46 34 22 29 0d 0d 98 |FS F2,F2,F4")...| 00001e90 22 45 51 55 44 20 a4 66 70 75 28 22 4c 44 46 53 |"EQUD .fpu("LDFS| 00001ea0 20 46 34 2c 5b 52 31 31 2c 23 31 32 5d 22 29 0d | F4,[R11,#12]").| 00001eb0 0d a2 22 45 51 55 44 20 a4 66 70 75 28 22 4c 44 |.."EQUD .fpu("LD| 00001ec0 46 53 20 46 35 2c 5b 52 31 32 2c 23 31 32 5d 22 |FS F5,[R12,#12]"| 00001ed0 29 0d 0d ac 1e 45 51 55 44 20 a4 66 70 75 28 22 |)....EQUD .fpu("| 00001ee0 53 55 46 53 20 46 36 2c 46 37 2c 46 36 22 29 0d |SUFS F6,F7,F6").| 00001ef0 0d b6 1e 45 51 55 44 20 a4 66 70 75 28 22 41 44 |...EQUD .fpu("AD| 00001f00 46 53 20 46 37 2c 46 35 2c 46 34 22 29 0d 0d c0 |FS F7,F5,F4")...| 00001f10 1e 45 51 55 44 20 a4 66 70 75 28 22 4d 55 46 53 |.EQUD .fpu("MUFS| 00001f20 20 46 36 2c 46 36 2c 46 37 22 29 0d 0d ca 1e 45 | F6,F6,F7")....E| 00001f30 51 55 44 20 a4 66 70 75 28 22 41 44 46 53 20 46 |QUD .fpu("ADFS F| 00001f40 30 2c 46 30 2c 46 36 22 29 0d 0d d4 21 45 51 55 |0,F0,F6")...!EQU| 00001f50 44 20 a4 66 70 75 28 22 4c 44 46 53 20 46 36 2c |D .fpu("LDFS F6,| 00001f60 5b 52 31 31 2c 23 34 5d 22 29 0d 0d de 21 45 51 |[R11,#4]")...!EQ| 00001f70 55 44 20 a4 66 70 75 28 22 4c 44 46 53 20 46 37 |UD .fpu("LDFS F7| 00001f80 2c 5b 52 31 32 2c 23 34 5d 22 29 0d 0d e8 1e 45 |,[R12,#4]")....E| 00001f90 51 55 44 20 a4 66 70 75 28 22 53 55 46 53 20 46 |QUD .fpu("SUFS F| 00001fa0 34 2c 46 35 2c 46 34 22 29 0d 0d f2 1e 45 51 55 |4,F5,F4")....EQU| 00001fb0 44 20 a4 66 70 75 28 22 41 44 46 53 20 46 35 2c |D .fpu("ADFS F5,| 00001fc0 46 37 2c 46 36 22 29 0d 0d fc 1e 45 51 55 44 20 |F7,F6")....EQUD | 00001fd0 a4 66 70 75 28 22 4d 55 46 53 20 46 34 2c 46 34 |.fpu("MUFS F4,F4| 00001fe0 2c 46 35 22 29 0d 0e 06 1e 45 51 55 44 20 a4 66 |,F5")....EQUD .f| 00001ff0 70 75 28 22 41 44 46 53 20 46 31 2c 46 31 2c 46 |pu("ADFS F1,F1,F| 00002000 34 22 29 0d 0e 10 0d 42 20 70 6c 61 6e 65 6c 70 |4")....B planelp| 00002010 0d 0e 1a 05 3a 0d 0e 24 0f 2e 70 6c 61 6e 65 73 |....:..$..planes| 00002020 74 6f 72 65 0d 0e 2e 1a 41 44 44 20 52 31 31 2c |tore....ADD R11,| 00002030 52 37 2c 52 37 2c 41 53 4c 20 23 26 30 31 0d 0e |R7,R7,ASL #&01..| 00002040 38 1b 41 44 44 20 52 31 31 2c 52 31 2c 52 31 31 |8.ADD R11,R1,R11| 00002050 2c 41 53 4c 20 23 26 30 32 0d 0e 42 21 45 51 55 |,ASL #&02..B!EQU| 00002060 44 20 a4 66 70 75 28 22 4c 44 46 53 20 46 34 2c |D .fpu("LDFS F4,| 00002070 5b 52 31 31 2c 23 34 5d 22 29 0d 0e 4c 21 45 51 |[R11,#4]")..L!EQ| 00002080 55 44 20 a4 66 70 75 28 22 4c 44 46 53 20 46 35 |UD .fpu("LDFS F5| 00002090 2c 5b 52 31 31 2c 23 38 5d 22 29 0d 0e 56 22 45 |,[R11,#8]")..V"E| 000020a0 51 55 44 20 a4 66 70 75 28 22 4c 44 46 53 20 46 |QUD .fpu("LDFS F| 000020b0 36 2c 5b 52 31 31 2c 23 31 32 5d 22 29 0d 0e 60 |6,[R11,#12]")..`| 000020c0 1e 45 51 55 44 20 a4 66 70 75 28 22 4d 55 46 53 |.EQUD .fpu("MUFS| 000020d0 20 46 34 2c 46 34 2c 46 30 22 29 0d 0e 6a 1e 45 | F4,F4,F0")..j.E| 000020e0 51 55 44 20 a4 66 70 75 28 22 4d 55 46 53 20 46 |QUD .fpu("MUFS F| 000020f0 35 2c 46 35 2c 46 31 22 29 0d 0e 74 1e 45 51 55 |5,F5,F1")..t.EQU| 00002100 44 20 a4 66 70 75 28 22 4d 55 46 53 20 46 36 2c |D .fpu("MUFS F6,| 00002110 46 36 2c 46 32 22 29 0d 0e 7e 1e 45 51 55 44 20 |F6,F2")..~.EQUD | 00002120 a4 66 70 75 28 22 41 44 46 53 20 46 34 2c 46 34 |.fpu("ADFS F4,F4| 00002130 2c 46 35 22 29 0d 0e 88 1e 45 51 55 44 20 a4 66 |,F5")....EQUD .f| 00002140 70 75 28 22 41 44 46 53 20 46 34 2c 46 34 2c 46 |pu("ADFS F4,F4,F| 00002150 36 22 29 0d 0e 92 1b 45 51 55 44 20 a4 66 70 75 |6")....EQUD .fpu| 00002160 28 22 4d 4e 46 53 20 46 34 2c 46 34 22 29 0d 0e |("MNFS F4,F4")..| 00002170 9c 1a 41 44 44 20 52 31 32 2c 52 34 2c 52 35 2c |..ADD R12,R4,R5,| 00002180 41 53 4c 20 23 26 30 34 0d 0e a6 1e 45 51 55 44 |ASL #&04....EQUD| 00002190 20 a4 66 70 75 28 22 53 54 46 53 20 46 30 2c 5b | .fpu("STFS F0,[| 000021a0 52 31 32 5d 22 29 0d 0e b0 22 45 51 55 44 20 a4 |R12]")..."EQUD .| 000021b0 66 70 75 28 22 53 54 46 53 20 46 31 2c 5b 52 31 |fpu("STFS F1,[R1| 000021c0 32 2c 23 30 34 5d 22 29 0d 0e ba 22 45 51 55 44 |2,#04]")..."EQUD| 000021d0 20 a4 66 70 75 28 22 53 54 46 53 20 46 32 2c 5b | .fpu("STFS F2,[| 000021e0 52 31 32 2c 23 30 38 5d 22 29 0d 0e c4 22 45 51 |R12,#08]")..."EQ| 000021f0 55 44 20 a4 66 70 75 28 22 53 54 46 53 20 46 34 |UD .fpu("STFS F4| 00002200 2c 5b 52 31 32 2c 23 31 32 5d 22 29 0d 0e ce 0e |,[R12,#12]")....| 00002210 4d 4f 56 20 50 43 2c 52 31 34 0d 0e d8 05 5d 0d |MOV PC,R14....].| 00002220 0e e2 05 e1 0d 0e ec 05 3a 0d 0e f6 0f dd 20 f2 |........:..... .| 00002230 73 63 61 6e 6c 69 6e 65 0d 0f 00 0e 5b 20 4f 50 |scanline....[ OP| 00002240 54 20 6f 70 74 25 0d 0f 0a 24 5c 20 70 72 6f 64 |T opt%...$\ prod| 00002250 75 63 65 20 6f 72 64 65 72 65 64 20 65 64 67 65 |uce ordered edge| 00002260 20 70 61 69 72 20 6c 69 73 74 0d 0f 14 05 3a 0d | pair list....:.| 00002270 0f 1e 0b 2e 69 6e 73 69 64 65 0d 0f 28 1a 41 44 |....inside..(.AD| 00002280 44 20 52 31 32 2c 52 35 2c 52 37 2c 41 53 4c 20 |D R12,R5,R7,ASL | 00002290 23 26 30 33 0d 0f 32 1e 45 51 55 44 20 a4 66 70 |#&03..2.EQUD .fp| 000022a0 75 28 22 4c 44 46 53 20 46 32 2c 5b 52 31 32 5d |u("LDFS F2,[R12]| 000022b0 22 29 0d 0f 3c 1b 45 51 55 44 20 a4 66 70 75 28 |")..<.EQUD .fpu(| 000022c0 22 43 4d 45 53 20 46 31 2c 46 32 22 29 0d 0f 46 |"CMES F1,F2")..F| 000022d0 10 4d 4f 56 4c 54 20 50 43 2c 52 31 34 0d 0f 50 |.MOVLT PC,R14..P| 000022e0 21 45 51 55 44 20 a4 66 70 75 28 22 4c 44 46 53 |!EQUD .fpu("LDFS| 000022f0 20 46 32 2c 5b 52 31 32 2c 23 34 5d 22 29 0d 0f | F2,[R12,#4]")..| 00002300 5a 1b 45 51 55 44 20 a4 66 70 75 28 22 43 4d 45 |Z.EQUD .fpu("CME| 00002310 53 20 46 31 2c 46 32 22 29 0d 0f 64 10 4d 4f 56 |S F1,F2")..d.MOV| 00002320 47 54 20 50 43 2c 52 31 34 0d 0f 6e 13 41 44 44 |GT PC,R14..n.ADD| 00002330 20 52 31 31 2c 52 37 2c 23 26 30 31 0d 0f 78 1d | R11,R7,#&01..x.| 00002340 4c 44 52 20 52 31 31 2c 5b 52 32 2c 52 31 31 2c |LDR R11,[R2,R11,| 00002350 41 53 4c 20 23 26 30 32 5d 0d 0f 82 12 41 44 44 |ASL #&02]....ADD| 00002360 20 52 31 31 2c 52 31 31 2c 52 33 0d 0f 8c 14 41 | R11,R11,R3....A| 00002370 44 44 20 52 31 31 2c 52 31 31 2c 23 26 30 34 0d |DD R11,R11,#&04.| 00002380 0f 96 10 4c 44 52 20 52 38 2c 5b 52 31 31 5d 0d |...LDR R8,[R11].| 00002390 0f a0 05 3a 0d 0f aa 0b 2e 65 64 67 65 6c 70 0d |...:.....edgelp.| 000023a0 0f b4 1c 4c 44 52 20 52 39 2c 5b 52 31 31 2c 52 |...LDR R9,[R11,R| 000023b0 38 2c 41 53 4c 20 23 26 30 32 5d 0d 0f be 13 53 |8,ASL #&02]....S| 000023c0 55 42 53 20 52 38 2c 52 38 2c 23 26 30 31 0d 0f |UBS R8,R8,#&01..| 000023d0 c8 10 4d 4f 56 4c 45 20 50 43 2c 52 31 34 0d 0f |..MOVLE PC,R14..| 000023e0 d2 1a 41 44 44 20 52 31 32 2c 52 39 2c 52 39 2c |..ADD R12,R9,R9,| 000023f0 41 53 4c 20 23 26 30 31 0d 0f dc 1b 41 44 44 20 |ASL #&01....ADD | 00002400 52 31 32 2c 52 31 2c 52 31 32 2c 41 53 4c 20 23 |R12,R1,R12,ASL #| 00002410 26 30 32 0d 0f e6 22 45 51 55 44 20 a4 66 70 75 |&02..."EQUD .fpu| 00002420 28 22 4c 44 46 53 20 46 32 2c 5b 52 31 32 2c 23 |("LDFS F2,[R12,#| 00002430 30 38 5d 22 29 0d 0f f0 1d 4c 44 52 20 52 31 30 |08]")....LDR R10| 00002440 2c 5b 52 31 31 2c 52 38 2c 41 53 4c 20 23 26 30 |,[R11,R8,ASL #&0| 00002450 32 5d 0d 0f fa 1c 41 44 44 20 52 31 32 2c 52 31 |2]....ADD R12,R1| 00002460 30 2c 52 31 30 2c 41 53 4c 20 23 26 30 31 0d 10 |0,R10,ASL #&01..| 00002470 04 1b 41 44 44 20 52 31 32 2c 52 31 2c 52 31 32 |..ADD R12,R1,R12| 00002480 2c 41 53 4c 20 23 26 30 32 0d 10 0e 22 45 51 55 |,ASL #&02..."EQU| 00002490 44 20 a4 66 70 75 28 22 4c 44 46 53 20 46 33 2c |D .fpu("LDFS F3,| 000024a0 5b 52 31 32 2c 23 30 38 5d 22 29 0d 10 18 05 3a |[R12,#08]")....:| 000024b0 0d 10 22 1b 45 51 55 44 20 a4 66 70 75 28 22 4d |..".EQUD .fpu("M| 000024c0 56 46 53 20 46 34 2c 46 32 22 29 0d 10 2c 1b 45 |VFS F4,F2")..,.E| 000024d0 51 55 44 20 a4 66 70 75 28 22 4d 56 46 53 20 46 |QUD .fpu("MVFS F| 000024e0 35 2c 46 33 22 29 0d 10 36 1b 45 51 55 44 20 a4 |5,F3")..6.EQUD .| 000024f0 66 70 75 28 22 43 4d 45 53 20 46 32 2c 46 33 22 |fpu("CMES F2,F3"| 00002500 29 0d 10 40 1d 45 51 55 44 20 a4 66 70 75 28 22 |)..@.EQUD .fpu("| 00002510 4d 56 46 47 54 53 20 46 35 2c 46 32 22 29 0d 10 |MVFGTS F5,F2")..| 00002520 4a 1d 45 51 55 44 20 a4 66 70 75 28 22 4d 56 46 |J.EQUD .fpu("MVF| 00002530 47 54 53 20 46 34 2c 46 33 22 29 0d 10 54 1b 45 |GTS F4,F3")..T.E| 00002540 51 55 44 20 a4 66 70 75 28 22 43 4d 45 53 20 46 |QUD .fpu("CMES F| 00002550 31 2c 46 35 22 29 0d 10 5e 0e 42 47 54 20 65 64 |1,F5")..^.BGT ed| 00002560 67 65 6c 70 0d 10 68 1b 45 51 55 44 20 a4 66 70 |gelp..h.EQUD .fp| 00002570 75 28 22 43 4d 45 53 20 46 31 2c 46 34 22 29 0d |u("CMES F1,F4").| 00002580 10 72 0e 42 4c 45 20 65 64 67 65 6c 70 0d 10 7c |.r.BLE edgelp..|| 00002590 05 3a 0d 10 86 1e 45 51 55 44 20 a4 66 70 75 28 |.:....EQUD .fpu(| 000025a0 22 53 55 46 53 20 46 35 2c 46 33 2c 46 32 22 29 |"SUFS F5,F3,F2")| 000025b0 0d 10 90 1a 41 44 44 20 52 31 32 2c 52 39 2c 52 |....ADD R12,R9,R| 000025c0 39 2c 41 53 4c 20 23 26 30 31 0d 10 9a 1b 41 44 |9,ASL #&01....AD| 000025d0 44 20 52 31 32 2c 52 31 2c 52 31 32 2c 41 53 4c |D R12,R1,R12,ASL| 000025e0 20 23 26 30 32 0d 10 a4 22 45 51 55 44 20 a4 66 | #&02..."EQUD .f| 000025f0 70 75 28 22 4c 44 46 53 20 46 37 2c 5b 52 31 32 |pu("LDFS F7,[R12| 00002600 2c 23 30 34 5d 22 29 0d 10 ae 1c 41 44 44 20 52 |,#04]")....ADD R| 00002610 31 32 2c 52 31 30 2c 52 31 30 2c 41 53 4c 20 23 |12,R10,R10,ASL #| 00002620 26 30 31 0d 10 b8 1b 41 44 44 20 52 31 32 2c 52 |&01....ADD R12,R| 00002630 31 2c 52 31 32 2c 41 53 4c 20 23 26 30 32 0d 10 |1,R12,ASL #&02..| 00002640 c2 22 45 51 55 44 20 a4 66 70 75 28 22 4c 44 46 |."EQUD .fpu("LDF| 00002650 53 20 46 33 2c 5b 52 31 32 2c 23 30 34 5d 22 29 |S F3,[R12,#04]")| 00002660 0d 10 cc 1e 45 51 55 44 20 a4 66 70 75 28 22 53 |....EQUD .fpu("S| 00002670 55 46 53 20 46 34 2c 46 33 2c 46 37 22 29 0d 10 |UFS F4,F3,F7")..| 00002680 d6 1e 45 51 55 44 20 a4 66 70 75 28 22 53 55 46 |..EQUD .fpu("SUF| 00002690 53 20 46 32 2c 46 31 2c 46 32 22 29 0d 10 e0 1e |S F2,F1,F2")....| 000026a0 45 51 55 44 20 a4 66 70 75 28 22 44 56 46 53 20 |EQUD .fpu("DVFS | 000026b0 46 35 2c 46 32 2c 46 35 22 29 0d 10 ea 1e 45 51 |F5,F2,F5")....EQ| 000026c0 55 44 20 a4 66 70 75 28 22 4d 55 46 53 20 46 34 |UD .fpu("MUFS F4| 000026d0 2c 46 35 2c 46 34 22 29 0d 10 f4 1e 45 51 55 44 |,F5,F4")....EQUD| 000026e0 20 a4 66 70 75 28 22 41 44 46 53 20 46 34 2c 46 | .fpu("ADFS F4,F| 000026f0 34 2c 46 37 22 29 0d 10 fe 05 3a 0d 11 08 1a 41 |4,F7")....:....A| 00002700 44 44 20 52 31 32 2c 52 34 2c 52 36 2c 41 53 4c |DD R12,R4,R6,ASL| 00002710 20 23 26 30 33 0d 11 12 1e 45 51 55 44 20 a4 66 | #&03....EQUD .f| 00002720 70 75 28 22 53 54 46 53 20 46 34 2c 5b 52 31 32 |pu("STFS F4,[R12| 00002730 5d 22 29 0d 11 1c 16 4d 4f 56 20 52 39 2c 52 37 |]")....MOV R9,R7| 00002740 2c 41 53 4c 20 23 26 31 30 0d 11 26 0f 84 52 20 |,ASL #&10..&..R | 00002750 52 39 2c 52 39 2c 52 38 0d 11 30 15 53 54 52 20 |R9,R9,R8..0.STR | 00002760 52 39 2c 5b 52 31 32 2c 23 26 30 34 5d 0d 11 3a |R9,[R12,#&04]..:| 00002770 12 41 44 44 20 52 36 2c 52 36 2c 23 26 30 31 0d |.ADD R6,R6,#&01.| 00002780 11 44 0c 42 20 65 64 67 65 6c 70 0d 11 4e 05 3a |.D.B edgelp..N.:| 00002790 0d 11 58 0d 2e 73 63 61 6e 6c 69 6e 65 0d 11 62 |..X..scanline..b| 000027a0 14 53 54 4d 46 44 20 52 31 33 21 2c 7b 52 31 34 |.STMFD R13!,{R14| 000027b0 7d 0d 11 6c 10 4c 44 52 20 52 30 2c 69 6e 70 75 |}..l.LDR R0,inpu| 000027c0 74 0d 11 76 20 45 51 55 44 20 a4 66 70 75 28 22 |t..v EQUD .fpu("| 000027d0 4c 44 46 53 20 46 31 2c 5b 52 30 2c 23 34 5d 22 |LDFS F1,[R0,#4]"| 000027e0 29 0d 11 80 12 4c 44 52 20 52 31 2c 5b 52 30 2c |)....LDR R1,[R0,| 000027f0 23 38 5d 0d 11 8a 13 4c 44 52 20 52 32 2c 5b 52 |#8]....LDR R2,[R| 00002800 30 2c 23 31 32 5d 0d 11 94 13 4c 44 52 20 52 33 |0,#12]....LDR R3| 00002810 2c 5b 52 30 2c 23 31 36 5d 0d 11 9e 13 4c 44 52 |,[R0,#16]....LDR| 00002820 20 52 34 2c 5b 52 30 2c 23 32 30 5d 0d 11 a8 12 | R4,[R0,#20]....| 00002830 41 44 44 20 52 34 2c 52 34 2c 23 26 30 34 0d 11 |ADD R4,R4,#&04..| 00002840 b2 13 4c 44 52 20 52 35 2c 5b 52 30 2c 23 33 36 |..LDR R5,[R0,#36| 00002850 5d 0d 11 bc 0f 4d 4f 56 20 52 36 2c 23 26 30 30 |]....MOV R6,#&00| 00002860 0d 11 c6 0f 4c 44 52 20 52 37 2c 5b 52 32 5d 0d |....LDR R7,[R2].| 00002870 11 d0 05 3a 0d 11 da 0b 2e 73 63 61 6e 6c 70 0d |...:.....scanlp.| 00002880 11 e4 13 53 55 42 53 20 52 37 2c 52 37 2c 23 26 |...SUBS R7,R7,#&| 00002890 30 31 0d 11 ee 12 42 4c 54 20 6f 72 64 65 72 74 |01....BLT ordert| 000028a0 61 62 6c 65 0d 11 f8 0d 42 4c 20 69 6e 73 69 64 |able....BL insid| 000028b0 65 0d 12 02 0c 42 20 73 63 61 6e 6c 70 0d 12 0c |e....B scanlp...| 000028c0 05 3a 0d 12 16 0f 2e 6f 72 64 65 72 74 61 62 6c |.:.....ordertabl| 000028d0 65 0d 12 20 13 53 54 52 20 52 36 2c 5b 52 34 2c |e.. .STR R6,[R4,| 000028e0 23 2d 34 5d 0d 12 2a 0f 43 4d 50 20 52 36 2c 23 |#-4]..*.CMP R6,#| 000028f0 26 30 32 0d 12 34 15 4c 44 4d 4c 54 46 44 20 52 |&02..4.LDMLTFD R| 00002900 31 33 21 2c 7b 50 43 7d 0d 12 3e 12 80 53 20 52 |13!,{PC}..>..S R| 00002910 31 32 2c 52 36 2c 23 26 30 31 0d 12 48 14 41 44 |12,R6,#&01..H.AD| 00002920 44 4e 45 20 52 36 2c 52 36 2c 23 26 30 31 0d 12 |DNE R6,R6,#&01..| 00002930 52 20 45 51 55 44 20 a4 66 70 75 28 22 4d 56 46 |R EQUD .fpu("MVF| 00002940 4e 45 53 20 46 37 2c 23 31 30 2e 30 22 29 0d 12 |NES F7,#10.0")..| 00002950 5c 23 45 51 55 44 20 a4 66 70 75 28 22 50 4f 57 |\#EQUD .fpu("POW| 00002960 4e 45 53 20 46 37 2c 46 37 2c 23 31 30 2e 30 22 |NES F7,F7,#10.0"| 00002970 29 0d 12 66 1d 45 51 55 44 20 a4 66 70 75 28 22 |)..f.EQUD .fpu("| 00002980 4d 4e 46 4e 45 53 20 46 37 2c 46 37 22 29 0d 12 |MNFNES F7,F7")..| 00002990 70 1c 41 44 44 4e 45 20 52 31 32 2c 52 34 2c 52 |p.ADDNE R12,R4,R| 000029a0 36 2c 41 53 4c 20 23 26 30 33 0d 12 7a 23 45 51 |6,ASL #&03..z#EQ| 000029b0 55 44 20 a4 66 70 75 28 22 53 54 46 4e 45 53 20 |UD .fpu("STFNES | 000029c0 46 37 2c 5b 52 31 32 2c 23 30 5d 22 29 0d 12 84 |F7,[R12,#0]")...| 000029d0 0d 4d 4f 56 20 52 30 2c 52 34 0d 12 8e 0d 4d 4f |.MOV R0,R4....MO| 000029e0 56 20 52 31 2c 52 36 0d 12 98 0b 42 4c 20 73 6f |V R1,R6....BL so| 000029f0 72 74 0d 12 a2 13 4c 44 4d 46 44 20 52 31 33 21 |rt....LDMFD R13!| 00002a00 2c 7b 50 43 7d 0d 12 ac 05 3a 0d 12 b6 0b 2e 70 |,{PC}....:.....p| 00002a10 69 6c 65 75 70 0d 12 c0 16 4d 4f 56 20 52 35 2c |ileup....MOV R5,| 00002a20 52 33 2c 41 53 4c 20 23 26 30 31 0d 12 ca 0d 43 |R3,ASL #&01....C| 00002a30 4d 50 20 52 35 2c 52 34 0d 12 d4 10 4d 4f 56 47 |MP R5,R4....MOVG| 00002a40 54 20 50 43 2c 52 31 34 0d 12 de 0d 43 4d 50 20 |T PC,R14....CMP | 00002a50 52 35 2c 52 34 0d 12 e8 0d 42 45 51 20 65 71 75 |R5,R4....BEQ equ| 00002a60 61 6c 0d 12 f2 0d 4d 4f 56 20 52 36 2c 52 35 0d |al....MOV R6,R5.| 00002a70 12 fc 12 41 44 44 20 52 37 2c 52 35 2c 23 26 30 |...ADD R7,R5,#&0| 00002a80 31 0d 13 06 19 41 44 44 20 52 36 2c 52 30 2c 52 |1....ADD R6,R0,R| 00002a90 36 2c 41 53 4c 20 23 26 30 33 0d 13 10 19 41 44 |6,ASL #&03....AD| 00002aa0 44 20 52 37 2c 52 30 2c 52 37 2c 41 53 4c 20 23 |D R7,R0,R7,ASL #| 00002ab0 26 30 33 0d 13 1a 1d 45 51 55 44 20 a4 66 70 75 |&03....EQUD .fpu| 00002ac0 28 22 4c 44 46 53 20 46 33 2c 5b 52 36 5d 22 29 |("LDFS F3,[R6]")| 00002ad0 0d 13 24 1d 45 51 55 44 20 a4 66 70 75 28 22 4c |..$.EQUD .fpu("L| 00002ae0 44 46 53 20 46 32 2c 5b 52 37 5d 22 29 0d 13 2e |DFS F2,[R7]")...| 00002af0 1b 45 51 55 44 20 a4 66 70 75 28 22 43 4d 45 53 |.EQUD .fpu("CMES| 00002b00 20 46 33 2c 46 32 22 29 0d 13 38 14 41 44 44 47 | F3,F2")..8.ADDG| 00002b10 54 20 52 35 2c 52 35 2c 23 26 30 31 0d 13 42 19 |T R5,R5,#&01..B.| 00002b20 41 44 44 20 52 36 2c 52 30 2c 52 33 2c 41 53 4c |ADD R6,R0,R3,ASL| 00002b30 20 23 26 30 33 0d 13 4c 19 41 44 44 20 52 37 2c | #&03..L.ADD R7,| 00002b40 52 30 2c 52 35 2c 41 53 4c 20 23 26 30 33 0d 13 |R0,R5,ASL #&03..| 00002b50 56 1d 45 51 55 44 20 a4 66 70 75 28 22 4c 44 46 |V.EQUD .fpu("LDF| 00002b60 53 20 46 33 2c 5b 52 36 5d 22 29 0d 13 60 1d 45 |S F3,[R6]")..`.E| 00002b70 51 55 44 20 a4 66 70 75 28 22 4c 44 46 53 20 46 |QUD .fpu("LDFS F| 00002b80 32 2c 5b 52 37 5d 22 29 0d 13 6a 1b 45 51 55 44 |2,[R7]")..j.EQUD| 00002b90 20 a4 66 70 75 28 22 43 4d 45 53 20 46 33 2c 46 | .fpu("CMES F3,F| 00002ba0 32 22 29 0d 13 74 10 4d 4f 56 4c 45 20 50 43 2c |2")..t.MOVLE PC,| 00002bb0 52 31 34 0d 13 7e 19 41 44 44 20 52 36 2c 52 30 |R14..~.ADD R6,R0| 00002bc0 2c 52 33 2c 41 53 4c 20 23 26 30 33 0d 13 88 19 |,R3,ASL #&03....| 00002bd0 41 44 44 20 52 37 2c 52 30 2c 52 35 2c 41 53 4c |ADD R7,R0,R5,ASL| 00002be0 20 23 26 30 33 0d 13 92 15 4c 44 4d 49 41 20 52 | #&03....LDMIA R| 00002bf0 36 2c 7b 52 39 2d 52 31 30 7d 0d 13 9c 16 4c 44 |6,{R9-R10}....LD| 00002c00 4d 49 41 20 52 37 2c 7b 52 31 31 2d 52 31 32 7d |MIA R7,{R11-R12}| 00002c10 0d 13 a6 15 53 54 4d 49 41 20 52 37 2c 7b 52 39 |....STMIA R7,{R9| 00002c20 2d 52 31 30 7d 0d 13 b0 16 53 54 4d 49 41 20 52 |-R10}....STMIA R| 00002c30 36 2c 7b 52 31 31 2d 52 31 32 7d 0d 13 ba 0d 4d |6,{R11-R12}....M| 00002c40 4f 56 20 52 33 2c 52 35 0d 13 c4 0c 42 20 70 69 |OV R3,R5....B pi| 00002c50 6c 65 75 70 0d 13 ce 05 3a 0d 13 d8 0a 2e 65 71 |leup....:.....eq| 00002c60 75 61 6c 0d 13 e2 19 41 44 44 20 52 36 2c 52 30 |ual....ADD R6,R0| 00002c70 2c 52 33 2c 41 53 4c 20 23 26 30 33 0d 13 ec 19 |,R3,ASL #&03....| 00002c80 41 44 44 20 52 37 2c 52 30 2c 52 34 2c 41 53 4c |ADD R7,R0,R4,ASL| 00002c90 20 23 26 30 33 0d 13 f6 1d 45 51 55 44 20 a4 66 | #&03....EQUD .f| 00002ca0 70 75 28 22 4c 44 46 53 20 46 33 2c 5b 52 36 5d |pu("LDFS F3,[R6]| 00002cb0 22 29 0d 14 00 1d 45 51 55 44 20 a4 66 70 75 28 |")....EQUD .fpu(| 00002cc0 22 4c 44 46 53 20 46 33 2c 5b 52 37 5d 22 29 0d |"LDFS F3,[R7]").| 00002cd0 14 0a 1b 45 51 55 44 20 a4 66 70 75 28 22 43 4d |...EQUD .fpu("CM| 00002ce0 45 53 20 46 33 2c 46 32 22 29 0d 14 14 10 4d 4f |ES F3,F2")....MO| 00002cf0 56 4c 54 20 50 43 2c 52 31 34 0d 14 1e 19 41 44 |VLT PC,R14....AD| 00002d00 44 20 52 36 2c 52 30 2c 52 33 2c 41 53 4c 20 23 |D R6,R0,R3,ASL #| 00002d10 26 30 33 0d 14 28 19 41 44 44 20 52 37 2c 52 30 |&03..(.ADD R7,R0| 00002d20 2c 52 34 2c 41 53 4c 20 23 26 30 33 0d 14 32 15 |,R4,ASL #&03..2.| 00002d30 4c 44 4d 49 41 20 52 36 2c 7b 52 39 2d 52 31 30 |LDMIA R6,{R9-R10| 00002d40 7d 0d 14 3c 16 4c 44 4d 49 41 20 52 37 2c 7b 52 |}..<.LDMIA R7,{R| 00002d50 31 31 2d 52 31 32 7d 0d 14 46 15 53 54 4d 49 41 |11-R12}..F.STMIA| 00002d60 20 52 37 2c 7b 52 39 2d 52 31 30 7d 0d 14 50 16 | R7,{R9-R10}..P.| 00002d70 53 54 4d 49 41 20 52 36 2c 7b 52 31 31 2d 52 31 |STMIA R6,{R11-R1| 00002d80 32 7d 0d 14 5a 0e 4d 4f 56 20 50 43 2c 52 31 34 |2}..Z.MOV PC,R14| 00002d90 0d 14 64 05 3a 0d 14 6e 09 2e 73 6f 72 74 0d 14 |..d.:..n..sort..| 00002da0 78 14 53 54 4d 46 44 20 52 31 33 21 2c 7b 52 31 |x.STMFD R13!,{R1| 00002db0 34 7d 0d 14 82 12 53 55 42 20 52 31 2c 52 31 2c |4}....SUB R1,R1,| 00002dc0 23 26 30 31 0d 14 8c 16 4d 4f 56 20 52 32 2c 52 |#&01....MOV R2,R| 00002dd0 31 2c 41 53 52 20 23 26 30 31 0d 14 96 05 3a 0d |1,ASR #&01....:.| 00002de0 14 a0 0a 2e 75 70 70 65 72 0d 14 aa 0d 4d 4f 56 |....upper....MOV| 00002df0 20 52 33 2c 52 32 0d 14 b4 0d 4d 4f 56 20 52 34 | R3,R2....MOV R4| 00002e00 2c 52 31 0d 14 be 0d 42 4c 20 70 69 6c 65 75 70 |,R1....BL pileup| 00002e10 0d 14 c8 13 53 55 42 53 20 52 32 2c 52 32 2c 23 |....SUBS R2,R2,#| 00002e20 26 30 31 0d 14 d2 0d 42 47 45 20 75 70 70 65 72 |&01....BGE upper| 00002e30 0d 14 dc 0d 4d 4f 56 20 52 32 2c 52 31 0d 14 e6 |....MOV R2,R1...| 00002e40 05 3a 0d 14 f0 0a 2e 6c 6f 77 65 72 0d 14 fa 0d |.:.....lower....| 00002e50 4d 4f 56 20 52 36 2c 52 30 0d 15 04 19 41 44 44 |MOV R6,R0....ADD| 00002e60 20 52 37 2c 52 30 2c 52 32 2c 41 53 4c 20 23 26 | R7,R0,R2,ASL #&| 00002e70 30 33 0d 15 0e 15 4c 44 4d 49 41 20 52 36 2c 7b |03....LDMIA R6,{| 00002e80 52 39 2d 52 31 30 7d 0d 15 18 16 4c 44 4d 49 41 |R9-R10}....LDMIA| 00002e90 20 52 37 2c 7b 52 31 31 2d 52 31 32 7d 0d 15 22 | R7,{R11-R12}.."| 00002ea0 15 53 54 4d 49 41 20 52 37 2c 7b 52 39 2d 52 31 |.STMIA R7,{R9-R1| 00002eb0 30 7d 0d 15 2c 16 53 54 4d 49 41 20 52 36 2c 7b |0}..,.STMIA R6,{| 00002ec0 52 31 31 2d 52 31 32 7d 0d 15 36 12 53 55 42 20 |R11-R12}..6.SUB | 00002ed0 52 34 2c 52 32 2c 23 26 30 31 0d 15 40 0f 4d 4f |R4,R2,#&01..@.MO| 00002ee0 56 20 52 33 2c 23 26 30 30 0d 15 4a 0d 42 4c 20 |V R3,#&00..J.BL | 00002ef0 70 69 6c 65 75 70 0d 15 54 13 53 55 42 53 20 52 |pileup..T.SUBS R| 00002f00 32 2c 52 32 2c 23 26 30 31 0d 15 5e 0d 42 47 54 |2,R2,#&01..^.BGT| 00002f10 20 6c 6f 77 65 72 0d 15 68 13 4c 44 4d 46 44 20 | lower..h.LDMFD | 00002f20 52 31 33 21 2c 7b 50 43 7d 0d 15 72 05 5d 0d 15 |R13!,{PC}..r.]..| 00002f30 7c 05 e1 0d 15 86 05 3a 0d 15 90 0c dd 20 f2 70 ||......:..... .p| 00002f40 6f 69 6e 74 0d 15 9a 0e 5b 20 4f 50 54 20 6f 70 |oint....[ OPT op| 00002f50 74 25 0d 15 a4 1f 5c 20 63 61 6c 63 75 6c 61 74 |t%....\ calculat| 00002f60 65 20 6e 6f 72 6d 61 6c 20 61 74 20 70 6f 69 6e |e normal at poin| 00002f70 74 0d 15 ae 05 3a 0d 15 b8 0a 2e 70 6f 69 6e 74 |t....:.....point| 00002f80 0d 15 c2 10 4c 44 52 20 52 30 2c 69 6e 70 75 74 |....LDR R0,input| 00002f90 0d 15 cc 11 4c 44 52 20 52 31 2c 6f 75 74 70 75 |....LDR R1,outpu| 00002fa0 74 0d 15 d6 1d 45 51 55 44 20 a4 66 70 75 28 22 |t....EQUD .fpu("| 00002fb0 4c 44 46 53 20 46 30 2c 5b 52 30 5d 22 29 0d 15 |LDFS F0,[R0]")..| 00002fc0 e0 20 45 51 55 44 20 a4 66 70 75 28 22 4c 44 46 |. EQUD .fpu("LDF| 00002fd0 53 20 46 31 2c 5b 52 30 2c 23 34 5d 22 29 0d 15 |S F1,[R0,#4]")..| 00002fe0 ea 13 4c 44 52 20 52 32 2c 5b 52 30 2c 23 31 32 |..LDR R2,[R0,#12| 00002ff0 5d 0d 15 f4 13 4c 44 52 20 52 33 2c 5b 52 30 2c |]....LDR R3,[R0,| 00003000 23 32 30 5d 0d 15 fe 13 4c 44 52 20 52 34 2c 5b |#20]....LDR R4,[| 00003010 52 30 2c 23 32 34 5d 0d 16 08 13 4c 44 52 20 52 |R0,#24]....LDR R| 00003020 35 2c 5b 52 30 2c 23 32 38 5d 0d 16 12 0f 4c 44 |5,[R0,#28]....LD| 00003030 52 20 52 36 2c 5b 52 32 5d 0d 16 1c 14 4c 44 52 |R R6,[R2]....LDR| 00003040 20 52 37 2c 5b 52 33 5d 2c 23 26 30 34 0d 16 26 | R7,[R3],#&04..&| 00003050 0d 4d 4f 56 20 52 38 2c 52 36 0d 16 30 0f 4d 4f |.MOV R8,R6..0.MO| 00003060 56 20 52 39 2c 23 26 30 30 0d 16 3a 12 53 55 42 |V R9,#&00..:.SUB| 00003070 20 52 39 2c 52 39 2c 23 26 30 31 0d 16 44 1e 45 | R9,R9,#&01..D.E| 00003080 51 55 44 20 a4 66 70 75 28 22 4d 56 46 53 20 46 |QUD .fpu("MVFS F| 00003090 37 2c 23 31 30 2e 30 22 29 0d 16 4e 21 45 51 55 |7,#10.0")..N!EQU| 000030a0 44 20 a4 66 70 75 28 22 50 4f 57 53 20 46 37 2c |D .fpu("POWS F7,| 000030b0 46 37 2c 23 31 30 2e 30 22 29 0d 16 58 05 3a 0d |F7,#10.0")..X.:.| 000030c0 16 62 0e 2e 70 6f 69 6e 74 62 6c 6e 6b 0d 16 6c |.b..pointblnk..l| 000030d0 13 53 55 42 53 20 52 38 2c 52 38 2c 23 26 30 31 |.SUBS R8,R8,#&01| 000030e0 0d 16 76 11 4d 4f 56 4c 54 20 52 38 2c 23 26 30 |..v.MOVLT R8,#&0| 000030f0 30 0d 16 80 10 42 4c 54 20 66 69 6e 64 65 64 67 |0....BLT findedg| 00003100 65 0d 16 8a 1b 53 54 52 20 52 39 2c 5b 52 34 2c |e....STR R9,[R4,| 00003110 52 38 2c 41 53 4c 20 23 26 30 32 5d 0d 16 94 0f |R8,ASL #&02]....| 00003120 42 20 70 6f 69 6e 74 62 6c 6e 6b 0d 16 9e 05 3a |B pointblnk....:| 00003130 0d 16 a8 0d 2e 66 69 6e 64 65 64 67 65 0d 16 b2 |.....findedge...| 00003140 1a 41 44 44 20 52 31 32 2c 52 33 2c 52 38 2c 41 |.ADD R12,R3,R8,A| 00003150 53 4c 20 23 26 30 33 0d 16 bc 1e 45 51 55 44 20 |SL #&03....EQUD | 00003160 a4 66 70 75 28 22 4c 44 46 53 20 46 32 2c 5b 52 |.fpu("LDFS F2,[R| 00003170 31 32 5d 22 29 0d 16 c6 1b 45 51 55 44 20 a4 66 |12]")....EQUD .f| 00003180 70 75 28 22 43 4d 45 53 20 46 32 2c 46 30 22 29 |pu("CMES F2,F0")| 00003190 0d 16 d0 0f 4d 4f 56 4c 54 20 52 38 2c 52 36 0d |....MOVLT R8,R6.| 000031a0 16 da 0d 42 4c 54 20 64 65 70 74 68 0d 16 e4 16 |...BLT depth....| 000031b0 4c 44 52 20 52 31 30 2c 5b 52 31 32 2c 23 26 30 |LDR R10,[R12,#&0| 000031c0 34 5d 0d 16 ee 18 4d 4f 56 20 52 31 30 2c 52 31 |4]....MOV R10,R1| 000031d0 30 2c 41 53 52 20 23 26 31 30 0d 16 f8 1d 4c 44 |0,ASR #&10....LD| 000031e0 52 20 52 31 31 2c 5b 52 34 2c 52 31 30 2c 41 53 |R R11,[R4,R10,AS| 000031f0 4c 20 23 26 30 32 5d 0d 17 02 0e 43 4d 50 20 52 |L #&02]....CMP R| 00003200 31 31 2c 52 39 0d 17 0c 10 4d 4f 56 4e 45 20 52 |11,R9....MOVNE R| 00003210 31 31 2c 52 39 0d 17 16 0d ec 51 20 52 31 31 2c |11,R9.....Q R11,| 00003220 52 38 0d 17 20 1d 53 54 52 20 52 31 31 2c 5b 52 |R8.. .STR R11,[R| 00003230 34 2c 52 31 30 2c 41 53 4c 20 23 26 30 32 5d 0d |4,R10,ASL #&02].| 00003240 17 2a 12 41 44 44 20 52 38 2c 52 38 2c 23 26 30 |.*.ADD R8,R8,#&0| 00003250 31 0d 17 34 0d 43 4d 50 20 52 38 2c 52 37 0d 17 |1..4.CMP R8,R7..| 00003260 3e 10 42 4c 54 20 66 69 6e 64 65 64 67 65 0d 17 |>.BLT findedge..| 00003270 48 0d 4d 4f 56 20 52 38 2c 52 36 0d 17 52 05 3a |H.MOV R8,R6..R.:| 00003280 0d 17 5c 0a 2e 64 65 70 74 68 0d 17 66 13 53 55 |..\..depth..f.SU| 00003290 42 53 20 52 38 2c 52 38 2c 23 26 30 31 0d 17 70 |BS R8,R8,#&01..p| 000032a0 0c 42 4c 54 20 70 61 69 72 0d 17 7a 1c 4c 44 52 |.BLT pair..z.LDR| 000032b0 20 52 31 30 2c 5b 52 34 2c 52 38 2c 41 53 4c 20 | R10,[R4,R8,ASL | 000032c0 23 26 30 32 5d 0d 17 84 10 43 4d 50 20 52 31 30 |#&02]....CMP R10| 000032d0 2c 23 26 30 30 0d 17 8e 0d 42 4c 54 20 64 65 70 |,#&00....BLT dep| 000032e0 74 68 0d 17 98 1a 41 44 44 20 52 31 32 2c 52 35 |th....ADD R12,R5| 000032f0 2c 52 38 2c 41 53 4c 20 23 26 30 34 0d 17 a2 1e |,R8,ASL #&04....| 00003300 45 51 55 44 20 a4 66 70 75 28 22 4c 44 46 53 20 |EQUD .fpu("LDFS | 00003310 46 32 2c 5b 52 31 32 5d 22 29 0d 17 ac 22 45 51 |F2,[R12]")..."EQ| 00003320 55 44 20 a4 66 70 75 28 22 4c 44 46 53 20 46 33 |UD .fpu("LDFS F3| 00003330 2c 5b 52 31 32 2c 23 30 34 5d 22 29 0d 17 b6 22 |,[R12,#04]")..."| 00003340 45 51 55 44 20 a4 66 70 75 28 22 4c 44 46 53 20 |EQUD .fpu("LDFS | 00003350 46 34 2c 5b 52 31 32 2c 23 30 38 5d 22 29 0d 17 |F4,[R12,#08]")..| 00003360 c0 22 45 51 55 44 20 a4 66 70 75 28 22 4c 44 46 |."EQUD .fpu("LDF| 00003370 53 20 46 35 2c 5b 52 31 32 2c 23 31 32 5d 22 29 |S F5,[R12,#12]")| 00003380 0d 17 ca 1e 45 51 55 44 20 a4 66 70 75 28 22 4d |....EQUD .fpu("M| 00003390 55 46 53 20 46 32 2c 46 32 2c 46 30 22 29 0d 17 |UFS F2,F2,F0")..| 000033a0 d4 1e 45 51 55 44 20 a4 66 70 75 28 22 4d 55 46 |..EQUD .fpu("MUF| 000033b0 53 20 46 33 2c 46 33 2c 46 31 22 29 0d 17 de 1e |S F3,F3,F1")....| 000033c0 45 51 55 44 20 a4 66 70 75 28 22 41 44 46 53 20 |EQUD .fpu("ADFS | 000033d0 46 32 2c 46 32 2c 46 33 22 29 0d 17 e8 1e 45 51 |F2,F2,F3")....EQ| 000033e0 55 44 20 a4 66 70 75 28 22 41 44 46 53 20 46 34 |UD .fpu("ADFS F4| 000033f0 2c 46 34 2c 46 32 22 29 0d 17 f2 1d 45 51 55 44 |,F4,F2")....EQUD| 00003400 20 a4 66 70 75 28 22 43 4d 45 53 20 46 34 2c 23 | .fpu("CMES F4,#| 00003410 30 2e 30 22 29 0d 17 fc 0d 42 45 51 20 64 65 70 |0.0")....BEQ dep| 00003420 74 68 0d 18 06 1e 45 51 55 44 20 a4 66 70 75 28 |th....EQUD .fpu(| 00003430 22 44 56 46 53 20 46 35 2c 46 35 2c 46 34 22 29 |"DVFS F5,F5,F4")| 00003440 0d 18 10 1b 45 51 55 44 20 a4 66 70 75 28 22 4d |....EQUD .fpu("M| 00003450 4e 46 53 20 46 35 2c 46 35 22 29 0d 18 1a 1d 45 |NFS F5,F5")....E| 00003460 51 55 44 20 a4 66 70 75 28 22 43 4d 45 53 20 46 |QUD .fpu("CMES F| 00003470 35 2c 23 30 2e 30 22 29 0d 18 24 1d 45 51 55 44 |5,#0.0")..$.EQUD| 00003480 20 a4 66 70 75 28 22 43 4d 45 47 45 53 20 46 37 | .fpu("CMEGES F7| 00003490 2c 46 35 22 29 0d 18 2e 10 4d 4f 56 47 45 20 52 |,F5")....MOVGE R| 000034a0 39 2c 52 31 30 0d 18 38 1d 45 51 55 44 20 a4 66 |9,R10..8.EQUD .f| 000034b0 70 75 28 22 4d 56 46 47 45 53 20 46 37 2c 46 35 |pu("MVFGES F7,F5| 000034c0 22 29 0d 18 42 0b 42 20 64 65 70 74 68 0d 18 4c |")..B.B depth..L| 000034d0 05 3a 0d 18 56 09 2e 70 61 69 72 0d 18 60 0f 43 |.:..V..pair..`.C| 000034e0 4d 50 20 52 39 2c 23 26 30 30 0d 18 6a 11 53 54 |MP R9,#&00..j.ST| 000034f0 52 4c 54 20 52 39 2c 5b 52 31 5d 0d 18 74 10 4d |RLT R9,[R1]..t.M| 00003500 4f 56 4c 54 20 50 43 2c 52 31 34 0d 18 7e 1a 41 |OVLT PC,R14..~.A| 00003510 44 44 20 52 31 32 2c 52 33 2c 52 39 2c 41 53 4c |DD R12,R3,R9,ASL| 00003520 20 23 26 30 33 0d 18 88 16 4c 44 52 20 52 31 31 | #&03....LDR R11| 00003530 2c 5b 52 31 32 2c 23 26 30 34 5d 0d 18 92 18 4d |,[R12,#&04]....M| 00003540 4f 56 20 52 31 31 2c 52 31 31 2c 41 53 52 20 23 |OV R11,R11,ASR #| 00003550 26 31 30 0d 18 9c 13 41 44 44 20 52 31 30 2c 52 |&10....ADD R10,R| 00003560 39 2c 23 26 30 31 0d 18 a6 05 3a 0d 18 b0 0b 2e |9,#&01....:.....| 00003570 70 61 69 72 6c 70 0d 18 ba 1b 41 44 44 20 52 31 |pairlp....ADD R1| 00003580 32 2c 52 33 2c 52 31 30 2c 41 53 4c 20 23 26 30 |2,R3,R10,ASL #&0| 00003590 33 0d 18 c4 15 4c 44 52 20 52 38 2c 5b 52 31 32 |3....LDR R8,[R12| 000035a0 2c 23 26 30 34 5d 0d 18 ce 16 4d 4f 56 20 52 38 |,#&04]....MOV R8| 000035b0 2c 52 38 2c 41 53 52 20 23 26 31 30 0d 18 d8 0e |,R8,ASR #&10....| 000035c0 43 4d 50 20 52 38 2c 52 31 31 0d 18 e2 0e 42 45 |CMP R8,R11....BE| 000035d0 51 20 64 65 74 65 63 74 0d 18 ec 14 41 44 44 20 |Q detect....ADD | 000035e0 52 31 30 2c 52 31 30 2c 23 26 30 31 0d 18 f6 0e |R10,R10,#&01....| 000035f0 43 4d 50 20 52 31 30 2c 52 37 0d 19 00 0e 42 4c |CMP R10,R7....BL| 00003600 54 20 70 61 69 72 6c 70 0d 19 0a 10 4d 4f 56 20 |T pairlp....MOV | 00003610 52 31 30 2c 23 26 30 30 0d 19 14 14 53 55 42 20 |R10,#&00....SUB | 00003620 52 31 30 2c 52 31 30 2c 23 26 30 31 0d 19 1e 10 |R10,R10,#&01....| 00003630 53 54 52 20 52 31 30 2c 5b 52 31 5d 0d 19 28 0e |STR R10,[R1]..(.| 00003640 4d 4f 56 20 50 43 2c 52 31 34 0d 19 32 05 3a 0d |MOV PC,R14..2.:.| 00003650 19 3c 0b 2e 64 65 74 65 63 74 0d 19 46 13 41 44 |.<..detect..F.AD| 00003660 44 20 52 31 32 2c 52 32 2c 23 26 30 34 0d 19 50 |D R12,R2,#&04..P| 00003670 1e 4c 44 52 20 52 31 32 2c 5b 52 31 32 2c 52 31 |.LDR R12,[R12,R1| 00003680 31 2c 41 53 4c 20 23 26 30 32 5d 0d 19 5a 12 4c |1,ASL #&02]..Z.L| 00003690 44 52 20 52 32 2c 5b 52 30 2c 23 38 5d 0d 19 64 |DR R2,[R0,#8]..d| 000036a0 13 4c 44 52 20 52 34 2c 5b 52 30 2c 23 31 36 5d |.LDR R4,[R0,#16]| 000036b0 0d 19 6e 13 4c 44 52 20 52 35 2c 5b 52 30 2c 23 |..n.LDR R5,[R0,#| 000036c0 33 32 5d 0d 19 78 11 41 44 44 20 52 34 2c 52 34 |32]..x.ADD R4,R4| 000036d0 2c 52 31 32 0d 19 82 14 4c 44 52 20 52 36 2c 5b |,R12....LDR R6,[| 000036e0 52 34 5d 2c 23 26 30 38 0d 19 8c 05 3a 0d 19 96 |R4],#&08....:...| 000036f0 1a 41 44 44 20 52 31 32 2c 52 33 2c 52 39 2c 41 |.ADD R12,R3,R9,A| 00003700 53 4c 20 23 26 30 33 0d 19 a0 1e 45 51 55 44 20 |SL #&03....EQUD | 00003710 a4 66 70 75 28 22 4c 44 46 53 20 46 32 2c 5b 52 |.fpu("LDFS F2,[R| 00003720 31 32 5d 22 29 0d 19 aa 15 4c 44 52 20 52 39 2c |12]")....LDR R9,| 00003730 5b 52 31 32 2c 23 26 30 34 5d 0d 19 b4 1b 41 44 |[R12,#&04]....AD| 00003740 44 20 52 31 32 2c 52 33 2c 52 31 30 2c 41 53 4c |D R12,R3,R10,ASL| 00003750 20 23 26 30 33 0d 19 be 1e 45 51 55 44 20 a4 66 | #&03....EQUD .f| 00003760 70 75 28 22 4c 44 46 53 20 46 33 2c 5b 52 31 32 |pu("LDFS F3,[R12| 00003770 5d 22 29 0d 19 c8 16 4c 44 52 20 52 31 30 2c 5b |]")....LDR R10,[| 00003780 52 31 32 2c 23 26 30 34 5d 0d 19 d2 29 4d 4f 56 |R12,#&04]...)MOV| 00003790 20 52 39 2c 52 39 2c 41 53 4c 20 23 26 31 30 3a | R9,R9,ASL #&10:| 000037a0 4d 4f 56 20 52 39 2c 52 39 2c 4c 53 52 20 23 26 |MOV R9,R9,LSR #&| 000037b0 31 30 0d 19 dc 2d 4d 4f 56 20 52 31 30 2c 52 31 |10...-MOV R10,R1| 000037c0 30 2c 41 53 4c 20 23 26 31 30 3a 4d 4f 56 20 52 |0,ASL #&10:MOV R| 000037d0 31 30 2c 52 31 30 2c 4c 53 52 20 23 26 31 30 0d |10,R10,LSR #&10.| 000037e0 19 e6 05 3a 0d 19 f0 1b 4c 44 52 20 52 37 2c 5b |...:....LDR R7,[| 000037f0 52 34 2c 52 39 2c 41 53 4c 20 23 26 30 32 5d 0d |R4,R9,ASL #&02].| 00003800 19 fa 12 53 55 42 20 52 39 2c 52 39 2c 23 26 30 |...SUB R9,R9,#&0| 00003810 31 0d 1a 04 1b 4c 44 52 20 52 39 2c 5b 52 34 2c |1....LDR R9,[R4,| 00003820 52 39 2c 41 53 4c 20 23 26 30 32 5d 0d 1a 0e 1c |R9,ASL #&02]....| 00003830 4c 44 52 20 52 38 2c 5b 52 34 2c 52 31 30 2c 41 |LDR R8,[R4,R10,A| 00003840 53 4c 20 23 26 30 32 5d 0d 1a 18 14 53 55 42 20 |SL #&02]....SUB | 00003850 52 31 30 2c 52 31 30 2c 23 26 30 31 0d 1a 22 1d |R10,R10,#&01..".| 00003860 4c 44 52 20 52 31 30 2c 5b 52 34 2c 52 31 30 2c |LDR R10,[R4,R10,| 00003870 41 53 4c 20 23 26 30 32 5d 0d 1a 2c 05 3a 0d 1a |ASL #&02]..,.:..| 00003880 36 12 80 53 20 52 31 32 2c 52 36 2c 23 26 30 32 |6..S R12,R6,#&02| 00003890 0d 1a 40 12 53 54 52 4e 45 20 52 31 31 2c 5b 52 |..@.STRNE R11,[R| 000038a0 31 5d 0d 1a 4a 15 53 54 52 4e 45 20 52 37 2c 5b |1]..J.STRNE R7,[| 000038b0 52 31 2c 23 31 36 5d 0d 1a 54 15 53 54 52 4e 45 |R1,#16]..T.STRNE| 000038c0 20 52 38 2c 5b 52 31 2c 23 32 30 5d 0d 1a 5e 15 | R8,[R1,#20]..^.| 000038d0 53 54 52 4e 45 20 52 39 2c 5b 52 31 2c 23 32 34 |STRNE R9,[R1,#24| 000038e0 5d 0d 1a 68 16 53 54 52 4e 45 20 52 31 30 2c 5b |]..h.STRNE R10,[| 000038f0 52 31 2c 23 32 38 5d 0d 1a 72 10 4d 4f 56 4e 45 |R1,#28]..r.MOVNE| 00003900 20 50 43 2c 52 31 34 0d 1a 7c 05 3a 0d 1a 86 1e | PC,R14..|.:....| 00003910 45 51 55 44 20 a4 66 70 75 28 22 53 55 46 53 20 |EQUD .fpu("SUFS | 00003920 46 34 2c 46 32 2c 46 33 22 29 0d 1a 90 1e 45 51 |F4,F2,F3")....EQ| 00003930 55 44 20 a4 66 70 75 28 22 53 55 46 53 20 46 35 |UD .fpu("SUFS F5| 00003940 2c 46 30 2c 46 33 22 29 0d 1a 9a 1d 45 51 55 44 |,F0,F3")....EQUD| 00003950 20 a4 66 70 75 28 22 43 4d 45 53 20 46 34 2c 23 | .fpu("CMES F4,#| 00003960 30 2e 30 22 29 0d 1a a4 20 45 51 55 44 20 a4 66 |0.0")... EQUD .f| 00003970 70 75 28 22 44 56 46 4e 45 53 20 46 37 2c 46 35 |pu("DVFNES F7,F5| 00003980 2c 46 34 22 29 0d 1a ae 1f 45 51 55 44 20 a4 66 |,F4")....EQUD .f| 00003990 70 75 28 22 4d 56 46 45 51 53 20 46 37 2c 23 30 |pu("MVFEQS F7,#0| 000039a0 2e 30 22 29 0d 1a b8 05 3a 0d 1a c2 1a 41 44 44 |.0")....:....ADD| 000039b0 20 52 31 32 2c 52 37 2c 52 37 2c 41 53 4c 20 23 | R12,R7,R7,ASL #| 000039c0 26 30 31 0d 1a cc 1b 41 44 44 20 52 31 32 2c 52 |&01....ADD R12,R| 000039d0 32 2c 52 31 32 2c 41 53 4c 20 23 26 30 32 0d 1a |2,R12,ASL #&02..| 000039e0 d6 22 45 51 55 44 20 a4 66 70 75 28 22 4c 44 46 |."EQUD .fpu("LDF| 000039f0 53 20 46 34 2c 5b 52 31 32 2c 23 30 34 5d 22 29 |S F4,[R12,#04]")| 00003a00 0d 1a e0 22 45 51 55 44 20 a4 66 70 75 28 22 4c |..."EQUD .fpu("L| 00003a10 44 46 53 20 46 35 2c 5b 52 31 32 2c 23 30 38 5d |DFS F5,[R12,#08]| 00003a20 22 29 0d 1a ea 1a 41 44 44 20 52 31 32 2c 52 39 |")....ADD R12,R9| 00003a30 2c 52 39 2c 41 53 4c 20 23 26 30 31 0d 1a f4 1b |,R9,ASL #&01....| 00003a40 41 44 44 20 52 31 32 2c 52 32 2c 52 31 32 2c 41 |ADD R12,R2,R12,A| 00003a50 53 4c 20 23 26 30 32 0d 1a fe 22 45 51 55 44 20 |SL #&02..."EQUD | 00003a60 a4 66 70 75 28 22 4c 44 46 53 20 46 36 2c 5b 52 |.fpu("LDFS F6,[R| 00003a70 31 32 2c 23 30 34 5d 22 29 0d 1b 08 1e 45 51 55 |12,#04]")....EQU| 00003a80 44 20 a4 66 70 75 28 22 53 55 46 53 20 46 34 2c |D .fpu("SUFS F4,| 00003a90 46 34 2c 46 36 22 29 0d 1b 12 1e 45 51 55 44 20 |F4,F6")....EQUD | 00003aa0 a4 66 70 75 28 22 53 55 46 53 20 46 32 2c 46 32 |.fpu("SUFS F2,F2| 00003ab0 2c 46 36 22 29 0d 1b 1c 22 45 51 55 44 20 a4 66 |,F6")..."EQUD .f| 00003ac0 70 75 28 22 4c 44 46 53 20 46 36 2c 5b 52 31 32 |pu("LDFS F6,[R12| 00003ad0 2c 23 30 38 5d 22 29 0d 1b 26 1e 45 51 55 44 20 |,#08]")..&.EQUD | 00003ae0 a4 66 70 75 28 22 53 55 46 53 20 46 35 2c 46 35 |.fpu("SUFS F5,F5| 00003af0 2c 46 36 22 29 0d 1b 30 1e 45 51 55 44 20 a4 66 |,F6")..0.EQUD .f| 00003b00 70 75 28 22 53 55 46 53 20 46 36 2c 46 31 2c 46 |pu("SUFS F6,F1,F| 00003b10 36 22 29 0d 1b 3a 1e 45 51 55 44 20 a4 66 70 75 |6")..:.EQUD .fpu| 00003b20 28 22 4d 55 46 53 20 46 34 2c 46 34 2c 46 34 22 |("MUFS F4,F4,F4"| 00003b30 29 0d 1b 44 1e 45 51 55 44 20 a4 66 70 75 28 22 |)..D.EQUD .fpu("| 00003b40 4d 55 46 53 20 46 35 2c 46 35 2c 46 35 22 29 0d |MUFS F5,F5,F5").| 00003b50 1b 4e 1e 45 51 55 44 20 a4 66 70 75 28 22 41 44 |.N.EQUD .fpu("AD| 00003b60 46 53 20 46 34 2c 46 34 2c 46 35 22 29 0d 1b 58 |FS F4,F4,F5")..X| 00003b70 1b 45 51 55 44 20 a4 66 70 75 28 22 53 51 54 53 |.EQUD .fpu("SQTS| 00003b80 20 46 34 2c 46 34 22 29 0d 1b 62 1e 45 51 55 44 | F4,F4")..b.EQUD| 00003b90 20 a4 66 70 75 28 22 4d 55 46 53 20 46 36 2c 46 | .fpu("MUFS F6,F| 00003ba0 36 2c 46 36 22 29 0d 1b 6c 1e 45 51 55 44 20 a4 |6,F6")..l.EQUD .| 00003bb0 66 70 75 28 22 4d 55 46 53 20 46 32 2c 46 32 2c |fpu("MUFS F2,F2,| 00003bc0 46 32 22 29 0d 1b 76 1e 45 51 55 44 20 a4 66 70 |F2")..v.EQUD .fp| 00003bd0 75 28 22 41 44 46 53 20 46 32 2c 46 32 2c 46 36 |u("ADFS F2,F2,F6| 00003be0 22 29 0d 1b 80 1b 45 51 55 44 20 a4 66 70 75 28 |")....EQUD .fpu(| 00003bf0 22 53 51 54 53 20 46 32 2c 46 32 22 29 0d 1b 8a |"SQTS F2,F2")...| 00003c00 1d 45 51 55 44 20 a4 66 70 75 28 22 43 4d 45 53 |.EQUD .fpu("CMES| 00003c10 20 46 34 2c 23 30 2e 30 22 29 0d 1b 94 20 45 51 | F4,#0.0")... EQ| 00003c20 55 44 20 a4 66 70 75 28 22 44 56 46 4e 45 53 20 |UD .fpu("DVFNES | 00003c30 46 32 2c 46 32 2c 46 34 22 29 0d 1b 9e 1f 45 51 |F2,F2,F4")....EQ| 00003c40 55 44 20 a4 66 70 75 28 22 4d 56 46 45 51 53 20 |UD .fpu("MVFEQS | 00003c50 46 32 2c 23 30 2e 30 22 29 0d 1b a8 05 3a 0d 1b |F2,#0.0")....:..| 00003c60 b2 1a 41 44 44 20 52 31 32 2c 52 38 2c 52 38 2c |..ADD R12,R8,R8,| 00003c70 41 53 4c 20 23 26 30 31 0d 1b bc 1b 41 44 44 20 |ASL #&01....ADD | 00003c80 52 31 32 2c 52 32 2c 52 31 32 2c 41 53 4c 20 23 |R12,R2,R12,ASL #| 00003c90 26 30 32 0d 1b c6 22 45 51 55 44 20 a4 66 70 75 |&02..."EQUD .fpu| 00003ca0 28 22 4c 44 46 53 20 46 34 2c 5b 52 31 32 2c 23 |("LDFS F4,[R12,#| 00003cb0 30 34 5d 22 29 0d 1b d0 22 45 51 55 44 20 a4 66 |04]")..."EQUD .f| 00003cc0 70 75 28 22 4c 44 46 53 20 46 35 2c 5b 52 31 32 |pu("LDFS F5,[R12| 00003cd0 2c 23 30 38 5d 22 29 0d 1b da 1c 41 44 44 20 52 |,#08]")....ADD R| 00003ce0 31 32 2c 52 31 30 2c 52 31 30 2c 41 53 4c 20 23 |12,R10,R10,ASL #| 00003cf0 26 30 31 0d 1b e4 1b 41 44 44 20 52 31 32 2c 52 |&01....ADD R12,R| 00003d00 32 2c 52 31 32 2c 41 53 4c 20 23 26 30 32 0d 1b |2,R12,ASL #&02..| 00003d10 ee 22 45 51 55 44 20 a4 66 70 75 28 22 4c 44 46 |."EQUD .fpu("LDF| 00003d20 53 20 46 36 2c 5b 52 31 32 2c 23 30 34 5d 22 29 |S F6,[R12,#04]")| 00003d30 0d 1b f8 1e 45 51 55 44 20 a4 66 70 75 28 22 53 |....EQUD .fpu("S| 00003d40 55 46 53 20 46 34 2c 46 34 2c 46 36 22 29 0d 1c |UFS F4,F4,F6")..| 00003d50 02 1e 45 51 55 44 20 a4 66 70 75 28 22 53 55 46 |..EQUD .fpu("SUF| 00003d60 53 20 46 33 2c 46 33 2c 46 36 22 29 0d 1c 0c 22 |S F3,F3,F6")..."| 00003d70 45 51 55 44 20 a4 66 70 75 28 22 4c 44 46 53 20 |EQUD .fpu("LDFS | 00003d80 46 36 2c 5b 52 31 32 2c 23 30 38 5d 22 29 0d 1c |F6,[R12,#08]")..| 00003d90 16 1e 45 51 55 44 20 a4 66 70 75 28 22 53 55 46 |..EQUD .fpu("SUF| 00003da0 53 20 46 35 2c 46 35 2c 46 36 22 29 0d 1c 20 1e |S F5,F5,F6").. .| 00003db0 45 51 55 44 20 a4 66 70 75 28 22 53 55 46 53 20 |EQUD .fpu("SUFS | 00003dc0 46 36 2c 46 31 2c 46 36 22 29 0d 1c 2a 1e 45 51 |F6,F1,F6")..*.EQ| 00003dd0 55 44 20 a4 66 70 75 28 22 4d 55 46 53 20 46 34 |UD .fpu("MUFS F4| 00003de0 2c 46 34 2c 46 34 22 29 0d 1c 34 1e 45 51 55 44 |,F4,F4")..4.EQUD| 00003df0 20 a4 66 70 75 28 22 4d 55 46 53 20 46 35 2c 46 | .fpu("MUFS F5,F| 00003e00 35 2c 46 35 22 29 0d 1c 3e 1e 45 51 55 44 20 a4 |5,F5")..>.EQUD .| 00003e10 66 70 75 28 22 41 44 46 53 20 46 34 2c 46 34 2c |fpu("ADFS F4,F4,| 00003e20 46 35 22 29 0d 1c 48 1b 45 51 55 44 20 a4 66 70 |F5")..H.EQUD .fp| 00003e30 75 28 22 53 51 54 53 20 46 34 2c 46 34 22 29 0d |u("SQTS F4,F4").| 00003e40 1c 52 1e 45 51 55 44 20 a4 66 70 75 28 22 4d 55 |.R.EQUD .fpu("MU| 00003e50 46 53 20 46 36 2c 46 36 2c 46 36 22 29 0d 1c 5c |FS F6,F6,F6")..\| 00003e60 1e 45 51 55 44 20 a4 66 70 75 28 22 4d 55 46 53 |.EQUD .fpu("MUFS| 00003e70 20 46 33 2c 46 33 2c 46 33 22 29 0d 1c 66 1e 45 | F3,F3,F3")..f.E| 00003e80 51 55 44 20 a4 66 70 75 28 22 41 44 46 53 20 46 |QUD .fpu("ADFS F| 00003e90 33 2c 46 33 2c 46 36 22 29 0d 1c 70 1b 45 51 55 |3,F3,F6")..p.EQU| 00003ea0 44 20 a4 66 70 75 28 22 53 51 54 53 20 46 33 2c |D .fpu("SQTS F3,| 00003eb0 46 33 22 29 0d 1c 7a 1d 45 51 55 44 20 a4 66 70 |F3")..z.EQUD .fp| 00003ec0 75 28 22 43 4d 45 53 20 46 34 2c 23 30 2e 30 22 |u("CMES F4,#0.0"| 00003ed0 29 0d 1c 84 20 45 51 55 44 20 a4 66 70 75 28 22 |)... EQUD .fpu("| 00003ee0 44 56 46 4e 45 53 20 46 33 2c 46 33 2c 46 34 22 |DVFNES F3,F3,F4"| 00003ef0 29 0d 1c 8e 1f 45 51 55 44 20 a4 66 70 75 28 22 |)....EQUD .fpu("| 00003f00 4d 56 46 45 51 53 20 46 33 2c 23 30 2e 30 22 29 |MVFEQS F3,#0.0")| 00003f10 0d 1c 98 05 3a 0d 1c a2 12 80 53 20 52 31 32 2c |....:.....S R12,| 00003f20 52 36 2c 23 26 30 31 0d 1c ac 12 53 54 52 4e 45 |R6,#&01....STRNE| 00003f30 20 52 31 31 2c 5b 52 31 5d 0d 1c b6 15 53 54 52 | R11,[R1]....STR| 00003f40 4e 45 20 52 37 2c 5b 52 31 2c 23 31 36 5d 0d 1c |NE R7,[R1,#16]..| 00003f50 c0 15 53 54 52 4e 45 20 52 38 2c 5b 52 31 2c 23 |..STRNE R8,[R1,#| 00003f60 32 30 5d 0d 1c ca 15 53 54 52 4e 45 20 52 39 2c |20]....STRNE R9,| 00003f70 5b 52 31 2c 23 32 34 5d 0d 1c d4 16 53 54 52 4e |[R1,#24]....STRN| 00003f80 45 20 52 31 30 2c 5b 52 31 2c 23 32 38 5d 0d 1c |E R10,[R1,#28]..| 00003f90 de 23 45 51 55 44 20 a4 66 70 75 28 22 53 54 46 |.#EQUD .fpu("STF| 00003fa0 4e 45 53 20 46 32 2c 5b 52 31 2c 23 33 32 5d 22 |NES F2,[R1,#32]"| 00003fb0 29 0d 1c e8 23 45 51 55 44 20 a4 66 70 75 28 22 |)...#EQUD .fpu("| 00003fc0 53 54 46 4e 45 53 20 46 33 2c 5b 52 31 2c 23 33 |STFNES F3,[R1,#3| 00003fd0 36 5d 22 29 0d 1c f2 23 45 51 55 44 20 a4 66 70 |6]")...#EQUD .fp| 00003fe0 75 28 22 53 54 46 4e 45 53 20 46 37 2c 5b 52 31 |u("STFNES F7,[R1| 00003ff0 2c 23 34 30 5d 22 29 0d 1c fc 10 4d 4f 56 4e 45 |,#40]")....MOVNE| 00004000 20 50 43 2c 52 31 34 0d 1d 06 05 3a 0d 1d 10 05 | PC,R14....:....| 00004010 5d 0d 1d 1a 11 e3 20 6e 6d 61 73 25 3d 30 20 b8 |]..... nmas%=0 .| 00004020 20 32 0d 1d 24 0e 5b 20 4f 50 54 20 6f 70 74 25 | 2..$.[ OPT opt%| 00004030 0d 1d 2e 1a 41 44 44 20 52 31 32 2c 52 37 2c 52 |....ADD R12,R7,R| 00004040 37 2c 41 53 4c 20 23 26 30 31 0d 1d 38 1b 41 44 |7,ASL #&01..8.AD| 00004050 44 20 52 31 32 2c 52 35 2c 52 31 32 2c 41 53 4c |D R12,R5,R12,ASL| 00004060 20 23 26 30 32 0d 1d 42 2e 45 51 55 44 20 a4 66 | #&02..B.EQUD .f| 00004070 70 75 28 22 4c 44 46 53 20 46 34 2c 5b 52 31 32 |pu("LDFS F4,[R12| 00004080 2c 23 22 2b c3 28 34 2a 6e 6d 61 73 25 29 2b 22 |,#"+.(4*nmas%)+"| 00004090 5d 22 29 0d 1d 4c 1a 41 44 44 20 52 31 32 2c 52 |]")..L.ADD R12,R| 000040a0 39 2c 52 39 2c 41 53 4c 20 23 26 30 31 0d 1d 56 |9,R9,ASL #&01..V| 000040b0 1b 41 44 44 20 52 31 32 2c 52 35 2c 52 31 32 2c |.ADD R12,R5,R12,| 000040c0 41 53 4c 20 23 26 30 32 0d 1d 60 2e 45 51 55 44 |ASL #&02..`.EQUD| 000040d0 20 a4 66 70 75 28 22 4c 44 46 53 20 46 35 2c 5b | .fpu("LDFS F5,[| 000040e0 52 31 32 2c 23 22 2b c3 28 34 2a 6e 6d 61 73 25 |R12,#"+.(4*nmas%| 000040f0 29 2b 22 5d 22 29 0d 1d 6a 1b 45 51 55 44 20 a4 |)+"]")..j.EQUD .| 00004100 66 70 75 28 22 43 4d 45 53 20 46 34 2c 46 35 22 |fpu("CMES F4,F5"| 00004110 29 0d 1d 74 20 45 51 55 44 20 a4 66 70 75 28 22 |)..t EQUD .fpu("| 00004120 4d 55 46 4e 45 53 20 46 34 2c 46 34 2c 46 32 22 |MUFNES F4,F4,F2"| 00004130 29 0d 1d 7e 22 45 51 55 44 20 a4 66 70 75 28 22 |)..~"EQUD .fpu("| 00004140 52 53 46 4e 45 53 20 46 32 2c 46 32 2c 23 31 2e |RSFNES F2,F2,#1.| 00004150 30 22 29 0d 1d 88 20 45 51 55 44 20 a4 66 70 75 |0")... EQUD .fpu| 00004160 28 22 4d 55 46 4e 45 53 20 46 35 2c 46 35 2c 46 |("MUFNES F5,F5,F| 00004170 32 22 29 0d 1d 92 20 45 51 55 44 20 a4 66 70 75 |2")... EQUD .fpu| 00004180 28 22 41 44 46 4e 45 53 20 46 34 2c 46 34 2c 46 |("ADFNES F4,F4,F| 00004190 35 22 29 0d 1d 9c 22 45 51 55 44 20 a4 66 70 75 |5")..."EQUD .fpu| 000041a0 28 22 52 53 46 4e 45 53 20 46 32 2c 46 32 2c 23 |("RSFNES F2,F2,#| 000041b0 31 2e 30 22 29 0d 1d a6 1a 41 44 44 20 52 31 32 |1.0")....ADD R12| 000041c0 2c 52 38 2c 52 38 2c 41 53 4c 20 23 26 30 31 0d |,R8,R8,ASL #&01.| 000041d0 1d b0 1b 41 44 44 20 52 31 32 2c 52 35 2c 52 31 |...ADD R12,R5,R1| 000041e0 32 2c 41 53 4c 20 23 26 30 32 0d 1d ba 2e 45 51 |2,ASL #&02....EQ| 000041f0 55 44 20 a4 66 70 75 28 22 4c 44 46 53 20 46 35 |UD .fpu("LDFS F5| 00004200 2c 5b 52 31 32 2c 23 22 2b c3 28 34 2a 6e 6d 61 |,[R12,#"+.(4*nma| 00004210 73 25 29 2b 22 5d 22 29 0d 1d c4 1c 41 44 44 20 |s%)+"]")....ADD | 00004220 52 31 32 2c 52 31 30 2c 52 31 30 2c 41 53 4c 20 |R12,R10,R10,ASL | 00004230 23 26 30 31 0d 1d ce 1b 41 44 44 20 52 31 32 2c |#&01....ADD R12,| 00004240 52 35 2c 52 31 32 2c 41 53 4c 20 23 26 30 32 0d |R5,R12,ASL #&02.| 00004250 1d d8 2e 45 51 55 44 20 a4 66 70 75 28 22 4c 44 |...EQUD .fpu("LD| 00004260 46 53 20 46 36 2c 5b 52 31 32 2c 23 22 2b c3 28 |FS F6,[R12,#"+.(| 00004270 34 2a 6e 6d 61 73 25 29 2b 22 5d 22 29 0d 1d e2 |4*nmas%)+"]")...| 00004280 1b 45 51 55 44 20 a4 66 70 75 28 22 43 4d 45 53 |.EQUD .fpu("CMES| 00004290 20 46 35 2c 46 36 22 29 0d 1d ec 20 45 51 55 44 | F5,F6")... EQUD| 000042a0 20 a4 66 70 75 28 22 4d 55 46 4e 45 53 20 46 35 | .fpu("MUFNES F5| 000042b0 2c 46 35 2c 46 33 22 29 0d 1d f6 22 45 51 55 44 |,F5,F3")..."EQUD| 000042c0 20 a4 66 70 75 28 22 52 53 46 4e 45 53 20 46 33 | .fpu("RSFNES F3| 000042d0 2c 46 33 2c 23 31 2e 30 22 29 0d 1e 00 20 45 51 |,F3,#1.0")... EQ| 000042e0 55 44 20 a4 66 70 75 28 22 4d 55 46 4e 45 53 20 |UD .fpu("MUFNES | 000042f0 46 36 2c 46 36 2c 46 33 22 29 0d 1e 0a 20 45 51 |F6,F6,F3")... EQ| 00004300 55 44 20 a4 66 70 75 28 22 41 44 46 4e 45 53 20 |UD .fpu("ADFNES | 00004310 46 35 2c 46 35 2c 46 36 22 29 0d 1e 14 22 45 51 |F5,F5,F6")..."EQ| 00004320 55 44 20 a4 66 70 75 28 22 52 53 46 4e 45 53 20 |UD .fpu("RSFNES | 00004330 46 33 2c 46 33 2c 23 31 2e 30 22 29 0d 1e 1e 1b |F3,F3,#1.0")....| 00004340 45 51 55 44 20 a4 66 70 75 28 22 43 4d 45 53 20 |EQUD .fpu("CMES | 00004350 46 34 2c 46 35 22 29 0d 1e 28 20 45 51 55 44 20 |F4,F5")..( EQUD | 00004360 a4 66 70 75 28 22 4d 55 46 4e 45 53 20 46 34 2c |.fpu("MUFNES F4,| 00004370 46 34 2c 46 37 22 29 0d 1e 32 22 45 51 55 44 20 |F4,F7")..2"EQUD | 00004380 a4 66 70 75 28 22 52 53 46 4e 45 53 20 46 37 2c |.fpu("RSFNES F7,| 00004390 46 37 2c 23 31 2e 30 22 29 0d 1e 3c 20 45 51 55 |F7,#1.0")..< EQU| 000043a0 44 20 a4 66 70 75 28 22 4d 55 46 4e 45 53 20 46 |D .fpu("MUFNES F| 000043b0 35 2c 46 35 2c 46 37 22 29 0d 1e 46 20 45 51 55 |5,F5,F7")..F EQU| 000043c0 44 20 a4 66 70 75 28 22 41 44 46 4e 45 53 20 46 |D .fpu("ADFNES F| 000043d0 34 2c 46 34 2c 46 35 22 29 0d 1e 50 22 45 51 55 |4,F4,F5")..P"EQU| 000043e0 44 20 a4 66 70 75 28 22 52 53 46 4e 45 53 20 46 |D .fpu("RSFNES F| 000043f0 37 2c 46 37 2c 23 31 2e 30 22 29 0d 1e 5a 2f 45 |7,F7,#1.0")..Z/E| 00004400 51 55 44 20 a4 66 70 75 28 22 53 54 46 53 20 46 |QUD .fpu("STFS F| 00004410 34 2c 5b 52 31 2c 23 22 2b c3 28 34 2a 6e 6d 61 |4,[R1,#"+.(4*nma| 00004420 73 25 2b 34 29 2b 22 5d 22 29 0d 1e 64 05 5d 0d |s%+4)+"]")..d.].| 00004430 1e 6e 0b ed 20 6e 6d 61 73 25 0d 1e 78 0e 5b 20 |.n.. nmas%..x.[ | 00004440 4f 50 54 20 6f 70 74 25 0d 1e 82 10 53 54 52 20 |OPT opt%....STR | 00004450 52 31 31 2c 5b 52 31 5d 0d 1e 8c 13 53 54 52 20 |R11,[R1]....STR | 00004460 52 37 2c 5b 52 31 2c 23 31 36 5d 0d 1e 96 13 53 |R7,[R1,#16]....S| 00004470 54 52 20 52 38 2c 5b 52 31 2c 23 32 30 5d 0d 1e |TR R8,[R1,#20]..| 00004480 a0 13 53 54 52 20 52 39 2c 5b 52 31 2c 23 32 34 |..STR R9,[R1,#24| 00004490 5d 0d 1e aa 14 53 54 52 20 52 31 30 2c 5b 52 31 |]....STR R10,[R1| 000044a0 2c 23 32 38 5d 0d 1e b4 21 45 51 55 44 20 a4 66 |,#28]...!EQUD .f| 000044b0 70 75 28 22 53 54 46 53 20 46 32 2c 5b 52 31 2c |pu("STFS F2,[R1,| 000044c0 23 33 32 5d 22 29 0d 1e be 21 45 51 55 44 20 a4 |#32]")...!EQUD .| 000044d0 66 70 75 28 22 53 54 46 53 20 46 33 2c 5b 52 31 |fpu("STFS F3,[R1| 000044e0 2c 23 33 36 5d 22 29 0d 1e c8 21 45 51 55 44 20 |,#36]")...!EQUD | 000044f0 a4 66 70 75 28 22 53 54 46 53 20 46 37 2c 5b 52 |.fpu("STFS F7,[R| 00004500 31 2c 23 34 30 5d 22 29 0d 1e d2 0e 4d 4f 56 20 |1,#40]")....MOV | 00004510 50 43 2c 52 31 34 0d 1e dc 05 5d 0d 1e e6 05 e1 |PC,R14....].....| 00004520 0d 1e f0 05 3a 0d 1e fa 0d dd 20 f2 6e 75 6d 62 |....:..... .numb| 00004530 65 72 0d 1f 04 0e 5b 20 4f 50 54 20 6f 70 74 25 |er....[ OPT opt%| 00004540 0d 1f 0e 0d 2e 62 61 73 74 6f 66 70 75 0d 1f 18 |.....bastofpu...| 00004550 11 4c 44 52 20 52 30 2c 6e 75 6d 62 65 72 0d 1f |.LDR R0,number..| 00004560 22 14 4c 44 52 42 20 52 31 2c 6e 75 6d 62 65 72 |".LDRB R1,number| 00004570 2b 34 0d 1f 2c 0f 43 4d 50 20 52 30 2c 23 26 30 |+4..,.CMP R0,#&0| 00004580 30 0d 1f 36 11 43 4d 50 45 51 20 52 31 2c 23 26 |0..6.CMPEQ R1,#&| 00004590 30 30 0d 1f 40 12 4c 44 52 45 51 20 52 31 32 2c |00..@.LDREQ R12,| 000045a0 5b 52 39 5d 0d 1f 4a 12 53 54 52 45 51 20 52 30 |[R9]..J.STREQ R0| 000045b0 2c 5b 52 31 32 5d 0d 1f 54 0d ec 51 20 50 43 2c |,[R12]..T..Q PC,| 000045c0 52 31 34 0d 1f 5e 15 4d 4f 56 20 52 32 2c 23 26 |R14..^.MOV R2,#&| 000045d0 38 30 30 30 30 30 30 30 0d 1f 68 0e 80 20 52 33 |80000000..h.. R3| 000045e0 2c 52 30 2c 52 32 0d 1f 72 12 53 55 42 20 52 32 |,R0,R2..r.SUB R2| 000045f0 2c 52 32 2c 23 26 30 31 0d 1f 7c 0e 80 20 52 30 |,R2,#&01..|.. R0| 00004600 2c 52 30 2c 52 32 0d 1f 86 12 53 55 42 20 52 31 |,R0,R2....SUB R1| 00004610 2c 52 31 2c 23 26 30 32 0d 1f 90 17 84 52 20 52 |,R1,#&02.....R R| 00004620 33 2c 52 33 2c 52 31 2c 41 53 4c 20 23 32 33 0d |3,R3,R1,ASL #23.| 00004630 1f 9a 16 84 52 20 52 30 2c 52 33 2c 52 30 2c 4c |....R R0,R3,R0,L| 00004640 53 52 20 23 38 0d 1f a4 10 4c 44 52 20 52 31 32 |SR #8....LDR R12| 00004650 2c 5b 52 39 5d 0d 1f ae 10 53 54 52 20 52 30 2c |,[R9]....STR R0,| 00004660 5b 52 31 32 5d 0d 1f b8 0e 4d 4f 56 20 50 43 2c |[R12]....MOV PC,| 00004670 52 31 34 0d 1f c2 05 3a 0d 1f cc 0d 2e 66 70 75 |R14....:.....fpu| 00004680 74 6f 62 61 73 0d 1f d6 10 4c 44 52 20 52 31 32 |tobas....LDR R12| 00004690 2c 5b 52 39 5d 0d 1f e0 10 4c 44 52 20 52 30 2c |,[R9]....LDR R0,| 000046a0 5b 52 31 32 5d 0d 1f ea 0f 43 4d 50 20 52 30 2c |[R12]....CMP R0,| 000046b0 23 26 30 30 0d 1f f4 13 53 54 52 45 51 20 52 30 |#&00....STREQ R0| 000046c0 2c 6e 75 6d 62 65 72 0d 1f fe 16 53 54 52 45 51 |,number....STREQ| 000046d0 42 20 52 30 2c 6e 75 6d 62 65 72 2b 34 0d 20 08 |B R0,number+4. .| 000046e0 0d ec 51 20 50 43 2c 52 31 34 0d 20 12 15 4d 4f |..Q PC,R14. ..MO| 000046f0 56 20 52 31 2c 23 26 38 30 30 30 30 30 30 30 0d |V R1,#&80000000.| 00004700 20 1c 0e 80 20 52 32 2c 52 31 2c 52 30 0d 20 26 | ... R2,R1,R0. &| 00004710 12 53 55 42 20 52 31 2c 52 31 2c 23 26 30 31 0d |.SUB R1,R1,#&01.| 00004720 20 30 15 80 20 52 33 2c 52 30 2c 52 31 2c 4c 53 | 0.. R3,R0,R1,LS| 00004730 52 20 23 38 0d 20 3a 16 84 52 20 52 32 2c 52 32 |R #8. :..R R2,R2| 00004740 2c 52 33 2c 41 53 4c 20 23 38 0d 20 44 0e 80 20 |,R3,ASL #8. D.. | 00004750 52 33 2c 52 30 2c 52 31 0d 20 4e 15 4d 4f 56 20 |R3,R0,R1. N.MOV | 00004760 52 33 2c 52 33 2c 4c 53 52 20 23 32 33 0d 20 58 |R3,R3,LSR #23. X| 00004770 12 41 44 44 20 52 33 2c 52 33 2c 23 26 30 32 0d |.ADD R3,R3,#&02.| 00004780 20 62 11 53 54 52 20 52 32 2c 6e 75 6d 62 65 72 | b.STR R2,number| 00004790 0d 20 6c 14 53 54 52 42 20 52 33 2c 6e 75 6d 62 |. l.STRB R3,numb| 000047a0 65 72 2b 34 0d 20 76 0e 4d 4f 56 20 50 43 2c 52 |er+4. v.MOV PC,R| 000047b0 31 34 0d 20 80 05 3a 0d 20 8a 0b 2e 6e 75 6d 62 |14. ..:. ...numb| 000047c0 65 72 0d 20 94 0c 45 51 55 44 20 26 30 30 0d 20 |er. ..EQUD &00. | 000047d0 9e 0c 45 51 55 44 20 26 30 30 0d 20 a8 05 5d 0d |..EQUD &00. ..].| 000047e0 20 b2 05 e1 0d 20 bc 05 3a 0d 20 c6 10 dd 20 f2 | .... ..:. ... .| 000047f0 69 6e 74 65 6e 73 69 74 79 0d 20 d0 0e 5b 20 4f |intensity. ..[ O| 00004800 50 54 20 6f 70 74 25 0d 20 da 0e 2e 69 6e 74 65 |PT opt%. ...inte| 00004810 6e 73 69 74 79 0d 20 e4 10 4c 44 52 20 52 30 2c |nsity. ..LDR R0,| 00004820 69 6e 70 75 74 0d 20 ee 11 4c 44 52 20 52 31 2c |input. ..LDR R1,| 00004830 6f 75 74 70 75 74 0d 20 f8 1d 45 51 55 44 20 a4 |output. ..EQUD .| 00004840 66 70 75 28 22 4c 44 46 53 20 46 30 2c 5b 52 30 |fpu("LDFS F0,[R0| 00004850 5d 22 29 0d 21 02 20 45 51 55 44 20 a4 66 70 75 |]").!. EQUD .fpu| 00004860 28 22 4c 44 46 53 20 46 31 2c 5b 52 30 2c 23 34 |("LDFS F1,[R0,#4| 00004870 5d 22 29 0d 21 0c 20 45 51 55 44 20 a4 66 70 75 |]").!. EQUD .fpu| 00004880 28 22 4c 44 46 53 20 46 32 2c 5b 52 30 2c 23 38 |("LDFS F2,[R0,#8| 00004890 5d 22 29 0d 21 16 21 45 51 55 44 20 a4 66 70 75 |]").!.!EQUD .fpu| 000048a0 28 22 4c 44 46 53 20 46 37 2c 5b 52 30 2c 23 31 |("LDFS F7,[R0,#1| 000048b0 36 5d 22 29 0d 21 20 1d 45 51 55 44 20 a4 66 70 |6]").! .EQUD .fp| 000048c0 75 28 22 53 54 46 53 20 46 37 2c 5b 52 31 5d 22 |u("STFS F7,[R1]"| 000048d0 29 0d 21 2a 21 45 51 55 44 20 a4 66 70 75 28 22 |).!*!EQUD .fpu("| 000048e0 4c 44 46 53 20 46 37 2c 5b 52 30 2c 23 32 30 5d |LDFS F7,[R0,#20]| 000048f0 22 29 0d 21 34 20 45 51 55 44 20 a4 66 70 75 28 |").!4 EQUD .fpu(| 00004900 22 53 54 46 53 20 46 37 2c 5b 52 31 2c 23 34 5d |"STFS F7,[R1,#4]| 00004910 22 29 0d 21 3e 21 45 51 55 44 20 a4 66 70 75 28 |").!>!EQUD .fpu(| 00004920 22 4c 44 46 53 20 46 37 2c 5b 52 30 2c 23 32 34 |"LDFS F7,[R0,#24| 00004930 5d 22 29 0d 21 48 20 45 51 55 44 20 a4 66 70 75 |]").!H EQUD .fpu| 00004940 28 22 53 54 46 53 20 46 37 2c 5b 52 31 2c 23 38 |("STFS F7,[R1,#8| 00004950 5d 22 29 0d 21 52 13 4c 44 52 20 52 32 2c 5b 52 |]").!R.LDR R2,[R| 00004960 30 2c 23 31 32 5d 0d 21 5c 0f 4c 44 52 20 52 33 |0,#12].!\.LDR R3| 00004970 2c 5b 52 32 5d 0d 21 66 05 3a 0d 21 70 0c 2e 69 |,[R2].!f.:.!p..i| 00004980 6e 74 65 6e 6c 70 0d 21 7a 13 53 55 42 53 20 52 |ntenlp.!z.SUBS R| 00004990 33 2c 52 33 2c 23 26 30 31 0d 21 84 10 4d 4f 56 |3,R3,#&01.!..MOV| 000049a0 4c 54 20 50 43 2c 52 31 34 0d 21 8e 1a 41 44 44 |LT PC,R14.!..ADD| 000049b0 20 52 31 32 2c 52 33 2c 52 33 2c 41 53 4c 20 23 | R12,R3,R3,ASL #| 000049c0 26 30 31 0d 21 98 1b 41 44 44 20 52 31 32 2c 52 |&01.!..ADD R12,R| 000049d0 32 2c 52 31 32 2c 41 53 4c 20 23 26 30 32 0d 21 |2,R12,ASL #&02.!| 000049e0 a2 22 45 51 55 44 20 a4 66 70 75 28 22 4c 44 46 |."EQUD .fpu("LDF| 000049f0 53 20 46 33 2c 5b 52 31 32 2c 23 30 34 5d 22 29 |S F3,[R12,#04]")| 00004a00 0d 21 ac 22 45 51 55 44 20 a4 66 70 75 28 22 4c |.!."EQUD .fpu("L| 00004a10 44 46 53 20 46 34 2c 5b 52 31 32 2c 23 30 38 5d |DFS F4,[R12,#08]| 00004a20 22 29 0d 21 b6 22 45 51 55 44 20 a4 66 70 75 28 |").!."EQUD .fpu(| 00004a30 22 4c 44 46 53 20 46 35 2c 5b 52 31 32 2c 23 31 |"LDFS F5,[R12,#1| 00004a40 32 5d 22 29 0d 21 c0 1e 45 51 55 44 20 a4 66 70 |2]").!..EQUD .fp| 00004a50 75 28 22 4d 55 46 53 20 46 36 2c 46 30 2c 46 33 |u("MUFS F6,F0,F3| 00004a60 22 29 0d 21 ca 1e 45 51 55 44 20 a4 66 70 75 28 |").!..EQUD .fpu(| 00004a70 22 4d 55 46 53 20 46 37 2c 46 31 2c 46 34 22 29 |"MUFS F7,F1,F4")| 00004a80 0d 21 d4 1e 45 51 55 44 20 a4 66 70 75 28 22 41 |.!..EQUD .fpu("A| 00004a90 44 46 53 20 46 36 2c 46 36 2c 46 37 22 29 0d 21 |DFS F6,F6,F7").!| 00004aa0 de 1e 45 51 55 44 20 a4 66 70 75 28 22 4d 55 46 |..EQUD .fpu("MUF| 00004ab0 53 20 46 37 2c 46 32 2c 46 35 22 29 0d 21 e8 1e |S F7,F2,F5").!..| 00004ac0 45 51 55 44 20 a4 66 70 75 28 22 41 44 46 53 20 |EQUD .fpu("ADFS | 00004ad0 46 36 2c 46 36 2c 46 37 22 29 0d 21 f2 05 3a 0d |F6,F6,F7").!..:.| 00004ae0 21 fc 1e 45 51 55 44 20 a4 66 70 75 28 22 4d 55 |!..EQUD .fpu("MU| 00004af0 46 53 20 46 33 2c 46 33 2c 46 32 22 29 0d 22 06 |FS F3,F3,F2").".| 00004b00 1e 45 51 55 44 20 a4 66 70 75 28 22 4d 55 46 53 |.EQUD .fpu("MUFS| 00004b10 20 46 33 2c 46 33 2c 46 30 22 29 0d 22 10 20 45 | F3,F3,F0").". E| 00004b20 51 55 44 20 a4 66 70 75 28 22 4d 55 46 53 20 46 |QUD .fpu("MUFS F| 00004b30 33 2c 46 33 2c 23 32 2e 30 22 29 0d 22 1a 1e 45 |3,F3,#2.0")."..E| 00004b40 51 55 44 20 a4 66 70 75 28 22 4d 55 46 53 20 46 |QUD .fpu("MUFS F| 00004b50 34 2c 46 34 2c 46 32 22 29 0d 22 24 1e 45 51 55 |4,F4,F2")."$.EQU| 00004b60 44 20 a4 66 70 75 28 22 4d 55 46 53 20 46 34 2c |D .fpu("MUFS F4,| 00004b70 46 34 2c 46 31 22 29 0d 22 2e 20 45 51 55 44 20 |F4,F1").". EQUD | 00004b80 a4 66 70 75 28 22 4d 55 46 53 20 46 34 2c 46 34 |.fpu("MUFS F4,F4| 00004b90 2c 23 32 2e 30 22 29 0d 22 38 1e 45 51 55 44 20 |,#2.0")."8.EQUD | 00004ba0 a4 66 70 75 28 22 41 44 46 53 20 46 33 2c 46 33 |.fpu("ADFS F3,F3| 00004bb0 2c 46 34 22 29 0d 22 42 1e 45 51 55 44 20 a4 66 |,F4")."B.EQUD .f| 00004bc0 70 75 28 22 4d 55 46 53 20 46 37 2c 46 32 2c 46 |pu("MUFS F7,F2,F| 00004bd0 32 22 29 0d 22 4c 1e 45 51 55 44 20 a4 66 70 75 |2")."L.EQUD .fpu| 00004be0 28 22 4d 55 46 53 20 46 34 2c 46 31 2c 46 31 22 |("MUFS F4,F1,F1"| 00004bf0 29 0d 22 56 1e 45 51 55 44 20 a4 66 70 75 28 22 |)."V.EQUD .fpu("| 00004c00 53 55 46 53 20 46 37 2c 46 37 2c 46 34 22 29 0d |SUFS F7,F7,F4").| 00004c10 22 60 1e 45 51 55 44 20 a4 66 70 75 28 22 4d 55 |"`.EQUD .fpu("MU| 00004c20 46 53 20 46 34 2c 46 30 2c 46 30 22 29 0d 22 6a |FS F4,F0,F0")."j| 00004c30 1e 45 51 55 44 20 a4 66 70 75 28 22 53 55 46 53 |.EQUD .fpu("SUFS| 00004c40 20 46 37 2c 46 37 2c 46 34 22 29 0d 22 74 1e 45 | F7,F7,F4")."t.E| 00004c50 51 55 44 20 a4 66 70 75 28 22 4d 55 46 53 20 46 |QUD .fpu("MUFS F| 00004c60 37 2c 46 37 2c 46 35 22 29 0d 22 7e 1e 45 51 55 |7,F7,F5")."~.EQU| 00004c70 44 20 a4 66 70 75 28 22 41 44 46 53 20 46 37 2c |D .fpu("ADFS F7,| 00004c80 46 37 2c 46 33 22 29 0d 22 88 1e 45 51 55 44 20 |F7,F3")."..EQUD | 00004c90 a4 66 70 75 28 22 4d 55 46 53 20 46 35 2c 46 31 |.fpu("MUFS F5,F1| 00004ca0 2c 46 31 22 29 0d 22 92 1e 45 51 55 44 20 a4 66 |,F1")."..EQUD .f| 00004cb0 70 75 28 22 41 44 46 53 20 46 34 2c 46 34 2c 46 |pu("ADFS F4,F4,F| 00004cc0 35 22 29 0d 22 9c 1e 45 51 55 44 20 a4 66 70 75 |5")."..EQUD .fpu| 00004cd0 28 22 4d 55 46 53 20 46 35 2c 46 32 2c 46 32 22 |("MUFS F5,F2,F2"| 00004ce0 29 0d 22 a6 1e 45 51 55 44 20 a4 66 70 75 28 22 |)."..EQUD .fpu("| 00004cf0 41 44 46 53 20 46 34 2c 46 34 2c 46 35 22 29 0d |ADFS F4,F4,F5").| 00004d00 22 b0 1e 45 51 55 44 20 a4 66 70 75 28 22 44 56 |"..EQUD .fpu("DV| 00004d10 46 53 20 46 37 2c 46 37 2c 46 34 22 29 0d 22 ba |FS F7,F7,F4").".| 00004d20 1b 45 51 55 44 20 a4 66 70 75 28 22 4d 4e 46 53 |.EQUD .fpu("MNFS| 00004d30 20 46 37 2c 46 37 22 29 0d 22 c4 1d 45 51 55 44 | F7,F7")."..EQUD| 00004d40 20 a4 66 70 75 28 22 43 4d 45 53 20 46 37 2c 23 | .fpu("CMES F7,#| 00004d50 30 2e 30 22 29 0d 22 ce 1f 45 51 55 44 20 a4 66 |0.0")."..EQUD .f| 00004d60 70 75 28 22 4d 56 46 4c 54 53 20 46 37 2c 23 30 |pu("MVFLTS F7,#0| 00004d70 2e 30 22 29 0d 22 d8 1d 45 51 55 44 20 a4 66 70 |.0")."..EQUD .fp| 00004d80 75 28 22 43 4d 45 53 20 46 36 2c 23 30 2e 30 22 |u("CMES F6,#0.0"| 00004d90 29 0d 22 e2 1f 45 51 55 44 20 a4 66 70 75 28 22 |)."..EQUD .fpu("| 00004da0 4d 56 46 4c 54 53 20 46 36 2c 23 30 2e 30 22 29 |MVFLTS F6,#0.0")| 00004db0 0d 22 ec 21 45 51 55 44 20 a4 66 70 75 28 22 4c |.".!EQUD .fpu("L| 00004dc0 44 46 53 20 46 33 2c 5b 52 30 2c 23 35 32 5d 22 |DFS F3,[R0,#52]"| 00004dd0 29 0d 22 f6 1e 45 51 55 44 20 a4 66 70 75 28 22 |)."..EQUD .fpu("| 00004de0 50 4f 57 53 20 46 37 2c 46 37 2c 46 33 22 29 0d |POWS F7,F7,F3").| 00004df0 23 00 21 45 51 55 44 20 a4 66 70 75 28 22 4c 44 |#.!EQUD .fpu("LD| 00004e00 46 53 20 46 33 2c 5b 52 30 2c 23 34 30 5d 22 29 |FS F3,[R0,#40]")| 00004e10 0d 23 0a 1e 45 51 55 44 20 a4 66 70 75 28 22 4d |.#..EQUD .fpu("M| 00004e20 55 46 53 20 46 34 2c 46 33 2c 46 37 22 29 0d 23 |UFS F4,F3,F7").#| 00004e30 14 21 45 51 55 44 20 a4 66 70 75 28 22 4c 44 46 |.!EQUD .fpu("LDF| 00004e40 53 20 46 33 2c 5b 52 30 2c 23 32 38 5d 22 29 0d |S F3,[R0,#28]").| 00004e50 23 1e 1e 45 51 55 44 20 a4 66 70 75 28 22 4d 55 |#..EQUD .fpu("MU| 00004e60 46 53 20 46 33 2c 46 33 2c 46 36 22 29 0d 23 28 |FS F3,F3,F6").#(| 00004e70 1d 45 51 55 44 20 a4 66 70 75 28 22 4c 44 46 53 |.EQUD .fpu("LDFS| 00004e80 20 46 35 2c 5b 52 31 5d 22 29 0d 23 32 1e 45 51 | F5,[R1]").#2.EQ| 00004e90 55 44 20 a4 66 70 75 28 22 41 44 46 53 20 46 35 |UD .fpu("ADFS F5| 00004ea0 2c 46 35 2c 46 33 22 29 0d 23 3c 1e 45 51 55 44 |,F5,F3").#<.EQUD| 00004eb0 20 a4 66 70 75 28 22 41 44 46 53 20 46 35 2c 46 | .fpu("ADFS F5,F| 00004ec0 35 2c 46 34 22 29 0d 23 46 1d 45 51 55 44 20 a4 |5,F4").#F.EQUD .| 00004ed0 66 70 75 28 22 53 54 46 53 20 46 35 2c 5b 52 31 |fpu("STFS F5,[R1| 00004ee0 5d 22 29 0d 23 50 21 45 51 55 44 20 a4 66 70 75 |]").#P!EQUD .fpu| 00004ef0 28 22 4c 44 46 53 20 46 33 2c 5b 52 30 2c 23 34 |("LDFS F3,[R0,#4| 00004f00 34 5d 22 29 0d 23 5a 1e 45 51 55 44 20 a4 66 70 |4]").#Z.EQUD .fp| 00004f10 75 28 22 4d 55 46 53 20 46 34 2c 46 33 2c 46 37 |u("MUFS F4,F3,F7| 00004f20 22 29 0d 23 64 21 45 51 55 44 20 a4 66 70 75 28 |").#d!EQUD .fpu(| 00004f30 22 4c 44 46 53 20 46 33 2c 5b 52 30 2c 23 33 32 |"LDFS F3,[R0,#32| 00004f40 5d 22 29 0d 23 6e 1e 45 51 55 44 20 a4 66 70 75 |]").#n.EQUD .fpu| 00004f50 28 22 4d 55 46 53 20 46 33 2c 46 33 2c 46 36 22 |("MUFS F3,F3,F6"| 00004f60 29 0d 23 78 20 45 51 55 44 20 a4 66 70 75 28 22 |).#x EQUD .fpu("| 00004f70 4c 44 46 53 20 46 35 2c 5b 52 31 2c 23 34 5d 22 |LDFS F5,[R1,#4]"| 00004f80 29 0d 23 82 1e 45 51 55 44 20 a4 66 70 75 28 22 |).#..EQUD .fpu("| 00004f90 41 44 46 53 20 46 35 2c 46 35 2c 46 33 22 29 0d |ADFS F5,F5,F3").| 00004fa0 23 8c 1e 45 51 55 44 20 a4 66 70 75 28 22 41 44 |#..EQUD .fpu("AD| 00004fb0 46 53 20 46 35 2c 46 35 2c 46 34 22 29 0d 23 96 |FS F5,F5,F4").#.| 00004fc0 20 45 51 55 44 20 a4 66 70 75 28 22 53 54 46 53 | EQUD .fpu("STFS| 00004fd0 20 46 35 2c 5b 52 31 2c 23 34 5d 22 29 0d 23 a0 | F5,[R1,#4]").#.| 00004fe0 21 45 51 55 44 20 a4 66 70 75 28 22 4c 44 46 53 |!EQUD .fpu("LDFS| 00004ff0 20 46 33 2c 5b 52 30 2c 23 34 38 5d 22 29 0d 23 | F3,[R0,#48]").#| 00005000 aa 1e 45 51 55 44 20 a4 66 70 75 28 22 4d 55 46 |..EQUD .fpu("MUF| 00005010 53 20 46 34 2c 46 33 2c 46 37 22 29 0d 23 b4 21 |S F4,F3,F7").#.!| 00005020 45 51 55 44 20 a4 66 70 75 28 22 4c 44 46 53 20 |EQUD .fpu("LDFS | 00005030 46 33 2c 5b 52 30 2c 23 33 36 5d 22 29 0d 23 be |F3,[R0,#36]").#.| 00005040 1e 45 51 55 44 20 a4 66 70 75 28 22 4d 55 46 53 |.EQUD .fpu("MUFS| 00005050 20 46 33 2c 46 33 2c 46 36 22 29 0d 23 c8 20 45 | F3,F3,F6").#. E| 00005060 51 55 44 20 a4 66 70 75 28 22 4c 44 46 53 20 46 |QUD .fpu("LDFS F| 00005070 35 2c 5b 52 31 2c 23 38 5d 22 29 0d 23 d2 1e 45 |5,[R1,#8]").#..E| 00005080 51 55 44 20 a4 66 70 75 28 22 41 44 46 53 20 46 |QUD .fpu("ADFS F| 00005090 35 2c 46 35 2c 46 33 22 29 0d 23 dc 1e 45 51 55 |5,F5,F3").#..EQU| 000050a0 44 20 a4 66 70 75 28 22 41 44 46 53 20 46 35 2c |D .fpu("ADFS F5,| 000050b0 46 35 2c 46 34 22 29 0d 23 e6 20 45 51 55 44 20 |F5,F4").#. EQUD | 000050c0 a4 66 70 75 28 22 53 54 46 53 20 46 35 2c 5b 52 |.fpu("STFS F5,[R| 000050d0 31 2c 23 38 5d 22 29 0d 23 f0 0d 42 20 69 6e 74 |1,#8]").#..B int| 000050e0 65 6e 6c 70 0d 23 fa 05 5d 0d 24 04 05 e1 0d 24 |enlp.#..].$....$| 000050f0 0e 05 3a 0d 24 18 0d dd 20 f2 63 6f 6c 6f 75 72 |..:.$... .colour| 00005100 0d 24 22 0e 5b 20 4f 50 54 20 6f 70 74 25 0d 24 |.$".[ OPT opt%.$| 00005110 2c 0b 2e 63 6f 6c 6f 75 72 0d 24 36 14 53 54 4d |,..colour.$6.STM| 00005120 46 44 20 52 31 33 21 2c 7b 52 31 34 7d 0d 24 40 |FD R13!,{R14}.$@| 00005130 10 4c 44 52 20 52 30 2c 69 6e 70 75 74 0d 24 4a |.LDR R0,input.$J| 00005140 11 4c 44 52 20 52 31 2c 6f 75 74 70 75 74 0d 24 |.LDR R1,output.$| 00005150 54 0f 4c 44 52 20 52 32 2c 5b 52 30 5d 0d 24 5e |T.LDR R2,[R0].$^| 00005160 12 4c 44 52 20 52 33 2c 5b 52 30 2c 23 34 5d 0d |.LDR R3,[R0,#4].| 00005170 24 68 12 4c 44 52 20 52 34 2c 5b 52 30 2c 23 38 |$h.LDR R4,[R0,#8| 00005180 5d 0d 24 72 10 4c 44 52 20 52 31 32 2c 73 65 65 |].$r.LDR R12,see| 00005190 64 0d 24 7c 12 4c 44 52 20 52 31 31 2c 62 69 74 |d.$|.LDR R11,bit| 000051a0 6d 61 70 0d 24 86 0f 4d 4f 56 20 52 39 2c 23 26 |map.$..MOV R9,#&| 000051b0 44 44 0d 24 90 1b 42 4c 20 72 61 6e 64 6f 6d 3a |DD.$..BL random:| 000051c0 41 44 44 20 52 32 2c 52 32 2c 52 31 30 0d 24 9a |ADD R2,R2,R10.$.| 000051d0 1b 42 4c 20 72 61 6e 64 6f 6d 3a 41 44 44 20 52 |.BL random:ADD R| 000051e0 33 2c 52 33 2c 52 31 30 0d 24 a4 1b 42 4c 20 72 |3,R3,R10.$..BL r| 000051f0 61 6e 64 6f 6d 3a 41 44 44 20 52 34 2c 52 34 2c |andom:ADD R4,R4,| 00005200 52 31 30 0d 24 ae 10 53 54 52 20 52 31 32 2c 73 |R10.$..STR R12,s| 00005210 65 65 64 0d 24 b8 37 43 4d 50 20 52 32 2c 23 26 |eed.$.7CMP R2,#&| 00005220 30 30 3a 4d 4f 56 4c 54 20 52 32 2c 23 26 30 30 |00:MOVLT R2,#&00| 00005230 3a 43 4d 50 20 52 32 2c 23 26 46 46 3a 4d 4f 56 |:CMP R2,#&FF:MOV| 00005240 47 54 20 52 32 2c 23 26 46 46 0d 24 c2 37 43 4d |GT R2,#&FF.$.7CM| 00005250 50 20 52 33 2c 23 26 30 30 3a 4d 4f 56 4c 54 20 |P R3,#&00:MOVLT | 00005260 52 33 2c 23 26 30 30 3a 43 4d 50 20 52 33 2c 23 |R3,#&00:CMP R3,#| 00005270 26 46 46 3a 4d 4f 56 47 54 20 52 33 2c 23 26 46 |&FF:MOVGT R3,#&F| 00005280 46 0d 24 cc 37 43 4d 50 20 52 34 2c 23 26 30 30 |F.$.7CMP R4,#&00| 00005290 3a 4d 4f 56 4c 54 20 52 34 2c 23 26 30 30 3a 43 |:MOVLT R4,#&00:C| 000052a0 4d 50 20 52 34 2c 23 26 46 46 3a 4d 4f 56 47 54 |MP R4,#&FF:MOVGT| 000052b0 20 52 34 2c 23 26 46 46 0d 24 d6 2a 80 20 52 35 | R4,#&FF.$.*. R5| 000052c0 2c 52 32 2c 23 26 43 30 3a 80 20 52 36 2c 52 33 |,R2,#&C0:. R6,R3| 000052d0 2c 23 26 43 30 3a 80 20 52 37 2c 52 34 2c 23 26 |,#&C0:. R7,R4,#&| 000052e0 43 30 0d 24 e0 2a 80 20 52 32 2c 52 32 2c 23 26 |C0.$.*. R2,R2,#&| 000052f0 33 46 3a 80 20 52 33 2c 52 33 2c 23 26 33 46 3a |3F:. R3,R3,#&3F:| 00005300 80 20 52 34 2c 52 34 2c 23 26 33 46 0d 24 ea 40 |. R4,R4,#&3F.$.@| 00005310 4d 4f 56 20 52 38 2c 52 35 2c 41 53 52 20 23 26 |MOV R8,R5,ASR #&| 00005320 30 36 3a 84 52 20 52 38 2c 52 38 2c 52 36 2c 41 |06:.R R8,R8,R6,A| 00005330 53 52 20 23 26 30 34 3a 84 52 20 52 38 2c 52 38 |SR #&04:.R R8,R8| 00005340 2c 52 37 2c 41 53 52 20 23 26 30 32 0d 24 f4 3c |,R7,ASR #&02.$.<| 00005350 4d 4f 56 20 52 31 30 2c 23 26 36 34 3a 4d 55 4c |MOV R10,#&64:MUL| 00005360 20 52 39 2c 52 32 2c 52 31 30 3a 4d 4f 56 20 52 | R9,R2,R10:MOV R| 00005370 31 30 2c 23 26 38 32 3a 4d 4c 41 20 52 39 2c 52 |10,#&82:MLA R9,R| 00005380 33 2c 52 31 30 2c 52 39 0d 24 fe 30 4d 4f 56 20 |3,R10,R9.$.0MOV | 00005390 52 31 30 2c 23 26 31 39 3a 4d 4c 41 20 52 39 2c |R10,#&19:MLA R9,| 000053a0 52 34 2c 52 31 30 2c 52 39 3a 80 20 52 39 2c 52 |R4,R10,R9:. R9,R| 000053b0 39 2c 23 26 33 30 30 30 0d 25 08 18 84 52 20 52 |9,#&3000.%...R R| 000053c0 38 2c 52 38 2c 52 39 2c 41 53 52 20 23 26 30 36 |8,R8,R9,ASR #&06| 000053d0 0d 25 12 0f 53 54 52 20 52 38 2c 5b 52 31 5d 0d |.%..STR R8,[R1].| 000053e0 25 1c 13 4c 44 4d 46 44 20 52 31 33 21 2c 7b 50 |%..LDMFD R13!,{P| 000053f0 43 7d 0d 25 26 05 3a 0d 25 30 0b 2e 72 61 6e 64 |C}.%&.:.%0..rand| 00005400 6f 6d 0d 25 3a 3c 4d 4f 56 53 20 52 31 32 2c 52 |om.%:<MOVS R12,R| 00005410 31 32 2c 4c 53 4c 20 23 31 3a 82 43 53 20 52 31 |12,LSL #1:.CS R1| 00005420 32 2c 52 31 32 2c 52 31 31 3a 4d 4f 56 20 52 31 |2,R12,R11:MOV R1| 00005430 30 2c 52 31 30 2c 4c 53 52 20 23 26 30 41 0d 25 |0,R10,LSR #&0A.%| 00005440 44 40 4d 4f 56 53 20 52 31 32 2c 52 31 32 2c 4c |D@MOVS R12,R12,L| 00005450 53 4c 20 23 31 3a 82 43 53 20 52 31 32 2c 52 31 |SL #1:.CS R12,R1| 00005460 32 2c 52 31 31 3a 41 44 44 20 52 31 30 2c 52 31 |2,R11:ADD R10,R1| 00005470 30 2c 52 31 32 2c 4c 53 52 20 23 26 30 41 0d 25 |0,R12,LSR #&0A.%| 00005480 4e 40 4d 4f 56 53 20 52 31 32 2c 52 31 32 2c 4c |N@MOVS R12,R12,L| 00005490 53 4c 20 23 31 3a 82 43 53 20 52 31 32 2c 52 31 |SL #1:.CS R12,R1| 000054a0 32 2c 52 31 31 3a 41 44 44 20 52 31 30 2c 52 31 |2,R11:ADD R10,R1| 000054b0 30 2c 52 31 32 2c 4c 53 52 20 23 26 30 41 0d 25 |0,R12,LSR #&0A.%| 000054c0 58 40 4d 4f 56 53 20 52 31 32 2c 52 31 32 2c 4c |X@MOVS R12,R12,L| 000054d0 53 4c 20 23 31 3a 82 43 53 20 52 31 32 2c 52 31 |SL #1:.CS R12,R1| 000054e0 32 2c 52 31 31 3a 41 44 44 20 52 31 30 2c 52 31 |2,R11:ADD R10,R1| 000054f0 30 2c 52 31 32 2c 4c 53 52 20 23 26 30 41 0d 25 |0,R12,LSR #&0A.%| 00005500 62 18 53 55 42 20 52 31 30 2c 52 31 30 2c 23 26 |b.SUB R10,R10,#&| 00005510 38 30 30 30 30 30 0d 25 6c 12 4d 55 4c 20 52 31 |800000.%l.MUL R1| 00005520 30 2c 52 39 2c 52 31 30 0d 25 76 18 4d 4f 56 20 |0,R9,R10.%v.MOV | 00005530 52 31 30 2c 52 31 30 2c 41 53 52 20 23 26 31 41 |R10,R10,ASR #&1A| 00005540 0d 25 80 0e 4d 4f 56 20 50 43 2c 52 31 34 0d 25 |.%..MOV PC,R14.%| 00005550 8a 05 3a 0d 25 94 10 2e 73 65 65 64 20 45 51 55 |..:.%...seed EQU| 00005560 44 20 91 0d 25 9e 1a 2e 62 69 74 6d 61 70 20 45 |D ..%...bitmap E| 00005570 51 55 44 20 26 31 44 38 37 32 42 34 31 0d 25 a8 |QUD &1D872B41.%.| 00005580 05 5d 0d 25 b2 05 e1 0d 25 bc 05 3a 0d 25 c6 11 |.].%....%..:.%..| 00005590 dd 20 a4 66 70 75 28 63 6f 64 65 24 29 0d 25 d0 |. .fpu(code$).%.| 000055a0 11 6f 70 24 3d c0 63 6f 64 65 24 2c 33 29 0d 25 |.op$=.code$,3).%| 000055b0 da 20 6f 70 74 24 3d c1 63 6f 64 65 24 2c 34 2c |. opt$=.code$,4,| 000055c0 a7 63 6f 64 65 24 2c 22 20 22 29 2d 34 29 0d 25 |.code$," ")-4).%| 000055d0 e4 1e 72 65 67 24 3d c1 63 6f 64 65 24 2c a7 63 |..reg$=.code$,.c| 000055e0 6f 64 65 24 2c 22 20 22 29 2b 31 29 0d 25 ee 20 |ode$," ")+1).%. | 000055f0 e7 20 a9 28 6f 70 74 24 29 3c 33 20 8c 20 6f 70 |. .(opt$)<3 . op| 00005600 74 24 3d 22 41 4c 22 2b 6f 70 74 24 0d 25 f8 3a |t$="AL"+opt$.%.:| 00005610 63 6e 64 25 3d a7 22 45 51 4e 45 43 53 43 43 4d |cnd%=."EQNECSCCM| 00005620 49 50 4c 56 53 56 43 48 49 4c 53 47 45 4c 54 47 |IPLVSVCHILSGELTG| 00005630 54 4c 45 41 4c 4e 56 22 2c c0 6f 70 74 24 2c 32 |TLEALNV",.opt$,2| 00005640 29 29 20 81 20 32 0d 26 02 1e 70 72 63 25 3d a7 |)) . 2.&..prc%=.| 00005650 22 53 44 45 50 22 2c c1 6f 70 74 24 2c 33 2c 31 |"SDEP",.opt$,3,1| 00005660 29 29 2d 31 0d 26 0c 17 72 6e 64 25 3d a7 22 50 |))-1.&..rnd%=."P| 00005670 4d 5a 22 2c 6f 70 74 24 2c 34 29 0d 26 16 05 3a |MZ",opt$,4).&..:| 00005680 0d 26 20 18 6f 70 25 3d a7 22 53 54 46 4c 44 46 |.& .op%=."STFLDF| 00005690 22 2c 6f 70 24 29 2d 31 0d 26 2a 2d e7 20 6f 70 |",op$)-1.&*-. op| 000056a0 25 3e 3d 30 20 8c 20 3d a4 64 61 74 61 28 6f 70 |%>=0 . =.data(op| 000056b0 25 20 81 20 33 2c 63 6e 64 25 2c 70 72 63 25 2c |% . 3,cnd%,prc%,| 000056c0 72 65 67 24 29 0d 26 34 05 3a 0d 26 3e 43 69 6e |reg$).&4.:.&>Cin| 000056d0 25 3d 28 63 6e 64 25 3c 3c 32 38 29 20 84 20 28 |%=(cnd%<<28) . (| 000056e0 28 70 72 63 25 20 80 20 32 29 3c 3c 31 39 29 20 |(prc% . 2)<<19) | 000056f0 84 20 28 28 70 72 63 25 20 80 20 31 29 3c 3c 37 |. ((prc% . 1)<<7| 00005700 29 20 84 20 28 72 6e 64 25 3c 3c 35 29 0d 26 48 |) . (rnd%<<5).&H| 00005710 05 3a 0d 26 52 39 6f 70 25 3d a7 22 41 44 46 4d |.:.&R9op%=."ADFM| 00005720 55 46 53 55 46 52 53 46 44 56 46 52 44 46 50 4f |UFSUFRSFDVFRDFPO| 00005730 57 52 50 57 52 4d 46 46 4d 4c 46 44 56 46 52 44 |WRPWRMFFMLFDVFRD| 00005740 50 4f 4c 22 2c 6f 70 24 29 2d 31 0d 26 5c 29 e7 |POL",op$)-1.&\).| 00005750 20 6f 70 25 3e 3d 30 20 8c 20 3d a4 62 69 6e 6f | op%>=0 . =.bino| 00005760 70 73 28 6f 70 25 20 81 20 33 2c 69 6e 25 2c 72 |ps(op% . 3,in%,r| 00005770 65 67 24 29 0d 26 66 3c 6f 70 25 3d a7 22 4d 56 |eg$).&f<op%=."MV| 00005780 46 4d 4e 46 41 42 53 52 4e 44 53 51 54 4c 4f 47 |FMNFABSRNDSQTLOG| 00005790 4c 47 4e 45 58 50 53 49 4e 43 4f 53 54 41 4e 41 |LGNEXPSINCOSTANA| 000057a0 53 4e 41 43 53 41 54 4e 22 2c 6f 70 24 29 2d 31 |SNACSATN",op$)-1| 000057b0 0d 26 70 28 e7 20 6f 70 25 3e 3d 30 20 8c 20 3d |.&p(. op%>=0 . =| 000057c0 a4 75 6e 6f 70 73 28 6f 70 25 20 81 20 33 2c 69 |.unops(op% . 3,i| 000057d0 6e 25 2c 72 65 67 24 29 0d 26 7a 1e 6f 70 25 3d |n%,reg$).&z.op%=| 000057e0 a7 22 43 4d 46 43 4e 46 43 4d 45 43 4e 45 22 2c |."CMFCNFCMECNE",| 000057f0 6f 70 24 29 2d 31 0d 26 84 26 e7 20 6f 70 25 3e |op$)-1.&.&. op%>| 00005800 3d 30 20 8c 20 3d a4 63 6d 70 28 6f 70 25 20 81 |=0 . =.cmp(op% .| 00005810 20 33 2c 69 6e 25 2c 72 65 67 24 29 0d 26 8e 05 | 3,in%,reg$).&..| 00005820 3a 0d 26 98 28 85 20 32 35 35 2c 22 55 6e 72 65 |:.&.(. 255,"Unre| 00005830 63 6f 67 6e 69 73 65 64 20 66 70 75 20 69 6e 73 |cognised fpu ins| 00005840 74 72 75 63 74 69 6f 6e 22 0d 26 a2 05 3a 0d 26 |truction".&..:.&| 00005850 ac 1e dd 20 a4 65 76 61 6c 28 72 65 67 24 2c 74 |... .eval(reg$,t| 00005860 79 70 65 24 2c f8 20 63 68 72 25 29 0d 26 b6 1c |ype$,. chr%).&..| 00005870 63 68 72 25 3d a7 72 65 67 24 2c 74 79 70 65 24 |chr%=.reg$,type$| 00005880 2c 63 68 72 25 2b 31 29 0d 26 c0 15 3d bb 28 c1 |,chr%+1).&..=.(.| 00005890 72 65 67 24 2c 63 68 72 25 2b 31 29 29 0d 26 ca |reg$,chr%+1)).&.| 000058a0 05 3a 0d 26 d4 1a dd 20 a4 63 6f 6e 73 74 61 6e |.:.&... .constan| 000058b0 74 28 72 65 67 24 2c 63 68 72 25 29 0d 26 de 3c |t(reg$,chr%).&.<| 000058c0 3d a7 22 30 20 20 31 20 20 32 20 20 33 20 20 34 |=."0 1 2 3 4| 000058d0 20 20 35 20 20 30 2e 35 31 30 22 2c c3 28 a4 65 | 5 0.510",.(.e| 000058e0 76 61 6c 28 72 65 67 24 2c 22 23 22 2c 63 68 72 |val(reg$,"#",chr| 000058f0 25 29 29 29 20 81 20 33 0d 26 e8 05 3a 0d 26 f2 |%))) . 3.&..:.&.| 00005900 1f dd 20 a4 64 61 74 61 28 6f 70 25 2c 63 6e 64 |.. .data(op%,cnd| 00005910 25 2c 70 72 63 25 2c 72 65 67 24 29 0d 26 fc 0a |%,prc%,reg$).&..| 00005920 63 68 72 25 3d 30 0d 27 06 20 66 64 25 3d a4 65 |chr%=0.'. fd%=.e| 00005930 76 61 6c 28 72 65 67 24 2c 22 46 22 2c 63 68 72 |val(reg$,"F",chr| 00005940 25 29 3c 3c 31 32 0d 27 10 20 72 6e 25 3d a4 65 |%)<<12.'. rn%=.e| 00005950 76 61 6c 28 72 65 67 24 2c 22 52 22 2c 63 68 72 |val(reg$,"R",chr| 00005960 25 29 3c 3c 31 36 0d 27 1a 20 6f 66 66 73 65 74 |%)<<16.'. offset| 00005970 25 3d a4 65 76 61 6c 28 72 65 67 24 2c 22 23 22 |%=.eval(reg$,"#"| 00005980 2c 63 68 72 25 29 0d 27 24 26 70 72 65 25 3d 28 |,chr%).'$&pre%=(| 00005990 a7 72 65 67 24 2c 22 5d 22 2c 63 68 72 25 29 3e |.reg$,"]",chr%)>| 000059a0 30 29 20 80 20 28 31 3c 3c 32 34 29 0d 27 2e 1f |0) . (1<<24).'..| 000059b0 77 62 25 3d 28 a7 72 65 67 24 2c 22 21 22 29 3e |wb%=(.reg$,"!")>| 000059c0 30 29 80 20 28 31 3c 3c 32 31 29 0d 27 38 1f 73 |0). (1<<21).'8.s| 000059d0 67 6e 25 3d 28 6f 66 66 73 65 74 25 3e 3d 30 29 |gn%=(offset%>=0)| 000059e0 20 80 20 28 31 3c 3c 32 33 29 0d 27 42 1a 6f 66 | . (1<<23).'B.of| 000059f0 66 73 65 74 25 3d 94 28 6f 66 66 73 65 74 25 20 |fset%=.(offset% | 00005a00 81 20 34 29 0d 27 4c 44 69 6e 25 3d 28 63 6e 64 |. 4).'LDin%=(cnd| 00005a10 25 3c 3c 32 38 29 20 84 20 28 28 70 72 63 25 20 |%<<28) . ((prc% | 00005a20 80 20 32 29 3c 3c 32 32 29 20 84 20 28 28 70 72 |. 2)<<22) . ((pr| 00005a30 63 25 20 80 20 31 29 3c 3c 31 35 29 20 84 20 28 |c% . 1)<<15) . (| 00005a40 6f 70 25 3c 3c 32 30 29 0d 27 56 3d 3d 69 6e 25 |op%<<20).'V==in%| 00005a50 20 84 20 70 72 65 25 20 84 20 73 67 6e 25 20 84 | . pre% . sgn% .| 00005a60 20 77 62 25 20 84 20 72 6e 25 20 84 20 66 64 25 | wb% . rn% . fd%| 00005a70 20 84 20 6f 66 66 73 65 74 25 20 84 20 26 43 30 | . offset% . &C0| 00005a80 30 30 31 30 30 0d 27 60 05 3a 0d 27 6a 1b dd 20 |00100.'`.:.'j.. | 00005a90 a4 62 69 6e 6f 70 73 28 6f 70 25 2c 69 6e 25 2c |.binops(op%,in%,| 00005aa0 72 65 67 24 29 0d 27 74 0a 63 68 72 25 3d 30 0d |reg$).'t.chr%=0.| 00005ab0 27 7e 20 66 64 25 3d a4 65 76 61 6c 28 72 65 67 |'~ fd%=.eval(reg| 00005ac0 24 2c 22 46 22 2c 63 68 72 25 29 3c 3c 31 32 0d |$,"F",chr%)<<12.| 00005ad0 27 88 20 66 6e 25 3d a4 65 76 61 6c 28 72 65 67 |'. fn%=.eval(reg| 00005ae0 24 2c 22 46 22 2c 63 68 72 25 29 3c 3c 31 36 0d |$,"F",chr%)<<16.| 00005af0 27 92 1c 66 6d 25 3d a4 65 76 61 6c 28 72 65 67 |'..fm%=.eval(reg| 00005b00 24 2c 22 46 22 2c 63 68 72 25 29 0d 27 9c 36 e7 |$,"F",chr%).'.6.| 00005b10 20 63 68 72 25 3d 30 20 8c 20 66 6d 25 3d a4 63 | chr%=0 . fm%=.c| 00005b20 6f 6e 73 74 61 6e 74 28 72 65 67 24 2c 63 68 72 |onstant(reg$,chr| 00005b30 25 29 3a 69 25 3d 31 3c 3c 33 20 8b 20 69 25 3d |%):i%=1<<3 . i%=| 00005b40 30 0d 27 a6 36 3d 69 6e 25 20 84 20 28 6f 70 25 |0.'.6=in% . (op%| 00005b50 3c 3c 32 30 29 20 84 20 66 6e 25 20 84 20 66 64 |<<20) . fn% . fd| 00005b60 25 20 84 20 69 25 20 84 20 66 6d 25 20 84 20 26 |% . i% . fm% . &| 00005b70 45 30 30 30 31 30 30 0d 27 b0 05 3a 0d 27 ba 1a |E000100.'..:.'..| 00005b80 dd 20 a4 75 6e 6f 70 73 28 6f 70 25 2c 69 6e 25 |. .unops(op%,in%| 00005b90 2c 72 65 67 24 29 0d 27 c4 0a 63 68 72 25 3d 30 |,reg$).'..chr%=0| 00005ba0 0d 27 ce 20 66 64 25 3d a4 65 76 61 6c 28 72 65 |.'. fd%=.eval(re| 00005bb0 67 24 2c 22 46 22 2c 63 68 72 25 29 3c 3c 31 32 |g$,"F",chr%)<<12| 00005bc0 0d 27 d8 1c 66 6d 25 3d a4 65 76 61 6c 28 72 65 |.'..fm%=.eval(re| 00005bd0 67 24 2c 22 46 22 2c 63 68 72 25 29 0d 27 e2 36 |g$,"F",chr%).'.6| 00005be0 e7 20 63 68 72 25 3d 30 20 8c 20 66 6d 25 3d a4 |. chr%=0 . fm%=.| 00005bf0 63 6f 6e 73 74 61 6e 74 28 72 65 67 24 2c 63 68 |constant(reg$,ch| 00005c00 72 25 29 3a 69 25 3d 31 3c 3c 33 20 8b 20 69 25 |r%):i%=1<<3 . i%| 00005c10 3d 30 0d 27 ec 30 3d 69 6e 25 20 84 20 28 6f 70 |=0.'.0=in% . (op| 00005c20 25 3c 3c 32 30 29 20 84 20 66 64 25 20 84 20 69 |%<<20) . fd% . i| 00005c30 25 20 84 20 66 6d 25 20 84 20 26 45 30 30 38 31 |% . fm% . &E0081| 00005c40 30 30 0d 27 f6 05 3a 0d 28 00 18 dd 20 a4 63 6d |00.'..:.(... .cm| 00005c50 70 28 6f 70 25 2c 69 6e 25 2c 72 65 67 24 29 0d |p(op%,in%,reg$).| 00005c60 28 0a 0a 63 68 72 25 3d 30 0d 28 14 20 66 64 25 |(..chr%=0.(. fd%| 00005c70 3d a4 65 76 61 6c 28 72 65 67 24 2c 22 46 22 2c |=.eval(reg$,"F",| 00005c80 63 68 72 25 29 3c 3c 31 36 0d 28 1e 1c 66 6d 25 |chr%)<<16.(..fm%| 00005c90 3d a4 65 76 61 6c 28 72 65 67 24 2c 22 46 22 2c |=.eval(reg$,"F",| 00005ca0 63 68 72 25 29 0d 28 28 36 e7 20 63 68 72 25 3d |chr%).((6. chr%=| 00005cb0 30 20 8c 20 66 6d 25 3d a4 63 6f 6e 73 74 61 6e |0 . fm%=.constan| 00005cc0 74 28 72 65 67 24 2c 63 68 72 25 29 3a 69 25 3d |t(reg$,chr%):i%=| 00005cd0 31 3c 3c 33 20 8b 20 69 25 3d 30 0d 28 32 30 3d |1<<3 . i%=0.(20=| 00005ce0 69 6e 25 20 84 20 28 6f 70 25 3c 3c 32 31 29 20 |in% . (op%<<21) | 00005cf0 84 20 66 64 25 20 84 20 69 25 20 84 20 66 6d 25 |. fd% . i% . fm%| 00005d00 20 84 20 26 45 39 30 46 31 31 30 0d ff | . &E90F110..| 00005d0d