Home » Recent acquisitions » Acorn ADFS disks » adfs_AcornUser_199508.adf » !Regulars » Regulars/StarInfo/Draw/DrenderS
Regulars/StarInfo/Draw/DrenderS
This website contains an archive of files for the Acorn Electron, BBC Micro, Acorn Archimedes, Commodore 16 and Commodore 64 computers, which Dominic Ford has rescued from his private collection of floppy disks and cassettes.
Some of these files were originally commercial releases in the 1980s and 1990s, but they are now widely available online. I assume that copyright over them is no longer being asserted. If you own the copyright and would like files to be removed, please contact me.
Tape/disk: | Home » Recent acquisitions » Acorn ADFS disks » adfs_AcornUser_199508.adf » !Regulars |
Filename: | Regulars/StarInfo/Draw/DrenderS |
Read OK: | ✔ |
File size: | 5361 bytes |
Load address: | 0000 |
Exec address: | 0000 |
File contents
10REM >DrenderS 20REM Source for Drawfile render module 30REM by DCA 40REM (c) AU August 1995 50: 60DIM code 40*1024 70PRINT'"Assembling code..." 80 90ON ERROR PRINT REPORT$" at line ";ERL:END 100 110p%=0 120origx=FNalloc(4) 130origy=FNalloc(4) 140xscale=FNalloc(4) 150yscale=FNalloc(4) 160 170scale=FNalloc(16) 180cap_and_join=FNalloc(16) 190transform=FNalloc(24) 200gox=FNalloc(4) 210goy=FNalloc(4) 220xeig=FNalloc(4) 230yeig=FNalloc(4) 240gwind=FNalloc(16) 250font_tab=FNalloc(4*256):fname=font_tab 260col_tab=FNalloc(1024) 270needed%=p% 280PRINT;p%;" bytes workspace required" 290 300r0=0:r1=1:r2=2:r3=3:r4=4:r5=5:r6=6:r7=7:r8=8:r9=9:r10=10:r11=11 310wp=12:sp=13:link=14:pc=15 320vbit=1<<28 330 340FOR pass%=0 TO 2 STEP 2 350P%=code 360[OPT pass% 370 EQUD 0 380 EQUD mod_init-code 390 EQUD mod_quit-code 400 EQUD 0 410 EQUD mod_title-code 420 EQUD mod_help-code 430 EQUD 0 440 EQUD &C9440 450 EQUD swi_code-code 460 EQUD swi_table-code 470 EQUD 0 480 490.mod_title 500 EQUS "Drender" 510 EQUB 0 520.mod_help 530 EQUS "Drender"+CHR$9+CHR$9+"0.10 (25-May-1995) " 540 550 EQUB 0 560ALIGN 570 580.mod_init 590 STMFD (sp)!,{r1-r11,link} 600 MOV r3,#needed% AND &FF 610 ORR r3,r3,#needed% AND &FF00 620 BL malloc 630 LDMVSFD (sp)!,{r1-r11,pc} 640 STR r2,[wp] 650 LDMFD (sp)!,{r1-r11,pc} 660 670 ; on entry, r3=bytes needed, on exit r2->workspace 680 690.malloc 700 STMFD (sp)!,{r0,r1,r3,link} 710 MOV r2,#0 720 MOV r0,#6 730 SWI "XOS_Module" 740 LDMFD (sp)!,{r0,r1,r3,link} 750 CMP r2,#0 760 ADREQ r0,cant_alloc 770 ORREQ pc,link,#vbit 780 MOV pc,link 790 800.cant_alloc 810 EQUD 0 820 EQUS "No room in RMA" 830 EQUB 0 840 ALIGN 850 860.free 870 STMFD (sp)!,{r0-r2,link} 880 MOV r0,#7 890 SWI "XOS_Module" 900 LDMFD (sp)!,{r0-r2,pc} 910 920.mod_quit 930 STMFD (sp)!,{r1-r11,link} 940 LDR r2,[wp] 950 BL free 960 LDMFD (sp)!,{r1-r11,pc} 970 980.swi_table 990 EQUS "Drender" 1000 EQUB 0 1010 EQUS "Render" 1020 EQUB 0 1030 EQUS "Load" 1040 EQUB 0 1050 EQUS "Discard" 1060 EQUB 0 1070 EQUB 0 1080 ALIGN 1090 1100.swi_code 1110 LDR wp,[wp] 1120 CMP r11,#2 1130 BHI bad_swi 1140 ADD pc,pc,r11,LSL #2 1150 EQUS "zebu" 1160 B Render 1170 B Load 1180 B Discard 1190 1200.bad_swi 1210 ADR r0,uk_err 1220 ORRS pc,link,#vbit 1230 1240.uk_err 1250 EQUD 0 1260 EQUS "Unknown Drender SWI" 1270 EQUB 0 1280 ALIGN 1290 1300 ; R0 -> diagram (preceded by length) 1310 ; R1 = flags - bit 0 set if R4,R5 contain scale factors 1320 ; R2,r3 - plot at x,y 1330 ; R4,R5 - x,y scale factors (if bit 0 of R1 set) 1340 1350.Render 1360 STMFD (sp)!,{r0-r11,link} 1370 TST r1,#%1 1380 MOVEQ r4,#&10000 1390 MOVEQ r5,#&10000 1400 STMIA wp,{r2-r5} 1410 ADR r0,read_vdu 1420 ADD r1,wp,#gox 1430 SWI "XOS_ReadVduVariables" 1440 ADD r1,r1,#8 ; convert gwind into OS co-ords 1450 LDMIA r1,{r2-r7} 1460 MOV r4,r4,LSL r2 1470 MOV r5,r5,LSL r3 1480 MOV r6,r6,LSL r2 1490 MOV r7,r7,LSL r3 1500 SUB r4,r4,#16 1510 SUB r5,r5,#16 1520 ADD r6,r6,#16 1530 ADD r7,r7,#16 1540 ADD r1,r1,#8 1550 STMIA r1,{r4-r7} 1560 LDMIA sp,{r0-r5} 1570 LDR r1,[r0] 1580 ADD r1,r1,r0 1590 ADD r0,r0,#44 1600 BL render_group 1610 LDMFD (sp)!,{r0-r11,pc} 1620 1630.read_vdu 1640 DCD 136 1650 DCD 137 1660 DCD 4 1670 DCD 5 1680 DCD 128 1690 DCD 129 1700 DCD 130 1710 DCD 131 1720 DCD -1 1750 1751 ; r0->group, r1->end 1752 1770.render_group 1780 STMFD (sp)!,{r0-r11,link} 1790.group_loop 1800 CMP r0,r1 1810 LDMGEFD (sp)!,{r0-r11,pc} 1820 LDR r2,[r0] 1830 CMP r2,#13 1840 BHI next_obj 1850 STMFD (sp)!,{r0-r2} 1860 CMP r2,#0 1870 BEQ no_bounding_box 1880 1890 ADD r0,r0,#8 1900 LDMIA r0,{r7-r10} ; get bounding box 1910 LDMIA wp,{r3-r6} ; get origin, scale 1920 1930 MOV r7,r7,ASR #8 1940 MUL r7,r5,r7 1950 MOV r7,r7,ASR #16 1960 ADD r7,r7,r3 1970 LDR r0,[wp,#gwind+8] 1980 CMP r7,r0 1990 BGT next_obj 2000 2010 MOV r8,r8,ASR #8 2020 MUL r8,r6,r8 2030 MOV r8,r8,ASR #16 2040 ADD r8,r8,r4 2050 LDR r0,[wp,#gwind+12] 2060 CMP r8,r0 2070 BGT next_obj 2080 2090 MOV r9,r9,ASR #8 2100 MUL r9,r5,r9 2110 MOV r9,r9,ASR #16 2120 ADD r9,r9,r3 2130 LDR r0,[wp,#gwind+0] 2140 CMP r9,r0 2150 BLT next_obj 2160 2170 MOV r10,r10,ASR #8 2180 MUL r10,r6,r10 2190 MOV r10,r10,ASR #16 2200 ADD r10,r10,r4 2210 LDR r0,[wp,#gwind+4] 2220 CMP r10,r0 2230 BLT next_obj 2240 2250 LDMFD (sp),{r0-r2} 2260 2270.no_bounding_box 2280 ADD pc,pc,r2,LSL #2 2290 EQUS "burp" 2300 B font_table 2310 B text_obj 2320 B path_obj 2330 B next_obj 2340 B next_obj 2350 B sprite_obj 2360 B group_obj 2370 B next_obj 2380 B next_obj 2390 B next_obj 2400 B next_obj 2410 B next_obj 2420 B transtext_obj 2430 B transsprite_obj 2440.next_obj 2450 LDMFD (sp)!,{r0-r2} 2460 FNclrv 2470 LDR r2,[r0,#4] 2480 ADD r0,r0,r2 2490 B group_loop 2500 2510.font_table 2520 LDR r1,[r0,#4] 2530 ADD r1,r1,r0 2540 ADD r0,r0,#8 2550 ADD r3,wp,#font_tab 2560.font_table_loop 2570 CMP r0,r1 2580 BGE next_obj 2590 LDRB r2,[r0],#1 ; font number 2600 STR r0,[r3,r2,LSL #2] 2610.skip_font_name 2620 LDRB r2,[r0],#1 2630 CMP r2,#0 2640 BNE skip_font_name 2650 B font_table_loop 2660 2670.transtext_obj 2680 ADD r10,r0,#24 2690 ADD r8,r0,#52 2700 B general_text 2710.text_obj 2720 MOV r10,#0 2730 ADD r8,r0,#24 2740.general_text 2750 ADD r1,wp,#font_tab 2760 LDR r14,[r8,#8] 2770 CMP r14,#0 2780 BEQ sys_text 2790 LDR r1,[r1,r14,LSL #2] 2800 2810 LDR r0,[r8,#12] 2820 MOV r0,r0,ASR #8 2830 LDR r14,[wp,#xscale] 2840 MOV r14,r14,ASR #8 2850 MUL r0,r14,r0 2860 LDR r14,div_by_28 2870 MUL r0,r14,r0 2880 MOV r2,r0,ASR #16 2890 2900 LDR r0,[r8,#16] 2910 MOV r0,r0,ASR #8 2920 LDR r14,[wp,#yscale] 2930 MOV r14,r14,ASR #8 2940 MUL r0,r14,r0 2950 LDR r14,div_by_28 2960 MUL r0,r14,r0 2970 MOV r3,r0,ASR #16 2980 MOV r4,#0 2990 MOV r5,#0 3000 SWI "XFont_FindFont" 3010 BVS sys_text 3020 MOV r11,r0 3030 3040 LDR r1,[r8,#4] 3050 LDR r2,[r8] 3060 MOV r3,#14 3070 SWI "XColourTrans_SetFontColours" 3080 3090 LDR r3,[r8,#20] 3100 LDR r14,[wp,#xscale] 3110 MOV r14,r14,ASR #8 3120 MUL r3,r14,r3 3130 MOV r3,r3,ASR #12 3140 MOV r14,#25 3150 MUL r3,r14,r3 3160 3170 LDR r5,[wp,#gox] 3180 LDR r14,[wp,#origx] 3190 ADD r5,r5,r14 3200 MOV r14,#400 3210 MLA r3,r5,r14,r3 3220 3230 LDR r4,[r8,#24] 3240 LDR r14,[wp,#yscale] 3250 MOV r14,r14,ASR #8 3260 MUL r4,r14,r4 3270 MOV r4,r4,ASR #12 3280 MOV r14,#25 3290 MUL r4,r14,r4 3300 3310 LDR r5,[wp,#goy] 3320 LDR r14,[wp,#origy] 3330 ADD r5,r5,r14 3340 MOV r14,#400 3350 MLA r4,r5,r14,r4 3360 3370 MOV r0,#0 3380 ADD r1,r8,#28 3390 MOV r2,#0 3400 MOV r5,#0 3410 MOVS r6,r10 3420 ORRNE r2,r2,#%1000000 3430 LDRNE r14,[r10,#24] 3440 ANDNE r14,r14,#%11 3450 ORRNE r2,r2,r14,LSL #9 3460 MOV r7,#0 3470 SWI "XFont_Paint" 3480 3490 MOV r0,r11 3500 SWI "XFont_LoseFont" 3510 3520 B next_obj 3530 3540.sys_text 3550 FNclrv 3560 ADD r9,r8,#28 3570 MOV r10,#0 3580.count_chars 3590 LDRB r14,[r9,r10] 3600 CMP r14,#0 3610 ADDNE r10,r10,#1 3620 BNE count_chars 3630 CMP r10,#0 3640 BEQ next_obj 3650 3660 LDR r0,[r8] 3670 MOV r3,#&100 3680 MOV r4,#0 3690 SWI "XColourTrans_SetGCOL" 3700 LDR r0,[sp] 3710 ADD r0,r0,#8 3720 LDMIA r0,{r2-r5} 3730 SUB r0,r4,r2 3740 LDR r1,[wp,#xscale] 3750 BL mul64 3760 MOV r2,r0,LSR #24 3770 ORR r2,r2,r1,LSL #8 3780 SUB r0,r5,r3 3790 LDR r1,[wp,#yscale] 3800 BL mul64 3810 MOV r3,r0,LSR #24 3820 ORR r3,r3,r1,LSL #8 3830 LDR r14,[wp,#xeig] 3840 ADD r14,r14,#3 3850 MOV r4,r10,LSL r14 3860 LDR r14,[wp,#yeig] 3870 MOV r5,#8 3880 MOV r5,r5,LSL r14 3890 ADD r6,wp,#scale 3900 STMIA r6,{r2-r5} 3910 3920 LDR r0,[wp,#scale] 3930 LDR r14,[wp,#xeig] 3940 ADD r14,r14,#3 3950 MOV r0,r0,LSL r14 3960 LDR r1,[wp,#scale+8] 3970 BL divide 3980 MOV r10,r2 3990 4000 LDR r3,[sp] 4010 ADD r3,r3,#8 4020 LDMIA r3,{r3,r4} 4030 MOV r0,r3 4040 LDR r1,[wp,#xscale] 4050 BL mul64 4060 MOV r3,r0,LSR #24 4070 ORR r3,r3,r1,LSL #8 4080 MOV r0,r4 4090 LDR r1,[wp,#yscale] 4100 BL mul64 4110 MOV r4,r0,LSR #24 4120 ORR r4,r4,r1,LSL #8 4130 4140 LDMIA wp,{r0,r1} 4150 ADD r3,r3,r0 4160 ADD r4,r4,r1 4170 4180 MOV r0,#51 4190.paint_sys 4200 LDRB r1,[r9],#1 4210 CMP r1,#0 4220 BEQ next_obj 4230 SWI "XOS_SpriteOp" 4240 ADD r3,r3,r10 4250 B paint_sys 4260 4270 ; divide r0 by r1, result in r2 4280 4290.divide 4300 STMFD (sp)!,{r0,r1,link} 4310 MOV r14,r1 4320 CMP r14,r0,LSR #1 4330.div01 MOVLS r14,r14,LSL #1 4340 CMPLS r14,r0,LSR #1 4350 BLS div01 4360 MOV r2,#0 4370.div02 CMP r0,r14 4380 SUBCS r0,r0,r14 4390 ADC r2,r2,r2 4400 MOV r14,r14,LSR #1 4410 CMP r14,r1 4420 BCS div02 4430 LDMFD (sp)!,{r0,r1,pc} 4440 4450 ; multiply r0 by r1, result in r0 (low), r1 (high) 4460 4470.mul64 4480 STMFD (sp)!,{r2-r5,link} 4490 MOV r2,r0,ASR #16 4500 MOV r3,r1,ASR #16 4510 BIC r0,r0,r2,LSL #16 4520 BIC r1,r1,r3,LSL #16 4530 MUL r4,r0,r1 4540 MUL r5,r2,r3 4550 MUL r0,r3,r0 4560 MLAS r1,r2,r1,r0 4570 ADDCS r5,r5,#&10000 4580 ADDS r0,r4,r1,LSL #16 4590 ADC r1,r5,r1,ASR #16 4600 LDMFD (sp)!,{r2-r5,pc} 4610 4620.div_by_28 4630 DCD &10000/&28 4640 4650.path_obj 4660 ADD r8,r0,#24 4670 LDR r11,[r8,#12] 4680 TST r11,#128 4690 ADDNE r6,r8,#16 ; r6->dash pattern 4700 LDRNE r10,[r6,#4] ; r7->path 4710 ADDNE r10,r6,r10,LSL #2 4720 ADDNE r10,r10,#8 4730 MOVEQ r6,#0 4740 ADDEQ r10,r8,#16 4750 TST r11,#64 4760 MOVNE r9,#%10 4770 MOVEQ r9,#0 4780 4790 AND r14,r11,#%11 4800 STRB r14,[wp,#cap_and_join] 4810 AND r14,r11,#%1100 4820 MOV r14,r14,LSR #2 4830 STRB r14,[wp,#cap_and_join+1] 4840 AND r14,r11,#%110000 4850 MOV r14,r14,LSR #4 4860 STRB r14,[wp,#cap_and_join+2] 4870 MOV r14,#0 4880 STRB r14,[wp,#cap_and_join+3] 4890 4900 MOV r14,#10*&10000 4910 STR r14,[wp,#cap_and_join+4] 4920 4930 MOV r14,r11,LSR #16 4940 AND r14,r14,#&FF 4950 MOV r0,r14,LSL #4 4960 MOV r14,r11,LSR #24 4970 ORR r0,r0,r14,LSL #20 4980 STR r0,[wp,#cap_and_join+8] 4990 STR r0,[wp,#cap_and_join+12] 5000 5010 LDR r0,[wp,#xscale] 5020 MOV r1,#0 5030 MOV r2,#0 5040 ADD r14,wp,#transform 5050 STMIA r14!,{r0-r2} 5060 LDR r0,[wp,#yscale] 5070 LDMIA wp,{r1,r2} 5080 MOV r1,r1,LSL #8 5090 MOV r2,r2,LSL #8 5100 STMIA r14!,{r0-r2} 5110 5120 LDR r0,[r8] 5130 CMN r0,#1 5140 BEQ no_fill 5150 MOV r3,#&100 5160 MOV r4,#0 5170 SWI "XColourTrans_SetGCOL" 5180 MOV r0,r10 5190 ORR r1,r9,#%110000 5200 ADD r2,wp,#transform 5210 MOV r3,#0 5220 SWI "XDraw_Fill" 5230.no_fill 5240 LDR r0,[r8,#4] 5250 CMN r0,#1 5260 BEQ no_outline 5270 MOV r3,#&100 5280 MOV r4,#0 5290 SWI "XColourTrans_SetGCOL" 5300 MOV r0,r10 5310 ADD r2,wp,#transform 5320 MOV r3,#0 5330 LDR r4,[r8,#8] 5340 CMP r4,#0 5350 ORREQ r1,r9,#%011000 5360 ORRNE r1,r9,#%111000 5370 ADD r5,wp,#cap_and_join 5380 SWI "XDraw_Stroke" 5390.no_outline 5400 B next_obj 5410 5420.group_obj 5430 LDR r1,[r0,#4] 5440 ADD r1,r1,r0 5450 ADD r0,r0,#36 5460 BL render_group 5470 B next_obj 5480 5490.sprite_obj 5500 MOV r8,r0 5510 5520 ADD r10,r8,#24 5530 BL build_coltab 5540 5550 BVS next_obj 5560 5570 LDR r0,[r8,#24+40] 5580 MOV r1,#4 5590 SWI "XOS_ReadModeVariable" 5600 MOV r10,r2 5610 MOV r1,#5 5620 SWI "XOS_ReadModeVariable" 5630 MOV r11,r2 5640 5650 MOV r0,#&200+40 5660 ADR r1,dummy_sprarea 5670 ADD r2,r8,#24 5680 SWI "XOS_SpriteOp" 5690 5700 MOV r3,r3,LSL r10 5710 STR r3,[wp,#scale+8] 5720 MOV r4,r4,LSL r11 5730 STR r4,[wp,#scale+12] 5740 5750 LDR r2,[wp,#xeig] 5760 RSB r10,r10,#16 5770 ADD r10,r10,r2 5780 LDR r2,[wp,#yeig] 5790 RSB r11,r11,#16 5800 ADD r11,r11,r2 5810 5820 ADD r14,r8,#8 5830 LDMIA r14,{r4-r7} 5840 5850 LDR r0,[wp,#xscale] 5860 MOV r0,r0,ASR #8 5870 SUB r1,r6,r4 5880 MUL r0,r1,r0 5890 MOV r0,r0,ASR r10 5900 STR r0,[wp,#scale] 5910 LDR r0,[wp,#yscale] 5920 MOV r0,r0,ASR #8 5930 SUB r1,r7,r5 5940 MUL r0,r1,r0 5950 MOV r0,r0,ASR r11 5960 STR r0,[wp,#scale+4] 5970 5980 5990 LDR r0,[wp,#xscale] 6000 MOV r1,r4 6010 BL mul64 6020 MOV r3,r0,LSR #24 6030 ORR r3,r3,r1,LSL #8 6040 LDR r14,[wp,#origx] 6050 ADD r3,r3,r14 6060 LDR r0,[wp,#yscale] 6070 MOV r1,r5 6080 BL mul64 6090 MOV r4,r0,LSR #24 6100 ORR r4,r4,r1,LSL #8 6110 LDR r14,[wp,#origy] 6120 ADD r4,r4,r14 6130 MOV r5,#8 6140 ADD r6,wp,#scale 6150 FNadr(r7,col_tab) 6160 MOV r0,#&200+52 6170 ADR r1,dummy_sprarea 6180 ADD r2,r8,#24 6190 SWI "XOS_SpriteOp" 6200 6210 B next_obj 6220 6230.transsprite_obj 6240 MOV r8,r0 6250 ADD r10,r8,#48 6260 BL build_coltab 6270 BVS next_obj 6280 6290 ADD r14,r8,#24 6300 LDMIA r14,{r2-r7} 6310 6320 LDR r9,[wp,#xscale] 6330 MOV r0,r2 6340 MOV r1,r9 6350 BL mul64 6360 MOV r2,r0,LSR #16 6370 ORR r2,r2,r1,LSL #16 6380 MOV r0,r4 6390 MOV r1,r9 6400 LDR r1,[wp,#xscale] 6410 BL mul64 6420 MOV r4,r0,LSR #16 6430 ORR r4,r4,r1,LSL #16 6440 MOV r0,r6 6450 MOV r1,r9 6460 LDR r1,[wp,#xscale] 6470 BL mul64 6480 MOV r6,r0,LSR #16 6490 ORR r6,r6,r1,LSL #16 6500 6510 LDR r9,[wp,#yscale] 6520 MOV r0,r3 6530 MOV r1,r9 6540 BL mul64 6550 MOV r3,r0,LSR #16 6560 ORR r3,r3,r1,LSL #16 6570 MOV r0,r5 6580 MOV r1,r9 6590 LDR r1,[wp,#xscale] 6600 BL mul64 6610 MOV r5,r0,LSR #16 6620 ORR r5,r5,r1,LSL #16 6630 MOV r0,r7 6640 MOV r1,r9 6650 LDR r1,[wp,#xscale] 6660 BL mul64 6670 MOV r7,r0,LSR #16 6680 ORR r7,r7,r1,LSL #16 6690 6700 LDMIA wp,{r0,r1} 6710 ADD r6,r6,r0,LSL #8 6720 ADD r7,r7,r1,LSL #8 6730 ADD r14,wp,#transform 6740 STMIA r14,{r2-r7} 6750 6760 MOV r0,#&200+56 6770 ADR r1,dummy_sprarea 6780 ADD r2,r8,#48 6790 MOV r3,#0 6800 MOV r4,#0 6810 MOV r5,#8+16 6820 ADD r6,wp,#transform 6830 FNadr(r7,col_tab) 6840 SWI "XOS_SpriteOp" 6850 B next_obj 6860 6870 ; r10->sprite 6880 6890.build_coltab 6900 STMFD (sp)!,{link} 6910 6920 LDR r14,[r10,#32] 6930 CMP r14,#44 6940 BNE bct2 6950 LDR r0,[r10,#40] 6960 MOVS r14,r0,LSR #27 6970 BNE bct2 ; new format sprite 6980 MOV r1,#3 6990 SWI "XOS_ReadModeVariable" 7000 CMP r2,#15 7010 BGT bct2 7020 MOV r0,#&200 7030 ADR r1,dummy_sprarea 7040 MOV r2,r10 7050 MOV r3,#0 7060 MOV r4,#0 7070 MOV r5,#0 7080 MOV r6,#0 7090 FNadr(r7,col_tab) 7100 SWI "XWimp_ReadPixTrans" 7110 LDMFD (sp)!,{pc} 7120 7130.bct2 7140 ADR r0,dummy_sprarea 7150 MOV r1,r10 7160 MVN r2,#0 7170 MVN r3,#0 7180 FNadr(r4,col_tab) 7190 MOV r5,#1 7200 SWI "XColourTrans_SelectTable" 7210 LDMFD (sp)!,{pc} 7220 7230.dummy_sprarea 7240 DCD 16 7250 DCD 0 7260 DCD 16 7270 DCD 16 7280 7290 ; On entry, r0->file name, on exit, r0=handle (address) 7300 7310.Load 7320 STMFD (sp)!,{r0-r11,link} 7330 ADD r1,wp,#fname 7340.copy_fname 7350 LDRB r14,[r0],#1 7360 CMP r14,#32 7370 MOVLT r14,#0 7380 STRB r14,[r1],#1 7390 CMP r14,#0 7400 BNE copy_fname 7410 ADD r1,wp,#fname 7420 MOV r0,#5 7430 SWI "XOS_File" 7440 CMP r0,#1 7450 BEQ load2 7460 MOV r2,r0 7470 MOV r0,#19 7480 ADD r1,wp,#fname 7490 SWI "XOS_File" 7500 ADD sp,sp,#4 7510 LDMFD (sp)!,{r1-r11,pc} 7520.load2 7530 ADD r3,r4,#4 7540 BL malloc 7550 ADDVS sp,sp,#4 7560 LDMVSFD (sp)!,{r1-r11,pc} 7570 STR r3,[r2] 7580 STR r2,[sp] 7590 MOV r0,#255 7600 ADD r1,wp,#fname 7610 ADD r2,r2,#4 7620 MOV r3,#0 7630 SWI "XOS_File" 7640 STRVS r0,[sp] 7650 LDMFD (sp)!,{r0-r11,pc} 7660 7670 ; On entry, r0=handle 7680 7690.Discard 7700 STMFD (sp)!,{r0-r2,link} 7710 MOV r2,r0 7720 BL free 7730 LDMFD (sp)!,{r0-r2,pc} 7740] 7750Module_End=P% 7760NEXT 7770SYS "OS_File",10,"@.Drender",&FFA,,code,Module_End 7780PRINT"Module size=";Module_End-code;" bytes" 7790END 7800: 7810DEF FNalloc(size%) 7820p%+=size% 7830=p%-size% 7840: 7850DEF FNadr(reg,off%) 7860LOCAL temp% 7870temp%=off% 7880WHILE temp%<>0 AND ((temp% AND 1)=0) 7890 temp%=temp%>>1 7900ENDWHILE 7910IF off%<=256 OR temp%<=128 THEN 7920[OPT pass% 7930 ADD reg,wp,#off% 7940] 7950ELSE 7960[OPT pass% 7970 ADD reg,wp,#off% AND &FF 7980 ADD reg,reg,#off% AND &FF00 7990] 8000ENDIF 8010=0 8020: 8030DEF FNclrv 8040[OPT pass% 8050 CMP pc,#0 8060] 8070=0
� >DrenderS +� Source for Drawfile render module � by DCA (� (c) AU August 1995 2: <� code 40*1024 F�'"Assembling code..." P Z� � � �$" at line ";�:� d np%=0 xorigx=�alloc(4) �origy=�alloc(4) �xscale=�alloc(4) �yscale=�alloc(4) � �scale=�alloc(16) �cap_and_join=�alloc(16) �transform=�alloc(24) �gox=�alloc(4) �goy=�alloc(4) �xeig=�alloc(4) �yeig=�alloc(4) �gwind=�alloc(16) �)font_tab=�alloc(4*256):fname=font_tab col_tab=�alloc(1024) needed%=p% $�;p%;" bytes workspace required" " ,Cr0=0:r1=1:r2=2:r3=3:r4=4:r5=5:r6=6:r7=7:r8=8:r9=9:r10=10:r11=11 6wp=12:sp=13:link=14:pc=15 @vbit=1<<28 J T� pass%=0 � 2 � 2 ^P%=code h[OPT pass% r EQUD 0 |! EQUD mod_init-code �! EQUD mod_quit-code � EQUD 0 �" EQUD mod_title-code �! EQUD mod_help-code � EQUD 0 � EQUD &C9440 �! EQUD swi_code-code �" EQUD swi_table-code � EQUD 0 � �.mod_title � EQUS "Drender" � EQUB 0 .mod_help 9 EQUS "Drender"+�9+�9+"0.10 (25-May-1995) " & EQUB 0 0 ALIGN : D .mod_init N' STMFD (sp)!,{r1-r11,link} X% MOV r3,#needed% � &FF b) �R r3,r3,#needed% � &FF00 l BL malloc v% LDMVSFD (sp)!,{r1-r11,pc} � STR r2,[wp] �% LDMFD (sp)!,{r1-r11,pc} � �7 ; on entry, r3=bytes needed, on exit r2->workspace � �.malloc �) STMFD (sp)!,{r0,r1,r3,link} � MOV r2,#0 � MOV r0,#6 � SWI "XOS_Module" �) LDMFD (sp)!,{r0,r1,r3,link} � CMP r2,#0 �! ADREQ r0,cant_alloc �REQ pc,link,#vbit MOV pc,link .cant_alloc * EQUD 0 4$ EQUS "No room in RMA" > EQUB 0 H ALIGN R \ .free f& STMFD (sp)!,{r0-r2,link} p MOV r0,#7 z SWI "XOS_Module" �$ LDMFD (sp)!,{r0-r2,pc} � � .mod_quit �' STMFD (sp)!,{r1-r11,link} � LDR r2,[wp] � BL free �% LDMFD (sp)!,{r1-r11,pc} � �.swi_table � EQUS "Drender" � EQUB 0 � EQUS "Render" � EQUB 0 EQUS "Load" EQUB 0 EQUS "Discard" $ EQUB 0 . EQUB 0 8 ALIGN B L .swi_code V LDR wp,[wp] ` CMP r11,#2 j BHI bad_swi t$ ADD pc,pc,r11,LSL #2 ~ EQUS "zebu" � B Render � B Load � B Discard � �.bad_swi � ADR r0,uk_err � �RS pc,link,#vbit � �.uk_err � EQUD 0 �) EQUS "Unknown Drender SWI" � EQUB 0 ALIGN ) ; R0 -> diagram (preceded by length) = ; R1 = flags - bit 0 set if R4,R5 contain scale factors ( ; R2,r3 - plot at x,y 25 ; R4,R5 - x,y scale factors (if bit 0 of R1 set) < F.Render P' STMFD (sp)!,{r0-r11,link} Z TST r1,#%1 d �Q r4,#&10000 n �Q r5,#&10000 x STMIA wp,{r2-r5} � ADR r0,read_vdu � ADD r1,wp,#gox �* SWI "XOS_ReadVduVariables" �@ ADD r1,r1,#8 ; convert gwind into OS co-ords � LDMIA r1,{r2-r7} � MOV r4,r4,LSL r2 � MOV r5,r5,LSL r3 � MOV r6,r6,LSL r2 � MOV r7,r7,LSL r3 � SUB r4,r4,#16 � SUB r5,r5,#16 � ADD r6,r6,#16 � ADD r7,r7,#16 ADD r1,r1,#8 STMIA r1,{r4-r7} LDMIA sp,{r0-r5} " LDR r1,[r0] , ADD r1,r1,r0 6 ADD r0,r0,#44 @ BL render_group J% LDMFD (sp)!,{r0-r11,pc} T ^ .read_vdu h DCD 136 r DCD 137 | DCD 4 � DCD 5 � DCD 128 � DCD 129 � DCD 130 � DCD 131 � DCD -1 � � ; r0->group, r1->end � �.render_group �' STMFD (sp)!,{r0-r11,link} �.group_loop CMP r0,r1 % LDMGEFD (sp)!,{r0-r11,pc} LDR r2,[r0] & CMP r2,#13 0 BHI next_obj :! STMFD (sp)!,{r0-r2} D CMP r2,#0 N# BEQ no_bounding_box X b ADD r0,r0,#8 l2 LDMIA r0,{r7-r10} ; get bounding box v3 LDMIA wp,{r3-r6} ; get origin, scale � � MOV r7,r7,ASR #8 � MUL r7,r5,r7 �! MOV r7,r7,ASR #16 � ADD r7,r7,r3 �$ LDR r0,[wp,#gwind+8] � CMP r7,r0 � BGT next_obj � � MOV r8,r8,ASR #8 � MUL r8,r6,r8 �! MOV r8,r8,ASR #16 � ADD r8,r8,r4 % LDR r0,[wp,#gwind+12] CMP r8,r0 BGT next_obj * MOV r9,r9,ASR #8 4 MUL r9,r5,r9 >! MOV r9,r9,ASR #16 H ADD r9,r9,r3 R$ LDR r0,[wp,#gwind+0] \ CMP r9,r0 f BLT next_obj p z" MOV r10,r10,ASR #8 � MUL r10,r6,r10 �# MOV r10,r10,ASR #16 � ADD r10,r10,r4 �$ LDR r0,[wp,#gwind+4] � CMP r10,r0 � BLT next_obj � � LDMFD (sp),{r0-r2} � �.no_bounding_box �# ADD pc,pc,r2,LSL #2 � EQUS "burp" � B font_table B text_obj B path_obj B next_obj $ B next_obj . B sprite_obj 8 B group_obj B B next_obj L B next_obj V B next_obj ` B next_obj j B next_obj t! B transtext_obj ~# B transsprite_obj � .next_obj �! LDMFD (sp)!,{r0-r2} � �clrv � LDR r2,[r0,#4] � ADD r0,r0,r2 � B group_loop � �.font_table � LDR r1,[r0,#4] � ADD r1,r1,r0 � ADD r0,r0,#8 �# ADD r3,wp,#font_tab .font_table_loop CMP r0,r1 BGE next_obj , LDRB r2,[r0],#1 ; font number (% STR r0,[r3,r2,LSL #2] 2.skip_font_name < LDRB r2,[r0],#1 F CMP r2,#0 P" BNE skip_font_name Z# B font_table_loop d n.transtext_obj x ADD r10,r0,#24 � ADD r8,r0,#52 � B general_text � .text_obj � MOV r10,#0 � ADD r8,r0,#24 �.general_text �# ADD r1,wp,#font_tab � LDR r14,[r8,#8] � CMP r14,#0 � BEQ sys_text �& LDR r1,[r1,r14,LSL #2] � � LDR r0,[r8,#12] MOV r0,r0,ASR #8 $ LDR r14,[wp,#xscale] " MOV r14,r14,ASR #8 " MUL r0,r14,r0 ,! LDR r14,div_by_28 6 MUL r0,r14,r0 @! MOV r2,r0,ASR #16 J T LDR r0,[r8,#16] ^ MOV r0,r0,ASR #8 h$ LDR r14,[wp,#yscale] r" MOV r14,r14,ASR #8 | MUL r0,r14,r0 �! LDR r14,div_by_28 � MUL r0,r14,r0 �! MOV r3,r0,ASR #16 � MOV r4,#0 � MOV r5,#0 �$ SWI "XFont_FindFont" � BVS sys_text � MOV r11,r0 � � LDR r1,[r8,#4] � LDR r2,[r8] � MOV r3,#14 �1 SWI "XColourTrans_SetFontColours" LDR r3,[r8,#20] $ LDR r14,[wp,#xscale] &" MOV r14,r14,ASR #8 0 MUL r3,r14,r3 :! MOV r3,r3,ASR #12 D MOV r14,#25 N MUL r3,r14,r3 X b LDR r5,[wp,#gox] l# LDR r14,[wp,#origx] v ADD r5,r5,r14 � MOV r14,#400 � MLA r3,r5,r14,r3 � � LDR r4,[r8,#24] �$ LDR r14,[wp,#yscale] �" MOV r14,r14,ASR #8 � MUL r4,r14,r4 �! MOV r4,r4,ASR #12 � MOV r14,#25 � MUL r4,r14,r4 � � LDR r5,[wp,#goy] �# LDR r14,[wp,#origy] ADD r5,r5,r14 MOV r14,#400 MLA r4,r5,r14,r4 * MOV r0,#0 4 ADD r1,r8,#28 > MOV r2,#0 H MOV r5,#0 R MOVS r6,r10 \" �RNE r2,r2,#%1000000 f! LDRNE r14,[r10,#24] p �NE r14,r14,#%11 z# �RNE r2,r2,r14,LSL #9 � MOV r7,#0 �! SWI "XFont_Paint" � � MOV r0,r11 �$ SWI "XFont_LoseFont" � � B next_obj � � .sys_text � �clrv � ADD r9,r8,#28 � MOV r10,#0 �.count_chars LDRB r14,[r9,r10] CMP r14,#0 ADDNE r10,r10,#1 $ BNE count_chars . CMP r10,#0 8 BEQ next_obj B L LDR r0,[r8] V MOV r3,#&100 ` MOV r4,#0 j* SWI "XColourTrans_SetGCOL" t LDR r0,[sp] ~ ADD r0,r0,#8 � LDMIA r0,{r2-r5} � SUB r0,r4,r2 �# LDR r1,[wp,#xscale] � BL mul64 �! MOV r2,r0,LSR #24 �" �R r2,r2,r1,LSL #8 � SUB r0,r5,r3 �# LDR r1,[wp,#yscale] � BL mul64 �! MOV r3,r0,LSR #24 �" �R r3,r3,r1,LSL #8 �" LDR r14,[wp,#xeig] ADD r14,r14,#3 " MOV r4,r10,LSL r14 " LDR r14,[wp,#yeig] MOV r5,#8 (! MOV r5,r5,LSL r14 2 ADD r6,wp,#scale < STMIA r6,{r2-r5} F P" LDR r0,[wp,#scale] Z" LDR r14,[wp,#xeig] d ADD r14,r14,#3 n! MOV r0,r0,LSL r14 x$ LDR r1,[wp,#scale+8] � BL divide � MOV r10,r2 � � LDR r3,[sp] � ADD r3,r3,#8 � LDMIA r3,{r3,r4} � MOV r0,r3 �# LDR r1,[wp,#xscale] � BL mul64 �! MOV r3,r0,LSR #24 �" �R r3,r3,r1,LSL #8 � MOV r0,r4 �# LDR r1,[wp,#yscale] BL mul64 ! MOV r4,r0,LSR #24 " �R r4,r4,r1,LSL #8 " , LDMIA wp,{r0,r1} 6 ADD r3,r3,r0 @ ADD r4,r4,r1 J T MOV r0,#51 ^.paint_sys h LDRB r1,[r9],#1 r CMP r1,#0 | BEQ next_obj �" SWI "XOS_SpriteOp" � ADD r3,r3,r10 � B paint_sys � �$ ; divide r0 by r1, result in r2 � �.divide �& STMFD (sp)!,{r0,r1,link} � MOV r14,r1 �! CMP r14,r0,LSR #1 �".div01 MOVLS r14,r14,LSL #1 �! CMPLS r14,r0,LSR #1 � BLS div01 MOV r2,#0 .div02 CMP r0,r14 SUBCS r0,r0,r14 & ADC r2,r2,r2 0" MOV r14,r14,LSR #1 : CMP r14,r1 D BCS div02 N$ LDMFD (sp)!,{r0,r1,pc} X b7 ; multiply r0 by r1, result in r0 (low), r1 (high) l v .mul64 �& STMFD (sp)!,{r2-r5,link} �! MOV r2,r0,ASR #16 �! MOV r3,r1,ASR #16 �$ BIC r0,r0,r2,LSL #16 �$ BIC r1,r1,r3,LSL #16 � MUL r4,r0,r1 � MUL r5,r2,r3 � MUL r0,r3,r0 � MLAS r1,r2,r1,r0 �! ADDCS r5,r5,#&10000 �$ ADDS r0,r4,r1,LSL #16 �$ ADC r1,r5,r1,ASR #16 �$ LDMFD (sp)!,{r2-r5,pc} .div_by_28 DCD &10000/&28 * .path_obj 4 ADD r8,r0,#24 > LDR r11,[r8,#12] H TST r11,#128 R3 ADDNE r6,r8,#16 ; r6->dash pattern \, LDRNE r10,[r6,#4] ; r7->path f% ADDNE r10,r6,r10,LSL #2 p ADDNE r10,r10,#8 z �Q r6,#0 � ADDEQ r10,r8,#16 � TST r11,#64 � MOVNE r9,#%10 � �Q r9,#0 � � � r14,r11,#%11 �* STRB r14,[wp,#cap_and_join] � � r14,r11,#%1100 �" MOV r14,r14,LSR #2 �, STRB r14,[wp,#cap_and_join+1] �" � r14,r11,#%110000 �" MOV r14,r14,LSR #4 �, STRB r14,[wp,#cap_and_join+2] MOV r14,#0 , STRB r14,[wp,#cap_and_join+3] $" MOV r14,#10*&10000 ., STR r14,[wp,#cap_and_join+4] 8 B# MOV r14,r11,LSR #16 L � r14,r14,#&FF V! MOV r0,r14,LSL #4 `# MOV r14,r11,LSR #24 j$ �R r0,r0,r14,LSL #20 t+ STR r0,[wp,#cap_and_join+8] ~, STR r0,[wp,#cap_and_join+12] � �# LDR r0,[wp,#xscale] � MOV r1,#0 � MOV r2,#0 �% ADD r14,wp,#transform � STMIA r14!,{r0-r2} �# LDR r0,[wp,#yscale] � LDMIA wp,{r1,r2} � MOV r1,r1,LSL #8 � MOV r2,r2,LSL #8 � STMIA r14!,{r0-r2} � LDR r0,[r8] CMN r0,#1 BEQ no_fill MOV r3,#&100 ( MOV r4,#0 2* SWI "XColourTrans_SetGCOL" < MOV r0,r10 F! �R r1,r9,#%110000 P$ ADD r2,wp,#transform Z MOV r3,#0 d SWI "XDraw_Fill" n.no_fill x LDR r0,[r8,#4] � CMN r0,#1 � BEQ no_outline � MOV r3,#&100 � MOV r4,#0 �* SWI "XColourTrans_SetGCOL" � MOV r0,r10 �$ ADD r2,wp,#transform � MOV r3,#0 � LDR r4,[r8,#8] � CMP r4,#0 �! �REQ r1,r9,#%011000 �! �RNE r1,r9,#%111000 �' ADD r5,wp,#cap_and_join " SWI "XDraw_Stroke" .no_outline B next_obj " ,.group_obj 6 LDR r1,[r0,#4] @ ADD r1,r1,r0 J ADD r0,r0,#36 T BL render_group ^ B next_obj h r.sprite_obj | MOV r8,r0 � � ADD r10,r8,#24 � BL build_coltab � � BVS next_obj � �" LDR r0,[r8,#24+40] � MOV r1,#4 �* SWI "XOS_ReadModeVariable" � MOV r10,r2 � MOV r1,#5 �* SWI "XOS_ReadModeVariable" � MOV r11,r2 MOV r0,#&200+40 $ ADR r1,dummy_sprarea & ADD r2,r8,#24 0" SWI "XOS_SpriteOp" : D! MOV r3,r3,LSL r10 N$ STR r3,[wp,#scale+8] X! MOV r4,r4,LSL r11 b% STR r4,[wp,#scale+12] l v! LDR r2,[wp,#xeig] � RSB r10,r10,#16 � ADD r10,r10,r2 �! LDR r2,[wp,#yeig] � RSB r11,r11,#16 � ADD r11,r11,r2 � � ADD r14,r8,#8 � LDMIA r14,{r4-r7} � �# LDR r0,[wp,#xscale] � MOV r0,r0,ASR #8 � SUB r1,r6,r4 � MUL r0,r1,r0 ! MOV r0,r0,ASR r10 " STR r0,[wp,#scale] # LDR r0,[wp,#yscale] MOV r0,r0,ASR #8 * SUB r1,r7,r5 4 MUL r0,r1,r0 >! MOV r0,r0,ASR r11 H$ STR r0,[wp,#scale+4] R \ f# LDR r0,[wp,#xscale] p MOV r1,r4 z BL mul64 �! MOV r3,r0,LSR #24 �" �R r3,r3,r1,LSL #8 �# LDR r14,[wp,#origx] � ADD r3,r3,r14 �# LDR r0,[wp,#yscale] � MOV r1,r5 � BL mul64 �! MOV r4,r0,LSR #24 �" �R r4,r4,r1,LSL #8 �# LDR r14,[wp,#origy] � ADD r4,r4,r14 � MOV r5,#8 � ADD r6,wp,#scale �adr(r7,col_tab) MOV r0,#&200+52 $ ADR r1,dummy_sprarea $ ADD r2,r8,#24 ." SWI "XOS_SpriteOp" 8 B B next_obj L V.transsprite_obj ` MOV r8,r0 j ADD r10,r8,#48 t BL build_coltab ~ BVS next_obj � � ADD r14,r8,#24 � LDMIA r14,{r2-r7} � �# LDR r9,[wp,#xscale] � MOV r0,r2 � MOV r1,r9 � BL mul64 �! MOV r2,r0,LSR #16 �# �R r2,r2,r1,LSL #16 � MOV r0,r4 � MOV r1,r9 # LDR r1,[wp,#xscale] BL mul64 ! MOV r4,r0,LSR #16 # �R r4,r4,r1,LSL #16 ( MOV r0,r6 2 MOV r1,r9 <# LDR r1,[wp,#xscale] F BL mul64 P! MOV r6,r0,LSR #16 Z# �R r6,r6,r1,LSL #16 d n# LDR r9,[wp,#yscale] x MOV r0,r3 � MOV r1,r9 � BL mul64 �! MOV r3,r0,LSR #16 �# �R r3,r3,r1,LSL #16 � MOV r0,r5 � MOV r1,r9 �# LDR r1,[wp,#xscale] � BL mul64 �! MOV r5,r0,LSR #16 �# �R r5,r5,r1,LSL #16 � MOV r0,r7 � MOV r1,r9 �# LDR r1,[wp,#xscale] BL mul64 ! MOV r7,r0,LSR #16 # �R r7,r7,r1,LSL #16 " , LDMIA wp,{r0,r1} 6# ADD r6,r6,r0,LSL #8 @# ADD r7,r7,r1,LSL #8 J% ADD r14,wp,#transform T STMIA r14,{r2-r7} ^ h MOV r0,#&200+56 r$ ADR r1,dummy_sprarea | ADD r2,r8,#48 � MOV r3,#0 � MOV r4,#0 � MOV r5,#8+16 �$ ADD r6,wp,#transform � �adr(r7,col_tab) �" SWI "XOS_SpriteOp" � B next_obj � � ; r10->sprite � �.build_coltab � STMFD (sp)!,{link} � ! LDR r14,[r10,#32] CMP r14,#44 BNE bct2 & LDR r0,[r10,#40] 0" MOVS r14,r0,LSR #27 :, BNE bct2 ; new format sprite D MOV r1,#3 N* SWI "XOS_ReadModeVariable" X CMP r2,#15 b BGT bct2 l MOV r0,#&200 v$ ADR r1,dummy_sprarea � MOV r2,r10 � MOV r3,#0 � MOV r4,#0 � MOV r5,#0 � MOV r6,#0 � �adr(r7,col_tab) �( SWI "XWimp_ReadPixTrans" � LDMFD (sp)!,{pc} � � .bct2 �$ ADR r0,dummy_sprarea � MOV r1,r10 � MVN r2,#0 MVN r3,#0 �adr(r4,col_tab) MOV r5,#1 . SWI "XColourTrans_SelectTable" * LDMFD (sp)!,{pc} 4 >.dummy_sprarea H DCD 16 R DCD 0 \ DCD 16 f DCD 16 p z< ; On entry, r0->file name, on exit, r0=handle (address) � � .Load �' STMFD (sp)!,{r0-r11,link} � ADD r1,wp,#fname �.copy_fname � LDRB r14,[r0],#1 � CMP r14,#32 � MOVLT r14,#0 � STRB r14,[r1],#1 � CMP r14,#0 � BNE copy_fname � ADD r1,wp,#fname � MOV r0,#5 SWI "XOS_File" CMP r0,#1 BEQ load2 $ MOV r2,r0 . MOV r0,#19 8 ADD r1,wp,#fname B SWI "XOS_File" L ADD sp,sp,#4 V% LDMFD (sp)!,{r1-r11,pc} ` .load2 j ADD r3,r4,#4 t BL malloc ~ ADDVS sp,sp,#4 �% LDMVSFD (sp)!,{r1-r11,pc} � STR r3,[r2] � STR r2,[sp] � MOV r0,#255 � ADD r1,wp,#fname � ADD r2,r2,#4 � MOV r3,#0 � SWI "XOS_File" � STRVS r0,[sp] �% LDMFD (sp)!,{r0-r11,pc} � � ; On entry, r0=handle .Discard & STMFD (sp)!,{r0-r2,link} MOV r2,r0 ( BL free 2$ LDMFD (sp)!,{r0-r2,pc} <] FModule_End=P% P� Z5ș "OS_File",10,"@.Drender",&FFA,,code,Module_End d,�"Module size=";Module_End-code;" bytes" n� x: �� �alloc(size%) � p%+=size% � =p%-size% �: �� �adr(reg,off%) �� temp% �temp%=off% �!ȕ temp%<>0 � ((temp% � 1)=0) � temp%=temp%>>1 �� �� off%<=256 � temp%<=128 � �[OPT pass% � ADD reg,wp,#off% ] � [OPT pass% "& ADD reg,wp,#off% � &FF ,) ADD reg,reg,#off% � &FF00 6] @� J=0 T: ^� �clrv h[OPT pass% r CMP pc,#0 |] �=0 �
00000000 0d 00 0a 13 f4 20 20 20 20 20 3e 44 72 65 6e 64 |..... >Drend| 00000010 65 72 53 0d 00 14 2b f4 20 20 20 20 20 53 6f 75 |erS...+. Sou| 00000020 72 63 65 20 66 6f 72 20 44 72 61 77 66 69 6c 65 |rce for Drawfile| 00000030 20 72 65 6e 64 65 72 20 6d 6f 64 75 6c 65 0d 00 | render module..| 00000040 1e 10 f4 20 20 20 20 20 62 79 20 44 43 41 0d 00 |... by DCA..| 00000050 28 18 f4 20 28 63 29 20 41 55 20 41 75 67 75 73 |(.. (c) AU Augus| 00000060 74 20 31 39 39 35 0d 00 32 05 3a 0d 00 3c 12 de |t 1995..2.:..<..| 00000070 20 63 6f 64 65 20 34 30 2a 31 30 32 34 0d 00 46 | code 40*1024..F| 00000080 1a f1 27 22 41 73 73 65 6d 62 6c 69 6e 67 20 63 |..'"Assembling c| 00000090 6f 64 65 2e 2e 2e 22 0d 00 50 04 0d 00 5a 1b ee |ode..."..P...Z..| 000000a0 20 85 20 f1 20 f6 24 22 20 61 74 20 6c 69 6e 65 | . . .$" at line| 000000b0 20 22 3b 9e 3a e0 0d 00 64 04 0d 00 6e 08 70 25 | ";.:...d...n.p%| 000000c0 3d 30 0d 00 78 13 6f 72 69 67 78 3d a4 61 6c 6c |=0..x.origx=.all| 000000d0 6f 63 28 34 29 0d 00 82 13 6f 72 69 67 79 3d a4 |oc(4)....origy=.| 000000e0 61 6c 6c 6f 63 28 34 29 0d 00 8c 14 78 73 63 61 |alloc(4)....xsca| 000000f0 6c 65 3d a4 61 6c 6c 6f 63 28 34 29 0d 00 96 14 |le=.alloc(4)....| 00000100 79 73 63 61 6c 65 3d a4 61 6c 6c 6f 63 28 34 29 |yscale=.alloc(4)| 00000110 0d 00 a0 04 0d 00 aa 14 73 63 61 6c 65 3d a4 61 |........scale=.a| 00000120 6c 6c 6f 63 28 31 36 29 0d 00 b4 1b 63 61 70 5f |lloc(16)....cap_| 00000130 61 6e 64 5f 6a 6f 69 6e 3d a4 61 6c 6c 6f 63 28 |and_join=.alloc(| 00000140 31 36 29 0d 00 be 18 74 72 61 6e 73 66 6f 72 6d |16)....transform| 00000150 3d a4 61 6c 6c 6f 63 28 32 34 29 0d 00 c8 11 67 |=.alloc(24)....g| 00000160 6f 78 3d a4 61 6c 6c 6f 63 28 34 29 0d 00 d2 11 |ox=.alloc(4)....| 00000170 67 6f 79 3d a4 61 6c 6c 6f 63 28 34 29 0d 00 dc |goy=.alloc(4)...| 00000180 12 78 65 69 67 3d a4 61 6c 6c 6f 63 28 34 29 0d |.xeig=.alloc(4).| 00000190 00 e6 12 79 65 69 67 3d a4 61 6c 6c 6f 63 28 34 |...yeig=.alloc(4| 000001a0 29 0d 00 f0 14 67 77 69 6e 64 3d a4 61 6c 6c 6f |)....gwind=.allo| 000001b0 63 28 31 36 29 0d 00 fa 29 66 6f 6e 74 5f 74 61 |c(16)...)font_ta| 000001c0 62 3d a4 61 6c 6c 6f 63 28 34 2a 32 35 36 29 3a |b=.alloc(4*256):| 000001d0 66 6e 61 6d 65 3d 66 6f 6e 74 5f 74 61 62 0d 01 |fname=font_tab..| 000001e0 04 18 63 6f 6c 5f 74 61 62 3d a4 61 6c 6c 6f 63 |..col_tab=.alloc| 000001f0 28 31 30 32 34 29 0d 01 0e 0e 6e 65 65 64 65 64 |(1024)....needed| 00000200 25 3d 70 25 0d 01 18 24 f1 3b 70 25 3b 22 20 62 |%=p%...$.;p%;" b| 00000210 79 74 65 73 20 77 6f 72 6b 73 70 61 63 65 20 72 |ytes workspace r| 00000220 65 71 75 69 72 65 64 22 0d 01 22 04 0d 01 2c 43 |equired".."...,C| 00000230 72 30 3d 30 3a 72 31 3d 31 3a 72 32 3d 32 3a 72 |r0=0:r1=1:r2=2:r| 00000240 33 3d 33 3a 72 34 3d 34 3a 72 35 3d 35 3a 72 36 |3=3:r4=4:r5=5:r6| 00000250 3d 36 3a 72 37 3d 37 3a 72 38 3d 38 3a 72 39 3d |=6:r7=7:r8=8:r9=| 00000260 39 3a 72 31 30 3d 31 30 3a 72 31 31 3d 31 31 0d |9:r10=10:r11=11.| 00000270 01 36 1d 77 70 3d 31 32 3a 73 70 3d 31 33 3a 6c |.6.wp=12:sp=13:l| 00000280 69 6e 6b 3d 31 34 3a 70 63 3d 31 35 0d 01 40 0e |ink=14:pc=15..@.| 00000290 76 62 69 74 3d 31 3c 3c 32 38 0d 01 4a 04 0d 01 |vbit=1<<28..J...| 000002a0 54 15 e3 20 70 61 73 73 25 3d 30 20 b8 20 32 20 |T.. pass%=0 . 2 | 000002b0 88 20 32 0d 01 5e 0b 50 25 3d 63 6f 64 65 0d 01 |. 2..^.P%=code..| 000002c0 68 0e 5b 4f 50 54 20 70 61 73 73 25 0d 01 72 15 |h.[OPT pass%..r.| 000002d0 20 20 20 20 20 20 20 20 45 51 55 44 20 20 20 20 | EQUD | 000002e0 30 0d 01 7c 21 20 20 20 20 20 20 20 20 45 51 55 |0..|! EQU| 000002f0 44 20 20 20 20 6d 6f 64 5f 69 6e 69 74 2d 63 6f |D mod_init-co| 00000300 64 65 0d 01 86 21 20 20 20 20 20 20 20 20 45 51 |de...! EQ| 00000310 55 44 20 20 20 20 6d 6f 64 5f 71 75 69 74 2d 63 |UD mod_quit-c| 00000320 6f 64 65 0d 01 90 15 20 20 20 20 20 20 20 20 45 |ode.... E| 00000330 51 55 44 20 20 20 20 30 0d 01 9a 22 20 20 20 20 |QUD 0..." | 00000340 20 20 20 20 45 51 55 44 20 20 20 20 6d 6f 64 5f | EQUD mod_| 00000350 74 69 74 6c 65 2d 63 6f 64 65 0d 01 a4 21 20 20 |title-code...! | 00000360 20 20 20 20 20 20 45 51 55 44 20 20 20 20 6d 6f | EQUD mo| 00000370 64 5f 68 65 6c 70 2d 63 6f 64 65 0d 01 ae 15 20 |d_help-code.... | 00000380 20 20 20 20 20 20 20 45 51 55 44 20 20 20 20 30 | EQUD 0| 00000390 0d 01 b8 1a 20 20 20 20 20 20 20 20 45 51 55 44 |.... EQUD| 000003a0 20 20 20 20 26 43 39 34 34 30 0d 01 c2 21 20 20 | &C9440...! | 000003b0 20 20 20 20 20 20 45 51 55 44 20 20 20 20 73 77 | EQUD sw| 000003c0 69 5f 63 6f 64 65 2d 63 6f 64 65 0d 01 cc 22 20 |i_code-code..." | 000003d0 20 20 20 20 20 20 20 45 51 55 44 20 20 20 20 73 | EQUD s| 000003e0 77 69 5f 74 61 62 6c 65 2d 63 6f 64 65 0d 01 d6 |wi_table-code...| 000003f0 15 20 20 20 20 20 20 20 20 45 51 55 44 20 20 20 |. EQUD | 00000400 20 30 0d 01 e0 04 0d 01 ea 0e 2e 6d 6f 64 5f 74 | 0.........mod_t| 00000410 69 74 6c 65 0d 01 f4 1d 20 20 20 20 20 20 20 20 |itle.... | 00000420 45 51 55 53 20 20 20 20 22 44 72 65 6e 64 65 72 |EQUS "Drender| 00000430 22 0d 01 fe 15 20 20 20 20 20 20 20 20 45 51 55 |".... EQU| 00000440 42 20 20 20 20 30 0d 02 08 0d 2e 6d 6f 64 5f 68 |B 0.....mod_h| 00000450 65 6c 70 0d 02 12 39 20 20 20 20 20 20 20 20 45 |elp...9 E| 00000460 51 55 53 20 20 20 20 22 44 72 65 6e 64 65 72 22 |QUS "Drender"| 00000470 2b bd 39 2b bd 39 2b 22 30 2e 31 30 20 28 32 35 |+.9+.9+"0.10 (25| 00000480 2d 4d 61 79 2d 31 39 39 35 29 20 22 0d 02 1c 04 |-May-1995) "....| 00000490 0d 02 26 15 20 20 20 20 20 20 20 20 45 51 55 42 |..&. EQUB| 000004a0 20 20 20 20 30 0d 02 30 09 41 4c 49 47 4e 0d 02 | 0..0.ALIGN..| 000004b0 3a 04 0d 02 44 0d 2e 6d 6f 64 5f 69 6e 69 74 0d |:...D..mod_init.| 000004c0 02 4e 27 20 20 20 20 20 20 20 20 53 54 4d 46 44 |.N' STMFD| 000004d0 20 20 20 28 73 70 29 21 2c 7b 72 31 2d 72 31 31 | (sp)!,{r1-r11| 000004e0 2c 6c 69 6e 6b 7d 0d 02 58 25 20 20 20 20 20 20 |,link}..X% | 000004f0 20 20 4d 4f 56 20 20 20 20 20 72 33 2c 23 6e 65 | MOV r3,#ne| 00000500 65 64 65 64 25 20 80 20 26 46 46 0d 02 62 29 20 |eded% . &FF..b) | 00000510 20 20 20 20 20 20 20 84 52 20 20 20 20 20 72 33 | .R r3| 00000520 2c 72 33 2c 23 6e 65 65 64 65 64 25 20 80 20 26 |,r3,#needed% . &| 00000530 46 46 30 30 0d 02 6c 1a 20 20 20 20 20 20 20 20 |FF00..l. | 00000540 42 4c 20 20 20 20 20 20 6d 61 6c 6c 6f 63 0d 02 |BL malloc..| 00000550 76 25 20 20 20 20 20 20 20 20 4c 44 4d 56 53 46 |v% LDMVSF| 00000560 44 20 28 73 70 29 21 2c 7b 72 31 2d 72 31 31 2c |D (sp)!,{r1-r11,| 00000570 70 63 7d 0d 02 80 1b 20 20 20 20 20 20 20 20 53 |pc}.... S| 00000580 54 52 20 20 20 20 20 72 32 2c 5b 77 70 5d 0d 02 |TR r2,[wp]..| 00000590 8a 25 20 20 20 20 20 20 20 20 4c 44 4d 46 44 20 |.% LDMFD | 000005a0 20 20 28 73 70 29 21 2c 7b 72 31 2d 72 31 31 2c | (sp)!,{r1-r11,| 000005b0 70 63 7d 0d 02 94 04 0d 02 9e 37 20 3b 20 6f 6e |pc}.......7 ; on| 000005c0 20 65 6e 74 72 79 2c 20 72 33 3d 62 79 74 65 73 | entry, r3=bytes| 000005d0 20 6e 65 65 64 65 64 2c 20 6f 6e 20 65 78 69 74 | needed, on exit| 000005e0 20 72 32 2d 3e 77 6f 72 6b 73 70 61 63 65 0d 02 | r2->workspace..| 000005f0 a8 04 0d 02 b2 0b 2e 6d 61 6c 6c 6f 63 0d 02 bc |.......malloc...| 00000600 29 20 20 20 20 20 20 20 20 53 54 4d 46 44 20 20 |) STMFD | 00000610 20 28 73 70 29 21 2c 7b 72 30 2c 72 31 2c 72 33 | (sp)!,{r0,r1,r3| 00000620 2c 6c 69 6e 6b 7d 0d 02 c6 19 20 20 20 20 20 20 |,link}.... | 00000630 20 20 4d 4f 56 20 20 20 20 20 72 32 2c 23 30 0d | MOV r2,#0.| 00000640 02 d0 19 20 20 20 20 20 20 20 20 4d 4f 56 20 20 |... MOV | 00000650 20 20 20 72 30 2c 23 36 0d 02 da 20 20 20 20 20 | r0,#6... | 00000660 20 20 20 20 53 57 49 20 20 20 20 20 22 58 4f 53 | SWI "XOS| 00000670 5f 4d 6f 64 75 6c 65 22 0d 02 e4 29 20 20 20 20 |_Module"...) | 00000680 20 20 20 20 4c 44 4d 46 44 20 20 20 28 73 70 29 | LDMFD (sp)| 00000690 21 2c 7b 72 30 2c 72 31 2c 72 33 2c 6c 69 6e 6b |!,{r0,r1,r3,link| 000006a0 7d 0d 02 ee 19 20 20 20 20 20 20 20 20 43 4d 50 |}.... CMP| 000006b0 20 20 20 20 20 72 32 2c 23 30 0d 02 f8 21 20 20 | r2,#0...! | 000006c0 20 20 20 20 20 20 41 44 52 45 51 20 20 20 72 30 | ADREQ r0| 000006d0 2c 63 61 6e 74 5f 61 6c 6c 6f 63 0d 03 02 20 20 |,cant_alloc... | 000006e0 20 20 20 20 20 20 20 84 52 45 51 20 20 20 70 63 | .REQ pc| 000006f0 2c 6c 69 6e 6b 2c 23 76 62 69 74 0d 03 0c 1b 20 |,link,#vbit.... | 00000700 20 20 20 20 20 20 20 4d 4f 56 20 20 20 20 20 70 | MOV p| 00000710 63 2c 6c 69 6e 6b 0d 03 16 04 0d 03 20 0f 2e 63 |c,link...... ..c| 00000720 61 6e 74 5f 61 6c 6c 6f 63 0d 03 2a 15 20 20 20 |ant_alloc..*. | 00000730 20 20 20 20 20 45 51 55 44 20 20 20 20 30 0d 03 | EQUD 0..| 00000740 34 24 20 20 20 20 20 20 20 20 45 51 55 53 20 20 |4$ EQUS | 00000750 20 20 22 4e 6f 20 72 6f 6f 6d 20 69 6e 20 52 4d | "No room in RM| 00000760 41 22 0d 03 3e 15 20 20 20 20 20 20 20 20 45 51 |A"..>. EQ| 00000770 55 42 20 20 20 20 30 0d 03 48 11 20 20 20 20 20 |UB 0..H. | 00000780 20 20 20 41 4c 49 47 4e 0d 03 52 04 0d 03 5c 09 | ALIGN..R...\.| 00000790 2e 66 72 65 65 0d 03 66 26 20 20 20 20 20 20 20 |.free..f& | 000007a0 20 53 54 4d 46 44 20 20 20 28 73 70 29 21 2c 7b | STMFD (sp)!,{| 000007b0 72 30 2d 72 32 2c 6c 69 6e 6b 7d 0d 03 70 19 20 |r0-r2,link}..p. | 000007c0 20 20 20 20 20 20 20 4d 4f 56 20 20 20 20 20 72 | MOV r| 000007d0 30 2c 23 37 0d 03 7a 20 20 20 20 20 20 20 20 20 |0,#7..z | 000007e0 53 57 49 20 20 20 20 20 22 58 4f 53 5f 4d 6f 64 |SWI "XOS_Mod| 000007f0 75 6c 65 22 0d 03 84 24 20 20 20 20 20 20 20 20 |ule"...$ | 00000800 4c 44 4d 46 44 20 20 20 28 73 70 29 21 2c 7b 72 |LDMFD (sp)!,{r| 00000810 30 2d 72 32 2c 70 63 7d 0d 03 8e 04 0d 03 98 0d |0-r2,pc}........| 00000820 2e 6d 6f 64 5f 71 75 69 74 0d 03 a2 27 20 20 20 |.mod_quit...' | 00000830 20 20 20 20 20 53 54 4d 46 44 20 20 20 28 73 70 | STMFD (sp| 00000840 29 21 2c 7b 72 31 2d 72 31 31 2c 6c 69 6e 6b 7d |)!,{r1-r11,link}| 00000850 0d 03 ac 1b 20 20 20 20 20 20 20 20 4c 44 52 20 |.... LDR | 00000860 20 20 20 20 72 32 2c 5b 77 70 5d 0d 03 b6 18 20 | r2,[wp].... | 00000870 20 20 20 20 20 20 20 42 4c 20 20 20 20 20 20 66 | BL f| 00000880 72 65 65 0d 03 c0 25 20 20 20 20 20 20 20 20 4c |ree...% L| 00000890 44 4d 46 44 20 20 20 28 73 70 29 21 2c 7b 72 31 |DMFD (sp)!,{r1| 000008a0 2d 72 31 31 2c 70 63 7d 0d 03 ca 04 0d 03 d4 0e |-r11,pc}........| 000008b0 2e 73 77 69 5f 74 61 62 6c 65 0d 03 de 1d 20 20 |.swi_table.... | 000008c0 20 20 20 20 20 20 45 51 55 53 20 20 20 20 22 44 | EQUS "D| 000008d0 72 65 6e 64 65 72 22 0d 03 e8 15 20 20 20 20 20 |render".... | 000008e0 20 20 20 45 51 55 42 20 20 20 20 30 0d 03 f2 1c | EQUB 0....| 000008f0 20 20 20 20 20 20 20 20 45 51 55 53 20 20 20 20 | EQUS | 00000900 22 52 65 6e 64 65 72 22 0d 03 fc 15 20 20 20 20 |"Render".... | 00000910 20 20 20 20 45 51 55 42 20 20 20 20 30 0d 04 06 | EQUB 0...| 00000920 1a 20 20 20 20 20 20 20 20 45 51 55 53 20 20 20 |. EQUS | 00000930 20 22 4c 6f 61 64 22 0d 04 10 15 20 20 20 20 20 | "Load".... | 00000940 20 20 20 45 51 55 42 20 20 20 20 30 0d 04 1a 1d | EQUB 0....| 00000950 20 20 20 20 20 20 20 20 45 51 55 53 20 20 20 20 | EQUS | 00000960 22 44 69 73 63 61 72 64 22 0d 04 24 15 20 20 20 |"Discard"..$. | 00000970 20 20 20 20 20 45 51 55 42 20 20 20 20 30 0d 04 | EQUB 0..| 00000980 2e 15 20 20 20 20 20 20 20 20 45 51 55 42 20 20 |.. EQUB | 00000990 20 20 30 0d 04 38 11 20 20 20 20 20 20 20 20 41 | 0..8. A| 000009a0 4c 49 47 4e 0d 04 42 04 0d 04 4c 0d 2e 73 77 69 |LIGN..B...L..swi| 000009b0 5f 63 6f 64 65 0d 04 56 1b 20 20 20 20 20 20 20 |_code..V. | 000009c0 20 4c 44 52 20 20 20 20 20 77 70 2c 5b 77 70 5d | LDR wp,[wp]| 000009d0 0d 04 60 1a 20 20 20 20 20 20 20 20 43 4d 50 20 |..`. CMP | 000009e0 20 20 20 20 72 31 31 2c 23 32 0d 04 6a 1b 20 20 | r11,#2..j. | 000009f0 20 20 20 20 20 20 42 48 49 20 20 20 20 20 62 61 | BHI ba| 00000a00 64 5f 73 77 69 0d 04 74 24 20 20 20 20 20 20 20 |d_swi..t$ | 00000a10 20 41 44 44 20 20 20 20 20 70 63 2c 70 63 2c 72 | ADD pc,pc,r| 00000a20 31 31 2c 4c 53 4c 20 23 32 0d 04 7e 1a 20 20 20 |11,LSL #2..~. | 00000a30 20 20 20 20 20 45 51 55 53 20 20 20 20 22 7a 65 | EQUS "ze| 00000a40 62 75 22 0d 04 88 1a 20 20 20 20 20 20 20 20 42 |bu".... B| 00000a50 20 20 20 20 20 20 20 52 65 6e 64 65 72 0d 04 92 | Render...| 00000a60 18 20 20 20 20 20 20 20 20 42 20 20 20 20 20 20 |. B | 00000a70 20 4c 6f 61 64 0d 04 9c 1b 20 20 20 20 20 20 20 | Load.... | 00000a80 20 42 20 20 20 20 20 20 20 44 69 73 63 61 72 64 | B Discard| 00000a90 0d 04 a6 0c 20 20 20 20 20 20 20 20 0d 04 b0 0c |.... ....| 00000aa0 2e 62 61 64 5f 73 77 69 0d 04 ba 1d 20 20 20 20 |.bad_swi.... | 00000ab0 20 20 20 20 41 44 52 20 20 20 20 20 72 30 2c 75 | ADR r0,u| 00000ac0 6b 5f 65 72 72 0d 04 c4 20 20 20 20 20 20 20 20 |k_err... | 00000ad0 20 84 52 53 20 20 20 20 70 63 2c 6c 69 6e 6b 2c | .RS pc,link,| 00000ae0 23 76 62 69 74 0d 04 ce 04 0d 04 d8 0b 2e 75 6b |#vbit.........uk| 00000af0 5f 65 72 72 0d 04 e2 15 20 20 20 20 20 20 20 20 |_err.... | 00000b00 45 51 55 44 20 20 20 20 30 0d 04 ec 29 20 20 20 |EQUD 0...) | 00000b10 20 20 20 20 20 45 51 55 53 20 20 20 20 22 55 6e | EQUS "Un| 00000b20 6b 6e 6f 77 6e 20 44 72 65 6e 64 65 72 20 53 57 |known Drender SW| 00000b30 49 22 0d 04 f6 15 20 20 20 20 20 20 20 20 45 51 |I".... EQ| 00000b40 55 42 20 20 20 20 30 0d 05 00 11 20 20 20 20 20 |UB 0.... | 00000b50 20 20 20 41 4c 49 47 4e 0d 05 0a 04 0d 05 14 29 | ALIGN.......)| 00000b60 20 3b 20 52 30 20 2d 3e 20 64 69 61 67 72 61 6d | ; R0 -> diagram| 00000b70 20 28 70 72 65 63 65 64 65 64 20 62 79 20 6c 65 | (preceded by le| 00000b80 6e 67 74 68 29 0d 05 1e 3d 20 3b 20 52 31 20 3d |ngth)...= ; R1 =| 00000b90 20 66 6c 61 67 73 20 2d 20 20 62 69 74 20 30 20 | flags - bit 0 | 00000ba0 73 65 74 20 69 66 20 52 34 2c 52 35 20 63 6f 6e |set if R4,R5 con| 00000bb0 74 61 69 6e 20 73 63 61 6c 65 20 66 61 63 74 6f |tain scale facto| 00000bc0 72 73 0d 05 28 1a 20 3b 20 52 32 2c 72 33 20 2d |rs..(. ; R2,r3 -| 00000bd0 20 70 6c 6f 74 20 61 74 20 78 2c 79 0d 05 32 35 | plot at x,y..25| 00000be0 20 3b 20 52 34 2c 52 35 20 2d 20 78 2c 79 20 73 | ; R4,R5 - x,y s| 00000bf0 63 61 6c 65 20 66 61 63 74 6f 72 73 20 28 69 66 |cale factors (if| 00000c00 20 62 69 74 20 30 20 6f 66 20 52 31 20 73 65 74 | bit 0 of R1 set| 00000c10 29 0d 05 3c 04 0d 05 46 0b 2e 52 65 6e 64 65 72 |)..<...F..Render| 00000c20 0d 05 50 27 20 20 20 20 20 20 20 20 53 54 4d 46 |..P' STMF| 00000c30 44 20 20 20 28 73 70 29 21 2c 7b 72 30 2d 72 31 |D (sp)!,{r0-r1| 00000c40 31 2c 6c 69 6e 6b 7d 0d 05 5a 1a 20 20 20 20 20 |1,link}..Z. | 00000c50 20 20 20 54 53 54 20 20 20 20 20 72 31 2c 23 25 | TST r1,#%| 00000c60 31 0d 05 64 1b 20 20 20 20 20 20 20 20 ec 51 20 |1..d. .Q | 00000c70 20 20 72 34 2c 23 26 31 30 30 30 30 0d 05 6e 1b | r4,#&10000..n.| 00000c80 20 20 20 20 20 20 20 20 ec 51 20 20 20 72 35 2c | .Q r5,| 00000c90 23 26 31 30 30 30 30 0d 05 78 1e 20 20 20 20 20 |#&10000..x. | 00000ca0 20 20 20 53 54 4d 49 41 20 20 20 77 70 2c 7b 72 | STMIA wp,{r| 00000cb0 32 2d 72 35 7d 0d 05 82 1f 20 20 20 20 20 20 20 |2-r5}.... | 00000cc0 20 41 44 52 20 20 20 20 20 72 30 2c 72 65 61 64 | ADR r0,read| 00000cd0 5f 76 64 75 0d 05 8c 1e 20 20 20 20 20 20 20 20 |_vdu.... | 00000ce0 41 44 44 20 20 20 20 20 72 31 2c 77 70 2c 23 67 |ADD r1,wp,#g| 00000cf0 6f 78 0d 05 96 2a 20 20 20 20 20 20 20 20 53 57 |ox...* SW| 00000d00 49 20 20 20 20 20 22 58 4f 53 5f 52 65 61 64 56 |I "XOS_ReadV| 00000d10 64 75 56 61 72 69 61 62 6c 65 73 22 0d 05 a0 40 |duVariables"...@| 00000d20 20 20 20 20 20 20 20 20 41 44 44 20 20 20 20 20 | ADD | 00000d30 72 31 2c 72 31 2c 23 38 20 20 20 20 20 3b 20 63 |r1,r1,#8 ; c| 00000d40 6f 6e 76 65 72 74 20 67 77 69 6e 64 20 69 6e 74 |onvert gwind int| 00000d50 6f 20 4f 53 20 63 6f 2d 6f 72 64 73 0d 05 aa 1e |o OS co-ords....| 00000d60 20 20 20 20 20 20 20 20 4c 44 4d 49 41 20 20 20 | LDMIA | 00000d70 72 31 2c 7b 72 32 2d 72 37 7d 0d 05 b4 20 20 20 |r1,{r2-r7}... | 00000d80 20 20 20 20 20 20 4d 4f 56 20 20 20 20 20 72 34 | MOV r4| 00000d90 2c 72 34 2c 4c 53 4c 20 72 32 0d 05 be 20 20 20 |,r4,LSL r2... | 00000da0 20 20 20 20 20 20 4d 4f 56 20 20 20 20 20 72 35 | MOV r5| 00000db0 2c 72 35 2c 4c 53 4c 20 72 33 0d 05 c8 20 20 20 |,r5,LSL r3... | 00000dc0 20 20 20 20 20 20 4d 4f 56 20 20 20 20 20 72 36 | MOV r6| 00000dd0 2c 72 36 2c 4c 53 4c 20 72 32 0d 05 d2 20 20 20 |,r6,LSL r2... | 00000de0 20 20 20 20 20 20 4d 4f 56 20 20 20 20 20 72 37 | MOV r7| 00000df0 2c 72 37 2c 4c 53 4c 20 72 33 0d 05 dc 1d 20 20 |,r7,LSL r3.... | 00000e00 20 20 20 20 20 20 53 55 42 20 20 20 20 20 72 34 | SUB r4| 00000e10 2c 72 34 2c 23 31 36 0d 05 e6 1d 20 20 20 20 20 |,r4,#16.... | 00000e20 20 20 20 53 55 42 20 20 20 20 20 72 35 2c 72 35 | SUB r5,r5| 00000e30 2c 23 31 36 0d 05 f0 1d 20 20 20 20 20 20 20 20 |,#16.... | 00000e40 41 44 44 20 20 20 20 20 72 36 2c 72 36 2c 23 31 |ADD r6,r6,#1| 00000e50 36 0d 05 fa 1d 20 20 20 20 20 20 20 20 41 44 44 |6.... ADD| 00000e60 20 20 20 20 20 72 37 2c 72 37 2c 23 31 36 0d 06 | r7,r7,#16..| 00000e70 04 1c 20 20 20 20 20 20 20 20 41 44 44 20 20 20 |.. ADD | 00000e80 20 20 72 31 2c 72 31 2c 23 38 0d 06 0e 1e 20 20 | r1,r1,#8.... | 00000e90 20 20 20 20 20 20 53 54 4d 49 41 20 20 20 72 31 | STMIA r1| 00000ea0 2c 7b 72 34 2d 72 37 7d 0d 06 18 1e 20 20 20 20 |,{r4-r7}.... | 00000eb0 20 20 20 20 4c 44 4d 49 41 20 20 20 73 70 2c 7b | LDMIA sp,{| 00000ec0 72 30 2d 72 35 7d 0d 06 22 1b 20 20 20 20 20 20 |r0-r5}..". | 00000ed0 20 20 4c 44 52 20 20 20 20 20 72 31 2c 5b 72 30 | LDR r1,[r0| 00000ee0 5d 0d 06 2c 1c 20 20 20 20 20 20 20 20 41 44 44 |]..,. ADD| 00000ef0 20 20 20 20 20 72 31 2c 72 31 2c 72 30 0d 06 36 | r1,r1,r0..6| 00000f00 1d 20 20 20 20 20 20 20 20 41 44 44 20 20 20 20 |. ADD | 00000f10 20 72 30 2c 72 30 2c 23 34 34 0d 06 40 20 20 20 | r0,r0,#44..@ | 00000f20 20 20 20 20 20 20 42 4c 20 20 20 20 20 20 72 65 | BL re| 00000f30 6e 64 65 72 5f 67 72 6f 75 70 0d 06 4a 25 20 20 |nder_group..J% | 00000f40 20 20 20 20 20 20 4c 44 4d 46 44 20 20 20 28 73 | LDMFD (s| 00000f50 70 29 21 2c 7b 72 30 2d 72 31 31 2c 70 63 7d 0d |p)!,{r0-r11,pc}.| 00000f60 06 54 04 0d 06 5e 0d 2e 72 65 61 64 5f 76 64 75 |.T...^..read_vdu| 00000f70 0d 06 68 17 20 20 20 20 20 20 20 20 44 43 44 20 |..h. DCD | 00000f80 20 20 20 20 31 33 36 0d 06 72 17 20 20 20 20 20 | 136..r. | 00000f90 20 20 20 44 43 44 20 20 20 20 20 31 33 37 0d 06 | DCD 137..| 00000fa0 7c 15 20 20 20 20 20 20 20 20 44 43 44 20 20 20 ||. DCD | 00000fb0 20 20 34 0d 06 86 15 20 20 20 20 20 20 20 20 44 | 4.... D| 00000fc0 43 44 20 20 20 20 20 35 0d 06 90 17 20 20 20 20 |CD 5.... | 00000fd0 20 20 20 20 44 43 44 20 20 20 20 20 31 32 38 0d | DCD 128.| 00000fe0 06 9a 17 20 20 20 20 20 20 20 20 44 43 44 20 20 |... DCD | 00000ff0 20 20 20 31 32 39 0d 06 a4 17 20 20 20 20 20 20 | 129.... | 00001000 20 20 44 43 44 20 20 20 20 20 31 33 30 0d 06 ae | DCD 130...| 00001010 17 20 20 20 20 20 20 20 20 44 43 44 20 20 20 20 |. DCD | 00001020 20 31 33 31 0d 06 b8 16 20 20 20 20 20 20 20 20 | 131.... | 00001030 44 43 44 20 20 20 20 20 2d 31 0d 06 d6 05 20 0d |DCD -1.... .| 00001040 06 d7 19 20 3b 20 72 30 2d 3e 67 72 6f 75 70 2c |... ; r0->group,| 00001050 20 72 31 2d 3e 65 6e 64 0d 06 d8 05 20 0d 06 ea | r1->end.... ...| 00001060 11 2e 72 65 6e 64 65 72 5f 67 72 6f 75 70 0d 06 |..render_group..| 00001070 f4 27 20 20 20 20 20 20 20 20 53 54 4d 46 44 20 |.' STMFD | 00001080 20 20 28 73 70 29 21 2c 7b 72 30 2d 72 31 31 2c | (sp)!,{r0-r11,| 00001090 6c 69 6e 6b 7d 0d 06 fe 0f 2e 67 72 6f 75 70 5f |link}.....group_| 000010a0 6c 6f 6f 70 0d 07 08 19 20 20 20 20 20 20 20 20 |loop.... | 000010b0 43 4d 50 20 20 20 20 20 72 30 2c 72 31 0d 07 12 |CMP r0,r1...| 000010c0 25 20 20 20 20 20 20 20 20 4c 44 4d 47 45 46 44 |% LDMGEFD| 000010d0 20 28 73 70 29 21 2c 7b 72 30 2d 72 31 31 2c 70 | (sp)!,{r0-r11,p| 000010e0 63 7d 0d 07 1c 1b 20 20 20 20 20 20 20 20 4c 44 |c}.... LD| 000010f0 52 20 20 20 20 20 72 32 2c 5b 72 30 5d 0d 07 26 |R r2,[r0]..&| 00001100 1a 20 20 20 20 20 20 20 20 43 4d 50 20 20 20 20 |. CMP | 00001110 20 72 32 2c 23 31 33 0d 07 30 1c 20 20 20 20 20 | r2,#13..0. | 00001120 20 20 20 42 48 49 20 20 20 20 20 6e 65 78 74 5f | BHI next_| 00001130 6f 62 6a 0d 07 3a 21 20 20 20 20 20 20 20 20 53 |obj..:! S| 00001140 54 4d 46 44 20 20 20 28 73 70 29 21 2c 7b 72 30 |TMFD (sp)!,{r0| 00001150 2d 72 32 7d 0d 07 44 19 20 20 20 20 20 20 20 20 |-r2}..D. | 00001160 43 4d 50 20 20 20 20 20 72 32 2c 23 30 0d 07 4e |CMP r2,#0..N| 00001170 23 20 20 20 20 20 20 20 20 42 45 51 20 20 20 20 |# BEQ | 00001180 20 6e 6f 5f 62 6f 75 6e 64 69 6e 67 5f 62 6f 78 | no_bounding_box| 00001190 0d 07 58 0c 20 20 20 20 20 20 20 20 0d 07 62 1c |..X. ..b.| 000011a0 20 20 20 20 20 20 20 20 41 44 44 20 20 20 20 20 | ADD | 000011b0 72 30 2c 72 30 2c 23 38 0d 07 6c 32 20 20 20 20 |r0,r0,#8..l2 | 000011c0 20 20 20 20 4c 44 4d 49 41 20 20 20 72 30 2c 7b | LDMIA r0,{| 000011d0 72 37 2d 72 31 30 7d 20 3b 20 67 65 74 20 62 6f |r7-r10} ; get bo| 000011e0 75 6e 64 69 6e 67 20 62 6f 78 0d 07 76 33 20 20 |unding box..v3 | 000011f0 20 20 20 20 20 20 4c 44 4d 49 41 20 20 20 77 70 | LDMIA wp| 00001200 2c 7b 72 33 2d 72 36 7d 20 20 3b 20 67 65 74 20 |,{r3-r6} ; get | 00001210 6f 72 69 67 69 6e 2c 20 73 63 61 6c 65 0d 07 80 |origin, scale...| 00001220 04 0d 07 8a 20 20 20 20 20 20 20 20 20 4d 4f 56 |.... MOV| 00001230 20 20 20 20 20 72 37 2c 72 37 2c 41 53 52 20 23 | r7,r7,ASR #| 00001240 38 0d 07 94 1c 20 20 20 20 20 20 20 20 4d 55 4c |8.... MUL| 00001250 20 20 20 20 20 72 37 2c 72 35 2c 72 37 0d 07 9e | r7,r5,r7...| 00001260 21 20 20 20 20 20 20 20 20 4d 4f 56 20 20 20 20 |! MOV | 00001270 20 72 37 2c 72 37 2c 41 53 52 20 23 31 36 0d 07 | r7,r7,ASR #16..| 00001280 a8 1c 20 20 20 20 20 20 20 20 41 44 44 20 20 20 |.. ADD | 00001290 20 20 72 37 2c 72 37 2c 72 33 0d 07 b2 24 20 20 | r7,r7,r3...$ | 000012a0 20 20 20 20 20 20 4c 44 52 20 20 20 20 20 72 30 | LDR r0| 000012b0 2c 5b 77 70 2c 23 67 77 69 6e 64 2b 38 5d 0d 07 |,[wp,#gwind+8]..| 000012c0 bc 19 20 20 20 20 20 20 20 20 43 4d 50 20 20 20 |.. CMP | 000012d0 20 20 72 37 2c 72 30 0d 07 c6 1c 20 20 20 20 20 | r7,r0.... | 000012e0 20 20 20 42 47 54 20 20 20 20 20 6e 65 78 74 5f | BGT next_| 000012f0 6f 62 6a 0d 07 d0 04 0d 07 da 20 20 20 20 20 20 |obj....... | 00001300 20 20 20 4d 4f 56 20 20 20 20 20 72 38 2c 72 38 | MOV r8,r8| 00001310 2c 41 53 52 20 23 38 0d 07 e4 1c 20 20 20 20 20 |,ASR #8.... | 00001320 20 20 20 4d 55 4c 20 20 20 20 20 72 38 2c 72 36 | MUL r8,r6| 00001330 2c 72 38 0d 07 ee 21 20 20 20 20 20 20 20 20 4d |,r8...! M| 00001340 4f 56 20 20 20 20 20 72 38 2c 72 38 2c 41 53 52 |OV r8,r8,ASR| 00001350 20 23 31 36 0d 07 f8 1c 20 20 20 20 20 20 20 20 | #16.... | 00001360 41 44 44 20 20 20 20 20 72 38 2c 72 38 2c 72 34 |ADD r8,r8,r4| 00001370 0d 08 02 25 20 20 20 20 20 20 20 20 4c 44 52 20 |...% LDR | 00001380 20 20 20 20 72 30 2c 5b 77 70 2c 23 67 77 69 6e | r0,[wp,#gwin| 00001390 64 2b 31 32 5d 0d 08 0c 19 20 20 20 20 20 20 20 |d+12].... | 000013a0 20 43 4d 50 20 20 20 20 20 72 38 2c 72 30 0d 08 | CMP r8,r0..| 000013b0 16 1c 20 20 20 20 20 20 20 20 42 47 54 20 20 20 |.. BGT | 000013c0 20 20 6e 65 78 74 5f 6f 62 6a 0d 08 20 04 0d 08 | next_obj.. ...| 000013d0 2a 20 20 20 20 20 20 20 20 20 4d 4f 56 20 20 20 |* MOV | 000013e0 20 20 72 39 2c 72 39 2c 41 53 52 20 23 38 0d 08 | r9,r9,ASR #8..| 000013f0 34 1c 20 20 20 20 20 20 20 20 4d 55 4c 20 20 20 |4. MUL | 00001400 20 20 72 39 2c 72 35 2c 72 39 0d 08 3e 21 20 20 | r9,r5,r9..>! | 00001410 20 20 20 20 20 20 4d 4f 56 20 20 20 20 20 72 39 | MOV r9| 00001420 2c 72 39 2c 41 53 52 20 23 31 36 0d 08 48 1c 20 |,r9,ASR #16..H. | 00001430 20 20 20 20 20 20 20 41 44 44 20 20 20 20 20 72 | ADD r| 00001440 39 2c 72 39 2c 72 33 0d 08 52 24 20 20 20 20 20 |9,r9,r3..R$ | 00001450 20 20 20 4c 44 52 20 20 20 20 20 72 30 2c 5b 77 | LDR r0,[w| 00001460 70 2c 23 67 77 69 6e 64 2b 30 5d 0d 08 5c 19 20 |p,#gwind+0]..\. | 00001470 20 20 20 20 20 20 20 43 4d 50 20 20 20 20 20 72 | CMP r| 00001480 39 2c 72 30 0d 08 66 1c 20 20 20 20 20 20 20 20 |9,r0..f. | 00001490 42 4c 54 20 20 20 20 20 6e 65 78 74 5f 6f 62 6a |BLT next_obj| 000014a0 0d 08 70 0c 20 20 20 20 20 20 20 20 0d 08 7a 22 |..p. ..z"| 000014b0 20 20 20 20 20 20 20 20 4d 4f 56 20 20 20 20 20 | MOV | 000014c0 72 31 30 2c 72 31 30 2c 41 53 52 20 23 38 0d 08 |r10,r10,ASR #8..| 000014d0 84 1e 20 20 20 20 20 20 20 20 4d 55 4c 20 20 20 |.. MUL | 000014e0 20 20 72 31 30 2c 72 36 2c 72 31 30 0d 08 8e 23 | r10,r6,r10...#| 000014f0 20 20 20 20 20 20 20 20 4d 4f 56 20 20 20 20 20 | MOV | 00001500 72 31 30 2c 72 31 30 2c 41 53 52 20 23 31 36 0d |r10,r10,ASR #16.| 00001510 08 98 1e 20 20 20 20 20 20 20 20 41 44 44 20 20 |... ADD | 00001520 20 20 20 72 31 30 2c 72 31 30 2c 72 34 0d 08 a2 | r10,r10,r4...| 00001530 24 20 20 20 20 20 20 20 20 4c 44 52 20 20 20 20 |$ LDR | 00001540 20 72 30 2c 5b 77 70 2c 23 67 77 69 6e 64 2b 34 | r0,[wp,#gwind+4| 00001550 5d 0d 08 ac 1a 20 20 20 20 20 20 20 20 43 4d 50 |].... CMP| 00001560 20 20 20 20 20 72 31 30 2c 72 30 0d 08 b6 1c 20 | r10,r0.... | 00001570 20 20 20 20 20 20 20 42 4c 54 20 20 20 20 20 6e | BLT n| 00001580 65 78 74 5f 6f 62 6a 0d 08 c0 0c 20 20 20 20 20 |ext_obj.... | 00001590 20 20 20 0d 08 ca 20 20 20 20 20 20 20 20 20 4c | ... L| 000015a0 44 4d 46 44 20 20 20 28 73 70 29 2c 7b 72 30 2d |DMFD (sp),{r0-| 000015b0 72 32 7d 0d 08 d4 0c 20 20 20 20 20 20 20 20 0d |r2}.... .| 000015c0 08 de 14 2e 6e 6f 5f 62 6f 75 6e 64 69 6e 67 5f |....no_bounding_| 000015d0 62 6f 78 0d 08 e8 23 20 20 20 20 20 20 20 20 41 |box...# A| 000015e0 44 44 20 20 20 20 20 70 63 2c 70 63 2c 72 32 2c |DD pc,pc,r2,| 000015f0 4c 53 4c 20 23 32 0d 08 f2 1a 20 20 20 20 20 20 |LSL #2.... | 00001600 20 20 45 51 55 53 20 20 20 20 22 62 75 72 70 22 | EQUS "burp"| 00001610 0d 08 fc 1e 20 20 20 20 20 20 20 20 42 20 20 20 |.... B | 00001620 20 20 20 20 66 6f 6e 74 5f 74 61 62 6c 65 0d 09 | font_table..| 00001630 06 1c 20 20 20 20 20 20 20 20 42 20 20 20 20 20 |.. B | 00001640 20 20 74 65 78 74 5f 6f 62 6a 0d 09 10 1c 20 20 | text_obj.... | 00001650 20 20 20 20 20 20 42 20 20 20 20 20 20 20 70 61 | B pa| 00001660 74 68 5f 6f 62 6a 0d 09 1a 1c 20 20 20 20 20 20 |th_obj.... | 00001670 20 20 42 20 20 20 20 20 20 20 6e 65 78 74 5f 6f | B next_o| 00001680 62 6a 0d 09 24 1c 20 20 20 20 20 20 20 20 42 20 |bj..$. B | 00001690 20 20 20 20 20 20 6e 65 78 74 5f 6f 62 6a 0d 09 | next_obj..| 000016a0 2e 1e 20 20 20 20 20 20 20 20 42 20 20 20 20 20 |.. B | 000016b0 20 20 73 70 72 69 74 65 5f 6f 62 6a 0d 09 38 1d | sprite_obj..8.| 000016c0 20 20 20 20 20 20 20 20 42 20 20 20 20 20 20 20 | B | 000016d0 67 72 6f 75 70 5f 6f 62 6a 0d 09 42 1c 20 20 20 |group_obj..B. | 000016e0 20 20 20 20 20 42 20 20 20 20 20 20 20 6e 65 78 | B nex| 000016f0 74 5f 6f 62 6a 0d 09 4c 1c 20 20 20 20 20 20 20 |t_obj..L. | 00001700 20 42 20 20 20 20 20 20 20 6e 65 78 74 5f 6f 62 | B next_ob| 00001710 6a 0d 09 56 1c 20 20 20 20 20 20 20 20 42 20 20 |j..V. B | 00001720 20 20 20 20 20 6e 65 78 74 5f 6f 62 6a 0d 09 60 | next_obj..`| 00001730 1c 20 20 20 20 20 20 20 20 42 20 20 20 20 20 20 |. B | 00001740 20 6e 65 78 74 5f 6f 62 6a 0d 09 6a 1c 20 20 20 | next_obj..j. | 00001750 20 20 20 20 20 42 20 20 20 20 20 20 20 6e 65 78 | B nex| 00001760 74 5f 6f 62 6a 0d 09 74 21 20 20 20 20 20 20 20 |t_obj..t! | 00001770 20 42 20 20 20 20 20 20 20 74 72 61 6e 73 74 65 | B transte| 00001780 78 74 5f 6f 62 6a 0d 09 7e 23 20 20 20 20 20 20 |xt_obj..~# | 00001790 20 20 42 20 20 20 20 20 20 20 74 72 61 6e 73 73 | B transs| 000017a0 70 72 69 74 65 5f 6f 62 6a 0d 09 88 0d 2e 6e 65 |prite_obj.....ne| 000017b0 78 74 5f 6f 62 6a 0d 09 92 21 20 20 20 20 20 20 |xt_obj...! | 000017c0 20 20 4c 44 4d 46 44 20 20 20 28 73 70 29 21 2c | LDMFD (sp)!,| 000017d0 7b 72 30 2d 72 32 7d 0d 09 9c 11 20 20 20 20 20 |{r0-r2}.... | 000017e0 20 20 20 a4 63 6c 72 76 0d 09 a6 1e 20 20 20 20 | .clrv.... | 000017f0 20 20 20 20 4c 44 52 20 20 20 20 20 72 32 2c 5b | LDR r2,[| 00001800 72 30 2c 23 34 5d 0d 09 b0 1c 20 20 20 20 20 20 |r0,#4].... | 00001810 20 20 41 44 44 20 20 20 20 20 72 30 2c 72 30 2c | ADD r0,r0,| 00001820 72 32 0d 09 ba 1e 20 20 20 20 20 20 20 20 42 20 |r2.... B | 00001830 20 20 20 20 20 20 67 72 6f 75 70 5f 6c 6f 6f 70 | group_loop| 00001840 0d 09 c4 0c 20 20 20 20 20 20 20 20 0d 09 ce 0f |.... ....| 00001850 2e 66 6f 6e 74 5f 74 61 62 6c 65 0d 09 d8 1e 20 |.font_table.... | 00001860 20 20 20 20 20 20 20 4c 44 52 20 20 20 20 20 72 | LDR r| 00001870 31 2c 5b 72 30 2c 23 34 5d 0d 09 e2 1c 20 20 20 |1,[r0,#4].... | 00001880 20 20 20 20 20 41 44 44 20 20 20 20 20 72 31 2c | ADD r1,| 00001890 72 31 2c 72 30 0d 09 ec 1c 20 20 20 20 20 20 20 |r1,r0.... | 000018a0 20 41 44 44 20 20 20 20 20 72 30 2c 72 30 2c 23 | ADD r0,r0,#| 000018b0 38 0d 09 f6 23 20 20 20 20 20 20 20 20 41 44 44 |8...# ADD| 000018c0 20 20 20 20 20 72 33 2c 77 70 2c 23 66 6f 6e 74 | r3,wp,#font| 000018d0 5f 74 61 62 0d 0a 00 14 2e 66 6f 6e 74 5f 74 61 |_tab.....font_ta| 000018e0 62 6c 65 5f 6c 6f 6f 70 0d 0a 0a 19 20 20 20 20 |ble_loop.... | 000018f0 20 20 20 20 43 4d 50 20 20 20 20 20 72 30 2c 72 | CMP r0,r| 00001900 31 0d 0a 14 1c 20 20 20 20 20 20 20 20 42 47 45 |1.... BGE| 00001910 20 20 20 20 20 6e 65 78 74 5f 6f 62 6a 0d 0a 1e | next_obj...| 00001920 2c 20 20 20 20 20 20 20 20 4c 44 52 42 20 20 20 |, LDRB | 00001930 20 72 32 2c 5b 72 30 5d 2c 23 31 20 3b 20 66 6f | r2,[r0],#1 ; fo| 00001940 6e 74 20 6e 75 6d 62 65 72 0d 0a 28 25 20 20 20 |nt number..(% | 00001950 20 20 20 20 20 53 54 52 20 20 20 20 20 72 30 2c | STR r0,| 00001960 5b 72 33 2c 72 32 2c 4c 53 4c 20 23 32 5d 0d 0a |[r3,r2,LSL #2]..| 00001970 32 13 2e 73 6b 69 70 5f 66 6f 6e 74 5f 6e 61 6d |2..skip_font_nam| 00001980 65 0d 0a 3c 1e 20 20 20 20 20 20 20 20 4c 44 52 |e..<. LDR| 00001990 42 20 20 20 20 72 32 2c 5b 72 30 5d 2c 23 31 0d |B r2,[r0],#1.| 000019a0 0a 46 19 20 20 20 20 20 20 20 20 43 4d 50 20 20 |.F. CMP | 000019b0 20 20 20 72 32 2c 23 30 0d 0a 50 22 20 20 20 20 | r2,#0..P" | 000019c0 20 20 20 20 42 4e 45 20 20 20 20 20 73 6b 69 70 | BNE skip| 000019d0 5f 66 6f 6e 74 5f 6e 61 6d 65 0d 0a 5a 23 20 20 |_font_name..Z# | 000019e0 20 20 20 20 20 20 42 20 20 20 20 20 20 20 66 6f | B fo| 000019f0 6e 74 5f 74 61 62 6c 65 5f 6c 6f 6f 70 0d 0a 64 |nt_table_loop..d| 00001a00 0c 20 20 20 20 20 20 20 20 0d 0a 6e 12 2e 74 72 |. ..n..tr| 00001a10 61 6e 73 74 65 78 74 5f 6f 62 6a 0d 0a 78 1e 20 |anstext_obj..x. | 00001a20 20 20 20 20 20 20 20 41 44 44 20 20 20 20 20 72 | ADD r| 00001a30 31 30 2c 72 30 2c 23 32 34 0d 0a 82 1d 20 20 20 |10,r0,#24.... | 00001a40 20 20 20 20 20 41 44 44 20 20 20 20 20 72 38 2c | ADD r8,| 00001a50 72 30 2c 23 35 32 0d 0a 8c 20 20 20 20 20 20 20 |r0,#52... | 00001a60 20 20 42 20 20 20 20 20 20 20 67 65 6e 65 72 61 | B genera| 00001a70 6c 5f 74 65 78 74 0d 0a 96 0d 2e 74 65 78 74 5f |l_text.....text_| 00001a80 6f 62 6a 0d 0a a0 1a 20 20 20 20 20 20 20 20 4d |obj.... M| 00001a90 4f 56 20 20 20 20 20 72 31 30 2c 23 30 0d 0a aa |OV r10,#0...| 00001aa0 1d 20 20 20 20 20 20 20 20 41 44 44 20 20 20 20 |. ADD | 00001ab0 20 72 38 2c 72 30 2c 23 32 34 0d 0a b4 11 2e 67 | r8,r0,#24.....g| 00001ac0 65 6e 65 72 61 6c 5f 74 65 78 74 0d 0a be 23 20 |eneral_text...# | 00001ad0 20 20 20 20 20 20 20 41 44 44 20 20 20 20 20 72 | ADD r| 00001ae0 31 2c 77 70 2c 23 66 6f 6e 74 5f 74 61 62 0d 0a |1,wp,#font_tab..| 00001af0 c8 1f 20 20 20 20 20 20 20 20 4c 44 52 20 20 20 |.. LDR | 00001b00 20 20 72 31 34 2c 5b 72 38 2c 23 38 5d 0d 0a d2 | r14,[r8,#8]...| 00001b10 1a 20 20 20 20 20 20 20 20 43 4d 50 20 20 20 20 |. CMP | 00001b20 20 72 31 34 2c 23 30 0d 0a dc 1c 20 20 20 20 20 | r14,#0.... | 00001b30 20 20 20 42 45 51 20 20 20 20 20 73 79 73 5f 74 | BEQ sys_t| 00001b40 65 78 74 0d 0a e6 26 20 20 20 20 20 20 20 20 4c |ext...& L| 00001b50 44 52 20 20 20 20 20 72 31 2c 5b 72 31 2c 72 31 |DR r1,[r1,r1| 00001b60 34 2c 4c 53 4c 20 23 32 5d 0d 0a f0 0c 20 20 20 |4,LSL #2].... | 00001b70 20 20 20 20 20 0d 0a fa 1f 20 20 20 20 20 20 20 | .... | 00001b80 20 4c 44 52 20 20 20 20 20 72 30 2c 5b 72 38 2c | LDR r0,[r8,| 00001b90 23 31 32 5d 0d 0b 04 20 20 20 20 20 20 20 20 20 |#12]... | 00001ba0 4d 4f 56 20 20 20 20 20 72 30 2c 72 30 2c 41 53 |MOV r0,r0,AS| 00001bb0 52 20 23 38 0d 0b 0e 24 20 20 20 20 20 20 20 20 |R #8...$ | 00001bc0 4c 44 52 20 20 20 20 20 72 31 34 2c 5b 77 70 2c |LDR r14,[wp,| 00001bd0 23 78 73 63 61 6c 65 5d 0d 0b 18 22 20 20 20 20 |#xscale]..." | 00001be0 20 20 20 20 4d 4f 56 20 20 20 20 20 72 31 34 2c | MOV r14,| 00001bf0 72 31 34 2c 41 53 52 20 23 38 0d 0b 22 1d 20 20 |r14,ASR #8..". | 00001c00 20 20 20 20 20 20 4d 55 4c 20 20 20 20 20 72 30 | MUL r0| 00001c10 2c 72 31 34 2c 72 30 0d 0b 2c 21 20 20 20 20 20 |,r14,r0..,! | 00001c20 20 20 20 4c 44 52 20 20 20 20 20 72 31 34 2c 64 | LDR r14,d| 00001c30 69 76 5f 62 79 5f 32 38 0d 0b 36 1d 20 20 20 20 |iv_by_28..6. | 00001c40 20 20 20 20 4d 55 4c 20 20 20 20 20 72 30 2c 72 | MUL r0,r| 00001c50 31 34 2c 72 30 0d 0b 40 21 20 20 20 20 20 20 20 |14,r0..@! | 00001c60 20 4d 4f 56 20 20 20 20 20 72 32 2c 72 30 2c 41 | MOV r2,r0,A| 00001c70 53 52 20 23 31 36 0d 0b 4a 0c 20 20 20 20 20 20 |SR #16..J. | 00001c80 20 20 0d 0b 54 1f 20 20 20 20 20 20 20 20 4c 44 | ..T. LD| 00001c90 52 20 20 20 20 20 72 30 2c 5b 72 38 2c 23 31 36 |R r0,[r8,#16| 00001ca0 5d 0d 0b 5e 20 20 20 20 20 20 20 20 20 4d 4f 56 |]..^ MOV| 00001cb0 20 20 20 20 20 72 30 2c 72 30 2c 41 53 52 20 23 | r0,r0,ASR #| 00001cc0 38 0d 0b 68 24 20 20 20 20 20 20 20 20 4c 44 52 |8..h$ LDR| 00001cd0 20 20 20 20 20 72 31 34 2c 5b 77 70 2c 23 79 73 | r14,[wp,#ys| 00001ce0 63 61 6c 65 5d 0d 0b 72 22 20 20 20 20 20 20 20 |cale]..r" | 00001cf0 20 4d 4f 56 20 20 20 20 20 72 31 34 2c 72 31 34 | MOV r14,r14| 00001d00 2c 41 53 52 20 23 38 0d 0b 7c 1d 20 20 20 20 20 |,ASR #8..|. | 00001d10 20 20 20 4d 55 4c 20 20 20 20 20 72 30 2c 72 31 | MUL r0,r1| 00001d20 34 2c 72 30 0d 0b 86 21 20 20 20 20 20 20 20 20 |4,r0...! | 00001d30 4c 44 52 20 20 20 20 20 72 31 34 2c 64 69 76 5f |LDR r14,div_| 00001d40 62 79 5f 32 38 0d 0b 90 1d 20 20 20 20 20 20 20 |by_28.... | 00001d50 20 4d 55 4c 20 20 20 20 20 72 30 2c 72 31 34 2c | MUL r0,r14,| 00001d60 72 30 0d 0b 9a 21 20 20 20 20 20 20 20 20 4d 4f |r0...! MO| 00001d70 56 20 20 20 20 20 72 33 2c 72 30 2c 41 53 52 20 |V r3,r0,ASR | 00001d80 23 31 36 0d 0b a4 19 20 20 20 20 20 20 20 20 4d |#16.... M| 00001d90 4f 56 20 20 20 20 20 72 34 2c 23 30 0d 0b ae 19 |OV r4,#0....| 00001da0 20 20 20 20 20 20 20 20 4d 4f 56 20 20 20 20 20 | MOV | 00001db0 72 35 2c 23 30 0d 0b b8 24 20 20 20 20 20 20 20 |r5,#0...$ | 00001dc0 20 53 57 49 20 20 20 20 20 22 58 46 6f 6e 74 5f | SWI "XFont_| 00001dd0 46 69 6e 64 46 6f 6e 74 22 0d 0b c2 1c 20 20 20 |FindFont".... | 00001de0 20 20 20 20 20 42 56 53 20 20 20 20 20 73 79 73 | BVS sys| 00001df0 5f 74 65 78 74 0d 0b cc 1a 20 20 20 20 20 20 20 |_text.... | 00001e00 20 4d 4f 56 20 20 20 20 20 72 31 31 2c 72 30 0d | MOV r11,r0.| 00001e10 0b d6 04 0d 0b e0 1e 20 20 20 20 20 20 20 20 4c |....... L| 00001e20 44 52 20 20 20 20 20 72 31 2c 5b 72 38 2c 23 34 |DR r1,[r8,#4| 00001e30 5d 0d 0b ea 1b 20 20 20 20 20 20 20 20 4c 44 52 |].... LDR| 00001e40 20 20 20 20 20 72 32 2c 5b 72 38 5d 0d 0b f4 1a | r2,[r8]....| 00001e50 20 20 20 20 20 20 20 20 4d 4f 56 20 20 20 20 20 | MOV | 00001e60 72 33 2c 23 31 34 0d 0b fe 31 20 20 20 20 20 20 |r3,#14...1 | 00001e70 20 20 53 57 49 20 20 20 20 20 22 58 43 6f 6c 6f | SWI "XColo| 00001e80 75 72 54 72 61 6e 73 5f 53 65 74 46 6f 6e 74 43 |urTrans_SetFontC| 00001e90 6f 6c 6f 75 72 73 22 0d 0c 08 0c 20 20 20 20 20 |olours".... | 00001ea0 20 20 20 0d 0c 12 1f 20 20 20 20 20 20 20 20 4c | .... L| 00001eb0 44 52 20 20 20 20 20 72 33 2c 5b 72 38 2c 23 32 |DR r3,[r8,#2| 00001ec0 30 5d 0d 0c 1c 24 20 20 20 20 20 20 20 20 4c 44 |0]...$ LD| 00001ed0 52 20 20 20 20 20 72 31 34 2c 5b 77 70 2c 23 78 |R r14,[wp,#x| 00001ee0 73 63 61 6c 65 5d 0d 0c 26 22 20 20 20 20 20 20 |scale]..&" | 00001ef0 20 20 4d 4f 56 20 20 20 20 20 72 31 34 2c 72 31 | MOV r14,r1| 00001f00 34 2c 41 53 52 20 23 38 0d 0c 30 1d 20 20 20 20 |4,ASR #8..0. | 00001f10 20 20 20 20 4d 55 4c 20 20 20 20 20 72 33 2c 72 | MUL r3,r| 00001f20 31 34 2c 72 33 0d 0c 3a 21 20 20 20 20 20 20 20 |14,r3..:! | 00001f30 20 4d 4f 56 20 20 20 20 20 72 33 2c 72 33 2c 41 | MOV r3,r3,A| 00001f40 53 52 20 23 31 32 0d 0c 44 1b 20 20 20 20 20 20 |SR #12..D. | 00001f50 20 20 4d 4f 56 20 20 20 20 20 72 31 34 2c 23 32 | MOV r14,#2| 00001f60 35 0d 0c 4e 1d 20 20 20 20 20 20 20 20 4d 55 4c |5..N. MUL| 00001f70 20 20 20 20 20 72 33 2c 72 31 34 2c 72 33 0d 0c | r3,r14,r3..| 00001f80 58 0c 20 20 20 20 20 20 20 20 0d 0c 62 20 20 20 |X. ..b | 00001f90 20 20 20 20 20 20 4c 44 52 20 20 20 20 20 72 35 | LDR r5| 00001fa0 2c 5b 77 70 2c 23 67 6f 78 5d 0d 0c 6c 23 20 20 |,[wp,#gox]..l# | 00001fb0 20 20 20 20 20 20 4c 44 52 20 20 20 20 20 72 31 | LDR r1| 00001fc0 34 2c 5b 77 70 2c 23 6f 72 69 67 78 5d 0d 0c 76 |4,[wp,#origx]..v| 00001fd0 1d 20 20 20 20 20 20 20 20 41 44 44 20 20 20 20 |. ADD | 00001fe0 20 72 35 2c 72 35 2c 72 31 34 0d 0c 80 1c 20 20 | r5,r5,r14.... | 00001ff0 20 20 20 20 20 20 4d 4f 56 20 20 20 20 20 72 31 | MOV r1| 00002000 34 2c 23 34 30 30 0d 0c 8a 20 20 20 20 20 20 20 |4,#400... | 00002010 20 20 4d 4c 41 20 20 20 20 20 72 33 2c 72 35 2c | MLA r3,r5,| 00002020 72 31 34 2c 72 33 0d 0c 94 0c 20 20 20 20 20 20 |r14,r3.... | 00002030 20 20 0d 0c 9e 1f 20 20 20 20 20 20 20 20 4c 44 | .... LD| 00002040 52 20 20 20 20 20 72 34 2c 5b 72 38 2c 23 32 34 |R r4,[r8,#24| 00002050 5d 0d 0c a8 24 20 20 20 20 20 20 20 20 4c 44 52 |]...$ LDR| 00002060 20 20 20 20 20 72 31 34 2c 5b 77 70 2c 23 79 73 | r14,[wp,#ys| 00002070 63 61 6c 65 5d 0d 0c b2 22 20 20 20 20 20 20 20 |cale]..." | 00002080 20 4d 4f 56 20 20 20 20 20 72 31 34 2c 72 31 34 | MOV r14,r14| 00002090 2c 41 53 52 20 23 38 0d 0c bc 1d 20 20 20 20 20 |,ASR #8.... | 000020a0 20 20 20 4d 55 4c 20 20 20 20 20 72 34 2c 72 31 | MUL r4,r1| 000020b0 34 2c 72 34 0d 0c c6 21 20 20 20 20 20 20 20 20 |4,r4...! | 000020c0 4d 4f 56 20 20 20 20 20 72 34 2c 72 34 2c 41 53 |MOV r4,r4,AS| 000020d0 52 20 23 31 32 0d 0c d0 1b 20 20 20 20 20 20 20 |R #12.... | 000020e0 20 4d 4f 56 20 20 20 20 20 72 31 34 2c 23 32 35 | MOV r14,#25| 000020f0 0d 0c da 1d 20 20 20 20 20 20 20 20 4d 55 4c 20 |.... MUL | 00002100 20 20 20 20 72 34 2c 72 31 34 2c 72 34 0d 0c e4 | r4,r14,r4...| 00002110 0c 20 20 20 20 20 20 20 20 0d 0c ee 20 20 20 20 |. ... | 00002120 20 20 20 20 20 4c 44 52 20 20 20 20 20 72 35 2c | LDR r5,| 00002130 5b 77 70 2c 23 67 6f 79 5d 0d 0c f8 23 20 20 20 |[wp,#goy]...# | 00002140 20 20 20 20 20 4c 44 52 20 20 20 20 20 72 31 34 | LDR r14| 00002150 2c 5b 77 70 2c 23 6f 72 69 67 79 5d 0d 0d 02 1d |,[wp,#origy]....| 00002160 20 20 20 20 20 20 20 20 41 44 44 20 20 20 20 20 | ADD | 00002170 72 35 2c 72 35 2c 72 31 34 0d 0d 0c 1c 20 20 20 |r5,r5,r14.... | 00002180 20 20 20 20 20 4d 4f 56 20 20 20 20 20 72 31 34 | MOV r14| 00002190 2c 23 34 30 30 0d 0d 16 20 20 20 20 20 20 20 20 |,#400... | 000021a0 20 4d 4c 41 20 20 20 20 20 72 34 2c 72 35 2c 72 | MLA r4,r5,r| 000021b0 31 34 2c 72 34 0d 0d 20 0c 20 20 20 20 20 20 20 |14,r4.. . | 000021c0 20 0d 0d 2a 19 20 20 20 20 20 20 20 20 4d 4f 56 | ..*. MOV| 000021d0 20 20 20 20 20 72 30 2c 23 30 0d 0d 34 1d 20 20 | r0,#0..4. | 000021e0 20 20 20 20 20 20 41 44 44 20 20 20 20 20 72 31 | ADD r1| 000021f0 2c 72 38 2c 23 32 38 0d 0d 3e 19 20 20 20 20 20 |,r8,#28..>. | 00002200 20 20 20 4d 4f 56 20 20 20 20 20 72 32 2c 23 30 | MOV r2,#0| 00002210 0d 0d 48 19 20 20 20 20 20 20 20 20 4d 4f 56 20 |..H. MOV | 00002220 20 20 20 20 72 35 2c 23 30 0d 0d 52 1a 20 20 20 | r5,#0..R. | 00002230 20 20 20 20 20 4d 4f 56 53 20 20 20 20 72 36 2c | MOVS r6,| 00002240 72 31 30 0d 0d 5c 22 20 20 20 20 20 20 20 20 84 |r10..\" .| 00002250 52 4e 45 20 20 20 72 32 2c 72 32 2c 23 25 31 30 |RNE r2,r2,#%10| 00002260 30 30 30 30 30 0d 0d 66 21 20 20 20 20 20 20 20 |00000..f! | 00002270 20 4c 44 52 4e 45 20 20 20 72 31 34 2c 5b 72 31 | LDRNE r14,[r1| 00002280 30 2c 23 32 34 5d 0d 0d 70 1e 20 20 20 20 20 20 |0,#24]..p. | 00002290 20 20 80 4e 45 20 20 20 72 31 34 2c 72 31 34 2c | .NE r14,r14,| 000022a0 23 25 31 31 0d 0d 7a 23 20 20 20 20 20 20 20 20 |#%11..z# | 000022b0 84 52 4e 45 20 20 20 72 32 2c 72 32 2c 72 31 34 |.RNE r2,r2,r14| 000022c0 2c 4c 53 4c 20 23 39 0d 0d 84 19 20 20 20 20 20 |,LSL #9.... | 000022d0 20 20 20 4d 4f 56 20 20 20 20 20 72 37 2c 23 30 | MOV r7,#0| 000022e0 0d 0d 8e 21 20 20 20 20 20 20 20 20 53 57 49 20 |...! SWI | 000022f0 20 20 20 20 22 58 46 6f 6e 74 5f 50 61 69 6e 74 | "XFont_Paint| 00002300 22 0d 0d 98 0c 20 20 20 20 20 20 20 20 0d 0d a2 |".... ...| 00002310 1a 20 20 20 20 20 20 20 20 4d 4f 56 20 20 20 20 |. MOV | 00002320 20 72 30 2c 72 31 31 0d 0d ac 24 20 20 20 20 20 | r0,r11...$ | 00002330 20 20 20 53 57 49 20 20 20 20 20 22 58 46 6f 6e | SWI "XFon| 00002340 74 5f 4c 6f 73 65 46 6f 6e 74 22 0d 0d b6 0c 20 |t_LoseFont".... | 00002350 20 20 20 20 20 20 20 0d 0d c0 1c 20 20 20 20 20 | .... | 00002360 20 20 20 42 20 20 20 20 20 20 20 6e 65 78 74 5f | B next_| 00002370 6f 62 6a 0d 0d ca 0c 20 20 20 20 20 20 20 20 0d |obj.... .| 00002380 0d d4 0d 2e 73 79 73 5f 74 65 78 74 0d 0d de 11 |....sys_text....| 00002390 20 20 20 20 20 20 20 20 a4 63 6c 72 76 0d 0d e8 | .clrv...| 000023a0 1d 20 20 20 20 20 20 20 20 41 44 44 20 20 20 20 |. ADD | 000023b0 20 72 39 2c 72 38 2c 23 32 38 0d 0d f2 1a 20 20 | r9,r8,#28.... | 000023c0 20 20 20 20 20 20 4d 4f 56 20 20 20 20 20 72 31 | MOV r1| 000023d0 30 2c 23 30 0d 0d fc 10 2e 63 6f 75 6e 74 5f 63 |0,#0.....count_c| 000023e0 68 61 72 73 0d 0e 06 20 20 20 20 20 20 20 20 20 |hars... | 000023f0 4c 44 52 42 20 20 20 20 72 31 34 2c 5b 72 39 2c |LDRB r14,[r9,| 00002400 72 31 30 5d 0d 0e 10 1a 20 20 20 20 20 20 20 20 |r10].... | 00002410 43 4d 50 20 20 20 20 20 72 31 34 2c 23 30 0d 0e |CMP r14,#0..| 00002420 1a 1e 20 20 20 20 20 20 20 20 41 44 44 4e 45 20 |.. ADDNE | 00002430 20 20 72 31 30 2c 72 31 30 2c 23 31 0d 0e 24 1f | r10,r10,#1..$.| 00002440 20 20 20 20 20 20 20 20 42 4e 45 20 20 20 20 20 | BNE | 00002450 63 6f 75 6e 74 5f 63 68 61 72 73 0d 0e 2e 1a 20 |count_chars.... | 00002460 20 20 20 20 20 20 20 43 4d 50 20 20 20 20 20 72 | CMP r| 00002470 31 30 2c 23 30 0d 0e 38 1c 20 20 20 20 20 20 20 |10,#0..8. | 00002480 20 42 45 51 20 20 20 20 20 6e 65 78 74 5f 6f 62 | BEQ next_ob| 00002490 6a 0d 0e 42 0c 20 20 20 20 20 20 20 20 0d 0e 4c |j..B. ..L| 000024a0 1b 20 20 20 20 20 20 20 20 4c 44 52 20 20 20 20 |. LDR | 000024b0 20 72 30 2c 5b 72 38 5d 0d 0e 56 1c 20 20 20 20 | r0,[r8]..V. | 000024c0 20 20 20 20 4d 4f 56 20 20 20 20 20 72 33 2c 23 | MOV r3,#| 000024d0 26 31 30 30 0d 0e 60 19 20 20 20 20 20 20 20 20 |&100..`. | 000024e0 4d 4f 56 20 20 20 20 20 72 34 2c 23 30 0d 0e 6a |MOV r4,#0..j| 000024f0 2a 20 20 20 20 20 20 20 20 53 57 49 20 20 20 20 |* SWI | 00002500 20 22 58 43 6f 6c 6f 75 72 54 72 61 6e 73 5f 53 | "XColourTrans_S| 00002510 65 74 47 43 4f 4c 22 0d 0e 74 1b 20 20 20 20 20 |etGCOL"..t. | 00002520 20 20 20 4c 44 52 20 20 20 20 20 72 30 2c 5b 73 | LDR r0,[s| 00002530 70 5d 0d 0e 7e 1c 20 20 20 20 20 20 20 20 41 44 |p]..~. AD| 00002540 44 20 20 20 20 20 72 30 2c 72 30 2c 23 38 0d 0e |D r0,r0,#8..| 00002550 88 1e 20 20 20 20 20 20 20 20 4c 44 4d 49 41 20 |.. LDMIA | 00002560 20 20 72 30 2c 7b 72 32 2d 72 35 7d 0d 0e 92 1c | r0,{r2-r5}....| 00002570 20 20 20 20 20 20 20 20 53 55 42 20 20 20 20 20 | SUB | 00002580 72 30 2c 72 34 2c 72 32 0d 0e 9c 23 20 20 20 20 |r0,r4,r2...# | 00002590 20 20 20 20 4c 44 52 20 20 20 20 20 72 31 2c 5b | LDR r1,[| 000025a0 77 70 2c 23 78 73 63 61 6c 65 5d 0d 0e a6 19 20 |wp,#xscale].... | 000025b0 20 20 20 20 20 20 20 42 4c 20 20 20 20 20 20 6d | BL m| 000025c0 75 6c 36 34 0d 0e b0 21 20 20 20 20 20 20 20 20 |ul64...! | 000025d0 4d 4f 56 20 20 20 20 20 72 32 2c 72 30 2c 4c 53 |MOV r2,r0,LS| 000025e0 52 20 23 32 34 0d 0e ba 22 20 20 20 20 20 20 20 |R #24..." | 000025f0 20 84 52 20 20 20 20 20 72 32 2c 72 32 2c 72 31 | .R r2,r2,r1| 00002600 2c 4c 53 4c 20 23 38 0d 0e c4 1c 20 20 20 20 20 |,LSL #8.... | 00002610 20 20 20 53 55 42 20 20 20 20 20 72 30 2c 72 35 | SUB r0,r5| 00002620 2c 72 33 0d 0e ce 23 20 20 20 20 20 20 20 20 4c |,r3...# L| 00002630 44 52 20 20 20 20 20 72 31 2c 5b 77 70 2c 23 79 |DR r1,[wp,#y| 00002640 73 63 61 6c 65 5d 0d 0e d8 19 20 20 20 20 20 20 |scale].... | 00002650 20 20 42 4c 20 20 20 20 20 20 6d 75 6c 36 34 0d | BL mul64.| 00002660 0e e2 21 20 20 20 20 20 20 20 20 4d 4f 56 20 20 |..! MOV | 00002670 20 20 20 72 33 2c 72 30 2c 4c 53 52 20 23 32 34 | r3,r0,LSR #24| 00002680 0d 0e ec 22 20 20 20 20 20 20 20 20 84 52 20 20 |..." .R | 00002690 20 20 20 72 33 2c 72 33 2c 72 31 2c 4c 53 4c 20 | r3,r3,r1,LSL | 000026a0 23 38 0d 0e f6 22 20 20 20 20 20 20 20 20 4c 44 |#8..." LD| 000026b0 52 20 20 20 20 20 72 31 34 2c 5b 77 70 2c 23 78 |R r14,[wp,#x| 000026c0 65 69 67 5d 0d 0f 00 1e 20 20 20 20 20 20 20 20 |eig].... | 000026d0 41 44 44 20 20 20 20 20 72 31 34 2c 72 31 34 2c |ADD r14,r14,| 000026e0 23 33 0d 0f 0a 22 20 20 20 20 20 20 20 20 4d 4f |#3..." MO| 000026f0 56 20 20 20 20 20 72 34 2c 72 31 30 2c 4c 53 4c |V r4,r10,LSL| 00002700 20 72 31 34 0d 0f 14 22 20 20 20 20 20 20 20 20 | r14..." | 00002710 4c 44 52 20 20 20 20 20 72 31 34 2c 5b 77 70 2c |LDR r14,[wp,| 00002720 23 79 65 69 67 5d 0d 0f 1e 19 20 20 20 20 20 20 |#yeig].... | 00002730 20 20 4d 4f 56 20 20 20 20 20 72 35 2c 23 38 0d | MOV r5,#8.| 00002740 0f 28 21 20 20 20 20 20 20 20 20 4d 4f 56 20 20 |.(! MOV | 00002750 20 20 20 72 35 2c 72 35 2c 4c 53 4c 20 72 31 34 | r5,r5,LSL r14| 00002760 0d 0f 32 20 20 20 20 20 20 20 20 20 41 44 44 20 |..2 ADD | 00002770 20 20 20 20 72 36 2c 77 70 2c 23 73 63 61 6c 65 | r6,wp,#scale| 00002780 0d 0f 3c 1e 20 20 20 20 20 20 20 20 53 54 4d 49 |..<. STMI| 00002790 41 20 20 20 72 36 2c 7b 72 32 2d 72 35 7d 0d 0f |A r6,{r2-r5}..| 000027a0 46 0c 20 20 20 20 20 20 20 20 0d 0f 50 22 20 20 |F. ..P" | 000027b0 20 20 20 20 20 20 4c 44 52 20 20 20 20 20 72 30 | LDR r0| 000027c0 2c 5b 77 70 2c 23 73 63 61 6c 65 5d 0d 0f 5a 22 |,[wp,#scale]..Z"| 000027d0 20 20 20 20 20 20 20 20 4c 44 52 20 20 20 20 20 | LDR | 000027e0 72 31 34 2c 5b 77 70 2c 23 78 65 69 67 5d 0d 0f |r14,[wp,#xeig]..| 000027f0 64 1e 20 20 20 20 20 20 20 20 41 44 44 20 20 20 |d. ADD | 00002800 20 20 72 31 34 2c 72 31 34 2c 23 33 0d 0f 6e 21 | r14,r14,#3..n!| 00002810 20 20 20 20 20 20 20 20 4d 4f 56 20 20 20 20 20 | MOV | 00002820 72 30 2c 72 30 2c 4c 53 4c 20 72 31 34 0d 0f 78 |r0,r0,LSL r14..x| 00002830 24 20 20 20 20 20 20 20 20 4c 44 52 20 20 20 20 |$ LDR | 00002840 20 72 31 2c 5b 77 70 2c 23 73 63 61 6c 65 2b 38 | r1,[wp,#scale+8| 00002850 5d 0d 0f 82 1a 20 20 20 20 20 20 20 20 42 4c 20 |].... BL | 00002860 20 20 20 20 20 64 69 76 69 64 65 0d 0f 8c 1a 20 | divide.... | 00002870 20 20 20 20 20 20 20 4d 4f 56 20 20 20 20 20 72 | MOV r| 00002880 31 30 2c 72 32 0d 0f 96 0c 20 20 20 20 20 20 20 |10,r2.... | 00002890 20 0d 0f a0 1b 20 20 20 20 20 20 20 20 4c 44 52 | .... LDR| 000028a0 20 20 20 20 20 72 33 2c 5b 73 70 5d 0d 0f aa 1c | r3,[sp]....| 000028b0 20 20 20 20 20 20 20 20 41 44 44 20 20 20 20 20 | ADD | 000028c0 72 33 2c 72 33 2c 23 38 0d 0f b4 1e 20 20 20 20 |r3,r3,#8.... | 000028d0 20 20 20 20 4c 44 4d 49 41 20 20 20 72 33 2c 7b | LDMIA r3,{| 000028e0 72 33 2c 72 34 7d 0d 0f be 19 20 20 20 20 20 20 |r3,r4}.... | 000028f0 20 20 4d 4f 56 20 20 20 20 20 72 30 2c 72 33 0d | MOV r0,r3.| 00002900 0f c8 23 20 20 20 20 20 20 20 20 4c 44 52 20 20 |..# LDR | 00002910 20 20 20 72 31 2c 5b 77 70 2c 23 78 73 63 61 6c | r1,[wp,#xscal| 00002920 65 5d 0d 0f d2 19 20 20 20 20 20 20 20 20 42 4c |e].... BL| 00002930 20 20 20 20 20 20 6d 75 6c 36 34 0d 0f dc 21 20 | mul64...! | 00002940 20 20 20 20 20 20 20 4d 4f 56 20 20 20 20 20 72 | MOV r| 00002950 33 2c 72 30 2c 4c 53 52 20 23 32 34 0d 0f e6 22 |3,r0,LSR #24..."| 00002960 20 20 20 20 20 20 20 20 84 52 20 20 20 20 20 72 | .R r| 00002970 33 2c 72 33 2c 72 31 2c 4c 53 4c 20 23 38 0d 0f |3,r3,r1,LSL #8..| 00002980 f0 19 20 20 20 20 20 20 20 20 4d 4f 56 20 20 20 |.. MOV | 00002990 20 20 72 30 2c 72 34 0d 0f fa 23 20 20 20 20 20 | r0,r4...# | 000029a0 20 20 20 4c 44 52 20 20 20 20 20 72 31 2c 5b 77 | LDR r1,[w| 000029b0 70 2c 23 79 73 63 61 6c 65 5d 0d 10 04 19 20 20 |p,#yscale].... | 000029c0 20 20 20 20 20 20 42 4c 20 20 20 20 20 20 6d 75 | BL mu| 000029d0 6c 36 34 0d 10 0e 21 20 20 20 20 20 20 20 20 4d |l64...! M| 000029e0 4f 56 20 20 20 20 20 72 34 2c 72 30 2c 4c 53 52 |OV r4,r0,LSR| 000029f0 20 23 32 34 0d 10 18 22 20 20 20 20 20 20 20 20 | #24..." | 00002a00 84 52 20 20 20 20 20 72 34 2c 72 34 2c 72 31 2c |.R r4,r4,r1,| 00002a10 4c 53 4c 20 23 38 0d 10 22 09 20 20 20 20 20 0d |LSL #8..". .| 00002a20 10 2c 1e 20 20 20 20 20 20 20 20 4c 44 4d 49 41 |.,. LDMIA| 00002a30 20 20 20 77 70 2c 7b 72 30 2c 72 31 7d 0d 10 36 | wp,{r0,r1}..6| 00002a40 1c 20 20 20 20 20 20 20 20 41 44 44 20 20 20 20 |. ADD | 00002a50 20 72 33 2c 72 33 2c 72 30 0d 10 40 1c 20 20 20 | r3,r3,r0..@. | 00002a60 20 20 20 20 20 41 44 44 20 20 20 20 20 72 34 2c | ADD r4,| 00002a70 72 34 2c 72 31 0d 10 4a 09 20 20 20 20 20 0d 10 |r4,r1..J. ..| 00002a80 54 1a 20 20 20 20 20 20 20 20 4d 4f 56 20 20 20 |T. MOV | 00002a90 20 20 72 30 2c 23 35 31 0d 10 5e 0e 2e 70 61 69 | r0,#51..^..pai| 00002aa0 6e 74 5f 73 79 73 0d 10 68 1e 20 20 20 20 20 20 |nt_sys..h. | 00002ab0 20 20 4c 44 52 42 20 20 20 20 72 31 2c 5b 72 39 | LDRB r1,[r9| 00002ac0 5d 2c 23 31 0d 10 72 19 20 20 20 20 20 20 20 20 |],#1..r. | 00002ad0 43 4d 50 20 20 20 20 20 72 31 2c 23 30 0d 10 7c |CMP r1,#0..|| 00002ae0 1c 20 20 20 20 20 20 20 20 42 45 51 20 20 20 20 |. BEQ | 00002af0 20 6e 65 78 74 5f 6f 62 6a 0d 10 86 22 20 20 20 | next_obj..." | 00002b00 20 20 20 20 20 53 57 49 20 20 20 20 20 22 58 4f | SWI "XO| 00002b10 53 5f 53 70 72 69 74 65 4f 70 22 0d 10 90 1d 20 |S_SpriteOp".... | 00002b20 20 20 20 20 20 20 20 41 44 44 20 20 20 20 20 72 | ADD r| 00002b30 33 2c 72 33 2c 72 31 30 0d 10 9a 1d 20 20 20 20 |3,r3,r10.... | 00002b40 20 20 20 20 42 20 20 20 20 20 20 20 70 61 69 6e | B pain| 00002b50 74 5f 73 79 73 0d 10 a4 0c 20 20 20 20 20 20 20 |t_sys.... | 00002b60 20 0d 10 ae 24 20 3b 20 64 69 76 69 64 65 20 72 | ...$ ; divide r| 00002b70 30 20 62 79 20 72 31 2c 20 72 65 73 75 6c 74 20 |0 by r1, result | 00002b80 69 6e 20 72 32 0d 10 b8 0c 20 20 20 20 20 20 20 |in r2.... | 00002b90 20 0d 10 c2 0b 2e 64 69 76 69 64 65 0d 10 cc 26 | .....divide...&| 00002ba0 20 20 20 20 20 20 20 20 53 54 4d 46 44 20 20 20 | STMFD | 00002bb0 28 73 70 29 21 2c 7b 72 30 2c 72 31 2c 6c 69 6e |(sp)!,{r0,r1,lin| 00002bc0 6b 7d 0d 10 d6 1a 20 20 20 20 20 20 20 20 4d 4f |k}.... MO| 00002bd0 56 20 20 20 20 20 72 31 34 2c 72 31 0d 10 e0 21 |V r14,r1...!| 00002be0 20 20 20 20 20 20 20 20 43 4d 50 20 20 20 20 20 | CMP | 00002bf0 72 31 34 2c 72 30 2c 4c 53 52 20 23 31 0d 10 ea |r14,r0,LSR #1...| 00002c00 22 2e 64 69 76 30 31 20 20 4d 4f 56 4c 53 20 20 |".div01 MOVLS | 00002c10 20 72 31 34 2c 72 31 34 2c 4c 53 4c 20 23 31 0d | r14,r14,LSL #1.| 00002c20 10 f4 21 20 20 20 20 20 20 20 20 43 4d 50 4c 53 |..! CMPLS| 00002c30 20 20 20 72 31 34 2c 72 30 2c 4c 53 52 20 23 31 | r14,r0,LSR #1| 00002c40 0d 10 fe 19 20 20 20 20 20 20 20 20 42 4c 53 20 |.... BLS | 00002c50 20 20 20 20 64 69 76 30 31 0d 11 08 19 20 20 20 | div01.... | 00002c60 20 20 20 20 20 4d 4f 56 20 20 20 20 20 72 32 2c | MOV r2,| 00002c70 23 30 0d 11 12 1a 2e 64 69 76 30 32 20 20 43 4d |#0.....div02 CM| 00002c80 50 20 20 20 20 20 72 30 2c 72 31 34 0d 11 1c 1d |P r0,r14....| 00002c90 20 20 20 20 20 20 20 20 53 55 42 43 53 20 20 20 | SUBCS | 00002ca0 72 30 2c 72 30 2c 72 31 34 0d 11 26 1c 20 20 20 |r0,r0,r14..&. | 00002cb0 20 20 20 20 20 41 44 43 20 20 20 20 20 72 32 2c | ADC r2,| 00002cc0 72 32 2c 72 32 0d 11 30 22 20 20 20 20 20 20 20 |r2,r2..0" | 00002cd0 20 4d 4f 56 20 20 20 20 20 72 31 34 2c 72 31 34 | MOV r14,r14| 00002ce0 2c 4c 53 52 20 23 31 0d 11 3a 1a 20 20 20 20 20 |,LSR #1..:. | 00002cf0 20 20 20 43 4d 50 20 20 20 20 20 72 31 34 2c 72 | CMP r14,r| 00002d00 31 0d 11 44 19 20 20 20 20 20 20 20 20 42 43 53 |1..D. BCS| 00002d10 20 20 20 20 20 64 69 76 30 32 0d 11 4e 24 20 20 | div02..N$ | 00002d20 20 20 20 20 20 20 4c 44 4d 46 44 20 20 20 28 73 | LDMFD (s| 00002d30 70 29 21 2c 7b 72 30 2c 72 31 2c 70 63 7d 0d 11 |p)!,{r0,r1,pc}..| 00002d40 58 0c 20 20 20 20 20 20 20 20 0d 11 62 37 20 3b |X. ..b7 ;| 00002d50 20 6d 75 6c 74 69 70 6c 79 20 72 30 20 62 79 20 | multiply r0 by | 00002d60 72 31 2c 20 72 65 73 75 6c 74 20 69 6e 20 72 30 |r1, result in r0| 00002d70 20 28 6c 6f 77 29 2c 20 72 31 20 28 68 69 67 68 | (low), r1 (high| 00002d80 29 0d 11 6c 05 20 0d 11 76 0a 2e 6d 75 6c 36 34 |)..l. ..v..mul64| 00002d90 0d 11 80 26 20 20 20 20 20 20 20 20 53 54 4d 46 |...& STMF| 00002da0 44 20 20 20 28 73 70 29 21 2c 7b 72 32 2d 72 35 |D (sp)!,{r2-r5| 00002db0 2c 6c 69 6e 6b 7d 0d 11 8a 21 20 20 20 20 20 20 |,link}...! | 00002dc0 20 20 4d 4f 56 20 20 20 20 20 72 32 2c 72 30 2c | MOV r2,r0,| 00002dd0 41 53 52 20 23 31 36 0d 11 94 21 20 20 20 20 20 |ASR #16...! | 00002de0 20 20 20 4d 4f 56 20 20 20 20 20 72 33 2c 72 31 | MOV r3,r1| 00002df0 2c 41 53 52 20 23 31 36 0d 11 9e 24 20 20 20 20 |,ASR #16...$ | 00002e00 20 20 20 20 42 49 43 20 20 20 20 20 72 30 2c 72 | BIC r0,r| 00002e10 30 2c 72 32 2c 4c 53 4c 20 23 31 36 0d 11 a8 24 |0,r2,LSL #16...$| 00002e20 20 20 20 20 20 20 20 20 42 49 43 20 20 20 20 20 | BIC | 00002e30 72 31 2c 72 31 2c 72 33 2c 4c 53 4c 20 23 31 36 |r1,r1,r3,LSL #16| 00002e40 0d 11 b2 1c 20 20 20 20 20 20 20 20 4d 55 4c 20 |.... MUL | 00002e50 20 20 20 20 72 34 2c 72 30 2c 72 31 0d 11 bc 1c | r4,r0,r1....| 00002e60 20 20 20 20 20 20 20 20 4d 55 4c 20 20 20 20 20 | MUL | 00002e70 72 35 2c 72 32 2c 72 33 0d 11 c6 1c 20 20 20 20 |r5,r2,r3.... | 00002e80 20 20 20 20 4d 55 4c 20 20 20 20 20 72 30 2c 72 | MUL r0,r| 00002e90 33 2c 72 30 0d 11 d0 1f 20 20 20 20 20 20 20 20 |3,r0.... | 00002ea0 4d 4c 41 53 20 20 20 20 72 31 2c 72 32 2c 72 31 |MLAS r1,r2,r1| 00002eb0 2c 72 30 0d 11 da 21 20 20 20 20 20 20 20 20 41 |,r0...! A| 00002ec0 44 44 43 53 20 20 20 72 35 2c 72 35 2c 23 26 31 |DDCS r5,r5,#&1| 00002ed0 30 30 30 30 0d 11 e4 24 20 20 20 20 20 20 20 20 |0000...$ | 00002ee0 41 44 44 53 20 20 20 20 72 30 2c 72 34 2c 72 31 |ADDS r0,r4,r1| 00002ef0 2c 4c 53 4c 20 23 31 36 0d 11 ee 24 20 20 20 20 |,LSL #16...$ | 00002f00 20 20 20 20 41 44 43 20 20 20 20 20 72 31 2c 72 | ADC r1,r| 00002f10 35 2c 72 31 2c 41 53 52 20 23 31 36 0d 11 f8 24 |5,r1,ASR #16...$| 00002f20 20 20 20 20 20 20 20 20 4c 44 4d 46 44 20 20 20 | LDMFD | 00002f30 28 73 70 29 21 2c 7b 72 32 2d 72 35 2c 70 63 7d |(sp)!,{r2-r5,pc}| 00002f40 0d 12 02 0c 20 20 20 20 20 20 20 20 0d 12 0c 0e |.... ....| 00002f50 2e 64 69 76 5f 62 79 5f 32 38 0d 12 16 1e 20 20 |.div_by_28.... | 00002f60 20 20 20 20 20 20 44 43 44 20 20 20 20 20 26 31 | DCD &1| 00002f70 30 30 30 30 2f 26 32 38 0d 12 20 0c 20 20 20 20 |0000/&28.. . | 00002f80 20 20 20 20 0d 12 2a 0d 2e 70 61 74 68 5f 6f 62 | ..*..path_ob| 00002f90 6a 0d 12 34 1d 20 20 20 20 20 20 20 20 41 44 44 |j..4. ADD| 00002fa0 20 20 20 20 20 72 38 2c 72 30 2c 23 32 34 0d 12 | r8,r0,#24..| 00002fb0 3e 20 20 20 20 20 20 20 20 20 4c 44 52 20 20 20 |> LDR | 00002fc0 20 20 72 31 31 2c 5b 72 38 2c 23 31 32 5d 0d 12 | r11,[r8,#12]..| 00002fd0 48 1c 20 20 20 20 20 20 20 20 54 53 54 20 20 20 |H. TST | 00002fe0 20 20 72 31 31 2c 23 31 32 38 0d 12 52 33 20 20 | r11,#128..R3 | 00002ff0 20 20 20 20 20 20 41 44 44 4e 45 20 20 20 72 36 | ADDNE r6| 00003000 2c 72 38 2c 23 31 36 20 20 20 20 3b 20 72 36 2d |,r8,#16 ; r6-| 00003010 3e 64 61 73 68 20 70 61 74 74 65 72 6e 0d 12 5c |>dash pattern..\| 00003020 2c 20 20 20 20 20 20 20 20 4c 44 52 4e 45 20 20 |, LDRNE | 00003030 20 72 31 30 2c 5b 72 36 2c 23 34 5d 20 20 20 3b | r10,[r6,#4] ;| 00003040 20 72 37 2d 3e 70 61 74 68 0d 12 66 25 20 20 20 | r7->path..f% | 00003050 20 20 20 20 20 41 44 44 4e 45 20 20 20 72 31 30 | ADDNE r10| 00003060 2c 72 36 2c 72 31 30 2c 4c 53 4c 20 23 32 0d 12 |,r6,r10,LSL #2..| 00003070 70 1e 20 20 20 20 20 20 20 20 41 44 44 4e 45 20 |p. ADDNE | 00003080 20 20 72 31 30 2c 72 31 30 2c 23 38 0d 12 7a 16 | r10,r10,#8..z.| 00003090 20 20 20 20 20 20 20 20 ec 51 20 20 20 72 36 2c | .Q r6,| 000030a0 23 30 0d 12 84 1e 20 20 20 20 20 20 20 20 41 44 |#0.... AD| 000030b0 44 45 51 20 20 20 72 31 30 2c 72 38 2c 23 31 36 |DEQ r10,r8,#16| 000030c0 0d 12 8e 1b 20 20 20 20 20 20 20 20 54 53 54 20 |.... TST | 000030d0 20 20 20 20 72 31 31 2c 23 36 34 0d 12 98 1b 20 | r11,#64.... | 000030e0 20 20 20 20 20 20 20 4d 4f 56 4e 45 20 20 20 72 | MOVNE r| 000030f0 39 2c 23 25 31 30 0d 12 a2 16 20 20 20 20 20 20 |9,#%10.... | 00003100 20 20 ec 51 20 20 20 72 39 2c 23 30 0d 12 ac 0c | .Q r9,#0....| 00003110 20 20 20 20 20 20 20 20 0d 12 b6 1e 20 20 20 20 | .... | 00003120 20 20 20 20 80 20 20 20 20 20 72 31 34 2c 72 31 | . r14,r1| 00003130 31 2c 23 25 31 31 0d 12 c0 2a 20 20 20 20 20 20 |1,#%11...* | 00003140 20 20 53 54 52 42 20 20 20 20 72 31 34 2c 5b 77 | STRB r14,[w| 00003150 70 2c 23 63 61 70 5f 61 6e 64 5f 6a 6f 69 6e 5d |p,#cap_and_join]| 00003160 0d 12 ca 20 20 20 20 20 20 20 20 20 80 20 20 20 |... . | 00003170 20 20 72 31 34 2c 72 31 31 2c 23 25 31 31 30 30 | r14,r11,#%1100| 00003180 0d 12 d4 22 20 20 20 20 20 20 20 20 4d 4f 56 20 |..." MOV | 00003190 20 20 20 20 72 31 34 2c 72 31 34 2c 4c 53 52 20 | r14,r14,LSR | 000031a0 23 32 0d 12 de 2c 20 20 20 20 20 20 20 20 53 54 |#2..., ST| 000031b0 52 42 20 20 20 20 72 31 34 2c 5b 77 70 2c 23 63 |RB r14,[wp,#c| 000031c0 61 70 5f 61 6e 64 5f 6a 6f 69 6e 2b 31 5d 0d 12 |ap_and_join+1]..| 000031d0 e8 22 20 20 20 20 20 20 20 20 80 20 20 20 20 20 |." . | 000031e0 72 31 34 2c 72 31 31 2c 23 25 31 31 30 30 30 30 |r14,r11,#%110000| 000031f0 0d 12 f2 22 20 20 20 20 20 20 20 20 4d 4f 56 20 |..." MOV | 00003200 20 20 20 20 72 31 34 2c 72 31 34 2c 4c 53 52 20 | r14,r14,LSR | 00003210 23 34 0d 12 fc 2c 20 20 20 20 20 20 20 20 53 54 |#4..., ST| 00003220 52 42 20 20 20 20 72 31 34 2c 5b 77 70 2c 23 63 |RB r14,[wp,#c| 00003230 61 70 5f 61 6e 64 5f 6a 6f 69 6e 2b 32 5d 0d 13 |ap_and_join+2]..| 00003240 06 1a 20 20 20 20 20 20 20 20 4d 4f 56 20 20 20 |.. MOV | 00003250 20 20 72 31 34 2c 23 30 0d 13 10 2c 20 20 20 20 | r14,#0..., | 00003260 20 20 20 20 53 54 52 42 20 20 20 20 72 31 34 2c | STRB r14,| 00003270 5b 77 70 2c 23 63 61 70 5f 61 6e 64 5f 6a 6f 69 |[wp,#cap_and_joi| 00003280 6e 2b 33 5d 0d 13 1a 0c 20 20 20 20 20 20 20 20 |n+3].... | 00003290 0d 13 24 22 20 20 20 20 20 20 20 20 4d 4f 56 20 |..$" MOV | 000032a0 20 20 20 20 72 31 34 2c 23 31 30 2a 26 31 30 30 | r14,#10*&100| 000032b0 30 30 0d 13 2e 2c 20 20 20 20 20 20 20 20 53 54 |00..., ST| 000032c0 52 20 20 20 20 20 72 31 34 2c 5b 77 70 2c 23 63 |R r14,[wp,#c| 000032d0 61 70 5f 61 6e 64 5f 6a 6f 69 6e 2b 34 5d 0d 13 |ap_and_join+4]..| 000032e0 38 0c 20 20 20 20 20 20 20 20 0d 13 42 23 20 20 |8. ..B# | 000032f0 20 20 20 20 20 20 4d 4f 56 20 20 20 20 20 72 31 | MOV r1| 00003300 34 2c 72 31 31 2c 4c 53 52 20 23 31 36 0d 13 4c |4,r11,LSR #16..L| 00003310 1e 20 20 20 20 20 20 20 20 80 20 20 20 20 20 72 |. . r| 00003320 31 34 2c 72 31 34 2c 23 26 46 46 0d 13 56 21 20 |14,r14,#&FF..V! | 00003330 20 20 20 20 20 20 20 4d 4f 56 20 20 20 20 20 72 | MOV r| 00003340 30 2c 72 31 34 2c 4c 53 4c 20 23 34 0d 13 60 23 |0,r14,LSL #4..`#| 00003350 20 20 20 20 20 20 20 20 4d 4f 56 20 20 20 20 20 | MOV | 00003360 72 31 34 2c 72 31 31 2c 4c 53 52 20 23 32 34 0d |r14,r11,LSR #24.| 00003370 13 6a 24 20 20 20 20 20 20 20 20 84 52 20 20 20 |.j$ .R | 00003380 20 20 72 30 2c 72 30 2c 72 31 34 2c 4c 53 4c 20 | r0,r0,r14,LSL | 00003390 23 32 30 0d 13 74 2b 20 20 20 20 20 20 20 20 53 |#20..t+ S| 000033a0 54 52 20 20 20 20 20 72 30 2c 5b 77 70 2c 23 63 |TR r0,[wp,#c| 000033b0 61 70 5f 61 6e 64 5f 6a 6f 69 6e 2b 38 5d 0d 13 |ap_and_join+8]..| 000033c0 7e 2c 20 20 20 20 20 20 20 20 53 54 52 20 20 20 |~, STR | 000033d0 20 20 72 30 2c 5b 77 70 2c 23 63 61 70 5f 61 6e | r0,[wp,#cap_an| 000033e0 64 5f 6a 6f 69 6e 2b 31 32 5d 0d 13 88 0c 20 20 |d_join+12].... | 000033f0 20 20 20 20 20 20 0d 13 92 23 20 20 20 20 20 20 | ...# | 00003400 20 20 4c 44 52 20 20 20 20 20 72 30 2c 5b 77 70 | LDR r0,[wp| 00003410 2c 23 78 73 63 61 6c 65 5d 0d 13 9c 19 20 20 20 |,#xscale].... | 00003420 20 20 20 20 20 4d 4f 56 20 20 20 20 20 72 31 2c | MOV r1,| 00003430 23 30 0d 13 a6 19 20 20 20 20 20 20 20 20 4d 4f |#0.... MO| 00003440 56 20 20 20 20 20 72 32 2c 23 30 0d 13 b0 25 20 |V r2,#0...% | 00003450 20 20 20 20 20 20 20 41 44 44 20 20 20 20 20 72 | ADD r| 00003460 31 34 2c 77 70 2c 23 74 72 61 6e 73 66 6f 72 6d |14,wp,#transform| 00003470 0d 13 ba 20 20 20 20 20 20 20 20 20 53 54 4d 49 |... STMI| 00003480 41 20 20 20 72 31 34 21 2c 7b 72 30 2d 72 32 7d |A r14!,{r0-r2}| 00003490 0d 13 c4 23 20 20 20 20 20 20 20 20 4c 44 52 20 |...# LDR | 000034a0 20 20 20 20 72 30 2c 5b 77 70 2c 23 79 73 63 61 | r0,[wp,#ysca| 000034b0 6c 65 5d 0d 13 ce 1e 20 20 20 20 20 20 20 20 4c |le].... L| 000034c0 44 4d 49 41 20 20 20 77 70 2c 7b 72 31 2c 72 32 |DMIA wp,{r1,r2| 000034d0 7d 0d 13 d8 20 20 20 20 20 20 20 20 20 4d 4f 56 |}... MOV| 000034e0 20 20 20 20 20 72 31 2c 72 31 2c 4c 53 4c 20 23 | r1,r1,LSL #| 000034f0 38 0d 13 e2 20 20 20 20 20 20 20 20 20 4d 4f 56 |8... MOV| 00003500 20 20 20 20 20 72 32 2c 72 32 2c 4c 53 4c 20 23 | r2,r2,LSL #| 00003510 38 0d 13 ec 20 20 20 20 20 20 20 20 20 53 54 4d |8... STM| 00003520 49 41 20 20 20 72 31 34 21 2c 7b 72 30 2d 72 32 |IA r14!,{r0-r2| 00003530 7d 0d 13 f6 0c 20 20 20 20 20 20 20 20 0d 14 00 |}.... ...| 00003540 1b 20 20 20 20 20 20 20 20 4c 44 52 20 20 20 20 |. LDR | 00003550 20 72 30 2c 5b 72 38 5d 0d 14 0a 19 20 20 20 20 | r0,[r8].... | 00003560 20 20 20 20 43 4d 4e 20 20 20 20 20 72 30 2c 23 | CMN r0,#| 00003570 31 0d 14 14 1b 20 20 20 20 20 20 20 20 42 45 51 |1.... BEQ| 00003580 20 20 20 20 20 6e 6f 5f 66 69 6c 6c 0d 14 1e 1c | no_fill....| 00003590 20 20 20 20 20 20 20 20 4d 4f 56 20 20 20 20 20 | MOV | 000035a0 72 33 2c 23 26 31 30 30 0d 14 28 19 20 20 20 20 |r3,#&100..(. | 000035b0 20 20 20 20 4d 4f 56 20 20 20 20 20 72 34 2c 23 | MOV r4,#| 000035c0 30 0d 14 32 2a 20 20 20 20 20 20 20 20 53 57 49 |0..2* SWI| 000035d0 20 20 20 20 20 22 58 43 6f 6c 6f 75 72 54 72 61 | "XColourTra| 000035e0 6e 73 5f 53 65 74 47 43 4f 4c 22 0d 14 3c 1a 20 |ns_SetGCOL"..<. | 000035f0 20 20 20 20 20 20 20 4d 4f 56 20 20 20 20 20 72 | MOV r| 00003600 30 2c 72 31 30 0d 14 46 21 20 20 20 20 20 20 20 |0,r10..F! | 00003610 20 84 52 20 20 20 20 20 72 31 2c 72 39 2c 23 25 | .R r1,r9,#%| 00003620 31 31 30 30 30 30 0d 14 50 24 20 20 20 20 20 20 |110000..P$ | 00003630 20 20 41 44 44 20 20 20 20 20 72 32 2c 77 70 2c | ADD r2,wp,| 00003640 23 74 72 61 6e 73 66 6f 72 6d 0d 14 5a 19 20 20 |#transform..Z. | 00003650 20 20 20 20 20 20 4d 4f 56 20 20 20 20 20 72 33 | MOV r3| 00003660 2c 23 30 0d 14 64 20 20 20 20 20 20 20 20 20 53 |,#0..d S| 00003670 57 49 20 20 20 20 20 22 58 44 72 61 77 5f 46 69 |WI "XDraw_Fi| 00003680 6c 6c 22 0d 14 6e 0c 2e 6e 6f 5f 66 69 6c 6c 0d |ll"..n..no_fill.| 00003690 14 78 1e 20 20 20 20 20 20 20 20 4c 44 52 20 20 |.x. LDR | 000036a0 20 20 20 72 30 2c 5b 72 38 2c 23 34 5d 0d 14 82 | r0,[r8,#4]...| 000036b0 19 20 20 20 20 20 20 20 20 43 4d 4e 20 20 20 20 |. CMN | 000036c0 20 72 30 2c 23 31 0d 14 8c 1e 20 20 20 20 20 20 | r0,#1.... | 000036d0 20 20 42 45 51 20 20 20 20 20 6e 6f 5f 6f 75 74 | BEQ no_out| 000036e0 6c 69 6e 65 0d 14 96 1c 20 20 20 20 20 20 20 20 |line.... | 000036f0 4d 4f 56 20 20 20 20 20 72 33 2c 23 26 31 30 30 |MOV r3,#&100| 00003700 0d 14 a0 19 20 20 20 20 20 20 20 20 4d 4f 56 20 |.... MOV | 00003710 20 20 20 20 72 34 2c 23 30 0d 14 aa 2a 20 20 20 | r4,#0...* | 00003720 20 20 20 20 20 53 57 49 20 20 20 20 20 22 58 43 | SWI "XC| 00003730 6f 6c 6f 75 72 54 72 61 6e 73 5f 53 65 74 47 43 |olourTrans_SetGC| 00003740 4f 4c 22 0d 14 b4 1a 20 20 20 20 20 20 20 20 4d |OL".... M| 00003750 4f 56 20 20 20 20 20 72 30 2c 72 31 30 0d 14 be |OV r0,r10...| 00003760 24 20 20 20 20 20 20 20 20 41 44 44 20 20 20 20 |$ ADD | 00003770 20 72 32 2c 77 70 2c 23 74 72 61 6e 73 66 6f 72 | r2,wp,#transfor| 00003780 6d 0d 14 c8 19 20 20 20 20 20 20 20 20 4d 4f 56 |m.... MOV| 00003790 20 20 20 20 20 72 33 2c 23 30 0d 14 d2 1e 20 20 | r3,#0.... | 000037a0 20 20 20 20 20 20 4c 44 52 20 20 20 20 20 72 34 | LDR r4| 000037b0 2c 5b 72 38 2c 23 38 5d 0d 14 dc 19 20 20 20 20 |,[r8,#8].... | 000037c0 20 20 20 20 43 4d 50 20 20 20 20 20 72 34 2c 23 | CMP r4,#| 000037d0 30 0d 14 e6 21 20 20 20 20 20 20 20 20 84 52 45 |0...! .RE| 000037e0 51 20 20 20 72 31 2c 72 39 2c 23 25 30 31 31 30 |Q r1,r9,#%0110| 000037f0 30 30 0d 14 f0 21 20 20 20 20 20 20 20 20 84 52 |00...! .R| 00003800 4e 45 20 20 20 72 31 2c 72 39 2c 23 25 31 31 31 |NE r1,r9,#%111| 00003810 30 30 30 0d 14 fa 27 20 20 20 20 20 20 20 20 41 |000...' A| 00003820 44 44 20 20 20 20 20 72 35 2c 77 70 2c 23 63 61 |DD r5,wp,#ca| 00003830 70 5f 61 6e 64 5f 6a 6f 69 6e 0d 15 04 22 20 20 |p_and_join..." | 00003840 20 20 20 20 20 20 53 57 49 20 20 20 20 20 22 58 | SWI "X| 00003850 44 72 61 77 5f 53 74 72 6f 6b 65 22 0d 15 0e 0f |Draw_Stroke"....| 00003860 2e 6e 6f 5f 6f 75 74 6c 69 6e 65 0d 15 18 1c 20 |.no_outline.... | 00003870 20 20 20 20 20 20 20 42 20 20 20 20 20 20 20 6e | B n| 00003880 65 78 74 5f 6f 62 6a 0d 15 22 0c 20 20 20 20 20 |ext_obj..". | 00003890 20 20 20 0d 15 2c 0e 2e 67 72 6f 75 70 5f 6f 62 | ..,..group_ob| 000038a0 6a 0d 15 36 1e 20 20 20 20 20 20 20 20 4c 44 52 |j..6. LDR| 000038b0 20 20 20 20 20 72 31 2c 5b 72 30 2c 23 34 5d 0d | r1,[r0,#4].| 000038c0 15 40 1c 20 20 20 20 20 20 20 20 41 44 44 20 20 |.@. ADD | 000038d0 20 20 20 72 31 2c 72 31 2c 72 30 0d 15 4a 1d 20 | r1,r1,r0..J. | 000038e0 20 20 20 20 20 20 20 41 44 44 20 20 20 20 20 72 | ADD r| 000038f0 30 2c 72 30 2c 23 33 36 0d 15 54 20 20 20 20 20 |0,r0,#36..T | 00003900 20 20 20 20 42 4c 20 20 20 20 20 20 72 65 6e 64 | BL rend| 00003910 65 72 5f 67 72 6f 75 70 0d 15 5e 1c 20 20 20 20 |er_group..^. | 00003920 20 20 20 20 42 20 20 20 20 20 20 20 6e 65 78 74 | B next| 00003930 5f 6f 62 6a 0d 15 68 0c 20 20 20 20 20 20 20 20 |_obj..h. | 00003940 0d 15 72 0f 2e 73 70 72 69 74 65 5f 6f 62 6a 0d |..r..sprite_obj.| 00003950 15 7c 19 20 20 20 20 20 20 20 20 4d 4f 56 20 20 |.|. MOV | 00003960 20 20 20 72 38 2c 72 30 0d 15 86 0c 20 20 20 20 | r8,r0.... | 00003970 20 20 20 20 0d 15 90 1e 20 20 20 20 20 20 20 20 | .... | 00003980 41 44 44 20 20 20 20 20 72 31 30 2c 72 38 2c 23 |ADD r10,r8,#| 00003990 32 34 0d 15 9a 20 20 20 20 20 20 20 20 20 42 4c |24... BL| 000039a0 20 20 20 20 20 20 62 75 69 6c 64 5f 63 6f 6c 74 | build_colt| 000039b0 61 62 0d 15 a4 0c 20 20 20 20 20 20 20 20 0d 15 |ab.... ..| 000039c0 ae 1c 20 20 20 20 20 20 20 20 42 56 53 20 20 20 |.. BVS | 000039d0 20 20 6e 65 78 74 5f 6f 62 6a 0d 15 b8 0c 20 20 | next_obj.... | 000039e0 20 20 20 20 20 20 0d 15 c2 22 20 20 20 20 20 20 | ..." | 000039f0 20 20 4c 44 52 20 20 20 20 20 72 30 2c 5b 72 38 | LDR r0,[r8| 00003a00 2c 23 32 34 2b 34 30 5d 0d 15 cc 19 20 20 20 20 |,#24+40].... | 00003a10 20 20 20 20 4d 4f 56 20 20 20 20 20 72 31 2c 23 | MOV r1,#| 00003a20 34 0d 15 d6 2a 20 20 20 20 20 20 20 20 53 57 49 |4...* SWI| 00003a30 20 20 20 20 20 22 58 4f 53 5f 52 65 61 64 4d 6f | "XOS_ReadMo| 00003a40 64 65 56 61 72 69 61 62 6c 65 22 0d 15 e0 1a 20 |deVariable".... | 00003a50 20 20 20 20 20 20 20 4d 4f 56 20 20 20 20 20 72 | MOV r| 00003a60 31 30 2c 72 32 0d 15 ea 19 20 20 20 20 20 20 20 |10,r2.... | 00003a70 20 4d 4f 56 20 20 20 20 20 72 31 2c 23 35 0d 15 | MOV r1,#5..| 00003a80 f4 2a 20 20 20 20 20 20 20 20 53 57 49 20 20 20 |.* SWI | 00003a90 20 20 22 58 4f 53 5f 52 65 61 64 4d 6f 64 65 56 | "XOS_ReadModeV| 00003aa0 61 72 69 61 62 6c 65 22 0d 15 fe 1a 20 20 20 20 |ariable".... | 00003ab0 20 20 20 20 4d 4f 56 20 20 20 20 20 72 31 31 2c | MOV r11,| 00003ac0 72 32 0d 16 08 0c 20 20 20 20 20 20 20 20 0d 16 |r2.... ..| 00003ad0 12 1f 20 20 20 20 20 20 20 20 4d 4f 56 20 20 20 |.. MOV | 00003ae0 20 20 72 30 2c 23 26 32 30 30 2b 34 30 0d 16 1c | r0,#&200+40...| 00003af0 24 20 20 20 20 20 20 20 20 41 44 52 20 20 20 20 |$ ADR | 00003b00 20 72 31 2c 64 75 6d 6d 79 5f 73 70 72 61 72 65 | r1,dummy_sprare| 00003b10 61 0d 16 26 1d 20 20 20 20 20 20 20 20 41 44 44 |a..&. ADD| 00003b20 20 20 20 20 20 72 32 2c 72 38 2c 23 32 34 0d 16 | r2,r8,#24..| 00003b30 30 22 20 20 20 20 20 20 20 20 53 57 49 20 20 20 |0" SWI | 00003b40 20 20 22 58 4f 53 5f 53 70 72 69 74 65 4f 70 22 | "XOS_SpriteOp"| 00003b50 0d 16 3a 0c 20 20 20 20 20 20 20 20 0d 16 44 21 |..:. ..D!| 00003b60 20 20 20 20 20 20 20 20 4d 4f 56 20 20 20 20 20 | MOV | 00003b70 72 33 2c 72 33 2c 4c 53 4c 20 72 31 30 0d 16 4e |r3,r3,LSL r10..N| 00003b80 24 20 20 20 20 20 20 20 20 53 54 52 20 20 20 20 |$ STR | 00003b90 20 72 33 2c 5b 77 70 2c 23 73 63 61 6c 65 2b 38 | r3,[wp,#scale+8| 00003ba0 5d 0d 16 58 21 20 20 20 20 20 20 20 20 4d 4f 56 |]..X! MOV| 00003bb0 20 20 20 20 20 72 34 2c 72 34 2c 4c 53 4c 20 72 | r4,r4,LSL r| 00003bc0 31 31 0d 16 62 25 20 20 20 20 20 20 20 20 53 54 |11..b% ST| 00003bd0 52 20 20 20 20 20 72 34 2c 5b 77 70 2c 23 73 63 |R r4,[wp,#sc| 00003be0 61 6c 65 2b 31 32 5d 0d 16 6c 0c 20 20 20 20 20 |ale+12]..l. | 00003bf0 20 20 20 0d 16 76 21 20 20 20 20 20 20 20 20 4c | ..v! L| 00003c00 44 52 20 20 20 20 20 72 32 2c 5b 77 70 2c 23 78 |DR r2,[wp,#x| 00003c10 65 69 67 5d 0d 16 80 1f 20 20 20 20 20 20 20 20 |eig].... | 00003c20 52 53 42 20 20 20 20 20 72 31 30 2c 72 31 30 2c |RSB r10,r10,| 00003c30 23 31 36 0d 16 8a 1e 20 20 20 20 20 20 20 20 41 |#16.... A| 00003c40 44 44 20 20 20 20 20 72 31 30 2c 72 31 30 2c 72 |DD r10,r10,r| 00003c50 32 0d 16 94 21 20 20 20 20 20 20 20 20 4c 44 52 |2...! LDR| 00003c60 20 20 20 20 20 72 32 2c 5b 77 70 2c 23 79 65 69 | r2,[wp,#yei| 00003c70 67 5d 0d 16 9e 1f 20 20 20 20 20 20 20 20 52 53 |g].... RS| 00003c80 42 20 20 20 20 20 72 31 31 2c 72 31 31 2c 23 31 |B r11,r11,#1| 00003c90 36 0d 16 a8 1e 20 20 20 20 20 20 20 20 41 44 44 |6.... ADD| 00003ca0 20 20 20 20 20 72 31 31 2c 72 31 31 2c 72 32 0d | r11,r11,r2.| 00003cb0 16 b2 0c 20 20 20 20 20 20 20 20 0d 16 bc 1d 20 |... .... | 00003cc0 20 20 20 20 20 20 20 41 44 44 20 20 20 20 20 72 | ADD r| 00003cd0 31 34 2c 72 38 2c 23 38 0d 16 c6 1f 20 20 20 20 |14,r8,#8.... | 00003ce0 20 20 20 20 4c 44 4d 49 41 20 20 20 72 31 34 2c | LDMIA r14,| 00003cf0 7b 72 34 2d 72 37 7d 0d 16 d0 0c 20 20 20 20 20 |{r4-r7}.... | 00003d00 20 20 20 0d 16 da 23 20 20 20 20 20 20 20 20 4c | ...# L| 00003d10 44 52 20 20 20 20 20 72 30 2c 5b 77 70 2c 23 78 |DR r0,[wp,#x| 00003d20 73 63 61 6c 65 5d 0d 16 e4 20 20 20 20 20 20 20 |scale]... | 00003d30 20 20 4d 4f 56 20 20 20 20 20 72 30 2c 72 30 2c | MOV r0,r0,| 00003d40 41 53 52 20 23 38 0d 16 ee 1c 20 20 20 20 20 20 |ASR #8.... | 00003d50 20 20 53 55 42 20 20 20 20 20 72 31 2c 72 36 2c | SUB r1,r6,| 00003d60 72 34 0d 16 f8 1c 20 20 20 20 20 20 20 20 4d 55 |r4.... MU| 00003d70 4c 20 20 20 20 20 72 30 2c 72 31 2c 72 30 0d 17 |L r0,r1,r0..| 00003d80 02 21 20 20 20 20 20 20 20 20 4d 4f 56 20 20 20 |.! MOV | 00003d90 20 20 72 30 2c 72 30 2c 41 53 52 20 72 31 30 0d | r0,r0,ASR r10.| 00003da0 17 0c 22 20 20 20 20 20 20 20 20 53 54 52 20 20 |.." STR | 00003db0 20 20 20 72 30 2c 5b 77 70 2c 23 73 63 61 6c 65 | r0,[wp,#scale| 00003dc0 5d 0d 17 16 23 20 20 20 20 20 20 20 20 4c 44 52 |]...# LDR| 00003dd0 20 20 20 20 20 72 30 2c 5b 77 70 2c 23 79 73 63 | r0,[wp,#ysc| 00003de0 61 6c 65 5d 0d 17 20 20 20 20 20 20 20 20 20 20 |ale].. | 00003df0 4d 4f 56 20 20 20 20 20 72 30 2c 72 30 2c 41 53 |MOV r0,r0,AS| 00003e00 52 20 23 38 0d 17 2a 1c 20 20 20 20 20 20 20 20 |R #8..*. | 00003e10 53 55 42 20 20 20 20 20 72 31 2c 72 37 2c 72 35 |SUB r1,r7,r5| 00003e20 0d 17 34 1c 20 20 20 20 20 20 20 20 4d 55 4c 20 |..4. MUL | 00003e30 20 20 20 20 72 30 2c 72 31 2c 72 30 0d 17 3e 21 | r0,r1,r0..>!| 00003e40 20 20 20 20 20 20 20 20 4d 4f 56 20 20 20 20 20 | MOV | 00003e50 72 30 2c 72 30 2c 41 53 52 20 72 31 31 0d 17 48 |r0,r0,ASR r11..H| 00003e60 24 20 20 20 20 20 20 20 20 53 54 52 20 20 20 20 |$ STR | 00003e70 20 72 30 2c 5b 77 70 2c 23 73 63 61 6c 65 2b 34 | r0,[wp,#scale+4| 00003e80 5d 0d 17 52 0c 20 20 20 20 20 20 20 20 0d 17 5c |]..R. ..\| 00003e90 0c 20 20 20 20 20 20 20 20 0d 17 66 23 20 20 20 |. ..f# | 00003ea0 20 20 20 20 20 4c 44 52 20 20 20 20 20 72 30 2c | LDR r0,| 00003eb0 5b 77 70 2c 23 78 73 63 61 6c 65 5d 0d 17 70 19 |[wp,#xscale]..p.| 00003ec0 20 20 20 20 20 20 20 20 4d 4f 56 20 20 20 20 20 | MOV | 00003ed0 72 31 2c 72 34 0d 17 7a 19 20 20 20 20 20 20 20 |r1,r4..z. | 00003ee0 20 42 4c 20 20 20 20 20 20 6d 75 6c 36 34 0d 17 | BL mul64..| 00003ef0 84 21 20 20 20 20 20 20 20 20 4d 4f 56 20 20 20 |.! MOV | 00003f00 20 20 72 33 2c 72 30 2c 4c 53 52 20 23 32 34 0d | r3,r0,LSR #24.| 00003f10 17 8e 22 20 20 20 20 20 20 20 20 84 52 20 20 20 |.." .R | 00003f20 20 20 72 33 2c 72 33 2c 72 31 2c 4c 53 4c 20 23 | r3,r3,r1,LSL #| 00003f30 38 0d 17 98 23 20 20 20 20 20 20 20 20 4c 44 52 |8...# LDR| 00003f40 20 20 20 20 20 72 31 34 2c 5b 77 70 2c 23 6f 72 | r14,[wp,#or| 00003f50 69 67 78 5d 0d 17 a2 1d 20 20 20 20 20 20 20 20 |igx].... | 00003f60 41 44 44 20 20 20 20 20 72 33 2c 72 33 2c 72 31 |ADD r3,r3,r1| 00003f70 34 0d 17 ac 23 20 20 20 20 20 20 20 20 4c 44 52 |4...# LDR| 00003f80 20 20 20 20 20 72 30 2c 5b 77 70 2c 23 79 73 63 | r0,[wp,#ysc| 00003f90 61 6c 65 5d 0d 17 b6 19 20 20 20 20 20 20 20 20 |ale].... | 00003fa0 4d 4f 56 20 20 20 20 20 72 31 2c 72 35 0d 17 c0 |MOV r1,r5...| 00003fb0 19 20 20 20 20 20 20 20 20 42 4c 20 20 20 20 20 |. BL | 00003fc0 20 6d 75 6c 36 34 0d 17 ca 21 20 20 20 20 20 20 | mul64...! | 00003fd0 20 20 4d 4f 56 20 20 20 20 20 72 34 2c 72 30 2c | MOV r4,r0,| 00003fe0 4c 53 52 20 23 32 34 0d 17 d4 22 20 20 20 20 20 |LSR #24..." | 00003ff0 20 20 20 84 52 20 20 20 20 20 72 34 2c 72 34 2c | .R r4,r4,| 00004000 72 31 2c 4c 53 4c 20 23 38 0d 17 de 23 20 20 20 |r1,LSL #8...# | 00004010 20 20 20 20 20 4c 44 52 20 20 20 20 20 72 31 34 | LDR r14| 00004020 2c 5b 77 70 2c 23 6f 72 69 67 79 5d 0d 17 e8 1d |,[wp,#origy]....| 00004030 20 20 20 20 20 20 20 20 41 44 44 20 20 20 20 20 | ADD | 00004040 72 34 2c 72 34 2c 72 31 34 0d 17 f2 19 20 20 20 |r4,r4,r14.... | 00004050 20 20 20 20 20 4d 4f 56 20 20 20 20 20 72 35 2c | MOV r5,| 00004060 23 38 0d 17 fc 20 20 20 20 20 20 20 20 20 41 44 |#8... AD| 00004070 44 20 20 20 20 20 72 36 2c 77 70 2c 23 73 63 61 |D r6,wp,#sca| 00004080 6c 65 0d 18 06 1c 20 20 20 20 20 20 20 20 a4 61 |le.... .a| 00004090 64 72 28 72 37 2c 63 6f 6c 5f 74 61 62 29 0d 18 |dr(r7,col_tab)..| 000040a0 10 1f 20 20 20 20 20 20 20 20 4d 4f 56 20 20 20 |.. MOV | 000040b0 20 20 72 30 2c 23 26 32 30 30 2b 35 32 0d 18 1a | r0,#&200+52...| 000040c0 24 20 20 20 20 20 20 20 20 41 44 52 20 20 20 20 |$ ADR | 000040d0 20 72 31 2c 64 75 6d 6d 79 5f 73 70 72 61 72 65 | r1,dummy_sprare| 000040e0 61 0d 18 24 1d 20 20 20 20 20 20 20 20 41 44 44 |a..$. ADD| 000040f0 20 20 20 20 20 72 32 2c 72 38 2c 23 32 34 0d 18 | r2,r8,#24..| 00004100 2e 22 20 20 20 20 20 20 20 20 53 57 49 20 20 20 |." SWI | 00004110 20 20 22 58 4f 53 5f 53 70 72 69 74 65 4f 70 22 | "XOS_SpriteOp"| 00004120 0d 18 38 0c 20 20 20 20 20 20 20 20 0d 18 42 1c |..8. ..B.| 00004130 20 20 20 20 20 20 20 20 42 20 20 20 20 20 20 20 | B | 00004140 6e 65 78 74 5f 6f 62 6a 0d 18 4c 0c 20 20 20 20 |next_obj..L. | 00004150 20 20 20 20 0d 18 56 14 2e 74 72 61 6e 73 73 70 | ..V..transsp| 00004160 72 69 74 65 5f 6f 62 6a 0d 18 60 19 20 20 20 20 |rite_obj..`. | 00004170 20 20 20 20 4d 4f 56 20 20 20 20 20 72 38 2c 72 | MOV r8,r| 00004180 30 0d 18 6a 1e 20 20 20 20 20 20 20 20 41 44 44 |0..j. ADD| 00004190 20 20 20 20 20 72 31 30 2c 72 38 2c 23 34 38 0d | r10,r8,#48.| 000041a0 18 74 20 20 20 20 20 20 20 20 20 42 4c 20 20 20 |.t BL | 000041b0 20 20 20 62 75 69 6c 64 5f 63 6f 6c 74 61 62 0d | build_coltab.| 000041c0 18 7e 1c 20 20 20 20 20 20 20 20 42 56 53 20 20 |.~. BVS | 000041d0 20 20 20 6e 65 78 74 5f 6f 62 6a 0d 18 88 0c 20 | next_obj.... | 000041e0 20 20 20 20 20 20 20 0d 18 92 1e 20 20 20 20 20 | .... | 000041f0 20 20 20 41 44 44 20 20 20 20 20 72 31 34 2c 72 | ADD r14,r| 00004200 38 2c 23 32 34 0d 18 9c 1f 20 20 20 20 20 20 20 |8,#24.... | 00004210 20 4c 44 4d 49 41 20 20 20 72 31 34 2c 7b 72 32 | LDMIA r14,{r2| 00004220 2d 72 37 7d 0d 18 a6 0c 20 20 20 20 20 20 20 20 |-r7}.... | 00004230 0d 18 b0 23 20 20 20 20 20 20 20 20 4c 44 52 20 |...# LDR | 00004240 20 20 20 20 72 39 2c 5b 77 70 2c 23 78 73 63 61 | r9,[wp,#xsca| 00004250 6c 65 5d 0d 18 ba 19 20 20 20 20 20 20 20 20 4d |le].... M| 00004260 4f 56 20 20 20 20 20 72 30 2c 72 32 0d 18 c4 19 |OV r0,r2....| 00004270 20 20 20 20 20 20 20 20 4d 4f 56 20 20 20 20 20 | MOV | 00004280 72 31 2c 72 39 0d 18 ce 19 20 20 20 20 20 20 20 |r1,r9.... | 00004290 20 42 4c 20 20 20 20 20 20 6d 75 6c 36 34 0d 18 | BL mul64..| 000042a0 d8 21 20 20 20 20 20 20 20 20 4d 4f 56 20 20 20 |.! MOV | 000042b0 20 20 72 32 2c 72 30 2c 4c 53 52 20 23 31 36 0d | r2,r0,LSR #16.| 000042c0 18 e2 23 20 20 20 20 20 20 20 20 84 52 20 20 20 |..# .R | 000042d0 20 20 72 32 2c 72 32 2c 72 31 2c 4c 53 4c 20 23 | r2,r2,r1,LSL #| 000042e0 31 36 0d 18 ec 19 20 20 20 20 20 20 20 20 4d 4f |16.... MO| 000042f0 56 20 20 20 20 20 72 30 2c 72 34 0d 18 f6 19 20 |V r0,r4.... | 00004300 20 20 20 20 20 20 20 4d 4f 56 20 20 20 20 20 72 | MOV r| 00004310 31 2c 72 39 0d 19 00 23 20 20 20 20 20 20 20 20 |1,r9...# | 00004320 4c 44 52 20 20 20 20 20 72 31 2c 5b 77 70 2c 23 |LDR r1,[wp,#| 00004330 78 73 63 61 6c 65 5d 0d 19 0a 19 20 20 20 20 20 |xscale].... | 00004340 20 20 20 42 4c 20 20 20 20 20 20 6d 75 6c 36 34 | BL mul64| 00004350 0d 19 14 21 20 20 20 20 20 20 20 20 4d 4f 56 20 |...! MOV | 00004360 20 20 20 20 72 34 2c 72 30 2c 4c 53 52 20 23 31 | r4,r0,LSR #1| 00004370 36 0d 19 1e 23 20 20 20 20 20 20 20 20 84 52 20 |6...# .R | 00004380 20 20 20 20 72 34 2c 72 34 2c 72 31 2c 4c 53 4c | r4,r4,r1,LSL| 00004390 20 23 31 36 0d 19 28 19 20 20 20 20 20 20 20 20 | #16..(. | 000043a0 4d 4f 56 20 20 20 20 20 72 30 2c 72 36 0d 19 32 |MOV r0,r6..2| 000043b0 19 20 20 20 20 20 20 20 20 4d 4f 56 20 20 20 20 |. MOV | 000043c0 20 72 31 2c 72 39 0d 19 3c 23 20 20 20 20 20 20 | r1,r9..<# | 000043d0 20 20 4c 44 52 20 20 20 20 20 72 31 2c 5b 77 70 | LDR r1,[wp| 000043e0 2c 23 78 73 63 61 6c 65 5d 0d 19 46 19 20 20 20 |,#xscale]..F. | 000043f0 20 20 20 20 20 42 4c 20 20 20 20 20 20 6d 75 6c | BL mul| 00004400 36 34 0d 19 50 21 20 20 20 20 20 20 20 20 4d 4f |64..P! MO| 00004410 56 20 20 20 20 20 72 36 2c 72 30 2c 4c 53 52 20 |V r6,r0,LSR | 00004420 23 31 36 0d 19 5a 23 20 20 20 20 20 20 20 20 84 |#16..Z# .| 00004430 52 20 20 20 20 20 72 36 2c 72 36 2c 72 31 2c 4c |R r6,r6,r1,L| 00004440 53 4c 20 23 31 36 0d 19 64 04 0d 19 6e 23 20 20 |SL #16..d...n# | 00004450 20 20 20 20 20 20 4c 44 52 20 20 20 20 20 72 39 | LDR r9| 00004460 2c 5b 77 70 2c 23 79 73 63 61 6c 65 5d 0d 19 78 |,[wp,#yscale]..x| 00004470 19 20 20 20 20 20 20 20 20 4d 4f 56 20 20 20 20 |. MOV | 00004480 20 72 30 2c 72 33 0d 19 82 19 20 20 20 20 20 20 | r0,r3.... | 00004490 20 20 4d 4f 56 20 20 20 20 20 72 31 2c 72 39 0d | MOV r1,r9.| 000044a0 19 8c 19 20 20 20 20 20 20 20 20 42 4c 20 20 20 |... BL | 000044b0 20 20 20 6d 75 6c 36 34 0d 19 96 21 20 20 20 20 | mul64...! | 000044c0 20 20 20 20 4d 4f 56 20 20 20 20 20 72 33 2c 72 | MOV r3,r| 000044d0 30 2c 4c 53 52 20 23 31 36 0d 19 a0 23 20 20 20 |0,LSR #16...# | 000044e0 20 20 20 20 20 84 52 20 20 20 20 20 72 33 2c 72 | .R r3,r| 000044f0 33 2c 72 31 2c 4c 53 4c 20 23 31 36 0d 19 aa 19 |3,r1,LSL #16....| 00004500 20 20 20 20 20 20 20 20 4d 4f 56 20 20 20 20 20 | MOV | 00004510 72 30 2c 72 35 0d 19 b4 19 20 20 20 20 20 20 20 |r0,r5.... | 00004520 20 4d 4f 56 20 20 20 20 20 72 31 2c 72 39 0d 19 | MOV r1,r9..| 00004530 be 23 20 20 20 20 20 20 20 20 4c 44 52 20 20 20 |.# LDR | 00004540 20 20 72 31 2c 5b 77 70 2c 23 78 73 63 61 6c 65 | r1,[wp,#xscale| 00004550 5d 0d 19 c8 19 20 20 20 20 20 20 20 20 42 4c 20 |].... BL | 00004560 20 20 20 20 20 6d 75 6c 36 34 0d 19 d2 21 20 20 | mul64...! | 00004570 20 20 20 20 20 20 4d 4f 56 20 20 20 20 20 72 35 | MOV r5| 00004580 2c 72 30 2c 4c 53 52 20 23 31 36 0d 19 dc 23 20 |,r0,LSR #16...# | 00004590 20 20 20 20 20 20 20 84 52 20 20 20 20 20 72 35 | .R r5| 000045a0 2c 72 35 2c 72 31 2c 4c 53 4c 20 23 31 36 0d 19 |,r5,r1,LSL #16..| 000045b0 e6 19 20 20 20 20 20 20 20 20 4d 4f 56 20 20 20 |.. MOV | 000045c0 20 20 72 30 2c 72 37 0d 19 f0 19 20 20 20 20 20 | r0,r7.... | 000045d0 20 20 20 4d 4f 56 20 20 20 20 20 72 31 2c 72 39 | MOV r1,r9| 000045e0 0d 19 fa 23 20 20 20 20 20 20 20 20 4c 44 52 20 |...# LDR | 000045f0 20 20 20 20 72 31 2c 5b 77 70 2c 23 78 73 63 61 | r1,[wp,#xsca| 00004600 6c 65 5d 0d 1a 04 19 20 20 20 20 20 20 20 20 42 |le].... B| 00004610 4c 20 20 20 20 20 20 6d 75 6c 36 34 0d 1a 0e 21 |L mul64...!| 00004620 20 20 20 20 20 20 20 20 4d 4f 56 20 20 20 20 20 | MOV | 00004630 72 37 2c 72 30 2c 4c 53 52 20 23 31 36 0d 1a 18 |r7,r0,LSR #16...| 00004640 23 20 20 20 20 20 20 20 20 84 52 20 20 20 20 20 |# .R | 00004650 72 37 2c 72 37 2c 72 31 2c 4c 53 4c 20 23 31 36 |r7,r7,r1,LSL #16| 00004660 0d 1a 22 04 0d 1a 2c 1e 20 20 20 20 20 20 20 20 |.."...,. | 00004670 4c 44 4d 49 41 20 20 20 77 70 2c 7b 72 30 2c 72 |LDMIA wp,{r0,r| 00004680 31 7d 0d 1a 36 23 20 20 20 20 20 20 20 20 41 44 |1}..6# AD| 00004690 44 20 20 20 20 20 72 36 2c 72 36 2c 72 30 2c 4c |D r6,r6,r0,L| 000046a0 53 4c 20 23 38 0d 1a 40 23 20 20 20 20 20 20 20 |SL #8..@# | 000046b0 20 41 44 44 20 20 20 20 20 72 37 2c 72 37 2c 72 | ADD r7,r7,r| 000046c0 31 2c 4c 53 4c 20 23 38 0d 1a 4a 25 20 20 20 20 |1,LSL #8..J% | 000046d0 20 20 20 20 41 44 44 20 20 20 20 20 72 31 34 2c | ADD r14,| 000046e0 77 70 2c 23 74 72 61 6e 73 66 6f 72 6d 0d 1a 54 |wp,#transform..T| 000046f0 1f 20 20 20 20 20 20 20 20 53 54 4d 49 41 20 20 |. STMIA | 00004700 20 72 31 34 2c 7b 72 32 2d 72 37 7d 0d 1a 5e 04 | r14,{r2-r7}..^.| 00004710 0d 1a 68 1f 20 20 20 20 20 20 20 20 4d 4f 56 20 |..h. MOV | 00004720 20 20 20 20 72 30 2c 23 26 32 30 30 2b 35 36 0d | r0,#&200+56.| 00004730 1a 72 24 20 20 20 20 20 20 20 20 41 44 52 20 20 |.r$ ADR | 00004740 20 20 20 72 31 2c 64 75 6d 6d 79 5f 73 70 72 61 | r1,dummy_spra| 00004750 72 65 61 0d 1a 7c 1d 20 20 20 20 20 20 20 20 41 |rea..|. A| 00004760 44 44 20 20 20 20 20 72 32 2c 72 38 2c 23 34 38 |DD r2,r8,#48| 00004770 0d 1a 86 19 20 20 20 20 20 20 20 20 4d 4f 56 20 |.... MOV | 00004780 20 20 20 20 72 33 2c 23 30 0d 1a 90 19 20 20 20 | r3,#0.... | 00004790 20 20 20 20 20 4d 4f 56 20 20 20 20 20 72 34 2c | MOV r4,| 000047a0 23 30 0d 1a 9a 1c 20 20 20 20 20 20 20 20 4d 4f |#0.... MO| 000047b0 56 20 20 20 20 20 72 35 2c 23 38 2b 31 36 0d 1a |V r5,#8+16..| 000047c0 a4 24 20 20 20 20 20 20 20 20 41 44 44 20 20 20 |.$ ADD | 000047d0 20 20 72 36 2c 77 70 2c 23 74 72 61 6e 73 66 6f | r6,wp,#transfo| 000047e0 72 6d 0d 1a ae 1c 20 20 20 20 20 20 20 20 a4 61 |rm.... .a| 000047f0 64 72 28 72 37 2c 63 6f 6c 5f 74 61 62 29 0d 1a |dr(r7,col_tab)..| 00004800 b8 22 20 20 20 20 20 20 20 20 53 57 49 20 20 20 |." SWI | 00004810 20 20 22 58 4f 53 5f 53 70 72 69 74 65 4f 70 22 | "XOS_SpriteOp"| 00004820 0d 1a c2 1c 20 20 20 20 20 20 20 20 42 20 20 20 |.... B | 00004830 20 20 20 20 6e 65 78 74 5f 6f 62 6a 0d 1a cc 0c | next_obj....| 00004840 20 20 20 20 20 20 20 20 0d 1a d6 12 20 3b 20 72 | .... ; r| 00004850 31 30 2d 3e 73 70 72 69 74 65 0d 1a e0 0c 20 20 |10->sprite.... | 00004860 20 20 20 20 20 20 0d 1a ea 11 2e 62 75 69 6c 64 | .....build| 00004870 5f 63 6f 6c 74 61 62 0d 1a f4 20 20 20 20 20 20 |_coltab... | 00004880 20 20 20 53 54 4d 46 44 20 20 20 28 73 70 29 21 | STMFD (sp)!| 00004890 2c 7b 6c 69 6e 6b 7d 0d 1a fe 0c 20 20 20 20 20 |,{link}.... | 000048a0 20 20 20 0d 1b 08 21 20 20 20 20 20 20 20 20 4c | ...! L| 000048b0 44 52 20 20 20 20 20 72 31 34 2c 5b 72 31 30 2c |DR r14,[r10,| 000048c0 23 33 32 5d 0d 1b 12 1b 20 20 20 20 20 20 20 20 |#32].... | 000048d0 43 4d 50 20 20 20 20 20 72 31 34 2c 23 34 34 0d |CMP r14,#44.| 000048e0 1b 1c 18 20 20 20 20 20 20 20 20 42 4e 45 20 20 |... BNE | 000048f0 20 20 20 62 63 74 32 0d 1b 26 20 20 20 20 20 20 | bct2..& | 00004900 20 20 20 4c 44 52 20 20 20 20 20 72 30 2c 5b 72 | LDR r0,[r| 00004910 31 30 2c 23 34 30 5d 0d 1b 30 22 20 20 20 20 20 |10,#40]..0" | 00004920 20 20 20 4d 4f 56 53 20 20 20 20 72 31 34 2c 72 | MOVS r14,r| 00004930 30 2c 4c 53 52 20 23 32 37 0d 1b 3a 2c 20 20 20 |0,LSR #27..:, | 00004940 20 20 20 20 20 42 4e 45 20 20 20 20 20 62 63 74 | BNE bct| 00004950 32 20 3b 20 6e 65 77 20 66 6f 72 6d 61 74 20 73 |2 ; new format s| 00004960 70 72 69 74 65 0d 1b 44 19 20 20 20 20 20 20 20 |prite..D. | 00004970 20 4d 4f 56 20 20 20 20 20 72 31 2c 23 33 0d 1b | MOV r1,#3..| 00004980 4e 2a 20 20 20 20 20 20 20 20 53 57 49 20 20 20 |N* SWI | 00004990 20 20 22 58 4f 53 5f 52 65 61 64 4d 6f 64 65 56 | "XOS_ReadModeV| 000049a0 61 72 69 61 62 6c 65 22 0d 1b 58 1a 20 20 20 20 |ariable"..X. | 000049b0 20 20 20 20 43 4d 50 20 20 20 20 20 72 32 2c 23 | CMP r2,#| 000049c0 31 35 0d 1b 62 18 20 20 20 20 20 20 20 20 42 47 |15..b. BG| 000049d0 54 20 20 20 20 20 62 63 74 32 0d 1b 6c 1c 20 20 |T bct2..l. | 000049e0 20 20 20 20 20 20 4d 4f 56 20 20 20 20 20 72 30 | MOV r0| 000049f0 2c 23 26 32 30 30 0d 1b 76 24 20 20 20 20 20 20 |,#&200..v$ | 00004a00 20 20 41 44 52 20 20 20 20 20 72 31 2c 64 75 6d | ADR r1,dum| 00004a10 6d 79 5f 73 70 72 61 72 65 61 0d 1b 80 1a 20 20 |my_sprarea.... | 00004a20 20 20 20 20 20 20 4d 4f 56 20 20 20 20 20 72 32 | MOV r2| 00004a30 2c 72 31 30 0d 1b 8a 19 20 20 20 20 20 20 20 20 |,r10.... | 00004a40 4d 4f 56 20 20 20 20 20 72 33 2c 23 30 0d 1b 94 |MOV r3,#0...| 00004a50 19 20 20 20 20 20 20 20 20 4d 4f 56 20 20 20 20 |. MOV | 00004a60 20 72 34 2c 23 30 0d 1b 9e 19 20 20 20 20 20 20 | r4,#0.... | 00004a70 20 20 4d 4f 56 20 20 20 20 20 72 35 2c 23 30 0d | MOV r5,#0.| 00004a80 1b a8 19 20 20 20 20 20 20 20 20 4d 4f 56 20 20 |... MOV | 00004a90 20 20 20 72 36 2c 23 30 0d 1b b2 1c 20 20 20 20 | r6,#0.... | 00004aa0 20 20 20 20 a4 61 64 72 28 72 37 2c 63 6f 6c 5f | .adr(r7,col_| 00004ab0 74 61 62 29 0d 1b bc 28 20 20 20 20 20 20 20 20 |tab)...( | 00004ac0 53 57 49 20 20 20 20 20 22 58 57 69 6d 70 5f 52 |SWI "XWimp_R| 00004ad0 65 61 64 50 69 78 54 72 61 6e 73 22 0d 1b c6 1e |eadPixTrans"....| 00004ae0 20 20 20 20 20 20 20 20 4c 44 4d 46 44 20 20 20 | LDMFD | 00004af0 28 73 70 29 21 2c 7b 70 63 7d 0d 1b d0 0c 20 20 |(sp)!,{pc}.... | 00004b00 20 20 20 20 20 20 0d 1b da 09 2e 62 63 74 32 0d | .....bct2.| 00004b10 1b e4 24 20 20 20 20 20 20 20 20 41 44 52 20 20 |..$ ADR | 00004b20 20 20 20 72 30 2c 64 75 6d 6d 79 5f 73 70 72 61 | r0,dummy_spra| 00004b30 72 65 61 0d 1b ee 1a 20 20 20 20 20 20 20 20 4d |rea.... M| 00004b40 4f 56 20 20 20 20 20 72 31 2c 72 31 30 0d 1b f8 |OV r1,r10...| 00004b50 19 20 20 20 20 20 20 20 20 4d 56 4e 20 20 20 20 |. MVN | 00004b60 20 72 32 2c 23 30 0d 1c 02 19 20 20 20 20 20 20 | r2,#0.... | 00004b70 20 20 4d 56 4e 20 20 20 20 20 72 33 2c 23 30 0d | MVN r3,#0.| 00004b80 1c 0c 1c 20 20 20 20 20 20 20 20 a4 61 64 72 28 |... .adr(| 00004b90 72 34 2c 63 6f 6c 5f 74 61 62 29 0d 1c 16 19 20 |r4,col_tab).... | 00004ba0 20 20 20 20 20 20 20 4d 4f 56 20 20 20 20 20 72 | MOV r| 00004bb0 35 2c 23 31 0d 1c 20 2e 20 20 20 20 20 20 20 20 |5,#1.. . | 00004bc0 53 57 49 20 20 20 20 20 22 58 43 6f 6c 6f 75 72 |SWI "XColour| 00004bd0 54 72 61 6e 73 5f 53 65 6c 65 63 74 54 61 62 6c |Trans_SelectTabl| 00004be0 65 22 0d 1c 2a 1e 20 20 20 20 20 20 20 20 4c 44 |e"..*. LD| 00004bf0 4d 46 44 20 20 20 28 73 70 29 21 2c 7b 70 63 7d |MFD (sp)!,{pc}| 00004c00 0d 1c 34 0c 20 20 20 20 20 20 20 20 0d 1c 3e 12 |..4. ..>.| 00004c10 2e 64 75 6d 6d 79 5f 73 70 72 61 72 65 61 0d 1c |.dummy_sprarea..| 00004c20 48 16 20 20 20 20 20 20 20 20 44 43 44 20 20 20 |H. DCD | 00004c30 20 20 31 36 0d 1c 52 15 20 20 20 20 20 20 20 20 | 16..R. | 00004c40 44 43 44 20 20 20 20 20 30 0d 1c 5c 16 20 20 20 |DCD 0..\. | 00004c50 20 20 20 20 20 44 43 44 20 20 20 20 20 31 36 0d | DCD 16.| 00004c60 1c 66 16 20 20 20 20 20 20 20 20 44 43 44 20 20 |.f. DCD | 00004c70 20 20 20 31 36 0d 1c 70 0c 20 20 20 20 20 20 20 | 16..p. | 00004c80 20 0d 1c 7a 3c 20 3b 20 4f 6e 20 65 6e 74 72 79 | ..z< ; On entry| 00004c90 2c 20 72 30 2d 3e 66 69 6c 65 20 6e 61 6d 65 2c |, r0->file name,| 00004ca0 20 6f 6e 20 65 78 69 74 2c 20 72 30 3d 68 61 6e | on exit, r0=han| 00004cb0 64 6c 65 20 28 61 64 64 72 65 73 73 29 0d 1c 84 |dle (address)...| 00004cc0 0c 20 20 20 20 20 20 20 20 0d 1c 8e 09 2e 4c 6f |. .....Lo| 00004cd0 61 64 0d 1c 98 27 20 20 20 20 20 20 20 20 53 54 |ad...' ST| 00004ce0 4d 46 44 20 20 20 28 73 70 29 21 2c 7b 72 30 2d |MFD (sp)!,{r0-| 00004cf0 72 31 31 2c 6c 69 6e 6b 7d 0d 1c a2 20 20 20 20 |r11,link}... | 00004d00 20 20 20 20 20 41 44 44 20 20 20 20 20 72 31 2c | ADD r1,| 00004d10 77 70 2c 23 66 6e 61 6d 65 0d 1c ac 0f 2e 63 6f |wp,#fname.....co| 00004d20 70 79 5f 66 6e 61 6d 65 0d 1c b6 1f 20 20 20 20 |py_fname.... | 00004d30 20 20 20 20 4c 44 52 42 20 20 20 20 72 31 34 2c | LDRB r14,| 00004d40 5b 72 30 5d 2c 23 31 0d 1c c0 1b 20 20 20 20 20 |[r0],#1.... | 00004d50 20 20 20 43 4d 50 20 20 20 20 20 72 31 34 2c 23 | CMP r14,#| 00004d60 33 32 0d 1c ca 1a 20 20 20 20 20 20 20 20 4d 4f |32.... MO| 00004d70 56 4c 54 20 20 20 72 31 34 2c 23 30 0d 1c d4 1f |VLT r14,#0....| 00004d80 20 20 20 20 20 20 20 20 53 54 52 42 20 20 20 20 | STRB | 00004d90 72 31 34 2c 5b 72 31 5d 2c 23 31 0d 1c de 1a 20 |r14,[r1],#1.... | 00004da0 20 20 20 20 20 20 20 43 4d 50 20 20 20 20 20 72 | CMP r| 00004db0 31 34 2c 23 30 0d 1c e8 1e 20 20 20 20 20 20 20 |14,#0.... | 00004dc0 20 42 4e 45 20 20 20 20 20 63 6f 70 79 5f 66 6e | BNE copy_fn| 00004dd0 61 6d 65 0d 1c f2 20 20 20 20 20 20 20 20 20 41 |ame... A| 00004de0 44 44 20 20 20 20 20 72 31 2c 77 70 2c 23 66 6e |DD r1,wp,#fn| 00004df0 61 6d 65 0d 1c fc 19 20 20 20 20 20 20 20 20 4d |ame.... M| 00004e00 4f 56 20 20 20 20 20 72 30 2c 23 35 0d 1d 06 1e |OV r0,#5....| 00004e10 20 20 20 20 20 20 20 20 53 57 49 20 20 20 20 20 | SWI | 00004e20 22 58 4f 53 5f 46 69 6c 65 22 0d 1d 10 19 20 20 |"XOS_File".... | 00004e30 20 20 20 20 20 20 43 4d 50 20 20 20 20 20 72 30 | CMP r0| 00004e40 2c 23 31 0d 1d 1a 19 20 20 20 20 20 20 20 20 42 |,#1.... B| 00004e50 45 51 20 20 20 20 20 6c 6f 61 64 32 0d 1d 24 19 |EQ load2..$.| 00004e60 20 20 20 20 20 20 20 20 4d 4f 56 20 20 20 20 20 | MOV | 00004e70 72 32 2c 72 30 0d 1d 2e 1a 20 20 20 20 20 20 20 |r2,r0.... | 00004e80 20 4d 4f 56 20 20 20 20 20 72 30 2c 23 31 39 0d | MOV r0,#19.| 00004e90 1d 38 20 20 20 20 20 20 20 20 20 41 44 44 20 20 |.8 ADD | 00004ea0 20 20 20 72 31 2c 77 70 2c 23 66 6e 61 6d 65 0d | r1,wp,#fname.| 00004eb0 1d 42 1e 20 20 20 20 20 20 20 20 53 57 49 20 20 |.B. SWI | 00004ec0 20 20 20 22 58 4f 53 5f 46 69 6c 65 22 0d 1d 4c | "XOS_File"..L| 00004ed0 1c 20 20 20 20 20 20 20 20 41 44 44 20 20 20 20 |. ADD | 00004ee0 20 73 70 2c 73 70 2c 23 34 0d 1d 56 25 20 20 20 | sp,sp,#4..V% | 00004ef0 20 20 20 20 20 4c 44 4d 46 44 20 20 20 28 73 70 | LDMFD (sp| 00004f00 29 21 2c 7b 72 31 2d 72 31 31 2c 70 63 7d 0d 1d |)!,{r1-r11,pc}..| 00004f10 60 0a 2e 6c 6f 61 64 32 0d 1d 6a 1c 20 20 20 20 |`..load2..j. | 00004f20 20 20 20 20 41 44 44 20 20 20 20 20 72 33 2c 72 | ADD r3,r| 00004f30 34 2c 23 34 0d 1d 74 1a 20 20 20 20 20 20 20 20 |4,#4..t. | 00004f40 42 4c 20 20 20 20 20 20 6d 61 6c 6c 6f 63 0d 1d |BL malloc..| 00004f50 7e 1c 20 20 20 20 20 20 20 20 41 44 44 56 53 20 |~. ADDVS | 00004f60 20 20 73 70 2c 73 70 2c 23 34 0d 1d 88 25 20 20 | sp,sp,#4...% | 00004f70 20 20 20 20 20 20 4c 44 4d 56 53 46 44 20 28 73 | LDMVSFD (s| 00004f80 70 29 21 2c 7b 72 31 2d 72 31 31 2c 70 63 7d 0d |p)!,{r1-r11,pc}.| 00004f90 1d 92 1b 20 20 20 20 20 20 20 20 53 54 52 20 20 |... STR | 00004fa0 20 20 20 72 33 2c 5b 72 32 5d 0d 1d 9c 1b 20 20 | r3,[r2].... | 00004fb0 20 20 20 20 20 20 53 54 52 20 20 20 20 20 72 32 | STR r2| 00004fc0 2c 5b 73 70 5d 0d 1d a6 1b 20 20 20 20 20 20 20 |,[sp].... | 00004fd0 20 4d 4f 56 20 20 20 20 20 72 30 2c 23 32 35 35 | MOV r0,#255| 00004fe0 0d 1d b0 20 20 20 20 20 20 20 20 20 41 44 44 20 |... ADD | 00004ff0 20 20 20 20 72 31 2c 77 70 2c 23 66 6e 61 6d 65 | r1,wp,#fname| 00005000 0d 1d ba 1c 20 20 20 20 20 20 20 20 41 44 44 20 |.... ADD | 00005010 20 20 20 20 72 32 2c 72 32 2c 23 34 0d 1d c4 19 | r2,r2,#4....| 00005020 20 20 20 20 20 20 20 20 4d 4f 56 20 20 20 20 20 | MOV | 00005030 72 33 2c 23 30 0d 1d ce 1e 20 20 20 20 20 20 20 |r3,#0.... | 00005040 20 53 57 49 20 20 20 20 20 22 58 4f 53 5f 46 69 | SWI "XOS_Fi| 00005050 6c 65 22 0d 1d d8 1b 20 20 20 20 20 20 20 20 53 |le".... S| 00005060 54 52 56 53 20 20 20 72 30 2c 5b 73 70 5d 0d 1d |TRVS r0,[sp]..| 00005070 e2 25 20 20 20 20 20 20 20 20 4c 44 4d 46 44 20 |.% LDMFD | 00005080 20 20 28 73 70 29 21 2c 7b 72 30 2d 72 31 31 2c | (sp)!,{r0-r11,| 00005090 70 63 7d 0d 1d ec 04 0d 1d f6 1a 20 3b 20 4f 6e |pc}........ ; On| 000050a0 20 65 6e 74 72 79 2c 20 72 30 3d 68 61 6e 64 6c | entry, r0=handl| 000050b0 65 0d 1e 00 04 0d 1e 0a 0c 2e 44 69 73 63 61 72 |e.........Discar| 000050c0 64 0d 1e 14 26 20 20 20 20 20 20 20 20 53 54 4d |d...& STM| 000050d0 46 44 20 20 20 28 73 70 29 21 2c 7b 72 30 2d 72 |FD (sp)!,{r0-r| 000050e0 32 2c 6c 69 6e 6b 7d 0d 1e 1e 19 20 20 20 20 20 |2,link}.... | 000050f0 20 20 20 4d 4f 56 20 20 20 20 20 72 32 2c 72 30 | MOV r2,r0| 00005100 0d 1e 28 18 20 20 20 20 20 20 20 20 42 4c 20 20 |..(. BL | 00005110 20 20 20 20 66 72 65 65 0d 1e 32 24 20 20 20 20 | free..2$ | 00005120 20 20 20 20 4c 44 4d 46 44 20 20 20 28 73 70 29 | LDMFD (sp)| 00005130 21 2c 7b 72 30 2d 72 32 2c 70 63 7d 0d 1e 3c 05 |!,{r0-r2,pc}..<.| 00005140 5d 0d 1e 46 11 4d 6f 64 75 6c 65 5f 45 6e 64 3d |]..F.Module_End=| 00005150 50 25 0d 1e 50 05 ed 0d 1e 5a 35 c8 99 20 22 4f |P%..P....Z5.. "O| 00005160 53 5f 46 69 6c 65 22 2c 31 30 2c 22 40 2e 44 72 |S_File",10,"@.Dr| 00005170 65 6e 64 65 72 22 2c 26 46 46 41 2c 2c 63 6f 64 |ender",&FFA,,cod| 00005180 65 2c 4d 6f 64 75 6c 65 5f 45 6e 64 0d 1e 64 2c |e,Module_End..d,| 00005190 f1 22 4d 6f 64 75 6c 65 20 73 69 7a 65 3d 22 3b |."Module size=";| 000051a0 4d 6f 64 75 6c 65 5f 45 6e 64 2d 63 6f 64 65 3b |Module_End-code;| 000051b0 22 20 62 79 74 65 73 22 0d 1e 6e 05 e0 0d 1e 78 |" bytes"..n....x| 000051c0 05 3a 0d 1e 82 13 dd 20 a4 61 6c 6c 6f 63 28 73 |.:..... .alloc(s| 000051d0 69 7a 65 25 29 0d 1e 8c 0d 70 25 2b 3d 73 69 7a |ize%)....p%+=siz| 000051e0 65 25 0d 1e 96 0d 3d 70 25 2d 73 69 7a 65 25 0d |e%....=p%-size%.| 000051f0 1e a0 05 3a 0d 1e aa 14 dd 20 a4 61 64 72 28 72 |...:..... .adr(r| 00005200 65 67 2c 6f 66 66 25 29 0d 1e b4 0b ea 20 74 65 |eg,off%)..... te| 00005210 6d 70 25 0d 1e be 0e 74 65 6d 70 25 3d 6f 66 66 |mp%....temp%=off| 00005220 25 0d 1e c8 21 c8 95 20 74 65 6d 70 25 3c 3e 30 |%...!.. temp%<>0| 00005230 20 80 20 28 28 74 65 6d 70 25 20 80 20 31 29 3d | . ((temp% . 1)=| 00005240 30 29 0d 1e d2 13 20 74 65 6d 70 25 3d 74 65 6d |0).... temp%=tem| 00005250 70 25 3e 3e 31 0d 1e dc 05 ce 0d 1e e6 1e e7 20 |p%>>1.......... | 00005260 6f 66 66 25 3c 3d 32 35 36 20 84 20 74 65 6d 70 |off%<=256 . temp| 00005270 25 3c 3d 31 32 38 20 8c 0d 1e f0 0e 5b 4f 50 54 |%<=128 .....[OPT| 00005280 20 70 61 73 73 25 0d 1e fa 20 20 20 20 20 20 20 | pass%... | 00005290 20 20 41 44 44 20 20 20 20 20 72 65 67 2c 77 70 | ADD reg,wp| 000052a0 2c 23 6f 66 66 25 0d 1f 04 05 5d 0d 1f 0e 05 cc |,#off%....].....| 000052b0 0d 1f 18 0e 5b 4f 50 54 20 70 61 73 73 25 0d 1f |....[OPT pass%..| 000052c0 22 26 20 20 20 20 20 20 20 20 41 44 44 20 20 20 |"& ADD | 000052d0 20 20 72 65 67 2c 77 70 2c 23 6f 66 66 25 20 80 | reg,wp,#off% .| 000052e0 20 26 46 46 0d 1f 2c 29 20 20 20 20 20 20 20 20 | &FF..,) | 000052f0 41 44 44 20 20 20 20 20 72 65 67 2c 72 65 67 2c |ADD reg,reg,| 00005300 23 6f 66 66 25 20 80 20 26 46 46 30 30 0d 1f 36 |#off% . &FF00..6| 00005310 05 5d 0d 1f 40 05 cd 0d 1f 4a 06 3d 30 0d 1f 54 |.]..@....J.=0..T| 00005320 05 3a 0d 1f 5e 0b dd 20 a4 63 6c 72 76 0d 1f 68 |.:..^.. .clrv..h| 00005330 0e 5b 4f 50 54 20 70 61 73 73 25 0d 1f 72 19 20 |.[OPT pass%..r. | 00005340 20 20 20 20 20 20 20 43 4d 50 20 20 20 20 20 70 | CMP p| 00005350 63 2c 23 30 0d 1f 7c 05 5d 0d 1f 86 06 3d 30 0d |c,#0..|.]....=0.| 00005360 ff |.| 00005361