Home » Archimedes archive » Acorn User » AU 1994-10.adf » !StarInfo_StarInfo » Kemp/FiltSource
Kemp/FiltSource
This website contains an archive of files for the Acorn Electron, BBC Micro, Acorn Archimedes, Commodore 16 and Commodore 64 computers, which Dominic Ford has rescued from his private collection of floppy disks and cassettes.
Some of these files were originally commercial releases in the 1980s and 1990s, but they are now widely available online. I assume that copyright over them is no longer being asserted. If you own the copyright and would like files to be removed, please contact me.
Tape/disk: | Home » Archimedes archive » Acorn User » AU 1994-10.adf » !StarInfo_StarInfo |
Filename: | Kemp/FiltSource |
Read OK: | ✔ |
File size: | 630A bytes |
Load address: | 0000 |
Exec address: | 0000 |
File contents
10REM >FiltSource 20REM By KCE Software (Andrew Kemp) 30REM LEN June 1994 40: 50REM workspace : 60REM __________________________________________________________________________ 70REM | offset | contents | 80REM |--------------------------------------------------------------------------| 90REM | 0 | options flag word : bit 0 => task manager messages added | 100REM | | bit 1 => own current drag operation | 110REM | | bit 2 => current drag is solid | 120REM | | bit 3 => current fa filter may be replaced | 130REM | | bit 4 => SetCSD turned on | 140REM | | bit 5 => IconSpr turned on | 150REM | | bit 6 => Confirm turned on | 160REM | | | 170REM | | bit 16 => TaskManager filter installed | 180REM | | bit 17 => Palette filter installed | 190REM | | bit 18 => FilerAction filter installed | 200REM | 4 | my task handle | 210REM | 8 | task manager's task handle | 220REM | 12 | palette utility's task handle | 230REM | 16 | filer action window's task handle | 240REM | 20-275 | polling block | 250REM | 276-295 | full descending stack, five registers | 260REM -------------------------------------------------------------------------- 270: 280moduleflags = 0 290myhandle = 4 300tmhandle = 8 310pahandle = 12 320fahandle = 16 330pollblock = 20 340stack = 292 : REM pointer to top word of descending stack 350: 360tmmessagesadded = 1<<0 370tmowndrag = 1<<1 380tmsolidity = 1<<2 390fareplaceable = 1<<3 400setcsdon = 1<<4 410iconspron = 1<<5 420confirmon = 1<<6 430tmfilterinstalled = 1<<16 440pafilterinstalled = 1<<17 450fafilterinstalled = 1<<18 460: 470run%=FALSE 480ON ERROR VDU 7:PRINT REPORT$;" at line ";STR$(ERL):END 490: 500PROCinit 510PROCassemble 520PROCsave("TaskFilter",&ffa,code%,O%) 530END 540: 550DEF PROCinit 560date$=MID$(TIME$,5,11) 570version$="0.28" 580DIM code% &10000 590ENDPROC 600: 610DEF PROCsave(file$,type%,base%,end%) 620SYS "OS_File",10,file$,type%,,base%,end% 630IF run% THEN SYS "OS_CLI","RMLoad "+file$ 640ENDPROC 650: 660DEF PROCassemble 670wp=12: sp=13: link=14: pc=15 680FOR pass%=4 TO 6 STEP 2 690P%=0: O%=code% 700[OPT pass% 710 EQUD startcode 720 EQUD initcode 730 EQUD finalcode 740 EQUD servicecode 750 EQUD titlestring 760 EQUD helpstring 770 EQUD helptable 780 790.titlestring 800 EQUS "TaskFilters" 810 EQUB 0 820 ALIGN 830 840.helpstring 850 EQUS "TaskFilters" 860 EQUB 9 870 EQUS version$+" ("+date$+")" 880 EQUB 0 890 ALIGN 900 910.helptable 920 EQUS "Desktop_TaskFilters" 930 EQUB 0 940 ALIGN 950 EQUD starcommand 960 EQUD 0 970 EQUD 0 980 EQUD help 990 EQUB 0 1000 1010.help 1020 EQUB 13 1030 EQUS "Do not use *Desktop_TaskFilters, use *Desktop instead." 1040 EQUB 13 1050 EQUB 13 1060 EQUS "TaskFilters provides simple and low-memory patches to various " 1070 EQUS "aspects of the operating system, using RISC OS 3's filter " 1080 EQUS "manager. See the !Help file for details of the various " 1090 EQUS "filters." 1100 EQUB 13 1110 EQUB 13 1120 EQUS "TaskFilters was written by Andrew Kemp." 1130 EQUB 13 1140 EQUB 13 1150 EQUS "� KCE Software, June 1994."+CHR$(13)+CHR$(0) 1160 ALIGN 1170 1180.startwimp 1190 LDR R14,[R12,#myhandle] 1200 TEQ R14,#0 1210 MVNEQ R14,#(NOT -1) 1220 STREQ R14,[R12,#myhandle] 1230 ADREQ R0,helptable 1240 MOVEQ R1,#0 1250 LDMFD (sp)!,{pc} 1260 1270.initcode 1280 STMFD (sp)!,{R7-R11,link} 1290 MOV R0,#6 1300 MOV R3,#296 1310 SWI "XOS_Module" 1320 BVS initexit 1330 STR R2,[R12] 1340 MOV R0,#0 1350 STR R0,[R2,#myhandle] 1360 LDRB R3,[R10] 1370 CMP R3,#ASC("-") 1380 BNE initexit 1390 LDRB R3,[R10,#1] 1400 CMP R3,#ASC("o") 1410 BEQ readopts 1420.initexit 1430 LDMFD (sp)!,{R7-R11,pc} 1440 1450.readopts 1460 ORR R0,R0,#(setcsdon OR iconspron OR confirmon) 1470 STR R0,[R2,#moduleflags] ; default options in case error 1480 MOV R0,#17 1490 ADR R1,pathname 1500 SWI "XOS_File" 1510 BVS initexit ; exit if error occurred 1520 CMP R0,#1 ; exit if not a file, or doesn't exist 1530 CMPEQ R4,#4 ; exit if file wrong length 1540 BNE initexit 1550 MOV R0,#16 1560 LDR R2,[R12] 1570 ADD R2,R2,#moduleflags 1580 MOV R3,#0 1590 SWI "XOS_File" 1600 B initexit 1610 1620.pathname 1630 EQUS "TaskFilter:Options" 1640 EQUB 0 1650 ALIGN 1660 1670.starcommand 1680 STMFD (sp)!,{link} 1690 MOV R2,R0 1700 ADR R1,titlestring 1710 MOV R0,#2 1720 SWI "XOS_Module" 1730 LDMFD (sp)!,{pc} 1740 1750.task 1760 EQUS "TASK" 1770 1780.startcode 1790 LDR R12,[R12] 1800 LDR R0,[R12,#myhandle] 1810 TEQ R0,#0 1820 LDRGT R1,task 1830 SWIGT "XWimp_CloseDown" 1840 MOVGT R0,#0 1850 STRGT R0,[R12,#myhandle] 1860 1870 MOV R0,#308 1880 ADD R0,R0,#2 1890 LDR R1,task 1900 ADR R2,titlestring 1910 ADR R3,mymessages 1920 SWI "XWimp_Initialise" 1930 SWIVS "XOS_Exit" 1940 STR R1,[R12,#myhandle] 1950 1960 ADD sp,R12,#stack 1970 1980 BL installall : REM TAB(TAB( fall through TAB(TAB( 1990 2000.poll 2010 LDR R0,mymask 2020 ADD R1,R12,#pollblock 2030 SWI "XWimp_Poll" 2040 CMP R0,#17 2050 CMPNE R0,#18 2060 BNE poll 2070 LDR R0,[R1,#16] 2080 LDR R2,message_taskinitialise 2090 CMP R0,R2 2100 BEQ taskinitialise 2110 LDR R2,message_taskclosedown 2120 CMP R0,R2 2130 BEQ taskclosedown 2140 CMP R0,#0 2150 BNE poll 2160 BL tmfilterremove 2170 BL pafilterremove 2180 BL fafilterremove 2190 LDR R0,[R12,#myhandle] 2200 ADR R1,task 2210 SWI "XWimp_CloseDown" 2220 MOV R1,#0 2230 STR R1,[R12,#myhandle] 2240 SWI "XOS_Exit" 2250 B poll 2260 2270.mymessages 2280.message_taskinitialise 2290 EQUD &400C2 2300.message_taskclosedown 2310 EQUD &400C3 2320 EQUD 0 2330 2340.installall 2350 STMFD (sp)!,{R1,link} 2360 ADR R4,tmname 2370 BL gettaskhandle 2380 CMP R3,#0 2390 BLNE tmfilterinstall 2400 ADR R4,paname 2410 BL gettaskhandle 2420 CMP R3,#0 2430 BLNE pafilterinstall 2440 LDMFD (sp)!,{R1,pc} 2450 2460.taskinitialise 2470 ADD R0,R1,#28 2480 ADR R3,tmname 2490 BL stringcompare 2500 CMP R3,#1 2510 LDREQ R3,[R1,#4] 2520 BLEQ tmfilterinstall 2530 ADR R3,paname 2540 BL stringcompare 2550 CMP R3,#1 2560 LDREQ R3,[R1,#4] 2570 BLEQ pafilterinstall 2580 ADR R3,faname 2590 BL stringcompare 2600 CMP R3,#1 2610 LDREQ R3,[R1,#4] 2620 BLEQ fafilterinstall 2630 B poll 2640 2650.taskclosedown 2660 LDR R0,[R1,#4] 2670 LDR R2,[R12,#tmhandle] 2680 CMP R0,R2 2690 BLEQ tmfilterremove 2700 LDR R2,[R12,#pahandle] 2710 CMP R0,R2 2720 BLEQ pafilterremove 2730 LDR R2,[R12,#fahandle] 2740 CMP R0,R2 2750 BLEQ fafilterremove 2760 B poll 2770 2780.stringcompare 2790 STMFD (sp)!,{R0,link} 2800.compareloop ; compares string pointed to by R0 2810 LDRB R7,[R0],#1 ; with that pointed to by R3 2820 LDRB R5,[R3],#1 ; returning 1 in R3 if same 2830 CMP R7,R5 2840 MOVNE R3,#0 2850 LDMNEFD (sp)!,{R0,pc} 2860 CMP R5,#0 2870 BNE compareloop 2880 MOV R3,#1 2890 LDMFD (sp)!,{R0,pc} 2900 2910.tmfilterinstall ; pass tm task handle in R3 2920 STMFD (sp)!,{R0,link} 2930 LDR R1,[R12,#moduleflags] 2940 TST R1,#tmfilterinstalled 2950 LDMNEFD (sp)!,{R0,pc} ; if already installed, just exit 2960 TST R1,#setcsdon 2970 LDMEQFD (sp)!,{R0,pc} ; if not selected, exit 2980 ADR R0,tmfiltername 2990 ADR R1,tmfiltercode 3000 MOV R2,R12 ; note passes workspace pointer 3010 LDR R4,tmfiltermask ; not private word pointer as 3020 SWI "XFilter_RegisterPostFilter" ; before 3030 STRVC R3,[R12,#tmhandle] 3040 LDRVC R1,[R12,#moduleflags] 3050 ORRVC R1,R1,#tmfilterinstalled 3060 STRVC R1,[R12,#moduleflags] 3070 LDMFD (sp)!,{R0,pc} 3080 3090.tmfilterremove 3100 STMFD (sp)!,{R0,link} 3110 LDR R1,[R12,#moduleflags] 3120 TST R1,#tmfilterinstalled 3130 LDMEQFD (sp)!,{R0,pc} ; if not installed, just exit 3140 ADR R0,tmfiltername 3150 ADR R1,tmfiltercode 3160 MOV R2,R12 3170 LDR R3,[R12,#tmhandle] 3180 LDR R4,tmfiltermask 3190 SWI "XFilter_DeRegisterPostFilter" 3200 LDRVC R1,[R12,#moduleflags] 3210 BICVC R1,R1,#tmfilterinstalled 3220 STRVC R1,[R12,#moduleflags] 3230 LDMFD (sp)!,{R0,pc} 3240 3250.tmfiltername 3260 EQUS "SetCSD" 3270 EQUB 0 3280 ALIGN 3290 3300.pafilterinstall ; pass pa task handle in R3 3310 STMFD (sp)!,{R0,link} 3320 LDR R1,[R12,#moduleflags] 3330 TST R1,#pafilterinstalled 3340 LDMNEFD (sp)!,{R0,pc} ; if already installed, just exit 3350 TST R1,#iconspron 3360 LDMEQFD (sp)!,{R0,pc} ; if not selected, exit 3370 ADR R0,pafiltername 3380 ADR R1,pafiltercode 3390 MOV R2,R12 ; note passes workspace pointer 3400 LDR R4,pafiltermask ; not private word pointer as 3410 SWI "XFilter_RegisterPostFilter" ; before 3420 STRVC R3,[R12,#pahandle] 3430 LDRVC R1,[R12,#moduleflags] 3440 ORRVC R1,R1,#pafilterinstalled 3450 STRVC R1,[R12,#moduleflags] 3460 LDMFD (sp)!,{R0,pc} 3470 3480.pafilterremove 3490 STMFD (sp)!,{R0,link} 3500 LDR R1,[R12,#moduleflags] 3510 TST R1,#pafilterinstalled 3520 LDMEQFD (sp)!,{R0,pc} ; if not installed, just exit 3530 ADR R0,pafiltername 3540 ADR R1,pafiltercode 3550 MOV R2,R12 3560 LDR R3,[R12,#pahandle] 3570 LDR R4,pafiltermask 3580 SWI "XFilter_DeRegisterPostFilter" 3590 LDRVC R1,[R12,#moduleflags] 3600 BICVC R1,R1,#pafilterinstalled 3610 STRVC R1,[R12,#moduleflags] 3620 LDMFD (sp)!,{R0,pc} 3630 3640.pafiltername 3650 EQUS "IconSpr" 3660 EQUB 0 3670 ALIGN 3680 3690.pafiltercode 3700 STMFD (sp)!,{R1-R11,link} 3710 TEQ R0,#18 3720 BEQ pamessagereceived 3730 TEQ R0,#6 ; mouse click routine 3740 LDREQ R2,[R1,#12] 3750 CMNEQ R2,#2 3760 LDREQ R2,[R1,#8] 3770 CMPEQ R2,#1 3780 BLEQ forceredraw 3790 B endfilter 3800 3810.pamessagereceived 3820 LDR R2,[R1,#16] 3830 CMP R2,#3 3840 BNE endfilter 3850 LDR R2,[R1,#40] 3860 MOV R3,#&ff0 3870 ADD R3,R3,#9 3880 CMP R2,R3 3890 BNE endfilter 3900 STMFD (sp)!,{R1} 3910 MOV R0,#129 3920 MOV R1,#(&FF EOR 0) 3930 MOV R2,#&FF 3940 SWI "XOS_Byte" 3950 CMP R1,#&FF 3960 LDMFD (sp)!,{R1} 3970 BEQ toolsprites 3980 MOV R0,#11 3990 ADD R2,R1,#44 4000 SWI "XWimp_SpriteOp" 4010 BVS spriteoperror : REM TAB(TAB( fall through TAB(TAB( 4020 4030.senddataloadack 4040 BL forceredraw 4050 MOV R2,#4 4060 STR R2,[R1,#16] 4070 LDR R2,[R1,#8] 4080 STR R2,[R1,#12] 4090 MOV R0,#17 4100 LDR R2,[R1,#4] 4110 SWI "XWimp_SendMessage" 4120 MVN R0,#(NOT -1) 4130 B endfilter 4140 4150.spriteoperror 4160 MOV R1,#%0001010 4170 ADR R2,paname 4180 SWI "XWimp_ReportError" 4190 MVN R0,#(NOT -1) 4200 B endfilter 4210 4220.toolsprites 4230 ADR R2,toolspritestart 4240 ADD R3,R1,#(44-LEN("ToolSprites ")) 4250 MOV R0,R3 4260 BL stringcopy 4270 SWI "XOS_CLI" 4280 BVS spriteoperror 4290 B senddataloadack 4300 4310.stringcopy 4320 STMFD (sp)!,{R0,link} 4330.stringcopyloop 4340 LDRB R0,[R2],#1 4350 CMP R0,#32 4360 STRGEB R0,[R3],#1 4370 BGE stringcopyloop 4380 LDMFD (sp)!,{R0,pc} 4390 4400.toolspritestart 4410 EQUS "ToolSprites " 4420 EQUB 0 4430 ALIGN 4440 4450.forceredraw 4460 STMFD (sp)!,{R1,link} 4470 MVN R0,#(NOT -1) 4480 MOV R1,#0 4490 MOV R2,#0 4500 BL screenmax 4510 SWI "XWimp_ForceRedraw" 4520 LDMFD (sp)!,{R1,pc} 4530 4540.gettaskhandle 4550 STMFD (sp)!,{link} 4560 MOV R0,#0 4570.nexthandle 4580 ADD R1,R12,#pollblock ; use poll block as buffer for SWI 4590 MOV R2,#20 4600 SWI "XTaskManager_EnumerateTasks" 4610 BVS jumpout 4620 CMN R0,#1 4630 BEQ jumpout 4640 MOV R6,R0 4650 LDR R0,[R12,#(pollblock+4)] ; read task name 4660 MOV R3,R4 ; passed task name 4670 BL stringcompare 4680 MOV R0,R6 4690 CMP R3,#1 4700 LDREQ R3,[R12,#pollblock] 4710 LDMEQFD (sp)!,{pc} 4720 B nexthandle 4730.jumpout 4740 MOV R3,#0 4750 LDMFD (sp)!,{pc} 4760 4770.fafilterinstall ; pass pa task handle in R3 4780 STMFD (sp)!,{R0,link} 4790 LDR R1,[R12,#moduleflags] 4800 TST R1,#confirmon 4810 LDMEQFD (sp)!,{R0,pc} ; if not selected, exit 4820 TST R1,#fafilterinstalled 4830 BEQ fadoinstall ; if not installed, get on with it 4840 TST R1,#fareplaceable 4850 LDMEQFD (sp)!,{R0,pc} ; if not replaceable return 4860 MOV R0,R3 4870 BL fafilterremove ; if replacable, remove existing 4880 MOV R3,R0 4890.fadoinstall 4900 ADR R0,fafiltername 4910 ADR R1,fafiltercode 4920 MOV R2,R12 ; note passes workspace pointer 4930 LDR R4,fafiltermask ; not private word pointer as 4940 SWI "XFilter_RegisterPostFilter" ; before 4950 STRVC R3,[R12,#fahandle] 4960 LDRVC R1,[R12,#moduleflags] 4970 ORRVC R1,R1,#fafilterinstalled 4980 STRVC R1,[R12,#moduleflags] 4990 LDMFD (sp)!,{R0,pc} 5000 5010.fafilterremove 5020 STMFD (sp)!,{R0,link} 5030 LDR R1,[R12,#moduleflags] 5040 TST R1,#fafilterinstalled 5050 LDMEQFD (sp)!,{R0,pc} ; if not installed, just exit 5060 ADR R0,fafiltername 5070 ADR R1,fafiltercode 5080 MOV R2,R12 5090 LDR R3,[R12,#fahandle] 5100 LDR R4,fafiltermask 5110 SWI "XFilter_DeRegisterPostFilter" 5120 LDRVC R1,[R12,#moduleflags] 5130 BICVC R1,R1,#fafilterinstalled 5140 BICVC R1,R1,#fareplaceable 5150 STRVC R1,[R12,#moduleflags] 5160 LDMFD (sp)!,{R0,pc} 5170 5180.fafiltercode 5190 STMFD (sp)!,{R1-R11,link} 5200 TEQ R0,#17 5210 BNE endfilter 5220 LDR R3,[R1,#16] 5230 MOV R4,#&400 5240 ADD R4,R4,#&005 5250 TEQ R3,R4 5260 BNE endfilter 5270 LDR R3,[R1,#20] 5280 TEQ R3,#2 5290 BNE endfafilter 5300 LDR R3,[R1,#24] 5310 ORR R3,R3,#%00010 5320 STR R3,[R1,#24] 5330.endfafilter 5340 LDR R3,[R12,#moduleflags] 5350 ORR R3,R3,#fareplaceable 5360 STR R3,[R12,#moduleflags] 5370 B endfilter 5380 5390.fafiltername 5400 EQUS "Confirm" 5410 EQUB 0 5420 ALIGN 5430 5440.tmname 5450 EQUS "Task Manager" 5460 EQUB 0 5470 ALIGN 5480 5490.paname 5500 EQUS "Palette Utility" 5510 EQUB 0 5520 ALIGN 5530 5540.faname 5550 EQUS "Filer Action Window" 5560 EQUB 0 5570 ALIGN 5580 5590.tmfiltercode 5600 STMFD (sp)!,{R1-R11,link} 5610 LDR R3,[R12,#moduleflags] 5620 TST R3,#tmmessagesadded 5630 BLEQ tmaddmessages 5640 TEQ R0,#6 5650 BEQ tmmouseclick 5660 TEQ R0,#7 5670 BEQ enddrag 5680 TEQ R0,#17 5690 TEQNE R0,#18 5700 TEQNE R0,#19 5710 BEQ tmmessagereceived 5720.endfilter 5730 LDMFD (sp)!,{R1-R11,link} 5740 MOVS pc,link 5750 5760.tmmessagereceived 5770 LDR R2,[R1,#16] 5780 CMP R2,#1 5790 BEQ returned 5800 CMP R2,#2 5810 BNE endfilter 5820 LDR R2,[R12,#moduleflags] 5830 TST R2,#tmowndrag 5840 BEQ endfilter 5850 BIC R2,R2,#(tmowndrag OR tmsolidity) 5860 STR R2,[R12,#moduleflags] 5870 MOV R0,#43 5880.getstring 5890 ADD R0,R0,#1 5900 LDRB R2,[R1,R0] 5910 CMP R2,#32 5920 BGT getstring 5930 SUB R0,R0,#1 5940 LDRB R2,[R1,R0] 5950 CMP R2,#ASC(".") 5960 BNE endfilter 5970 MOV R2,#0 5980 STRB R2,[R1,R0] 5990 ADD R1,R1,#44 6000 MOV R0,#0 6010 SWI "XOS_FSControl" 6020 MVN R0,#(NOT -1) 6030 B endfilter 6040 6050.returned 6060 LDR R2,[R1,#4] 6070 LDR R3,[R12,#tmhandle] 6080 CMP R2,R3 6090 BNE endfilter 6100 LDR R2,[R12,#moduleflags] 6110 TST R2,#tmowndrag 6120 BICNE R2,R2,#(tmowndrag OR tmsolidity) 6130 STRNE R2,[R12,#moduleflags] 6140 MVNNE R0,#(NOT -1) 6150 B endfilter 6160 6170.tmaddmessages 6180 STMFD (sp)!,{R0,link} 6190 ORR R3,R3,#tmmessagesadded 6200 STR R3,[R12,#moduleflags] 6210 ADR R0,tmmessages 6220 SWI "XWimp_AddMessages" 6230 LDMFD (sp)!,{R0,pc} 6240 6250.enddrag 6260 LDR R2,[R12,#moduleflags] 6270 TST R2,#tmowndrag 6280 BEQ endfilter 6290 TST R2,#tmsolidity 6300 SWINE "XDragASprite_Stop" 6310 SWI "XWimp_GetPointerInfo" 6320 LDR R0,[R1,#4] 6330 STR R0,[R1,#32] 6340 LDR R0,[R1,#0] 6350 STR R0,[R1,#28] 6360 LDR R0,[R1,#16] 6370 STR R0,[R1,#24] 6380 LDR R0,[R1,#12] 6390 STR R0,[R1,#20] 6400 MOV R0,#1 6410 STR R0,[R1,#16] 6420 MOV R0,#0 6430 STR R0,[R1,#12] 6440 STR R0,[R1,#36] 6450 STR R0,[R1,#40] 6460 STR R0,[R1,#44] 6470 MOV R0,#60 6480 STR R0,[R1,#0] 6490 MOV R0,#18 6500 LDR R2,[R1,#20] 6510 SWI "XWimp_SendMessage" 6520 MVN R0,#(NOT -1) 6530 B endfilter 6540 6550.tmmessages 6560 EQUD 1 6570 EQUD 0 6580 6590.tmmouseclick 6600 LDR R2,[R1,#12] 6610 CMN R2,#2 6620 BNE endfilter 6630 LDR R2,[R1,#8] 6640 TEQ R2,#1 6650 BNE endfilter 6660 MOV R5,R1 6670 LDR R0,[R5,#12] 6680 STR R0,[R5,#0] 6690 LDR R4,[R5,#16] 6700 SWI "XWimp_GetWindowState" 6710 LDR R2,[R5,#4] 6720 LDR R0,[R5,#20] 6730 SUB R2,R2,R0 6740 LDR R3,[R5,#16] 6750 LDR R0,[R5,#24] 6760 SUB R3,R3,R0 6770 STR R4,[R5,#4] 6780 SWI "XWimp_GetIconState" 6790 MOV R0,#0 6800 STR R0,[R5,#0] 6810 MOV R0,#5 6820 STR R0,[R5,#4] 6830 LDR R0,[R5,#8] 6840 ADD R0,R0,R2 6850 STR R0,[R5,#8] 6860 LDR R0,[R5,#12] 6870 ADD R0,R0,R3 6880 STR R0,[R5,#12] 6890 LDR R0,[R5,#16] 6900 ADD R0,R0,R2 6910 STR R0,[R5,#16] 6920 LDR R0,[R5,#20] 6930 ADD R0,R0,R3 6940 STR R0,[R5,#20] 6950 MOV R0,#0 6960 STR R0,[R5,#24] 6970 MOV R0,#0 6980 STR R0,[R5,#28] 6990 BL screenmax 7000 STR R3,[R5,#32] 7010 STR R4,[R5,#36] 7020 MOV R0,#161 7030 MOV R1,#28 7040 SWI "XOS_Byte" 7050 AND R2,R2,#2 7060 CMP R2,#0 7070 BNE soliddrag 7080 7090.ordinarydrag 7100 MOV R1,R5 7110 SWI "XWimp_DragBox" 7120 LDR R0,[R12,#moduleflags] 7130 BIC R0,R0,#tmsolidity 7140 ORR R0,R0,#tmowndrag 7150 STR R0,[R12,#moduleflags] 7160 MVN R0,#(NOT -1) 7170 B endfilter 7180 7190.soliddrag 7200 LDR R0,solidflags 7210 MOV R1,#1 7220 ADR R2,spritename 7230 ADD R3,R5,#8 7240 SWI "XDragASprite_Start" 7250 LDR R0,[R12,#moduleflags] 7260 ORR R0,R0,#(tmowndrag OR tmsolidity) 7270 STR R0,[R12,#moduleflags] 7280 MVN R0,#(NOT -1) 7290 B endfilter 7300 7310.solidflags 7320 EQUD %11001010 7330 7340.spritename 7350 EQUS "switcher" 7360 EQUB 0 7370 ALIGN 7380 7390.screenmax ; returns maxx in r3 7400 STMFD R13!,{R0-R2,R5-R12,link} ; maxy in r4 7410 MVN R0,#(NOT -1) 7420 MOV R1,#11 7430 SWI "XOS_ReadModeVariable" 7440 ADD R6,R2,#1 7450 MOV R1,#4 7460 SWI "XOS_ReadModeVariable" 7470 MOV R3,R6,LSL R2 7480 MOV R1,#12 7490 SWI "XOS_ReadModeVariable" 7500 ADD R6,R2,#1 7510 MOV R1,#5 7520 SWI "XOS_ReadModeVariable" 7530 MOV R4,R6,LSL R2 7540 LDMFD R13!,{R0-R2,R5-R12,pc} 7550 7560.finalcode 7570 STMFD (sp)!,{R7-R11,link} 7580 LDR R12,[R12] 7590 LDR R0,[R12,#myhandle] 7600 TEQ R0,#0 7610 BLE finalskip 7620 LDR R1,task 7630 SWI "XWimp_CloseDown" 7640 BL tmfilterremove 7650 BL pafilterremove 7660 BL fafilterremove 7670.finalskip 7680 MOV R1,#0 7690 STR R1,[R12,#myhandle] 7700 MOV R0,#7 7710 MOV R2,R12 7720 SWI "XOS_Module" 7730 LDMFD (sp)!,{R7-R11,pc} 7740 7750.servicecode 7760 STMFD (sp)!,{link} 7770 LDR R12,[R12] 7780 TEQ R1,#&49 7790 BEQ startwimp 7800 TEQ R1,#&4A 7810 BEQ startedwimp 7820 TEQ R1,#&87 7830 BLEQ installall 7840 TEQ R1,#&88 7850 BEQ filtermanagerdying 7860 TEQ R1,#&27 7870 LDMNEFD (sp)!,{pc} 7880 MOV R14,#0 7890 STR R14,[R12,#myhandle] 7900 BL tmfilterremove 7910 BL pafilterremove 7920 BL fafilterremove 7930 LDMFD (sp)!,{pc} 7940 7950.filtermanagerdying 7960 LDR R3,[R12,#moduleflags] 7970 BIC R3,R3,#(tmfilterinstalled OR pafilterinstalled OR fafilterinstalled) 7980 BIC R3,R3,#fareplaceable 7990 STR R3,[R12,#moduleflags] 8000 LDMFD (sp)!,{pc} 8010 8020.startedwimp 8030 LDR R14,[R12,#myhandle] 8040 CMN R14,#1 8050 MOVEQ R14,#0 8060 STREQ R14,[R12,#myhandle] 8070 LDMFD (sp)!,{pc} 8080 8090.mymask 8100 EQUD %10000011100101110011 8110 8120.tmfiltermask 8130 EQUD %00000011100100110011 8140 8150.pafiltermask 8160 EQUD %10100011100100110011 8170 8180.fafiltermask 8190 EQUD %11000011100101110011 8200 8210] 8220NEXT pass% 8230ENDPROC
� >FiltSource #� By KCE Software (Andrew Kemp) � � June 1994 (: 2� workspace : <Q� __________________________________________________________________________ FR� | offset | contents | PR� |--------------------------------------------------------------------------| ZR� | 0 | options flag word : bit 0 => task manager messages added | dR� | | bit 1 => own current drag operation | nR� | | bit 2 => current drag is solid | xR� | | bit 3 => current fa filter may be replaced | �R� | | bit 4 => SetCSD turned on | �R� | | bit 5 => IconSpr turned on | �R� | | bit 6 => Confirm turned on | �R� | | | �R� | | bit 16 => TaskManager filter installed | �R� | | bit 17 => Palette filter installed | �R� | | bit 18 => FilerAction filter installed | �R� | 4 | my task handle | �R� | 8 | task manager's task handle | �R� | 12 | palette utility's task handle | �R� | 16 | filer action window's task handle | �R� | 20-275 | polling block | �R� | 276-295 | full descending stack, five registers | Q� -------------------------------------------------------------------------- : moduleflags = 0 "myhandle = 4 ,tmhandle = 8 6pahandle = 12 @fahandle = 16 Jpollblock = 20 TAstack = 292 : � pointer to top word of descending stack ^: htmmessagesadded = 1<<0 rtmowndrag = 1<<1 |tmsolidity = 1<<2 �fareplaceable = 1<<3 �setcsdon = 1<<4 �iconspron = 1<<5 �confirmon = 1<<6 �tmfilterinstalled = 1<<16 �pafilterinstalled = 1<<17 �fafilterinstalled = 1<<18 �: � run%=� �#� � � 7:� �$;" at line ";�(�):� �: � �init � �assemble %�save("TaskFilter",&ffa,code%,O%) � : &� �init 0date$=��$,5,11) :version$="0.28" D� code% &10000 N� X: b#� �save(file$,type%,base%,end%) l+ș "OS_File",10,file$,type%,,base%,end% v(� run% � ș "OS_CLI","RMLoad "+file$ �� �: �� �assemble � wp=12: sp=13: link=14: pc=15 �� pass%=4 � 6 � 2 �P%=0: O%=code% �[OPT pass% � EQUD startcode � EQUD initcode � EQUD finalcode � EQUD servicecode � EQUD titlestring � EQUD helpstring EQUD helptable .titlestring ! EQUS "TaskFilters" * EQUB 0 4 ALIGN > H.helpstring R EQUS "TaskFilters" \ EQUB 9 f( EQUS version$+" ("+date$+")" p EQUB 0 z ALIGN � �.helptable �) EQUS "Desktop_TaskFilters" � EQUB 0 � ALIGN � EQUD starcommand � EQUD 0 � EQUD 0 � EQUD help � EQUB 0 � � .help � EQUB 13 L EQUS "Do not use *Desktop_TaskFilters, use *Desktop instead." EQUB 13 EQUB 13 $T EQUS "TaskFilters provides simple and low-memory patches to various " .P EQUS "aspects of the operating system, using RISC OS 3's filter " 8M EQUS "manager. See the !Help file for details of the various " B EQUS "filters." L EQUB 13 V EQUB 13 `= EQUS "TaskFilters was written by Andrew Kemp." j EQUB 13 t EQUB 13 ~; EQUS "� KCE Software, June 1994."+�(13)+�(0) � ALIGN � �.startwimp �' LDR R14,[R12,#myhandle] � TEQ R14,#0 � MVNEQ R14,#(� -1) �' STREQ R14,[R12,#myhandle] � ADREQ R0,helptable � �Q R1,#0 � LDMFD (sp)!,{pc} � � .initcode ' STMFD (sp)!,{R7-R11,link} MOV R0,#6 MOV R3,#296 SWI "XOS_Module" ( BVS initexit 2 STR R2,[R12] < MOV R0,#0 F% STR R0,[R2,#myhandle] P LDRB R3,[R10] Z CMP R3,#�("-") d BNE initexit n LDRB R3,[R10,#1] x CMP R3,#�("o") � BEQ readopts � .initexit �% LDMFD (sp)!,{R7-R11,pc} � � .readopts �< �R R0,R0,#(setcsdon � iconspron � confirmon) �R STR R0,[R2,#moduleflags] ; default options in case error � MOV R0,#17 � ADR R1,pathname � SWI "XOS_File" �; BVS initexit ; exit if error occurred �I CMP R0,#1 ; exit if not a file, or doesn't exist �> CMPEQ R4,#4 ; exit if file wrong length BNE initexit MOV R0,#16 LDR R2,[R12] "& ADD R2,R2,#moduleflags , MOV R3,#0 6 SWI "XOS_File" @ B initexit J T .pathname ^( EQUS "TaskFilter:Options" h EQUB 0 r ALIGN | �.starcommand � STMFD (sp)!,{link} � MOV R2,R0 �" ADR R1,titlestring � MOV R0,#2 � SWI "XOS_Module" � LDMFD (sp)!,{pc} � � .task � EQUS "TASK" � �.startcode � LDR R12,[R12] & LDR R0,[R12,#myhandle] TEQ R0,#0 LDRGT R1,task &% SWIGT "XWimp_CloseDown" 0 MOVGT R0,#0 :& STRGT R0,[R12,#myhandle] D N MOV R0,#308 X ADD R0,R0,#2 b LDR R1,task l" ADR R2,titlestring v! ADR R3,mymessages �& SWI "XWimp_Initialise" � SWIVS "XOS_Exit" �& STR R1,[R12,#myhandle] � �! ADD sp,R12,#stack � �@ BL installall : � �� fall through �� � � .poll � LDR R0,mymask �% ADD R1,R12,#pollblock � SWI "XWimp_Poll" � CMP R0,#17 CMPNE R0,#18 BNE poll LDR R0,[R1,#16] - LDR R2,message_taskinitialise * CMP R0,R2 4" BEQ taskinitialise >, LDR R2,message_taskclosedown H CMP R0,R2 R! BEQ taskclosedown \ CMP R0,#0 f BNE poll p" BL tmfilterremove z" BL pafilterremove �" BL fafilterremove �& LDR R0,[R12,#myhandle] � ADR R1,task �% SWI "XWimp_CloseDown" � MOV R1,#0 �& STR R1,[R12,#myhandle] � SWI "XOS_Exit" � B poll � �.mymessages �.message_taskinitialise � EQUD &400C2 �.message_taskclosedown EQUD &400C3 EQUD 0 $.installall .# STMFD (sp)!,{R1,link} 8 ADR R4,tmname B! BL gettaskhandle L CMP R3,#0 V# BLNE tmfilterinstall ` ADR R4,paname j! BL gettaskhandle t CMP R3,#0 ~# BLNE pafilterinstall �! LDMFD (sp)!,{R1,pc} � �.taskinitialise � ADD R0,R1,#28 � ADR R3,tmname �! BL stringcompare � CMP R3,#1 � LDREQ R3,[R1,#4] �# BLEQ tmfilterinstall � ADR R3,paname �! BL stringcompare � CMP R3,#1 LDREQ R3,[R1,#4] # BLEQ pafilterinstall ADR R3,faname ! BL stringcompare ( CMP R3,#1 2 LDREQ R3,[R1,#4] <# BLEQ fafilterinstall F B poll P Z.taskclosedown d LDR R0,[R1,#4] n& LDR R2,[R12,#tmhandle] x CMP R0,R2 �" BLEQ tmfilterremove �& LDR R2,[R12,#pahandle] � CMP R0,R2 �" BLEQ pafilterremove �& LDR R2,[R12,#fahandle] � CMP R0,R2 �" BLEQ fafilterremove � B poll � �.stringcompare �# STMFD (sp)!,{R0,link} �I.compareloop ; compares string pointed to by R0 �C LDRB R7,[R0],#1 ; with that pointed to by R3 B LDRB R5,[R3],#1 ; returning 1 in R3 if same CMP R7,R5 MOVNE R3,#0 "! LDMNEFD (sp)!,{R0,pc} , CMP R5,#0 6 BNE compareloop @ MOV R3,#1 J! LDMFD (sp)!,{R0,pc} T ^L.tmfilterinstall ; pass tm task handle in R3 h# STMFD (sp)!,{R0,link} r) LDR R1,[R12,#moduleflags] |) TST R1,#tmfilterinstalled �Q LDMNEFD (sp)!,{R0,pc} ; if already installed, just exit � TST R1,#setcsdon �G LDMEQFD (sp)!,{R0,pc} ; if not selected, exit �# ADR R0,tmfiltername �# ADR R1,tmfiltercode �P MOV R2,R12 ; note passes workspace pointer �N LDR R4,tmfiltermask ; not private word pointer as �9 SWI "XFilter_RegisterPostFilter" ; before �& STRVC R3,[R12,#tmhandle] �) LDRVC R1,[R12,#moduleflags] �+ �RVC R1,R1,#tmfilterinstalled �) STRVC R1,[R12,#moduleflags] �! LDMFD (sp)!,{R0,pc} .tmfilterremove # STMFD (sp)!,{R0,link} &) LDR R1,[R12,#moduleflags] 0) TST R1,#tmfilterinstalled :M LDMEQFD (sp)!,{R0,pc} ; if not installed, just exit D# ADR R0,tmfiltername N# ADR R1,tmfiltercode X MOV R2,R12 b& LDR R3,[R12,#tmhandle] l# LDR R4,tmfiltermask v2 SWI "XFilter_DeRegisterPostFilter" �) LDRVC R1,[R12,#moduleflags] �, BICVC R1,R1,#tmfilterinstalled �) STRVC R1,[R12,#moduleflags] �! LDMFD (sp)!,{R0,pc} � �.tmfiltername � EQUS "SetCSD" � EQUB 0 � ALIGN � �L.pafilterinstall ; pass pa task handle in R3 �# STMFD (sp)!,{R0,link} �) LDR R1,[R12,#moduleflags] ) TST R1,#pafilterinstalled Q LDMNEFD (sp)!,{R0,pc} ; if already installed, just exit ! TST R1,#iconspron G LDMEQFD (sp)!,{R0,pc} ; if not selected, exit *# ADR R0,pafiltername 4# ADR R1,pafiltercode >P MOV R2,R12 ; note passes workspace pointer HN LDR R4,pafiltermask ; not private word pointer as R9 SWI "XFilter_RegisterPostFilter" ; before \& STRVC R3,[R12,#pahandle] f) LDRVC R1,[R12,#moduleflags] p+ �RVC R1,R1,#pafilterinstalled z) STRVC R1,[R12,#moduleflags] �! LDMFD (sp)!,{R0,pc} � �.pafilterremove �# STMFD (sp)!,{R0,link} �) LDR R1,[R12,#moduleflags] �) TST R1,#pafilterinstalled �M LDMEQFD (sp)!,{R0,pc} ; if not installed, just exit �# ADR R0,pafiltername �# ADR R1,pafiltercode � MOV R2,R12 �& LDR R3,[R12,#pahandle] �# LDR R4,pafiltermask �2 SWI "XFilter_DeRegisterPostFilter" ) LDRVC R1,[R12,#moduleflags] , BICVC R1,R1,#pafilterinstalled ) STRVC R1,[R12,#moduleflags] $! LDMFD (sp)!,{R0,pc} . 8.pafiltername B EQUS "IconSpr" L EQUB 0 V ALIGN ` j.pafiltercode t' STMFD (sp)!,{R1-R11,link} ~ TEQ R0,#18 �% BEQ pamessagereceived �> TEQ R0,#6 ; mouse click routine � LDREQ R2,[R1,#12] � CMNEQ R2,#2 � LDREQ R2,[R1,#8] � CMPEQ R2,#1 � BLEQ forceredraw � B endfilter � �.pamessagereceived � LDR R2,[R1,#16] � CMP R2,#3 BNE endfilter LDR R2,[R1,#40] MOV R3,#&ff0 ADD R3,R3,#9 ( CMP R2,R3 2 BNE endfilter < STMFD (sp)!,{R1} F MOV R0,#129 P! MOV R1,#(&FF � 0) Z MOV R2,#&FF d SWI "XOS_Byte" n CMP R1,#&FF x LDMFD (sp)!,{R1} � BEQ toolsprites � MOV R0,#11 � ADD R2,R1,#44 �$ SWI "XWimp_SpriteOp" �< BVS spriteoperror : � �� fall through �� � �.senddataloadack � BL forceredraw � MOV R2,#4 � STR R2,[R1,#16] � LDR R2,[R1,#8] � STR R2,[R1,#12] � MOV R0,#17 LDR R2,[R1,#4] ' SWI "XWimp_SendMessage" MVN R0,#(� -1) " B endfilter , 6.spriteoperror @ MOV R1,#%0001010 J ADR R2,paname T' SWI "XWimp_ReportError" ^ MVN R0,#(� -1) h B endfilter r |.toolsprites �& ADR R2,toolspritestart �1 ADD R3,R1,#(44-�("ToolSprites ")) � MOV R0,R3 � BL stringcopy � SWI "XOS_CLI" �! BVS spriteoperror �# B senddataloadack � �.stringcopy �# STMFD (sp)!,{R0,link} �.stringcopyloop � LDRB R0,[R2],#1 � CMP R0,#32 STRGEB R0,[R3],#1 " BGE stringcopyloop ! LDMFD (sp)!,{R0,pc} & 0.toolspritestart :" EQUS "ToolSprites " D EQUB 0 N ALIGN X b.forceredraw l# STMFD (sp)!,{R1,link} v MVN R0,#(� -1) � MOV R1,#0 � MOV R2,#0 � BL screenmax �' SWI "XWimp_ForceRedraw" �! LDMFD (sp)!,{R1,pc} � �.gettaskhandle � STMFD (sp)!,{link} � MOV R0,#0 �.nexthandle �T ADD R1,R12,#pollblock ; use poll block as buffer for SWI � MOV R2,#20 �1 SWI "XTaskManager_EnumerateTasks" BVS jumpout CMN R0,#1 BEQ jumpout MOV R6,R0 *A LDR R0,[R12,#(pollblock+4)] ; read task name 4@ MOV R3,R4 ; passed task name >! BL stringcompare H MOV R0,R6 R CMP R3,#1 \' LDREQ R3,[R12,#pollblock] f LDMEQFD (sp)!,{pc} p B nexthandle z.jumpout � MOV R3,#0 � LDMFD (sp)!,{pc} � �L.fafilterinstall ; pass pa task handle in R3 �# STMFD (sp)!,{R0,link} �) LDR R1,[R12,#moduleflags] �! TST R1,#confirmon �G LDMEQFD (sp)!,{R0,pc} ; if not selected, exit �) TST R1,#fafilterinstalled �S BEQ fadoinstall ; if not installed, get on with it �% TST R1,#fareplaceable �L LDMEQFD (sp)!,{R0,pc} ; if not replaceable return � MOV R0,R3 Q BL fafilterremove ; if replacable, remove existing MOV R3,R0 .fadoinstall $# ADR R0,fafiltername .# ADR R1,fafiltercode 8P MOV R2,R12 ; note passes workspace pointer BN LDR R4,fafiltermask ; not private word pointer as L9 SWI "XFilter_RegisterPostFilter" ; before V& STRVC R3,[R12,#fahandle] `) LDRVC R1,[R12,#moduleflags] j+ �RVC R1,R1,#fafilterinstalled t) STRVC R1,[R12,#moduleflags] ~! LDMFD (sp)!,{R0,pc} � �.fafilterremove �# STMFD (sp)!,{R0,link} �) LDR R1,[R12,#moduleflags] �) TST R1,#fafilterinstalled �M LDMEQFD (sp)!,{R0,pc} ; if not installed, just exit �# ADR R0,fafiltername �# ADR R1,fafiltercode � MOV R2,R12 �& LDR R3,[R12,#fahandle] �# LDR R4,fafiltermask �2 SWI "XFilter_DeRegisterPostFilter" ) LDRVC R1,[R12,#moduleflags] , BICVC R1,R1,#fafilterinstalled ( BICVC R1,R1,#fareplaceable ) STRVC R1,[R12,#moduleflags] (! LDMFD (sp)!,{R0,pc} 2 <.fafiltercode F' STMFD (sp)!,{R1-R11,link} P TEQ R0,#17 Z BNE endfilter d LDR R3,[R1,#16] n MOV R4,#&400 x ADD R4,R4,#&005 � TEQ R3,R4 � BNE endfilter � LDR R3,[R1,#20] � TEQ R3,#2 � BNE endfafilter � LDR R3,[R1,#24] � �R R3,R3,#%00010 � STR R3,[R1,#24] �.endfafilter �) LDR R3,[R12,#moduleflags] �' �R R3,R3,#fareplaceable �) STR R3,[R12,#moduleflags] � B endfilter .fafiltername EQUS "Confirm" " EQUB 0 , ALIGN 6 @.tmname J" EQUS "Task Manager" T EQUB 0 ^ ALIGN h r.paname |% EQUS "Palette Utility" � EQUB 0 � ALIGN � �.faname �) EQUS "Filer Action Window" � EQUB 0 � ALIGN � �.tmfiltercode �' STMFD (sp)!,{R1-R11,link} �) LDR R3,[R12,#moduleflags] �' TST R3,#tmmessagesadded �! BLEQ tmaddmessages TEQ R0,#6 BEQ tmmouseclick TEQ R0,#7 & BEQ enddrag 0 TEQ R0,#17 : TEQNE R0,#18 D TEQNE R0,#19 N% BEQ tmmessagereceived X.endfilter b' LDMFD (sp)!,{R1-R11,link} l MOVS pc,link v �.tmmessagereceived � LDR R2,[R1,#16] � CMP R2,#1 � BEQ returned � CMP R2,#2 � BNE endfilter �) LDR R2,[R12,#moduleflags] �! TST R2,#tmowndrag � BEQ endfilter �3 BIC R2,R2,#(tmowndrag � tmsolidity) �) STR R2,[R12,#moduleflags] � MOV R0,#43 �.getstring ADD R0,R0,#1 LDRB R2,[R1,R0] CMP R2,#32 BGT getstring * SUB R0,R0,#1 4 LDRB R2,[R1,R0] > CMP R2,#�(".") H BNE endfilter R MOV R2,#0 \ STRB R2,[R1,R0] f ADD R1,R1,#44 p MOV R0,#0 z# SWI "XOS_FSControl" � MVN R0,#(� -1) � B endfilter � � .returned � LDR R2,[R1,#4] �& LDR R3,[R12,#tmhandle] � CMP R2,R3 � BNE endfilter �) LDR R2,[R12,#moduleflags] �! TST R2,#tmowndrag �3 BICNE R2,R2,#(tmowndrag � tmsolidity) �) STRNE R2,[R12,#moduleflags] � MVNNE R0,#(� -1) B endfilter .tmaddmessages $# STMFD (sp)!,{R0,link} .) �R R3,R3,#tmmessagesadded 8) STR R3,[R12,#moduleflags] B! ADR R0,tmmessages L' SWI "XWimp_AddMessages" V! LDMFD (sp)!,{R0,pc} ` j.enddrag t) LDR R2,[R12,#moduleflags] ~! TST R2,#tmowndrag � BEQ endfilter �" TST R2,#tmsolidity �' SWINE "XDragASprite_Stop" �* SWI "XWimp_GetPointerInfo" � LDR R0,[R1,#4] � STR R0,[R1,#32] � LDR R0,[R1,#0] � STR R0,[R1,#28] � LDR R0,[R1,#16] � STR R0,[R1,#24] � LDR R0,[R1,#12] � STR R0,[R1,#20] MOV R0,#1 STR R0,[R1,#16] MOV R0,#0 STR R0,[R1,#12] ( STR R0,[R1,#36] 2 STR R0,[R1,#40] < STR R0,[R1,#44] F MOV R0,#60 P STR R0,[R1,#0] Z MOV R0,#18 d LDR R2,[R1,#20] n' SWI "XWimp_SendMessage" x MVN R0,#(� -1) � B endfilter � �.tmmessages � EQUD 1 � EQUD 0 � �.tmmouseclick � LDR R2,[R1,#12] � CMN R2,#2 � BNE endfilter � LDR R2,[R1,#8] � TEQ R2,#1 � BNE endfilter MOV R5,R1 LDR R0,[R5,#12] STR R0,[R5,#0] " LDR R4,[R5,#16] ,* SWI "XWimp_GetWindowState" 6 LDR R2,[R5,#4] @ LDR R0,[R5,#20] J SUB R2,R2,R0 T LDR R3,[R5,#16] ^ LDR R0,[R5,#24] h SUB R3,R3,R0 r STR R4,[R5,#4] |( SWI "XWimp_GetIconState" � MOV R0,#0 � STR R0,[R5,#0] � MOV R0,#5 � STR R0,[R5,#4] � LDR R0,[R5,#8] � ADD R0,R0,R2 � STR R0,[R5,#8] � LDR R0,[R5,#12] � ADD R0,R0,R3 � STR R0,[R5,#12] � LDR R0,[R5,#16] � ADD R0,R0,R2 � STR R0,[R5,#16] LDR R0,[R5,#20] ADD R0,R0,R3 STR R0,[R5,#20] & MOV R0,#0 0 STR R0,[R5,#24] : MOV R0,#0 D STR R0,[R5,#28] N BL screenmax X STR R3,[R5,#32] b STR R4,[R5,#36] l MOV R0,#161 v MOV R1,#28 � SWI "XOS_Byte" � � R2,R2,#2 � CMP R2,#0 � BNE soliddrag � �.ordinarydrag � MOV R1,R5 �# SWI "XWimp_DragBox" �) LDR R0,[R12,#moduleflags] �% BIC R0,R0,#tmsolidity �# �R R0,R0,#tmowndrag �) STR R0,[R12,#moduleflags] � MVN R0,#(� -1) B endfilter .soliddrag ! LDR R0,solidflags * MOV R1,#1 4! ADR R2,spritename > ADD R3,R5,#8 H( SWI "XDragASprite_Start" R) LDR R0,[R12,#moduleflags] \2 �R R0,R0,#(tmowndrag � tmsolidity) f) STR R0,[R12,#moduleflags] p MVN R0,#(� -1) z B endfilter � �.solidflags � EQUD %11001010 � �.spritename � EQUS "switcher" � EQUB 0 � ALIGN � �F.screenmax ; returns maxx in r3 �> STMFD R13!,{R0-R2,R5-R12,link} ; maxy in r4 � MVN R0,#(� -1) � MOV R1,#11 * SWI "XOS_ReadModeVariable" ADD R6,R2,#1 MOV R1,#4 $* SWI "XOS_ReadModeVariable" . MOV R3,R6,LSL R2 8 MOV R1,#12 B* SWI "XOS_ReadModeVariable" L ADD R6,R2,#1 V MOV R1,#5 `* SWI "XOS_ReadModeVariable" j MOV R4,R6,LSL R2 t* LDMFD R13!,{R0-R2,R5-R12,pc} ~ �.finalcode �' STMFD (sp)!,{R7-R11,link} � LDR R12,[R12] �& LDR R0,[R12,#myhandle] � TEQ R0,#0 � BLE finalskip � LDR R1,task �% SWI "XWimp_CloseDown" �" BL tmfilterremove �" BL pafilterremove �" BL fafilterremove �.finalskip MOV R1,#0 & STR R1,[R12,#myhandle] MOV R0,#7 MOV R2,R12 ( SWI "XOS_Module" 2% LDMFD (sp)!,{R7-R11,pc} < F.servicecode P STMFD (sp)!,{link} Z LDR R12,[R12] d TEQ R1,#&49 n BEQ startwimp x TEQ R1,#&4A � BEQ startedwimp � TEQ R1,#&87 � BLEQ installall � TEQ R1,#&88 �& BEQ filtermanagerdying � TEQ R1,#&27 � LDMNEFD (sp)!,{pc} � MOV R14,#0 �' STR R14,[R12,#myhandle] �" BL tmfilterremove �" BL pafilterremove �" BL fafilterremove � LDMFD (sp)!,{pc} .filtermanagerdying ) LDR R3,[R12,#moduleflags] "V BIC R3,R3,#(tmfilterinstalled � pafilterinstalled � fafilterinstalled) ,( BIC R3,R3,#fareplaceable 6) STR R3,[R12,#moduleflags] @ LDMFD (sp)!,{pc} J T.startedwimp ^' LDR R14,[R12,#myhandle] h CMN R14,#1 r �Q R14,#0 |' STREQ R14,[R12,#myhandle] � LDMFD (sp)!,{pc} � �.mymask �) EQUD %10000011100101110011 � �.tmfiltermask �) EQUD %00000011100100110011 � �.pafiltermask �) EQUD %10100011100100110011 � �.fafiltermask �) EQUD %11000011100101110011 ] � pass% &� �
00000000 0d 00 0a 11 f4 20 3e 46 69 6c 74 53 6f 75 72 63 |..... >FiltSourc| 00000010 65 0d 00 14 23 f4 20 42 79 20 4b 43 45 20 53 6f |e...#. By KCE So| 00000020 66 74 77 61 72 65 20 28 41 6e 64 72 65 77 20 4b |ftware (Andrew K| 00000030 65 6d 70 29 0d 00 1e 11 f4 20 a9 20 4a 75 6e 65 |emp)..... . June| 00000040 20 31 39 39 34 0d 00 28 05 3a 0d 00 32 11 f4 20 | 1994..(.:..2.. | 00000050 77 6f 72 6b 73 70 61 63 65 20 3a 0d 00 3c 51 f4 |workspace :..<Q.| 00000060 20 20 5f 5f 5f 5f 5f 5f 5f 5f 5f 5f 5f 5f 5f 5f | ______________| 00000070 5f 5f 5f 5f 5f 5f 5f 5f 5f 5f 5f 5f 5f 5f 5f 5f |________________| * 000000a0 5f 5f 5f 5f 5f 5f 5f 5f 5f 5f 5f 5f 0d 00 46 52 |____________..FR| 000000b0 f4 20 7c 20 20 6f 66 66 73 65 74 20 7c 20 63 6f |. | offset | co| 000000c0 6e 74 65 6e 74 73 20 20 20 20 20 20 20 20 20 20 |ntents | 000000d0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | | * 000000f0 20 20 20 20 20 20 20 20 20 20 20 20 20 7c 0d 00 | |..| 00000100 50 52 f4 20 7c 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d |PR. |-----------| 00000110 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d |----------------| * 00000140 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 7c |---------------|| 00000150 0d 00 5a 52 f4 20 7c 20 20 20 20 20 20 20 30 20 |..ZR. | 0 | 00000160 7c 20 6f 70 74 69 6f 6e 73 20 66 6c 61 67 20 77 || options flag w| 00000170 6f 72 64 20 3a 20 62 69 74 20 30 20 3d 3e 20 74 |ord : bit 0 => t| 00000180 61 73 6b 20 6d 61 6e 61 67 65 72 20 6d 65 73 73 |ask manager mess| 00000190 61 67 65 73 20 61 64 64 65 64 20 20 20 20 20 20 |ages added | 000001a0 20 7c 0d 00 64 52 f4 20 7c 20 20 20 20 20 20 20 | |..dR. | | 000001b0 20 20 7c 20 20 20 20 20 20 20 20 20 20 20 20 20 | | | 000001c0 20 20 20 20 20 20 20 20 62 69 74 20 31 20 3d 3e | bit 1 =>| 000001d0 20 6f 77 6e 20 63 75 72 72 65 6e 74 20 64 72 61 | own current dra| 000001e0 67 20 6f 70 65 72 61 74 69 6f 6e 20 20 20 20 20 |g operation | 000001f0 20 20 20 7c 0d 00 6e 52 f4 20 7c 20 20 20 20 20 | |..nR. | | 00000200 20 20 20 20 7c 20 20 20 20 20 20 20 20 20 20 20 | | | 00000210 20 20 20 20 20 20 20 20 20 20 62 69 74 20 32 20 | bit 2 | 00000220 3d 3e 20 63 75 72 72 65 6e 74 20 64 72 61 67 20 |=> current drag | 00000230 69 73 20 73 6f 6c 69 64 20 20 20 20 20 20 20 20 |is solid | 00000240 20 20 20 20 20 7c 0d 00 78 52 f4 20 7c 20 20 20 | |..xR. | | 00000250 20 20 20 20 20 20 7c 20 20 20 20 20 20 20 20 20 | | | 00000260 20 20 20 20 20 20 20 20 20 20 20 20 62 69 74 20 | bit | 00000270 33 20 3d 3e 20 63 75 72 72 65 6e 74 20 66 61 20 |3 => current fa | 00000280 66 69 6c 74 65 72 20 6d 61 79 20 62 65 20 72 65 |filter may be re| 00000290 70 6c 61 63 65 64 20 7c 0d 00 82 52 f4 20 7c 20 |placed |...R. | | 000002a0 20 20 20 20 20 20 20 20 7c 20 20 20 20 20 20 20 | | | 000002b0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 62 69 | bi| 000002c0 74 20 34 20 3d 3e 20 53 65 74 43 53 44 20 74 75 |t 4 => SetCSD tu| 000002d0 72 6e 65 64 20 6f 6e 20 20 20 20 20 20 20 20 20 |rned on | 000002e0 20 20 20 20 20 20 20 20 20 7c 0d 00 8c 52 f4 20 | |...R. | 000002f0 7c 20 20 20 20 20 20 20 20 20 7c 20 20 20 20 20 || | | 00000300 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | | 00000310 62 69 74 20 35 20 3d 3e 20 49 63 6f 6e 53 70 72 |bit 5 => IconSpr| 00000320 20 74 75 72 6e 65 64 20 6f 6e 20 20 20 20 20 20 | turned on | 00000330 20 20 20 20 20 20 20 20 20 20 20 7c 0d 00 96 52 | |...R| 00000340 f4 20 7c 20 20 20 20 20 20 20 20 20 7c 20 20 20 |. | | | 00000350 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | | 00000360 20 20 62 69 74 20 36 20 3d 3e 20 43 6f 6e 66 69 | bit 6 => Confi| 00000370 72 6d 20 74 75 72 6e 65 64 20 6f 6e 20 20 20 20 |rm turned on | 00000380 20 20 20 20 20 20 20 20 20 20 20 20 20 7c 0d 00 | |..| 00000390 a0 52 f4 20 7c 20 20 20 20 20 20 20 20 20 7c 20 |.R. | | | 000003a0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | | * 000003d0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 7c | || 000003e0 0d 00 aa 52 f4 20 7c 20 20 20 20 20 20 20 20 20 |...R. | | 000003f0 7c 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 || | 00000400 20 20 20 20 20 20 62 69 74 20 31 36 20 3d 3e 20 | bit 16 => | 00000410 54 61 73 6b 4d 61 6e 61 67 65 72 20 66 69 6c 74 |TaskManager filt| 00000420 65 72 20 69 6e 73 74 61 6c 6c 65 64 20 20 20 20 |er installed | 00000430 20 7c 0d 00 b4 52 f4 20 7c 20 20 20 20 20 20 20 | |...R. | | 00000440 20 20 7c 20 20 20 20 20 20 20 20 20 20 20 20 20 | | | 00000450 20 20 20 20 20 20 20 20 62 69 74 20 31 37 20 3d | bit 17 =| 00000460 3e 20 50 61 6c 65 74 74 65 20 66 69 6c 74 65 72 |> Palette filter| 00000470 20 69 6e 73 74 61 6c 6c 65 64 20 20 20 20 20 20 | installed | 00000480 20 20 20 7c 0d 00 be 52 f4 20 7c 20 20 20 20 20 | |...R. | | 00000490 20 20 20 20 7c 20 20 20 20 20 20 20 20 20 20 20 | | | 000004a0 20 20 20 20 20 20 20 20 20 20 62 69 74 20 31 38 | bit 18| 000004b0 20 3d 3e 20 46 69 6c 65 72 41 63 74 69 6f 6e 20 | => FilerAction | 000004c0 66 69 6c 74 65 72 20 69 6e 73 74 61 6c 6c 65 64 |filter installed| 000004d0 20 20 20 20 20 7c 0d 00 c8 52 f4 20 7c 20 20 20 | |...R. | | 000004e0 20 20 20 20 34 20 7c 20 6d 79 20 74 61 73 6b 20 | 4 | my task | 000004f0 68 61 6e 64 6c 65 20 20 20 20 20 20 20 20 20 20 |handle | 00000500 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | | * 00000520 20 20 20 20 20 20 20 7c 0d 00 d2 52 f4 20 7c 20 | |...R. | | 00000530 20 20 20 20 20 20 38 20 7c 20 74 61 73 6b 20 6d | 8 | task m| 00000540 61 6e 61 67 65 72 27 73 20 74 61 73 6b 20 68 61 |anager's task ha| 00000550 6e 64 6c 65 20 20 20 20 20 20 20 20 20 20 20 20 |ndle | 00000560 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | | 00000570 20 20 20 20 20 20 20 20 20 7c 0d 00 dc 52 f4 20 | |...R. | 00000580 7c 20 20 20 20 20 20 31 32 20 7c 20 70 61 6c 65 || 12 | pale| 00000590 74 74 65 20 75 74 69 6c 69 74 79 27 73 20 74 61 |tte utility's ta| 000005a0 73 6b 20 68 61 6e 64 6c 65 20 20 20 20 20 20 20 |sk handle | 000005b0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | | 000005c0 20 20 20 20 20 20 20 20 20 20 20 7c 0d 00 e6 52 | |...R| 000005d0 f4 20 7c 20 20 20 20 20 20 31 36 20 7c 20 66 69 |. | 16 | fi| 000005e0 6c 65 72 20 61 63 74 69 6f 6e 20 77 69 6e 64 6f |ler action windo| 000005f0 77 27 73 20 74 61 73 6b 20 68 61 6e 64 6c 65 20 |w's task handle | 00000600 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | | 00000610 20 20 20 20 20 20 20 20 20 20 20 20 20 7c 0d 00 | |..| 00000620 f0 52 f4 20 7c 20 20 32 30 2d 32 37 35 20 7c 20 |.R. | 20-275 | | 00000630 70 6f 6c 6c 69 6e 67 20 62 6c 6f 63 6b 20 20 20 |polling block | 00000640 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | | * 00000660 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 7c | || 00000670 0d 00 fa 52 f4 20 7c 20 32 37 36 2d 32 39 35 20 |...R. | 276-295 | 00000680 7c 20 66 75 6c 6c 20 64 65 73 63 65 6e 64 69 6e || full descendin| 00000690 67 20 73 74 61 63 6b 2c 20 66 69 76 65 20 72 65 |g stack, five re| 000006a0 67 69 73 74 65 72 73 20 20 20 20 20 20 20 20 20 |gisters | 000006b0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | | 000006c0 20 7c 0d 01 04 51 f4 20 20 2d 2d 2d 2d 2d 2d 2d | |...Q. -------| 000006d0 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d |----------------| * 00000710 2d 2d 2d 0d 01 0e 05 3a 0d 01 18 15 6d 6f 64 75 |---....:....modu| 00000720 6c 65 66 6c 61 67 73 20 3d 20 20 20 30 0d 01 22 |leflags = 0.."| 00000730 15 6d 79 68 61 6e 64 6c 65 20 20 20 20 3d 20 20 |.myhandle = | 00000740 20 34 0d 01 2c 15 74 6d 68 61 6e 64 6c 65 20 20 | 4..,.tmhandle | 00000750 20 20 3d 20 20 20 38 0d 01 36 15 70 61 68 61 6e | = 8..6.pahan| 00000760 64 6c 65 20 20 20 20 3d 20 20 31 32 0d 01 40 15 |dle = 12..@.| 00000770 66 61 68 61 6e 64 6c 65 20 20 20 20 3d 20 20 31 |fahandle = 1| 00000780 36 0d 01 4a 15 70 6f 6c 6c 62 6c 6f 63 6b 20 20 |6..J.pollblock | 00000790 20 3d 20 20 32 30 0d 01 54 41 73 74 61 63 6b 20 | = 20..TAstack | 000007a0 20 20 20 20 20 20 3d 20 32 39 32 20 3a 20 f4 20 | = 292 : . | 000007b0 70 6f 69 6e 74 65 72 20 74 6f 20 74 6f 70 20 77 |pointer to top w| 000007c0 6f 72 64 20 6f 66 20 64 65 73 63 65 6e 64 69 6e |ord of descendin| 000007d0 67 20 73 74 61 63 6b 0d 01 5e 05 3a 0d 01 68 1d |g stack..^.:..h.| 000007e0 74 6d 6d 65 73 73 61 67 65 73 61 64 64 65 64 20 |tmmessagesadded | 000007f0 20 20 3d 20 20 31 3c 3c 30 0d 01 72 1d 74 6d 6f | = 1<<0..r.tmo| 00000800 77 6e 64 72 61 67 20 20 20 20 20 20 20 20 20 3d |wndrag =| 00000810 20 20 31 3c 3c 31 0d 01 7c 1d 74 6d 73 6f 6c 69 | 1<<1..|.tmsoli| 00000820 64 69 74 79 20 20 20 20 20 20 20 20 3d 20 20 31 |dity = 1| 00000830 3c 3c 32 0d 01 86 1d 66 61 72 65 70 6c 61 63 65 |<<2....fareplace| 00000840 61 62 6c 65 20 20 20 20 20 3d 20 20 31 3c 3c 33 |able = 1<<3| 00000850 0d 01 90 1d 73 65 74 63 73 64 6f 6e 20 20 20 20 |....setcsdon | 00000860 20 20 20 20 20 20 3d 20 20 31 3c 3c 34 0d 01 9a | = 1<<4...| 00000870 1d 69 63 6f 6e 73 70 72 6f 6e 20 20 20 20 20 20 |.iconspron | 00000880 20 20 20 3d 20 20 31 3c 3c 35 0d 01 a4 1d 63 6f | = 1<<5....co| 00000890 6e 66 69 72 6d 6f 6e 20 20 20 20 20 20 20 20 20 |nfirmon | 000008a0 3d 20 20 31 3c 3c 36 0d 01 ae 1d 74 6d 66 69 6c |= 1<<6....tmfil| 000008b0 74 65 72 69 6e 73 74 61 6c 6c 65 64 20 3d 20 31 |terinstalled = 1| 000008c0 3c 3c 31 36 0d 01 b8 1d 70 61 66 69 6c 74 65 72 |<<16....pafilter| 000008d0 69 6e 73 74 61 6c 6c 65 64 20 3d 20 31 3c 3c 31 |installed = 1<<1| 000008e0 37 0d 01 c2 1d 66 61 66 69 6c 74 65 72 69 6e 73 |7....fafilterins| 000008f0 74 61 6c 6c 65 64 20 3d 20 31 3c 3c 31 38 0d 01 |talled = 1<<18..| 00000900 cc 05 3a 0d 01 d6 0a 72 75 6e 25 3d a3 0d 01 e0 |..:....run%=....| 00000910 23 ee 20 85 20 ef 20 37 3a f1 20 f6 24 3b 22 20 |#. . . 7:. .$;" | 00000920 61 74 20 6c 69 6e 65 20 22 3b c3 28 9e 29 3a e0 |at line ";.(.):.| 00000930 0d 01 ea 05 3a 0d 01 f4 09 f2 69 6e 69 74 0d 01 |....:.....init..| 00000940 fe 0d f2 61 73 73 65 6d 62 6c 65 0d 02 08 25 f2 |...assemble...%.| 00000950 73 61 76 65 28 22 54 61 73 6b 46 69 6c 74 65 72 |save("TaskFilter| 00000960 22 2c 26 66 66 61 2c 63 6f 64 65 25 2c 4f 25 29 |",&ffa,code%,O%)| 00000970 0d 02 12 05 e0 0d 02 1c 05 3a 0d 02 26 0b dd 20 |.........:..&.. | 00000980 f2 69 6e 69 74 0d 02 30 13 64 61 74 65 24 3d c1 |.init..0.date$=.| 00000990 91 24 2c 35 2c 31 31 29 0d 02 3a 13 76 65 72 73 |.$,5,11)..:.vers| 000009a0 69 6f 6e 24 3d 22 30 2e 32 38 22 0d 02 44 12 de |ion$="0.28"..D..| 000009b0 20 63 6f 64 65 25 20 26 31 30 30 30 30 0d 02 4e | code% &10000..N| 000009c0 05 e1 0d 02 58 05 3a 0d 02 62 23 dd 20 f2 73 61 |....X.:..b#. .sa| 000009d0 76 65 28 66 69 6c 65 24 2c 74 79 70 65 25 2c 62 |ve(file$,type%,b| 000009e0 61 73 65 25 2c 65 6e 64 25 29 0d 02 6c 2b c8 99 |ase%,end%)..l+..| 000009f0 20 22 4f 53 5f 46 69 6c 65 22 2c 31 30 2c 66 69 | "OS_File",10,fi| 00000a00 6c 65 24 2c 74 79 70 65 25 2c 2c 62 61 73 65 25 |le$,type%,,base%| 00000a10 2c 65 6e 64 25 0d 02 76 28 e7 20 72 75 6e 25 20 |,end%..v(. run% | 00000a20 8c 20 c8 99 20 22 4f 53 5f 43 4c 49 22 2c 22 52 |. .. "OS_CLI","R| 00000a30 4d 4c 6f 61 64 20 22 2b 66 69 6c 65 24 0d 02 80 |MLoad "+file$...| 00000a40 05 e1 0d 02 8a 05 3a 0d 02 94 0f dd 20 f2 61 73 |......:..... .as| 00000a50 73 65 6d 62 6c 65 0d 02 9e 20 77 70 3d 31 32 3a |semble... wp=12:| 00000a60 20 73 70 3d 31 33 3a 20 6c 69 6e 6b 3d 31 34 3a | sp=13: link=14:| 00000a70 20 70 63 3d 31 35 0d 02 a8 15 e3 20 70 61 73 73 | pc=15..... pass| 00000a80 25 3d 34 20 b8 20 36 20 88 20 32 0d 02 b2 12 50 |%=4 . 6 . 2....P| 00000a90 25 3d 30 3a 20 4f 25 3d 63 6f 64 65 25 0d 02 bc |%=0: O%=code%...| 00000aa0 0e 5b 4f 50 54 20 70 61 73 73 25 0d 02 c6 1d 20 |.[OPT pass%.... | 00000ab0 20 20 20 20 20 20 20 45 51 55 44 20 20 20 20 73 | EQUD s| 00000ac0 74 61 72 74 63 6f 64 65 0d 02 d0 1c 20 20 20 20 |tartcode.... | 00000ad0 20 20 20 20 45 51 55 44 20 20 20 20 69 6e 69 74 | EQUD init| 00000ae0 63 6f 64 65 0d 02 da 1d 20 20 20 20 20 20 20 20 |code.... | 00000af0 45 51 55 44 20 20 20 20 66 69 6e 61 6c 63 6f 64 |EQUD finalcod| 00000b00 65 0d 02 e4 1f 20 20 20 20 20 20 20 20 45 51 55 |e.... EQU| 00000b10 44 20 20 20 20 73 65 72 76 69 63 65 63 6f 64 65 |D servicecode| 00000b20 0d 02 ee 1f 20 20 20 20 20 20 20 20 45 51 55 44 |.... EQUD| 00000b30 20 20 20 20 74 69 74 6c 65 73 74 72 69 6e 67 0d | titlestring.| 00000b40 02 f8 1e 20 20 20 20 20 20 20 20 45 51 55 44 20 |... EQUD | 00000b50 20 20 20 68 65 6c 70 73 74 72 69 6e 67 0d 03 02 | helpstring...| 00000b60 1d 20 20 20 20 20 20 20 20 45 51 55 44 20 20 20 |. EQUD | 00000b70 20 68 65 6c 70 74 61 62 6c 65 0d 03 0c 04 0d 03 | helptable......| 00000b80 16 10 2e 74 69 74 6c 65 73 74 72 69 6e 67 0d 03 |...titlestring..| 00000b90 20 21 20 20 20 20 20 20 20 20 45 51 55 53 20 20 | ! EQUS | 00000ba0 20 20 22 54 61 73 6b 46 69 6c 74 65 72 73 22 0d | "TaskFilters".| 00000bb0 03 2a 15 20 20 20 20 20 20 20 20 45 51 55 42 20 |.*. EQUB | 00000bc0 20 20 20 30 0d 03 34 11 20 20 20 20 20 20 20 20 | 0..4. | 00000bd0 41 4c 49 47 4e 0d 03 3e 04 0d 03 48 0f 2e 68 65 |ALIGN..>...H..he| 00000be0 6c 70 73 74 72 69 6e 67 0d 03 52 1e 20 20 20 20 |lpstring..R. | 00000bf0 20 20 20 20 45 51 55 53 20 22 54 61 73 6b 46 69 | EQUS "TaskFi| 00000c00 6c 74 65 72 73 22 0d 03 5c 12 20 20 20 20 20 20 |lters"..\. | 00000c10 20 20 45 51 55 42 20 39 0d 03 66 28 20 20 20 20 | EQUB 9..f( | 00000c20 20 20 20 20 45 51 55 53 20 76 65 72 73 69 6f 6e | EQUS version| 00000c30 24 2b 22 20 28 22 2b 64 61 74 65 24 2b 22 29 22 |$+" ("+date$+")"| 00000c40 0d 03 70 12 20 20 20 20 20 20 20 20 45 51 55 42 |..p. EQUB| 00000c50 20 30 0d 03 7a 11 20 20 20 20 20 20 20 20 41 4c | 0..z. AL| 00000c60 49 47 4e 0d 03 84 04 0d 03 8e 0e 2e 68 65 6c 70 |IGN.........help| 00000c70 74 61 62 6c 65 0d 03 98 29 20 20 20 20 20 20 20 |table...) | 00000c80 20 45 51 55 53 20 20 20 20 22 44 65 73 6b 74 6f | EQUS "Deskto| 00000c90 70 5f 54 61 73 6b 46 69 6c 74 65 72 73 22 0d 03 |p_TaskFilters"..| 00000ca0 a2 15 20 20 20 20 20 20 20 20 45 51 55 42 20 20 |.. EQUB | 00000cb0 20 20 30 0d 03 ac 11 20 20 20 20 20 20 20 20 41 | 0.... A| 00000cc0 4c 49 47 4e 0d 03 b6 1f 20 20 20 20 20 20 20 20 |LIGN.... | 00000cd0 45 51 55 44 20 20 20 20 73 74 61 72 63 6f 6d 6d |EQUD starcomm| 00000ce0 61 6e 64 0d 03 c0 15 20 20 20 20 20 20 20 20 45 |and.... E| 00000cf0 51 55 44 20 20 20 20 30 0d 03 ca 15 20 20 20 20 |QUD 0.... | 00000d00 20 20 20 20 45 51 55 44 20 20 20 20 30 0d 03 d4 | EQUD 0...| 00000d10 18 20 20 20 20 20 20 20 20 45 51 55 44 20 20 20 |. EQUD | 00000d20 20 68 65 6c 70 0d 03 de 15 20 20 20 20 20 20 20 | help.... | 00000d30 20 45 51 55 42 20 20 20 20 30 0d 03 e8 04 0d 03 | EQUB 0......| 00000d40 f2 09 2e 68 65 6c 70 0d 03 fc 16 20 20 20 20 20 |...help.... | 00000d50 20 20 20 45 51 55 42 20 20 20 20 31 33 0d 04 06 | EQUB 13...| 00000d60 4c 20 20 20 20 20 20 20 20 45 51 55 53 20 20 20 |L EQUS | 00000d70 20 22 44 6f 20 6e 6f 74 20 75 73 65 20 2a 44 65 | "Do not use *De| 00000d80 73 6b 74 6f 70 5f 54 61 73 6b 46 69 6c 74 65 72 |sktop_TaskFilter| 00000d90 73 2c 20 75 73 65 20 2a 44 65 73 6b 74 6f 70 20 |s, use *Desktop | 00000da0 69 6e 73 74 65 61 64 2e 22 0d 04 10 16 20 20 20 |instead.".... | 00000db0 20 20 20 20 20 45 51 55 42 20 20 20 20 31 33 0d | EQUB 13.| 00000dc0 04 1a 16 20 20 20 20 20 20 20 20 45 51 55 42 20 |... EQUB | 00000dd0 20 20 20 31 33 0d 04 24 54 20 20 20 20 20 20 20 | 13..$T | 00000de0 20 45 51 55 53 20 20 20 20 22 54 61 73 6b 46 69 | EQUS "TaskFi| 00000df0 6c 74 65 72 73 20 70 72 6f 76 69 64 65 73 20 73 |lters provides s| 00000e00 69 6d 70 6c 65 20 61 6e 64 20 6c 6f 77 2d 6d 65 |imple and low-me| 00000e10 6d 6f 72 79 20 70 61 74 63 68 65 73 20 74 6f 20 |mory patches to | 00000e20 76 61 72 69 6f 75 73 20 22 0d 04 2e 50 20 20 20 |various "...P | 00000e30 20 20 20 20 20 45 51 55 53 20 20 20 20 22 61 73 | EQUS "as| 00000e40 70 65 63 74 73 20 6f 66 20 74 68 65 20 6f 70 65 |pects of the ope| 00000e50 72 61 74 69 6e 67 20 73 79 73 74 65 6d 2c 20 75 |rating system, u| 00000e60 73 69 6e 67 20 52 49 53 43 20 4f 53 20 33 27 73 |sing RISC OS 3's| 00000e70 20 66 69 6c 74 65 72 20 22 0d 04 38 4d 20 20 20 | filter "..8M | 00000e80 20 20 20 20 20 45 51 55 53 20 20 20 20 22 6d 61 | EQUS "ma| 00000e90 6e 61 67 65 72 2e 20 53 65 65 20 74 68 65 20 21 |nager. See the !| 00000ea0 48 65 6c 70 20 66 69 6c 65 20 66 6f 72 20 64 65 |Help file for de| 00000eb0 74 61 69 6c 73 20 6f 66 20 74 68 65 20 76 61 72 |tails of the var| 00000ec0 69 6f 75 73 20 22 0d 04 42 1e 20 20 20 20 20 20 |ious "..B. | 00000ed0 20 20 45 51 55 53 20 20 20 20 22 66 69 6c 74 65 | EQUS "filte| 00000ee0 72 73 2e 22 0d 04 4c 16 20 20 20 20 20 20 20 20 |rs."..L. | 00000ef0 45 51 55 42 20 20 20 20 31 33 0d 04 56 16 20 20 |EQUB 13..V. | 00000f00 20 20 20 20 20 20 45 51 55 42 20 20 20 20 31 33 | EQUB 13| 00000f10 0d 04 60 3d 20 20 20 20 20 20 20 20 45 51 55 53 |..`= EQUS| 00000f20 20 20 20 20 22 54 61 73 6b 46 69 6c 74 65 72 73 | "TaskFilters| 00000f30 20 77 61 73 20 77 72 69 74 74 65 6e 20 62 79 20 | was written by | 00000f40 41 6e 64 72 65 77 20 4b 65 6d 70 2e 22 0d 04 6a |Andrew Kemp."..j| 00000f50 16 20 20 20 20 20 20 20 20 45 51 55 42 20 20 20 |. EQUB | 00000f60 20 31 33 0d 04 74 16 20 20 20 20 20 20 20 20 45 | 13..t. E| 00000f70 51 55 42 20 20 20 20 31 33 0d 04 7e 3b 20 20 20 |QUB 13..~; | 00000f80 20 20 20 20 20 45 51 55 53 20 20 20 20 22 a9 20 | EQUS ". | 00000f90 4b 43 45 20 53 6f 66 74 77 61 72 65 2c 20 4a 75 |KCE Software, Ju| 00000fa0 6e 65 20 31 39 39 34 2e 22 2b bd 28 31 33 29 2b |ne 1994."+.(13)+| 00000fb0 bd 28 30 29 0d 04 88 11 20 20 20 20 20 20 20 20 |.(0).... | 00000fc0 41 4c 49 47 4e 0d 04 92 04 0d 04 9c 0e 2e 73 74 |ALIGN.........st| 00000fd0 61 72 74 77 69 6d 70 0d 04 a6 27 20 20 20 20 20 |artwimp...' | 00000fe0 20 20 20 4c 44 52 20 20 20 20 20 52 31 34 2c 5b | LDR R14,[| 00000ff0 52 31 32 2c 23 6d 79 68 61 6e 64 6c 65 5d 0d 04 |R12,#myhandle]..| 00001000 b0 1a 20 20 20 20 20 20 20 20 54 45 51 20 20 20 |.. TEQ | 00001010 20 20 52 31 34 2c 23 30 0d 04 ba 1f 20 20 20 20 | R14,#0.... | 00001020 20 20 20 20 4d 56 4e 45 51 20 20 20 52 31 34 2c | MVNEQ R14,| 00001030 23 28 ac 20 2d 31 29 0d 04 c4 27 20 20 20 20 20 |#(. -1)...' | 00001040 20 20 20 53 54 52 45 51 20 20 20 52 31 34 2c 5b | STREQ R14,[| 00001050 52 31 32 2c 23 6d 79 68 61 6e 64 6c 65 5d 0d 04 |R12,#myhandle]..| 00001060 ce 20 20 20 20 20 20 20 20 20 41 44 52 45 51 20 |. ADREQ | 00001070 20 20 52 30 2c 68 65 6c 70 74 61 62 6c 65 0d 04 | R0,helptable..| 00001080 d8 16 20 20 20 20 20 20 20 20 ec 51 20 20 20 52 |.. .Q R| 00001090 31 2c 23 30 0d 04 e2 1e 20 20 20 20 20 20 20 20 |1,#0.... | 000010a0 4c 44 4d 46 44 20 20 20 28 73 70 29 21 2c 7b 70 |LDMFD (sp)!,{p| 000010b0 63 7d 0d 04 ec 04 0d 04 f6 0d 2e 69 6e 69 74 63 |c}.........initc| 000010c0 6f 64 65 0d 05 00 27 20 20 20 20 20 20 20 20 53 |ode...' S| 000010d0 54 4d 46 44 20 20 20 28 73 70 29 21 2c 7b 52 37 |TMFD (sp)!,{R7| 000010e0 2d 52 31 31 2c 6c 69 6e 6b 7d 0d 05 0a 19 20 20 |-R11,link}.... | 000010f0 20 20 20 20 20 20 4d 4f 56 20 20 20 20 20 52 30 | MOV R0| 00001100 2c 23 36 0d 05 14 1b 20 20 20 20 20 20 20 20 4d |,#6.... M| 00001110 4f 56 20 20 20 20 20 52 33 2c 23 32 39 36 0d 05 |OV R3,#296..| 00001120 1e 20 20 20 20 20 20 20 20 20 53 57 49 20 20 20 |. SWI | 00001130 20 20 22 58 4f 53 5f 4d 6f 64 75 6c 65 22 0d 05 | "XOS_Module"..| 00001140 28 1c 20 20 20 20 20 20 20 20 42 56 53 20 20 20 |(. BVS | 00001150 20 20 69 6e 69 74 65 78 69 74 0d 05 32 1c 20 20 | initexit..2. | 00001160 20 20 20 20 20 20 53 54 52 20 20 20 20 20 52 32 | STR R2| 00001170 2c 5b 52 31 32 5d 0d 05 3c 19 20 20 20 20 20 20 |,[R12]..<. | 00001180 20 20 4d 4f 56 20 20 20 20 20 52 30 2c 23 30 0d | MOV R0,#0.| 00001190 05 46 25 20 20 20 20 20 20 20 20 53 54 52 20 20 |.F% STR | 000011a0 20 20 20 52 30 2c 5b 52 32 2c 23 6d 79 68 61 6e | R0,[R2,#myhan| 000011b0 64 6c 65 5d 0d 05 50 1c 20 20 20 20 20 20 20 20 |dle]..P. | 000011c0 4c 44 52 42 20 20 20 20 52 33 2c 5b 52 31 30 5d |LDRB R3,[R10]| 000011d0 0d 05 5a 1e 20 20 20 20 20 20 20 20 43 4d 50 20 |..Z. CMP | 000011e0 20 20 20 20 52 33 2c 23 97 28 22 2d 22 29 0d 05 | R3,#.("-")..| 000011f0 64 1c 20 20 20 20 20 20 20 20 42 4e 45 20 20 20 |d. BNE | 00001200 20 20 69 6e 69 74 65 78 69 74 0d 05 6e 1f 20 20 | initexit..n. | 00001210 20 20 20 20 20 20 4c 44 52 42 20 20 20 20 52 33 | LDRB R3| 00001220 2c 5b 52 31 30 2c 23 31 5d 0d 05 78 1e 20 20 20 |,[R10,#1]..x. | 00001230 20 20 20 20 20 43 4d 50 20 20 20 20 20 52 33 2c | CMP R3,| 00001240 23 97 28 22 6f 22 29 0d 05 82 1c 20 20 20 20 20 |#.("o").... | 00001250 20 20 20 42 45 51 20 20 20 20 20 72 65 61 64 6f | BEQ reado| 00001260 70 74 73 0d 05 8c 0d 2e 69 6e 69 74 65 78 69 74 |pts.....initexit| 00001270 0d 05 96 25 20 20 20 20 20 20 20 20 4c 44 4d 46 |...% LDMF| 00001280 44 20 20 20 28 73 70 29 21 2c 7b 52 37 2d 52 31 |D (sp)!,{R7-R1| 00001290 31 2c 70 63 7d 0d 05 a0 04 0d 05 aa 0d 2e 72 65 |1,pc}.........re| 000012a0 61 64 6f 70 74 73 0d 05 b4 3c 20 20 20 20 20 20 |adopts...< | 000012b0 20 20 84 52 20 20 20 20 20 52 30 2c 52 30 2c 23 | .R R0,R0,#| 000012c0 28 73 65 74 63 73 64 6f 6e 20 84 20 69 63 6f 6e |(setcsdon . icon| 000012d0 73 70 72 6f 6e 20 84 20 63 6f 6e 66 69 72 6d 6f |spron . confirmo| 000012e0 6e 29 0d 05 be 52 20 20 20 20 20 20 20 20 53 54 |n)...R ST| 000012f0 52 20 20 20 20 20 52 30 2c 5b 52 32 2c 23 6d 6f |R R0,[R2,#mo| 00001300 64 75 6c 65 66 6c 61 67 73 5d 20 20 20 20 20 20 |duleflags] | 00001310 20 20 20 20 20 3b 20 64 65 66 61 75 6c 74 20 6f | ; default o| 00001320 70 74 69 6f 6e 73 20 69 6e 20 63 61 73 65 20 65 |ptions in case e| 00001330 72 72 6f 72 0d 05 c8 1a 20 20 20 20 20 20 20 20 |rror.... | 00001340 4d 4f 56 20 20 20 20 20 52 30 2c 23 31 37 0d 05 |MOV R0,#17..| 00001350 d2 1f 20 20 20 20 20 20 20 20 41 44 52 20 20 20 |.. ADR | 00001360 20 20 52 31 2c 70 61 74 68 6e 61 6d 65 0d 05 dc | R1,pathname...| 00001370 1e 20 20 20 20 20 20 20 20 53 57 49 20 20 20 20 |. SWI | 00001380 20 22 58 4f 53 5f 46 69 6c 65 22 0d 05 e6 3b 20 | "XOS_File"...; | 00001390 20 20 20 20 20 20 20 42 56 53 20 20 20 20 20 69 | BVS i| 000013a0 6e 69 74 65 78 69 74 20 20 20 20 20 20 20 3b 20 |nitexit ; | 000013b0 65 78 69 74 20 69 66 20 65 72 72 6f 72 20 6f 63 |exit if error oc| 000013c0 63 75 72 72 65 64 0d 05 f0 49 20 20 20 20 20 20 |curred...I | 000013d0 20 20 43 4d 50 20 20 20 20 20 52 30 2c 23 31 20 | CMP R0,#1 | 000013e0 20 20 20 20 20 20 20 20 20 3b 20 65 78 69 74 20 | ; exit | 000013f0 69 66 20 6e 6f 74 20 61 20 66 69 6c 65 2c 20 6f |if not a file, o| 00001400 72 20 64 6f 65 73 6e 27 74 20 65 78 69 73 74 0d |r doesn't exist.| 00001410 05 fa 3e 20 20 20 20 20 20 20 20 43 4d 50 45 51 |..> CMPEQ| 00001420 20 20 20 52 34 2c 23 34 20 20 20 20 20 20 20 20 | R4,#4 | 00001430 20 20 3b 20 65 78 69 74 20 69 66 20 66 69 6c 65 | ; exit if file| 00001440 20 77 72 6f 6e 67 20 6c 65 6e 67 74 68 0d 06 04 | wrong length...| 00001450 1c 20 20 20 20 20 20 20 20 42 4e 45 20 20 20 20 |. BNE | 00001460 20 69 6e 69 74 65 78 69 74 0d 06 0e 1a 20 20 20 | initexit.... | 00001470 20 20 20 20 20 4d 4f 56 20 20 20 20 20 52 30 2c | MOV R0,| 00001480 23 31 36 0d 06 18 1c 20 20 20 20 20 20 20 20 4c |#16.... L| 00001490 44 52 20 20 20 20 20 52 32 2c 5b 52 31 32 5d 0d |DR R2,[R12].| 000014a0 06 22 26 20 20 20 20 20 20 20 20 41 44 44 20 20 |."& ADD | 000014b0 20 20 20 52 32 2c 52 32 2c 23 6d 6f 64 75 6c 65 | R2,R2,#module| 000014c0 66 6c 61 67 73 0d 06 2c 19 20 20 20 20 20 20 20 |flags..,. | 000014d0 20 4d 4f 56 20 20 20 20 20 52 33 2c 23 30 0d 06 | MOV R3,#0..| 000014e0 36 1e 20 20 20 20 20 20 20 20 53 57 49 20 20 20 |6. SWI | 000014f0 20 20 22 58 4f 53 5f 46 69 6c 65 22 0d 06 40 1c | "XOS_File"..@.| 00001500 20 20 20 20 20 20 20 20 42 20 20 20 20 20 20 20 | B | 00001510 69 6e 69 74 65 78 69 74 0d 06 4a 04 0d 06 54 0d |initexit..J...T.| 00001520 2e 70 61 74 68 6e 61 6d 65 0d 06 5e 28 20 20 20 |.pathname..^( | 00001530 20 20 20 20 20 45 51 55 53 20 20 20 20 22 54 61 | EQUS "Ta| 00001540 73 6b 46 69 6c 74 65 72 3a 4f 70 74 69 6f 6e 73 |skFilter:Options| 00001550 22 0d 06 68 15 20 20 20 20 20 20 20 20 45 51 55 |"..h. EQU| 00001560 42 20 20 20 20 30 0d 06 72 11 20 20 20 20 20 20 |B 0..r. | 00001570 20 20 41 4c 49 47 4e 0d 06 7c 04 0d 06 86 10 2e | ALIGN..|......| 00001580 73 74 61 72 63 6f 6d 6d 61 6e 64 0d 06 90 20 20 |starcommand... | 00001590 20 20 20 20 20 20 20 53 54 4d 46 44 20 20 20 28 | STMFD (| 000015a0 73 70 29 21 2c 7b 6c 69 6e 6b 7d 0d 06 9a 19 20 |sp)!,{link}.... | 000015b0 20 20 20 20 20 20 20 4d 4f 56 20 20 20 20 20 52 | MOV R| 000015c0 32 2c 52 30 0d 06 a4 22 20 20 20 20 20 20 20 20 |2,R0..." | 000015d0 41 44 52 20 20 20 20 20 52 31 2c 74 69 74 6c 65 |ADR R1,title| 000015e0 73 74 72 69 6e 67 0d 06 ae 19 20 20 20 20 20 20 |string.... | 000015f0 20 20 4d 4f 56 20 20 20 20 20 52 30 2c 23 32 0d | MOV R0,#2.| 00001600 06 b8 20 20 20 20 20 20 20 20 20 53 57 49 20 20 |.. SWI | 00001610 20 20 20 22 58 4f 53 5f 4d 6f 64 75 6c 65 22 0d | "XOS_Module".| 00001620 06 c2 1e 20 20 20 20 20 20 20 20 4c 44 4d 46 44 |... LDMFD| 00001630 20 20 20 28 73 70 29 21 2c 7b 70 63 7d 0d 06 cc | (sp)!,{pc}...| 00001640 04 0d 06 d6 09 2e 74 61 73 6b 0d 06 e0 1a 20 20 |......task.... | 00001650 20 20 20 20 20 20 45 51 55 53 20 20 20 20 22 54 | EQUS "T| 00001660 41 53 4b 22 0d 06 ea 04 0d 06 f4 0e 2e 73 74 61 |ASK".........sta| 00001670 72 74 63 6f 64 65 0d 06 fe 1d 20 20 20 20 20 20 |rtcode.... | 00001680 20 20 4c 44 52 20 20 20 20 20 52 31 32 2c 5b 52 | LDR R12,[R| 00001690 31 32 5d 0d 07 08 26 20 20 20 20 20 20 20 20 4c |12]...& L| 000016a0 44 52 20 20 20 20 20 52 30 2c 5b 52 31 32 2c 23 |DR R0,[R12,#| 000016b0 6d 79 68 61 6e 64 6c 65 5d 0d 07 12 19 20 20 20 |myhandle].... | 000016c0 20 20 20 20 20 54 45 51 20 20 20 20 20 52 30 2c | TEQ R0,| 000016d0 23 30 0d 07 1c 1b 20 20 20 20 20 20 20 20 4c 44 |#0.... LD| 000016e0 52 47 54 20 20 20 52 31 2c 74 61 73 6b 0d 07 26 |RGT R1,task..&| 000016f0 25 20 20 20 20 20 20 20 20 53 57 49 47 54 20 20 |% SWIGT | 00001700 20 22 58 57 69 6d 70 5f 43 6c 6f 73 65 44 6f 77 | "XWimp_CloseDow| 00001710 6e 22 0d 07 30 19 20 20 20 20 20 20 20 20 4d 4f |n"..0. MO| 00001720 56 47 54 20 20 20 52 30 2c 23 30 0d 07 3a 26 20 |VGT R0,#0..:& | 00001730 20 20 20 20 20 20 20 53 54 52 47 54 20 20 20 52 | STRGT R| 00001740 30 2c 5b 52 31 32 2c 23 6d 79 68 61 6e 64 6c 65 |0,[R12,#myhandle| 00001750 5d 0d 07 44 04 0d 07 4e 1b 20 20 20 20 20 20 20 |]..D...N. | 00001760 20 4d 4f 56 20 20 20 20 20 52 30 2c 23 33 30 38 | MOV R0,#308| 00001770 0d 07 58 1c 20 20 20 20 20 20 20 20 41 44 44 20 |..X. ADD | 00001780 20 20 20 20 52 30 2c 52 30 2c 23 32 0d 07 62 1b | R0,R0,#2..b.| 00001790 20 20 20 20 20 20 20 20 4c 44 52 20 20 20 20 20 | LDR | 000017a0 52 31 2c 74 61 73 6b 0d 07 6c 22 20 20 20 20 20 |R1,task..l" | 000017b0 20 20 20 41 44 52 20 20 20 20 20 52 32 2c 74 69 | ADR R2,ti| 000017c0 74 6c 65 73 74 72 69 6e 67 0d 07 76 21 20 20 20 |tlestring..v! | 000017d0 20 20 20 20 20 41 44 52 20 20 20 20 20 52 33 2c | ADR R3,| 000017e0 6d 79 6d 65 73 73 61 67 65 73 0d 07 80 26 20 20 |mymessages...& | 000017f0 20 20 20 20 20 20 53 57 49 20 20 20 20 20 22 58 | SWI "X| 00001800 57 69 6d 70 5f 49 6e 69 74 69 61 6c 69 73 65 22 |Wimp_Initialise"| 00001810 0d 07 8a 1e 20 20 20 20 20 20 20 20 53 57 49 56 |.... SWIV| 00001820 53 20 20 20 22 58 4f 53 5f 45 78 69 74 22 0d 07 |S "XOS_Exit"..| 00001830 94 26 20 20 20 20 20 20 20 20 53 54 52 20 20 20 |.& STR | 00001840 20 20 52 31 2c 5b 52 31 32 2c 23 6d 79 68 61 6e | R1,[R12,#myhan| 00001850 64 6c 65 5d 0d 07 9e 04 0d 07 a8 21 20 20 20 20 |dle].......! | 00001860 20 20 20 20 41 44 44 20 20 20 20 20 73 70 2c 52 | ADD sp,R| 00001870 31 32 2c 23 73 74 61 63 6b 0d 07 b2 04 0d 07 bc |12,#stack.......| 00001880 40 20 20 20 20 20 20 20 20 42 4c 20 20 20 20 20 |@ BL | 00001890 20 69 6e 73 74 61 6c 6c 61 6c 6c 20 20 20 20 20 | installall | 000018a0 20 20 20 20 20 20 20 3a 20 f4 20 8a 8a 20 66 61 | : . .. fa| 000018b0 6c 6c 20 74 68 72 6f 75 67 68 20 8a 8a 0d 07 c6 |ll through .....| 000018c0 04 0d 07 d0 09 2e 70 6f 6c 6c 0d 07 da 1d 20 20 |......poll.... | 000018d0 20 20 20 20 20 20 4c 44 52 20 20 20 20 20 52 30 | LDR R0| 000018e0 2c 6d 79 6d 61 73 6b 0d 07 e4 25 20 20 20 20 20 |,mymask...% | 000018f0 20 20 20 41 44 44 20 20 20 20 20 52 31 2c 52 31 | ADD R1,R1| 00001900 32 2c 23 70 6f 6c 6c 62 6c 6f 63 6b 0d 07 ee 20 |2,#pollblock... | 00001910 20 20 20 20 20 20 20 20 53 57 49 20 20 20 20 20 | SWI | 00001920 22 58 57 69 6d 70 5f 50 6f 6c 6c 22 0d 07 f8 1a |"XWimp_Poll"....| 00001930 20 20 20 20 20 20 20 20 43 4d 50 20 20 20 20 20 | CMP | 00001940 52 30 2c 23 31 37 0d 08 02 1a 20 20 20 20 20 20 |R0,#17.... | 00001950 20 20 43 4d 50 4e 45 20 20 20 52 30 2c 23 31 38 | CMPNE R0,#18| 00001960 0d 08 0c 18 20 20 20 20 20 20 20 20 42 4e 45 20 |.... BNE | 00001970 20 20 20 20 70 6f 6c 6c 0d 08 16 1f 20 20 20 20 | poll.... | 00001980 20 20 20 20 4c 44 52 20 20 20 20 20 52 30 2c 5b | LDR R0,[| 00001990 52 31 2c 23 31 36 5d 0d 08 20 2d 20 20 20 20 20 |R1,#16].. - | 000019a0 20 20 20 4c 44 52 20 20 20 20 20 52 32 2c 6d 65 | LDR R2,me| 000019b0 73 73 61 67 65 5f 74 61 73 6b 69 6e 69 74 69 61 |ssage_taskinitia| 000019c0 6c 69 73 65 0d 08 2a 19 20 20 20 20 20 20 20 20 |lise..*. | 000019d0 43 4d 50 20 20 20 20 20 52 30 2c 52 32 0d 08 34 |CMP R0,R2..4| 000019e0 22 20 20 20 20 20 20 20 20 42 45 51 20 20 20 20 |" BEQ | 000019f0 20 74 61 73 6b 69 6e 69 74 69 61 6c 69 73 65 0d | taskinitialise.| 00001a00 08 3e 2c 20 20 20 20 20 20 20 20 4c 44 52 20 20 |.>, LDR | 00001a10 20 20 20 52 32 2c 6d 65 73 73 61 67 65 5f 74 61 | R2,message_ta| 00001a20 73 6b 63 6c 6f 73 65 64 6f 77 6e 0d 08 48 19 20 |skclosedown..H. | 00001a30 20 20 20 20 20 20 20 43 4d 50 20 20 20 20 20 52 | CMP R| 00001a40 30 2c 52 32 0d 08 52 21 20 20 20 20 20 20 20 20 |0,R2..R! | 00001a50 42 45 51 20 20 20 20 20 74 61 73 6b 63 6c 6f 73 |BEQ taskclos| 00001a60 65 64 6f 77 6e 0d 08 5c 19 20 20 20 20 20 20 20 |edown..\. | 00001a70 20 43 4d 50 20 20 20 20 20 52 30 2c 23 30 0d 08 | CMP R0,#0..| 00001a80 66 18 20 20 20 20 20 20 20 20 42 4e 45 20 20 20 |f. BNE | 00001a90 20 20 70 6f 6c 6c 0d 08 70 22 20 20 20 20 20 20 | poll..p" | 00001aa0 20 20 42 4c 20 20 20 20 20 20 74 6d 66 69 6c 74 | BL tmfilt| 00001ab0 65 72 72 65 6d 6f 76 65 0d 08 7a 22 20 20 20 20 |erremove..z" | 00001ac0 20 20 20 20 42 4c 20 20 20 20 20 20 70 61 66 69 | BL pafi| 00001ad0 6c 74 65 72 72 65 6d 6f 76 65 0d 08 84 22 20 20 |lterremove..." | 00001ae0 20 20 20 20 20 20 42 4c 20 20 20 20 20 20 66 61 | BL fa| 00001af0 66 69 6c 74 65 72 72 65 6d 6f 76 65 0d 08 8e 26 |filterremove...&| 00001b00 20 20 20 20 20 20 20 20 4c 44 52 20 20 20 20 20 | LDR | 00001b10 52 30 2c 5b 52 31 32 2c 23 6d 79 68 61 6e 64 6c |R0,[R12,#myhandl| 00001b20 65 5d 0d 08 98 1b 20 20 20 20 20 20 20 20 41 44 |e].... AD| 00001b30 52 20 20 20 20 20 52 31 2c 74 61 73 6b 0d 08 a2 |R R1,task...| 00001b40 25 20 20 20 20 20 20 20 20 53 57 49 20 20 20 20 |% SWI | 00001b50 20 22 58 57 69 6d 70 5f 43 6c 6f 73 65 44 6f 77 | "XWimp_CloseDow| 00001b60 6e 22 0d 08 ac 19 20 20 20 20 20 20 20 20 4d 4f |n".... MO| 00001b70 56 20 20 20 20 20 52 31 2c 23 30 0d 08 b6 26 20 |V R1,#0...& | 00001b80 20 20 20 20 20 20 20 53 54 52 20 20 20 20 20 52 | STR R| 00001b90 31 2c 5b 52 31 32 2c 23 6d 79 68 61 6e 64 6c 65 |1,[R12,#myhandle| 00001ba0 5d 0d 08 c0 1e 20 20 20 20 20 20 20 20 53 57 49 |].... SWI| 00001bb0 20 20 20 20 20 22 58 4f 53 5f 45 78 69 74 22 0d | "XOS_Exit".| 00001bc0 08 ca 18 20 20 20 20 20 20 20 20 42 20 20 20 20 |... B | 00001bd0 20 20 20 70 6f 6c 6c 0d 08 d4 04 0d 08 de 0f 2e | poll.........| 00001be0 6d 79 6d 65 73 73 61 67 65 73 0d 08 e8 1b 2e 6d |mymessages.....m| 00001bf0 65 73 73 61 67 65 5f 74 61 73 6b 69 6e 69 74 69 |essage_taskiniti| 00001c00 61 6c 69 73 65 0d 08 f2 1a 20 20 20 20 20 20 20 |alise.... | 00001c10 20 45 51 55 44 20 20 20 20 26 34 30 30 43 32 0d | EQUD &400C2.| 00001c20 08 fc 1a 2e 6d 65 73 73 61 67 65 5f 74 61 73 6b |....message_task| 00001c30 63 6c 6f 73 65 64 6f 77 6e 0d 09 06 1a 20 20 20 |closedown.... | 00001c40 20 20 20 20 20 45 51 55 44 20 20 20 20 26 34 30 | EQUD &40| 00001c50 30 43 33 0d 09 10 15 20 20 20 20 20 20 20 20 45 |0C3.... E| 00001c60 51 55 44 20 20 20 20 30 0d 09 1a 04 0d 09 24 0f |QUD 0......$.| 00001c70 2e 69 6e 73 74 61 6c 6c 61 6c 6c 0d 09 2e 23 20 |.installall...# | 00001c80 20 20 20 20 20 20 20 53 54 4d 46 44 20 20 20 28 | STMFD (| 00001c90 73 70 29 21 2c 7b 52 31 2c 6c 69 6e 6b 7d 0d 09 |sp)!,{R1,link}..| 00001ca0 38 1d 20 20 20 20 20 20 20 20 41 44 52 20 20 20 |8. ADR | 00001cb0 20 20 52 34 2c 74 6d 6e 61 6d 65 0d 09 42 21 20 | R4,tmname..B! | 00001cc0 20 20 20 20 20 20 20 42 4c 20 20 20 20 20 20 67 | BL g| 00001cd0 65 74 74 61 73 6b 68 61 6e 64 6c 65 0d 09 4c 19 |ettaskhandle..L.| 00001ce0 20 20 20 20 20 20 20 20 43 4d 50 20 20 20 20 20 | CMP | 00001cf0 52 33 2c 23 30 0d 09 56 23 20 20 20 20 20 20 20 |R3,#0..V# | 00001d00 20 42 4c 4e 45 20 20 20 20 74 6d 66 69 6c 74 65 | BLNE tmfilte| 00001d10 72 69 6e 73 74 61 6c 6c 0d 09 60 1d 20 20 20 20 |rinstall..`. | 00001d20 20 20 20 20 41 44 52 20 20 20 20 20 52 34 2c 70 | ADR R4,p| 00001d30 61 6e 61 6d 65 0d 09 6a 21 20 20 20 20 20 20 20 |aname..j! | 00001d40 20 42 4c 20 20 20 20 20 20 67 65 74 74 61 73 6b | BL gettask| 00001d50 68 61 6e 64 6c 65 0d 09 74 19 20 20 20 20 20 20 |handle..t. | 00001d60 20 20 43 4d 50 20 20 20 20 20 52 33 2c 23 30 0d | CMP R3,#0.| 00001d70 09 7e 23 20 20 20 20 20 20 20 20 42 4c 4e 45 20 |.~# BLNE | 00001d80 20 20 20 70 61 66 69 6c 74 65 72 69 6e 73 74 61 | pafilterinsta| 00001d90 6c 6c 0d 09 88 21 20 20 20 20 20 20 20 20 4c 44 |ll...! LD| 00001da0 4d 46 44 20 20 20 28 73 70 29 21 2c 7b 52 31 2c |MFD (sp)!,{R1,| 00001db0 70 63 7d 0d 09 92 04 0d 09 9c 13 2e 74 61 73 6b |pc}.........task| 00001dc0 69 6e 69 74 69 61 6c 69 73 65 0d 09 a6 1d 20 20 |initialise.... | 00001dd0 20 20 20 20 20 20 41 44 44 20 20 20 20 20 52 30 | ADD R0| 00001de0 2c 52 31 2c 23 32 38 0d 09 b0 1d 20 20 20 20 20 |,R1,#28.... | 00001df0 20 20 20 41 44 52 20 20 20 20 20 52 33 2c 74 6d | ADR R3,tm| 00001e00 6e 61 6d 65 0d 09 ba 21 20 20 20 20 20 20 20 20 |name...! | 00001e10 42 4c 20 20 20 20 20 20 73 74 72 69 6e 67 63 6f |BL stringco| 00001e20 6d 70 61 72 65 0d 09 c4 19 20 20 20 20 20 20 20 |mpare.... | 00001e30 20 43 4d 50 20 20 20 20 20 52 33 2c 23 31 0d 09 | CMP R3,#1..| 00001e40 ce 1e 20 20 20 20 20 20 20 20 4c 44 52 45 51 20 |.. LDREQ | 00001e50 20 20 52 33 2c 5b 52 31 2c 23 34 5d 0d 09 d8 23 | R3,[R1,#4]...#| 00001e60 20 20 20 20 20 20 20 20 42 4c 45 51 20 20 20 20 | BLEQ | 00001e70 74 6d 66 69 6c 74 65 72 69 6e 73 74 61 6c 6c 0d |tmfilterinstall.| 00001e80 09 e2 1d 20 20 20 20 20 20 20 20 41 44 52 20 20 |... ADR | 00001e90 20 20 20 52 33 2c 70 61 6e 61 6d 65 0d 09 ec 21 | R3,paname...!| 00001ea0 20 20 20 20 20 20 20 20 42 4c 20 20 20 20 20 20 | BL | 00001eb0 73 74 72 69 6e 67 63 6f 6d 70 61 72 65 0d 09 f6 |stringcompare...| 00001ec0 19 20 20 20 20 20 20 20 20 43 4d 50 20 20 20 20 |. CMP | 00001ed0 20 52 33 2c 23 31 0d 0a 00 1e 20 20 20 20 20 20 | R3,#1.... | 00001ee0 20 20 4c 44 52 45 51 20 20 20 52 33 2c 5b 52 31 | LDREQ R3,[R1| 00001ef0 2c 23 34 5d 0d 0a 0a 23 20 20 20 20 20 20 20 20 |,#4]...# | 00001f00 42 4c 45 51 20 20 20 20 70 61 66 69 6c 74 65 72 |BLEQ pafilter| 00001f10 69 6e 73 74 61 6c 6c 0d 0a 14 1d 20 20 20 20 20 |install.... | 00001f20 20 20 20 41 44 52 20 20 20 20 20 52 33 2c 66 61 | ADR R3,fa| 00001f30 6e 61 6d 65 0d 0a 1e 21 20 20 20 20 20 20 20 20 |name...! | 00001f40 42 4c 20 20 20 20 20 20 73 74 72 69 6e 67 63 6f |BL stringco| 00001f50 6d 70 61 72 65 0d 0a 28 19 20 20 20 20 20 20 20 |mpare..(. | 00001f60 20 43 4d 50 20 20 20 20 20 52 33 2c 23 31 0d 0a | CMP R3,#1..| 00001f70 32 1e 20 20 20 20 20 20 20 20 4c 44 52 45 51 20 |2. LDREQ | 00001f80 20 20 52 33 2c 5b 52 31 2c 23 34 5d 0d 0a 3c 23 | R3,[R1,#4]..<#| 00001f90 20 20 20 20 20 20 20 20 42 4c 45 51 20 20 20 20 | BLEQ | 00001fa0 66 61 66 69 6c 74 65 72 69 6e 73 74 61 6c 6c 0d |fafilterinstall.| 00001fb0 0a 46 18 20 20 20 20 20 20 20 20 42 20 20 20 20 |.F. B | 00001fc0 20 20 20 70 6f 6c 6c 0d 0a 50 04 0d 0a 5a 12 2e | poll..P...Z..| 00001fd0 74 61 73 6b 63 6c 6f 73 65 64 6f 77 6e 0d 0a 64 |taskclosedown..d| 00001fe0 1e 20 20 20 20 20 20 20 20 4c 44 52 20 20 20 20 |. LDR | 00001ff0 20 52 30 2c 5b 52 31 2c 23 34 5d 0d 0a 6e 26 20 | R0,[R1,#4]..n& | 00002000 20 20 20 20 20 20 20 4c 44 52 20 20 20 20 20 52 | LDR R| 00002010 32 2c 5b 52 31 32 2c 23 74 6d 68 61 6e 64 6c 65 |2,[R12,#tmhandle| 00002020 5d 0d 0a 78 19 20 20 20 20 20 20 20 20 43 4d 50 |]..x. CMP| 00002030 20 20 20 20 20 52 30 2c 52 32 0d 0a 82 22 20 20 | R0,R2..." | 00002040 20 20 20 20 20 20 42 4c 45 51 20 20 20 20 74 6d | BLEQ tm| 00002050 66 69 6c 74 65 72 72 65 6d 6f 76 65 0d 0a 8c 26 |filterremove...&| 00002060 20 20 20 20 20 20 20 20 4c 44 52 20 20 20 20 20 | LDR | 00002070 52 32 2c 5b 52 31 32 2c 23 70 61 68 61 6e 64 6c |R2,[R12,#pahandl| 00002080 65 5d 0d 0a 96 19 20 20 20 20 20 20 20 20 43 4d |e].... CM| 00002090 50 20 20 20 20 20 52 30 2c 52 32 0d 0a a0 22 20 |P R0,R2..." | 000020a0 20 20 20 20 20 20 20 42 4c 45 51 20 20 20 20 70 | BLEQ p| 000020b0 61 66 69 6c 74 65 72 72 65 6d 6f 76 65 0d 0a aa |afilterremove...| 000020c0 26 20 20 20 20 20 20 20 20 4c 44 52 20 20 20 20 |& LDR | 000020d0 20 52 32 2c 5b 52 31 32 2c 23 66 61 68 61 6e 64 | R2,[R12,#fahand| 000020e0 6c 65 5d 0d 0a b4 19 20 20 20 20 20 20 20 20 43 |le].... C| 000020f0 4d 50 20 20 20 20 20 52 30 2c 52 32 0d 0a be 22 |MP R0,R2..."| 00002100 20 20 20 20 20 20 20 20 42 4c 45 51 20 20 20 20 | BLEQ | 00002110 66 61 66 69 6c 74 65 72 72 65 6d 6f 76 65 0d 0a |fafilterremove..| 00002120 c8 18 20 20 20 20 20 20 20 20 42 20 20 20 20 20 |.. B | 00002130 20 20 70 6f 6c 6c 0d 0a d2 04 0d 0a dc 12 2e 73 | poll.........s| 00002140 74 72 69 6e 67 63 6f 6d 70 61 72 65 0d 0a e6 23 |tringcompare...#| 00002150 20 20 20 20 20 20 20 20 53 54 4d 46 44 20 20 20 | STMFD | 00002160 28 73 70 29 21 2c 7b 52 30 2c 6c 69 6e 6b 7d 0d |(sp)!,{R0,link}.| 00002170 0a f0 49 2e 63 6f 6d 70 61 72 65 6c 6f 6f 70 20 |..I.compareloop | 00002180 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | | 00002190 20 20 20 20 20 20 3b 20 63 6f 6d 70 61 72 65 73 | ; compares| 000021a0 20 73 74 72 69 6e 67 20 70 6f 69 6e 74 65 64 20 | string pointed | 000021b0 74 6f 20 62 79 20 52 30 0d 0a fa 43 20 20 20 20 |to by R0...C | 000021c0 20 20 20 20 4c 44 52 42 20 20 20 20 52 37 2c 5b | LDRB R7,[| 000021d0 52 30 5d 2c 23 31 20 20 20 20 20 20 20 20 20 3b |R0],#1 ;| 000021e0 20 77 69 74 68 20 74 68 61 74 20 70 6f 69 6e 74 | with that point| 000021f0 65 64 20 74 6f 20 62 79 20 52 33 0d 0b 04 42 20 |ed to by R3...B | 00002200 20 20 20 20 20 20 20 4c 44 52 42 20 20 20 20 52 | LDRB R| 00002210 35 2c 5b 52 33 5d 2c 23 31 20 20 20 20 20 20 20 |5,[R3],#1 | 00002220 20 20 3b 20 72 65 74 75 72 6e 69 6e 67 20 31 20 | ; returning 1 | 00002230 69 6e 20 52 33 20 69 66 20 73 61 6d 65 0d 0b 0e |in R3 if same...| 00002240 19 20 20 20 20 20 20 20 20 43 4d 50 20 20 20 20 |. CMP | 00002250 20 52 37 2c 52 35 0d 0b 18 19 20 20 20 20 20 20 | R7,R5.... | 00002260 20 20 4d 4f 56 4e 45 20 20 20 52 33 2c 23 30 0d | MOVNE R3,#0.| 00002270 0b 22 21 20 20 20 20 20 20 20 20 4c 44 4d 4e 45 |."! LDMNE| 00002280 46 44 20 28 73 70 29 21 2c 7b 52 30 2c 70 63 7d |FD (sp)!,{R0,pc}| 00002290 0d 0b 2c 19 20 20 20 20 20 20 20 20 43 4d 50 20 |..,. CMP | 000022a0 20 20 20 20 52 35 2c 23 30 0d 0b 36 1f 20 20 20 | R5,#0..6. | 000022b0 20 20 20 20 20 42 4e 45 20 20 20 20 20 63 6f 6d | BNE com| 000022c0 70 61 72 65 6c 6f 6f 70 0d 0b 40 19 20 20 20 20 |pareloop..@. | 000022d0 20 20 20 20 4d 4f 56 20 20 20 20 20 52 33 2c 23 | MOV R3,#| 000022e0 31 0d 0b 4a 21 20 20 20 20 20 20 20 20 4c 44 4d |1..J! LDM| 000022f0 46 44 20 20 20 28 73 70 29 21 2c 7b 52 30 2c 70 |FD (sp)!,{R0,p| 00002300 63 7d 0d 0b 54 04 0d 0b 5e 4c 2e 74 6d 66 69 6c |c}..T...^L.tmfil| 00002310 74 65 72 69 6e 73 74 61 6c 6c 20 20 20 20 20 20 |terinstall | 00002320 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | | 00002330 20 20 20 20 20 20 20 3b 20 70 61 73 73 20 74 6d | ; pass tm| 00002340 20 74 61 73 6b 20 68 61 6e 64 6c 65 20 69 6e 20 | task handle in | 00002350 52 33 0d 0b 68 23 20 20 20 20 20 20 20 20 53 54 |R3..h# ST| 00002360 4d 46 44 20 20 20 28 73 70 29 21 2c 7b 52 30 2c |MFD (sp)!,{R0,| 00002370 6c 69 6e 6b 7d 0d 0b 72 29 20 20 20 20 20 20 20 |link}..r) | 00002380 20 4c 44 52 20 20 20 20 20 52 31 2c 5b 52 31 32 | LDR R1,[R12| 00002390 2c 23 6d 6f 64 75 6c 65 66 6c 61 67 73 5d 0d 0b |,#moduleflags]..| 000023a0 7c 29 20 20 20 20 20 20 20 20 54 53 54 20 20 20 ||) TST | 000023b0 20 20 52 31 2c 23 74 6d 66 69 6c 74 65 72 69 6e | R1,#tmfilterin| 000023c0 73 74 61 6c 6c 65 64 0d 0b 86 51 20 20 20 20 20 |stalled...Q | 000023d0 20 20 20 4c 44 4d 4e 45 46 44 20 28 73 70 29 21 | LDMNEFD (sp)!| 000023e0 2c 7b 52 30 2c 70 63 7d 20 20 20 20 20 20 20 20 |,{R0,pc} | 000023f0 20 20 20 20 20 20 20 3b 20 69 66 20 61 6c 72 65 | ; if alre| 00002400 61 64 79 20 69 6e 73 74 61 6c 6c 65 64 2c 20 6a |ady installed, j| 00002410 75 73 74 20 65 78 69 74 0d 0b 90 20 20 20 20 20 |ust exit... | 00002420 20 20 20 20 54 53 54 20 20 20 20 20 52 31 2c 23 | TST R1,#| 00002430 73 65 74 63 73 64 6f 6e 0d 0b 9a 47 20 20 20 20 |setcsdon...G | 00002440 20 20 20 20 4c 44 4d 45 51 46 44 20 28 73 70 29 | LDMEQFD (sp)| 00002450 21 2c 7b 52 30 2c 70 63 7d 20 20 20 20 20 20 20 |!,{R0,pc} | 00002460 20 20 20 20 20 20 20 20 3b 20 69 66 20 6e 6f 74 | ; if not| 00002470 20 73 65 6c 65 63 74 65 64 2c 20 65 78 69 74 0d | selected, exit.| 00002480 0b a4 23 20 20 20 20 20 20 20 20 41 44 52 20 20 |..# ADR | 00002490 20 20 20 52 30 2c 74 6d 66 69 6c 74 65 72 6e 61 | R0,tmfilterna| 000024a0 6d 65 0d 0b ae 23 20 20 20 20 20 20 20 20 41 44 |me...# AD| 000024b0 52 20 20 20 20 20 52 31 2c 74 6d 66 69 6c 74 65 |R R1,tmfilte| 000024c0 72 63 6f 64 65 0d 0b b8 50 20 20 20 20 20 20 20 |rcode...P | 000024d0 20 4d 4f 56 20 20 20 20 20 52 32 2c 52 31 32 20 | MOV R2,R12 | 000024e0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | | 000024f0 20 20 20 20 20 20 3b 20 6e 6f 74 65 20 70 61 73 | ; note pas| 00002500 73 65 73 20 77 6f 72 6b 73 70 61 63 65 20 70 6f |ses workspace po| 00002510 69 6e 74 65 72 0d 0b c2 4e 20 20 20 20 20 20 20 |inter...N | 00002520 20 4c 44 52 20 20 20 20 20 52 34 2c 74 6d 66 69 | LDR R4,tmfi| 00002530 6c 74 65 72 6d 61 73 6b 20 20 20 20 20 20 20 20 |ltermask | 00002540 20 20 20 20 20 20 3b 20 6e 6f 74 20 70 72 69 76 | ; not priv| 00002550 61 74 65 20 77 6f 72 64 20 70 6f 69 6e 74 65 72 |ate word pointer| 00002560 20 61 73 0d 0b cc 39 20 20 20 20 20 20 20 20 53 | as...9 S| 00002570 57 49 20 20 20 20 20 22 58 46 69 6c 74 65 72 5f |WI "XFilter_| 00002580 52 65 67 69 73 74 65 72 50 6f 73 74 46 69 6c 74 |RegisterPostFilt| 00002590 65 72 22 20 3b 20 62 65 66 6f 72 65 0d 0b d6 26 |er" ; before...&| 000025a0 20 20 20 20 20 20 20 20 53 54 52 56 43 20 20 20 | STRVC | 000025b0 52 33 2c 5b 52 31 32 2c 23 74 6d 68 61 6e 64 6c |R3,[R12,#tmhandl| 000025c0 65 5d 0d 0b e0 29 20 20 20 20 20 20 20 20 4c 44 |e]...) LD| 000025d0 52 56 43 20 20 20 52 31 2c 5b 52 31 32 2c 23 6d |RVC R1,[R12,#m| 000025e0 6f 64 75 6c 65 66 6c 61 67 73 5d 0d 0b ea 2b 20 |oduleflags]...+ | 000025f0 20 20 20 20 20 20 20 84 52 56 43 20 20 20 52 31 | .RVC R1| 00002600 2c 52 31 2c 23 74 6d 66 69 6c 74 65 72 69 6e 73 |,R1,#tmfilterins| 00002610 74 61 6c 6c 65 64 0d 0b f4 29 20 20 20 20 20 20 |talled...) | 00002620 20 20 53 54 52 56 43 20 20 20 52 31 2c 5b 52 31 | STRVC R1,[R1| 00002630 32 2c 23 6d 6f 64 75 6c 65 66 6c 61 67 73 5d 0d |2,#moduleflags].| 00002640 0b fe 21 20 20 20 20 20 20 20 20 4c 44 4d 46 44 |..! LDMFD| 00002650 20 20 20 28 73 70 29 21 2c 7b 52 30 2c 70 63 7d | (sp)!,{R0,pc}| 00002660 0d 0c 08 04 0d 0c 12 13 2e 74 6d 66 69 6c 74 65 |.........tmfilte| 00002670 72 72 65 6d 6f 76 65 0d 0c 1c 23 20 20 20 20 20 |rremove...# | 00002680 20 20 20 53 54 4d 46 44 20 20 20 28 73 70 29 21 | STMFD (sp)!| 00002690 2c 7b 52 30 2c 6c 69 6e 6b 7d 0d 0c 26 29 20 20 |,{R0,link}..&) | 000026a0 20 20 20 20 20 20 4c 44 52 20 20 20 20 20 52 31 | LDR R1| 000026b0 2c 5b 52 31 32 2c 23 6d 6f 64 75 6c 65 66 6c 61 |,[R12,#modulefla| 000026c0 67 73 5d 0d 0c 30 29 20 20 20 20 20 20 20 20 54 |gs]..0) T| 000026d0 53 54 20 20 20 20 20 52 31 2c 23 74 6d 66 69 6c |ST R1,#tmfil| 000026e0 74 65 72 69 6e 73 74 61 6c 6c 65 64 0d 0c 3a 4d |terinstalled..:M| 000026f0 20 20 20 20 20 20 20 20 4c 44 4d 45 51 46 44 20 | LDMEQFD | 00002700 28 73 70 29 21 2c 7b 52 30 2c 70 63 7d 20 20 20 |(sp)!,{R0,pc} | 00002710 20 20 20 20 20 20 20 20 20 20 20 20 3b 20 69 66 | ; if| 00002720 20 6e 6f 74 20 69 6e 73 74 61 6c 6c 65 64 2c 20 | not installed, | 00002730 6a 75 73 74 20 65 78 69 74 0d 0c 44 23 20 20 20 |just exit..D# | 00002740 20 20 20 20 20 41 44 52 20 20 20 20 20 52 30 2c | ADR R0,| 00002750 74 6d 66 69 6c 74 65 72 6e 61 6d 65 0d 0c 4e 23 |tmfiltername..N#| 00002760 20 20 20 20 20 20 20 20 41 44 52 20 20 20 20 20 | ADR | 00002770 52 31 2c 74 6d 66 69 6c 74 65 72 63 6f 64 65 0d |R1,tmfiltercode.| 00002780 0c 58 1a 20 20 20 20 20 20 20 20 4d 4f 56 20 20 |.X. MOV | 00002790 20 20 20 52 32 2c 52 31 32 0d 0c 62 26 20 20 20 | R2,R12..b& | 000027a0 20 20 20 20 20 4c 44 52 20 20 20 20 20 52 33 2c | LDR R3,| 000027b0 5b 52 31 32 2c 23 74 6d 68 61 6e 64 6c 65 5d 0d |[R12,#tmhandle].| 000027c0 0c 6c 23 20 20 20 20 20 20 20 20 4c 44 52 20 20 |.l# LDR | 000027d0 20 20 20 52 34 2c 74 6d 66 69 6c 74 65 72 6d 61 | R4,tmfilterma| 000027e0 73 6b 0d 0c 76 32 20 20 20 20 20 20 20 20 53 57 |sk..v2 SW| 000027f0 49 20 20 20 20 20 22 58 46 69 6c 74 65 72 5f 44 |I "XFilter_D| 00002800 65 52 65 67 69 73 74 65 72 50 6f 73 74 46 69 6c |eRegisterPostFil| 00002810 74 65 72 22 0d 0c 80 29 20 20 20 20 20 20 20 20 |ter"...) | 00002820 4c 44 52 56 43 20 20 20 52 31 2c 5b 52 31 32 2c |LDRVC R1,[R12,| 00002830 23 6d 6f 64 75 6c 65 66 6c 61 67 73 5d 0d 0c 8a |#moduleflags]...| 00002840 2c 20 20 20 20 20 20 20 20 42 49 43 56 43 20 20 |, BICVC | 00002850 20 52 31 2c 52 31 2c 23 74 6d 66 69 6c 74 65 72 | R1,R1,#tmfilter| 00002860 69 6e 73 74 61 6c 6c 65 64 0d 0c 94 29 20 20 20 |installed...) | 00002870 20 20 20 20 20 53 54 52 56 43 20 20 20 52 31 2c | STRVC R1,| 00002880 5b 52 31 32 2c 23 6d 6f 64 75 6c 65 66 6c 61 67 |[R12,#moduleflag| 00002890 73 5d 0d 0c 9e 21 20 20 20 20 20 20 20 20 4c 44 |s]...! LD| 000028a0 4d 46 44 20 20 20 28 73 70 29 21 2c 7b 52 30 2c |MFD (sp)!,{R0,| 000028b0 70 63 7d 0d 0c a8 04 0d 0c b2 11 2e 74 6d 66 69 |pc}.........tmfi| 000028c0 6c 74 65 72 6e 61 6d 65 0d 0c bc 1c 20 20 20 20 |ltername.... | 000028d0 20 20 20 20 45 51 55 53 20 20 20 20 22 53 65 74 | EQUS "Set| 000028e0 43 53 44 22 0d 0c c6 15 20 20 20 20 20 20 20 20 |CSD".... | 000028f0 45 51 55 42 20 20 20 20 30 0d 0c d0 11 20 20 20 |EQUB 0.... | 00002900 20 20 20 20 20 41 4c 49 47 4e 0d 0c da 04 0d 0c | ALIGN......| 00002910 e4 4c 2e 70 61 66 69 6c 74 65 72 69 6e 73 74 61 |.L.pafilterinsta| 00002920 6c 6c 20 20 20 20 20 20 20 20 20 20 20 20 20 20 |ll | 00002930 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3b | ;| 00002940 20 70 61 73 73 20 70 61 20 74 61 73 6b 20 68 61 | pass pa task ha| 00002950 6e 64 6c 65 20 69 6e 20 52 33 0d 0c ee 23 20 20 |ndle in R3...# | 00002960 20 20 20 20 20 20 53 54 4d 46 44 20 20 20 28 73 | STMFD (s| 00002970 70 29 21 2c 7b 52 30 2c 6c 69 6e 6b 7d 0d 0c f8 |p)!,{R0,link}...| 00002980 29 20 20 20 20 20 20 20 20 4c 44 52 20 20 20 20 |) LDR | 00002990 20 52 31 2c 5b 52 31 32 2c 23 6d 6f 64 75 6c 65 | R1,[R12,#module| 000029a0 66 6c 61 67 73 5d 0d 0d 02 29 20 20 20 20 20 20 |flags]...) | 000029b0 20 20 54 53 54 20 20 20 20 20 52 31 2c 23 70 61 | TST R1,#pa| 000029c0 66 69 6c 74 65 72 69 6e 73 74 61 6c 6c 65 64 0d |filterinstalled.| 000029d0 0d 0c 51 20 20 20 20 20 20 20 20 4c 44 4d 4e 45 |..Q LDMNE| 000029e0 46 44 20 28 73 70 29 21 2c 7b 52 30 2c 70 63 7d |FD (sp)!,{R0,pc}| 000029f0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3b | ;| 00002a00 20 69 66 20 61 6c 72 65 61 64 79 20 69 6e 73 74 | if already inst| 00002a10 61 6c 6c 65 64 2c 20 6a 75 73 74 20 65 78 69 74 |alled, just exit| 00002a20 0d 0d 16 21 20 20 20 20 20 20 20 20 54 53 54 20 |...! TST | 00002a30 20 20 20 20 52 31 2c 23 69 63 6f 6e 73 70 72 6f | R1,#iconspro| 00002a40 6e 0d 0d 20 47 20 20 20 20 20 20 20 20 4c 44 4d |n.. G LDM| 00002a50 45 51 46 44 20 28 73 70 29 21 2c 7b 52 30 2c 70 |EQFD (sp)!,{R0,p| 00002a60 63 7d 20 20 20 20 20 20 20 20 20 20 20 20 20 20 |c} | 00002a70 20 3b 20 69 66 20 6e 6f 74 20 73 65 6c 65 63 74 | ; if not select| 00002a80 65 64 2c 20 65 78 69 74 0d 0d 2a 23 20 20 20 20 |ed, exit..*# | 00002a90 20 20 20 20 41 44 52 20 20 20 20 20 52 30 2c 70 | ADR R0,p| 00002aa0 61 66 69 6c 74 65 72 6e 61 6d 65 0d 0d 34 23 20 |afiltername..4# | 00002ab0 20 20 20 20 20 20 20 41 44 52 20 20 20 20 20 52 | ADR R| 00002ac0 31 2c 70 61 66 69 6c 74 65 72 63 6f 64 65 0d 0d |1,pafiltercode..| 00002ad0 3e 50 20 20 20 20 20 20 20 20 4d 4f 56 20 20 20 |>P MOV | 00002ae0 20 20 52 32 2c 52 31 32 20 20 20 20 20 20 20 20 | R2,R12 | 00002af0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3b | ;| 00002b00 20 6e 6f 74 65 20 70 61 73 73 65 73 20 77 6f 72 | note passes wor| 00002b10 6b 73 70 61 63 65 20 70 6f 69 6e 74 65 72 0d 0d |kspace pointer..| 00002b20 48 4e 20 20 20 20 20 20 20 20 4c 44 52 20 20 20 |HN LDR | 00002b30 20 20 52 34 2c 70 61 66 69 6c 74 65 72 6d 61 73 | R4,pafiltermas| 00002b40 6b 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3b |k ;| 00002b50 20 6e 6f 74 20 70 72 69 76 61 74 65 20 77 6f 72 | not private wor| 00002b60 64 20 70 6f 69 6e 74 65 72 20 61 73 0d 0d 52 39 |d pointer as..R9| 00002b70 20 20 20 20 20 20 20 20 53 57 49 20 20 20 20 20 | SWI | 00002b80 22 58 46 69 6c 74 65 72 5f 52 65 67 69 73 74 65 |"XFilter_Registe| 00002b90 72 50 6f 73 74 46 69 6c 74 65 72 22 20 3b 20 62 |rPostFilter" ; b| 00002ba0 65 66 6f 72 65 0d 0d 5c 26 20 20 20 20 20 20 20 |efore..\& | 00002bb0 20 53 54 52 56 43 20 20 20 52 33 2c 5b 52 31 32 | STRVC R3,[R12| 00002bc0 2c 23 70 61 68 61 6e 64 6c 65 5d 0d 0d 66 29 20 |,#pahandle]..f) | 00002bd0 20 20 20 20 20 20 20 4c 44 52 56 43 20 20 20 52 | LDRVC R| 00002be0 31 2c 5b 52 31 32 2c 23 6d 6f 64 75 6c 65 66 6c |1,[R12,#modulefl| 00002bf0 61 67 73 5d 0d 0d 70 2b 20 20 20 20 20 20 20 20 |ags]..p+ | 00002c00 84 52 56 43 20 20 20 52 31 2c 52 31 2c 23 70 61 |.RVC R1,R1,#pa| 00002c10 66 69 6c 74 65 72 69 6e 73 74 61 6c 6c 65 64 0d |filterinstalled.| 00002c20 0d 7a 29 20 20 20 20 20 20 20 20 53 54 52 56 43 |.z) STRVC| 00002c30 20 20 20 52 31 2c 5b 52 31 32 2c 23 6d 6f 64 75 | R1,[R12,#modu| 00002c40 6c 65 66 6c 61 67 73 5d 0d 0d 84 21 20 20 20 20 |leflags]...! | 00002c50 20 20 20 20 4c 44 4d 46 44 20 20 20 28 73 70 29 | LDMFD (sp)| 00002c60 21 2c 7b 52 30 2c 70 63 7d 0d 0d 8e 04 0d 0d 98 |!,{R0,pc}.......| 00002c70 13 2e 70 61 66 69 6c 74 65 72 72 65 6d 6f 76 65 |..pafilterremove| 00002c80 0d 0d a2 23 20 20 20 20 20 20 20 20 53 54 4d 46 |...# STMF| 00002c90 44 20 20 20 28 73 70 29 21 2c 7b 52 30 2c 6c 69 |D (sp)!,{R0,li| 00002ca0 6e 6b 7d 0d 0d ac 29 20 20 20 20 20 20 20 20 4c |nk}...) L| 00002cb0 44 52 20 20 20 20 20 52 31 2c 5b 52 31 32 2c 23 |DR R1,[R12,#| 00002cc0 6d 6f 64 75 6c 65 66 6c 61 67 73 5d 0d 0d b6 29 |moduleflags]...)| 00002cd0 20 20 20 20 20 20 20 20 54 53 54 20 20 20 20 20 | TST | 00002ce0 52 31 2c 23 70 61 66 69 6c 74 65 72 69 6e 73 74 |R1,#pafilterinst| 00002cf0 61 6c 6c 65 64 0d 0d c0 4d 20 20 20 20 20 20 20 |alled...M | 00002d00 20 4c 44 4d 45 51 46 44 20 28 73 70 29 21 2c 7b | LDMEQFD (sp)!,{| 00002d10 52 30 2c 70 63 7d 20 20 20 20 20 20 20 20 20 20 |R0,pc} | 00002d20 20 20 20 20 20 3b 20 69 66 20 6e 6f 74 20 69 6e | ; if not in| 00002d30 73 74 61 6c 6c 65 64 2c 20 6a 75 73 74 20 65 78 |stalled, just ex| 00002d40 69 74 0d 0d ca 23 20 20 20 20 20 20 20 20 41 44 |it...# AD| 00002d50 52 20 20 20 20 20 52 30 2c 70 61 66 69 6c 74 65 |R R0,pafilte| 00002d60 72 6e 61 6d 65 0d 0d d4 23 20 20 20 20 20 20 20 |rname...# | 00002d70 20 41 44 52 20 20 20 20 20 52 31 2c 70 61 66 69 | ADR R1,pafi| 00002d80 6c 74 65 72 63 6f 64 65 0d 0d de 1a 20 20 20 20 |ltercode.... | 00002d90 20 20 20 20 4d 4f 56 20 20 20 20 20 52 32 2c 52 | MOV R2,R| 00002da0 31 32 0d 0d e8 26 20 20 20 20 20 20 20 20 4c 44 |12...& LD| 00002db0 52 20 20 20 20 20 52 33 2c 5b 52 31 32 2c 23 70 |R R3,[R12,#p| 00002dc0 61 68 61 6e 64 6c 65 5d 0d 0d f2 23 20 20 20 20 |ahandle]...# | 00002dd0 20 20 20 20 4c 44 52 20 20 20 20 20 52 34 2c 70 | LDR R4,p| 00002de0 61 66 69 6c 74 65 72 6d 61 73 6b 0d 0d fc 32 20 |afiltermask...2 | 00002df0 20 20 20 20 20 20 20 53 57 49 20 20 20 20 20 22 | SWI "| 00002e00 58 46 69 6c 74 65 72 5f 44 65 52 65 67 69 73 74 |XFilter_DeRegist| 00002e10 65 72 50 6f 73 74 46 69 6c 74 65 72 22 0d 0e 06 |erPostFilter"...| 00002e20 29 20 20 20 20 20 20 20 20 4c 44 52 56 43 20 20 |) LDRVC | 00002e30 20 52 31 2c 5b 52 31 32 2c 23 6d 6f 64 75 6c 65 | R1,[R12,#module| 00002e40 66 6c 61 67 73 5d 0d 0e 10 2c 20 20 20 20 20 20 |flags]..., | 00002e50 20 20 42 49 43 56 43 20 20 20 52 31 2c 52 31 2c | BICVC R1,R1,| 00002e60 23 70 61 66 69 6c 74 65 72 69 6e 73 74 61 6c 6c |#pafilterinstall| 00002e70 65 64 0d 0e 1a 29 20 20 20 20 20 20 20 20 53 54 |ed...) ST| 00002e80 52 56 43 20 20 20 52 31 2c 5b 52 31 32 2c 23 6d |RVC R1,[R12,#m| 00002e90 6f 64 75 6c 65 66 6c 61 67 73 5d 0d 0e 24 21 20 |oduleflags]..$! | 00002ea0 20 20 20 20 20 20 20 4c 44 4d 46 44 20 20 20 28 | LDMFD (| 00002eb0 73 70 29 21 2c 7b 52 30 2c 70 63 7d 0d 0e 2e 04 |sp)!,{R0,pc}....| 00002ec0 0d 0e 38 11 2e 70 61 66 69 6c 74 65 72 6e 61 6d |..8..pafilternam| 00002ed0 65 0d 0e 42 1d 20 20 20 20 20 20 20 20 45 51 55 |e..B. EQU| 00002ee0 53 20 20 20 20 22 49 63 6f 6e 53 70 72 22 0d 0e |S "IconSpr"..| 00002ef0 4c 15 20 20 20 20 20 20 20 20 45 51 55 42 20 20 |L. EQUB | 00002f00 20 20 30 0d 0e 56 11 20 20 20 20 20 20 20 20 41 | 0..V. A| 00002f10 4c 49 47 4e 0d 0e 60 04 0d 0e 6a 11 2e 70 61 66 |LIGN..`...j..paf| 00002f20 69 6c 74 65 72 63 6f 64 65 0d 0e 74 27 20 20 20 |iltercode..t' | 00002f30 20 20 20 20 20 53 54 4d 46 44 20 20 20 28 73 70 | STMFD (sp| 00002f40 29 21 2c 7b 52 31 2d 52 31 31 2c 6c 69 6e 6b 7d |)!,{R1-R11,link}| 00002f50 0d 0e 7e 1a 20 20 20 20 20 20 20 20 54 45 51 20 |..~. TEQ | 00002f60 20 20 20 20 52 30 2c 23 31 38 0d 0e 88 25 20 20 | R0,#18...% | 00002f70 20 20 20 20 20 20 42 45 51 20 20 20 20 20 70 61 | BEQ pa| 00002f80 6d 65 73 73 61 67 65 72 65 63 65 69 76 65 64 0d |messagereceived.| 00002f90 0e 92 3e 20 20 20 20 20 20 20 20 54 45 51 20 20 |..> TEQ | 00002fa0 20 20 20 52 30 2c 23 36 20 20 20 20 20 20 20 20 | R0,#6 | 00002fb0 20 20 20 20 20 20 20 20 3b 20 6d 6f 75 73 65 20 | ; mouse | 00002fc0 63 6c 69 63 6b 20 72 6f 75 74 69 6e 65 0d 0e 9c |click routine...| 00002fd0 1f 20 20 20 20 20 20 20 20 4c 44 52 45 51 20 20 |. LDREQ | 00002fe0 20 52 32 2c 5b 52 31 2c 23 31 32 5d 0d 0e a6 19 | R2,[R1,#12]....| 00002ff0 20 20 20 20 20 20 20 20 43 4d 4e 45 51 20 20 20 | CMNEQ | 00003000 52 32 2c 23 32 0d 0e b0 1e 20 20 20 20 20 20 20 |R2,#2.... | 00003010 20 4c 44 52 45 51 20 20 20 52 32 2c 5b 52 31 2c | LDREQ R2,[R1,| 00003020 23 38 5d 0d 0e ba 19 20 20 20 20 20 20 20 20 43 |#8].... C| 00003030 4d 50 45 51 20 20 20 52 32 2c 23 31 0d 0e c4 1f |MPEQ R2,#1....| 00003040 20 20 20 20 20 20 20 20 42 4c 45 51 20 20 20 20 | BLEQ | 00003050 66 6f 72 63 65 72 65 64 72 61 77 0d 0e ce 1d 20 |forceredraw.... | 00003060 20 20 20 20 20 20 20 42 20 20 20 20 20 20 20 65 | B e| 00003070 6e 64 66 69 6c 74 65 72 0d 0e d8 04 0d 0e e2 16 |ndfilter........| 00003080 2e 70 61 6d 65 73 73 61 67 65 72 65 63 65 69 76 |.pamessagereceiv| 00003090 65 64 0d 0e ec 1f 20 20 20 20 20 20 20 20 4c 44 |ed.... LD| 000030a0 52 20 20 20 20 20 52 32 2c 5b 52 31 2c 23 31 36 |R R2,[R1,#16| 000030b0 5d 0d 0e f6 19 20 20 20 20 20 20 20 20 43 4d 50 |].... CMP| 000030c0 20 20 20 20 20 52 32 2c 23 33 0d 0f 00 1d 20 20 | R2,#3.... | 000030d0 20 20 20 20 20 20 42 4e 45 20 20 20 20 20 65 6e | BNE en| 000030e0 64 66 69 6c 74 65 72 0d 0f 0a 1f 20 20 20 20 20 |dfilter.... | 000030f0 20 20 20 4c 44 52 20 20 20 20 20 52 32 2c 5b 52 | LDR R2,[R| 00003100 31 2c 23 34 30 5d 0d 0f 14 1c 20 20 20 20 20 20 |1,#40].... | 00003110 20 20 4d 4f 56 20 20 20 20 20 52 33 2c 23 26 66 | MOV R3,#&f| 00003120 66 30 0d 0f 1e 1c 20 20 20 20 20 20 20 20 41 44 |f0.... AD| 00003130 44 20 20 20 20 20 52 33 2c 52 33 2c 23 39 0d 0f |D R3,R3,#9..| 00003140 28 19 20 20 20 20 20 20 20 20 43 4d 50 20 20 20 |(. CMP | 00003150 20 20 52 32 2c 52 33 0d 0f 32 1d 20 20 20 20 20 | R2,R3..2. | 00003160 20 20 20 42 4e 45 20 20 20 20 20 65 6e 64 66 69 | BNE endfi| 00003170 6c 74 65 72 0d 0f 3c 1e 20 20 20 20 20 20 20 20 |lter..<. | 00003180 53 54 4d 46 44 20 20 20 28 73 70 29 21 2c 7b 52 |STMFD (sp)!,{R| 00003190 31 7d 0d 0f 46 1b 20 20 20 20 20 20 20 20 4d 4f |1}..F. MO| 000031a0 56 20 20 20 20 20 52 30 2c 23 31 32 39 0d 0f 50 |V R0,#129..P| 000031b0 21 20 20 20 20 20 20 20 20 4d 4f 56 20 20 20 20 |! MOV | 000031c0 20 52 31 2c 23 28 26 46 46 20 82 20 30 29 0d 0f | R1,#(&FF . 0)..| 000031d0 5a 1b 20 20 20 20 20 20 20 20 4d 4f 56 20 20 20 |Z. MOV | 000031e0 20 20 52 32 2c 23 26 46 46 0d 0f 64 1e 20 20 20 | R2,#&FF..d. | 000031f0 20 20 20 20 20 53 57 49 20 20 20 20 20 22 58 4f | SWI "XO| 00003200 53 5f 42 79 74 65 22 0d 0f 6e 1b 20 20 20 20 20 |S_Byte"..n. | 00003210 20 20 20 43 4d 50 20 20 20 20 20 52 31 2c 23 26 | CMP R1,#&| 00003220 46 46 0d 0f 78 1e 20 20 20 20 20 20 20 20 4c 44 |FF..x. LD| 00003230 4d 46 44 20 20 20 28 73 70 29 21 2c 7b 52 31 7d |MFD (sp)!,{R1}| 00003240 0d 0f 82 1f 20 20 20 20 20 20 20 20 42 45 51 20 |.... BEQ | 00003250 20 20 20 20 74 6f 6f 6c 73 70 72 69 74 65 73 0d | toolsprites.| 00003260 0f 8c 1a 20 20 20 20 20 20 20 20 4d 4f 56 20 20 |... MOV | 00003270 20 20 20 52 30 2c 23 31 31 0d 0f 96 1d 20 20 20 | R0,#11.... | 00003280 20 20 20 20 20 41 44 44 20 20 20 20 20 52 32 2c | ADD R2,| 00003290 52 31 2c 23 34 34 0d 0f a0 24 20 20 20 20 20 20 |R1,#44...$ | 000032a0 20 20 53 57 49 20 20 20 20 20 22 58 57 69 6d 70 | SWI "XWimp| 000032b0 5f 53 70 72 69 74 65 4f 70 22 0d 0f aa 3c 20 20 |_SpriteOp"...< | 000032c0 20 20 20 20 20 20 42 56 53 20 20 20 20 20 73 70 | BVS sp| 000032d0 72 69 74 65 6f 70 65 72 72 6f 72 20 20 20 20 20 |riteoperror | 000032e0 3a 20 f4 20 8a 8a 20 66 61 6c 6c 20 74 68 72 6f |: . .. fall thro| 000032f0 75 67 68 20 8a 8a 0d 0f b4 04 0d 0f be 14 2e 73 |ugh ...........s| 00003300 65 6e 64 64 61 74 61 6c 6f 61 64 61 63 6b 0d 0f |enddataloadack..| 00003310 c8 1f 20 20 20 20 20 20 20 20 42 4c 20 20 20 20 |.. BL | 00003320 20 20 66 6f 72 63 65 72 65 64 72 61 77 0d 0f d2 | forceredraw...| 00003330 19 20 20 20 20 20 20 20 20 4d 4f 56 20 20 20 20 |. MOV | 00003340 20 52 32 2c 23 34 0d 0f dc 1f 20 20 20 20 20 20 | R2,#4.... | 00003350 20 20 53 54 52 20 20 20 20 20 52 32 2c 5b 52 31 | STR R2,[R1| 00003360 2c 23 31 36 5d 0d 0f e6 1e 20 20 20 20 20 20 20 |,#16].... | 00003370 20 4c 44 52 20 20 20 20 20 52 32 2c 5b 52 31 2c | LDR R2,[R1,| 00003380 23 38 5d 0d 0f f0 1f 20 20 20 20 20 20 20 20 53 |#8].... S| 00003390 54 52 20 20 20 20 20 52 32 2c 5b 52 31 2c 23 31 |TR R2,[R1,#1| 000033a0 32 5d 0d 0f fa 1a 20 20 20 20 20 20 20 20 4d 4f |2].... MO| 000033b0 56 20 20 20 20 20 52 30 2c 23 31 37 0d 10 04 1e |V R0,#17....| 000033c0 20 20 20 20 20 20 20 20 4c 44 52 20 20 20 20 20 | LDR | 000033d0 52 32 2c 5b 52 31 2c 23 34 5d 0d 10 0e 27 20 20 |R2,[R1,#4]...' | 000033e0 20 20 20 20 20 20 53 57 49 20 20 20 20 20 22 58 | SWI "X| 000033f0 57 69 6d 70 5f 53 65 6e 64 4d 65 73 73 61 67 65 |Wimp_SendMessage| 00003400 22 0d 10 18 1e 20 20 20 20 20 20 20 20 4d 56 4e |".... MVN| 00003410 20 20 20 20 20 52 30 2c 23 28 ac 20 2d 31 29 0d | R0,#(. -1).| 00003420 10 22 1d 20 20 20 20 20 20 20 20 42 20 20 20 20 |.". B | 00003430 20 20 20 65 6e 64 66 69 6c 74 65 72 0d 10 2c 04 | endfilter..,.| 00003440 0d 10 36 12 2e 73 70 72 69 74 65 6f 70 65 72 72 |..6..spriteoperr| 00003450 6f 72 0d 10 40 20 20 20 20 20 20 20 20 20 4d 4f |or..@ MO| 00003460 56 20 20 20 20 20 52 31 2c 23 25 30 30 30 31 30 |V R1,#%00010| 00003470 31 30 0d 10 4a 1d 20 20 20 20 20 20 20 20 41 44 |10..J. AD| 00003480 52 20 20 20 20 20 52 32 2c 70 61 6e 61 6d 65 0d |R R2,paname.| 00003490 10 54 27 20 20 20 20 20 20 20 20 53 57 49 20 20 |.T' SWI | 000034a0 20 20 20 22 58 57 69 6d 70 5f 52 65 70 6f 72 74 | "XWimp_Report| 000034b0 45 72 72 6f 72 22 0d 10 5e 1e 20 20 20 20 20 20 |Error"..^. | 000034c0 20 20 4d 56 4e 20 20 20 20 20 52 30 2c 23 28 ac | MVN R0,#(.| 000034d0 20 2d 31 29 0d 10 68 1d 20 20 20 20 20 20 20 20 | -1)..h. | 000034e0 42 20 20 20 20 20 20 20 65 6e 64 66 69 6c 74 65 |B endfilte| 000034f0 72 0d 10 72 04 0d 10 7c 10 2e 74 6f 6f 6c 73 70 |r..r...|..toolsp| 00003500 72 69 74 65 73 0d 10 86 26 20 20 20 20 20 20 20 |rites...& | 00003510 20 41 44 52 20 20 20 20 20 52 32 2c 74 6f 6f 6c | ADR R2,tool| 00003520 73 70 72 69 74 65 73 74 61 72 74 0d 10 90 31 20 |spritestart...1 | 00003530 20 20 20 20 20 20 20 41 44 44 20 20 20 20 20 52 | ADD R| 00003540 33 2c 52 31 2c 23 28 34 34 2d a9 28 22 54 6f 6f |3,R1,#(44-.("Too| 00003550 6c 53 70 72 69 74 65 73 20 22 29 29 0d 10 9a 19 |lSprites "))....| 00003560 20 20 20 20 20 20 20 20 4d 4f 56 20 20 20 20 20 | MOV | 00003570 52 30 2c 52 33 0d 10 a4 1e 20 20 20 20 20 20 20 |R0,R3.... | 00003580 20 42 4c 20 20 20 20 20 20 73 74 72 69 6e 67 63 | BL stringc| 00003590 6f 70 79 0d 10 ae 1d 20 20 20 20 20 20 20 20 53 |opy.... S| 000035a0 57 49 20 20 20 20 20 22 58 4f 53 5f 43 4c 49 22 |WI "XOS_CLI"| 000035b0 0d 10 b8 21 20 20 20 20 20 20 20 20 42 56 53 20 |...! BVS | 000035c0 20 20 20 20 73 70 72 69 74 65 6f 70 65 72 72 6f | spriteoperro| 000035d0 72 0d 10 c2 23 20 20 20 20 20 20 20 20 42 20 20 |r...# B | 000035e0 20 20 20 20 20 73 65 6e 64 64 61 74 61 6c 6f 61 | senddataloa| 000035f0 64 61 63 6b 0d 10 cc 04 0d 10 d6 0f 2e 73 74 72 |dack.........str| 00003600 69 6e 67 63 6f 70 79 0d 10 e0 23 20 20 20 20 20 |ingcopy...# | 00003610 20 20 20 53 54 4d 46 44 20 20 20 28 73 70 29 21 | STMFD (sp)!| 00003620 2c 7b 52 30 2c 6c 69 6e 6b 7d 0d 10 ea 13 2e 73 |,{R0,link}.....s| 00003630 74 72 69 6e 67 63 6f 70 79 6c 6f 6f 70 0d 10 f4 |tringcopyloop...| 00003640 1e 20 20 20 20 20 20 20 20 4c 44 52 42 20 20 20 |. LDRB | 00003650 20 52 30 2c 5b 52 32 5d 2c 23 31 0d 10 fe 1a 20 | R0,[R2],#1.... | 00003660 20 20 20 20 20 20 20 43 4d 50 20 20 20 20 20 52 | CMP R| 00003670 30 2c 23 33 32 0d 11 08 1e 20 20 20 20 20 20 20 |0,#32.... | 00003680 20 53 54 52 47 45 42 20 20 52 30 2c 5b 52 33 5d | STRGEB R0,[R3]| 00003690 2c 23 31 0d 11 12 22 20 20 20 20 20 20 20 20 42 |,#1..." B| 000036a0 47 45 20 20 20 20 20 73 74 72 69 6e 67 63 6f 70 |GE stringcop| 000036b0 79 6c 6f 6f 70 0d 11 1c 21 20 20 20 20 20 20 20 |yloop...! | 000036c0 20 4c 44 4d 46 44 20 20 20 28 73 70 29 21 2c 7b | LDMFD (sp)!,{| 000036d0 52 30 2c 70 63 7d 0d 11 26 04 0d 11 30 14 2e 74 |R0,pc}..&...0..t| 000036e0 6f 6f 6c 73 70 72 69 74 65 73 74 61 72 74 0d 11 |oolspritestart..| 000036f0 3a 22 20 20 20 20 20 20 20 20 45 51 55 53 20 20 |:" EQUS | 00003700 20 20 22 54 6f 6f 6c 53 70 72 69 74 65 73 20 22 | "ToolSprites "| 00003710 0d 11 44 15 20 20 20 20 20 20 20 20 45 51 55 42 |..D. EQUB| 00003720 20 20 20 20 30 0d 11 4e 11 20 20 20 20 20 20 20 | 0..N. | 00003730 20 41 4c 49 47 4e 0d 11 58 04 0d 11 62 10 2e 66 | ALIGN..X...b..f| 00003740 6f 72 63 65 72 65 64 72 61 77 0d 11 6c 23 20 20 |orceredraw..l# | 00003750 20 20 20 20 20 20 53 54 4d 46 44 20 20 20 28 73 | STMFD (s| 00003760 70 29 21 2c 7b 52 31 2c 6c 69 6e 6b 7d 0d 11 76 |p)!,{R1,link}..v| 00003770 1e 20 20 20 20 20 20 20 20 4d 56 4e 20 20 20 20 |. MVN | 00003780 20 52 30 2c 23 28 ac 20 2d 31 29 0d 11 80 19 20 | R0,#(. -1).... | 00003790 20 20 20 20 20 20 20 4d 4f 56 20 20 20 20 20 52 | MOV R| 000037a0 31 2c 23 30 0d 11 8a 19 20 20 20 20 20 20 20 20 |1,#0.... | 000037b0 4d 4f 56 20 20 20 20 20 52 32 2c 23 30 0d 11 94 |MOV R2,#0...| 000037c0 1d 20 20 20 20 20 20 20 20 42 4c 20 20 20 20 20 |. BL | 000037d0 20 73 63 72 65 65 6e 6d 61 78 0d 11 9e 27 20 20 | screenmax...' | 000037e0 20 20 20 20 20 20 53 57 49 20 20 20 20 20 22 58 | SWI "X| 000037f0 57 69 6d 70 5f 46 6f 72 63 65 52 65 64 72 61 77 |Wimp_ForceRedraw| 00003800 22 0d 11 a8 21 20 20 20 20 20 20 20 20 4c 44 4d |"...! LDM| 00003810 46 44 20 20 20 28 73 70 29 21 2c 7b 52 31 2c 70 |FD (sp)!,{R1,p| 00003820 63 7d 0d 11 b2 04 0d 11 bc 12 2e 67 65 74 74 61 |c}.........getta| 00003830 73 6b 68 61 6e 64 6c 65 0d 11 c6 20 20 20 20 20 |skhandle... | 00003840 20 20 20 20 53 54 4d 46 44 20 20 20 28 73 70 29 | STMFD (sp)| 00003850 21 2c 7b 6c 69 6e 6b 7d 0d 11 d0 19 20 20 20 20 |!,{link}.... | 00003860 20 20 20 20 4d 4f 56 20 20 20 20 20 52 30 2c 23 | MOV R0,#| 00003870 30 0d 11 da 0f 2e 6e 65 78 74 68 61 6e 64 6c 65 |0.....nexthandle| 00003880 0d 11 e4 54 20 20 20 20 20 20 20 20 41 44 44 20 |...T ADD | 00003890 20 20 20 20 52 31 2c 52 31 32 2c 23 70 6f 6c 6c | R1,R12,#poll| 000038a0 62 6c 6f 63 6b 20 20 20 20 20 20 20 20 20 20 20 |block | 000038b0 20 20 3b 20 75 73 65 20 70 6f 6c 6c 20 62 6c 6f | ; use poll blo| 000038c0 63 6b 20 61 73 20 62 75 66 66 65 72 20 66 6f 72 |ck as buffer for| 000038d0 20 53 57 49 0d 11 ee 1a 20 20 20 20 20 20 20 20 | SWI.... | 000038e0 4d 4f 56 20 20 20 20 20 52 32 2c 23 32 30 0d 11 |MOV R2,#20..| 000038f0 f8 31 20 20 20 20 20 20 20 20 53 57 49 20 20 20 |.1 SWI | 00003900 20 20 22 58 54 61 73 6b 4d 61 6e 61 67 65 72 5f | "XTaskManager_| 00003910 45 6e 75 6d 65 72 61 74 65 54 61 73 6b 73 22 0d |EnumerateTasks".| 00003920 12 02 1b 20 20 20 20 20 20 20 20 42 56 53 20 20 |... BVS | 00003930 20 20 20 6a 75 6d 70 6f 75 74 0d 12 0c 19 20 20 | jumpout.... | 00003940 20 20 20 20 20 20 43 4d 4e 20 20 20 20 20 52 30 | CMN R0| 00003950 2c 23 31 0d 12 16 1b 20 20 20 20 20 20 20 20 42 |,#1.... B| 00003960 45 51 20 20 20 20 20 6a 75 6d 70 6f 75 74 0d 12 |EQ jumpout..| 00003970 20 19 20 20 20 20 20 20 20 20 4d 4f 56 20 20 20 | . MOV | 00003980 20 20 52 36 2c 52 30 0d 12 2a 41 20 20 20 20 20 | R6,R0..*A | 00003990 20 20 20 4c 44 52 20 20 20 20 20 52 30 2c 5b 52 | LDR R0,[R| 000039a0 31 32 2c 23 28 70 6f 6c 6c 62 6c 6f 63 6b 2b 34 |12,#(pollblock+4| 000039b0 29 5d 20 20 20 20 20 20 3b 20 72 65 61 64 20 74 |)] ; read t| 000039c0 61 73 6b 20 6e 61 6d 65 0d 12 34 40 20 20 20 20 |ask name..4@ | 000039d0 20 20 20 20 4d 4f 56 20 20 20 20 20 52 33 2c 52 | MOV R3,R| 000039e0 34 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 |4 | 000039f0 20 20 20 20 20 20 3b 20 70 61 73 73 65 64 20 74 | ; passed t| 00003a00 61 73 6b 20 6e 61 6d 65 0d 12 3e 21 20 20 20 20 |ask name..>! | 00003a10 20 20 20 20 42 4c 20 20 20 20 20 20 73 74 72 69 | BL stri| 00003a20 6e 67 63 6f 6d 70 61 72 65 0d 12 48 19 20 20 20 |ngcompare..H. | 00003a30 20 20 20 20 20 4d 4f 56 20 20 20 20 20 52 30 2c | MOV R0,| 00003a40 52 36 0d 12 52 19 20 20 20 20 20 20 20 20 43 4d |R6..R. CM| 00003a50 50 20 20 20 20 20 52 33 2c 23 31 0d 12 5c 27 20 |P R3,#1..\' | 00003a60 20 20 20 20 20 20 20 4c 44 52 45 51 20 20 20 52 | LDREQ R| 00003a70 33 2c 5b 52 31 32 2c 23 70 6f 6c 6c 62 6c 6f 63 |3,[R12,#pollbloc| 00003a80 6b 5d 0d 12 66 1e 20 20 20 20 20 20 20 20 4c 44 |k]..f. LD| 00003a90 4d 45 51 46 44 20 28 73 70 29 21 2c 7b 70 63 7d |MEQFD (sp)!,{pc}| 00003aa0 0d 12 70 1e 20 20 20 20 20 20 20 20 42 20 20 20 |..p. B | 00003ab0 20 20 20 20 6e 65 78 74 68 61 6e 64 6c 65 0d 12 | nexthandle..| 00003ac0 7a 0c 2e 6a 75 6d 70 6f 75 74 0d 12 84 19 20 20 |z..jumpout.... | 00003ad0 20 20 20 20 20 20 4d 4f 56 20 20 20 20 20 52 33 | MOV R3| 00003ae0 2c 23 30 0d 12 8e 1e 20 20 20 20 20 20 20 20 4c |,#0.... L| 00003af0 44 4d 46 44 20 20 20 28 73 70 29 21 2c 7b 70 63 |DMFD (sp)!,{pc| 00003b00 7d 0d 12 98 04 0d 12 a2 4c 2e 66 61 66 69 6c 74 |}.......L.fafilt| 00003b10 65 72 69 6e 73 74 61 6c 6c 20 20 20 20 20 20 20 |erinstall | 00003b20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | | 00003b30 20 20 20 20 20 20 3b 20 70 61 73 73 20 70 61 20 | ; pass pa | 00003b40 74 61 73 6b 20 68 61 6e 64 6c 65 20 69 6e 20 52 |task handle in R| 00003b50 33 0d 12 ac 23 20 20 20 20 20 20 20 20 53 54 4d |3...# STM| 00003b60 46 44 20 20 20 28 73 70 29 21 2c 7b 52 30 2c 6c |FD (sp)!,{R0,l| 00003b70 69 6e 6b 7d 0d 12 b6 29 20 20 20 20 20 20 20 20 |ink}...) | 00003b80 4c 44 52 20 20 20 20 20 52 31 2c 5b 52 31 32 2c |LDR R1,[R12,| 00003b90 23 6d 6f 64 75 6c 65 66 6c 61 67 73 5d 0d 12 c0 |#moduleflags]...| 00003ba0 21 20 20 20 20 20 20 20 20 54 53 54 20 20 20 20 |! TST | 00003bb0 20 52 31 2c 23 63 6f 6e 66 69 72 6d 6f 6e 0d 12 | R1,#confirmon..| 00003bc0 ca 47 20 20 20 20 20 20 20 20 4c 44 4d 45 51 46 |.G LDMEQF| 00003bd0 44 20 28 73 70 29 21 2c 7b 52 30 2c 70 63 7d 20 |D (sp)!,{R0,pc} | 00003be0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3b 20 | ; | 00003bf0 69 66 20 6e 6f 74 20 73 65 6c 65 63 74 65 64 2c |if not selected,| 00003c00 20 65 78 69 74 0d 12 d4 29 20 20 20 20 20 20 20 | exit...) | 00003c10 20 54 53 54 20 20 20 20 20 52 31 2c 23 66 61 66 | TST R1,#faf| 00003c20 69 6c 74 65 72 69 6e 73 74 61 6c 6c 65 64 0d 12 |ilterinstalled..| 00003c30 de 53 20 20 20 20 20 20 20 20 42 45 51 20 20 20 |.S BEQ | 00003c40 20 20 66 61 64 6f 69 6e 73 74 61 6c 6c 20 20 20 | fadoinstall | 00003c50 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3b | ;| 00003c60 20 69 66 20 6e 6f 74 20 69 6e 73 74 61 6c 6c 65 | if not installe| 00003c70 64 2c 20 67 65 74 20 6f 6e 20 77 69 74 68 20 69 |d, get on with i| 00003c80 74 0d 12 e8 25 20 20 20 20 20 20 20 20 54 53 54 |t...% TST| 00003c90 20 20 20 20 20 52 31 2c 23 66 61 72 65 70 6c 61 | R1,#farepla| 00003ca0 63 65 61 62 6c 65 0d 12 f2 4c 20 20 20 20 20 20 |ceable...L | 00003cb0 20 20 4c 44 4d 45 51 46 44 20 28 73 70 29 21 2c | LDMEQFD (sp)!,| 00003cc0 7b 52 30 2c 70 63 7d 20 20 20 20 20 20 20 20 20 |{R0,pc} | 00003cd0 20 20 20 20 20 20 20 3b 20 69 66 20 6e 6f 74 20 | ; if not | 00003ce0 72 65 70 6c 61 63 65 61 62 6c 65 20 72 65 74 75 |replaceable retu| 00003cf0 72 6e 0d 12 fc 19 20 20 20 20 20 20 20 20 4d 4f |rn.... MO| 00003d00 56 20 20 20 20 20 52 30 2c 52 33 0d 13 06 51 20 |V R0,R3...Q | 00003d10 20 20 20 20 20 20 20 42 4c 20 20 20 20 20 20 66 | BL f| 00003d20 61 66 69 6c 74 65 72 72 65 6d 6f 76 65 20 20 20 |afilterremove | 00003d30 20 20 20 20 20 20 20 20 20 20 20 20 3b 20 69 66 | ; if| 00003d40 20 72 65 70 6c 61 63 61 62 6c 65 2c 20 72 65 6d | replacable, rem| 00003d50 6f 76 65 20 65 78 69 73 74 69 6e 67 0d 13 10 19 |ove existing....| 00003d60 20 20 20 20 20 20 20 20 4d 4f 56 20 20 20 20 20 | MOV | 00003d70 52 33 2c 52 30 0d 13 1a 10 2e 66 61 64 6f 69 6e |R3,R0.....fadoin| 00003d80 73 74 61 6c 6c 0d 13 24 23 20 20 20 20 20 20 20 |stall..$# | 00003d90 20 41 44 52 20 20 20 20 20 52 30 2c 66 61 66 69 | ADR R0,fafi| 00003da0 6c 74 65 72 6e 61 6d 65 0d 13 2e 23 20 20 20 20 |ltername...# | 00003db0 20 20 20 20 41 44 52 20 20 20 20 20 52 31 2c 66 | ADR R1,f| 00003dc0 61 66 69 6c 74 65 72 63 6f 64 65 0d 13 38 50 20 |afiltercode..8P | 00003dd0 20 20 20 20 20 20 20 4d 4f 56 20 20 20 20 20 52 | MOV R| 00003de0 32 2c 52 31 32 20 20 20 20 20 20 20 20 20 20 20 |2,R12 | 00003df0 20 20 20 20 20 20 20 20 20 20 20 20 3b 20 6e 6f | ; no| 00003e00 74 65 20 70 61 73 73 65 73 20 77 6f 72 6b 73 70 |te passes worksp| 00003e10 61 63 65 20 70 6f 69 6e 74 65 72 0d 13 42 4e 20 |ace pointer..BN | 00003e20 20 20 20 20 20 20 20 4c 44 52 20 20 20 20 20 52 | LDR R| 00003e30 34 2c 66 61 66 69 6c 74 65 72 6d 61 73 6b 20 20 |4,fafiltermask | 00003e40 20 20 20 20 20 20 20 20 20 20 20 20 3b 20 6e 6f | ; no| 00003e50 74 20 70 72 69 76 61 74 65 20 77 6f 72 64 20 70 |t private word p| 00003e60 6f 69 6e 74 65 72 20 61 73 0d 13 4c 39 20 20 20 |ointer as..L9 | 00003e70 20 20 20 20 20 53 57 49 20 20 20 20 20 22 58 46 | SWI "XF| 00003e80 69 6c 74 65 72 5f 52 65 67 69 73 74 65 72 50 6f |ilter_RegisterPo| 00003e90 73 74 46 69 6c 74 65 72 22 20 3b 20 62 65 66 6f |stFilter" ; befo| 00003ea0 72 65 0d 13 56 26 20 20 20 20 20 20 20 20 53 54 |re..V& ST| 00003eb0 52 56 43 20 20 20 52 33 2c 5b 52 31 32 2c 23 66 |RVC R3,[R12,#f| 00003ec0 61 68 61 6e 64 6c 65 5d 0d 13 60 29 20 20 20 20 |ahandle]..`) | 00003ed0 20 20 20 20 4c 44 52 56 43 20 20 20 52 31 2c 5b | LDRVC R1,[| 00003ee0 52 31 32 2c 23 6d 6f 64 75 6c 65 66 6c 61 67 73 |R12,#moduleflags| 00003ef0 5d 0d 13 6a 2b 20 20 20 20 20 20 20 20 84 52 56 |]..j+ .RV| 00003f00 43 20 20 20 52 31 2c 52 31 2c 23 66 61 66 69 6c |C R1,R1,#fafil| 00003f10 74 65 72 69 6e 73 74 61 6c 6c 65 64 0d 13 74 29 |terinstalled..t)| 00003f20 20 20 20 20 20 20 20 20 53 54 52 56 43 20 20 20 | STRVC | 00003f30 52 31 2c 5b 52 31 32 2c 23 6d 6f 64 75 6c 65 66 |R1,[R12,#modulef| 00003f40 6c 61 67 73 5d 0d 13 7e 21 20 20 20 20 20 20 20 |lags]..~! | 00003f50 20 4c 44 4d 46 44 20 20 20 28 73 70 29 21 2c 7b | LDMFD (sp)!,{| 00003f60 52 30 2c 70 63 7d 0d 13 88 04 0d 13 92 13 2e 66 |R0,pc}.........f| 00003f70 61 66 69 6c 74 65 72 72 65 6d 6f 76 65 0d 13 9c |afilterremove...| 00003f80 23 20 20 20 20 20 20 20 20 53 54 4d 46 44 20 20 |# STMFD | 00003f90 20 28 73 70 29 21 2c 7b 52 30 2c 6c 69 6e 6b 7d | (sp)!,{R0,link}| 00003fa0 0d 13 a6 29 20 20 20 20 20 20 20 20 4c 44 52 20 |...) LDR | 00003fb0 20 20 20 20 52 31 2c 5b 52 31 32 2c 23 6d 6f 64 | R1,[R12,#mod| 00003fc0 75 6c 65 66 6c 61 67 73 5d 0d 13 b0 29 20 20 20 |uleflags]...) | 00003fd0 20 20 20 20 20 54 53 54 20 20 20 20 20 52 31 2c | TST R1,| 00003fe0 23 66 61 66 69 6c 74 65 72 69 6e 73 74 61 6c 6c |#fafilterinstall| 00003ff0 65 64 0d 13 ba 4d 20 20 20 20 20 20 20 20 4c 44 |ed...M LD| 00004000 4d 45 51 46 44 20 28 73 70 29 21 2c 7b 52 30 2c |MEQFD (sp)!,{R0,| 00004010 70 63 7d 20 20 20 20 20 20 20 20 20 20 20 20 20 |pc} | 00004020 20 20 3b 20 69 66 20 6e 6f 74 20 69 6e 73 74 61 | ; if not insta| 00004030 6c 6c 65 64 2c 20 6a 75 73 74 20 65 78 69 74 0d |lled, just exit.| 00004040 13 c4 23 20 20 20 20 20 20 20 20 41 44 52 20 20 |..# ADR | 00004050 20 20 20 52 30 2c 66 61 66 69 6c 74 65 72 6e 61 | R0,fafilterna| 00004060 6d 65 0d 13 ce 23 20 20 20 20 20 20 20 20 41 44 |me...# AD| 00004070 52 20 20 20 20 20 52 31 2c 66 61 66 69 6c 74 65 |R R1,fafilte| 00004080 72 63 6f 64 65 0d 13 d8 1a 20 20 20 20 20 20 20 |rcode.... | 00004090 20 4d 4f 56 20 20 20 20 20 52 32 2c 52 31 32 0d | MOV R2,R12.| 000040a0 13 e2 26 20 20 20 20 20 20 20 20 4c 44 52 20 20 |..& LDR | 000040b0 20 20 20 52 33 2c 5b 52 31 32 2c 23 66 61 68 61 | R3,[R12,#faha| 000040c0 6e 64 6c 65 5d 0d 13 ec 23 20 20 20 20 20 20 20 |ndle]...# | 000040d0 20 4c 44 52 20 20 20 20 20 52 34 2c 66 61 66 69 | LDR R4,fafi| 000040e0 6c 74 65 72 6d 61 73 6b 0d 13 f6 32 20 20 20 20 |ltermask...2 | 000040f0 20 20 20 20 53 57 49 20 20 20 20 20 22 58 46 69 | SWI "XFi| 00004100 6c 74 65 72 5f 44 65 52 65 67 69 73 74 65 72 50 |lter_DeRegisterP| 00004110 6f 73 74 46 69 6c 74 65 72 22 0d 14 00 29 20 20 |ostFilter"...) | 00004120 20 20 20 20 20 20 4c 44 52 56 43 20 20 20 52 31 | LDRVC R1| 00004130 2c 5b 52 31 32 2c 23 6d 6f 64 75 6c 65 66 6c 61 |,[R12,#modulefla| 00004140 67 73 5d 0d 14 0a 2c 20 20 20 20 20 20 20 20 42 |gs]..., B| 00004150 49 43 56 43 20 20 20 52 31 2c 52 31 2c 23 66 61 |ICVC R1,R1,#fa| 00004160 66 69 6c 74 65 72 69 6e 73 74 61 6c 6c 65 64 0d |filterinstalled.| 00004170 14 14 28 20 20 20 20 20 20 20 20 42 49 43 56 43 |..( BICVC| 00004180 20 20 20 52 31 2c 52 31 2c 23 66 61 72 65 70 6c | R1,R1,#farepl| 00004190 61 63 65 61 62 6c 65 0d 14 1e 29 20 20 20 20 20 |aceable...) | 000041a0 20 20 20 53 54 52 56 43 20 20 20 52 31 2c 5b 52 | STRVC R1,[R| 000041b0 31 32 2c 23 6d 6f 64 75 6c 65 66 6c 61 67 73 5d |12,#moduleflags]| 000041c0 0d 14 28 21 20 20 20 20 20 20 20 20 4c 44 4d 46 |..(! LDMF| 000041d0 44 20 20 20 28 73 70 29 21 2c 7b 52 30 2c 70 63 |D (sp)!,{R0,pc| 000041e0 7d 0d 14 32 04 0d 14 3c 11 2e 66 61 66 69 6c 74 |}..2...<..fafilt| 000041f0 65 72 63 6f 64 65 0d 14 46 27 20 20 20 20 20 20 |ercode..F' | 00004200 20 20 53 54 4d 46 44 20 20 20 28 73 70 29 21 2c | STMFD (sp)!,| 00004210 7b 52 31 2d 52 31 31 2c 6c 69 6e 6b 7d 0d 14 50 |{R1-R11,link}..P| 00004220 1a 20 20 20 20 20 20 20 20 54 45 51 20 20 20 20 |. TEQ | 00004230 20 52 30 2c 23 31 37 0d 14 5a 1d 20 20 20 20 20 | R0,#17..Z. | 00004240 20 20 20 42 4e 45 20 20 20 20 20 65 6e 64 66 69 | BNE endfi| 00004250 6c 74 65 72 0d 14 64 1f 20 20 20 20 20 20 20 20 |lter..d. | 00004260 4c 44 52 20 20 20 20 20 52 33 2c 5b 52 31 2c 23 |LDR R3,[R1,#| 00004270 31 36 5d 0d 14 6e 1c 20 20 20 20 20 20 20 20 4d |16]..n. M| 00004280 4f 56 20 20 20 20 20 52 34 2c 23 26 34 30 30 0d |OV R4,#&400.| 00004290 14 78 1f 20 20 20 20 20 20 20 20 41 44 44 20 20 |.x. ADD | 000042a0 20 20 20 52 34 2c 52 34 2c 23 26 30 30 35 0d 14 | R4,R4,#&005..| 000042b0 82 19 20 20 20 20 20 20 20 20 54 45 51 20 20 20 |.. TEQ | 000042c0 20 20 52 33 2c 52 34 0d 14 8c 1d 20 20 20 20 20 | R3,R4.... | 000042d0 20 20 20 42 4e 45 20 20 20 20 20 65 6e 64 66 69 | BNE endfi| 000042e0 6c 74 65 72 0d 14 96 1f 20 20 20 20 20 20 20 20 |lter.... | 000042f0 4c 44 52 20 20 20 20 20 52 33 2c 5b 52 31 2c 23 |LDR R3,[R1,#| 00004300 32 30 5d 0d 14 a0 19 20 20 20 20 20 20 20 20 54 |20].... T| 00004310 45 51 20 20 20 20 20 52 33 2c 23 32 0d 14 aa 1f |EQ R3,#2....| 00004320 20 20 20 20 20 20 20 20 42 4e 45 20 20 20 20 20 | BNE | 00004330 65 6e 64 66 61 66 69 6c 74 65 72 0d 14 b4 1f 20 |endfafilter.... | 00004340 20 20 20 20 20 20 20 4c 44 52 20 20 20 20 20 52 | LDR R| 00004350 33 2c 5b 52 31 2c 23 32 34 5d 0d 14 be 20 20 20 |3,[R1,#24]... | 00004360 20 20 20 20 20 20 84 52 20 20 20 20 20 52 33 2c | .R R3,| 00004370 52 33 2c 23 25 30 30 30 31 30 0d 14 c8 1f 20 20 |R3,#%00010.... | 00004380 20 20 20 20 20 20 53 54 52 20 20 20 20 20 52 33 | STR R3| 00004390 2c 5b 52 31 2c 23 32 34 5d 0d 14 d2 10 2e 65 6e |,[R1,#24].....en| 000043a0 64 66 61 66 69 6c 74 65 72 0d 14 dc 29 20 20 20 |dfafilter...) | 000043b0 20 20 20 20 20 4c 44 52 20 20 20 20 20 52 33 2c | LDR R3,| 000043c0 5b 52 31 32 2c 23 6d 6f 64 75 6c 65 66 6c 61 67 |[R12,#moduleflag| 000043d0 73 5d 0d 14 e6 27 20 20 20 20 20 20 20 20 84 52 |s]...' .R| 000043e0 20 20 20 20 20 52 33 2c 52 33 2c 23 66 61 72 65 | R3,R3,#fare| 000043f0 70 6c 61 63 65 61 62 6c 65 0d 14 f0 29 20 20 20 |placeable...) | 00004400 20 20 20 20 20 53 54 52 20 20 20 20 20 52 33 2c | STR R3,| 00004410 5b 52 31 32 2c 23 6d 6f 64 75 6c 65 66 6c 61 67 |[R12,#moduleflag| 00004420 73 5d 0d 14 fa 1d 20 20 20 20 20 20 20 20 42 20 |s].... B | 00004430 20 20 20 20 20 20 65 6e 64 66 69 6c 74 65 72 0d | endfilter.| 00004440 15 04 04 0d 15 0e 11 2e 66 61 66 69 6c 74 65 72 |........fafilter| 00004450 6e 61 6d 65 0d 15 18 1d 20 20 20 20 20 20 20 20 |name.... | 00004460 45 51 55 53 20 20 20 20 22 43 6f 6e 66 69 72 6d |EQUS "Confirm| 00004470 22 0d 15 22 15 20 20 20 20 20 20 20 20 45 51 55 |"..". EQU| 00004480 42 20 20 20 20 30 0d 15 2c 11 20 20 20 20 20 20 |B 0..,. | 00004490 20 20 41 4c 49 47 4e 0d 15 36 04 0d 15 40 0b 2e | ALIGN..6...@..| 000044a0 74 6d 6e 61 6d 65 0d 15 4a 22 20 20 20 20 20 20 |tmname..J" | 000044b0 20 20 45 51 55 53 20 20 20 20 22 54 61 73 6b 20 | EQUS "Task | 000044c0 4d 61 6e 61 67 65 72 22 0d 15 54 15 20 20 20 20 |Manager"..T. | 000044d0 20 20 20 20 45 51 55 42 20 20 20 20 30 0d 15 5e | EQUB 0..^| 000044e0 11 20 20 20 20 20 20 20 20 41 4c 49 47 4e 0d 15 |. ALIGN..| 000044f0 68 04 0d 15 72 0b 2e 70 61 6e 61 6d 65 0d 15 7c |h...r..paname..|| 00004500 25 20 20 20 20 20 20 20 20 45 51 55 53 20 20 20 |% EQUS | 00004510 20 22 50 61 6c 65 74 74 65 20 55 74 69 6c 69 74 | "Palette Utilit| 00004520 79 22 0d 15 86 15 20 20 20 20 20 20 20 20 45 51 |y".... EQ| 00004530 55 42 20 20 20 20 30 0d 15 90 11 20 20 20 20 20 |UB 0.... | 00004540 20 20 20 41 4c 49 47 4e 0d 15 9a 04 0d 15 a4 0b | ALIGN........| 00004550 2e 66 61 6e 61 6d 65 0d 15 ae 29 20 20 20 20 20 |.faname...) | 00004560 20 20 20 45 51 55 53 20 20 20 20 22 46 69 6c 65 | EQUS "File| 00004570 72 20 41 63 74 69 6f 6e 20 57 69 6e 64 6f 77 22 |r Action Window"| 00004580 0d 15 b8 15 20 20 20 20 20 20 20 20 45 51 55 42 |.... EQUB| 00004590 20 20 20 20 30 0d 15 c2 11 20 20 20 20 20 20 20 | 0.... | 000045a0 20 41 4c 49 47 4e 0d 15 cc 04 0d 15 d6 11 2e 74 | ALIGN.........t| 000045b0 6d 66 69 6c 74 65 72 63 6f 64 65 0d 15 e0 27 20 |mfiltercode...' | 000045c0 20 20 20 20 20 20 20 53 54 4d 46 44 20 20 20 28 | STMFD (| 000045d0 73 70 29 21 2c 7b 52 31 2d 52 31 31 2c 6c 69 6e |sp)!,{R1-R11,lin| 000045e0 6b 7d 0d 15 ea 29 20 20 20 20 20 20 20 20 4c 44 |k}...) LD| 000045f0 52 20 20 20 20 20 52 33 2c 5b 52 31 32 2c 23 6d |R R3,[R12,#m| 00004600 6f 64 75 6c 65 66 6c 61 67 73 5d 0d 15 f4 27 20 |oduleflags]...' | 00004610 20 20 20 20 20 20 20 54 53 54 20 20 20 20 20 52 | TST R| 00004620 33 2c 23 74 6d 6d 65 73 73 61 67 65 73 61 64 64 |3,#tmmessagesadd| 00004630 65 64 0d 15 fe 21 20 20 20 20 20 20 20 20 42 4c |ed...! BL| 00004640 45 51 20 20 20 20 74 6d 61 64 64 6d 65 73 73 61 |EQ tmaddmessa| 00004650 67 65 73 0d 16 08 19 20 20 20 20 20 20 20 20 54 |ges.... T| 00004660 45 51 20 20 20 20 20 52 30 2c 23 36 0d 16 12 20 |EQ R0,#6... | 00004670 20 20 20 20 20 20 20 20 42 45 51 20 20 20 20 20 | BEQ | 00004680 74 6d 6d 6f 75 73 65 63 6c 69 63 6b 0d 16 1c 19 |tmmouseclick....| 00004690 20 20 20 20 20 20 20 20 54 45 51 20 20 20 20 20 | TEQ | 000046a0 52 30 2c 23 37 0d 16 26 1b 20 20 20 20 20 20 20 |R0,#7..&. | 000046b0 20 42 45 51 20 20 20 20 20 65 6e 64 64 72 61 67 | BEQ enddrag| 000046c0 0d 16 30 1a 20 20 20 20 20 20 20 20 54 45 51 20 |..0. TEQ | 000046d0 20 20 20 20 52 30 2c 23 31 37 0d 16 3a 1a 20 20 | R0,#17..:. | 000046e0 20 20 20 20 20 20 54 45 51 4e 45 20 20 20 52 30 | TEQNE R0| 000046f0 2c 23 31 38 0d 16 44 1a 20 20 20 20 20 20 20 20 |,#18..D. | 00004700 54 45 51 4e 45 20 20 20 52 30 2c 23 31 39 0d 16 |TEQNE R0,#19..| 00004710 4e 25 20 20 20 20 20 20 20 20 42 45 51 20 20 20 |N% BEQ | 00004720 20 20 74 6d 6d 65 73 73 61 67 65 72 65 63 65 69 | tmmessagerecei| 00004730 76 65 64 0d 16 58 0e 2e 65 6e 64 66 69 6c 74 65 |ved..X..endfilte| 00004740 72 0d 16 62 27 20 20 20 20 20 20 20 20 4c 44 4d |r..b' LDM| 00004750 46 44 20 20 20 28 73 70 29 21 2c 7b 52 31 2d 52 |FD (sp)!,{R1-R| 00004760 31 31 2c 6c 69 6e 6b 7d 0d 16 6c 1b 20 20 20 20 |11,link}..l. | 00004770 20 20 20 20 4d 4f 56 53 20 20 20 20 70 63 2c 6c | MOVS pc,l| 00004780 69 6e 6b 0d 16 76 04 0d 16 80 16 2e 74 6d 6d 65 |ink..v......tmme| 00004790 73 73 61 67 65 72 65 63 65 69 76 65 64 0d 16 8a |ssagereceived...| 000047a0 1f 20 20 20 20 20 20 20 20 4c 44 52 20 20 20 20 |. LDR | 000047b0 20 52 32 2c 5b 52 31 2c 23 31 36 5d 0d 16 94 19 | R2,[R1,#16]....| 000047c0 20 20 20 20 20 20 20 20 43 4d 50 20 20 20 20 20 | CMP | 000047d0 52 32 2c 23 31 0d 16 9e 1c 20 20 20 20 20 20 20 |R2,#1.... | 000047e0 20 42 45 51 20 20 20 20 20 72 65 74 75 72 6e 65 | BEQ returne| 000047f0 64 0d 16 a8 19 20 20 20 20 20 20 20 20 43 4d 50 |d.... CMP| 00004800 20 20 20 20 20 52 32 2c 23 32 0d 16 b2 1d 20 20 | R2,#2.... | 00004810 20 20 20 20 20 20 42 4e 45 20 20 20 20 20 65 6e | BNE en| 00004820 64 66 69 6c 74 65 72 0d 16 bc 29 20 20 20 20 20 |dfilter...) | 00004830 20 20 20 4c 44 52 20 20 20 20 20 52 32 2c 5b 52 | LDR R2,[R| 00004840 31 32 2c 23 6d 6f 64 75 6c 65 66 6c 61 67 73 5d |12,#moduleflags]| 00004850 0d 16 c6 21 20 20 20 20 20 20 20 20 54 53 54 20 |...! TST | 00004860 20 20 20 20 52 32 2c 23 74 6d 6f 77 6e 64 72 61 | R2,#tmowndra| 00004870 67 0d 16 d0 1d 20 20 20 20 20 20 20 20 42 45 51 |g.... BEQ| 00004880 20 20 20 20 20 65 6e 64 66 69 6c 74 65 72 0d 16 | endfilter..| 00004890 da 33 20 20 20 20 20 20 20 20 42 49 43 20 20 20 |.3 BIC | 000048a0 20 20 52 32 2c 52 32 2c 23 28 74 6d 6f 77 6e 64 | R2,R2,#(tmownd| 000048b0 72 61 67 20 84 20 74 6d 73 6f 6c 69 64 69 74 79 |rag . tmsolidity| 000048c0 29 0d 16 e4 29 20 20 20 20 20 20 20 20 53 54 52 |)...) STR| 000048d0 20 20 20 20 20 52 32 2c 5b 52 31 32 2c 23 6d 6f | R2,[R12,#mo| 000048e0 64 75 6c 65 66 6c 61 67 73 5d 0d 16 ee 1a 20 20 |duleflags].... | 000048f0 20 20 20 20 20 20 4d 4f 56 20 20 20 20 20 52 30 | MOV R0| 00004900 2c 23 34 33 0d 16 f8 0e 2e 67 65 74 73 74 72 69 |,#43.....getstri| 00004910 6e 67 0d 17 02 1c 20 20 20 20 20 20 20 20 41 44 |ng.... AD| 00004920 44 20 20 20 20 20 52 30 2c 52 30 2c 23 31 0d 17 |D R0,R0,#1..| 00004930 0c 1e 20 20 20 20 20 20 20 20 4c 44 52 42 20 20 |.. LDRB | 00004940 20 20 52 32 2c 5b 52 31 2c 52 30 5d 0d 17 16 1a | R2,[R1,R0]....| 00004950 20 20 20 20 20 20 20 20 43 4d 50 20 20 20 20 20 | CMP | 00004960 52 32 2c 23 33 32 0d 17 20 1d 20 20 20 20 20 20 |R2,#32.. . | 00004970 20 20 42 47 54 20 20 20 20 20 67 65 74 73 74 72 | BGT getstr| 00004980 69 6e 67 0d 17 2a 1c 20 20 20 20 20 20 20 20 53 |ing..*. S| 00004990 55 42 20 20 20 20 20 52 30 2c 52 30 2c 23 31 0d |UB R0,R0,#1.| 000049a0 17 34 1e 20 20 20 20 20 20 20 20 4c 44 52 42 20 |.4. LDRB | 000049b0 20 20 20 52 32 2c 5b 52 31 2c 52 30 5d 0d 17 3e | R2,[R1,R0]..>| 000049c0 1e 20 20 20 20 20 20 20 20 43 4d 50 20 20 20 20 |. CMP | 000049d0 20 52 32 2c 23 97 28 22 2e 22 29 0d 17 48 1d 20 | R2,#.(".")..H. | 000049e0 20 20 20 20 20 20 20 42 4e 45 20 20 20 20 20 65 | BNE e| 000049f0 6e 64 66 69 6c 74 65 72 0d 17 52 19 20 20 20 20 |ndfilter..R. | 00004a00 20 20 20 20 4d 4f 56 20 20 20 20 20 52 32 2c 23 | MOV R2,#| 00004a10 30 0d 17 5c 1e 20 20 20 20 20 20 20 20 53 54 52 |0..\. STR| 00004a20 42 20 20 20 20 52 32 2c 5b 52 31 2c 52 30 5d 0d |B R2,[R1,R0].| 00004a30 17 66 1d 20 20 20 20 20 20 20 20 41 44 44 20 20 |.f. ADD | 00004a40 20 20 20 52 31 2c 52 31 2c 23 34 34 0d 17 70 19 | R1,R1,#44..p.| 00004a50 20 20 20 20 20 20 20 20 4d 4f 56 20 20 20 20 20 | MOV | 00004a60 52 30 2c 23 30 0d 17 7a 23 20 20 20 20 20 20 20 |R0,#0..z# | 00004a70 20 53 57 49 20 20 20 20 20 22 58 4f 53 5f 46 53 | SWI "XOS_FS| 00004a80 43 6f 6e 74 72 6f 6c 22 0d 17 84 1e 20 20 20 20 |Control".... | 00004a90 20 20 20 20 4d 56 4e 20 20 20 20 20 52 30 2c 23 | MVN R0,#| 00004aa0 28 ac 20 2d 31 29 0d 17 8e 1d 20 20 20 20 20 20 |(. -1).... | 00004ab0 20 20 42 20 20 20 20 20 20 20 65 6e 64 66 69 6c | B endfil| 00004ac0 74 65 72 0d 17 98 04 0d 17 a2 0d 2e 72 65 74 75 |ter.........retu| 00004ad0 72 6e 65 64 0d 17 ac 1e 20 20 20 20 20 20 20 20 |rned.... | 00004ae0 4c 44 52 20 20 20 20 20 52 32 2c 5b 52 31 2c 23 |LDR R2,[R1,#| 00004af0 34 5d 0d 17 b6 26 20 20 20 20 20 20 20 20 4c 44 |4]...& LD| 00004b00 52 20 20 20 20 20 52 33 2c 5b 52 31 32 2c 23 74 |R R3,[R12,#t| 00004b10 6d 68 61 6e 64 6c 65 5d 0d 17 c0 19 20 20 20 20 |mhandle].... | 00004b20 20 20 20 20 43 4d 50 20 20 20 20 20 52 32 2c 52 | CMP R2,R| 00004b30 33 0d 17 ca 1d 20 20 20 20 20 20 20 20 42 4e 45 |3.... BNE| 00004b40 20 20 20 20 20 65 6e 64 66 69 6c 74 65 72 0d 17 | endfilter..| 00004b50 d4 29 20 20 20 20 20 20 20 20 4c 44 52 20 20 20 |.) LDR | 00004b60 20 20 52 32 2c 5b 52 31 32 2c 23 6d 6f 64 75 6c | R2,[R12,#modul| 00004b70 65 66 6c 61 67 73 5d 0d 17 de 21 20 20 20 20 20 |eflags]...! | 00004b80 20 20 20 54 53 54 20 20 20 20 20 52 32 2c 23 74 | TST R2,#t| 00004b90 6d 6f 77 6e 64 72 61 67 0d 17 e8 33 20 20 20 20 |mowndrag...3 | 00004ba0 20 20 20 20 42 49 43 4e 45 20 20 20 52 32 2c 52 | BICNE R2,R| 00004bb0 32 2c 23 28 74 6d 6f 77 6e 64 72 61 67 20 84 20 |2,#(tmowndrag . | 00004bc0 74 6d 73 6f 6c 69 64 69 74 79 29 0d 17 f2 29 20 |tmsolidity)...) | 00004bd0 20 20 20 20 20 20 20 53 54 52 4e 45 20 20 20 52 | STRNE R| 00004be0 32 2c 5b 52 31 32 2c 23 6d 6f 64 75 6c 65 66 6c |2,[R12,#modulefl| 00004bf0 61 67 73 5d 0d 17 fc 1e 20 20 20 20 20 20 20 20 |ags].... | 00004c00 4d 56 4e 4e 45 20 20 20 52 30 2c 23 28 ac 20 2d |MVNNE R0,#(. -| 00004c10 31 29 0d 18 06 1d 20 20 20 20 20 20 20 20 42 20 |1).... B | 00004c20 20 20 20 20 20 20 65 6e 64 66 69 6c 74 65 72 0d | endfilter.| 00004c30 18 10 04 0d 18 1a 12 2e 74 6d 61 64 64 6d 65 73 |........tmaddmes| 00004c40 73 61 67 65 73 0d 18 24 23 20 20 20 20 20 20 20 |sages..$# | 00004c50 20 53 54 4d 46 44 20 20 20 28 73 70 29 21 2c 7b | STMFD (sp)!,{| 00004c60 52 30 2c 6c 69 6e 6b 7d 0d 18 2e 29 20 20 20 20 |R0,link}...) | 00004c70 20 20 20 20 84 52 20 20 20 20 20 52 33 2c 52 33 | .R R3,R3| 00004c80 2c 23 74 6d 6d 65 73 73 61 67 65 73 61 64 64 65 |,#tmmessagesadde| 00004c90 64 0d 18 38 29 20 20 20 20 20 20 20 20 53 54 52 |d..8) STR| 00004ca0 20 20 20 20 20 52 33 2c 5b 52 31 32 2c 23 6d 6f | R3,[R12,#mo| 00004cb0 64 75 6c 65 66 6c 61 67 73 5d 0d 18 42 21 20 20 |duleflags]..B! | 00004cc0 20 20 20 20 20 20 41 44 52 20 20 20 20 20 52 30 | ADR R0| 00004cd0 2c 74 6d 6d 65 73 73 61 67 65 73 0d 18 4c 27 20 |,tmmessages..L' | 00004ce0 20 20 20 20 20 20 20 53 57 49 20 20 20 20 20 22 | SWI "| 00004cf0 58 57 69 6d 70 5f 41 64 64 4d 65 73 73 61 67 65 |XWimp_AddMessage| 00004d00 73 22 0d 18 56 21 20 20 20 20 20 20 20 20 4c 44 |s"..V! LD| 00004d10 4d 46 44 20 20 20 28 73 70 29 21 2c 7b 52 30 2c |MFD (sp)!,{R0,| 00004d20 70 63 7d 0d 18 60 04 0d 18 6a 0c 2e 65 6e 64 64 |pc}..`...j..endd| 00004d30 72 61 67 0d 18 74 29 20 20 20 20 20 20 20 20 4c |rag..t) L| 00004d40 44 52 20 20 20 20 20 52 32 2c 5b 52 31 32 2c 23 |DR R2,[R12,#| 00004d50 6d 6f 64 75 6c 65 66 6c 61 67 73 5d 0d 18 7e 21 |moduleflags]..~!| 00004d60 20 20 20 20 20 20 20 20 54 53 54 20 20 20 20 20 | TST | 00004d70 52 32 2c 23 74 6d 6f 77 6e 64 72 61 67 0d 18 88 |R2,#tmowndrag...| 00004d80 1d 20 20 20 20 20 20 20 20 42 45 51 20 20 20 20 |. BEQ | 00004d90 20 65 6e 64 66 69 6c 74 65 72 0d 18 92 22 20 20 | endfilter..." | 00004da0 20 20 20 20 20 20 54 53 54 20 20 20 20 20 52 32 | TST R2| 00004db0 2c 23 74 6d 73 6f 6c 69 64 69 74 79 0d 18 9c 27 |,#tmsolidity...'| 00004dc0 20 20 20 20 20 20 20 20 53 57 49 4e 45 20 20 20 | SWINE | 00004dd0 22 58 44 72 61 67 41 53 70 72 69 74 65 5f 53 74 |"XDragASprite_St| 00004de0 6f 70 22 0d 18 a6 2a 20 20 20 20 20 20 20 20 53 |op"...* S| 00004df0 57 49 20 20 20 20 20 22 58 57 69 6d 70 5f 47 65 |WI "XWimp_Ge| 00004e00 74 50 6f 69 6e 74 65 72 49 6e 66 6f 22 0d 18 b0 |tPointerInfo"...| 00004e10 1e 20 20 20 20 20 20 20 20 4c 44 52 20 20 20 20 |. LDR | 00004e20 20 52 30 2c 5b 52 31 2c 23 34 5d 0d 18 ba 1f 20 | R0,[R1,#4].... | 00004e30 20 20 20 20 20 20 20 53 54 52 20 20 20 20 20 52 | STR R| 00004e40 30 2c 5b 52 31 2c 23 33 32 5d 0d 18 c4 1e 20 20 |0,[R1,#32].... | 00004e50 20 20 20 20 20 20 4c 44 52 20 20 20 20 20 52 30 | LDR R0| 00004e60 2c 5b 52 31 2c 23 30 5d 0d 18 ce 1f 20 20 20 20 |,[R1,#0].... | 00004e70 20 20 20 20 53 54 52 20 20 20 20 20 52 30 2c 5b | STR R0,[| 00004e80 52 31 2c 23 32 38 5d 0d 18 d8 1f 20 20 20 20 20 |R1,#28].... | 00004e90 20 20 20 4c 44 52 20 20 20 20 20 52 30 2c 5b 52 | LDR R0,[R| 00004ea0 31 2c 23 31 36 5d 0d 18 e2 1f 20 20 20 20 20 20 |1,#16].... | 00004eb0 20 20 53 54 52 20 20 20 20 20 52 30 2c 5b 52 31 | STR R0,[R1| 00004ec0 2c 23 32 34 5d 0d 18 ec 1f 20 20 20 20 20 20 20 |,#24].... | 00004ed0 20 4c 44 52 20 20 20 20 20 52 30 2c 5b 52 31 2c | LDR R0,[R1,| 00004ee0 23 31 32 5d 0d 18 f6 1f 20 20 20 20 20 20 20 20 |#12].... | 00004ef0 53 54 52 20 20 20 20 20 52 30 2c 5b 52 31 2c 23 |STR R0,[R1,#| 00004f00 32 30 5d 0d 19 00 19 20 20 20 20 20 20 20 20 4d |20].... M| 00004f10 4f 56 20 20 20 20 20 52 30 2c 23 31 0d 19 0a 1f |OV R0,#1....| 00004f20 20 20 20 20 20 20 20 20 53 54 52 20 20 20 20 20 | STR | 00004f30 52 30 2c 5b 52 31 2c 23 31 36 5d 0d 19 14 19 20 |R0,[R1,#16].... | 00004f40 20 20 20 20 20 20 20 4d 4f 56 20 20 20 20 20 52 | MOV R| 00004f50 30 2c 23 30 0d 19 1e 1f 20 20 20 20 20 20 20 20 |0,#0.... | 00004f60 53 54 52 20 20 20 20 20 52 30 2c 5b 52 31 2c 23 |STR R0,[R1,#| 00004f70 31 32 5d 0d 19 28 1f 20 20 20 20 20 20 20 20 53 |12]..(. S| 00004f80 54 52 20 20 20 20 20 52 30 2c 5b 52 31 2c 23 33 |TR R0,[R1,#3| 00004f90 36 5d 0d 19 32 1f 20 20 20 20 20 20 20 20 53 54 |6]..2. ST| 00004fa0 52 20 20 20 20 20 52 30 2c 5b 52 31 2c 23 34 30 |R R0,[R1,#40| 00004fb0 5d 0d 19 3c 1f 20 20 20 20 20 20 20 20 53 54 52 |]..<. STR| 00004fc0 20 20 20 20 20 52 30 2c 5b 52 31 2c 23 34 34 5d | R0,[R1,#44]| 00004fd0 0d 19 46 1a 20 20 20 20 20 20 20 20 4d 4f 56 20 |..F. MOV | 00004fe0 20 20 20 20 52 30 2c 23 36 30 0d 19 50 1e 20 20 | R0,#60..P. | 00004ff0 20 20 20 20 20 20 53 54 52 20 20 20 20 20 52 30 | STR R0| 00005000 2c 5b 52 31 2c 23 30 5d 0d 19 5a 1a 20 20 20 20 |,[R1,#0]..Z. | 00005010 20 20 20 20 4d 4f 56 20 20 20 20 20 52 30 2c 23 | MOV R0,#| 00005020 31 38 0d 19 64 1f 20 20 20 20 20 20 20 20 4c 44 |18..d. LD| 00005030 52 20 20 20 20 20 52 32 2c 5b 52 31 2c 23 32 30 |R R2,[R1,#20| 00005040 5d 0d 19 6e 27 20 20 20 20 20 20 20 20 53 57 49 |]..n' SWI| 00005050 20 20 20 20 20 22 58 57 69 6d 70 5f 53 65 6e 64 | "XWimp_Send| 00005060 4d 65 73 73 61 67 65 22 0d 19 78 1e 20 20 20 20 |Message"..x. | 00005070 20 20 20 20 4d 56 4e 20 20 20 20 20 52 30 2c 23 | MVN R0,#| 00005080 28 ac 20 2d 31 29 0d 19 82 1d 20 20 20 20 20 20 |(. -1).... | 00005090 20 20 42 20 20 20 20 20 20 20 65 6e 64 66 69 6c | B endfil| 000050a0 74 65 72 0d 19 8c 04 0d 19 96 0f 2e 74 6d 6d 65 |ter.........tmme| 000050b0 73 73 61 67 65 73 0d 19 a0 15 20 20 20 20 20 20 |ssages.... | 000050c0 20 20 45 51 55 44 20 20 20 20 31 0d 19 aa 15 20 | EQUD 1.... | 000050d0 20 20 20 20 20 20 20 45 51 55 44 20 20 20 20 30 | EQUD 0| 000050e0 0d 19 b4 04 0d 19 be 11 2e 74 6d 6d 6f 75 73 65 |.........tmmouse| 000050f0 63 6c 69 63 6b 0d 19 c8 1f 20 20 20 20 20 20 20 |click.... | 00005100 20 4c 44 52 20 20 20 20 20 52 32 2c 5b 52 31 2c | LDR R2,[R1,| 00005110 23 31 32 5d 0d 19 d2 19 20 20 20 20 20 20 20 20 |#12].... | 00005120 43 4d 4e 20 20 20 20 20 52 32 2c 23 32 0d 19 dc |CMN R2,#2...| 00005130 1d 20 20 20 20 20 20 20 20 42 4e 45 20 20 20 20 |. BNE | 00005140 20 65 6e 64 66 69 6c 74 65 72 0d 19 e6 1e 20 20 | endfilter.... | 00005150 20 20 20 20 20 20 4c 44 52 20 20 20 20 20 52 32 | LDR R2| 00005160 2c 5b 52 31 2c 23 38 5d 0d 19 f0 19 20 20 20 20 |,[R1,#8].... | 00005170 20 20 20 20 54 45 51 20 20 20 20 20 52 32 2c 23 | TEQ R2,#| 00005180 31 0d 19 fa 1d 20 20 20 20 20 20 20 20 42 4e 45 |1.... BNE| 00005190 20 20 20 20 20 65 6e 64 66 69 6c 74 65 72 0d 1a | endfilter..| 000051a0 04 19 20 20 20 20 20 20 20 20 4d 4f 56 20 20 20 |.. MOV | 000051b0 20 20 52 35 2c 52 31 0d 1a 0e 1f 20 20 20 20 20 | R5,R1.... | 000051c0 20 20 20 4c 44 52 20 20 20 20 20 52 30 2c 5b 52 | LDR R0,[R| 000051d0 35 2c 23 31 32 5d 0d 1a 18 1e 20 20 20 20 20 20 |5,#12].... | 000051e0 20 20 53 54 52 20 20 20 20 20 52 30 2c 5b 52 35 | STR R0,[R5| 000051f0 2c 23 30 5d 0d 1a 22 1f 20 20 20 20 20 20 20 20 |,#0]..". | 00005200 4c 44 52 20 20 20 20 20 52 34 2c 5b 52 35 2c 23 |LDR R4,[R5,#| 00005210 31 36 5d 0d 1a 2c 2a 20 20 20 20 20 20 20 20 53 |16]..,* S| 00005220 57 49 20 20 20 20 20 22 58 57 69 6d 70 5f 47 65 |WI "XWimp_Ge| 00005230 74 57 69 6e 64 6f 77 53 74 61 74 65 22 0d 1a 36 |tWindowState"..6| 00005240 1e 20 20 20 20 20 20 20 20 4c 44 52 20 20 20 20 |. LDR | 00005250 20 52 32 2c 5b 52 35 2c 23 34 5d 0d 1a 40 1f 20 | R2,[R5,#4]..@. | 00005260 20 20 20 20 20 20 20 4c 44 52 20 20 20 20 20 52 | LDR R| 00005270 30 2c 5b 52 35 2c 23 32 30 5d 0d 1a 4a 1c 20 20 |0,[R5,#20]..J. | 00005280 20 20 20 20 20 20 53 55 42 20 20 20 20 20 52 32 | SUB R2| 00005290 2c 52 32 2c 52 30 0d 1a 54 1f 20 20 20 20 20 20 |,R2,R0..T. | 000052a0 20 20 4c 44 52 20 20 20 20 20 52 33 2c 5b 52 35 | LDR R3,[R5| 000052b0 2c 23 31 36 5d 0d 1a 5e 1f 20 20 20 20 20 20 20 |,#16]..^. | 000052c0 20 4c 44 52 20 20 20 20 20 52 30 2c 5b 52 35 2c | LDR R0,[R5,| 000052d0 23 32 34 5d 0d 1a 68 1c 20 20 20 20 20 20 20 20 |#24]..h. | 000052e0 53 55 42 20 20 20 20 20 52 33 2c 52 33 2c 52 30 |SUB R3,R3,R0| 000052f0 0d 1a 72 1e 20 20 20 20 20 20 20 20 53 54 52 20 |..r. STR | 00005300 20 20 20 20 52 34 2c 5b 52 35 2c 23 34 5d 0d 1a | R4,[R5,#4]..| 00005310 7c 28 20 20 20 20 20 20 20 20 53 57 49 20 20 20 ||( SWI | 00005320 20 20 22 58 57 69 6d 70 5f 47 65 74 49 63 6f 6e | "XWimp_GetIcon| 00005330 53 74 61 74 65 22 0d 1a 86 19 20 20 20 20 20 20 |State".... | 00005340 20 20 4d 4f 56 20 20 20 20 20 52 30 2c 23 30 0d | MOV R0,#0.| 00005350 1a 90 1e 20 20 20 20 20 20 20 20 53 54 52 20 20 |... STR | 00005360 20 20 20 52 30 2c 5b 52 35 2c 23 30 5d 0d 1a 9a | R0,[R5,#0]...| 00005370 19 20 20 20 20 20 20 20 20 4d 4f 56 20 20 20 20 |. MOV | 00005380 20 52 30 2c 23 35 0d 1a a4 1e 20 20 20 20 20 20 | R0,#5.... | 00005390 20 20 53 54 52 20 20 20 20 20 52 30 2c 5b 52 35 | STR R0,[R5| 000053a0 2c 23 34 5d 0d 1a ae 1e 20 20 20 20 20 20 20 20 |,#4].... | 000053b0 4c 44 52 20 20 20 20 20 52 30 2c 5b 52 35 2c 23 |LDR R0,[R5,#| 000053c0 38 5d 0d 1a b8 1c 20 20 20 20 20 20 20 20 41 44 |8].... AD| 000053d0 44 20 20 20 20 20 52 30 2c 52 30 2c 52 32 0d 1a |D R0,R0,R2..| 000053e0 c2 1e 20 20 20 20 20 20 20 20 53 54 52 20 20 20 |.. STR | 000053f0 20 20 52 30 2c 5b 52 35 2c 23 38 5d 0d 1a cc 1f | R0,[R5,#8]....| 00005400 20 20 20 20 20 20 20 20 4c 44 52 20 20 20 20 20 | LDR | 00005410 52 30 2c 5b 52 35 2c 23 31 32 5d 0d 1a d6 1c 20 |R0,[R5,#12].... | 00005420 20 20 20 20 20 20 20 41 44 44 20 20 20 20 20 52 | ADD R| 00005430 30 2c 52 30 2c 52 33 0d 1a e0 1f 20 20 20 20 20 |0,R0,R3.... | 00005440 20 20 20 53 54 52 20 20 20 20 20 52 30 2c 5b 52 | STR R0,[R| 00005450 35 2c 23 31 32 5d 0d 1a ea 1f 20 20 20 20 20 20 |5,#12].... | 00005460 20 20 4c 44 52 20 20 20 20 20 52 30 2c 5b 52 35 | LDR R0,[R5| 00005470 2c 23 31 36 5d 0d 1a f4 1c 20 20 20 20 20 20 20 |,#16].... | 00005480 20 41 44 44 20 20 20 20 20 52 30 2c 52 30 2c 52 | ADD R0,R0,R| 00005490 32 0d 1a fe 1f 20 20 20 20 20 20 20 20 53 54 52 |2.... STR| 000054a0 20 20 20 20 20 52 30 2c 5b 52 35 2c 23 31 36 5d | R0,[R5,#16]| 000054b0 0d 1b 08 1f 20 20 20 20 20 20 20 20 4c 44 52 20 |.... LDR | 000054c0 20 20 20 20 52 30 2c 5b 52 35 2c 23 32 30 5d 0d | R0,[R5,#20].| 000054d0 1b 12 1c 20 20 20 20 20 20 20 20 41 44 44 20 20 |... ADD | 000054e0 20 20 20 52 30 2c 52 30 2c 52 33 0d 1b 1c 1f 20 | R0,R0,R3.... | 000054f0 20 20 20 20 20 20 20 53 54 52 20 20 20 20 20 52 | STR R| 00005500 30 2c 5b 52 35 2c 23 32 30 5d 0d 1b 26 19 20 20 |0,[R5,#20]..&. | 00005510 20 20 20 20 20 20 4d 4f 56 20 20 20 20 20 52 30 | MOV R0| 00005520 2c 23 30 0d 1b 30 1f 20 20 20 20 20 20 20 20 53 |,#0..0. S| 00005530 54 52 20 20 20 20 20 52 30 2c 5b 52 35 2c 23 32 |TR R0,[R5,#2| 00005540 34 5d 0d 1b 3a 19 20 20 20 20 20 20 20 20 4d 4f |4]..:. MO| 00005550 56 20 20 20 20 20 52 30 2c 23 30 0d 1b 44 1f 20 |V R0,#0..D. | 00005560 20 20 20 20 20 20 20 53 54 52 20 20 20 20 20 52 | STR R| 00005570 30 2c 5b 52 35 2c 23 32 38 5d 0d 1b 4e 1d 20 20 |0,[R5,#28]..N. | 00005580 20 20 20 20 20 20 42 4c 20 20 20 20 20 20 73 63 | BL sc| 00005590 72 65 65 6e 6d 61 78 0d 1b 58 1f 20 20 20 20 20 |reenmax..X. | 000055a0 20 20 20 53 54 52 20 20 20 20 20 52 33 2c 5b 52 | STR R3,[R| 000055b0 35 2c 23 33 32 5d 0d 1b 62 1f 20 20 20 20 20 20 |5,#32]..b. | 000055c0 20 20 53 54 52 20 20 20 20 20 52 34 2c 5b 52 35 | STR R4,[R5| 000055d0 2c 23 33 36 5d 0d 1b 6c 1b 20 20 20 20 20 20 20 |,#36]..l. | 000055e0 20 4d 4f 56 20 20 20 20 20 52 30 2c 23 31 36 31 | MOV R0,#161| 000055f0 0d 1b 76 1a 20 20 20 20 20 20 20 20 4d 4f 56 20 |..v. MOV | 00005600 20 20 20 20 52 31 2c 23 32 38 0d 1b 80 1e 20 20 | R1,#28.... | 00005610 20 20 20 20 20 20 53 57 49 20 20 20 20 20 22 58 | SWI "X| 00005620 4f 53 5f 42 79 74 65 22 0d 1b 8a 1a 20 20 20 20 |OS_Byte".... | 00005630 20 20 20 20 80 20 20 20 20 20 52 32 2c 52 32 2c | . R2,R2,| 00005640 23 32 0d 1b 94 19 20 20 20 20 20 20 20 20 43 4d |#2.... CM| 00005650 50 20 20 20 20 20 52 32 2c 23 30 0d 1b 9e 1d 20 |P R2,#0.... | 00005660 20 20 20 20 20 20 20 42 4e 45 20 20 20 20 20 73 | BNE s| 00005670 6f 6c 69 64 64 72 61 67 0d 1b a8 04 0d 1b b2 11 |oliddrag........| 00005680 2e 6f 72 64 69 6e 61 72 79 64 72 61 67 0d 1b bc |.ordinarydrag...| 00005690 19 20 20 20 20 20 20 20 20 4d 4f 56 20 20 20 20 |. MOV | 000056a0 20 52 31 2c 52 35 0d 1b c6 23 20 20 20 20 20 20 | R1,R5...# | 000056b0 20 20 53 57 49 20 20 20 20 20 22 58 57 69 6d 70 | SWI "XWimp| 000056c0 5f 44 72 61 67 42 6f 78 22 0d 1b d0 29 20 20 20 |_DragBox"...) | 000056d0 20 20 20 20 20 4c 44 52 20 20 20 20 20 52 30 2c | LDR R0,| 000056e0 5b 52 31 32 2c 23 6d 6f 64 75 6c 65 66 6c 61 67 |[R12,#moduleflag| 000056f0 73 5d 0d 1b da 25 20 20 20 20 20 20 20 20 42 49 |s]...% BI| 00005700 43 20 20 20 20 20 52 30 2c 52 30 2c 23 74 6d 73 |C R0,R0,#tms| 00005710 6f 6c 69 64 69 74 79 0d 1b e4 23 20 20 20 20 20 |olidity...# | 00005720 20 20 20 84 52 20 20 20 20 20 52 30 2c 52 30 2c | .R R0,R0,| 00005730 23 74 6d 6f 77 6e 64 72 61 67 0d 1b ee 29 20 20 |#tmowndrag...) | 00005740 20 20 20 20 20 20 53 54 52 20 20 20 20 20 52 30 | STR R0| 00005750 2c 5b 52 31 32 2c 23 6d 6f 64 75 6c 65 66 6c 61 |,[R12,#modulefla| 00005760 67 73 5d 0d 1b f8 1e 20 20 20 20 20 20 20 20 4d |gs].... M| 00005770 56 4e 20 20 20 20 20 52 30 2c 23 28 ac 20 2d 31 |VN R0,#(. -1| 00005780 29 0d 1c 02 1d 20 20 20 20 20 20 20 20 42 20 20 |).... B | 00005790 20 20 20 20 20 65 6e 64 66 69 6c 74 65 72 0d 1c | endfilter..| 000057a0 0c 04 0d 1c 16 0e 2e 73 6f 6c 69 64 64 72 61 67 |.......soliddrag| 000057b0 0d 1c 20 21 20 20 20 20 20 20 20 20 4c 44 52 20 |.. ! LDR | 000057c0 20 20 20 20 52 30 2c 73 6f 6c 69 64 66 6c 61 67 | R0,solidflag| 000057d0 73 0d 1c 2a 19 20 20 20 20 20 20 20 20 4d 4f 56 |s..*. MOV| 000057e0 20 20 20 20 20 52 31 2c 23 31 0d 1c 34 21 20 20 | R1,#1..4! | 000057f0 20 20 20 20 20 20 41 44 52 20 20 20 20 20 52 32 | ADR R2| 00005800 2c 73 70 72 69 74 65 6e 61 6d 65 0d 1c 3e 1c 20 |,spritename..>. | 00005810 20 20 20 20 20 20 20 41 44 44 20 20 20 20 20 52 | ADD R| 00005820 33 2c 52 35 2c 23 38 0d 1c 48 28 20 20 20 20 20 |3,R5,#8..H( | 00005830 20 20 20 53 57 49 20 20 20 20 20 22 58 44 72 61 | SWI "XDra| 00005840 67 41 53 70 72 69 74 65 5f 53 74 61 72 74 22 0d |gASprite_Start".| 00005850 1c 52 29 20 20 20 20 20 20 20 20 4c 44 52 20 20 |.R) LDR | 00005860 20 20 20 52 30 2c 5b 52 31 32 2c 23 6d 6f 64 75 | R0,[R12,#modu| 00005870 6c 65 66 6c 61 67 73 5d 0d 1c 5c 32 20 20 20 20 |leflags]..\2 | 00005880 20 20 20 20 84 52 20 20 20 20 20 52 30 2c 52 30 | .R R0,R0| 00005890 2c 23 28 74 6d 6f 77 6e 64 72 61 67 20 84 20 74 |,#(tmowndrag . t| 000058a0 6d 73 6f 6c 69 64 69 74 79 29 0d 1c 66 29 20 20 |msolidity)..f) | 000058b0 20 20 20 20 20 20 53 54 52 20 20 20 20 20 52 30 | STR R0| 000058c0 2c 5b 52 31 32 2c 23 6d 6f 64 75 6c 65 66 6c 61 |,[R12,#modulefla| 000058d0 67 73 5d 0d 1c 70 1e 20 20 20 20 20 20 20 20 4d |gs]..p. M| 000058e0 56 4e 20 20 20 20 20 52 30 2c 23 28 ac 20 2d 31 |VN R0,#(. -1| 000058f0 29 0d 1c 7a 1d 20 20 20 20 20 20 20 20 42 20 20 |)..z. B | 00005900 20 20 20 20 20 65 6e 64 66 69 6c 74 65 72 0d 1c | endfilter..| 00005910 84 04 0d 1c 8e 0f 2e 73 6f 6c 69 64 66 6c 61 67 |.......solidflag| 00005920 73 0d 1c 98 1d 20 20 20 20 20 20 20 20 45 51 55 |s.... EQU| 00005930 44 20 20 20 20 25 31 31 30 30 31 30 31 30 0d 1c |D %11001010..| 00005940 a2 04 0d 1c ac 0f 2e 73 70 72 69 74 65 6e 61 6d |.......spritenam| 00005950 65 0d 1c b6 1e 20 20 20 20 20 20 20 20 45 51 55 |e.... EQU| 00005960 53 20 20 20 20 22 73 77 69 74 63 68 65 72 22 0d |S "switcher".| 00005970 1c c0 15 20 20 20 20 20 20 20 20 45 51 55 42 20 |... EQUB | 00005980 20 20 20 30 0d 1c ca 11 20 20 20 20 20 20 20 20 | 0.... | 00005990 41 4c 49 47 4e 0d 1c d4 04 0d 1c de 46 2e 73 63 |ALIGN.......F.sc| 000059a0 72 65 65 6e 6d 61 78 20 20 20 20 20 20 20 20 20 |reenmax | 000059b0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | | 000059c0 20 20 20 20 20 20 20 20 20 20 20 3b 20 72 65 74 | ; ret| 000059d0 75 72 6e 73 20 6d 61 78 78 20 69 6e 20 72 33 0d |urns maxx in r3.| 000059e0 1c e8 3e 20 20 20 20 20 20 20 20 53 54 4d 46 44 |..> STMFD| 000059f0 20 20 20 52 31 33 21 2c 7b 52 30 2d 52 32 2c 52 | R13!,{R0-R2,R| 00005a00 35 2d 52 31 32 2c 6c 69 6e 6b 7d 20 20 20 20 20 |5-R12,link} | 00005a10 20 3b 20 6d 61 78 79 20 69 6e 20 72 34 0d 1c f2 | ; maxy in r4...| 00005a20 1e 20 20 20 20 20 20 20 20 4d 56 4e 20 20 20 20 |. MVN | 00005a30 20 52 30 2c 23 28 ac 20 2d 31 29 0d 1c fc 1a 20 | R0,#(. -1).... | 00005a40 20 20 20 20 20 20 20 4d 4f 56 20 20 20 20 20 52 | MOV R| 00005a50 31 2c 23 31 31 0d 1d 06 2a 20 20 20 20 20 20 20 |1,#11...* | 00005a60 20 53 57 49 20 20 20 20 20 22 58 4f 53 5f 52 65 | SWI "XOS_Re| 00005a70 61 64 4d 6f 64 65 56 61 72 69 61 62 6c 65 22 0d |adModeVariable".| 00005a80 1d 10 1c 20 20 20 20 20 20 20 20 41 44 44 20 20 |... ADD | 00005a90 20 20 20 52 36 2c 52 32 2c 23 31 0d 1d 1a 19 20 | R6,R2,#1.... | 00005aa0 20 20 20 20 20 20 20 4d 4f 56 20 20 20 20 20 52 | MOV R| 00005ab0 31 2c 23 34 0d 1d 24 2a 20 20 20 20 20 20 20 20 |1,#4..$* | 00005ac0 53 57 49 20 20 20 20 20 22 58 4f 53 5f 52 65 61 |SWI "XOS_Rea| 00005ad0 64 4d 6f 64 65 56 61 72 69 61 62 6c 65 22 0d 1d |dModeVariable"..| 00005ae0 2e 20 20 20 20 20 20 20 20 20 4d 4f 56 20 20 20 |. MOV | 00005af0 20 20 52 33 2c 52 36 2c 4c 53 4c 20 52 32 0d 1d | R3,R6,LSL R2..| 00005b00 38 1a 20 20 20 20 20 20 20 20 4d 4f 56 20 20 20 |8. MOV | 00005b10 20 20 52 31 2c 23 31 32 0d 1d 42 2a 20 20 20 20 | R1,#12..B* | 00005b20 20 20 20 20 53 57 49 20 20 20 20 20 22 58 4f 53 | SWI "XOS| 00005b30 5f 52 65 61 64 4d 6f 64 65 56 61 72 69 61 62 6c |_ReadModeVariabl| 00005b40 65 22 0d 1d 4c 1c 20 20 20 20 20 20 20 20 41 44 |e"..L. AD| 00005b50 44 20 20 20 20 20 52 36 2c 52 32 2c 23 31 0d 1d |D R6,R2,#1..| 00005b60 56 19 20 20 20 20 20 20 20 20 4d 4f 56 20 20 20 |V. MOV | 00005b70 20 20 52 31 2c 23 35 0d 1d 60 2a 20 20 20 20 20 | R1,#5..`* | 00005b80 20 20 20 53 57 49 20 20 20 20 20 22 58 4f 53 5f | SWI "XOS_| 00005b90 52 65 61 64 4d 6f 64 65 56 61 72 69 61 62 6c 65 |ReadModeVariable| 00005ba0 22 0d 1d 6a 20 20 20 20 20 20 20 20 20 4d 4f 56 |"..j MOV| 00005bb0 20 20 20 20 20 52 34 2c 52 36 2c 4c 53 4c 20 52 | R4,R6,LSL R| 00005bc0 32 0d 1d 74 2a 20 20 20 20 20 20 20 20 4c 44 4d |2..t* LDM| 00005bd0 46 44 20 20 20 52 31 33 21 2c 7b 52 30 2d 52 32 |FD R13!,{R0-R2| 00005be0 2c 52 35 2d 52 31 32 2c 70 63 7d 0d 1d 7e 04 0d |,R5-R12,pc}..~..| 00005bf0 1d 88 0e 2e 66 69 6e 61 6c 63 6f 64 65 0d 1d 92 |....finalcode...| 00005c00 27 20 20 20 20 20 20 20 20 53 54 4d 46 44 20 20 |' STMFD | 00005c10 20 28 73 70 29 21 2c 7b 52 37 2d 52 31 31 2c 6c | (sp)!,{R7-R11,l| 00005c20 69 6e 6b 7d 0d 1d 9c 1d 20 20 20 20 20 20 20 20 |ink}.... | 00005c30 4c 44 52 20 20 20 20 20 52 31 32 2c 5b 52 31 32 |LDR R12,[R12| 00005c40 5d 0d 1d a6 26 20 20 20 20 20 20 20 20 4c 44 52 |]...& LDR| 00005c50 20 20 20 20 20 52 30 2c 5b 52 31 32 2c 23 6d 79 | R0,[R12,#my| 00005c60 68 61 6e 64 6c 65 5d 0d 1d b0 19 20 20 20 20 20 |handle].... | 00005c70 20 20 20 54 45 51 20 20 20 20 20 52 30 2c 23 30 | TEQ R0,#0| 00005c80 0d 1d ba 1d 20 20 20 20 20 20 20 20 42 4c 45 20 |.... BLE | 00005c90 20 20 20 20 66 69 6e 61 6c 73 6b 69 70 0d 1d c4 | finalskip...| 00005ca0 1b 20 20 20 20 20 20 20 20 4c 44 52 20 20 20 20 |. LDR | 00005cb0 20 52 31 2c 74 61 73 6b 0d 1d ce 25 20 20 20 20 | R1,task...% | 00005cc0 20 20 20 20 53 57 49 20 20 20 20 20 22 58 57 69 | SWI "XWi| 00005cd0 6d 70 5f 43 6c 6f 73 65 44 6f 77 6e 22 0d 1d d8 |mp_CloseDown"...| 00005ce0 22 20 20 20 20 20 20 20 20 42 4c 20 20 20 20 20 |" BL | 00005cf0 20 74 6d 66 69 6c 74 65 72 72 65 6d 6f 76 65 0d | tmfilterremove.| 00005d00 1d e2 22 20 20 20 20 20 20 20 20 42 4c 20 20 20 |.." BL | 00005d10 20 20 20 70 61 66 69 6c 74 65 72 72 65 6d 6f 76 | pafilterremov| 00005d20 65 0d 1d ec 22 20 20 20 20 20 20 20 20 42 4c 20 |e..." BL | 00005d30 20 20 20 20 20 66 61 66 69 6c 74 65 72 72 65 6d | fafilterrem| 00005d40 6f 76 65 0d 1d f6 0e 2e 66 69 6e 61 6c 73 6b 69 |ove.....finalski| 00005d50 70 0d 1e 00 19 20 20 20 20 20 20 20 20 4d 4f 56 |p.... MOV| 00005d60 20 20 20 20 20 52 31 2c 23 30 0d 1e 0a 26 20 20 | R1,#0...& | 00005d70 20 20 20 20 20 20 53 54 52 20 20 20 20 20 52 31 | STR R1| 00005d80 2c 5b 52 31 32 2c 23 6d 79 68 61 6e 64 6c 65 5d |,[R12,#myhandle]| 00005d90 0d 1e 14 19 20 20 20 20 20 20 20 20 4d 4f 56 20 |.... MOV | 00005da0 20 20 20 20 52 30 2c 23 37 0d 1e 1e 1a 20 20 20 | R0,#7.... | 00005db0 20 20 20 20 20 4d 4f 56 20 20 20 20 20 52 32 2c | MOV R2,| 00005dc0 52 31 32 0d 1e 28 20 20 20 20 20 20 20 20 20 53 |R12..( S| 00005dd0 57 49 20 20 20 20 20 22 58 4f 53 5f 4d 6f 64 75 |WI "XOS_Modu| 00005de0 6c 65 22 0d 1e 32 25 20 20 20 20 20 20 20 20 4c |le"..2% L| 00005df0 44 4d 46 44 20 20 20 28 73 70 29 21 2c 7b 52 37 |DMFD (sp)!,{R7| 00005e00 2d 52 31 31 2c 70 63 7d 0d 1e 3c 04 0d 1e 46 10 |-R11,pc}..<...F.| 00005e10 2e 73 65 72 76 69 63 65 63 6f 64 65 0d 1e 50 20 |.servicecode..P | 00005e20 20 20 20 20 20 20 20 20 53 54 4d 46 44 20 20 20 | STMFD | 00005e30 28 73 70 29 21 2c 7b 6c 69 6e 6b 7d 0d 1e 5a 1d |(sp)!,{link}..Z.| 00005e40 20 20 20 20 20 20 20 20 4c 44 52 20 20 20 20 20 | LDR | 00005e50 52 31 32 2c 5b 52 31 32 5d 0d 1e 64 1b 20 20 20 |R12,[R12]..d. | 00005e60 20 20 20 20 20 54 45 51 20 20 20 20 20 52 31 2c | TEQ R1,| 00005e70 23 26 34 39 0d 1e 6e 1d 20 20 20 20 20 20 20 20 |#&49..n. | 00005e80 42 45 51 20 20 20 20 20 73 74 61 72 74 77 69 6d |BEQ startwim| 00005e90 70 0d 1e 78 1b 20 20 20 20 20 20 20 20 54 45 51 |p..x. TEQ| 00005ea0 20 20 20 20 20 52 31 2c 23 26 34 41 0d 1e 82 1f | R1,#&4A....| 00005eb0 20 20 20 20 20 20 20 20 42 45 51 20 20 20 20 20 | BEQ | 00005ec0 73 74 61 72 74 65 64 77 69 6d 70 0d 1e 8c 1b 20 |startedwimp.... | 00005ed0 20 20 20 20 20 20 20 54 45 51 20 20 20 20 20 52 | TEQ R| 00005ee0 31 2c 23 26 38 37 0d 1e 96 1e 20 20 20 20 20 20 |1,#&87.... | 00005ef0 20 20 42 4c 45 51 20 20 20 20 69 6e 73 74 61 6c | BLEQ instal| 00005f00 6c 61 6c 6c 0d 1e a0 1b 20 20 20 20 20 20 20 20 |lall.... | 00005f10 54 45 51 20 20 20 20 20 52 31 2c 23 26 38 38 0d |TEQ R1,#&88.| 00005f20 1e aa 26 20 20 20 20 20 20 20 20 42 45 51 20 20 |..& BEQ | 00005f30 20 20 20 66 69 6c 74 65 72 6d 61 6e 61 67 65 72 | filtermanager| 00005f40 64 79 69 6e 67 0d 1e b4 1b 20 20 20 20 20 20 20 |dying.... | 00005f50 20 54 45 51 20 20 20 20 20 52 31 2c 23 26 32 37 | TEQ R1,#&27| 00005f60 0d 1e be 1e 20 20 20 20 20 20 20 20 4c 44 4d 4e |.... LDMN| 00005f70 45 46 44 20 28 73 70 29 21 2c 7b 70 63 7d 0d 1e |EFD (sp)!,{pc}..| 00005f80 c8 1a 20 20 20 20 20 20 20 20 4d 4f 56 20 20 20 |.. MOV | 00005f90 20 20 52 31 34 2c 23 30 0d 1e d2 27 20 20 20 20 | R14,#0...' | 00005fa0 20 20 20 20 53 54 52 20 20 20 20 20 52 31 34 2c | STR R14,| 00005fb0 5b 52 31 32 2c 23 6d 79 68 61 6e 64 6c 65 5d 0d |[R12,#myhandle].| 00005fc0 1e dc 22 20 20 20 20 20 20 20 20 42 4c 20 20 20 |.." BL | 00005fd0 20 20 20 74 6d 66 69 6c 74 65 72 72 65 6d 6f 76 | tmfilterremov| 00005fe0 65 0d 1e e6 22 20 20 20 20 20 20 20 20 42 4c 20 |e..." BL | 00005ff0 20 20 20 20 20 70 61 66 69 6c 74 65 72 72 65 6d | pafilterrem| 00006000 6f 76 65 0d 1e f0 22 20 20 20 20 20 20 20 20 42 |ove..." B| 00006010 4c 20 20 20 20 20 20 66 61 66 69 6c 74 65 72 72 |L fafilterr| 00006020 65 6d 6f 76 65 0d 1e fa 1e 20 20 20 20 20 20 20 |emove.... | 00006030 20 4c 44 4d 46 44 20 20 20 28 73 70 29 21 2c 7b | LDMFD (sp)!,{| 00006040 70 63 7d 0d 1f 04 04 0d 1f 0e 17 2e 66 69 6c 74 |pc}.........filt| 00006050 65 72 6d 61 6e 61 67 65 72 64 79 69 6e 67 0d 1f |ermanagerdying..| 00006060 18 29 20 20 20 20 20 20 20 20 4c 44 52 20 20 20 |.) LDR | 00006070 20 20 52 33 2c 5b 52 31 32 2c 23 6d 6f 64 75 6c | R3,[R12,#modul| 00006080 65 66 6c 61 67 73 5d 0d 1f 22 56 20 20 20 20 20 |eflags].."V | 00006090 20 20 20 42 49 43 20 20 20 20 20 52 33 2c 52 33 | BIC R3,R3| 000060a0 2c 23 28 74 6d 66 69 6c 74 65 72 69 6e 73 74 61 |,#(tmfilterinsta| 000060b0 6c 6c 65 64 20 84 20 70 61 66 69 6c 74 65 72 69 |lled . pafilteri| 000060c0 6e 73 74 61 6c 6c 65 64 20 84 20 66 61 66 69 6c |nstalled . fafil| 000060d0 74 65 72 69 6e 73 74 61 6c 6c 65 64 29 0d 1f 2c |terinstalled)..,| 000060e0 28 20 20 20 20 20 20 20 20 42 49 43 20 20 20 20 |( BIC | 000060f0 20 52 33 2c 52 33 2c 23 66 61 72 65 70 6c 61 63 | R3,R3,#fareplac| 00006100 65 61 62 6c 65 0d 1f 36 29 20 20 20 20 20 20 20 |eable..6) | 00006110 20 53 54 52 20 20 20 20 20 52 33 2c 5b 52 31 32 | STR R3,[R12| 00006120 2c 23 6d 6f 64 75 6c 65 66 6c 61 67 73 5d 0d 1f |,#moduleflags]..| 00006130 40 1e 20 20 20 20 20 20 20 20 4c 44 4d 46 44 20 |@. LDMFD | 00006140 20 20 28 73 70 29 21 2c 7b 70 63 7d 0d 1f 4a 04 | (sp)!,{pc}..J.| 00006150 0d 1f 54 10 2e 73 74 61 72 74 65 64 77 69 6d 70 |..T..startedwimp| 00006160 0d 1f 5e 27 20 20 20 20 20 20 20 20 4c 44 52 20 |..^' LDR | 00006170 20 20 20 20 52 31 34 2c 5b 52 31 32 2c 23 6d 79 | R14,[R12,#my| 00006180 68 61 6e 64 6c 65 5d 0d 1f 68 1a 20 20 20 20 20 |handle]..h. | 00006190 20 20 20 43 4d 4e 20 20 20 20 20 52 31 34 2c 23 | CMN R14,#| 000061a0 31 0d 1f 72 17 20 20 20 20 20 20 20 20 ec 51 20 |1..r. .Q | 000061b0 20 20 52 31 34 2c 23 30 0d 1f 7c 27 20 20 20 20 | R14,#0..|' | 000061c0 20 20 20 20 53 54 52 45 51 20 20 20 52 31 34 2c | STREQ R14,| 000061d0 5b 52 31 32 2c 23 6d 79 68 61 6e 64 6c 65 5d 0d |[R12,#myhandle].| 000061e0 1f 86 1e 20 20 20 20 20 20 20 20 4c 44 4d 46 44 |... LDMFD| 000061f0 20 20 20 28 73 70 29 21 2c 7b 70 63 7d 0d 1f 90 | (sp)!,{pc}...| 00006200 04 0d 1f 9a 0b 2e 6d 79 6d 61 73 6b 0d 1f a4 29 |......mymask...)| 00006210 20 20 20 20 20 20 20 20 45 51 55 44 20 20 20 20 | EQUD | 00006220 25 31 30 30 30 30 30 31 31 31 30 30 31 30 31 31 |%100000111001011| 00006230 31 30 30 31 31 0d 1f ae 04 0d 1f b8 11 2e 74 6d |10011.........tm| 00006240 66 69 6c 74 65 72 6d 61 73 6b 0d 1f c2 29 20 20 |filtermask...) | 00006250 20 20 20 20 20 20 45 51 55 44 20 20 20 20 25 30 | EQUD %0| 00006260 30 30 30 30 30 31 31 31 30 30 31 30 30 31 31 30 |0000011100100110| 00006270 30 31 31 0d 1f cc 04 0d 1f d6 11 2e 70 61 66 69 |011.........pafi| 00006280 6c 74 65 72 6d 61 73 6b 0d 1f e0 29 20 20 20 20 |ltermask...) | 00006290 20 20 20 20 45 51 55 44 20 20 20 20 25 31 30 31 | EQUD %101| 000062a0 30 30 30 31 31 31 30 30 31 30 30 31 31 30 30 31 |0001110010011001| 000062b0 31 0d 1f ea 04 0d 1f f4 11 2e 66 61 66 69 6c 74 |1.........fafilt| 000062c0 65 72 6d 61 73 6b 0d 1f fe 29 20 20 20 20 20 20 |ermask...) | 000062d0 20 20 45 51 55 44 20 20 20 20 25 31 31 30 30 30 | EQUD %11000| 000062e0 30 31 31 31 30 30 31 30 31 31 31 30 30 31 31 0d |011100101110011.| 000062f0 20 08 04 0d 20 12 05 5d 0d 20 1c 0b ed 20 70 61 | ... ..]. ... pa| 00006300 73 73 25 0d 20 26 05 e1 0d ff |ss%. &....| 0000630a