Home » Archimedes archive » Acorn User » AU 1994-10.adf » !StarInfo_StarInfo » Kemp/PinSource
Kemp/PinSource
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/PinSource |
Read OK: | ✔ |
File size: | 64DF bytes |
Load address: | 0000 |
Exec address: | 0000 |
File contents
10REM >PinSource 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 => Filer messages added | 100REM | | bit 1 => Pinboard messages added | 110REM | | bit 2 => Last save was ours | 120REM | | bit 3 => FilerPin turned on | 130REM | | bit 4 => PinFilter turned on | 140REM | | bit 5 => Iconise turned on | 150REM | | | 160REM | | bit 16 => Filer filter installed | 170REM | | bit 17 => Pinboard filter installed | 180REM | | bit 18 => Iconise filter installed | 190REM | 4 | my task handle | 200REM | 8 | filer task handle | 210REM | 12 | pinboard task handle | 220REM | 16-271 | polling block | 230REM | 272-291 | full descending stack, five registers | 240REM |--------------------------------------------------------------------------| 250REM | 16-319 | string workspace for filer filter... (overlaps polling block) | 260REM | | | 270REM | | 0 : mouse x | 280REM | | 4 : mouse y | 290REM | | 8 : *command assembled here | 300REM -------------------------------------------------------------------------- 310REM | 16-319 | workspace for iconise filter... (overlaps polling block) | 320REM -------------------------------------------------------------------------- 330: 340moduleflags = 0 350myhandle = 4 360fihandle = 8 370pihandle = 12 380pollblock = 16 390stack = 288 : REM pointer to top word of descending stack 400: 410workspace = 16 420: 430fimessagesadded = 1<<0 440pimessagesadded = 1<<1 450pilastsaveours = 1<<2 460filerpinon = 1<<3 470pinfilteron = 1<<4 480iconiseon = 1<<5 490fifilterinstalled = 1<<16 500pifilterinstalled = 1<<17 510icfilterinstalled = 1<<18 520: 530run%=FALSE 540ON ERROR VDU 7:PRINT REPORT$;" at line ";STR$(ERL):END 550: 560PROCinit 570PROCassemble 580PROCsave("PinFilter",&ffa,code%,O%) 590END 600: 610DEF PROCinit 620date$=MID$(TIME$,5,11) 630version$="1.07" 640DIM code% &10000 650ENDPROC 660: 670DEF PROCsave(file$,type%,base%,end%) 680SYS "OS_File",10,file$,type%,,base%,end% 690IF run% THEN SYS "OS_CLI","RMLoad "+file$ 700ENDPROC 710: 720DEF PROCassemble 730wp=12: sp=13: link=14: pc=15 740FOR pass%=4 TO 6 STEP 2 750P%=0: O%=code% 760[OPT pass% 770 EQUD startcode 780 EQUD initcode 790 EQUD finalcode 800 EQUD servicecode 810 EQUD titlestring 820 EQUD helpstring 830 EQUD helptable 840 850.titlestring 860 EQUS "PinFilter" 870 EQUB 0 880 ALIGN 890 900.helpstring 910 EQUS "PinFilter" 920 EQUB 9 930 EQUS version$+" ("+date$+")" 940 EQUB 0 950 ALIGN 960 970.helptable 980 EQUS "Desktop_PinFilter" 990 EQUB 0 1000 ALIGN 1010 EQUD starcommand 1020 EQUD 0 1030 EQUD 0 1040 EQUD help 1050 EQUB 0 1060 1070.help 1080 EQUB 13 1090 EQUS "Do not use *Desktop_PinFilter, use *Desktop instead." 1100 EQUB 13 1110 EQUB 13 1120 EQUS "PinFilter provides two improvements to the use of the " 1130 EQUS "RISC OS 3 pinboard. See the !Help file for details of the " 1140 EQUS "patches." 1150 EQUB 13 1160 EQUB 13 1170 EQUS "PinFilter was written by Andrew Kemp." 1180 EQUB 13 1190 EQUB 13 1200 EQUS "� KCE Software, June 1994."+CHR$(13)+CHR$(0) 1210 ALIGN 1220 1230.startwimp 1240 LDR R14,[R12,#myhandle] 1250 TEQ R14,#0 1260 MVNEQ R14,#(NOT -1) 1270 STREQ R14,[R12,#myhandle] 1280 ADREQ R0,helptable 1290 MOVEQ R1,#0 1300 LDMFD (sp)!,{pc} 1310 1320.initcode 1330 STMFD (sp)!,{R7-R11,link} 1340 MOV R0,#6 1350 MOV R3,#292 1360 SWI "XOS_Module" 1370 BVS initexit 1380 STR R2,[R12] 1390 MOV R0,#0 1400 STR R0,[R2,#myhandle] 1410 LDRB R3,[R10] 1420 CMP R3,#ASC("-") 1430 BNE initexit 1440 LDRB R3,[R10,#1] 1450 CMP R3,#ASC("o") 1460 BEQ readopts 1470.initexit 1480 LDMFD (sp)!,{R7-R11,pc} 1490 1500.readopts 1510 ORR R0,R0,#(filerpinon OR pinfilteron OR iconiseon) 1520 STR R0,[R2,#moduleflags] ; default options in case error 1530 MOV R0,#17 1540 ADR R1,pathname 1550 SWI "XOS_File" 1560 BVS initexit ; exit if error occurred 1570 CMP R0,#1 ; exit if not a file, or doesn't exist 1580 CMPEQ R4,#4 ; exit if file wrong length 1590 BNE initexit 1600 MOV R0,#16 1610 LDR R2,[R12] 1620 ADD R2,R2,#moduleflags 1630 MOV R3,#0 1640 SWI "XOS_File" 1650 B initexit 1660 1670.pathname 1680 EQUS "<PinFilter$Dir>.Options" 1690 EQUB 0 1700 ALIGN 1710 1720.starcommand 1730 STMFD (sp)!,{link} 1740 MOV R2,R0 1750 ADR R1,titlestring 1760 MOV R0,#2 1770 SWI "XOS_Module" 1780 LDMFD (sp)!,{pc} 1790 1800.task 1810 EQUS "TASK" 1820 1830.startcode 1840 LDR R12,[R12] 1850 LDR R0,[R12,#myhandle] 1860 TEQ R0,#0 1870 LDRGT R1,task 1880 SWIGT "XWimp_CloseDown" 1890 MOVGT R0,#0 1900 STRGT R0,[R12,#myhandle] 1910 1920 MOV R0,#308 1930 ADD R0,R0,#2 1940 LDR R1,task 1950 ADR R2,titlestring 1960 ADR R3,mymessages 1970 SWI "XWimp_Initialise" 1980 SWIVS "XOS_Exit" 1990 STR R1,[R12,#myhandle] 2000 2010 ADD sp,R12,#stack 2020 2030 BL installall : REM TAB(TAB( fall through TAB(TAB( 2040 2050.poll 2060 LDR R0,mymask 2070 ADD R1,R12,#pollblock 2080 SWI "XWimp_Poll" 2090 CMP R0,#17 2100 CMPNE R0,#18 2110 BNE poll 2120 LDR R0,[R1,#16] 2130 LDR R2,message_taskinitialise 2140 CMP R0,R2 2150 BEQ taskinitialise 2160 LDR R2,message_taskclosedown 2170 CMP R0,R2 2180 BEQ taskclosedown 2190 CMP R0,#0 2200 BNE poll 2210 BL fifilterremove 2220 BL pifilterremove 2230 BL icfilterremove 2240 LDR R0,[R12,#myhandle] 2250 ADR R1,task 2260 SWI "XWimp_CloseDown" 2270 MOV R1,#0 2280 STR R1,[R12,#myhandle] 2290 SWI "XOS_Exit" 2300 B poll 2310 2320.mymessages 2330.message_taskinitialise 2340 EQUD &400C2 2350.message_taskclosedown 2360 EQUD &400C3 2370 EQUD 0 2380 2390.taskinitialise 2400 ADD R0,R1,#28 2410 ADR R3,finame 2420 BL stringcompare 2430 CMP R3,#1 2440 LDREQ R3,[R1,#4] 2450 BLEQ fifilterinstall 2460 ADR R3,piname 2470 BL stringcompare 2480 CMP R3,#1 2490 LDREQ R3,[R1,#4] 2500 BLEQ pifilterinstall 2510 B poll 2520 2530.taskclosedown 2540 LDR R0,[R1,#4] 2550 LDR R2,[R12,#fihandle] 2560 CMP R0,R2 2570 BLEQ fifilterremove 2580 LDR R2,[R12,#pihandle] 2590 CMP R0,R2 2600 BLEQ pifilterremove 2610 B poll 2620 2630.installall 2640 STMFD (sp)!,{R1,link} 2650 ADR R4,finame 2660 BL gettaskhandle 2670 CMP R3,#0 2680 BLNE fifilterinstall 2690 ADR R4,piname 2700 BL gettaskhandle 2710 CMP R3,#0 2720 BLNE pifilterinstall 2730 BL icfilterinstall 2740 LDMFD (sp)!,{R1,pc} 2750 2760.finame 2770 EQUS "Filer" 2780 EQUB 0 2790 ALIGN 2800 2810.piname 2820 EQUS "Pinboard" 2830 EQUB 0 2840 ALIGN 2850 2860.stringcompare 2870 STMFD (sp)!,{R0,link} 2880.compareloop ; compares string pointed to by R0 2890 LDRB R7,[R0],#1 ; with that pointed to by R3 2900 LDRB R5,[R3],#1 ; returning 1 in R3 if same 2910 CMP R7,R5 2920 MOVNE R3,#0 2930 LDMNEFD (sp)!,{R0,pc} 2940 CMP R5,#0 2950 BNE compareloop 2960 MOV R3,#1 2970 LDMFD (sp)!,{R0,pc} 2980 2990.fifilterinstall ; pass fi task handle in R3 3000 STMFD (sp)!,{R0,link} 3010 LDR R1,[R12,#moduleflags] 3020 TST R1,#fifilterinstalled 3030 LDMNEFD (sp)!,{R0,pc} ; if already installed, just exit 3040 TST R1,#filerpinon 3050 LDMEQFD (sp)!,{R0,pc} ; if not selected, exit 3060 ADR R0,fifiltername 3070 ADR R1,fifiltercode 3080 MOV R2,R12 ; note passes workspace pointer 3090 LDR R4,fifiltermask ; not private word pointer as 3100 SWI "XFilter_RegisterPostFilter" ; before 3110 STRVC R3,[R12,#fihandle] 3120 LDRVC R1,[R12,#moduleflags] 3130 ORRVC R1,R1,#fifilterinstalled 3140 STRVC R1,[R12,#moduleflags] 3150 LDMFD (sp)!,{R0,pc} 3160 3170.fifilterremove 3180 STMFD (sp)!,{R0,link} 3190 LDR R1,[R12,#moduleflags] 3200 TST R1,#fifilterinstalled 3210 LDMEQFD (sp)!,{R0,pc} ; if not installed, just exit 3220 ADR R0,fifiltername 3230 ADR R1,fifiltercode 3240 MOV R2,R12 3250 LDR R3,[R12,#fihandle] 3260 LDR R4,fifiltermask 3270 SWI "XFilter_DeRegisterPostFilter" 3280 LDR R1,[R12,#moduleflags] 3290 BIC R1,R1,#fifilterinstalled 3300 BIC R1,R1,#fimessagesadded 3310 STR R1,[R12,#moduleflags] 3320 LDMFD (sp)!,{R0,pc} 3330 3340.fifiltercode 3350 STMFD (sp)!,{R1-R11,link} 3360 LDR R3,[R12,#moduleflags] 3370 TST R3,#fimessagesadded 3380 BLEQ fiaddmessages 3390 TEQ R0,#18 3400 BNE endfilter 3410 LDR R2,[R1,#16] 3420 LDR R3,fimessages 3430 CMP R3,R2 3440 BNE endfilter 3450 LDR R0,[R1,#8] 3460 STR R0,[R1,#12] 3470 MOV R0,#19 3480 LDR R2,[R1,#4] 3490 SWI "XWimp_SendMessage" ; send acknowledge, to prevent iconisation 3500 ADD R1,R1,#20 3510 LDR R7,[R1] ; preserve window handle in R7 for later use 3520 SWI "XWimp_CloseWindow" ; close directory display 3530 3540 ADD R1,R12,#workspace ; use polling block as workspace 3550 SWI "XWimp_GetPointerInfo" ; first two words of workspace are x,y 3560 3570 ADD R1,R12,#workspace+8 ; offset so doesn't overwrite mouse coords 3580 ORR R1,R1,#%01 3590 BIC R1,R1,#%10 3600 STR R7,[R1,#0] ; using window handle 3610 SWI "XWimp_GetWindowInfo" 3620 3630 ADR R2,pincommand 3640 ADD R3,R12,#workspace+8 ; ok to overwrite start of window block 3650 BL stringcopy ; - only require title, at offset 76! 3660 LDR R2,[R12,#(workspace+8+76)] 3670 BL stringcopy 3680 MOV R0,#32 3690 STRB R0,[R3],#1 ; overwrite terminating null with a space 3700 3710 ADD R4,R12,#workspace ; points to mouse position 3720 MOV R1,R3 3730 MOV R2,#5 3740 LDR R0,[R4,#0] ; mouse x 3750 SUB R0,R0,#90 3760 CMP R0,#0 3770 MOVLT R0,#0 3780 SWI "XOS_ConvertInteger2" 3790 MOV R0,#32 3800 STRB R0,[R1],#1 3810 MOV R2,#5 3820 LDR R0,[R4,#4] ; mouse y 3830 ADD R0,R0,#40 3840 SWI "XOS_ConvertInteger2" 3850 ADD R0,R12,#workspace+8 ; command assembled at offset 8 3860 SWI "XOS_CLI" 3870 MVN R0,#(NOT -1) ; don't pass event on 3880.endfilter 3890 LDMFD (sp)!,{R1-R11,link} 3900 MOVS pc,link 3910 3920.fifiltername 3930 EQUS "FilerPin" 3940 EQUB 0 3950 ALIGN 3960 3970.pifilterinstall ; pass pi task handle in R3 3980 STMFD (sp)!,{R0,link} 3990 LDR R1,[R12,#moduleflags] 4000 TST R1,#pifilterinstalled 4010 LDMNEFD (sp)!,{R0,pc} ; if already installed, just exit 4020 TST R1,#pinfilteron 4030 LDMEQFD (sp)!,{R0,pc} ; if not selected, exit 4040 ADR R0,pifiltername 4050 ADR R1,pifiltercode 4060 MOV R2,R12 ; note passes workspace pointer 4070 LDR R4,pifiltermask ; not private word pointer as 4080 SWI "XFilter_RegisterPostFilter" ; before 4090 LDMVSFD (sp)!,{R0,pc} 4100 STR R3,[R12,#pihandle] 4110 LDR R1,[R12,#moduleflags] 4120 ORR R1,R1,#pifilterinstalled 4130 STR R1,[R12,#moduleflags] 4140 MOV R0,#4 4150 ADD R1,R12,#workspace 4160 MOV R2,R3 4170 SWI "XWimp_SendMessage" 4180 LDMFD (sp)!,{R0,pc} 4190 4200.pifilterremove 4210 STMFD (sp)!,{R0,link} 4220 LDR R1,[R12,#moduleflags] 4230 TST R1,#pifilterinstalled 4240 LDMEQFD (sp)!,{R0,pc} ; if not installed, just exit 4250 ADR R0,pifiltername 4260 ADR R1,pifiltercode 4270 MOV R2,R12 4280 LDR R3,[R12,#pihandle] 4290 LDR R4,pifiltermask 4300 SWI "XFilter_DeRegisterPostFilter" 4310 LDR R1,[R12,#moduleflags] 4320 BIC R1,R1,#pifilterinstalled 4330 BIC R1,R1,#pimessagesadded 4340 STR R1,[R12,#moduleflags] 4350 LDMFD (sp)!,{R0,pc} 4360 4370.pifiltername 4380 EQUS "PinFilter" 4390 EQUB 0 4400 ALIGN 4410 4420.pifiltercode 4430 STMFD (sp)!,{R1-R11,link} 4440 LDR R3,[R12,#moduleflags] 4450 TST R3,#pimessagesadded 4460 BLEQ piaddmessages 4470 TEQ R0,#9 4480 BEQ menuselect 4490 TEQ R0,#17 4500 TEQNE R0,#18 4510 BNE endfilter 4520 LDR R2,[R1,#16] 4530 CMP R2,#1 4540 BEQ gotdatasave 4550 CMP R2,#3 4560 BNE endfilter 4570 LDR R2,[R1,#12] 4580 CMP R2,#0 4590 BEQ endfilter 4600 LDR R2,[R1,#8] ; send message_dataloadack 4610 STR R2,[R1,#12] 4620 MOV R2,#4 4630 STR R2,[R1,#16] 4640 MOV R0,#17 4650 LDR R2,[R1,#4] 4660 SWI "XWimp_SendMessage" 4670 BL pin 4680 MVN R0,#(NOT -1) 4690 B endfilter 4700 4710.menuselect 4720 STMFD (sp)!,{R0} 4730 LDR R2,[R1,#0] 4740 CMP R2,#0 4750 LDMNEFD (sp)!,{R0} 4760 BNE endfilter 4770 ADR R2,fileropen 4780 ADD R3,R12,#workspace 4790 BL stringcopy 4800 ADR R2,tempdir 4810 BL stringcopy 4820 MOV R2,#0 4830 STRB R2,[R3,#-1] 4840 ADD R0,R12,#workspace 4850 SWI "XOS_CLI" 4860 LDMFD (sp)!,{R0} 4870 B endfilter 4880 4890.fileropen 4900 EQUS "Filer_OpenDir " 4910 EQUB 0 4920 ALIGN 4930 4940.gotdatasave 4950 MOV R9,R1 ; checks window handle is backdrop! 4960 MOV R0,#18 4970 ADR R1,piname 4980 SWI "XOS_Module" 4990 BVS endfilter 5000 LDR R4,[R4,#28] 5010 MOV R1,R9 5020 LDR R0,[R1,#20] 5030 CMP R0,R4 5040 BNE endfilter 5050 5060 ADR R2,tempdir 5070 ADD R3,R12,#workspace 5080 BL stringcopy 5090 LDR R0,[R1,#8] 5100 STR R0,[R1,#12] 5110 ADD R2,R1,#44 5120 ADD R3,R12,#(workspace+32) 5130 BL stringcopy 5140 MOV R3,R2 5150 ADD R2,R12,#workspace 5160 BL stringcopy 5170 ADD R2,R12,#(workspace+32) 5180 BL stringcopy 5190 MOV R0,#256 5200 STR R0,[R1] 5210 MOV R0,#2 5220 STR R0,[R1,#16] 5230 MOV R0,#17 5240 LDR R2,[R1,#4] 5250 SWI "XWimp_SendMessage" 5260 MVN R0,#(NOT -1) 5270 LDR R1,[R12,#moduleflags] 5280 ORR R1,R1,#pilastsaveours 5290 STR R1,[R12,#moduleflags] 5300 B endfilter 5310 5320.tempdir 5330 EQUS "PinFilter:Temp." 5340 EQUB 0 5350 ALIGN 5360 5370.pin 5380 STMFD (sp)!,{R0-R4,link} 5390 LDR R4,[R12,#moduleflags] 5400 TST R4,#pilastsaveours 5410 LDMEQFD (sp)!,{R0-R4,pc} 5420 BIC R4,R4,#pilastsaveours 5430 STR R4,[R12,#moduleflags] 5440 ADR R2,pincommand 5450 ADD R3,R12,#workspace 5460 BL stringcopy 5470 ADD R2,R1,#44 5480 BL stringcopy 5490 MOV R0,#32 5500 STRB R0,[R3],#1 5510 MOV R4,R1 5520 MOV R1,R3 5530 MOV R2,#5 5540 LDR R0,[R4,#28] 5550 SUBS R0,R0,#90 5560 MOVLT R0,#0 5570 SWI "XOS_ConvertInteger2" 5580 MOV R0,#32 5590 STRB R0,[R1],#1 5600 MOV R2,#5 5610 LDR R0,[R4,#32] 5620 ADD R0,R0,#40 5630 SWI "XOS_ConvertInteger2" 5640 ADD R0,R12,#workspace 5650 SWI "XOS_CLI" 5660 LDMFD (sp)!,{R0-R4,pc} 5670 5680.piaddmessages 5690 STMFD (sp)!,{R0,link} 5700 ADR R0,pimessages 5710 SWI "XWimp_AddMessages" 5720 ORR R3,R3,#pimessagesadded 5730 STR R3,[R12,#moduleflags] 5740 LDMFD (sp)!,{R0,pc} 5750 5760.pimessages 5770 EQUD 1 5780 EQUD 0 5790 5800.icfilterinstall 5810 STMFD (sp)!,{R0,link} 5820 LDR R1,[R12,#moduleflags] 5830 TST R1,#icfilterinstalled 5840 LDMNEFD (sp)!,{R0,pc} ; if already installed, just exit 5850 TST R1,#iconiseon 5860 LDMEQFD (sp)!,{R0,pc} ; if not selected, exit 5870 ADR R0,icfiltername 5880 ADR R1,icfiltercode 5890 MOV R2,R12 5900 MOV R3,#0 5910 LDR R4,icfiltermask 5920 SWI "XFilter_RegisterPostFilter" 5930 LDMVSFD (sp)!,{R0,pc} 5940 LDR R1,[R12,#moduleflags] 5950 ORR R1,R1,#icfilterinstalled 5960 STR R1,[R12,#moduleflags] 5970 LDMFD (sp)!,{R0,pc} 5980 5990.icfilterremove 6000 STMFD (sp)!,{R0,link} 6010 LDR R1,[R12,#moduleflags] 6020 TST R1,#icfilterinstalled 6030 LDMEQFD (sp)!,{R0,pc} ; if not installed, just exit 6040 ADR R0,icfiltername 6050 ADR R1,icfiltercode 6060 MOV R2,R12 6070 MOV R3,#0 ; all tasks 6080 LDR R4,icfiltermask 6090 SWI "XFilter_DeRegisterPostFilter" 6100 LDR R1,[R12,#moduleflags] 6110 BIC R1,R1,#icfilterinstalled 6120 STR R1,[R12,#moduleflags] 6130 LDMFD (sp)!,{R0,pc} 6140 6150.icfiltername 6160 EQUS "Iconise" 6170 EQUB 0 6180 ALIGN 6190 6200.icfiltercode 6210 STMFD (sp)!,{R1-R11,link} 6220 TEQ R0,#3 6230 BNE endfilter 6240 MOV R3,R1 6250 6260 ADD R1,R12,#workspace 6270 SWI "XWimp_GetPointerInfo" 6280 LDR R7,[R1,#8] 6290 TEQ R7,#%110 6300 MOVNE R0,#3 6310 BNE endfilter 6320 6330 LDR R0,[R1,#12] 6340 STR R0,[R1,#0] ; stick window handle in block 6350 ORR R1,R1,#%01 ; bit 0 of R1 set, so doesn't read icons as well 6360 SWI "XWimp_GetWindowInfo" 6370 BIC R1,R1,#%01 ; clear it again, since require R1 word aligned 6380 6390 LDR R7,[R1,#(4+56)] ; window title icon-flags 6400 TST R7,#(1<<8) ; is it an indirected icon? 6410 ADDEQ R3,R1,#(4+72) ; if not, string stored at R1+76 6420 LDRNE R3,[R1,#(4+72)] ; if yes, load string pointer from R1+76 6430 ADD R4,R1,#28 ; store output string at R1+28 6440 MOV R5,R4 ; keep copy so can start over on reaching a . 6450 ADD R6,R4,#19 6460.dotloop 6470 LDRB R7,[R3],#1 ; load byte 6480 CMP R7,#32 6490 MOVLE R7,#0 ; if control char/space, terminate 6500 STRB R7,[R4],#1 ; our string with a NULL 6510 CMP R7,#ASC(".") ; if a dot, start our string again 6520 MOVEQ R4,R5 6530 BEQ dotloop 6540 CMP R4,R6 6550 MOVEQ R7,#0 6560 STREQB R7,[R4] 6570 CMP R7,#0 ; if not terminated, read next 6580 BNE dotloop ; char and repeat... 6590 6600 LDR R7,[R1,#0] ; load window handle 6610 STR R7,[R1,#20] ; window handle stored at R1+20 6620 6630 STR R2,[R1,#24] ; store task handle 6640 MOV R0,#48 6650 STR R0,[R1,#0] ; message is 48 bytes long 6660 MOV R0,#&40000 ; Message_iconize has code 6670 ADD R0,R0,#&CA ; &400CA 6680 STR R0,[R1,#16] 6690 6700 MOV R0,#17 6710 MOV R2,#0 6720 SWI "XWimp_SendMessage" ; fake a Message_Iconize 6730 6740 MVN R0,#(NOT -1) 6750 B endfilter 6760 6770.gettaskhandle 6780 STMFD (sp)!,{link} 6790 MOV R0,#0 6800.nexthandle 6810 ADD R1,R12,#pollblock ; use poll block as buffer for SWI 6820 MOV R2,#20 6830 SWI "XTaskManager_EnumerateTasks" 6840 BVS jumpout 6850 CMN R0,#1 6860 BEQ jumpout 6870 MOV R6,R0 6880 LDR R0,[R12,#(pollblock+4)] ; read task name 6890 MOV R3,R4 ; passed task name 6900 BL stringcompare 6910 MOV R0,R6 6920 CMP R3,#1 6930 LDREQ R3,[R12,#pollblock] 6940 LDMEQFD (sp)!,{pc} 6950 B nexthandle 6960.jumpout 6970 MOV R3,#0 6980 LDMFD (sp)!,{pc} 6990 7000.pincommand 7010 EQUS "Pin " 7020 EQUB 0 7030 ALIGN 7040 7050.stringcopy 7060 STMFD (sp)!,{R0,R2,link} 7070.stringcopyloop 7080 LDRB R0,[R2],#1 7090 STRB R0,[R3],#1 7100 CMP R0,#32 7110 BGE stringcopyloop 7120 SUB R3,R3,#1 7130 LDMFD (sp)!,{R0,R2,pc} 7140 7150.fiaddmessages 7160 STMFD (sp)!,{R0,link} 7170 ADR R0,fimessages 7180 SWI "XWimp_AddMessages" 7190 ORR R3,R3,#fimessagesadded 7200 STR R3,[R12,#moduleflags] 7210 LDMFD (sp)!,{R0,pc} 7220 7230.fimessages 7240 EQUD &400CC 7250 EQUD 0 7260 7270.finalcode 7280 STMFD (sp)!,{R7-R11,link} 7290 LDR R12,[R12] 7300 LDR R0,[R12,#myhandle] 7310 TEQ R0,#0 7320 BLE finalskip 7330 LDR R1,task 7340 SWI "XWimp_CloseDown" 7350 BL fifilterremove 7360 BL pifilterremove 7370 BL icfilterremove 7380.finalskip 7390 MOV R1,#0 7400 STR R1,[R12,#myhandle] 7410 MOV R0,#7 7420 MOV R2,R12 7430 SWI "XOS_Module" 7440 LDMFD (sp)!,{R7-R11,pc} 7450 7460.servicecode 7470 STMFD (sp)!,{link} 7480 LDR R12,[R12] 7490 TEQ R1,#&49 7500 BEQ startwimp 7510 TEQ R1,#&4A 7520 BEQ startedwimp 7530 TEQ R1,#&87 7540 BLEQ installall 7550 TEQ R1,#&88 7560 BEQ filtermanagerdying 7570 TEQ R1,#&27 7580 LDMNEFD (sp)!,{pc} 7590 MOV R14,#0 7600 STR R14,[R12,#myhandle] 7610 BL fifilterremove 7620 BL pifilterremove 7630 LDMFD (sp)!,{pc} 7640 7650.filtermanagerdying 7660 LDR R3,[R12,#moduleflags] 7670 BIC R3,R3,#(fifilterinstalled OR pifilterinstalled OR icfilterinstalled) 7680 STR R3,[R12,#moduleflags] 7690 LDMFD (sp)!,{pc} 7700 7710.startedwimp 7720 LDR R14,[R12,#myhandle] 7730 CMN R14,#1 7740 MOVEQ R14,#0 7750 STREQ R14,[R12,#myhandle] 7760 LDMFD (sp)!,{pc} 7770 7780.mymask 7790 EQUD %10000011100101110011 7800 7810.fifiltermask 7820 EQUD %10000011100101110011 7830 7840.pifiltermask 7850 EQUD %10000011100101100011 7860 7870.icfiltermask 7880 EQUD %11100011100101100011 7890] 7900NEXT pass% 7910ENDPROC
� >PinSource #� By KCE Software (Andrew Kemp) � � June 1994 (: 2� workspace : <Q� __________________________________________________________________________ FR� | offset | contents | PR� |--------------------------------------------------------------------------| ZR� | 0 | options flag word : bit 0 => Filer messages added | dR� | | bit 1 => Pinboard messages added | nR� | | bit 2 => Last save was ours | xR� | | bit 3 => FilerPin turned on | �R� | | bit 4 => PinFilter turned on | �R� | | bit 5 => Iconise turned on | �R� | | | �R� | | bit 16 => Filer filter installed | �R� | | bit 17 => Pinboard filter installed | �R� | | bit 18 => Iconise filter installed | �R� | 4 | my task handle | �R� | 8 | filer task handle | �R� | 12 | pinboard task handle | �R� | 16-271 | polling block | �R� | 272-291 | full descending stack, five registers | �R� |--------------------------------------------------------------------------| �R� | 16-319 | string workspace for filer filter... (overlaps polling block) | R� | | | R� | | 0 : mouse x | R� | | 4 : mouse y | "R� | | 8 : *command assembled here | ,Q� -------------------------------------------------------------------------- 6R� | 16-319 | workspace for iconise filter... (overlaps polling block) | @Q� -------------------------------------------------------------------------- J: Tmoduleflags = 0 ^myhandle = 4 hfihandle = 8 rpihandle = 12 |pollblock = 16 �Astack = 288 : � pointer to top word of descending stack �: �workspace = 16 �: �fimessagesadded = 1<<0 �pimessagesadded = 1<<1 �pilastsaveours = 1<<2 �filerpinon = 1<<3 �pinfilteron = 1<<4 �iconiseon = 1<<5 �fifilterinstalled = 1<<16 �pifilterinstalled = 1<<17 �icfilterinstalled = 1<<18 : run%=� #� � � 7:� �$;" at line ";�(�):� &: 0 �init : �assemble D$�save("PinFilter",&ffa,code%,O%) N� X: b� �init ldate$=��$,5,11) vversion$="1.07" �� code% &10000 �� �: �#� �save(file$,type%,base%,end%) �+ș "OS_File",10,file$,type%,,base%,end% �(� 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 4 EQUD helpstring > EQUD helptable H R.titlestring \ EQUS "PinFilter" f EQUB 0 p ALIGN z �.helpstring � EQUS "PinFilter" � EQUB 9 �( EQUS version$+" ("+date$+")" � EQUB 0 � ALIGN � �.helptable �' EQUS "Desktop_PinFilter" � EQUB 0 � ALIGN � EQUD starcommand � EQUD 0 EQUD 0 EQUD help EQUB 0 $ . .help 8 EQUB 13 BJ EQUS "Do not use *Desktop_PinFilter, use *Desktop instead." L EQUB 13 V EQUB 13 `L EQUS "PinFilter provides two improvements to the use of the " jP EQUS "RISC OS 3 pinboard. See the !Help file for details of the " t EQUS "patches." ~ EQUB 13 � EQUB 13 �; EQUS "PinFilter was written by Andrew Kemp." � EQUB 13 � 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 2' STMFD (sp)!,{R7-R11,link} < MOV R0,#6 F MOV R3,#292 P SWI "XOS_Module" Z BVS initexit d STR R2,[R12] n MOV R0,#0 x% STR R0,[R2,#myhandle] � LDRB R3,[R10] � CMP R3,#�("-") � BNE initexit � LDRB R3,[R10,#1] � CMP R3,#�("o") � BEQ readopts � .initexit �% LDMFD (sp)!,{R7-R11,pc} � � .readopts �@ �R R0,R0,#(filerpinon � pinfilteron � iconiseon) �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 6 BNE initexit @ MOV R0,#16 J LDR R2,[R12] T& ADD R2,R2,#moduleflags ^ MOV R3,#0 h SWI "XOS_File" r B initexit | � .pathname �- EQUS "<PinFilter$Dir>.Options" � EQUB 0 � ALIGN � �.starcommand � STMFD (sp)!,{link} � MOV R2,R0 �" ADR R1,titlestring � MOV R0,#2 � SWI "XOS_Module" � LDMFD (sp)!,{pc} � .task EQUS "TASK" &.startcode 0 LDR R12,[R12] :& LDR R0,[R12,#myhandle] D TEQ R0,#0 N LDRGT R1,task X% SWIGT "XWimp_CloseDown" b MOVGT R0,#0 l& STRGT R0,[R12,#myhandle] v � MOV R0,#308 � ADD R0,R0,#2 � LDR R1,task �" ADR R2,titlestring �! 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 4 CMPNE R0,#18 > BNE poll H LDR R0,[R1,#16] R- LDR R2,message_taskinitialise \ CMP R0,R2 f" BEQ taskinitialise p, LDR R2,message_taskclosedown z CMP R0,R2 �! BEQ taskclosedown � CMP R0,#0 � BNE poll �" BL fifilterremove �" BL pifilterremove �" BL icfilterremove �& 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 8 EQUD &400C3 B EQUD 0 L V.taskinitialise ` ADD R0,R1,#28 j ADR R3,finame t! BL stringcompare ~ CMP R3,#1 � LDREQ R3,[R1,#4] �# BLEQ fifilterinstall � ADR R3,piname �! BL stringcompare � CMP R3,#1 � LDREQ R3,[R1,#4] �# BLEQ pifilterinstall � B poll � �.taskclosedown � LDR R0,[R1,#4] �& LDR R2,[R12,#fihandle] CMP R0,R2 " BLEQ fifilterremove & LDR R2,[R12,#pihandle] CMP R0,R2 (" BLEQ pifilterremove 2 B poll < F.installall P# STMFD (sp)!,{R1,link} Z ADR R4,finame d! BL gettaskhandle n CMP R3,#0 x# BLNE fifilterinstall � ADR R4,piname �! BL gettaskhandle � CMP R3,#0 �# BLNE pifilterinstall �# BL icfilterinstall �! LDMFD (sp)!,{R1,pc} � �.finame � EQUS "Filer" � EQUB 0 � ALIGN � �.piname EQUS "Pinboard" EQUB 0 ALIGN " ,.stringcompare 6# STMFD (sp)!,{R0,link} @I.compareloop ; compares string pointed to by R0 JC LDRB R7,[R0],#1 ; with that pointed to by R3 TB LDRB R5,[R3],#1 ; returning 1 in R3 if same ^ CMP R7,R5 h MOVNE R3,#0 r! LDMNEFD (sp)!,{R0,pc} | CMP R5,#0 � BNE compareloop � MOV R3,#1 �! LDMFD (sp)!,{R0,pc} � �L.fifilterinstall ; pass fi task handle in R3 �# STMFD (sp)!,{R0,link} �) LDR R1,[R12,#moduleflags] �) TST R1,#fifilterinstalled �Q LDMNEFD (sp)!,{R0,pc} ; if already installed, just exit �" TST R1,#filerpinon �G LDMEQFD (sp)!,{R0,pc} ; if not selected, exit �# ADR R0,fifiltername �# ADR R1,fifiltercode P MOV R2,R12 ; note passes workspace pointer N LDR R4,fifiltermask ; not private word pointer as 9 SWI "XFilter_RegisterPostFilter" ; before && STRVC R3,[R12,#fihandle] 0) LDRVC R1,[R12,#moduleflags] :+ �RVC R1,R1,#fifilterinstalled D) STRVC R1,[R12,#moduleflags] N! LDMFD (sp)!,{R0,pc} X b.fifilterremove l# STMFD (sp)!,{R0,link} v) LDR R1,[R12,#moduleflags] �) TST R1,#fifilterinstalled �M LDMEQFD (sp)!,{R0,pc} ; if not installed, just exit �# ADR R0,fifiltername �# ADR R1,fifiltercode � MOV R2,R12 �& LDR R3,[R12,#fihandle] �# LDR R4,fifiltermask �2 SWI "XFilter_DeRegisterPostFilter" �) LDR R1,[R12,#moduleflags] �, BIC R1,R1,#fifilterinstalled �* BIC R1,R1,#fimessagesadded �) STR R1,[R12,#moduleflags] �! LDMFD (sp)!,{R0,pc} .fifiltercode ' STMFD (sp)!,{R1-R11,link} ) LDR R3,[R12,#moduleflags] *' TST R3,#fimessagesadded 4! BLEQ fiaddmessages > TEQ R0,#18 H BNE endfilter R LDR R2,[R1,#16] \! LDR R3,fimessages f CMP R3,R2 p BNE endfilter z LDR R0,[R1,#8] � STR R0,[R1,#12] � MOV R0,#19 � LDR R2,[R1,#4] �R SWI "XWimp_SendMessage" ; send acknowledge, to prevent iconisation � ADD R1,R1,#20 �T LDR R7,[R1] ; preserve window handle in R7 for later use �A SWI "XWimp_CloseWindow" ; close directory display � �P ADD R1,R12,#workspace ; use polling block as workspace �Q SWI "XWimp_GetPointerInfo" ; first two words of workspace are x,y � �Y ADD R1,R12,#workspace+8 ; offset so doesn't overwrite mouse coords � �R R1,R1,#%01 BIC R1,R1,#%10 ? STR R7,[R1,#0] ; using window handle ) SWI "XWimp_GetWindowInfo" $ .! ADR R2,pincommand 8V ADD R3,R12,#workspace+8 ; ok to overwrite start of window block BO BL stringcopy ; - only require title, at offset 76! L. LDR R2,[R12,#(workspace+8+76)] V BL stringcopy ` MOV R0,#32 jS STRB R0,[R3],#1 ; overwrite terminating null with a space t ~I ADD R4,R12,#workspace ; points to mouse position � MOV R1,R3 � MOV R2,#5 �3 LDR R0,[R4,#0] ; mouse x � SUB R0,R0,#90 � CMP R0,#0 � MOVLT R0,#0 �) SWI "XOS_ConvertInteger2" � MOV R0,#32 � STRB R0,[R1],#1 � MOV R2,#5 �2 LDR R0,[R4,#4] ; mouse y � ADD R0,R0,#40 ) SWI "XOS_ConvertInteger2" H ADD R0,R12,#workspace+8 ; command assembled at offset 8 SWI "XOS_CLI" 7 MVN R0,#(� -1) ; don't pass event on (.endfilter 2' LDMFD (sp)!,{R1-R11,link} < MOVS pc,link F P.fifiltername Z EQUS "FilerPin" d EQUB 0 n ALIGN x �L.pifilterinstall ; pass pi task handle in R3 �# STMFD (sp)!,{R0,link} �) LDR R1,[R12,#moduleflags] �) TST R1,#pifilterinstalled �Q LDMNEFD (sp)!,{R0,pc} ; if already installed, just exit �# TST R1,#pinfilteron �G LDMEQFD (sp)!,{R0,pc} ; if not selected, exit �# ADR R0,pifiltername �# ADR R1,pifiltercode �P MOV R2,R12 ; note passes workspace pointer �N LDR R4,pifiltermask ; not private word pointer as �9 SWI "XFilter_RegisterPostFilter" ; before �! LDMVSFD (sp)!,{R0,pc} & STR R3,[R12,#pihandle] ) LDR R1,[R12,#moduleflags] + �R R1,R1,#pifilterinstalled ") STR R1,[R12,#moduleflags] , MOV R0,#4 6% ADD R1,R12,#workspace @ MOV R2,R3 J' SWI "XWimp_SendMessage" T! LDMFD (sp)!,{R0,pc} ^ h.pifilterremove r# STMFD (sp)!,{R0,link} |) LDR R1,[R12,#moduleflags] �) TST R1,#pifilterinstalled �M LDMEQFD (sp)!,{R0,pc} ; if not installed, just exit �# ADR R0,pifiltername �# ADR R1,pifiltercode � MOV R2,R12 �& LDR R3,[R12,#pihandle] �# LDR R4,pifiltermask �2 SWI "XFilter_DeRegisterPostFilter" �) LDR R1,[R12,#moduleflags] �, BIC R1,R1,#pifilterinstalled �* BIC R1,R1,#pimessagesadded �) STR R1,[R12,#moduleflags] �! LDMFD (sp)!,{R0,pc} .pifiltername EQUS "PinFilter" & EQUB 0 0 ALIGN : D.pifiltercode N' STMFD (sp)!,{R1-R11,link} X) LDR R3,[R12,#moduleflags] b' TST R3,#pimessagesadded l! BLEQ piaddmessages v TEQ R0,#9 � BEQ menuselect � TEQ R0,#17 � TEQNE R0,#18 � BNE endfilter � LDR R2,[R1,#16] � CMP R2,#1 � BEQ gotdatasave � CMP R2,#3 � BNE endfilter � LDR R2,[R1,#12] � CMP R2,#0 � BEQ endfilter �C LDR R2,[R1,#8] ; send message_dataloadack STR R2,[R1,#12] MOV R2,#4 STR R2,[R1,#16] MOV R0,#17 * LDR R2,[R1,#4] 4' SWI "XWimp_SendMessage" > BL pin H MVN R0,#(� -1) R B endfilter \ f.menuselect p STMFD (sp)!,{R0} z LDR R2,[R1,#0] � CMP R2,#0 � LDMNEFD (sp)!,{R0} � BNE endfilter � ADR R2,fileropen �% ADD R3,R12,#workspace � BL stringcopy � ADR R2,tempdir � BL stringcopy � MOV R2,#0 � STRB R2,[R3,#-1] �% ADD R0,R12,#workspace � SWI "XOS_CLI" � LDMFD (sp)!,{R0} B endfilter .fileropen $$ EQUS "Filer_OpenDir " . EQUB 0 8 ALIGN B L.gotdatasave VE MOV R9,R1 ; checks window handle is backdrop! ` MOV R0,#18 j ADR R1,piname t SWI "XOS_Module" ~ BVS endfilter � LDR R4,[R4,#28] � MOV R1,R9 � LDR R0,[R1,#20] � CMP R0,R4 � BNE endfilter � � ADR R2,tempdir �% ADD R3,R12,#workspace � BL stringcopy � LDR R0,[R1,#8] � STR R0,[R1,#12] � ADD R2,R1,#44 * ADD R3,R12,#(workspace+32) BL stringcopy MOV R3,R2 % ADD R2,R12,#workspace ( BL stringcopy 2* ADD R2,R12,#(workspace+32) < BL stringcopy F MOV R0,#256 P STR R0,[R1] Z MOV R0,#2 d STR R0,[R1,#16] n MOV R0,#17 x LDR R2,[R1,#4] �' SWI "XWimp_SendMessage" � MVN R0,#(� -1) �) LDR R1,[R12,#moduleflags] �( �R R1,R1,#pilastsaveours �) STR R1,[R12,#moduleflags] � B endfilter � �.tempdir �% EQUS "PinFilter:Temp." � EQUB 0 � ALIGN � �.pin & STMFD (sp)!,{R0-R4,link} ) LDR R4,[R12,#moduleflags] & TST R4,#pilastsaveours "$ LDMEQFD (sp)!,{R0-R4,pc} ,) BIC R4,R4,#pilastsaveours 6) STR R4,[R12,#moduleflags] @! ADR R2,pincommand J% ADD R3,R12,#workspace T BL stringcopy ^ ADD R2,R1,#44 h BL stringcopy r MOV R0,#32 | STRB R0,[R3],#1 � MOV R4,R1 � MOV R1,R3 � MOV R2,#5 � LDR R0,[R4,#28] � SUBS R0,R0,#90 � MOVLT R0,#0 �) SWI "XOS_ConvertInteger2" � MOV R0,#32 � STRB R0,[R1],#1 � MOV R2,#5 � LDR R0,[R4,#32] � ADD R0,R0,#40 �) SWI "XOS_ConvertInteger2" % ADD R0,R12,#workspace SWI "XOS_CLI" $ LDMFD (sp)!,{R0-R4,pc} & 0.piaddmessages :# STMFD (sp)!,{R0,link} D! ADR R0,pimessages N' SWI "XWimp_AddMessages" X) �R R3,R3,#pimessagesadded b) STR R3,[R12,#moduleflags] l! LDMFD (sp)!,{R0,pc} v �.pimessages � EQUD 1 � EQUD 0 � �.icfilterinstall �# STMFD (sp)!,{R0,link} �) LDR R1,[R12,#moduleflags] �) TST R1,#icfilterinstalled �Q LDMNEFD (sp)!,{R0,pc} ; if already installed, just exit �! TST R1,#iconiseon �G LDMEQFD (sp)!,{R0,pc} ; if not selected, exit �# ADR R0,icfiltername �# ADR R1,icfiltercode MOV R2,R12 MOV R3,#0 # LDR R4,icfiltermask 0 SWI "XFilter_RegisterPostFilter" *! LDMVSFD (sp)!,{R0,pc} 4) LDR R1,[R12,#moduleflags] >+ �R R1,R1,#icfilterinstalled H) STR R1,[R12,#moduleflags] R! LDMFD (sp)!,{R0,pc} \ f.icfilterremove p# STMFD (sp)!,{R0,link} z) LDR R1,[R12,#moduleflags] �) TST R1,#icfilterinstalled �M LDMEQFD (sp)!,{R0,pc} ; if not installed, just exit �# ADR R0,icfiltername �# ADR R1,icfiltercode � MOV R2,R12 �; MOV R3,#0 ; all tasks �# LDR R4,icfiltermask �2 SWI "XFilter_DeRegisterPostFilter" �) LDR R1,[R12,#moduleflags] �, BIC R1,R1,#icfilterinstalled �) STR R1,[R12,#moduleflags] �! LDMFD (sp)!,{R0,pc} � .icfiltername EQUS "Iconise" EQUB 0 $ ALIGN . 8.icfiltercode B' STMFD (sp)!,{R1-R11,link} L TEQ R0,#3 V BNE endfilter ` MOV R3,R1 j t% ADD R1,R12,#workspace ~* SWI "XWimp_GetPointerInfo" � LDR R7,[R1,#8] � TEQ R7,#%110 � MOVNE R0,#3 � BNE endfilter � � LDR R0,[R1,#12] �A STR R0,[R1,#0] ; stick window handle in block �R �R R1,R1,#%01 ; bit 0 of R1 set, so doesn't read icons as well �) SWI "XWimp_GetWindowInfo" �R BIC R1,R1,#%01 ; clear it again, since require R1 word aligned � �? LDR R7,[R1,#(4+56)] ; window title icon-flags A TST R7,#(1<<8) ; is it an indirected icon? F ADDEQ R3,R1,#(4+72) ; if not, string stored at R1+76 N LDRNE R3,[R1,#(4+72)] ; if yes, load string pointer from R1+76 D ADD R4,R1,#28 ; store output string at R1+28 (S MOV R5,R4 ; keep copy so can start over on reaching a . 2 ADD R6,R4,#19 <.dotloop F= LDRB R7,[R3],#1 ; load byte P CMP R7,#32 ZT MOVLE R7,#0 ; if control char/space, terminate dJ STRB R7,[R4],#1 ; our string with a NULL nR CMP R7,#�(".") ; if a dot, start our string again x �Q R4,R5 � BEQ dotloop � CMP R4,R6 � �Q R7,#0 � STREQB R7,[R4] �P CMP R7,#0 ; if not terminated, read next �F BNE dotloop ; char and repeat... � �G LDR R7,[R1,#0] ; load window handle �R STR R7,[R1,#20] ; window handle stored at R1+20 � �F STR R2,[R1,#24] ; store task handle � MOV R0,#48 �M STR R0,[R1,#0] ; message is 48 bytes long M MOV R0,#&40000 ; Message_iconize has code ; ADD R0,R0,#&CA ; &400CA STR R0,[R1,#16] " , MOV R0,#17 6 MOV R2,#0 @K SWI "XWimp_SendMessage" ; fake a Message_Iconize J T MVN R0,#(� -1) ^ B endfilter h r.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 �@ MOV R3,R4 ; passed task name �! BL stringcompare � MOV R0,R6 CMP R3,#1 ' LDREQ R3,[R12,#pollblock] LDMEQFD (sp)!,{pc} & B nexthandle 0.jumpout : MOV R3,#0 D LDMFD (sp)!,{pc} N X.pincommand b EQUS "Pin " l EQUB 0 v ALIGN � �.stringcopy �& STMFD (sp)!,{R0,R2,link} �.stringcopyloop � LDRB R0,[R2],#1 � STRB R0,[R3],#1 � CMP R0,#32 �" BGE stringcopyloop � SUB R3,R3,#1 �$ LDMFD (sp)!,{R0,R2,pc} � �.fiaddmessages �# STMFD (sp)!,{R0,link} ! ADR R0,fimessages ' SWI "XWimp_AddMessages" ) �R R3,R3,#fimessagesadded ) STR R3,[R12,#moduleflags] *! LDMFD (sp)!,{R0,pc} 4 >.fimessages H EQUD &400CC R EQUD 0 \ f.finalcode p' STMFD (sp)!,{R7-R11,link} z LDR R12,[R12] �& LDR R0,[R12,#myhandle] � TEQ R0,#0 � BLE finalskip � LDR R1,task �% SWI "XWimp_CloseDown" �" BL fifilterremove �" BL pifilterremove �" BL icfilterremove �.finalskip � MOV R1,#0 �& STR R1,[R12,#myhandle] � MOV R0,#7 � MOV R2,R12 SWI "XOS_Module" % LDMFD (sp)!,{R7-R11,pc} $.servicecode . STMFD (sp)!,{link} 8 LDR R12,[R12] B TEQ R1,#&49 L BEQ startwimp V TEQ R1,#&4A ` BEQ startedwimp j TEQ R1,#&87 t BLEQ installall ~ TEQ R1,#&88 �& BEQ filtermanagerdying � TEQ R1,#&27 � LDMNEFD (sp)!,{pc} � MOV R14,#0 �' STR R14,[R12,#myhandle] �" BL fifilterremove �" BL pifilterremove � LDMFD (sp)!,{pc} � �.filtermanagerdying �) LDR R3,[R12,#moduleflags] �V BIC R3,R3,#(fifilterinstalled � pifilterinstalled � icfilterinstalled) ) STR R3,[R12,#moduleflags] LDMFD (sp)!,{pc} .startedwimp (' LDR R14,[R12,#myhandle] 2 CMN R14,#1 < �Q R14,#0 F' STREQ R14,[R12,#myhandle] P LDMFD (sp)!,{pc} Z d.mymask n) EQUD %10000011100101110011 x �.fifiltermask �) EQUD %10000011100101110011 � �.pifiltermask �) EQUD %10000011100101100011 � �.icfiltermask �) EQUD %11100011100101100011 �] �� pass% �� �
00000000 0d 00 0a 10 f4 20 3e 50 69 6e 53 6f 75 72 63 65 |..... >PinSource| 00000010 0d 00 14 23 f4 20 42 79 20 4b 43 45 20 53 6f 66 |...#. By KCE Sof| 00000020 74 77 61 72 65 20 28 41 6e 64 72 65 77 20 4b 65 |tware (Andrew Ke| 00000030 6d 70 29 0d 00 1e 11 f4 20 a9 20 4a 75 6e 65 20 |mp)..... . June | 00000040 31 39 39 34 0d 00 28 05 3a 0d 00 32 11 f4 20 77 |1994..(.:..2.. w| 00000050 6f 72 6b 73 70 61 63 65 20 3a 0d 00 3c 51 f4 20 |orkspace :..<Q. | 00000060 20 5f 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 0d 00 46 52 f4 |___________..FR.| 000000b0 20 7c 20 20 6f 66 66 73 65 74 20 7c 20 63 6f 6e | | offset | con| 000000c0 74 65 6e 74 73 20 20 20 20 20 20 20 20 20 20 20 |tents | 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 7c 0d 00 50 | |..P| 00000100 52 f4 20 7c 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d |R. |------------| 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 7c 0d |--------------|.| 00000150 00 5a 52 f4 20 7c 20 20 20 20 20 20 20 30 20 7c |.ZR. | 0 || 00000160 20 6f 70 74 69 6f 6e 73 20 66 6c 61 67 20 77 6f | options flag wo| 00000170 72 64 20 3a 20 62 69 74 20 30 20 3d 3e 20 46 69 |rd : bit 0 => Fi| 00000180 6c 65 72 20 6d 65 73 73 61 67 65 73 20 61 64 64 |ler messages add| 00000190 65 64 20 20 20 20 20 20 20 20 20 20 20 20 20 20 |ed | 000001a0 7c 0d 00 64 52 f4 20 7c 20 20 20 20 20 20 20 20 ||..dR. | | 000001b0 20 7c 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | | | 000001c0 20 20 20 20 20 20 20 62 69 74 20 31 20 3d 3e 20 | bit 1 => | 000001d0 50 69 6e 62 6f 61 72 64 20 6d 65 73 73 61 67 65 |Pinboard message| 000001e0 73 20 61 64 64 65 64 20 20 20 20 20 20 20 20 20 |s added | 000001f0 20 20 7c 0d 00 6e 52 f4 20 7c 20 20 20 20 20 20 | |..nR. | | 00000200 20 20 20 7c 20 20 20 20 20 20 20 20 20 20 20 20 | | | 00000210 20 20 20 20 20 20 20 20 20 62 69 74 20 32 20 3d | bit 2 =| 00000220 3e 20 4c 61 73 74 20 73 61 76 65 20 77 61 73 20 |> Last save was | 00000230 6f 75 72 73 20 20 20 20 20 20 20 20 20 20 20 20 |ours | 00000240 20 20 20 20 7c 0d 00 78 52 f4 20 7c 20 20 20 20 | |..xR. | | 00000250 20 20 20 20 20 7c 20 20 20 20 20 20 20 20 20 20 | | | 00000260 20 20 20 20 20 20 20 20 20 20 20 62 69 74 20 33 | bit 3| 00000270 20 3d 3e 20 46 69 6c 65 72 50 69 6e 20 74 75 72 | => FilerPin tur| 00000280 6e 65 64 20 6f 6e 20 20 20 20 20 20 20 20 20 20 |ned on | 00000290 20 20 20 20 20 20 7c 0d 00 82 52 f4 20 7c 20 20 | |...R. | | 000002a0 20 20 20 20 20 20 20 7c 20 20 20 20 20 20 20 20 | | | 000002b0 20 20 20 20 20 20 20 20 20 20 20 20 20 62 69 74 | bit| 000002c0 20 34 20 3d 3e 20 50 69 6e 46 69 6c 74 65 72 20 | 4 => PinFilter | 000002d0 74 75 72 6e 65 64 20 6f 6e 20 20 20 20 20 20 20 |turned on | 000002e0 20 20 20 20 20 20 20 20 7c 0d 00 8c 52 f4 20 7c | |...R. || 000002f0 20 20 20 20 20 20 20 20 20 7c 20 20 20 20 20 20 | | | 00000300 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 62 | b| 00000310 69 74 20 35 20 3d 3e 20 49 63 6f 6e 69 73 65 20 |it 5 => Iconise | 00000320 74 75 72 6e 65 64 20 6f 6e 20 20 20 20 20 20 20 |turned on | 00000330 20 20 20 20 20 20 20 20 20 20 7c 0d 00 96 52 f4 | |...R.| 00000340 20 7c 20 20 20 20 20 20 20 20 20 7c 20 20 20 20 | | | | 00000350 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | | * 00000380 20 20 20 20 20 20 20 20 20 20 20 20 7c 0d 00 a0 | |...| 00000390 52 f4 20 7c 20 20 20 20 20 20 20 20 20 7c 20 20 |R. | | | 000003a0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | | 000003b0 20 20 20 62 69 74 20 31 36 20 3d 3e 20 46 69 6c | bit 16 => Fil| 000003c0 65 72 20 66 69 6c 74 65 72 20 69 6e 73 74 61 6c |er filter instal| 000003d0 6c 65 64 20 20 20 20 20 20 20 20 20 20 20 7c 0d |led |.| 000003e0 00 aa 52 f4 20 7c 20 20 20 20 20 20 20 20 20 7c |..R. | || 000003f0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | | 00000400 20 20 20 20 20 62 69 74 20 31 37 20 3d 3e 20 50 | bit 17 => P| 00000410 69 6e 62 6f 61 72 64 20 66 69 6c 74 65 72 20 69 |inboard filter i| 00000420 6e 73 74 61 6c 6c 65 64 20 20 20 20 20 20 20 20 |nstalled | 00000430 7c 0d 00 b4 52 f4 20 7c 20 20 20 20 20 20 20 20 ||...R. | | 00000440 20 7c 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | | | 00000450 20 20 20 20 20 20 20 62 69 74 20 31 38 20 3d 3e | bit 18 =>| 00000460 20 49 63 6f 6e 69 73 65 20 66 69 6c 74 65 72 20 | Iconise filter | 00000470 69 6e 73 74 61 6c 6c 65 64 20 20 20 20 20 20 20 |installed | 00000480 20 20 7c 0d 00 be 52 f4 20 7c 20 20 20 20 20 20 | |...R. | | 00000490 20 34 20 7c 20 6d 79 20 74 61 73 6b 20 68 61 6e | 4 | my task han| 000004a0 64 6c 65 20 20 20 20 20 20 20 20 20 20 20 20 20 |dle | 000004b0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | | * 000004d0 20 20 20 20 7c 0d 00 c8 52 f4 20 7c 20 20 20 20 | |...R. | | 000004e0 20 20 20 38 20 7c 20 66 69 6c 65 72 20 74 61 73 | 8 | filer tas| 000004f0 6b 20 68 61 6e 64 6c 65 20 20 20 20 20 20 20 20 |k 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 7c 0d 00 d2 52 f4 20 7c 20 20 | |...R. | | 00000530 20 20 20 20 31 32 20 7c 20 70 69 6e 62 6f 61 72 | 12 | pinboar| 00000540 64 20 74 61 73 6b 20 68 61 6e 64 6c 65 20 20 20 |d task handle | 00000550 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 7c 0d 00 dc 52 f4 20 7c | |...R. || 00000580 20 20 31 36 2d 32 37 31 20 7c 20 70 6f 6c 6c 69 | 16-271 | polli| 00000590 6e 67 20 62 6c 6f 63 6b 20 20 20 20 20 20 20 20 |ng block | 000005a0 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 7c 0d 00 e6 52 f4 | |...R.| 000005d0 20 7c 20 32 37 32 2d 32 39 31 20 7c 20 66 75 6c | | 272-291 | ful| 000005e0 6c 20 64 65 73 63 65 6e 64 69 6e 67 20 73 74 61 |l descending sta| 000005f0 63 6b 2c 20 66 69 76 65 20 72 65 67 69 73 74 65 |ck, five registe| 00000600 72 73 20 20 20 20 20 20 20 20 20 20 20 20 20 20 |rs | 00000610 20 20 20 20 20 20 20 20 20 20 20 20 7c 0d 00 f0 | |...| 00000620 52 f4 20 7c 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d |R. |------------| 00000630 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d |----------------| * 00000660 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 7c 0d |--------------|.| 00000670 00 fa 52 f4 20 7c 20 20 31 36 2d 33 31 39 20 7c |..R. | 16-319 || 00000680 20 73 74 72 69 6e 67 20 77 6f 72 6b 73 70 61 63 | string workspac| 00000690 65 20 66 6f 72 20 66 69 6c 65 72 20 66 69 6c 74 |e for filer filt| 000006a0 65 72 2e 2e 2e 20 28 6f 76 65 72 6c 61 70 73 20 |er... (overlaps | 000006b0 70 6f 6c 6c 69 6e 67 20 62 6c 6f 63 6b 29 20 20 |polling block) | 000006c0 7c 0d 01 04 52 f4 20 7c 20 20 20 20 20 20 20 20 ||...R. | | 000006d0 20 7c 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | | | 000006e0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | | * 00000710 20 20 7c 0d 01 0e 52 f4 20 7c 20 20 20 20 20 20 | |...R. | | 00000720 20 20 20 7c 20 20 20 20 30 20 3a 20 6d 6f 75 73 | | 0 : mous| 00000730 65 20 78 20 20 20 20 20 20 20 20 20 20 20 20 20 |e x | 00000740 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | | * 00000760 20 20 20 20 7c 0d 01 18 52 f4 20 7c 20 20 20 20 | |...R. | | 00000770 20 20 20 20 20 7c 20 20 20 20 34 20 3a 20 6d 6f | | 4 : mo| 00000780 75 73 65 20 79 20 20 20 20 20 20 20 20 20 20 20 |use y | 00000790 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | | * 000007b0 20 20 20 20 20 20 7c 0d 01 22 52 f4 20 7c 20 20 | |.."R. | | 000007c0 20 20 20 20 20 20 20 7c 20 20 20 20 38 20 3a 20 | | 8 : | 000007d0 2a 63 6f 6d 6d 61 6e 64 20 61 73 73 65 6d 62 6c |*command assembl| 000007e0 65 64 20 68 65 72 65 20 20 20 20 20 20 20 20 20 |ed here | 000007f0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | | 00000800 20 20 20 20 20 20 20 20 7c 0d 01 2c 51 f4 20 20 | |..,Q. | 00000810 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d |----------------| * 00000850 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 0d 01 36 52 f4 20 |----------..6R. | 00000860 7c 20 20 31 36 2d 33 31 39 20 7c 20 77 6f 72 6b || 16-319 | work| 00000870 73 70 61 63 65 20 66 6f 72 20 69 63 6f 6e 69 73 |space for iconis| 00000880 65 20 66 69 6c 74 65 72 2e 2e 2e 20 28 6f 76 65 |e filter... (ove| 00000890 72 6c 61 70 73 20 70 6f 6c 6c 69 6e 67 20 62 6c |rlaps polling bl| 000008a0 6f 63 6b 29 20 20 20 20 20 20 20 7c 0d 01 40 51 |ock) |..@Q| 000008b0 f4 20 20 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d |. -------------| 000008c0 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d |----------------| * 000008f0 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 0d 01 4a |-------------..J| 00000900 05 3a 0d 01 54 15 6d 6f 64 75 6c 65 66 6c 61 67 |.:..T.moduleflag| 00000910 73 20 3d 20 20 20 30 0d 01 5e 15 6d 79 68 61 6e |s = 0..^.myhan| 00000920 64 6c 65 20 20 20 20 3d 20 20 20 34 0d 01 68 15 |dle = 4..h.| 00000930 66 69 68 61 6e 64 6c 65 20 20 20 20 3d 20 20 20 |fihandle = | 00000940 38 0d 01 72 15 70 69 68 61 6e 64 6c 65 20 20 20 |8..r.pihandle | 00000950 20 3d 20 20 31 32 0d 01 7c 15 70 6f 6c 6c 62 6c | = 12..|.pollbl| 00000960 6f 63 6b 20 20 20 3d 20 20 31 36 0d 01 86 41 73 |ock = 16...As| 00000970 74 61 63 6b 20 20 20 20 20 20 20 3d 20 32 38 38 |tack = 288| 00000980 20 3a 20 f4 20 70 6f 69 6e 74 65 72 20 74 6f 20 | : . pointer to | 00000990 74 6f 70 20 77 6f 72 64 20 6f 66 20 64 65 73 63 |top word of desc| 000009a0 65 6e 64 69 6e 67 20 73 74 61 63 6b 0d 01 90 05 |ending stack....| 000009b0 3a 0d 01 9a 15 77 6f 72 6b 73 70 61 63 65 20 20 |:....workspace | 000009c0 20 3d 20 20 31 36 0d 01 a4 05 3a 0d 01 ae 1d 66 | = 16....:....f| 000009d0 69 6d 65 73 73 61 67 65 73 61 64 64 65 64 20 20 |imessagesadded | 000009e0 20 3d 20 20 31 3c 3c 30 0d 01 b8 1d 70 69 6d 65 | = 1<<0....pime| 000009f0 73 73 61 67 65 73 61 64 64 65 64 20 20 20 3d 20 |ssagesadded = | 00000a00 20 31 3c 3c 31 0d 01 c2 1d 70 69 6c 61 73 74 73 | 1<<1....pilasts| 00000a10 61 76 65 6f 75 72 73 20 20 20 20 3d 20 20 31 3c |aveours = 1<| 00000a20 3c 32 0d 01 cc 1d 66 69 6c 65 72 70 69 6e 6f 6e |<2....filerpinon| 00000a30 20 20 20 20 20 20 20 20 3d 20 20 31 3c 3c 33 0d | = 1<<3.| 00000a40 01 d6 1d 70 69 6e 66 69 6c 74 65 72 6f 6e 20 20 |...pinfilteron | 00000a50 20 20 20 20 20 3d 20 20 31 3c 3c 34 0d 01 e0 1d | = 1<<4....| 00000a60 69 63 6f 6e 69 73 65 6f 6e 20 20 20 20 20 20 20 |iconiseon | 00000a70 20 20 3d 20 20 31 3c 3c 35 0d 01 ea 1d 66 69 66 | = 1<<5....fif| 00000a80 69 6c 74 65 72 69 6e 73 74 61 6c 6c 65 64 20 3d |ilterinstalled =| 00000a90 20 31 3c 3c 31 36 0d 01 f4 1d 70 69 66 69 6c 74 | 1<<16....pifilt| 00000aa0 65 72 69 6e 73 74 61 6c 6c 65 64 20 3d 20 31 3c |erinstalled = 1<| 00000ab0 3c 31 37 0d 01 fe 1d 69 63 66 69 6c 74 65 72 69 |<17....icfilteri| 00000ac0 6e 73 74 61 6c 6c 65 64 20 3d 20 31 3c 3c 31 38 |nstalled = 1<<18| 00000ad0 0d 02 08 05 3a 0d 02 12 0a 72 75 6e 25 3d a3 0d |....:....run%=..| 00000ae0 02 1c 23 ee 20 85 20 ef 20 37 3a f1 20 f6 24 3b |..#. . . 7:. .$;| 00000af0 22 20 61 74 20 6c 69 6e 65 20 22 3b c3 28 9e 29 |" at line ";.(.)| 00000b00 3a e0 0d 02 26 05 3a 0d 02 30 09 f2 69 6e 69 74 |:...&.:..0..init| 00000b10 0d 02 3a 0d f2 61 73 73 65 6d 62 6c 65 0d 02 44 |..:..assemble..D| 00000b20 24 f2 73 61 76 65 28 22 50 69 6e 46 69 6c 74 65 |$.save("PinFilte| 00000b30 72 22 2c 26 66 66 61 2c 63 6f 64 65 25 2c 4f 25 |r",&ffa,code%,O%| 00000b40 29 0d 02 4e 05 e0 0d 02 58 05 3a 0d 02 62 0b dd |)..N....X.:..b..| 00000b50 20 f2 69 6e 69 74 0d 02 6c 13 64 61 74 65 24 3d | .init..l.date$=| 00000b60 c1 91 24 2c 35 2c 31 31 29 0d 02 76 13 76 65 72 |..$,5,11)..v.ver| 00000b70 73 69 6f 6e 24 3d 22 31 2e 30 37 22 0d 02 80 12 |sion$="1.07"....| 00000b80 de 20 63 6f 64 65 25 20 26 31 30 30 30 30 0d 02 |. code% &10000..| 00000b90 8a 05 e1 0d 02 94 05 3a 0d 02 9e 23 dd 20 f2 73 |.......:...#. .s| 00000ba0 61 76 65 28 66 69 6c 65 24 2c 74 79 70 65 25 2c |ave(file$,type%,| 00000bb0 62 61 73 65 25 2c 65 6e 64 25 29 0d 02 a8 2b c8 |base%,end%)...+.| 00000bc0 99 20 22 4f 53 5f 46 69 6c 65 22 2c 31 30 2c 66 |. "OS_File",10,f| 00000bd0 69 6c 65 24 2c 74 79 70 65 25 2c 2c 62 61 73 65 |ile$,type%,,base| 00000be0 25 2c 65 6e 64 25 0d 02 b2 28 e7 20 72 75 6e 25 |%,end%...(. run%| 00000bf0 20 8c 20 c8 99 20 22 4f 53 5f 43 4c 49 22 2c 22 | . .. "OS_CLI","| 00000c00 52 4d 4c 6f 61 64 20 22 2b 66 69 6c 65 24 0d 02 |RMLoad "+file$..| 00000c10 bc 05 e1 0d 02 c6 05 3a 0d 02 d0 0f dd 20 f2 61 |.......:..... .a| 00000c20 73 73 65 6d 62 6c 65 0d 02 da 20 77 70 3d 31 32 |ssemble... wp=12| 00000c30 3a 20 73 70 3d 31 33 3a 20 6c 69 6e 6b 3d 31 34 |: sp=13: link=14| 00000c40 3a 20 70 63 3d 31 35 0d 02 e4 15 e3 20 70 61 73 |: pc=15..... pas| 00000c50 73 25 3d 34 20 b8 20 36 20 88 20 32 0d 02 ee 12 |s%=4 . 6 . 2....| 00000c60 50 25 3d 30 3a 20 4f 25 3d 63 6f 64 65 25 0d 02 |P%=0: O%=code%..| 00000c70 f8 0e 5b 4f 50 54 20 70 61 73 73 25 0d 03 02 1d |..[OPT pass%....| 00000c80 20 20 20 20 20 20 20 20 45 51 55 44 20 20 20 20 | EQUD | 00000c90 73 74 61 72 74 63 6f 64 65 0d 03 0c 1c 20 20 20 |startcode.... | 00000ca0 20 20 20 20 20 45 51 55 44 20 20 20 20 69 6e 69 | EQUD ini| 00000cb0 74 63 6f 64 65 0d 03 16 1d 20 20 20 20 20 20 20 |tcode.... | 00000cc0 20 45 51 55 44 20 20 20 20 66 69 6e 61 6c 63 6f | EQUD finalco| 00000cd0 64 65 0d 03 20 1f 20 20 20 20 20 20 20 20 45 51 |de.. . EQ| 00000ce0 55 44 20 20 20 20 73 65 72 76 69 63 65 63 6f 64 |UD servicecod| 00000cf0 65 0d 03 2a 1f 20 20 20 20 20 20 20 20 45 51 55 |e..*. EQU| 00000d00 44 20 20 20 20 74 69 74 6c 65 73 74 72 69 6e 67 |D titlestring| 00000d10 0d 03 34 1e 20 20 20 20 20 20 20 20 45 51 55 44 |..4. EQUD| 00000d20 20 20 20 20 68 65 6c 70 73 74 72 69 6e 67 0d 03 | helpstring..| 00000d30 3e 1d 20 20 20 20 20 20 20 20 45 51 55 44 20 20 |>. EQUD | 00000d40 20 20 68 65 6c 70 74 61 62 6c 65 0d 03 48 04 0d | helptable..H..| 00000d50 03 52 10 2e 74 69 74 6c 65 73 74 72 69 6e 67 0d |.R..titlestring.| 00000d60 03 5c 1f 20 20 20 20 20 20 20 20 45 51 55 53 20 |.\. EQUS | 00000d70 20 20 20 22 50 69 6e 46 69 6c 74 65 72 22 0d 03 | "PinFilter"..| 00000d80 66 15 20 20 20 20 20 20 20 20 45 51 55 42 20 20 |f. EQUB | 00000d90 20 20 30 0d 03 70 11 20 20 20 20 20 20 20 20 41 | 0..p. A| 00000da0 4c 49 47 4e 0d 03 7a 04 0d 03 84 0f 2e 68 65 6c |LIGN..z......hel| 00000db0 70 73 74 72 69 6e 67 0d 03 8e 1c 20 20 20 20 20 |pstring.... | 00000dc0 20 20 20 45 51 55 53 20 22 50 69 6e 46 69 6c 74 | EQUS "PinFilt| 00000dd0 65 72 22 0d 03 98 12 20 20 20 20 20 20 20 20 45 |er".... E| 00000de0 51 55 42 20 39 0d 03 a2 28 20 20 20 20 20 20 20 |QUB 9...( | 00000df0 20 45 51 55 53 20 76 65 72 73 69 6f 6e 24 2b 22 | EQUS version$+"| 00000e00 20 28 22 2b 64 61 74 65 24 2b 22 29 22 0d 03 ac | ("+date$+")"...| 00000e10 12 20 20 20 20 20 20 20 20 45 51 55 42 20 30 0d |. EQUB 0.| 00000e20 03 b6 11 20 20 20 20 20 20 20 20 41 4c 49 47 4e |... ALIGN| 00000e30 0d 03 c0 04 0d 03 ca 0e 2e 68 65 6c 70 74 61 62 |.........helptab| 00000e40 6c 65 0d 03 d4 27 20 20 20 20 20 20 20 20 45 51 |le...' EQ| 00000e50 55 53 20 20 20 20 22 44 65 73 6b 74 6f 70 5f 50 |US "Desktop_P| 00000e60 69 6e 46 69 6c 74 65 72 22 0d 03 de 15 20 20 20 |inFilter".... | 00000e70 20 20 20 20 20 45 51 55 42 20 20 20 20 30 0d 03 | EQUB 0..| 00000e80 e8 11 20 20 20 20 20 20 20 20 41 4c 49 47 4e 0d |.. ALIGN.| 00000e90 03 f2 1f 20 20 20 20 20 20 20 20 45 51 55 44 20 |... EQUD | 00000ea0 20 20 20 73 74 61 72 63 6f 6d 6d 61 6e 64 0d 03 | starcommand..| 00000eb0 fc 15 20 20 20 20 20 20 20 20 45 51 55 44 20 20 |.. EQUD | 00000ec0 20 20 30 0d 04 06 15 20 20 20 20 20 20 20 20 45 | 0.... E| 00000ed0 51 55 44 20 20 20 20 30 0d 04 10 18 20 20 20 20 |QUD 0.... | 00000ee0 20 20 20 20 45 51 55 44 20 20 20 20 68 65 6c 70 | EQUD help| 00000ef0 0d 04 1a 15 20 20 20 20 20 20 20 20 45 51 55 42 |.... EQUB| 00000f00 20 20 20 20 30 0d 04 24 04 0d 04 2e 09 2e 68 65 | 0..$......he| 00000f10 6c 70 0d 04 38 16 20 20 20 20 20 20 20 20 45 51 |lp..8. EQ| 00000f20 55 42 20 20 20 20 31 33 0d 04 42 4a 20 20 20 20 |UB 13..BJ | 00000f30 20 20 20 20 45 51 55 53 20 20 20 20 22 44 6f 20 | EQUS "Do | 00000f40 6e 6f 74 20 75 73 65 20 2a 44 65 73 6b 74 6f 70 |not use *Desktop| 00000f50 5f 50 69 6e 46 69 6c 74 65 72 2c 20 75 73 65 20 |_PinFilter, use | 00000f60 2a 44 65 73 6b 74 6f 70 20 69 6e 73 74 65 61 64 |*Desktop instead| 00000f70 2e 22 0d 04 4c 16 20 20 20 20 20 20 20 20 45 51 |."..L. EQ| 00000f80 55 42 20 20 20 20 31 33 0d 04 56 16 20 20 20 20 |UB 13..V. | 00000f90 20 20 20 20 45 51 55 42 20 20 20 20 31 33 0d 04 | EQUB 13..| 00000fa0 60 4c 20 20 20 20 20 20 20 20 45 51 55 53 20 20 |`L EQUS | 00000fb0 20 20 22 50 69 6e 46 69 6c 74 65 72 20 70 72 6f | "PinFilter pro| 00000fc0 76 69 64 65 73 20 74 77 6f 20 69 6d 70 72 6f 76 |vides two improv| 00000fd0 65 6d 65 6e 74 73 20 74 6f 20 74 68 65 20 75 73 |ements to the us| 00000fe0 65 20 6f 66 20 74 68 65 20 22 0d 04 6a 50 20 20 |e of the "..jP | 00000ff0 20 20 20 20 20 20 45 51 55 53 20 20 20 20 22 52 | EQUS "R| 00001000 49 53 43 20 4f 53 20 33 20 70 69 6e 62 6f 61 72 |ISC OS 3 pinboar| 00001010 64 2e 20 53 65 65 20 74 68 65 20 21 48 65 6c 70 |d. See the !Help| 00001020 20 66 69 6c 65 20 66 6f 72 20 64 65 74 61 69 6c | file for detail| 00001030 73 20 6f 66 20 74 68 65 20 22 0d 04 74 1e 20 20 |s of the "..t. | 00001040 20 20 20 20 20 20 45 51 55 53 20 20 20 20 22 70 | EQUS "p| 00001050 61 74 63 68 65 73 2e 22 0d 04 7e 16 20 20 20 20 |atches."..~. | 00001060 20 20 20 20 45 51 55 42 20 20 20 20 31 33 0d 04 | EQUB 13..| 00001070 88 16 20 20 20 20 20 20 20 20 45 51 55 42 20 20 |.. EQUB | 00001080 20 20 31 33 0d 04 92 3b 20 20 20 20 20 20 20 20 | 13...; | 00001090 45 51 55 53 20 20 20 20 22 50 69 6e 46 69 6c 74 |EQUS "PinFilt| 000010a0 65 72 20 77 61 73 20 77 72 69 74 74 65 6e 20 62 |er was written b| 000010b0 79 20 41 6e 64 72 65 77 20 4b 65 6d 70 2e 22 0d |y Andrew Kemp.".| 000010c0 04 9c 16 20 20 20 20 20 20 20 20 45 51 55 42 20 |... EQUB | 000010d0 20 20 20 31 33 0d 04 a6 16 20 20 20 20 20 20 20 | 13.... | 000010e0 20 45 51 55 42 20 20 20 20 31 33 0d 04 b0 3b 20 | EQUB 13...; | 000010f0 20 20 20 20 20 20 20 45 51 55 53 20 20 20 20 22 | EQUS "| 00001100 a9 20 4b 43 45 20 53 6f 66 74 77 61 72 65 2c 20 |. KCE Software, | 00001110 4a 75 6e 65 20 31 39 39 34 2e 22 2b bd 28 31 33 |June 1994."+.(13| 00001120 29 2b bd 28 30 29 0d 04 ba 11 20 20 20 20 20 20 |)+.(0).... | 00001130 20 20 41 4c 49 47 4e 0d 04 c4 04 0d 04 ce 0e 2e | ALIGN.........| 00001140 73 74 61 72 74 77 69 6d 70 0d 04 d8 27 20 20 20 |startwimp...' | 00001150 20 20 20 20 20 4c 44 52 20 20 20 20 20 52 31 34 | LDR R14| 00001160 2c 5b 52 31 32 2c 23 6d 79 68 61 6e 64 6c 65 5d |,[R12,#myhandle]| 00001170 0d 04 e2 1a 20 20 20 20 20 20 20 20 54 45 51 20 |.... TEQ | 00001180 20 20 20 20 52 31 34 2c 23 30 0d 04 ec 1f 20 20 | R14,#0.... | 00001190 20 20 20 20 20 20 4d 56 4e 45 51 20 20 20 52 31 | MVNEQ R1| 000011a0 34 2c 23 28 ac 20 2d 31 29 0d 04 f6 27 20 20 20 |4,#(. -1)...' | 000011b0 20 20 20 20 20 53 54 52 45 51 20 20 20 52 31 34 | STREQ R14| 000011c0 2c 5b 52 31 32 2c 23 6d 79 68 61 6e 64 6c 65 5d |,[R12,#myhandle]| 000011d0 0d 05 00 20 20 20 20 20 20 20 20 20 41 44 52 45 |... ADRE| 000011e0 51 20 20 20 52 30 2c 68 65 6c 70 74 61 62 6c 65 |Q R0,helptable| 000011f0 0d 05 0a 16 20 20 20 20 20 20 20 20 ec 51 20 20 |.... .Q | 00001200 20 52 31 2c 23 30 0d 05 14 1e 20 20 20 20 20 20 | R1,#0.... | 00001210 20 20 4c 44 4d 46 44 20 20 20 28 73 70 29 21 2c | LDMFD (sp)!,| 00001220 7b 70 63 7d 0d 05 1e 04 0d 05 28 0d 2e 69 6e 69 |{pc}......(..ini| 00001230 74 63 6f 64 65 0d 05 32 27 20 20 20 20 20 20 20 |tcode..2' | 00001240 20 53 54 4d 46 44 20 20 20 28 73 70 29 21 2c 7b | STMFD (sp)!,{| 00001250 52 37 2d 52 31 31 2c 6c 69 6e 6b 7d 0d 05 3c 19 |R7-R11,link}..<.| 00001260 20 20 20 20 20 20 20 20 4d 4f 56 20 20 20 20 20 | MOV | 00001270 52 30 2c 23 36 0d 05 46 1b 20 20 20 20 20 20 20 |R0,#6..F. | 00001280 20 4d 4f 56 20 20 20 20 20 52 33 2c 23 32 39 32 | MOV R3,#292| 00001290 0d 05 50 20 20 20 20 20 20 20 20 20 53 57 49 20 |..P SWI | 000012a0 20 20 20 20 22 58 4f 53 5f 4d 6f 64 75 6c 65 22 | "XOS_Module"| 000012b0 0d 05 5a 1c 20 20 20 20 20 20 20 20 42 56 53 20 |..Z. BVS | 000012c0 20 20 20 20 69 6e 69 74 65 78 69 74 0d 05 64 1c | initexit..d.| 000012d0 20 20 20 20 20 20 20 20 53 54 52 20 20 20 20 20 | STR | 000012e0 52 32 2c 5b 52 31 32 5d 0d 05 6e 19 20 20 20 20 |R2,[R12]..n. | 000012f0 20 20 20 20 4d 4f 56 20 20 20 20 20 52 30 2c 23 | MOV R0,#| 00001300 30 0d 05 78 25 20 20 20 20 20 20 20 20 53 54 52 |0..x% STR| 00001310 20 20 20 20 20 52 30 2c 5b 52 32 2c 23 6d 79 68 | R0,[R2,#myh| 00001320 61 6e 64 6c 65 5d 0d 05 82 1c 20 20 20 20 20 20 |andle].... | 00001330 20 20 4c 44 52 42 20 20 20 20 52 33 2c 5b 52 31 | LDRB R3,[R1| 00001340 30 5d 0d 05 8c 1e 20 20 20 20 20 20 20 20 43 4d |0].... CM| 00001350 50 20 20 20 20 20 52 33 2c 23 97 28 22 2d 22 29 |P R3,#.("-")| 00001360 0d 05 96 1c 20 20 20 20 20 20 20 20 42 4e 45 20 |.... BNE | 00001370 20 20 20 20 69 6e 69 74 65 78 69 74 0d 05 a0 1f | initexit....| 00001380 20 20 20 20 20 20 20 20 4c 44 52 42 20 20 20 20 | LDRB | 00001390 52 33 2c 5b 52 31 30 2c 23 31 5d 0d 05 aa 1e 20 |R3,[R10,#1].... | 000013a0 20 20 20 20 20 20 20 43 4d 50 20 20 20 20 20 52 | CMP R| 000013b0 33 2c 23 97 28 22 6f 22 29 0d 05 b4 1c 20 20 20 |3,#.("o").... | 000013c0 20 20 20 20 20 42 45 51 20 20 20 20 20 72 65 61 | BEQ rea| 000013d0 64 6f 70 74 73 0d 05 be 0d 2e 69 6e 69 74 65 78 |dopts.....initex| 000013e0 69 74 0d 05 c8 25 20 20 20 20 20 20 20 20 4c 44 |it...% LD| 000013f0 4d 46 44 20 20 20 28 73 70 29 21 2c 7b 52 37 2d |MFD (sp)!,{R7-| 00001400 52 31 31 2c 70 63 7d 0d 05 d2 04 0d 05 dc 0d 2e |R11,pc}.........| 00001410 72 65 61 64 6f 70 74 73 0d 05 e6 40 20 20 20 20 |readopts...@ | 00001420 20 20 20 20 84 52 20 20 20 20 20 52 30 2c 52 30 | .R R0,R0| 00001430 2c 23 28 66 69 6c 65 72 70 69 6e 6f 6e 20 84 20 |,#(filerpinon . | 00001440 70 69 6e 66 69 6c 74 65 72 6f 6e 20 84 20 69 63 |pinfilteron . ic| 00001450 6f 6e 69 73 65 6f 6e 29 0d 05 f0 52 20 20 20 20 |oniseon)...R | 00001460 20 20 20 20 53 54 52 20 20 20 20 20 52 30 2c 5b | STR R0,[| 00001470 52 32 2c 23 6d 6f 64 75 6c 65 66 6c 61 67 73 5d |R2,#moduleflags]| 00001480 20 20 20 20 20 20 20 20 20 20 20 3b 20 64 65 66 | ; def| 00001490 61 75 6c 74 20 6f 70 74 69 6f 6e 73 20 69 6e 20 |ault options in | 000014a0 63 61 73 65 20 65 72 72 6f 72 0d 05 fa 1a 20 20 |case error.... | 000014b0 20 20 20 20 20 20 4d 4f 56 20 20 20 20 20 52 30 | MOV R0| 000014c0 2c 23 31 37 0d 06 04 1f 20 20 20 20 20 20 20 20 |,#17.... | 000014d0 41 44 52 20 20 20 20 20 52 31 2c 70 61 74 68 6e |ADR R1,pathn| 000014e0 61 6d 65 0d 06 0e 1e 20 20 20 20 20 20 20 20 53 |ame.... S| 000014f0 57 49 20 20 20 20 20 22 58 4f 53 5f 46 69 6c 65 |WI "XOS_File| 00001500 22 0d 06 18 3b 20 20 20 20 20 20 20 20 42 56 53 |"...; BVS| 00001510 20 20 20 20 20 69 6e 69 74 65 78 69 74 20 20 20 | initexit | 00001520 20 20 20 20 3b 20 65 78 69 74 20 69 66 20 65 72 | ; exit if er| 00001530 72 6f 72 20 6f 63 63 75 72 72 65 64 0d 06 22 49 |ror occurred.."I| 00001540 20 20 20 20 20 20 20 20 43 4d 50 20 20 20 20 20 | CMP | 00001550 52 30 2c 23 31 20 20 20 20 20 20 20 20 20 20 3b |R0,#1 ;| 00001560 20 65 78 69 74 20 69 66 20 6e 6f 74 20 61 20 66 | exit if not a f| 00001570 69 6c 65 2c 20 6f 72 20 64 6f 65 73 6e 27 74 20 |ile, or doesn't | 00001580 65 78 69 73 74 0d 06 2c 3e 20 20 20 20 20 20 20 |exist..,> | 00001590 20 43 4d 50 45 51 20 20 20 52 34 2c 23 34 20 20 | CMPEQ R4,#4 | 000015a0 20 20 20 20 20 20 20 20 3b 20 65 78 69 74 20 69 | ; exit i| 000015b0 66 20 66 69 6c 65 20 77 72 6f 6e 67 20 6c 65 6e |f file wrong len| 000015c0 67 74 68 0d 06 36 1c 20 20 20 20 20 20 20 20 42 |gth..6. B| 000015d0 4e 45 20 20 20 20 20 69 6e 69 74 65 78 69 74 0d |NE initexit.| 000015e0 06 40 1a 20 20 20 20 20 20 20 20 4d 4f 56 20 20 |.@. MOV | 000015f0 20 20 20 52 30 2c 23 31 36 0d 06 4a 1c 20 20 20 | R0,#16..J. | 00001600 20 20 20 20 20 4c 44 52 20 20 20 20 20 52 32 2c | LDR R2,| 00001610 5b 52 31 32 5d 0d 06 54 26 20 20 20 20 20 20 20 |[R12]..T& | 00001620 20 41 44 44 20 20 20 20 20 52 32 2c 52 32 2c 23 | ADD R2,R2,#| 00001630 6d 6f 64 75 6c 65 66 6c 61 67 73 0d 06 5e 19 20 |moduleflags..^. | 00001640 20 20 20 20 20 20 20 4d 4f 56 20 20 20 20 20 52 | MOV R| 00001650 33 2c 23 30 0d 06 68 1e 20 20 20 20 20 20 20 20 |3,#0..h. | 00001660 53 57 49 20 20 20 20 20 22 58 4f 53 5f 46 69 6c |SWI "XOS_Fil| 00001670 65 22 0d 06 72 1c 20 20 20 20 20 20 20 20 42 20 |e"..r. B | 00001680 20 20 20 20 20 20 69 6e 69 74 65 78 69 74 0d 06 | initexit..| 00001690 7c 04 0d 06 86 0d 2e 70 61 74 68 6e 61 6d 65 0d ||......pathname.| 000016a0 06 90 2d 20 20 20 20 20 20 20 20 45 51 55 53 20 |..- EQUS | 000016b0 20 20 20 22 3c 50 69 6e 46 69 6c 74 65 72 24 44 | "<PinFilter$D| 000016c0 69 72 3e 2e 4f 70 74 69 6f 6e 73 22 0d 06 9a 15 |ir>.Options"....| 000016d0 20 20 20 20 20 20 20 20 45 51 55 42 20 20 20 20 | EQUB | 000016e0 30 0d 06 a4 11 20 20 20 20 20 20 20 20 41 4c 49 |0.... ALI| 000016f0 47 4e 0d 06 ae 04 0d 06 b8 10 2e 73 74 61 72 63 |GN.........starc| 00001700 6f 6d 6d 61 6e 64 0d 06 c2 20 20 20 20 20 20 20 |ommand... | 00001710 20 20 53 54 4d 46 44 20 20 20 28 73 70 29 21 2c | STMFD (sp)!,| 00001720 7b 6c 69 6e 6b 7d 0d 06 cc 19 20 20 20 20 20 20 |{link}.... | 00001730 20 20 4d 4f 56 20 20 20 20 20 52 32 2c 52 30 0d | MOV R2,R0.| 00001740 06 d6 22 20 20 20 20 20 20 20 20 41 44 52 20 20 |.." ADR | 00001750 20 20 20 52 31 2c 74 69 74 6c 65 73 74 72 69 6e | R1,titlestrin| 00001760 67 0d 06 e0 19 20 20 20 20 20 20 20 20 4d 4f 56 |g.... MOV| 00001770 20 20 20 20 20 52 30 2c 23 32 0d 06 ea 20 20 20 | R0,#2... | 00001780 20 20 20 20 20 20 53 57 49 20 20 20 20 20 22 58 | SWI "X| 00001790 4f 53 5f 4d 6f 64 75 6c 65 22 0d 06 f4 1e 20 20 |OS_Module".... | 000017a0 20 20 20 20 20 20 4c 44 4d 46 44 20 20 20 28 73 | LDMFD (s| 000017b0 70 29 21 2c 7b 70 63 7d 0d 06 fe 04 0d 07 08 09 |p)!,{pc}........| 000017c0 2e 74 61 73 6b 0d 07 12 1a 20 20 20 20 20 20 20 |.task.... | 000017d0 20 45 51 55 53 20 20 20 20 22 54 41 53 4b 22 0d | EQUS "TASK".| 000017e0 07 1c 04 0d 07 26 0e 2e 73 74 61 72 74 63 6f 64 |.....&..startcod| 000017f0 65 0d 07 30 1d 20 20 20 20 20 20 20 20 4c 44 52 |e..0. LDR| 00001800 20 20 20 20 20 52 31 32 2c 5b 52 31 32 5d 0d 07 | R12,[R12]..| 00001810 3a 26 20 20 20 20 20 20 20 20 4c 44 52 20 20 20 |:& LDR | 00001820 20 20 52 30 2c 5b 52 31 32 2c 23 6d 79 68 61 6e | R0,[R12,#myhan| 00001830 64 6c 65 5d 0d 07 44 19 20 20 20 20 20 20 20 20 |dle]..D. | 00001840 54 45 51 20 20 20 20 20 52 30 2c 23 30 0d 07 4e |TEQ R0,#0..N| 00001850 1b 20 20 20 20 20 20 20 20 4c 44 52 47 54 20 20 |. LDRGT | 00001860 20 52 31 2c 74 61 73 6b 0d 07 58 25 20 20 20 20 | R1,task..X% | 00001870 20 20 20 20 53 57 49 47 54 20 20 20 22 58 57 69 | SWIGT "XWi| 00001880 6d 70 5f 43 6c 6f 73 65 44 6f 77 6e 22 0d 07 62 |mp_CloseDown"..b| 00001890 19 20 20 20 20 20 20 20 20 4d 4f 56 47 54 20 20 |. MOVGT | 000018a0 20 52 30 2c 23 30 0d 07 6c 26 20 20 20 20 20 20 | R0,#0..l& | 000018b0 20 20 53 54 52 47 54 20 20 20 52 30 2c 5b 52 31 | STRGT R0,[R1| 000018c0 32 2c 23 6d 79 68 61 6e 64 6c 65 5d 0d 07 76 04 |2,#myhandle]..v.| 000018d0 0d 07 80 1b 20 20 20 20 20 20 20 20 4d 4f 56 20 |.... MOV | 000018e0 20 20 20 20 52 30 2c 23 33 30 38 0d 07 8a 1c 20 | R0,#308.... | 000018f0 20 20 20 20 20 20 20 41 44 44 20 20 20 20 20 52 | ADD R| 00001900 30 2c 52 30 2c 23 32 0d 07 94 1b 20 20 20 20 20 |0,R0,#2.... | 00001910 20 20 20 4c 44 52 20 20 20 20 20 52 31 2c 74 61 | LDR R1,ta| 00001920 73 6b 0d 07 9e 22 20 20 20 20 20 20 20 20 41 44 |sk..." AD| 00001930 52 20 20 20 20 20 52 32 2c 74 69 74 6c 65 73 74 |R R2,titlest| 00001940 72 69 6e 67 0d 07 a8 21 20 20 20 20 20 20 20 20 |ring...! | 00001950 41 44 52 20 20 20 20 20 52 33 2c 6d 79 6d 65 73 |ADR R3,mymes| 00001960 73 61 67 65 73 0d 07 b2 26 20 20 20 20 20 20 20 |sages...& | 00001970 20 53 57 49 20 20 20 20 20 22 58 57 69 6d 70 5f | SWI "XWimp_| 00001980 49 6e 69 74 69 61 6c 69 73 65 22 0d 07 bc 1e 20 |Initialise".... | 00001990 20 20 20 20 20 20 20 53 57 49 56 53 20 20 20 22 | SWIVS "| 000019a0 58 4f 53 5f 45 78 69 74 22 0d 07 c6 26 20 20 20 |XOS_Exit"...& | 000019b0 20 20 20 20 20 53 54 52 20 20 20 20 20 52 31 2c | STR R1,| 000019c0 5b 52 31 32 2c 23 6d 79 68 61 6e 64 6c 65 5d 0d |[R12,#myhandle].| 000019d0 07 d0 04 0d 07 da 21 20 20 20 20 20 20 20 20 41 |......! A| 000019e0 44 44 20 20 20 20 20 73 70 2c 52 31 32 2c 23 73 |DD sp,R12,#s| 000019f0 74 61 63 6b 0d 07 e4 04 0d 07 ee 40 20 20 20 20 |tack.......@ | 00001a00 20 20 20 20 42 4c 20 20 20 20 20 20 69 6e 73 74 | BL inst| 00001a10 61 6c 6c 61 6c 6c 20 20 20 20 20 20 20 20 20 20 |allall | 00001a20 20 20 3a 20 f4 20 8a 8a 20 66 61 6c 6c 20 74 68 | : . .. fall th| 00001a30 72 6f 75 67 68 20 8a 8a 0d 07 f8 04 0d 08 02 09 |rough ..........| 00001a40 2e 70 6f 6c 6c 0d 08 0c 1d 20 20 20 20 20 20 20 |.poll.... | 00001a50 20 4c 44 52 20 20 20 20 20 52 30 2c 6d 79 6d 61 | LDR R0,myma| 00001a60 73 6b 0d 08 16 25 20 20 20 20 20 20 20 20 41 44 |sk...% AD| 00001a70 44 20 20 20 20 20 52 31 2c 52 31 32 2c 23 70 6f |D R1,R12,#po| 00001a80 6c 6c 62 6c 6f 63 6b 0d 08 20 20 20 20 20 20 20 |llblock.. | 00001a90 20 20 20 53 57 49 20 20 20 20 20 22 58 57 69 6d | SWI "XWim| 00001aa0 70 5f 50 6f 6c 6c 22 0d 08 2a 1a 20 20 20 20 20 |p_Poll"..*. | 00001ab0 20 20 20 43 4d 50 20 20 20 20 20 52 30 2c 23 31 | CMP R0,#1| 00001ac0 37 0d 08 34 1a 20 20 20 20 20 20 20 20 43 4d 50 |7..4. CMP| 00001ad0 4e 45 20 20 20 52 30 2c 23 31 38 0d 08 3e 18 20 |NE R0,#18..>. | 00001ae0 20 20 20 20 20 20 20 42 4e 45 20 20 20 20 20 70 | BNE p| 00001af0 6f 6c 6c 0d 08 48 1f 20 20 20 20 20 20 20 20 4c |oll..H. L| 00001b00 44 52 20 20 20 20 20 52 30 2c 5b 52 31 2c 23 31 |DR R0,[R1,#1| 00001b10 36 5d 0d 08 52 2d 20 20 20 20 20 20 20 20 4c 44 |6]..R- LD| 00001b20 52 20 20 20 20 20 52 32 2c 6d 65 73 73 61 67 65 |R R2,message| 00001b30 5f 74 61 73 6b 69 6e 69 74 69 61 6c 69 73 65 0d |_taskinitialise.| 00001b40 08 5c 19 20 20 20 20 20 20 20 20 43 4d 50 20 20 |.\. CMP | 00001b50 20 20 20 52 30 2c 52 32 0d 08 66 22 20 20 20 20 | R0,R2..f" | 00001b60 20 20 20 20 42 45 51 20 20 20 20 20 74 61 73 6b | BEQ task| 00001b70 69 6e 69 74 69 61 6c 69 73 65 0d 08 70 2c 20 20 |initialise..p, | 00001b80 20 20 20 20 20 20 4c 44 52 20 20 20 20 20 52 32 | LDR R2| 00001b90 2c 6d 65 73 73 61 67 65 5f 74 61 73 6b 63 6c 6f |,message_taskclo| 00001ba0 73 65 64 6f 77 6e 0d 08 7a 19 20 20 20 20 20 20 |sedown..z. | 00001bb0 20 20 43 4d 50 20 20 20 20 20 52 30 2c 52 32 0d | CMP R0,R2.| 00001bc0 08 84 21 20 20 20 20 20 20 20 20 42 45 51 20 20 |..! BEQ | 00001bd0 20 20 20 74 61 73 6b 63 6c 6f 73 65 64 6f 77 6e | taskclosedown| 00001be0 0d 08 8e 19 20 20 20 20 20 20 20 20 43 4d 50 20 |.... CMP | 00001bf0 20 20 20 20 52 30 2c 23 30 0d 08 98 18 20 20 20 | R0,#0.... | 00001c00 20 20 20 20 20 42 4e 45 20 20 20 20 20 70 6f 6c | BNE pol| 00001c10 6c 0d 08 a2 22 20 20 20 20 20 20 20 20 42 4c 20 |l..." BL | 00001c20 20 20 20 20 20 66 69 66 69 6c 74 65 72 72 65 6d | fifilterrem| 00001c30 6f 76 65 0d 08 ac 22 20 20 20 20 20 20 20 20 42 |ove..." B| 00001c40 4c 20 20 20 20 20 20 70 69 66 69 6c 74 65 72 72 |L pifilterr| 00001c50 65 6d 6f 76 65 0d 08 b6 22 20 20 20 20 20 20 20 |emove..." | 00001c60 20 42 4c 20 20 20 20 20 20 69 63 66 69 6c 74 65 | BL icfilte| 00001c70 72 72 65 6d 6f 76 65 0d 08 c0 26 20 20 20 20 20 |rremove...& | 00001c80 20 20 20 4c 44 52 20 20 20 20 20 52 30 2c 5b 52 | LDR R0,[R| 00001c90 31 32 2c 23 6d 79 68 61 6e 64 6c 65 5d 0d 08 ca |12,#myhandle]...| 00001ca0 1b 20 20 20 20 20 20 20 20 41 44 52 20 20 20 20 |. ADR | 00001cb0 20 52 31 2c 74 61 73 6b 0d 08 d4 25 20 20 20 20 | R1,task...% | 00001cc0 20 20 20 20 53 57 49 20 20 20 20 20 22 58 57 69 | SWI "XWi| 00001cd0 6d 70 5f 43 6c 6f 73 65 44 6f 77 6e 22 0d 08 de |mp_CloseDown"...| 00001ce0 19 20 20 20 20 20 20 20 20 4d 4f 56 20 20 20 20 |. MOV | 00001cf0 20 52 31 2c 23 30 0d 08 e8 26 20 20 20 20 20 20 | R1,#0...& | 00001d00 20 20 53 54 52 20 20 20 20 20 52 31 2c 5b 52 31 | STR R1,[R1| 00001d10 32 2c 23 6d 79 68 61 6e 64 6c 65 5d 0d 08 f2 1e |2,#myhandle]....| 00001d20 20 20 20 20 20 20 20 20 53 57 49 20 20 20 20 20 | SWI | 00001d30 22 58 4f 53 5f 45 78 69 74 22 0d 08 fc 18 20 20 |"XOS_Exit".... | 00001d40 20 20 20 20 20 20 42 20 20 20 20 20 20 20 70 6f | B po| 00001d50 6c 6c 0d 09 06 04 0d 09 10 0f 2e 6d 79 6d 65 73 |ll.........mymes| 00001d60 73 61 67 65 73 0d 09 1a 1b 2e 6d 65 73 73 61 67 |sages.....messag| 00001d70 65 5f 74 61 73 6b 69 6e 69 74 69 61 6c 69 73 65 |e_taskinitialise| 00001d80 0d 09 24 1a 20 20 20 20 20 20 20 20 45 51 55 44 |..$. EQUD| 00001d90 20 20 20 20 26 34 30 30 43 32 0d 09 2e 1a 2e 6d | &400C2.....m| 00001da0 65 73 73 61 67 65 5f 74 61 73 6b 63 6c 6f 73 65 |essage_taskclose| 00001db0 64 6f 77 6e 0d 09 38 1a 20 20 20 20 20 20 20 20 |down..8. | 00001dc0 45 51 55 44 20 20 20 20 26 34 30 30 43 33 0d 09 |EQUD &400C3..| 00001dd0 42 15 20 20 20 20 20 20 20 20 45 51 55 44 20 20 |B. EQUD | 00001de0 20 20 30 0d 09 4c 04 0d 09 56 13 2e 74 61 73 6b | 0..L...V..task| 00001df0 69 6e 69 74 69 61 6c 69 73 65 0d 09 60 1d 20 20 |initialise..`. | 00001e00 20 20 20 20 20 20 41 44 44 20 20 20 20 20 52 30 | ADD R0| 00001e10 2c 52 31 2c 23 32 38 0d 09 6a 1d 20 20 20 20 20 |,R1,#28..j. | 00001e20 20 20 20 41 44 52 20 20 20 20 20 52 33 2c 66 69 | ADR R3,fi| 00001e30 6e 61 6d 65 0d 09 74 21 20 20 20 20 20 20 20 20 |name..t! | 00001e40 42 4c 20 20 20 20 20 20 73 74 72 69 6e 67 63 6f |BL stringco| 00001e50 6d 70 61 72 65 0d 09 7e 19 20 20 20 20 20 20 20 |mpare..~. | 00001e60 20 43 4d 50 20 20 20 20 20 52 33 2c 23 31 0d 09 | CMP R3,#1..| 00001e70 88 1e 20 20 20 20 20 20 20 20 4c 44 52 45 51 20 |.. LDREQ | 00001e80 20 20 52 33 2c 5b 52 31 2c 23 34 5d 0d 09 92 23 | R3,[R1,#4]...#| 00001e90 20 20 20 20 20 20 20 20 42 4c 45 51 20 20 20 20 | BLEQ | 00001ea0 66 69 66 69 6c 74 65 72 69 6e 73 74 61 6c 6c 0d |fifilterinstall.| 00001eb0 09 9c 1d 20 20 20 20 20 20 20 20 41 44 52 20 20 |... ADR | 00001ec0 20 20 20 52 33 2c 70 69 6e 61 6d 65 0d 09 a6 21 | R3,piname...!| 00001ed0 20 20 20 20 20 20 20 20 42 4c 20 20 20 20 20 20 | BL | 00001ee0 73 74 72 69 6e 67 63 6f 6d 70 61 72 65 0d 09 b0 |stringcompare...| 00001ef0 19 20 20 20 20 20 20 20 20 43 4d 50 20 20 20 20 |. CMP | 00001f00 20 52 33 2c 23 31 0d 09 ba 1e 20 20 20 20 20 20 | R3,#1.... | 00001f10 20 20 4c 44 52 45 51 20 20 20 52 33 2c 5b 52 31 | LDREQ R3,[R1| 00001f20 2c 23 34 5d 0d 09 c4 23 20 20 20 20 20 20 20 20 |,#4]...# | 00001f30 42 4c 45 51 20 20 20 20 70 69 66 69 6c 74 65 72 |BLEQ pifilter| 00001f40 69 6e 73 74 61 6c 6c 0d 09 ce 18 20 20 20 20 20 |install.... | 00001f50 20 20 20 42 20 20 20 20 20 20 20 70 6f 6c 6c 0d | B poll.| 00001f60 09 d8 04 0d 09 e2 12 2e 74 61 73 6b 63 6c 6f 73 |........taskclos| 00001f70 65 64 6f 77 6e 0d 09 ec 1e 20 20 20 20 20 20 20 |edown.... | 00001f80 20 4c 44 52 20 20 20 20 20 52 30 2c 5b 52 31 2c | LDR R0,[R1,| 00001f90 23 34 5d 0d 09 f6 26 20 20 20 20 20 20 20 20 4c |#4]...& L| 00001fa0 44 52 20 20 20 20 20 52 32 2c 5b 52 31 32 2c 23 |DR R2,[R12,#| 00001fb0 66 69 68 61 6e 64 6c 65 5d 0d 0a 00 19 20 20 20 |fihandle].... | 00001fc0 20 20 20 20 20 43 4d 50 20 20 20 20 20 52 30 2c | CMP R0,| 00001fd0 52 32 0d 0a 0a 22 20 20 20 20 20 20 20 20 42 4c |R2..." BL| 00001fe0 45 51 20 20 20 20 66 69 66 69 6c 74 65 72 72 65 |EQ fifilterre| 00001ff0 6d 6f 76 65 0d 0a 14 26 20 20 20 20 20 20 20 20 |move...& | 00002000 4c 44 52 20 20 20 20 20 52 32 2c 5b 52 31 32 2c |LDR R2,[R12,| 00002010 23 70 69 68 61 6e 64 6c 65 5d 0d 0a 1e 19 20 20 |#pihandle].... | 00002020 20 20 20 20 20 20 43 4d 50 20 20 20 20 20 52 30 | CMP R0| 00002030 2c 52 32 0d 0a 28 22 20 20 20 20 20 20 20 20 42 |,R2..(" B| 00002040 4c 45 51 20 20 20 20 70 69 66 69 6c 74 65 72 72 |LEQ pifilterr| 00002050 65 6d 6f 76 65 0d 0a 32 18 20 20 20 20 20 20 20 |emove..2. | 00002060 20 42 20 20 20 20 20 20 20 70 6f 6c 6c 0d 0a 3c | B poll..<| 00002070 04 0d 0a 46 0f 2e 69 6e 73 74 61 6c 6c 61 6c 6c |...F..installall| 00002080 0d 0a 50 23 20 20 20 20 20 20 20 20 53 54 4d 46 |..P# STMF| 00002090 44 20 20 20 28 73 70 29 21 2c 7b 52 31 2c 6c 69 |D (sp)!,{R1,li| 000020a0 6e 6b 7d 0d 0a 5a 1d 20 20 20 20 20 20 20 20 41 |nk}..Z. A| 000020b0 44 52 20 20 20 20 20 52 34 2c 66 69 6e 61 6d 65 |DR R4,finame| 000020c0 0d 0a 64 21 20 20 20 20 20 20 20 20 42 4c 20 20 |..d! BL | 000020d0 20 20 20 20 67 65 74 74 61 73 6b 68 61 6e 64 6c | gettaskhandl| 000020e0 65 0d 0a 6e 19 20 20 20 20 20 20 20 20 43 4d 50 |e..n. CMP| 000020f0 20 20 20 20 20 52 33 2c 23 30 0d 0a 78 23 20 20 | R3,#0..x# | 00002100 20 20 20 20 20 20 42 4c 4e 45 20 20 20 20 66 69 | BLNE fi| 00002110 66 69 6c 74 65 72 69 6e 73 74 61 6c 6c 0d 0a 82 |filterinstall...| 00002120 1d 20 20 20 20 20 20 20 20 41 44 52 20 20 20 20 |. ADR | 00002130 20 52 34 2c 70 69 6e 61 6d 65 0d 0a 8c 21 20 20 | R4,piname...! | 00002140 20 20 20 20 20 20 42 4c 20 20 20 20 20 20 67 65 | BL ge| 00002150 74 74 61 73 6b 68 61 6e 64 6c 65 0d 0a 96 19 20 |ttaskhandle.... | 00002160 20 20 20 20 20 20 20 43 4d 50 20 20 20 20 20 52 | CMP R| 00002170 33 2c 23 30 0d 0a a0 23 20 20 20 20 20 20 20 20 |3,#0...# | 00002180 42 4c 4e 45 20 20 20 20 70 69 66 69 6c 74 65 72 |BLNE pifilter| 00002190 69 6e 73 74 61 6c 6c 0d 0a aa 23 20 20 20 20 20 |install...# | 000021a0 20 20 20 42 4c 20 20 20 20 20 20 69 63 66 69 6c | BL icfil| 000021b0 74 65 72 69 6e 73 74 61 6c 6c 0d 0a b4 21 20 20 |terinstall...! | 000021c0 20 20 20 20 20 20 4c 44 4d 46 44 20 20 20 28 73 | LDMFD (s| 000021d0 70 29 21 2c 7b 52 31 2c 70 63 7d 0d 0a be 04 0d |p)!,{R1,pc}.....| 000021e0 0a c8 0b 2e 66 69 6e 61 6d 65 0d 0a d2 1b 20 20 |....finame.... | 000021f0 20 20 20 20 20 20 45 51 55 53 20 20 20 20 22 46 | EQUS "F| 00002200 69 6c 65 72 22 0d 0a dc 15 20 20 20 20 20 20 20 |iler".... | 00002210 20 45 51 55 42 20 20 20 20 30 0d 0a e6 11 20 20 | EQUB 0.... | 00002220 20 20 20 20 20 20 41 4c 49 47 4e 0d 0a f0 04 0d | ALIGN.....| 00002230 0a fa 0b 2e 70 69 6e 61 6d 65 0d 0b 04 1e 20 20 |....piname.... | 00002240 20 20 20 20 20 20 45 51 55 53 20 20 20 20 22 50 | EQUS "P| 00002250 69 6e 62 6f 61 72 64 22 0d 0b 0e 15 20 20 20 20 |inboard".... | 00002260 20 20 20 20 45 51 55 42 20 20 20 20 30 0d 0b 18 | EQUB 0...| 00002270 11 20 20 20 20 20 20 20 20 41 4c 49 47 4e 0d 0b |. ALIGN..| 00002280 22 04 0d 0b 2c 12 2e 73 74 72 69 6e 67 63 6f 6d |"...,..stringcom| 00002290 70 61 72 65 0d 0b 36 23 20 20 20 20 20 20 20 20 |pare..6# | 000022a0 53 54 4d 46 44 20 20 20 28 73 70 29 21 2c 7b 52 |STMFD (sp)!,{R| 000022b0 30 2c 6c 69 6e 6b 7d 0d 0b 40 49 2e 63 6f 6d 70 |0,link}..@I.comp| 000022c0 61 72 65 6c 6f 6f 70 20 20 20 20 20 20 20 20 20 |areloop | 000022d0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3b 20 | ; | 000022e0 63 6f 6d 70 61 72 65 73 20 73 74 72 69 6e 67 20 |compares string | 000022f0 70 6f 69 6e 74 65 64 20 74 6f 20 62 79 20 52 30 |pointed to by R0| 00002300 0d 0b 4a 43 20 20 20 20 20 20 20 20 4c 44 52 42 |..JC LDRB| 00002310 20 20 20 20 52 37 2c 5b 52 30 5d 2c 23 31 20 20 | R7,[R0],#1 | 00002320 20 20 20 20 20 20 20 3b 20 77 69 74 68 20 74 68 | ; with th| 00002330 61 74 20 70 6f 69 6e 74 65 64 20 74 6f 20 62 79 |at pointed to by| 00002340 20 52 33 0d 0b 54 42 20 20 20 20 20 20 20 20 4c | R3..TB L| 00002350 44 52 42 20 20 20 20 52 35 2c 5b 52 33 5d 2c 23 |DRB R5,[R3],#| 00002360 31 20 20 20 20 20 20 20 20 20 3b 20 72 65 74 75 |1 ; retu| 00002370 72 6e 69 6e 67 20 31 20 69 6e 20 52 33 20 69 66 |rning 1 in R3 if| 00002380 20 73 61 6d 65 0d 0b 5e 19 20 20 20 20 20 20 20 | same..^. | 00002390 20 43 4d 50 20 20 20 20 20 52 37 2c 52 35 0d 0b | CMP R7,R5..| 000023a0 68 19 20 20 20 20 20 20 20 20 4d 4f 56 4e 45 20 |h. MOVNE | 000023b0 20 20 52 33 2c 23 30 0d 0b 72 21 20 20 20 20 20 | R3,#0..r! | 000023c0 20 20 20 4c 44 4d 4e 45 46 44 20 28 73 70 29 21 | LDMNEFD (sp)!| 000023d0 2c 7b 52 30 2c 70 63 7d 0d 0b 7c 19 20 20 20 20 |,{R0,pc}..|. | 000023e0 20 20 20 20 43 4d 50 20 20 20 20 20 52 35 2c 23 | CMP R5,#| 000023f0 30 0d 0b 86 1f 20 20 20 20 20 20 20 20 42 4e 45 |0.... BNE| 00002400 20 20 20 20 20 63 6f 6d 70 61 72 65 6c 6f 6f 70 | compareloop| 00002410 0d 0b 90 19 20 20 20 20 20 20 20 20 4d 4f 56 20 |.... MOV | 00002420 20 20 20 20 52 33 2c 23 31 0d 0b 9a 21 20 20 20 | R3,#1...! | 00002430 20 20 20 20 20 4c 44 4d 46 44 20 20 20 28 73 70 | LDMFD (sp| 00002440 29 21 2c 7b 52 30 2c 70 63 7d 0d 0b a4 04 0d 0b |)!,{R0,pc}......| 00002450 ae 4c 2e 66 69 66 69 6c 74 65 72 69 6e 73 74 61 |.L.fifilterinsta| 00002460 6c 6c 20 20 20 20 20 20 20 20 20 20 20 20 20 20 |ll | 00002470 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3b | ;| 00002480 20 70 61 73 73 20 66 69 20 74 61 73 6b 20 68 61 | pass fi task ha| 00002490 6e 64 6c 65 20 69 6e 20 52 33 0d 0b b8 23 20 20 |ndle in R3...# | 000024a0 20 20 20 20 20 20 53 54 4d 46 44 20 20 20 28 73 | STMFD (s| 000024b0 70 29 21 2c 7b 52 30 2c 6c 69 6e 6b 7d 0d 0b c2 |p)!,{R0,link}...| 000024c0 29 20 20 20 20 20 20 20 20 4c 44 52 20 20 20 20 |) LDR | 000024d0 20 52 31 2c 5b 52 31 32 2c 23 6d 6f 64 75 6c 65 | R1,[R12,#module| 000024e0 66 6c 61 67 73 5d 0d 0b cc 29 20 20 20 20 20 20 |flags]...) | 000024f0 20 20 54 53 54 20 20 20 20 20 52 31 2c 23 66 69 | TST R1,#fi| 00002500 66 69 6c 74 65 72 69 6e 73 74 61 6c 6c 65 64 0d |filterinstalled.| 00002510 0b d6 51 20 20 20 20 20 20 20 20 4c 44 4d 4e 45 |..Q LDMNE| 00002520 46 44 20 28 73 70 29 21 2c 7b 52 30 2c 70 63 7d |FD (sp)!,{R0,pc}| 00002530 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3b | ;| 00002540 20 69 66 20 61 6c 72 65 61 64 79 20 69 6e 73 74 | if already inst| 00002550 61 6c 6c 65 64 2c 20 6a 75 73 74 20 65 78 69 74 |alled, just exit| 00002560 0d 0b e0 22 20 20 20 20 20 20 20 20 54 53 54 20 |..." TST | 00002570 20 20 20 20 52 31 2c 23 66 69 6c 65 72 70 69 6e | R1,#filerpin| 00002580 6f 6e 0d 0b ea 47 20 20 20 20 20 20 20 20 4c 44 |on...G LD| 00002590 4d 45 51 46 44 20 28 73 70 29 21 2c 7b 52 30 2c |MEQFD (sp)!,{R0,| 000025a0 70 63 7d 20 20 20 20 20 20 20 20 20 20 20 20 20 |pc} | 000025b0 20 20 3b 20 69 66 20 6e 6f 74 20 73 65 6c 65 63 | ; if not selec| 000025c0 74 65 64 2c 20 65 78 69 74 0d 0b f4 23 20 20 20 |ted, exit...# | 000025d0 20 20 20 20 20 41 44 52 20 20 20 20 20 52 30 2c | ADR R0,| 000025e0 66 69 66 69 6c 74 65 72 6e 61 6d 65 0d 0b fe 23 |fifiltername...#| 000025f0 20 20 20 20 20 20 20 20 41 44 52 20 20 20 20 20 | ADR | 00002600 52 31 2c 66 69 66 69 6c 74 65 72 63 6f 64 65 0d |R1,fifiltercode.| 00002610 0c 08 50 20 20 20 20 20 20 20 20 4d 4f 56 20 20 |..P MOV | 00002620 20 20 20 52 32 2c 52 31 32 20 20 20 20 20 20 20 | R2,R12 | 00002630 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | | 00002640 3b 20 6e 6f 74 65 20 70 61 73 73 65 73 20 77 6f |; note passes wo| 00002650 72 6b 73 70 61 63 65 20 70 6f 69 6e 74 65 72 0d |rkspace pointer.| 00002660 0c 12 4e 20 20 20 20 20 20 20 20 4c 44 52 20 20 |..N LDR | 00002670 20 20 20 52 34 2c 66 69 66 69 6c 74 65 72 6d 61 | R4,fifilterma| 00002680 73 6b 20 20 20 20 20 20 20 20 20 20 20 20 20 20 |sk | 00002690 3b 20 6e 6f 74 20 70 72 69 76 61 74 65 20 77 6f |; not private wo| 000026a0 72 64 20 70 6f 69 6e 74 65 72 20 61 73 0d 0c 1c |rd pointer as...| 000026b0 39 20 20 20 20 20 20 20 20 53 57 49 20 20 20 20 |9 SWI | 000026c0 20 22 58 46 69 6c 74 65 72 5f 52 65 67 69 73 74 | "XFilter_Regist| 000026d0 65 72 50 6f 73 74 46 69 6c 74 65 72 22 20 3b 20 |erPostFilter" ; | 000026e0 62 65 66 6f 72 65 0d 0c 26 26 20 20 20 20 20 20 |before..&& | 000026f0 20 20 53 54 52 56 43 20 20 20 52 33 2c 5b 52 31 | STRVC R3,[R1| 00002700 32 2c 23 66 69 68 61 6e 64 6c 65 5d 0d 0c 30 29 |2,#fihandle]..0)| 00002710 20 20 20 20 20 20 20 20 4c 44 52 56 43 20 20 20 | LDRVC | 00002720 52 31 2c 5b 52 31 32 2c 23 6d 6f 64 75 6c 65 66 |R1,[R12,#modulef| 00002730 6c 61 67 73 5d 0d 0c 3a 2b 20 20 20 20 20 20 20 |lags]..:+ | 00002740 20 84 52 56 43 20 20 20 52 31 2c 52 31 2c 23 66 | .RVC R1,R1,#f| 00002750 69 66 69 6c 74 65 72 69 6e 73 74 61 6c 6c 65 64 |ifilterinstalled| 00002760 0d 0c 44 29 20 20 20 20 20 20 20 20 53 54 52 56 |..D) STRV| 00002770 43 20 20 20 52 31 2c 5b 52 31 32 2c 23 6d 6f 64 |C R1,[R12,#mod| 00002780 75 6c 65 66 6c 61 67 73 5d 0d 0c 4e 21 20 20 20 |uleflags]..N! | 00002790 20 20 20 20 20 4c 44 4d 46 44 20 20 20 28 73 70 | LDMFD (sp| 000027a0 29 21 2c 7b 52 30 2c 70 63 7d 0d 0c 58 04 0d 0c |)!,{R0,pc}..X...| 000027b0 62 13 2e 66 69 66 69 6c 74 65 72 72 65 6d 6f 76 |b..fifilterremov| 000027c0 65 0d 0c 6c 23 20 20 20 20 20 20 20 20 53 54 4d |e..l# STM| 000027d0 46 44 20 20 20 28 73 70 29 21 2c 7b 52 30 2c 6c |FD (sp)!,{R0,l| 000027e0 69 6e 6b 7d 0d 0c 76 29 20 20 20 20 20 20 20 20 |ink}..v) | 000027f0 4c 44 52 20 20 20 20 20 52 31 2c 5b 52 31 32 2c |LDR R1,[R12,| 00002800 23 6d 6f 64 75 6c 65 66 6c 61 67 73 5d 0d 0c 80 |#moduleflags]...| 00002810 29 20 20 20 20 20 20 20 20 54 53 54 20 20 20 20 |) TST | 00002820 20 52 31 2c 23 66 69 66 69 6c 74 65 72 69 6e 73 | R1,#fifilterins| 00002830 74 61 6c 6c 65 64 0d 0c 8a 4d 20 20 20 20 20 20 |talled...M | 00002840 20 20 4c 44 4d 45 51 46 44 20 28 73 70 29 21 2c | LDMEQFD (sp)!,| 00002850 7b 52 30 2c 70 63 7d 20 20 20 20 20 20 20 20 20 |{R0,pc} | 00002860 20 20 20 20 20 20 3b 20 69 66 20 6e 6f 74 20 69 | ; if not i| 00002870 6e 73 74 61 6c 6c 65 64 2c 20 6a 75 73 74 20 65 |nstalled, just e| 00002880 78 69 74 0d 0c 94 23 20 20 20 20 20 20 20 20 41 |xit...# A| 00002890 44 52 20 20 20 20 20 52 30 2c 66 69 66 69 6c 74 |DR R0,fifilt| 000028a0 65 72 6e 61 6d 65 0d 0c 9e 23 20 20 20 20 20 20 |ername...# | 000028b0 20 20 41 44 52 20 20 20 20 20 52 31 2c 66 69 66 | ADR R1,fif| 000028c0 69 6c 74 65 72 63 6f 64 65 0d 0c a8 1a 20 20 20 |iltercode.... | 000028d0 20 20 20 20 20 4d 4f 56 20 20 20 20 20 52 32 2c | MOV R2,| 000028e0 52 31 32 0d 0c b2 26 20 20 20 20 20 20 20 20 4c |R12...& L| 000028f0 44 52 20 20 20 20 20 52 33 2c 5b 52 31 32 2c 23 |DR R3,[R12,#| 00002900 66 69 68 61 6e 64 6c 65 5d 0d 0c bc 23 20 20 20 |fihandle]...# | 00002910 20 20 20 20 20 4c 44 52 20 20 20 20 20 52 34 2c | LDR R4,| 00002920 66 69 66 69 6c 74 65 72 6d 61 73 6b 0d 0c c6 32 |fifiltermask...2| 00002930 20 20 20 20 20 20 20 20 53 57 49 20 20 20 20 20 | SWI | 00002940 22 58 46 69 6c 74 65 72 5f 44 65 52 65 67 69 73 |"XFilter_DeRegis| 00002950 74 65 72 50 6f 73 74 46 69 6c 74 65 72 22 0d 0c |terPostFilter"..| 00002960 d0 29 20 20 20 20 20 20 20 20 4c 44 52 20 20 20 |.) LDR | 00002970 20 20 52 31 2c 5b 52 31 32 2c 23 6d 6f 64 75 6c | R1,[R12,#modul| 00002980 65 66 6c 61 67 73 5d 0d 0c da 2c 20 20 20 20 20 |eflags]..., | 00002990 20 20 20 42 49 43 20 20 20 20 20 52 31 2c 52 31 | BIC R1,R1| 000029a0 2c 23 66 69 66 69 6c 74 65 72 69 6e 73 74 61 6c |,#fifilterinstal| 000029b0 6c 65 64 0d 0c e4 2a 20 20 20 20 20 20 20 20 42 |led...* B| 000029c0 49 43 20 20 20 20 20 52 31 2c 52 31 2c 23 66 69 |IC R1,R1,#fi| 000029d0 6d 65 73 73 61 67 65 73 61 64 64 65 64 0d 0c ee |messagesadded...| 000029e0 29 20 20 20 20 20 20 20 20 53 54 52 20 20 20 20 |) STR | 000029f0 20 52 31 2c 5b 52 31 32 2c 23 6d 6f 64 75 6c 65 | R1,[R12,#module| 00002a00 66 6c 61 67 73 5d 0d 0c f8 21 20 20 20 20 20 20 |flags]...! | 00002a10 20 20 4c 44 4d 46 44 20 20 20 28 73 70 29 21 2c | LDMFD (sp)!,| 00002a20 7b 52 30 2c 70 63 7d 0d 0d 02 04 0d 0d 0c 11 2e |{R0,pc}.........| 00002a30 66 69 66 69 6c 74 65 72 63 6f 64 65 0d 0d 16 27 |fifiltercode...'| 00002a40 20 20 20 20 20 20 20 20 53 54 4d 46 44 20 20 20 | STMFD | 00002a50 28 73 70 29 21 2c 7b 52 31 2d 52 31 31 2c 6c 69 |(sp)!,{R1-R11,li| 00002a60 6e 6b 7d 0d 0d 20 29 20 20 20 20 20 20 20 20 4c |nk}.. ) L| 00002a70 44 52 20 20 20 20 20 52 33 2c 5b 52 31 32 2c 23 |DR R3,[R12,#| 00002a80 6d 6f 64 75 6c 65 66 6c 61 67 73 5d 0d 0d 2a 27 |moduleflags]..*'| 00002a90 20 20 20 20 20 20 20 20 54 53 54 20 20 20 20 20 | TST | 00002aa0 52 33 2c 23 66 69 6d 65 73 73 61 67 65 73 61 64 |R3,#fimessagesad| 00002ab0 64 65 64 0d 0d 34 21 20 20 20 20 20 20 20 20 42 |ded..4! B| 00002ac0 4c 45 51 20 20 20 20 66 69 61 64 64 6d 65 73 73 |LEQ fiaddmess| 00002ad0 61 67 65 73 0d 0d 3e 1a 20 20 20 20 20 20 20 20 |ages..>. | 00002ae0 54 45 51 20 20 20 20 20 52 30 2c 23 31 38 0d 0d |TEQ R0,#18..| 00002af0 48 1d 20 20 20 20 20 20 20 20 42 4e 45 20 20 20 |H. BNE | 00002b00 20 20 65 6e 64 66 69 6c 74 65 72 0d 0d 52 1f 20 | endfilter..R. | 00002b10 20 20 20 20 20 20 20 4c 44 52 20 20 20 20 20 52 | LDR R| 00002b20 32 2c 5b 52 31 2c 23 31 36 5d 0d 0d 5c 21 20 20 |2,[R1,#16]..\! | 00002b30 20 20 20 20 20 20 4c 44 52 20 20 20 20 20 52 33 | LDR R3| 00002b40 2c 66 69 6d 65 73 73 61 67 65 73 0d 0d 66 19 20 |,fimessages..f. | 00002b50 20 20 20 20 20 20 20 43 4d 50 20 20 20 20 20 52 | CMP R| 00002b60 33 2c 52 32 0d 0d 70 1d 20 20 20 20 20 20 20 20 |3,R2..p. | 00002b70 42 4e 45 20 20 20 20 20 65 6e 64 66 69 6c 74 65 |BNE endfilte| 00002b80 72 0d 0d 7a 1e 20 20 20 20 20 20 20 20 4c 44 52 |r..z. LDR| 00002b90 20 20 20 20 20 52 30 2c 5b 52 31 2c 23 38 5d 0d | R0,[R1,#8].| 00002ba0 0d 84 1f 20 20 20 20 20 20 20 20 53 54 52 20 20 |... STR | 00002bb0 20 20 20 52 30 2c 5b 52 31 2c 23 31 32 5d 0d 0d | R0,[R1,#12]..| 00002bc0 8e 1a 20 20 20 20 20 20 20 20 4d 4f 56 20 20 20 |.. MOV | 00002bd0 20 20 52 30 2c 23 31 39 0d 0d 98 1e 20 20 20 20 | R0,#19.... | 00002be0 20 20 20 20 4c 44 52 20 20 20 20 20 52 32 2c 5b | LDR R2,[| 00002bf0 52 31 2c 23 34 5d 0d 0d a2 52 20 20 20 20 20 20 |R1,#4]...R | 00002c00 20 20 53 57 49 20 20 20 20 20 22 58 57 69 6d 70 | SWI "XWimp| 00002c10 5f 53 65 6e 64 4d 65 73 73 61 67 65 22 20 3b 20 |_SendMessage" ; | 00002c20 73 65 6e 64 20 61 63 6b 6e 6f 77 6c 65 64 67 65 |send acknowledge| 00002c30 2c 20 74 6f 20 70 72 65 76 65 6e 74 20 69 63 6f |, to prevent ico| 00002c40 6e 69 73 61 74 69 6f 6e 0d 0d ac 1d 20 20 20 20 |nisation.... | 00002c50 20 20 20 20 41 44 44 20 20 20 20 20 52 31 2c 52 | ADD R1,R| 00002c60 31 2c 23 32 30 0d 0d b6 54 20 20 20 20 20 20 20 |1,#20...T | 00002c70 20 4c 44 52 20 20 20 20 20 52 37 2c 5b 52 31 5d | LDR R7,[R1]| 00002c80 20 20 20 20 20 20 20 20 20 20 20 20 20 3b 20 70 | ; p| 00002c90 72 65 73 65 72 76 65 20 77 69 6e 64 6f 77 20 68 |reserve window h| 00002ca0 61 6e 64 6c 65 20 69 6e 20 52 37 20 66 6f 72 20 |andle in R7 for | 00002cb0 6c 61 74 65 72 20 75 73 65 0d 0d c0 41 20 20 20 |later use...A | 00002cc0 20 20 20 20 20 53 57 49 20 20 20 20 20 22 58 57 | SWI "XW| 00002cd0 69 6d 70 5f 43 6c 6f 73 65 57 69 6e 64 6f 77 22 |imp_CloseWindow"| 00002ce0 20 3b 20 63 6c 6f 73 65 20 64 69 72 65 63 74 6f | ; close directo| 00002cf0 72 79 20 64 69 73 70 6c 61 79 0d 0d ca 04 0d 0d |ry display......| 00002d00 d4 50 20 20 20 20 20 20 20 20 41 44 44 20 20 20 |.P ADD | 00002d10 20 20 52 31 2c 52 31 32 2c 23 77 6f 72 6b 73 70 | R1,R12,#worksp| 00002d20 61 63 65 20 20 20 20 20 20 20 20 20 20 20 3b 20 |ace ; | 00002d30 75 73 65 20 70 6f 6c 6c 69 6e 67 20 62 6c 6f 63 |use polling bloc| 00002d40 6b 20 61 73 20 77 6f 72 6b 73 70 61 63 65 0d 0d |k as workspace..| 00002d50 de 51 20 20 20 20 20 20 20 20 53 57 49 20 20 20 |.Q SWI | 00002d60 20 20 22 58 57 69 6d 70 5f 47 65 74 50 6f 69 6e | "XWimp_GetPoin| 00002d70 74 65 72 49 6e 66 6f 22 20 3b 20 66 69 72 73 74 |terInfo" ; first| 00002d80 20 74 77 6f 20 77 6f 72 64 73 20 6f 66 20 77 6f | two words of wo| 00002d90 72 6b 73 70 61 63 65 20 61 72 65 20 78 2c 79 0d |rkspace are x,y.| 00002da0 0d e8 04 0d 0d f2 59 20 20 20 20 20 20 20 20 41 |......Y A| 00002db0 44 44 20 20 20 20 20 52 31 2c 52 31 32 2c 23 77 |DD R1,R12,#w| 00002dc0 6f 72 6b 73 70 61 63 65 2b 38 20 20 20 20 20 20 |orkspace+8 | 00002dd0 20 20 3b 20 6f 66 66 73 65 74 20 73 6f 20 64 6f | ; offset so do| 00002de0 65 73 6e 27 74 20 6f 76 65 72 77 72 69 74 65 20 |esn't overwrite | 00002df0 6d 6f 75 73 65 20 63 6f 6f 72 64 73 0d 0d fc 1d |mouse coords....| 00002e00 20 20 20 20 20 20 20 20 84 52 20 20 20 20 20 52 | .R R| 00002e10 31 2c 52 31 2c 23 25 30 31 0d 0e 06 1e 20 20 20 |1,R1,#%01.... | 00002e20 20 20 20 20 20 42 49 43 20 20 20 20 20 52 31 2c | BIC R1,| 00002e30 52 31 2c 23 25 31 30 0d 0e 10 3f 20 20 20 20 20 |R1,#%10...? | 00002e40 20 20 20 53 54 52 20 20 20 20 20 52 37 2c 5b 52 | STR R7,[R| 00002e50 31 2c 23 30 5d 20 20 20 20 20 20 20 20 20 20 20 |1,#0] | 00002e60 20 3b 20 75 73 69 6e 67 20 77 69 6e 64 6f 77 20 | ; using window | 00002e70 68 61 6e 64 6c 65 0d 0e 1a 29 20 20 20 20 20 20 |handle...) | 00002e80 20 20 53 57 49 20 20 20 20 20 22 58 57 69 6d 70 | SWI "XWimp| 00002e90 5f 47 65 74 57 69 6e 64 6f 77 49 6e 66 6f 22 0d |_GetWindowInfo".| 00002ea0 0e 24 04 0d 0e 2e 21 20 20 20 20 20 20 20 20 41 |.$....! A| 00002eb0 44 52 20 20 20 20 20 52 32 2c 70 69 6e 63 6f 6d |DR R2,pincom| 00002ec0 6d 61 6e 64 0d 0e 38 56 20 20 20 20 20 20 20 20 |mand..8V | 00002ed0 41 44 44 20 20 20 20 20 52 33 2c 52 31 32 2c 23 |ADD R3,R12,#| 00002ee0 77 6f 72 6b 73 70 61 63 65 2b 38 20 20 20 20 20 |workspace+8 | 00002ef0 20 20 20 3b 20 6f 6b 20 74 6f 20 6f 76 65 72 77 | ; ok to overw| 00002f00 72 69 74 65 20 73 74 61 72 74 20 6f 66 20 77 69 |rite start of wi| 00002f10 6e 64 6f 77 20 62 6c 6f 63 6b 0d 0e 42 4f 20 20 |ndow block..BO | 00002f20 20 20 20 20 20 20 42 4c 20 20 20 20 20 20 73 74 | BL st| 00002f30 72 69 6e 67 63 6f 70 79 20 20 20 20 20 20 20 20 |ringcopy | 00002f40 20 20 20 20 3b 20 2d 20 6f 6e 6c 79 20 72 65 71 | ; - only req| 00002f50 75 69 72 65 20 74 69 74 6c 65 2c 20 61 74 20 6f |uire title, at o| 00002f60 66 66 73 65 74 20 37 36 21 0d 0e 4c 2e 20 20 20 |ffset 76!..L. | 00002f70 20 20 20 20 20 4c 44 52 20 20 20 20 20 52 32 2c | LDR R2,| 00002f80 5b 52 31 32 2c 23 28 77 6f 72 6b 73 70 61 63 65 |[R12,#(workspace| 00002f90 2b 38 2b 37 36 29 5d 0d 0e 56 1e 20 20 20 20 20 |+8+76)]..V. | 00002fa0 20 20 20 42 4c 20 20 20 20 20 20 73 74 72 69 6e | BL strin| 00002fb0 67 63 6f 70 79 0d 0e 60 1a 20 20 20 20 20 20 20 |gcopy..`. | 00002fc0 20 4d 4f 56 20 20 20 20 20 52 30 2c 23 33 32 0d | MOV R0,#32.| 00002fd0 0e 6a 53 20 20 20 20 20 20 20 20 53 54 52 42 20 |.jS STRB | 00002fe0 20 20 20 52 30 2c 5b 52 33 5d 2c 23 31 20 20 20 | R0,[R3],#1 | 00002ff0 20 20 20 20 20 20 20 20 20 3b 20 6f 76 65 72 77 | ; overw| 00003000 72 69 74 65 20 74 65 72 6d 69 6e 61 74 69 6e 67 |rite terminating| 00003010 20 6e 75 6c 6c 20 77 69 74 68 20 61 20 73 70 61 | null with a spa| 00003020 63 65 0d 0e 74 04 0d 0e 7e 49 20 20 20 20 20 20 |ce..t...~I | 00003030 20 20 41 44 44 20 20 20 20 20 52 34 2c 52 31 32 | ADD R4,R12| 00003040 2c 23 77 6f 72 6b 73 70 61 63 65 20 20 20 20 20 |,#workspace | 00003050 20 20 20 20 20 3b 20 70 6f 69 6e 74 73 20 74 6f | ; points to| 00003060 20 6d 6f 75 73 65 20 70 6f 73 69 74 69 6f 6e 0d | mouse position.| 00003070 0e 88 19 20 20 20 20 20 20 20 20 4d 4f 56 20 20 |... MOV | 00003080 20 20 20 52 31 2c 52 33 0d 0e 92 19 20 20 20 20 | R1,R3.... | 00003090 20 20 20 20 4d 4f 56 20 20 20 20 20 52 32 2c 23 | MOV R2,#| 000030a0 35 0d 0e 9c 33 20 20 20 20 20 20 20 20 4c 44 52 |5...3 LDR| 000030b0 20 20 20 20 20 52 30 2c 5b 52 34 2c 23 30 5d 20 | R0,[R4,#0] | 000030c0 20 20 20 20 20 20 20 20 20 20 20 3b 20 6d 6f 75 | ; mou| 000030d0 73 65 20 78 0d 0e a6 1d 20 20 20 20 20 20 20 20 |se x.... | 000030e0 53 55 42 20 20 20 20 20 52 30 2c 52 30 2c 23 39 |SUB R0,R0,#9| 000030f0 30 0d 0e b0 19 20 20 20 20 20 20 20 20 43 4d 50 |0.... CMP| 00003100 20 20 20 20 20 52 30 2c 23 30 0d 0e ba 19 20 20 | R0,#0.... | 00003110 20 20 20 20 20 20 4d 4f 56 4c 54 20 20 20 52 30 | MOVLT R0| 00003120 2c 23 30 0d 0e c4 29 20 20 20 20 20 20 20 20 53 |,#0...) S| 00003130 57 49 20 20 20 20 20 22 58 4f 53 5f 43 6f 6e 76 |WI "XOS_Conv| 00003140 65 72 74 49 6e 74 65 67 65 72 32 22 0d 0e ce 1a |ertInteger2"....| 00003150 20 20 20 20 20 20 20 20 4d 4f 56 20 20 20 20 20 | MOV | 00003160 52 30 2c 23 33 32 0d 0e d8 1e 20 20 20 20 20 20 |R0,#32.... | 00003170 20 20 53 54 52 42 20 20 20 20 52 30 2c 5b 52 31 | STRB R0,[R1| 00003180 5d 2c 23 31 0d 0e e2 19 20 20 20 20 20 20 20 20 |],#1.... | 00003190 4d 4f 56 20 20 20 20 20 52 32 2c 23 35 0d 0e ec |MOV R2,#5...| 000031a0 32 20 20 20 20 20 20 20 20 4c 44 52 20 20 20 20 |2 LDR | 000031b0 20 52 30 2c 5b 52 34 2c 23 34 5d 20 20 20 20 20 | R0,[R4,#4] | 000031c0 20 20 20 20 20 20 3b 20 6d 6f 75 73 65 20 79 0d | ; mouse y.| 000031d0 0e f6 1d 20 20 20 20 20 20 20 20 41 44 44 20 20 |... ADD | 000031e0 20 20 20 52 30 2c 52 30 2c 23 34 30 0d 0f 00 29 | R0,R0,#40...)| 000031f0 20 20 20 20 20 20 20 20 53 57 49 20 20 20 20 20 | SWI | 00003200 22 58 4f 53 5f 43 6f 6e 76 65 72 74 49 6e 74 65 |"XOS_ConvertInte| 00003210 67 65 72 32 22 0d 0f 0a 48 20 20 20 20 20 20 20 |ger2"...H | 00003220 20 41 44 44 20 20 20 20 20 52 30 2c 52 31 32 2c | ADD R0,R12,| 00003230 23 77 6f 72 6b 73 70 61 63 65 2b 38 20 20 3b 20 |#workspace+8 ; | 00003240 63 6f 6d 6d 61 6e 64 20 61 73 73 65 6d 62 6c 65 |command assemble| 00003250 64 20 61 74 20 6f 66 66 73 65 74 20 38 0d 0f 14 |d at offset 8...| 00003260 1d 20 20 20 20 20 20 20 20 53 57 49 20 20 20 20 |. SWI | 00003270 20 22 58 4f 53 5f 43 4c 49 22 0d 0f 1e 37 20 20 | "XOS_CLI"...7 | 00003280 20 20 20 20 20 20 4d 56 4e 20 20 20 20 20 52 30 | MVN R0| 00003290 2c 23 28 ac 20 2d 31 29 20 20 20 20 3b 20 64 6f |,#(. -1) ; do| 000032a0 6e 27 74 20 70 61 73 73 20 65 76 65 6e 74 20 6f |n't pass event o| 000032b0 6e 0d 0f 28 0e 2e 65 6e 64 66 69 6c 74 65 72 0d |n..(..endfilter.| 000032c0 0f 32 27 20 20 20 20 20 20 20 20 4c 44 4d 46 44 |.2' LDMFD| 000032d0 20 20 20 28 73 70 29 21 2c 7b 52 31 2d 52 31 31 | (sp)!,{R1-R11| 000032e0 2c 6c 69 6e 6b 7d 0d 0f 3c 1b 20 20 20 20 20 20 |,link}..<. | 000032f0 20 20 4d 4f 56 53 20 20 20 20 70 63 2c 6c 69 6e | MOVS pc,lin| 00003300 6b 0d 0f 46 04 0d 0f 50 11 2e 66 69 66 69 6c 74 |k..F...P..fifilt| 00003310 65 72 6e 61 6d 65 0d 0f 5a 1e 20 20 20 20 20 20 |ername..Z. | 00003320 20 20 45 51 55 53 20 20 20 20 22 46 69 6c 65 72 | EQUS "Filer| 00003330 50 69 6e 22 0d 0f 64 15 20 20 20 20 20 20 20 20 |Pin"..d. | 00003340 45 51 55 42 20 20 20 20 30 0d 0f 6e 11 20 20 20 |EQUB 0..n. | 00003350 20 20 20 20 20 41 4c 49 47 4e 0d 0f 78 04 0d 0f | ALIGN..x...| 00003360 82 4c 2e 70 69 66 69 6c 74 65 72 69 6e 73 74 61 |.L.pifilterinsta| 00003370 6c 6c 20 20 20 20 20 20 20 20 20 20 20 20 20 20 |ll | 00003380 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3b | ;| 00003390 20 70 61 73 73 20 70 69 20 74 61 73 6b 20 68 61 | pass pi task ha| 000033a0 6e 64 6c 65 20 69 6e 20 52 33 0d 0f 8c 23 20 20 |ndle in R3...# | 000033b0 20 20 20 20 20 20 53 54 4d 46 44 20 20 20 28 73 | STMFD (s| 000033c0 70 29 21 2c 7b 52 30 2c 6c 69 6e 6b 7d 0d 0f 96 |p)!,{R0,link}...| 000033d0 29 20 20 20 20 20 20 20 20 4c 44 52 20 20 20 20 |) LDR | 000033e0 20 52 31 2c 5b 52 31 32 2c 23 6d 6f 64 75 6c 65 | R1,[R12,#module| 000033f0 66 6c 61 67 73 5d 0d 0f a0 29 20 20 20 20 20 20 |flags]...) | 00003400 20 20 54 53 54 20 20 20 20 20 52 31 2c 23 70 69 | TST R1,#pi| 00003410 66 69 6c 74 65 72 69 6e 73 74 61 6c 6c 65 64 0d |filterinstalled.| 00003420 0f aa 51 20 20 20 20 20 20 20 20 4c 44 4d 4e 45 |..Q LDMNE| 00003430 46 44 20 28 73 70 29 21 2c 7b 52 30 2c 70 63 7d |FD (sp)!,{R0,pc}| 00003440 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3b | ;| 00003450 20 69 66 20 61 6c 72 65 61 64 79 20 69 6e 73 74 | if already inst| 00003460 61 6c 6c 65 64 2c 20 6a 75 73 74 20 65 78 69 74 |alled, just exit| 00003470 0d 0f b4 23 20 20 20 20 20 20 20 20 54 53 54 20 |...# TST | 00003480 20 20 20 20 52 31 2c 23 70 69 6e 66 69 6c 74 65 | R1,#pinfilte| 00003490 72 6f 6e 0d 0f be 47 20 20 20 20 20 20 20 20 4c |ron...G L| 000034a0 44 4d 45 51 46 44 20 28 73 70 29 21 2c 7b 52 30 |DMEQFD (sp)!,{R0| 000034b0 2c 70 63 7d 20 20 20 20 20 20 20 20 20 20 20 20 |,pc} | 000034c0 20 20 20 3b 20 69 66 20 6e 6f 74 20 73 65 6c 65 | ; if not sele| 000034d0 63 74 65 64 2c 20 65 78 69 74 0d 0f c8 23 20 20 |cted, exit...# | 000034e0 20 20 20 20 20 20 41 44 52 20 20 20 20 20 52 30 | ADR R0| 000034f0 2c 70 69 66 69 6c 74 65 72 6e 61 6d 65 0d 0f d2 |,pifiltername...| 00003500 23 20 20 20 20 20 20 20 20 41 44 52 20 20 20 20 |# ADR | 00003510 20 52 31 2c 70 69 66 69 6c 74 65 72 63 6f 64 65 | R1,pifiltercode| 00003520 0d 0f dc 50 20 20 20 20 20 20 20 20 4d 4f 56 20 |...P MOV | 00003530 20 20 20 20 52 32 2c 52 31 32 20 20 20 20 20 20 | R2,R12 | 00003540 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | | 00003550 20 3b 20 6e 6f 74 65 20 70 61 73 73 65 73 20 77 | ; note passes w| 00003560 6f 72 6b 73 70 61 63 65 20 70 6f 69 6e 74 65 72 |orkspace pointer| 00003570 0d 0f e6 4e 20 20 20 20 20 20 20 20 4c 44 52 20 |...N LDR | 00003580 20 20 20 20 52 34 2c 70 69 66 69 6c 74 65 72 6d | R4,pifilterm| 00003590 61 73 6b 20 20 20 20 20 20 20 20 20 20 20 20 20 |ask | 000035a0 20 3b 20 6e 6f 74 20 70 72 69 76 61 74 65 20 77 | ; not private w| 000035b0 6f 72 64 20 70 6f 69 6e 74 65 72 20 61 73 0d 0f |ord pointer as..| 000035c0 f0 39 20 20 20 20 20 20 20 20 53 57 49 20 20 20 |.9 SWI | 000035d0 20 20 22 58 46 69 6c 74 65 72 5f 52 65 67 69 73 | "XFilter_Regis| 000035e0 74 65 72 50 6f 73 74 46 69 6c 74 65 72 22 20 3b |terPostFilter" ;| 000035f0 20 62 65 66 6f 72 65 0d 0f fa 21 20 20 20 20 20 | before...! | 00003600 20 20 20 4c 44 4d 56 53 46 44 20 28 73 70 29 21 | LDMVSFD (sp)!| 00003610 2c 7b 52 30 2c 70 63 7d 0d 10 04 26 20 20 20 20 |,{R0,pc}...& | 00003620 20 20 20 20 53 54 52 20 20 20 20 20 52 33 2c 5b | STR R3,[| 00003630 52 31 32 2c 23 70 69 68 61 6e 64 6c 65 5d 0d 10 |R12,#pihandle]..| 00003640 0e 29 20 20 20 20 20 20 20 20 4c 44 52 20 20 20 |.) LDR | 00003650 20 20 52 31 2c 5b 52 31 32 2c 23 6d 6f 64 75 6c | R1,[R12,#modul| 00003660 65 66 6c 61 67 73 5d 0d 10 18 2b 20 20 20 20 20 |eflags]...+ | 00003670 20 20 20 84 52 20 20 20 20 20 52 31 2c 52 31 2c | .R R1,R1,| 00003680 23 70 69 66 69 6c 74 65 72 69 6e 73 74 61 6c 6c |#pifilterinstall| 00003690 65 64 0d 10 22 29 20 20 20 20 20 20 20 20 53 54 |ed..") ST| 000036a0 52 20 20 20 20 20 52 31 2c 5b 52 31 32 2c 23 6d |R R1,[R12,#m| 000036b0 6f 64 75 6c 65 66 6c 61 67 73 5d 0d 10 2c 19 20 |oduleflags]..,. | 000036c0 20 20 20 20 20 20 20 4d 4f 56 20 20 20 20 20 52 | MOV R| 000036d0 30 2c 23 34 0d 10 36 25 20 20 20 20 20 20 20 20 |0,#4..6% | 000036e0 41 44 44 20 20 20 20 20 52 31 2c 52 31 32 2c 23 |ADD R1,R12,#| 000036f0 77 6f 72 6b 73 70 61 63 65 0d 10 40 19 20 20 20 |workspace..@. | 00003700 20 20 20 20 20 4d 4f 56 20 20 20 20 20 52 32 2c | MOV R2,| 00003710 52 33 0d 10 4a 27 20 20 20 20 20 20 20 20 53 57 |R3..J' SW| 00003720 49 20 20 20 20 20 22 58 57 69 6d 70 5f 53 65 6e |I "XWimp_Sen| 00003730 64 4d 65 73 73 61 67 65 22 0d 10 54 21 20 20 20 |dMessage"..T! | 00003740 20 20 20 20 20 4c 44 4d 46 44 20 20 20 28 73 70 | LDMFD (sp| 00003750 29 21 2c 7b 52 30 2c 70 63 7d 0d 10 5e 04 0d 10 |)!,{R0,pc}..^...| 00003760 68 13 2e 70 69 66 69 6c 74 65 72 72 65 6d 6f 76 |h..pifilterremov| 00003770 65 0d 10 72 23 20 20 20 20 20 20 20 20 53 54 4d |e..r# STM| 00003780 46 44 20 20 20 28 73 70 29 21 2c 7b 52 30 2c 6c |FD (sp)!,{R0,l| 00003790 69 6e 6b 7d 0d 10 7c 29 20 20 20 20 20 20 20 20 |ink}..|) | 000037a0 4c 44 52 20 20 20 20 20 52 31 2c 5b 52 31 32 2c |LDR R1,[R12,| 000037b0 23 6d 6f 64 75 6c 65 66 6c 61 67 73 5d 0d 10 86 |#moduleflags]...| 000037c0 29 20 20 20 20 20 20 20 20 54 53 54 20 20 20 20 |) TST | 000037d0 20 52 31 2c 23 70 69 66 69 6c 74 65 72 69 6e 73 | R1,#pifilterins| 000037e0 74 61 6c 6c 65 64 0d 10 90 4d 20 20 20 20 20 20 |talled...M | 000037f0 20 20 4c 44 4d 45 51 46 44 20 28 73 70 29 21 2c | LDMEQFD (sp)!,| 00003800 7b 52 30 2c 70 63 7d 20 20 20 20 20 20 20 20 20 |{R0,pc} | 00003810 20 20 20 20 20 20 3b 20 69 66 20 6e 6f 74 20 69 | ; if not i| 00003820 6e 73 74 61 6c 6c 65 64 2c 20 6a 75 73 74 20 65 |nstalled, just e| 00003830 78 69 74 0d 10 9a 23 20 20 20 20 20 20 20 20 41 |xit...# A| 00003840 44 52 20 20 20 20 20 52 30 2c 70 69 66 69 6c 74 |DR R0,pifilt| 00003850 65 72 6e 61 6d 65 0d 10 a4 23 20 20 20 20 20 20 |ername...# | 00003860 20 20 41 44 52 20 20 20 20 20 52 31 2c 70 69 66 | ADR R1,pif| 00003870 69 6c 74 65 72 63 6f 64 65 0d 10 ae 1a 20 20 20 |iltercode.... | 00003880 20 20 20 20 20 4d 4f 56 20 20 20 20 20 52 32 2c | MOV R2,| 00003890 52 31 32 0d 10 b8 26 20 20 20 20 20 20 20 20 4c |R12...& L| 000038a0 44 52 20 20 20 20 20 52 33 2c 5b 52 31 32 2c 23 |DR R3,[R12,#| 000038b0 70 69 68 61 6e 64 6c 65 5d 0d 10 c2 23 20 20 20 |pihandle]...# | 000038c0 20 20 20 20 20 4c 44 52 20 20 20 20 20 52 34 2c | LDR R4,| 000038d0 70 69 66 69 6c 74 65 72 6d 61 73 6b 0d 10 cc 32 |pifiltermask...2| 000038e0 20 20 20 20 20 20 20 20 53 57 49 20 20 20 20 20 | SWI | 000038f0 22 58 46 69 6c 74 65 72 5f 44 65 52 65 67 69 73 |"XFilter_DeRegis| 00003900 74 65 72 50 6f 73 74 46 69 6c 74 65 72 22 0d 10 |terPostFilter"..| 00003910 d6 29 20 20 20 20 20 20 20 20 4c 44 52 20 20 20 |.) LDR | 00003920 20 20 52 31 2c 5b 52 31 32 2c 23 6d 6f 64 75 6c | R1,[R12,#modul| 00003930 65 66 6c 61 67 73 5d 0d 10 e0 2c 20 20 20 20 20 |eflags]..., | 00003940 20 20 20 42 49 43 20 20 20 20 20 52 31 2c 52 31 | BIC R1,R1| 00003950 2c 23 70 69 66 69 6c 74 65 72 69 6e 73 74 61 6c |,#pifilterinstal| 00003960 6c 65 64 0d 10 ea 2a 20 20 20 20 20 20 20 20 42 |led...* B| 00003970 49 43 20 20 20 20 20 52 31 2c 52 31 2c 23 70 69 |IC R1,R1,#pi| 00003980 6d 65 73 73 61 67 65 73 61 64 64 65 64 0d 10 f4 |messagesadded...| 00003990 29 20 20 20 20 20 20 20 20 53 54 52 20 20 20 20 |) STR | 000039a0 20 52 31 2c 5b 52 31 32 2c 23 6d 6f 64 75 6c 65 | R1,[R12,#module| 000039b0 66 6c 61 67 73 5d 0d 10 fe 21 20 20 20 20 20 20 |flags]...! | 000039c0 20 20 4c 44 4d 46 44 20 20 20 28 73 70 29 21 2c | LDMFD (sp)!,| 000039d0 7b 52 30 2c 70 63 7d 0d 11 08 04 0d 11 12 11 2e |{R0,pc}.........| 000039e0 70 69 66 69 6c 74 65 72 6e 61 6d 65 0d 11 1c 1f |pifiltername....| 000039f0 20 20 20 20 20 20 20 20 45 51 55 53 20 20 20 20 | EQUS | 00003a00 22 50 69 6e 46 69 6c 74 65 72 22 0d 11 26 15 20 |"PinFilter"..&. | 00003a10 20 20 20 20 20 20 20 45 51 55 42 20 20 20 20 30 | EQUB 0| 00003a20 0d 11 30 11 20 20 20 20 20 20 20 20 41 4c 49 47 |..0. ALIG| 00003a30 4e 0d 11 3a 04 0d 11 44 11 2e 70 69 66 69 6c 74 |N..:...D..pifilt| 00003a40 65 72 63 6f 64 65 0d 11 4e 27 20 20 20 20 20 20 |ercode..N' | 00003a50 20 20 53 54 4d 46 44 20 20 20 28 73 70 29 21 2c | STMFD (sp)!,| 00003a60 7b 52 31 2d 52 31 31 2c 6c 69 6e 6b 7d 0d 11 58 |{R1-R11,link}..X| 00003a70 29 20 20 20 20 20 20 20 20 4c 44 52 20 20 20 20 |) LDR | 00003a80 20 52 33 2c 5b 52 31 32 2c 23 6d 6f 64 75 6c 65 | R3,[R12,#module| 00003a90 66 6c 61 67 73 5d 0d 11 62 27 20 20 20 20 20 20 |flags]..b' | 00003aa0 20 20 54 53 54 20 20 20 20 20 52 33 2c 23 70 69 | TST R3,#pi| 00003ab0 6d 65 73 73 61 67 65 73 61 64 64 65 64 0d 11 6c |messagesadded..l| 00003ac0 21 20 20 20 20 20 20 20 20 42 4c 45 51 20 20 20 |! BLEQ | 00003ad0 20 70 69 61 64 64 6d 65 73 73 61 67 65 73 0d 11 | piaddmessages..| 00003ae0 76 19 20 20 20 20 20 20 20 20 54 45 51 20 20 20 |v. TEQ | 00003af0 20 20 52 30 2c 23 39 0d 11 80 1e 20 20 20 20 20 | R0,#9.... | 00003b00 20 20 20 42 45 51 20 20 20 20 20 6d 65 6e 75 73 | BEQ menus| 00003b10 65 6c 65 63 74 0d 11 8a 1a 20 20 20 20 20 20 20 |elect.... | 00003b20 20 54 45 51 20 20 20 20 20 52 30 2c 23 31 37 0d | TEQ R0,#17.| 00003b30 11 94 1a 20 20 20 20 20 20 20 20 54 45 51 4e 45 |... TEQNE| 00003b40 20 20 20 52 30 2c 23 31 38 0d 11 9e 1d 20 20 20 | R0,#18.... | 00003b50 20 20 20 20 20 42 4e 45 20 20 20 20 20 65 6e 64 | BNE end| 00003b60 66 69 6c 74 65 72 0d 11 a8 1f 20 20 20 20 20 20 |filter.... | 00003b70 20 20 4c 44 52 20 20 20 20 20 52 32 2c 5b 52 31 | LDR R2,[R1| 00003b80 2c 23 31 36 5d 0d 11 b2 19 20 20 20 20 20 20 20 |,#16].... | 00003b90 20 43 4d 50 20 20 20 20 20 52 32 2c 23 31 0d 11 | CMP R2,#1..| 00003ba0 bc 1f 20 20 20 20 20 20 20 20 42 45 51 20 20 20 |.. BEQ | 00003bb0 20 20 67 6f 74 64 61 74 61 73 61 76 65 0d 11 c6 | gotdatasave...| 00003bc0 19 20 20 20 20 20 20 20 20 43 4d 50 20 20 20 20 |. CMP | 00003bd0 20 52 32 2c 23 33 0d 11 d0 1d 20 20 20 20 20 20 | R2,#3.... | 00003be0 20 20 42 4e 45 20 20 20 20 20 65 6e 64 66 69 6c | BNE endfil| 00003bf0 74 65 72 0d 11 da 1f 20 20 20 20 20 20 20 20 4c |ter.... L| 00003c00 44 52 20 20 20 20 20 52 32 2c 5b 52 31 2c 23 31 |DR R2,[R1,#1| 00003c10 32 5d 0d 11 e4 19 20 20 20 20 20 20 20 20 43 4d |2].... CM| 00003c20 50 20 20 20 20 20 52 32 2c 23 30 0d 11 ee 1d 20 |P R2,#0.... | 00003c30 20 20 20 20 20 20 20 42 45 51 20 20 20 20 20 65 | BEQ e| 00003c40 6e 64 66 69 6c 74 65 72 0d 11 f8 43 20 20 20 20 |ndfilter...C | 00003c50 20 20 20 20 4c 44 52 20 20 20 20 20 52 32 2c 5b | LDR R2,[| 00003c60 52 31 2c 23 38 5d 20 20 20 20 20 20 20 20 20 20 |R1,#8] | 00003c70 20 3b 20 73 65 6e 64 20 6d 65 73 73 61 67 65 5f | ; send message_| 00003c80 64 61 74 61 6c 6f 61 64 61 63 6b 0d 12 02 1f 20 |dataloadack.... | 00003c90 20 20 20 20 20 20 20 53 54 52 20 20 20 20 20 52 | STR R| 00003ca0 32 2c 5b 52 31 2c 23 31 32 5d 0d 12 0c 19 20 20 |2,[R1,#12].... | 00003cb0 20 20 20 20 20 20 4d 4f 56 20 20 20 20 20 52 32 | MOV R2| 00003cc0 2c 23 34 0d 12 16 1f 20 20 20 20 20 20 20 20 53 |,#4.... S| 00003cd0 54 52 20 20 20 20 20 52 32 2c 5b 52 31 2c 23 31 |TR R2,[R1,#1| 00003ce0 36 5d 0d 12 20 1a 20 20 20 20 20 20 20 20 4d 4f |6].. . MO| 00003cf0 56 20 20 20 20 20 52 30 2c 23 31 37 0d 12 2a 1e |V R0,#17..*.| 00003d00 20 20 20 20 20 20 20 20 4c 44 52 20 20 20 20 20 | LDR | 00003d10 52 32 2c 5b 52 31 2c 23 34 5d 0d 12 34 27 20 20 |R2,[R1,#4]..4' | 00003d20 20 20 20 20 20 20 53 57 49 20 20 20 20 20 22 58 | SWI "X| 00003d30 57 69 6d 70 5f 53 65 6e 64 4d 65 73 73 61 67 65 |Wimp_SendMessage| 00003d40 22 0d 12 3e 17 20 20 20 20 20 20 20 20 42 4c 20 |"..>. BL | 00003d50 20 20 20 20 20 70 69 6e 0d 12 48 1e 20 20 20 20 | pin..H. | 00003d60 20 20 20 20 4d 56 4e 20 20 20 20 20 52 30 2c 23 | MVN R0,#| 00003d70 28 ac 20 2d 31 29 0d 12 52 1d 20 20 20 20 20 20 |(. -1)..R. | 00003d80 20 20 42 20 20 20 20 20 20 20 65 6e 64 66 69 6c | B endfil| 00003d90 74 65 72 0d 12 5c 04 0d 12 66 0f 2e 6d 65 6e 75 |ter..\...f..menu| 00003da0 73 65 6c 65 63 74 0d 12 70 1e 20 20 20 20 20 20 |select..p. | 00003db0 20 20 53 54 4d 46 44 20 20 20 28 73 70 29 21 2c | STMFD (sp)!,| 00003dc0 7b 52 30 7d 0d 12 7a 1e 20 20 20 20 20 20 20 20 |{R0}..z. | 00003dd0 4c 44 52 20 20 20 20 20 52 32 2c 5b 52 31 2c 23 |LDR R2,[R1,#| 00003de0 30 5d 0d 12 84 19 20 20 20 20 20 20 20 20 43 4d |0].... CM| 00003df0 50 20 20 20 20 20 52 32 2c 23 30 0d 12 8e 1e 20 |P R2,#0.... | 00003e00 20 20 20 20 20 20 20 4c 44 4d 4e 45 46 44 20 28 | LDMNEFD (| 00003e10 73 70 29 21 2c 7b 52 30 7d 0d 12 98 1d 20 20 20 |sp)!,{R0}.... | 00003e20 20 20 20 20 20 42 4e 45 20 20 20 20 20 65 6e 64 | BNE end| 00003e30 66 69 6c 74 65 72 0d 12 a2 20 20 20 20 20 20 20 |filter... | 00003e40 20 20 41 44 52 20 20 20 20 20 52 32 2c 66 69 6c | ADR R2,fil| 00003e50 65 72 6f 70 65 6e 0d 12 ac 25 20 20 20 20 20 20 |eropen...% | 00003e60 20 20 41 44 44 20 20 20 20 20 52 33 2c 52 31 32 | ADD R3,R12| 00003e70 2c 23 77 6f 72 6b 73 70 61 63 65 0d 12 b6 1e 20 |,#workspace.... | 00003e80 20 20 20 20 20 20 20 42 4c 20 20 20 20 20 20 73 | BL s| 00003e90 74 72 69 6e 67 63 6f 70 79 0d 12 c0 1e 20 20 20 |tringcopy.... | 00003ea0 20 20 20 20 20 41 44 52 20 20 20 20 20 52 32 2c | ADR R2,| 00003eb0 74 65 6d 70 64 69 72 0d 12 ca 1e 20 20 20 20 20 |tempdir.... | 00003ec0 20 20 20 42 4c 20 20 20 20 20 20 73 74 72 69 6e | BL strin| 00003ed0 67 63 6f 70 79 0d 12 d4 19 20 20 20 20 20 20 20 |gcopy.... | 00003ee0 20 4d 4f 56 20 20 20 20 20 52 32 2c 23 30 0d 12 | MOV R2,#0..| 00003ef0 de 1f 20 20 20 20 20 20 20 20 53 54 52 42 20 20 |.. STRB | 00003f00 20 20 52 32 2c 5b 52 33 2c 23 2d 31 5d 0d 12 e8 | R2,[R3,#-1]...| 00003f10 25 20 20 20 20 20 20 20 20 41 44 44 20 20 20 20 |% ADD | 00003f20 20 52 30 2c 52 31 32 2c 23 77 6f 72 6b 73 70 61 | R0,R12,#workspa| 00003f30 63 65 0d 12 f2 1d 20 20 20 20 20 20 20 20 53 57 |ce.... SW| 00003f40 49 20 20 20 20 20 22 58 4f 53 5f 43 4c 49 22 0d |I "XOS_CLI".| 00003f50 12 fc 1e 20 20 20 20 20 20 20 20 4c 44 4d 46 44 |... LDMFD| 00003f60 20 20 20 28 73 70 29 21 2c 7b 52 30 7d 0d 13 06 | (sp)!,{R0}...| 00003f70 1d 20 20 20 20 20 20 20 20 42 20 20 20 20 20 20 |. B | 00003f80 20 65 6e 64 66 69 6c 74 65 72 0d 13 10 04 0d 13 | endfilter......| 00003f90 1a 0e 2e 66 69 6c 65 72 6f 70 65 6e 0d 13 24 24 |...fileropen..$$| 00003fa0 20 20 20 20 20 20 20 20 45 51 55 53 20 20 20 20 | EQUS | 00003fb0 22 46 69 6c 65 72 5f 4f 70 65 6e 44 69 72 20 22 |"Filer_OpenDir "| 00003fc0 0d 13 2e 15 20 20 20 20 20 20 20 20 45 51 55 42 |.... EQUB| 00003fd0 20 20 20 20 30 0d 13 38 11 20 20 20 20 20 20 20 | 0..8. | 00003fe0 20 41 4c 49 47 4e 0d 13 42 04 0d 13 4c 10 2e 67 | ALIGN..B...L..g| 00003ff0 6f 74 64 61 74 61 73 61 76 65 0d 13 56 45 20 20 |otdatasave..VE | 00004000 20 20 20 20 20 20 4d 4f 56 20 20 20 20 20 52 39 | MOV R9| 00004010 2c 52 31 20 20 20 20 20 20 20 20 20 3b 20 63 68 |,R1 ; ch| 00004020 65 63 6b 73 20 77 69 6e 64 6f 77 20 68 61 6e 64 |ecks window hand| 00004030 6c 65 20 69 73 20 62 61 63 6b 64 72 6f 70 21 0d |le is backdrop!.| 00004040 13 60 1a 20 20 20 20 20 20 20 20 4d 4f 56 20 20 |.`. MOV | 00004050 20 20 20 52 30 2c 23 31 38 0d 13 6a 1d 20 20 20 | R0,#18..j. | 00004060 20 20 20 20 20 41 44 52 20 20 20 20 20 52 31 2c | ADR R1,| 00004070 70 69 6e 61 6d 65 0d 13 74 20 20 20 20 20 20 20 |piname..t | 00004080 20 20 53 57 49 20 20 20 20 20 22 58 4f 53 5f 4d | SWI "XOS_M| 00004090 6f 64 75 6c 65 22 0d 13 7e 1d 20 20 20 20 20 20 |odule"..~. | 000040a0 20 20 42 56 53 20 20 20 20 20 65 6e 64 66 69 6c | BVS endfil| 000040b0 74 65 72 0d 13 88 1f 20 20 20 20 20 20 20 20 4c |ter.... L| 000040c0 44 52 20 20 20 20 20 52 34 2c 5b 52 34 2c 23 32 |DR R4,[R4,#2| 000040d0 38 5d 0d 13 92 19 20 20 20 20 20 20 20 20 4d 4f |8].... MO| 000040e0 56 20 20 20 20 20 52 31 2c 52 39 0d 13 9c 1f 20 |V R1,R9.... | 000040f0 20 20 20 20 20 20 20 4c 44 52 20 20 20 20 20 52 | LDR R| 00004100 30 2c 5b 52 31 2c 23 32 30 5d 0d 13 a6 19 20 20 |0,[R1,#20].... | 00004110 20 20 20 20 20 20 43 4d 50 20 20 20 20 20 52 30 | CMP R0| 00004120 2c 52 34 0d 13 b0 1d 20 20 20 20 20 20 20 20 42 |,R4.... B| 00004130 4e 45 20 20 20 20 20 65 6e 64 66 69 6c 74 65 72 |NE endfilter| 00004140 0d 13 ba 04 0d 13 c4 1e 20 20 20 20 20 20 20 20 |........ | 00004150 41 44 52 20 20 20 20 20 52 32 2c 74 65 6d 70 64 |ADR R2,tempd| 00004160 69 72 0d 13 ce 25 20 20 20 20 20 20 20 20 41 44 |ir...% AD| 00004170 44 20 20 20 20 20 52 33 2c 52 31 32 2c 23 77 6f |D R3,R12,#wo| 00004180 72 6b 73 70 61 63 65 0d 13 d8 1e 20 20 20 20 20 |rkspace.... | 00004190 20 20 20 42 4c 20 20 20 20 20 20 73 74 72 69 6e | BL strin| 000041a0 67 63 6f 70 79 0d 13 e2 1e 20 20 20 20 20 20 20 |gcopy.... | 000041b0 20 4c 44 52 20 20 20 20 20 52 30 2c 5b 52 31 2c | LDR R0,[R1,| 000041c0 23 38 5d 0d 13 ec 1f 20 20 20 20 20 20 20 20 53 |#8].... S| 000041d0 54 52 20 20 20 20 20 52 30 2c 5b 52 31 2c 23 31 |TR R0,[R1,#1| 000041e0 32 5d 0d 13 f6 1d 20 20 20 20 20 20 20 20 41 44 |2].... AD| 000041f0 44 20 20 20 20 20 52 32 2c 52 31 2c 23 34 34 0d |D R2,R1,#44.| 00004200 14 00 2a 20 20 20 20 20 20 20 20 41 44 44 20 20 |..* ADD | 00004210 20 20 20 52 33 2c 52 31 32 2c 23 28 77 6f 72 6b | R3,R12,#(work| 00004220 73 70 61 63 65 2b 33 32 29 0d 14 0a 1e 20 20 20 |space+32).... | 00004230 20 20 20 20 20 42 4c 20 20 20 20 20 20 73 74 72 | BL str| 00004240 69 6e 67 63 6f 70 79 0d 14 14 19 20 20 20 20 20 |ingcopy.... | 00004250 20 20 20 4d 4f 56 20 20 20 20 20 52 33 2c 52 32 | MOV R3,R2| 00004260 0d 14 1e 25 20 20 20 20 20 20 20 20 41 44 44 20 |...% ADD | 00004270 20 20 20 20 52 32 2c 52 31 32 2c 23 77 6f 72 6b | R2,R12,#work| 00004280 73 70 61 63 65 0d 14 28 1e 20 20 20 20 20 20 20 |space..(. | 00004290 20 42 4c 20 20 20 20 20 20 73 74 72 69 6e 67 63 | BL stringc| 000042a0 6f 70 79 0d 14 32 2a 20 20 20 20 20 20 20 20 41 |opy..2* A| 000042b0 44 44 20 20 20 20 20 52 32 2c 52 31 32 2c 23 28 |DD R2,R12,#(| 000042c0 77 6f 72 6b 73 70 61 63 65 2b 33 32 29 0d 14 3c |workspace+32)..<| 000042d0 1e 20 20 20 20 20 20 20 20 42 4c 20 20 20 20 20 |. BL | 000042e0 20 73 74 72 69 6e 67 63 6f 70 79 0d 14 46 1b 20 | stringcopy..F. | 000042f0 20 20 20 20 20 20 20 4d 4f 56 20 20 20 20 20 52 | MOV R| 00004300 30 2c 23 32 35 36 0d 14 50 1b 20 20 20 20 20 20 |0,#256..P. | 00004310 20 20 53 54 52 20 20 20 20 20 52 30 2c 5b 52 31 | STR R0,[R1| 00004320 5d 0d 14 5a 19 20 20 20 20 20 20 20 20 4d 4f 56 |]..Z. MOV| 00004330 20 20 20 20 20 52 30 2c 23 32 0d 14 64 1f 20 20 | R0,#2..d. | 00004340 20 20 20 20 20 20 53 54 52 20 20 20 20 20 52 30 | STR R0| 00004350 2c 5b 52 31 2c 23 31 36 5d 0d 14 6e 1a 20 20 20 |,[R1,#16]..n. | 00004360 20 20 20 20 20 4d 4f 56 20 20 20 20 20 52 30 2c | MOV R0,| 00004370 23 31 37 0d 14 78 1e 20 20 20 20 20 20 20 20 4c |#17..x. L| 00004380 44 52 20 20 20 20 20 52 32 2c 5b 52 31 2c 23 34 |DR R2,[R1,#4| 00004390 5d 0d 14 82 27 20 20 20 20 20 20 20 20 53 57 49 |]...' SWI| 000043a0 20 20 20 20 20 22 58 57 69 6d 70 5f 53 65 6e 64 | "XWimp_Send| 000043b0 4d 65 73 73 61 67 65 22 0d 14 8c 1e 20 20 20 20 |Message".... | 000043c0 20 20 20 20 4d 56 4e 20 20 20 20 20 52 30 2c 23 | MVN R0,#| 000043d0 28 ac 20 2d 31 29 0d 14 96 29 20 20 20 20 20 20 |(. -1)...) | 000043e0 20 20 4c 44 52 20 20 20 20 20 52 31 2c 5b 52 31 | LDR R1,[R1| 000043f0 32 2c 23 6d 6f 64 75 6c 65 66 6c 61 67 73 5d 0d |2,#moduleflags].| 00004400 14 a0 28 20 20 20 20 20 20 20 20 84 52 20 20 20 |..( .R | 00004410 20 20 52 31 2c 52 31 2c 23 70 69 6c 61 73 74 73 | R1,R1,#pilasts| 00004420 61 76 65 6f 75 72 73 0d 14 aa 29 20 20 20 20 20 |aveours...) | 00004430 20 20 20 53 54 52 20 20 20 20 20 52 31 2c 5b 52 | STR R1,[R| 00004440 31 32 2c 23 6d 6f 64 75 6c 65 66 6c 61 67 73 5d |12,#moduleflags]| 00004450 0d 14 b4 1d 20 20 20 20 20 20 20 20 42 20 20 20 |.... B | 00004460 20 20 20 20 65 6e 64 66 69 6c 74 65 72 0d 14 be | endfilter...| 00004470 04 0d 14 c8 0c 2e 74 65 6d 70 64 69 72 0d 14 d2 |......tempdir...| 00004480 25 20 20 20 20 20 20 20 20 45 51 55 53 20 20 20 |% EQUS | 00004490 20 22 50 69 6e 46 69 6c 74 65 72 3a 54 65 6d 70 | "PinFilter:Temp| 000044a0 2e 22 0d 14 dc 15 20 20 20 20 20 20 20 20 45 51 |.".... EQ| 000044b0 55 42 20 20 20 20 30 0d 14 e6 11 20 20 20 20 20 |UB 0.... | 000044c0 20 20 20 41 4c 49 47 4e 0d 14 f0 04 0d 14 fa 08 | ALIGN........| 000044d0 2e 70 69 6e 0d 15 04 26 20 20 20 20 20 20 20 20 |.pin...& | 000044e0 53 54 4d 46 44 20 20 20 28 73 70 29 21 2c 7b 52 |STMFD (sp)!,{R| 000044f0 30 2d 52 34 2c 6c 69 6e 6b 7d 0d 15 0e 29 20 20 |0-R4,link}...) | 00004500 20 20 20 20 20 20 4c 44 52 20 20 20 20 20 52 34 | LDR R4| 00004510 2c 5b 52 31 32 2c 23 6d 6f 64 75 6c 65 66 6c 61 |,[R12,#modulefla| 00004520 67 73 5d 0d 15 18 26 20 20 20 20 20 20 20 20 54 |gs]...& T| 00004530 53 54 20 20 20 20 20 52 34 2c 23 70 69 6c 61 73 |ST R4,#pilas| 00004540 74 73 61 76 65 6f 75 72 73 0d 15 22 24 20 20 20 |tsaveours.."$ | 00004550 20 20 20 20 20 4c 44 4d 45 51 46 44 20 28 73 70 | LDMEQFD (sp| 00004560 29 21 2c 7b 52 30 2d 52 34 2c 70 63 7d 0d 15 2c |)!,{R0-R4,pc}..,| 00004570 29 20 20 20 20 20 20 20 20 42 49 43 20 20 20 20 |) BIC | 00004580 20 52 34 2c 52 34 2c 23 70 69 6c 61 73 74 73 61 | R4,R4,#pilastsa| 00004590 76 65 6f 75 72 73 0d 15 36 29 20 20 20 20 20 20 |veours..6) | 000045a0 20 20 53 54 52 20 20 20 20 20 52 34 2c 5b 52 31 | STR R4,[R1| 000045b0 32 2c 23 6d 6f 64 75 6c 65 66 6c 61 67 73 5d 0d |2,#moduleflags].| 000045c0 15 40 21 20 20 20 20 20 20 20 20 41 44 52 20 20 |.@! ADR | 000045d0 20 20 20 52 32 2c 70 69 6e 63 6f 6d 6d 61 6e 64 | R2,pincommand| 000045e0 0d 15 4a 25 20 20 20 20 20 20 20 20 41 44 44 20 |..J% ADD | 000045f0 20 20 20 20 52 33 2c 52 31 32 2c 23 77 6f 72 6b | R3,R12,#work| 00004600 73 70 61 63 65 0d 15 54 1e 20 20 20 20 20 20 20 |space..T. | 00004610 20 42 4c 20 20 20 20 20 20 73 74 72 69 6e 67 63 | BL stringc| 00004620 6f 70 79 0d 15 5e 1d 20 20 20 20 20 20 20 20 41 |opy..^. A| 00004630 44 44 20 20 20 20 20 52 32 2c 52 31 2c 23 34 34 |DD R2,R1,#44| 00004640 0d 15 68 1e 20 20 20 20 20 20 20 20 42 4c 20 20 |..h. BL | 00004650 20 20 20 20 73 74 72 69 6e 67 63 6f 70 79 0d 15 | stringcopy..| 00004660 72 1a 20 20 20 20 20 20 20 20 4d 4f 56 20 20 20 |r. MOV | 00004670 20 20 52 30 2c 23 33 32 0d 15 7c 1e 20 20 20 20 | R0,#32..|. | 00004680 20 20 20 20 53 54 52 42 20 20 20 20 52 30 2c 5b | STRB R0,[| 00004690 52 33 5d 2c 23 31 0d 15 86 19 20 20 20 20 20 20 |R3],#1.... | 000046a0 20 20 4d 4f 56 20 20 20 20 20 52 34 2c 52 31 0d | MOV R4,R1.| 000046b0 15 90 19 20 20 20 20 20 20 20 20 4d 4f 56 20 20 |... MOV | 000046c0 20 20 20 52 31 2c 52 33 0d 15 9a 19 20 20 20 20 | R1,R3.... | 000046d0 20 20 20 20 4d 4f 56 20 20 20 20 20 52 32 2c 23 | MOV R2,#| 000046e0 35 0d 15 a4 1f 20 20 20 20 20 20 20 20 4c 44 52 |5.... LDR| 000046f0 20 20 20 20 20 52 30 2c 5b 52 34 2c 23 32 38 5d | R0,[R4,#28]| 00004700 0d 15 ae 1d 20 20 20 20 20 20 20 20 53 55 42 53 |.... SUBS| 00004710 20 20 20 20 52 30 2c 52 30 2c 23 39 30 0d 15 b8 | R0,R0,#90...| 00004720 19 20 20 20 20 20 20 20 20 4d 4f 56 4c 54 20 20 |. MOVLT | 00004730 20 52 30 2c 23 30 0d 15 c2 29 20 20 20 20 20 20 | R0,#0...) | 00004740 20 20 53 57 49 20 20 20 20 20 22 58 4f 53 5f 43 | SWI "XOS_C| 00004750 6f 6e 76 65 72 74 49 6e 74 65 67 65 72 32 22 0d |onvertInteger2".| 00004760 15 cc 1a 20 20 20 20 20 20 20 20 4d 4f 56 20 20 |... MOV | 00004770 20 20 20 52 30 2c 23 33 32 0d 15 d6 1e 20 20 20 | R0,#32.... | 00004780 20 20 20 20 20 53 54 52 42 20 20 20 20 52 30 2c | STRB R0,| 00004790 5b 52 31 5d 2c 23 31 0d 15 e0 19 20 20 20 20 20 |[R1],#1.... | 000047a0 20 20 20 4d 4f 56 20 20 20 20 20 52 32 2c 23 35 | MOV R2,#5| 000047b0 0d 15 ea 1f 20 20 20 20 20 20 20 20 4c 44 52 20 |.... LDR | 000047c0 20 20 20 20 52 30 2c 5b 52 34 2c 23 33 32 5d 0d | R0,[R4,#32].| 000047d0 15 f4 1d 20 20 20 20 20 20 20 20 41 44 44 20 20 |... ADD | 000047e0 20 20 20 52 30 2c 52 30 2c 23 34 30 0d 15 fe 29 | R0,R0,#40...)| 000047f0 20 20 20 20 20 20 20 20 53 57 49 20 20 20 20 20 | SWI | 00004800 22 58 4f 53 5f 43 6f 6e 76 65 72 74 49 6e 74 65 |"XOS_ConvertInte| 00004810 67 65 72 32 22 0d 16 08 25 20 20 20 20 20 20 20 |ger2"...% | 00004820 20 41 44 44 20 20 20 20 20 52 30 2c 52 31 32 2c | ADD R0,R12,| 00004830 23 77 6f 72 6b 73 70 61 63 65 0d 16 12 1d 20 20 |#workspace.... | 00004840 20 20 20 20 20 20 53 57 49 20 20 20 20 20 22 58 | SWI "X| 00004850 4f 53 5f 43 4c 49 22 0d 16 1c 24 20 20 20 20 20 |OS_CLI"...$ | 00004860 20 20 20 4c 44 4d 46 44 20 20 20 28 73 70 29 21 | LDMFD (sp)!| 00004870 2c 7b 52 30 2d 52 34 2c 70 63 7d 0d 16 26 04 0d |,{R0-R4,pc}..&..| 00004880 16 30 12 2e 70 69 61 64 64 6d 65 73 73 61 67 65 |.0..piaddmessage| 00004890 73 0d 16 3a 23 20 20 20 20 20 20 20 20 53 54 4d |s..:# STM| 000048a0 46 44 20 20 20 28 73 70 29 21 2c 7b 52 30 2c 6c |FD (sp)!,{R0,l| 000048b0 69 6e 6b 7d 0d 16 44 21 20 20 20 20 20 20 20 20 |ink}..D! | 000048c0 41 44 52 20 20 20 20 20 52 30 2c 70 69 6d 65 73 |ADR R0,pimes| 000048d0 73 61 67 65 73 0d 16 4e 27 20 20 20 20 20 20 20 |sages..N' | 000048e0 20 53 57 49 20 20 20 20 20 22 58 57 69 6d 70 5f | SWI "XWimp_| 000048f0 41 64 64 4d 65 73 73 61 67 65 73 22 0d 16 58 29 |AddMessages"..X)| 00004900 20 20 20 20 20 20 20 20 84 52 20 20 20 20 20 52 | .R R| 00004910 33 2c 52 33 2c 23 70 69 6d 65 73 73 61 67 65 73 |3,R3,#pimessages| 00004920 61 64 64 65 64 0d 16 62 29 20 20 20 20 20 20 20 |added..b) | 00004930 20 53 54 52 20 20 20 20 20 52 33 2c 5b 52 31 32 | STR R3,[R12| 00004940 2c 23 6d 6f 64 75 6c 65 66 6c 61 67 73 5d 0d 16 |,#moduleflags]..| 00004950 6c 21 20 20 20 20 20 20 20 20 4c 44 4d 46 44 20 |l! LDMFD | 00004960 20 20 28 73 70 29 21 2c 7b 52 30 2c 70 63 7d 0d | (sp)!,{R0,pc}.| 00004970 16 76 04 0d 16 80 0f 2e 70 69 6d 65 73 73 61 67 |.v......pimessag| 00004980 65 73 0d 16 8a 15 20 20 20 20 20 20 20 20 45 51 |es.... EQ| 00004990 55 44 20 20 20 20 31 0d 16 94 15 20 20 20 20 20 |UD 1.... | 000049a0 20 20 20 45 51 55 44 20 20 20 20 30 0d 16 9e 04 | EQUD 0....| 000049b0 0d 16 a8 14 2e 69 63 66 69 6c 74 65 72 69 6e 73 |.....icfilterins| 000049c0 74 61 6c 6c 0d 16 b2 23 20 20 20 20 20 20 20 20 |tall...# | 000049d0 53 54 4d 46 44 20 20 20 28 73 70 29 21 2c 7b 52 |STMFD (sp)!,{R| 000049e0 30 2c 6c 69 6e 6b 7d 0d 16 bc 29 20 20 20 20 20 |0,link}...) | 000049f0 20 20 20 4c 44 52 20 20 20 20 20 52 31 2c 5b 52 | LDR R1,[R| 00004a00 31 32 2c 23 6d 6f 64 75 6c 65 66 6c 61 67 73 5d |12,#moduleflags]| 00004a10 0d 16 c6 29 20 20 20 20 20 20 20 20 54 53 54 20 |...) TST | 00004a20 20 20 20 20 52 31 2c 23 69 63 66 69 6c 74 65 72 | R1,#icfilter| 00004a30 69 6e 73 74 61 6c 6c 65 64 0d 16 d0 51 20 20 20 |installed...Q | 00004a40 20 20 20 20 20 4c 44 4d 4e 45 46 44 20 28 73 70 | LDMNEFD (sp| 00004a50 29 21 2c 7b 52 30 2c 70 63 7d 20 20 20 20 20 20 |)!,{R0,pc} | 00004a60 20 20 20 20 20 20 20 20 20 3b 20 69 66 20 61 6c | ; if al| 00004a70 72 65 61 64 79 20 69 6e 73 74 61 6c 6c 65 64 2c |ready installed,| 00004a80 20 6a 75 73 74 20 65 78 69 74 0d 16 da 21 20 20 | just exit...! | 00004a90 20 20 20 20 20 20 54 53 54 20 20 20 20 20 52 31 | TST R1| 00004aa0 2c 23 69 63 6f 6e 69 73 65 6f 6e 0d 16 e4 47 20 |,#iconiseon...G | 00004ab0 20 20 20 20 20 20 20 4c 44 4d 45 51 46 44 20 28 | LDMEQFD (| 00004ac0 73 70 29 21 2c 7b 52 30 2c 70 63 7d 20 20 20 20 |sp)!,{R0,pc} | 00004ad0 20 20 20 20 20 20 20 20 20 20 20 3b 20 69 66 20 | ; if | 00004ae0 6e 6f 74 20 73 65 6c 65 63 74 65 64 2c 20 65 78 |not selected, ex| 00004af0 69 74 0d 16 ee 23 20 20 20 20 20 20 20 20 41 44 |it...# AD| 00004b00 52 20 20 20 20 20 52 30 2c 69 63 66 69 6c 74 65 |R R0,icfilte| 00004b10 72 6e 61 6d 65 0d 16 f8 23 20 20 20 20 20 20 20 |rname...# | 00004b20 20 41 44 52 20 20 20 20 20 52 31 2c 69 63 66 69 | ADR R1,icfi| 00004b30 6c 74 65 72 63 6f 64 65 0d 17 02 1a 20 20 20 20 |ltercode.... | 00004b40 20 20 20 20 4d 4f 56 20 20 20 20 20 52 32 2c 52 | MOV R2,R| 00004b50 31 32 0d 17 0c 19 20 20 20 20 20 20 20 20 4d 4f |12.... MO| 00004b60 56 20 20 20 20 20 52 33 2c 23 30 0d 17 16 23 20 |V R3,#0...# | 00004b70 20 20 20 20 20 20 20 4c 44 52 20 20 20 20 20 52 | LDR R| 00004b80 34 2c 69 63 66 69 6c 74 65 72 6d 61 73 6b 0d 17 |4,icfiltermask..| 00004b90 20 30 20 20 20 20 20 20 20 20 53 57 49 20 20 20 | 0 SWI | 00004ba0 20 20 22 58 46 69 6c 74 65 72 5f 52 65 67 69 73 | "XFilter_Regis| 00004bb0 74 65 72 50 6f 73 74 46 69 6c 74 65 72 22 0d 17 |terPostFilter"..| 00004bc0 2a 21 20 20 20 20 20 20 20 20 4c 44 4d 56 53 46 |*! LDMVSF| 00004bd0 44 20 28 73 70 29 21 2c 7b 52 30 2c 70 63 7d 0d |D (sp)!,{R0,pc}.| 00004be0 17 34 29 20 20 20 20 20 20 20 20 4c 44 52 20 20 |.4) LDR | 00004bf0 20 20 20 52 31 2c 5b 52 31 32 2c 23 6d 6f 64 75 | R1,[R12,#modu| 00004c00 6c 65 66 6c 61 67 73 5d 0d 17 3e 2b 20 20 20 20 |leflags]..>+ | 00004c10 20 20 20 20 84 52 20 20 20 20 20 52 31 2c 52 31 | .R R1,R1| 00004c20 2c 23 69 63 66 69 6c 74 65 72 69 6e 73 74 61 6c |,#icfilterinstal| 00004c30 6c 65 64 0d 17 48 29 20 20 20 20 20 20 20 20 53 |led..H) S| 00004c40 54 52 20 20 20 20 20 52 31 2c 5b 52 31 32 2c 23 |TR R1,[R12,#| 00004c50 6d 6f 64 75 6c 65 66 6c 61 67 73 5d 0d 17 52 21 |moduleflags]..R!| 00004c60 20 20 20 20 20 20 20 20 4c 44 4d 46 44 20 20 20 | LDMFD | 00004c70 28 73 70 29 21 2c 7b 52 30 2c 70 63 7d 0d 17 5c |(sp)!,{R0,pc}..\| 00004c80 04 0d 17 66 13 2e 69 63 66 69 6c 74 65 72 72 65 |...f..icfilterre| 00004c90 6d 6f 76 65 0d 17 70 23 20 20 20 20 20 20 20 20 |move..p# | 00004ca0 53 54 4d 46 44 20 20 20 28 73 70 29 21 2c 7b 52 |STMFD (sp)!,{R| 00004cb0 30 2c 6c 69 6e 6b 7d 0d 17 7a 29 20 20 20 20 20 |0,link}..z) | 00004cc0 20 20 20 4c 44 52 20 20 20 20 20 52 31 2c 5b 52 | LDR R1,[R| 00004cd0 31 32 2c 23 6d 6f 64 75 6c 65 66 6c 61 67 73 5d |12,#moduleflags]| 00004ce0 0d 17 84 29 20 20 20 20 20 20 20 20 54 53 54 20 |...) TST | 00004cf0 20 20 20 20 52 31 2c 23 69 63 66 69 6c 74 65 72 | R1,#icfilter| 00004d00 69 6e 73 74 61 6c 6c 65 64 0d 17 8e 4d 20 20 20 |installed...M | 00004d10 20 20 20 20 20 4c 44 4d 45 51 46 44 20 28 73 70 | LDMEQFD (sp| 00004d20 29 21 2c 7b 52 30 2c 70 63 7d 20 20 20 20 20 20 |)!,{R0,pc} | 00004d30 20 20 20 20 20 20 20 20 20 3b 20 69 66 20 6e 6f | ; if no| 00004d40 74 20 69 6e 73 74 61 6c 6c 65 64 2c 20 6a 75 73 |t installed, jus| 00004d50 74 20 65 78 69 74 0d 17 98 23 20 20 20 20 20 20 |t exit...# | 00004d60 20 20 41 44 52 20 20 20 20 20 52 30 2c 69 63 66 | ADR R0,icf| 00004d70 69 6c 74 65 72 6e 61 6d 65 0d 17 a2 23 20 20 20 |iltername...# | 00004d80 20 20 20 20 20 41 44 52 20 20 20 20 20 52 31 2c | ADR R1,| 00004d90 69 63 66 69 6c 74 65 72 63 6f 64 65 0d 17 ac 1a |icfiltercode....| 00004da0 20 20 20 20 20 20 20 20 4d 4f 56 20 20 20 20 20 | MOV | 00004db0 52 32 2c 52 31 32 0d 17 b6 3b 20 20 20 20 20 20 |R2,R12...; | 00004dc0 20 20 4d 4f 56 20 20 20 20 20 52 33 2c 23 30 20 | MOV R3,#0 | 00004dd0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | | 00004de0 20 20 20 20 20 20 3b 20 61 6c 6c 20 74 61 73 6b | ; all task| 00004df0 73 0d 17 c0 23 20 20 20 20 20 20 20 20 4c 44 52 |s...# LDR| 00004e00 20 20 20 20 20 52 34 2c 69 63 66 69 6c 74 65 72 | R4,icfilter| 00004e10 6d 61 73 6b 0d 17 ca 32 20 20 20 20 20 20 20 20 |mask...2 | 00004e20 53 57 49 20 20 20 20 20 22 58 46 69 6c 74 65 72 |SWI "XFilter| 00004e30 5f 44 65 52 65 67 69 73 74 65 72 50 6f 73 74 46 |_DeRegisterPostF| 00004e40 69 6c 74 65 72 22 0d 17 d4 29 20 20 20 20 20 20 |ilter"...) | 00004e50 20 20 4c 44 52 20 20 20 20 20 52 31 2c 5b 52 31 | LDR R1,[R1| 00004e60 32 2c 23 6d 6f 64 75 6c 65 66 6c 61 67 73 5d 0d |2,#moduleflags].| 00004e70 17 de 2c 20 20 20 20 20 20 20 20 42 49 43 20 20 |.., BIC | 00004e80 20 20 20 52 31 2c 52 31 2c 23 69 63 66 69 6c 74 | R1,R1,#icfilt| 00004e90 65 72 69 6e 73 74 61 6c 6c 65 64 0d 17 e8 29 20 |erinstalled...) | 00004ea0 20 20 20 20 20 20 20 53 54 52 20 20 20 20 20 52 | STR R| 00004eb0 31 2c 5b 52 31 32 2c 23 6d 6f 64 75 6c 65 66 6c |1,[R12,#modulefl| 00004ec0 61 67 73 5d 0d 17 f2 21 20 20 20 20 20 20 20 20 |ags]...! | 00004ed0 4c 44 4d 46 44 20 20 20 28 73 70 29 21 2c 7b 52 |LDMFD (sp)!,{R| 00004ee0 30 2c 70 63 7d 0d 17 fc 04 0d 18 06 11 2e 69 63 |0,pc}.........ic| 00004ef0 66 69 6c 74 65 72 6e 61 6d 65 0d 18 10 1d 20 20 |filtername.... | 00004f00 20 20 20 20 20 20 45 51 55 53 20 20 20 20 22 49 | EQUS "I| 00004f10 63 6f 6e 69 73 65 22 0d 18 1a 15 20 20 20 20 20 |conise".... | 00004f20 20 20 20 45 51 55 42 20 20 20 20 30 0d 18 24 11 | EQUB 0..$.| 00004f30 20 20 20 20 20 20 20 20 41 4c 49 47 4e 0d 18 2e | ALIGN...| 00004f40 04 0d 18 38 11 2e 69 63 66 69 6c 74 65 72 63 6f |...8..icfilterco| 00004f50 64 65 0d 18 42 27 20 20 20 20 20 20 20 20 53 54 |de..B' ST| 00004f60 4d 46 44 20 20 20 28 73 70 29 21 2c 7b 52 31 2d |MFD (sp)!,{R1-| 00004f70 52 31 31 2c 6c 69 6e 6b 7d 0d 18 4c 19 20 20 20 |R11,link}..L. | 00004f80 20 20 20 20 20 54 45 51 20 20 20 20 20 52 30 2c | TEQ R0,| 00004f90 23 33 0d 18 56 1d 20 20 20 20 20 20 20 20 42 4e |#3..V. BN| 00004fa0 45 20 20 20 20 20 65 6e 64 66 69 6c 74 65 72 0d |E endfilter.| 00004fb0 18 60 19 20 20 20 20 20 20 20 20 4d 4f 56 20 20 |.`. MOV | 00004fc0 20 20 20 52 33 2c 52 31 0d 18 6a 04 0d 18 74 25 | R3,R1..j...t%| 00004fd0 20 20 20 20 20 20 20 20 41 44 44 20 20 20 20 20 | ADD | 00004fe0 52 31 2c 52 31 32 2c 23 77 6f 72 6b 73 70 61 63 |R1,R12,#workspac| 00004ff0 65 0d 18 7e 2a 20 20 20 20 20 20 20 20 53 57 49 |e..~* SWI| 00005000 20 20 20 20 20 22 58 57 69 6d 70 5f 47 65 74 50 | "XWimp_GetP| 00005010 6f 69 6e 74 65 72 49 6e 66 6f 22 0d 18 88 1e 20 |ointerInfo".... | 00005020 20 20 20 20 20 20 20 4c 44 52 20 20 20 20 20 52 | LDR R| 00005030 37 2c 5b 52 31 2c 23 38 5d 0d 18 92 1c 20 20 20 |7,[R1,#8].... | 00005040 20 20 20 20 20 54 45 51 20 20 20 20 20 52 37 2c | TEQ R7,| 00005050 23 25 31 31 30 0d 18 9c 19 20 20 20 20 20 20 20 |#%110.... | 00005060 20 4d 4f 56 4e 45 20 20 20 52 30 2c 23 33 0d 18 | MOVNE R0,#3..| 00005070 a6 1d 20 20 20 20 20 20 20 20 42 4e 45 20 20 20 |.. BNE | 00005080 20 20 65 6e 64 66 69 6c 74 65 72 0d 18 b0 04 0d | endfilter.....| 00005090 18 ba 1f 20 20 20 20 20 20 20 20 4c 44 52 20 20 |... LDR | 000050a0 20 20 20 52 30 2c 5b 52 31 2c 23 31 32 5d 0d 18 | R0,[R1,#12]..| 000050b0 c4 41 20 20 20 20 20 20 20 20 53 54 52 20 20 20 |.A STR | 000050c0 20 20 52 30 2c 5b 52 31 2c 23 30 5d 20 20 20 20 | R0,[R1,#0] | 000050d0 20 3b 20 73 74 69 63 6b 20 77 69 6e 64 6f 77 20 | ; stick window | 000050e0 68 61 6e 64 6c 65 20 69 6e 20 62 6c 6f 63 6b 0d |handle in block.| 000050f0 18 ce 52 20 20 20 20 20 20 20 20 84 52 20 20 20 |..R .R | 00005100 20 20 52 31 2c 52 31 2c 23 25 30 31 20 20 20 20 | R1,R1,#%01 | 00005110 20 3b 20 62 69 74 20 30 20 6f 66 20 52 31 20 73 | ; bit 0 of R1 s| 00005120 65 74 2c 20 73 6f 20 64 6f 65 73 6e 27 74 20 72 |et, so doesn't r| 00005130 65 61 64 20 69 63 6f 6e 73 20 61 73 20 77 65 6c |ead icons as wel| 00005140 6c 0d 18 d8 29 20 20 20 20 20 20 20 20 53 57 49 |l...) SWI| 00005150 20 20 20 20 20 22 58 57 69 6d 70 5f 47 65 74 57 | "XWimp_GetW| 00005160 69 6e 64 6f 77 49 6e 66 6f 22 0d 18 e2 52 20 20 |indowInfo"...R | 00005170 20 20 20 20 20 20 42 49 43 20 20 20 20 20 52 31 | BIC R1| 00005180 2c 52 31 2c 23 25 30 31 20 20 20 20 20 3b 20 63 |,R1,#%01 ; c| 00005190 6c 65 61 72 20 69 74 20 61 67 61 69 6e 2c 20 73 |lear it again, s| 000051a0 69 6e 63 65 20 72 65 71 75 69 72 65 20 52 31 20 |ince require R1 | 000051b0 77 6f 72 64 20 61 6c 69 67 6e 65 64 0d 18 ec 04 |word aligned....| 000051c0 0d 18 f6 3f 20 20 20 20 20 20 20 20 4c 44 52 20 |...? LDR | 000051d0 20 20 20 20 52 37 2c 5b 52 31 2c 23 28 34 2b 35 | R7,[R1,#(4+5| 000051e0 36 29 5d 20 20 20 3b 20 77 69 6e 64 6f 77 20 74 |6)] ; window t| 000051f0 69 74 6c 65 20 69 63 6f 6e 2d 66 6c 61 67 73 0d |itle icon-flags.| 00005200 19 00 41 20 20 20 20 20 20 20 20 54 53 54 20 20 |..A TST | 00005210 20 20 20 52 37 2c 23 28 31 3c 3c 38 29 20 20 20 | R7,#(1<<8) | 00005220 20 20 20 20 20 3b 20 69 73 20 69 74 20 61 6e 20 | ; is it an | 00005230 69 6e 64 69 72 65 63 74 65 64 20 69 63 6f 6e 3f |indirected icon?| 00005240 0d 19 0a 46 20 20 20 20 20 20 20 20 41 44 44 45 |...F ADDE| 00005250 51 20 20 20 52 33 2c 52 31 2c 23 28 34 2b 37 32 |Q R3,R1,#(4+72| 00005260 29 20 20 20 20 20 3b 20 69 66 20 6e 6f 74 2c 20 |) ; if not, | 00005270 73 74 72 69 6e 67 20 73 74 6f 72 65 64 20 61 74 |string stored at| 00005280 20 52 31 2b 37 36 0d 19 14 4e 20 20 20 20 20 20 | R1+76...N | 00005290 20 20 4c 44 52 4e 45 20 20 20 52 33 2c 5b 52 31 | LDRNE R3,[R1| 000052a0 2c 23 28 34 2b 37 32 29 5d 20 20 20 3b 20 69 66 |,#(4+72)] ; if| 000052b0 20 79 65 73 2c 20 6c 6f 61 64 20 73 74 72 69 6e | yes, load strin| 000052c0 67 20 70 6f 69 6e 74 65 72 20 66 72 6f 6d 20 52 |g pointer from R| 000052d0 31 2b 37 36 0d 19 1e 44 20 20 20 20 20 20 20 20 |1+76...D | 000052e0 41 44 44 20 20 20 20 20 52 34 2c 52 31 2c 23 32 |ADD R4,R1,#2| 000052f0 38 20 20 20 20 20 20 20 20 20 3b 20 73 74 6f 72 |8 ; stor| 00005300 65 20 6f 75 74 70 75 74 20 73 74 72 69 6e 67 20 |e output string | 00005310 61 74 20 52 31 2b 32 38 0d 19 28 53 20 20 20 20 |at R1+28..(S | 00005320 20 20 20 20 4d 4f 56 20 20 20 20 20 52 35 2c 52 | MOV R5,R| 00005330 34 20 20 20 20 20 20 20 20 20 20 20 20 20 3b 20 |4 ; | 00005340 6b 65 65 70 20 63 6f 70 79 20 73 6f 20 63 61 6e |keep copy so can| 00005350 20 73 74 61 72 74 20 6f 76 65 72 20 6f 6e 20 72 | start over on r| 00005360 65 61 63 68 69 6e 67 20 61 20 2e 0d 19 32 1d 20 |eaching a ...2. | 00005370 20 20 20 20 20 20 20 41 44 44 20 20 20 20 20 52 | ADD R| 00005380 36 2c 52 34 2c 23 31 39 0d 19 3c 0c 2e 64 6f 74 |6,R4,#19..<..dot| 00005390 6c 6f 6f 70 0d 19 46 3d 20 20 20 20 20 20 20 20 |loop..F= | 000053a0 4c 44 52 42 20 20 20 20 52 37 2c 5b 52 33 5d 2c |LDRB R7,[R3],| 000053b0 23 31 20 20 20 20 20 20 20 20 20 20 20 20 20 20 |#1 | 000053c0 20 20 20 20 20 20 3b 20 6c 6f 61 64 20 62 79 74 | ; load byt| 000053d0 65 0d 19 50 1a 20 20 20 20 20 20 20 20 43 4d 50 |e..P. CMP| 000053e0 20 20 20 20 20 52 37 2c 23 33 32 0d 19 5a 54 20 | R7,#32..ZT | 000053f0 20 20 20 20 20 20 20 4d 4f 56 4c 45 20 20 20 52 | MOVLE R| 00005400 37 2c 23 30 20 20 20 20 20 20 20 20 20 20 20 20 |7,#0 | 00005410 20 20 20 20 20 20 20 20 20 20 20 20 20 3b 20 69 | ; i| 00005420 66 20 63 6f 6e 74 72 6f 6c 20 63 68 61 72 2f 73 |f control char/s| 00005430 70 61 63 65 2c 20 74 65 72 6d 69 6e 61 74 65 0d |pace, terminate.| 00005440 19 64 4a 20 20 20 20 20 20 20 20 53 54 52 42 20 |.dJ STRB | 00005450 20 20 20 52 37 2c 5b 52 34 5d 2c 23 31 20 20 20 | R7,[R4],#1 | 00005460 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | | 00005470 20 3b 20 6f 75 72 20 73 74 72 69 6e 67 20 77 69 | ; our string wi| 00005480 74 68 20 61 20 4e 55 4c 4c 0d 19 6e 52 20 20 20 |th a NULL..nR | 00005490 20 20 20 20 20 43 4d 50 20 20 20 20 20 52 37 2c | CMP R7,| 000054a0 23 97 28 22 2e 22 29 20 20 20 20 20 20 20 20 20 |#.(".") | 000054b0 20 20 20 20 20 20 20 20 20 3b 20 69 66 20 61 20 | ; if a | 000054c0 64 6f 74 2c 20 73 74 61 72 74 20 6f 75 72 20 73 |dot, start our s| 000054d0 74 72 69 6e 67 20 61 67 61 69 6e 0d 19 78 16 20 |tring again..x. | 000054e0 20 20 20 20 20 20 20 ec 51 20 20 20 52 34 2c 52 | .Q R4,R| 000054f0 35 0d 19 82 1b 20 20 20 20 20 20 20 20 42 45 51 |5.... BEQ| 00005500 20 20 20 20 20 64 6f 74 6c 6f 6f 70 0d 19 8c 19 | dotloop....| 00005510 20 20 20 20 20 20 20 20 43 4d 50 20 20 20 20 20 | CMP | 00005520 52 34 2c 52 36 0d 19 96 16 20 20 20 20 20 20 20 |R4,R6.... | 00005530 20 ec 51 20 20 20 52 37 2c 23 30 0d 19 a0 1b 20 | .Q R7,#0.... | 00005540 20 20 20 20 20 20 20 53 54 52 45 51 42 20 20 52 | STREQB R| 00005550 37 2c 5b 52 34 5d 0d 19 aa 50 20 20 20 20 20 20 |7,[R4]...P | 00005560 20 20 43 4d 50 20 20 20 20 20 52 37 2c 23 30 20 | CMP R7,#0 | 00005570 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | | 00005580 20 20 20 20 20 20 20 20 3b 20 69 66 20 6e 6f 74 | ; if not| 00005590 20 74 65 72 6d 69 6e 61 74 65 64 2c 20 72 65 61 | terminated, rea| 000055a0 64 20 6e 65 78 74 0d 19 b4 46 20 20 20 20 20 20 |d next...F | 000055b0 20 20 42 4e 45 20 20 20 20 20 64 6f 74 6c 6f 6f | BNE dotloo| 000055c0 70 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 |p | 000055d0 20 20 20 20 20 20 20 20 3b 20 63 68 61 72 20 61 | ; char a| 000055e0 6e 64 20 72 65 70 65 61 74 2e 2e 2e 0d 19 be 04 |nd repeat.......| 000055f0 0d 19 c8 47 20 20 20 20 20 20 20 20 4c 44 52 20 |...G LDR | 00005600 20 20 20 20 52 37 2c 5b 52 31 2c 23 30 5d 20 20 | R7,[R1,#0] | 00005610 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | | 00005620 20 20 20 3b 20 6c 6f 61 64 20 77 69 6e 64 6f 77 | ; load window| 00005630 20 68 61 6e 64 6c 65 0d 19 d2 52 20 20 20 20 20 | handle...R | 00005640 20 20 20 53 54 52 20 20 20 20 20 52 37 2c 5b 52 | STR R7,[R| 00005650 31 2c 23 32 30 5d 20 20 20 20 20 20 20 20 20 20 |1,#20] | 00005660 20 20 20 20 20 20 20 20 20 20 3b 20 77 69 6e 64 | ; wind| 00005670 6f 77 20 68 61 6e 64 6c 65 20 73 74 6f 72 65 64 |ow handle stored| 00005680 20 61 74 20 52 31 2b 32 30 0d 19 dc 04 0d 19 e6 | at R1+20.......| 00005690 46 20 20 20 20 20 20 20 20 53 54 52 20 20 20 20 |F STR | 000056a0 20 52 32 2c 5b 52 31 2c 23 32 34 5d 20 20 20 20 | R2,[R1,#24] | 000056b0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | | 000056c0 3b 20 73 74 6f 72 65 20 74 61 73 6b 20 68 61 6e |; store task han| 000056d0 64 6c 65 0d 19 f0 1a 20 20 20 20 20 20 20 20 4d |dle.... M| 000056e0 4f 56 20 20 20 20 20 52 30 2c 23 34 38 0d 19 fa |OV R0,#48...| 000056f0 4d 20 20 20 20 20 20 20 20 53 54 52 20 20 20 20 |M STR | 00005700 20 52 30 2c 5b 52 31 2c 23 30 5d 20 20 20 20 20 | R0,[R1,#0] | 00005710 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | | 00005720 3b 20 6d 65 73 73 61 67 65 20 69 73 20 34 38 20 |; message is 48 | 00005730 62 79 74 65 73 20 6c 6f 6e 67 0d 1a 04 4d 20 20 |bytes long...M | 00005740 20 20 20 20 20 20 4d 4f 56 20 20 20 20 20 52 30 | MOV R0| 00005750 2c 23 26 34 30 30 30 30 20 20 20 20 20 20 20 20 |,#&40000 | 00005760 20 20 20 20 20 20 20 20 20 20 20 20 20 3b 20 4d | ; M| 00005770 65 73 73 61 67 65 5f 69 63 6f 6e 69 7a 65 20 68 |essage_iconize h| 00005780 61 73 20 63 6f 64 65 0d 1a 0e 3b 20 20 20 20 20 |as code...; | 00005790 20 20 20 41 44 44 20 20 20 20 20 52 30 2c 52 30 | ADD R0,R0| 000057a0 2c 23 26 43 41 20 20 20 20 20 20 20 20 20 20 20 |,#&CA | 000057b0 20 20 20 20 20 20 20 20 20 20 3b 20 26 34 30 30 | ; &400| 000057c0 43 41 0d 1a 18 1f 20 20 20 20 20 20 20 20 53 54 |CA.... ST| 000057d0 52 20 20 20 20 20 52 30 2c 5b 52 31 2c 23 31 36 |R R0,[R1,#16| 000057e0 5d 0d 1a 22 04 0d 1a 2c 1a 20 20 20 20 20 20 20 |].."...,. | 000057f0 20 4d 4f 56 20 20 20 20 20 52 30 2c 23 31 37 0d | MOV R0,#17.| 00005800 1a 36 19 20 20 20 20 20 20 20 20 4d 4f 56 20 20 |.6. MOV | 00005810 20 20 20 52 32 2c 23 30 0d 1a 40 4b 20 20 20 20 | R2,#0..@K | 00005820 20 20 20 20 53 57 49 20 20 20 20 20 22 58 57 69 | SWI "XWi| 00005830 6d 70 5f 53 65 6e 64 4d 65 73 73 61 67 65 22 20 |mp_SendMessage" | 00005840 20 20 20 20 20 20 20 20 20 20 20 3b 20 66 61 6b | ; fak| 00005850 65 20 61 20 4d 65 73 73 61 67 65 5f 49 63 6f 6e |e a Message_Icon| 00005860 69 7a 65 0d 1a 4a 04 0d 1a 54 1e 20 20 20 20 20 |ize..J...T. | 00005870 20 20 20 4d 56 4e 20 20 20 20 20 52 30 2c 23 28 | MVN R0,#(| 00005880 ac 20 2d 31 29 0d 1a 5e 1d 20 20 20 20 20 20 20 |. -1)..^. | 00005890 20 42 20 20 20 20 20 20 20 65 6e 64 66 69 6c 74 | B endfilt| 000058a0 65 72 0d 1a 68 04 0d 1a 72 12 2e 67 65 74 74 61 |er..h...r..getta| 000058b0 73 6b 68 61 6e 64 6c 65 0d 1a 7c 20 20 20 20 20 |skhandle..| | 000058c0 20 20 20 20 53 54 4d 46 44 20 20 20 28 73 70 29 | STMFD (sp)| 000058d0 21 2c 7b 6c 69 6e 6b 7d 0d 1a 86 19 20 20 20 20 |!,{link}.... | 000058e0 20 20 20 20 4d 4f 56 20 20 20 20 20 52 30 2c 23 | MOV R0,#| 000058f0 30 0d 1a 90 0f 2e 6e 65 78 74 68 61 6e 64 6c 65 |0.....nexthandle| 00005900 0d 1a 9a 54 20 20 20 20 20 20 20 20 41 44 44 20 |...T ADD | 00005910 20 20 20 20 52 31 2c 52 31 32 2c 23 70 6f 6c 6c | R1,R12,#poll| 00005920 62 6c 6f 63 6b 20 20 20 20 20 20 20 20 20 20 20 |block | 00005930 20 20 3b 20 75 73 65 20 70 6f 6c 6c 20 62 6c 6f | ; use poll blo| 00005940 63 6b 20 61 73 20 62 75 66 66 65 72 20 66 6f 72 |ck as buffer for| 00005950 20 53 57 49 0d 1a a4 1a 20 20 20 20 20 20 20 20 | SWI.... | 00005960 4d 4f 56 20 20 20 20 20 52 32 2c 23 32 30 0d 1a |MOV R2,#20..| 00005970 ae 31 20 20 20 20 20 20 20 20 53 57 49 20 20 20 |.1 SWI | 00005980 20 20 22 58 54 61 73 6b 4d 61 6e 61 67 65 72 5f | "XTaskManager_| 00005990 45 6e 75 6d 65 72 61 74 65 54 61 73 6b 73 22 0d |EnumerateTasks".| 000059a0 1a b8 1b 20 20 20 20 20 20 20 20 42 56 53 20 20 |... BVS | 000059b0 20 20 20 6a 75 6d 70 6f 75 74 0d 1a c2 19 20 20 | jumpout.... | 000059c0 20 20 20 20 20 20 43 4d 4e 20 20 20 20 20 52 30 | CMN R0| 000059d0 2c 23 31 0d 1a cc 1b 20 20 20 20 20 20 20 20 42 |,#1.... B| 000059e0 45 51 20 20 20 20 20 6a 75 6d 70 6f 75 74 0d 1a |EQ jumpout..| 000059f0 d6 19 20 20 20 20 20 20 20 20 4d 4f 56 20 20 20 |.. MOV | 00005a00 20 20 52 36 2c 52 30 0d 1a e0 41 20 20 20 20 20 | R6,R0...A | 00005a10 20 20 20 4c 44 52 20 20 20 20 20 52 30 2c 5b 52 | LDR R0,[R| 00005a20 31 32 2c 23 28 70 6f 6c 6c 62 6c 6f 63 6b 2b 34 |12,#(pollblock+4| 00005a30 29 5d 20 20 20 20 20 20 3b 20 72 65 61 64 20 74 |)] ; read t| 00005a40 61 73 6b 20 6e 61 6d 65 0d 1a ea 40 20 20 20 20 |ask name...@ | 00005a50 20 20 20 20 4d 4f 56 20 20 20 20 20 52 33 2c 52 | MOV R3,R| 00005a60 34 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 |4 | 00005a70 20 20 20 20 20 20 3b 20 70 61 73 73 65 64 20 74 | ; passed t| 00005a80 61 73 6b 20 6e 61 6d 65 0d 1a f4 21 20 20 20 20 |ask name...! | 00005a90 20 20 20 20 42 4c 20 20 20 20 20 20 73 74 72 69 | BL stri| 00005aa0 6e 67 63 6f 6d 70 61 72 65 0d 1a fe 19 20 20 20 |ngcompare.... | 00005ab0 20 20 20 20 20 4d 4f 56 20 20 20 20 20 52 30 2c | MOV R0,| 00005ac0 52 36 0d 1b 08 19 20 20 20 20 20 20 20 20 43 4d |R6.... CM| 00005ad0 50 20 20 20 20 20 52 33 2c 23 31 0d 1b 12 27 20 |P R3,#1...' | 00005ae0 20 20 20 20 20 20 20 4c 44 52 45 51 20 20 20 52 | LDREQ R| 00005af0 33 2c 5b 52 31 32 2c 23 70 6f 6c 6c 62 6c 6f 63 |3,[R12,#pollbloc| 00005b00 6b 5d 0d 1b 1c 1e 20 20 20 20 20 20 20 20 4c 44 |k].... LD| 00005b10 4d 45 51 46 44 20 28 73 70 29 21 2c 7b 70 63 7d |MEQFD (sp)!,{pc}| 00005b20 0d 1b 26 1e 20 20 20 20 20 20 20 20 42 20 20 20 |..&. B | 00005b30 20 20 20 20 6e 65 78 74 68 61 6e 64 6c 65 0d 1b | nexthandle..| 00005b40 30 0c 2e 6a 75 6d 70 6f 75 74 0d 1b 3a 19 20 20 |0..jumpout..:. | 00005b50 20 20 20 20 20 20 4d 4f 56 20 20 20 20 20 52 33 | MOV R3| 00005b60 2c 23 30 0d 1b 44 1e 20 20 20 20 20 20 20 20 4c |,#0..D. L| 00005b70 44 4d 46 44 20 20 20 28 73 70 29 21 2c 7b 70 63 |DMFD (sp)!,{pc| 00005b80 7d 0d 1b 4e 04 0d 1b 58 0f 2e 70 69 6e 63 6f 6d |}..N...X..pincom| 00005b90 6d 61 6e 64 0d 1b 62 1a 20 20 20 20 20 20 20 20 |mand..b. | 00005ba0 45 51 55 53 20 20 20 20 22 50 69 6e 20 22 0d 1b |EQUS "Pin "..| 00005bb0 6c 15 20 20 20 20 20 20 20 20 45 51 55 42 20 20 |l. EQUB | 00005bc0 20 20 30 0d 1b 76 11 20 20 20 20 20 20 20 20 41 | 0..v. A| 00005bd0 4c 49 47 4e 0d 1b 80 04 0d 1b 8a 0f 2e 73 74 72 |LIGN.........str| 00005be0 69 6e 67 63 6f 70 79 0d 1b 94 26 20 20 20 20 20 |ingcopy...& | 00005bf0 20 20 20 53 54 4d 46 44 20 20 20 28 73 70 29 21 | STMFD (sp)!| 00005c00 2c 7b 52 30 2c 52 32 2c 6c 69 6e 6b 7d 0d 1b 9e |,{R0,R2,link}...| 00005c10 13 2e 73 74 72 69 6e 67 63 6f 70 79 6c 6f 6f 70 |..stringcopyloop| 00005c20 0d 1b a8 1e 20 20 20 20 20 20 20 20 4c 44 52 42 |.... LDRB| 00005c30 20 20 20 20 52 30 2c 5b 52 32 5d 2c 23 31 0d 1b | R0,[R2],#1..| 00005c40 b2 1e 20 20 20 20 20 20 20 20 53 54 52 42 20 20 |.. STRB | 00005c50 20 20 52 30 2c 5b 52 33 5d 2c 23 31 0d 1b bc 1a | R0,[R3],#1....| 00005c60 20 20 20 20 20 20 20 20 43 4d 50 20 20 20 20 20 | CMP | 00005c70 52 30 2c 23 33 32 0d 1b c6 22 20 20 20 20 20 20 |R0,#32..." | 00005c80 20 20 42 47 45 20 20 20 20 20 73 74 72 69 6e 67 | BGE string| 00005c90 63 6f 70 79 6c 6f 6f 70 0d 1b d0 1c 20 20 20 20 |copyloop.... | 00005ca0 20 20 20 20 53 55 42 20 20 20 20 20 52 33 2c 52 | SUB R3,R| 00005cb0 33 2c 23 31 0d 1b da 24 20 20 20 20 20 20 20 20 |3,#1...$ | 00005cc0 4c 44 4d 46 44 20 20 20 28 73 70 29 21 2c 7b 52 |LDMFD (sp)!,{R| 00005cd0 30 2c 52 32 2c 70 63 7d 0d 1b e4 04 0d 1b ee 12 |0,R2,pc}........| 00005ce0 2e 66 69 61 64 64 6d 65 73 73 61 67 65 73 0d 1b |.fiaddmessages..| 00005cf0 f8 23 20 20 20 20 20 20 20 20 53 54 4d 46 44 20 |.# STMFD | 00005d00 20 20 28 73 70 29 21 2c 7b 52 30 2c 6c 69 6e 6b | (sp)!,{R0,link| 00005d10 7d 0d 1c 02 21 20 20 20 20 20 20 20 20 41 44 52 |}...! ADR| 00005d20 20 20 20 20 20 52 30 2c 66 69 6d 65 73 73 61 67 | R0,fimessag| 00005d30 65 73 0d 1c 0c 27 20 20 20 20 20 20 20 20 53 57 |es...' SW| 00005d40 49 20 20 20 20 20 22 58 57 69 6d 70 5f 41 64 64 |I "XWimp_Add| 00005d50 4d 65 73 73 61 67 65 73 22 0d 1c 16 29 20 20 20 |Messages"...) | 00005d60 20 20 20 20 20 84 52 20 20 20 20 20 52 33 2c 52 | .R R3,R| 00005d70 33 2c 23 66 69 6d 65 73 73 61 67 65 73 61 64 64 |3,#fimessagesadd| 00005d80 65 64 0d 1c 20 29 20 20 20 20 20 20 20 20 53 54 |ed.. ) ST| 00005d90 52 20 20 20 20 20 52 33 2c 5b 52 31 32 2c 23 6d |R R3,[R12,#m| 00005da0 6f 64 75 6c 65 66 6c 61 67 73 5d 0d 1c 2a 21 20 |oduleflags]..*! | 00005db0 20 20 20 20 20 20 20 4c 44 4d 46 44 20 20 20 28 | LDMFD (| 00005dc0 73 70 29 21 2c 7b 52 30 2c 70 63 7d 0d 1c 34 04 |sp)!,{R0,pc}..4.| 00005dd0 0d 1c 3e 0f 2e 66 69 6d 65 73 73 61 67 65 73 0d |..>..fimessages.| 00005de0 1c 48 1a 20 20 20 20 20 20 20 20 45 51 55 44 20 |.H. EQUD | 00005df0 20 20 20 26 34 30 30 43 43 0d 1c 52 15 20 20 20 | &400CC..R. | 00005e00 20 20 20 20 20 45 51 55 44 20 20 20 20 30 0d 1c | EQUD 0..| 00005e10 5c 04 0d 1c 66 0e 2e 66 69 6e 61 6c 63 6f 64 65 |\...f..finalcode| 00005e20 0d 1c 70 27 20 20 20 20 20 20 20 20 53 54 4d 46 |..p' STMF| 00005e30 44 20 20 20 28 73 70 29 21 2c 7b 52 37 2d 52 31 |D (sp)!,{R7-R1| 00005e40 31 2c 6c 69 6e 6b 7d 0d 1c 7a 1d 20 20 20 20 20 |1,link}..z. | 00005e50 20 20 20 4c 44 52 20 20 20 20 20 52 31 32 2c 5b | LDR R12,[| 00005e60 52 31 32 5d 0d 1c 84 26 20 20 20 20 20 20 20 20 |R12]...& | 00005e70 4c 44 52 20 20 20 20 20 52 30 2c 5b 52 31 32 2c |LDR R0,[R12,| 00005e80 23 6d 79 68 61 6e 64 6c 65 5d 0d 1c 8e 19 20 20 |#myhandle].... | 00005e90 20 20 20 20 20 20 54 45 51 20 20 20 20 20 52 30 | TEQ R0| 00005ea0 2c 23 30 0d 1c 98 1d 20 20 20 20 20 20 20 20 42 |,#0.... B| 00005eb0 4c 45 20 20 20 20 20 66 69 6e 61 6c 73 6b 69 70 |LE finalskip| 00005ec0 0d 1c a2 1b 20 20 20 20 20 20 20 20 4c 44 52 20 |.... LDR | 00005ed0 20 20 20 20 52 31 2c 74 61 73 6b 0d 1c ac 25 20 | R1,task...% | 00005ee0 20 20 20 20 20 20 20 53 57 49 20 20 20 20 20 22 | SWI "| 00005ef0 58 57 69 6d 70 5f 43 6c 6f 73 65 44 6f 77 6e 22 |XWimp_CloseDown"| 00005f00 0d 1c b6 22 20 20 20 20 20 20 20 20 42 4c 20 20 |..." BL | 00005f10 20 20 20 20 66 69 66 69 6c 74 65 72 72 65 6d 6f | fifilterremo| 00005f20 76 65 0d 1c c0 22 20 20 20 20 20 20 20 20 42 4c |ve..." BL| 00005f30 20 20 20 20 20 20 70 69 66 69 6c 74 65 72 72 65 | pifilterre| 00005f40 6d 6f 76 65 0d 1c ca 22 20 20 20 20 20 20 20 20 |move..." | 00005f50 42 4c 20 20 20 20 20 20 69 63 66 69 6c 74 65 72 |BL icfilter| 00005f60 72 65 6d 6f 76 65 0d 1c d4 0e 2e 66 69 6e 61 6c |remove.....final| 00005f70 73 6b 69 70 0d 1c de 19 20 20 20 20 20 20 20 20 |skip.... | 00005f80 4d 4f 56 20 20 20 20 20 52 31 2c 23 30 0d 1c e8 |MOV R1,#0...| 00005f90 26 20 20 20 20 20 20 20 20 53 54 52 20 20 20 20 |& STR | 00005fa0 20 52 31 2c 5b 52 31 32 2c 23 6d 79 68 61 6e 64 | R1,[R12,#myhand| 00005fb0 6c 65 5d 0d 1c f2 19 20 20 20 20 20 20 20 20 4d |le].... M| 00005fc0 4f 56 20 20 20 20 20 52 30 2c 23 37 0d 1c fc 1a |OV R0,#7....| 00005fd0 20 20 20 20 20 20 20 20 4d 4f 56 20 20 20 20 20 | MOV | 00005fe0 52 32 2c 52 31 32 0d 1d 06 20 20 20 20 20 20 20 |R2,R12... | 00005ff0 20 20 53 57 49 20 20 20 20 20 22 58 4f 53 5f 4d | SWI "XOS_M| 00006000 6f 64 75 6c 65 22 0d 1d 10 25 20 20 20 20 20 20 |odule"...% | 00006010 20 20 4c 44 4d 46 44 20 20 20 28 73 70 29 21 2c | LDMFD (sp)!,| 00006020 7b 52 37 2d 52 31 31 2c 70 63 7d 0d 1d 1a 04 0d |{R7-R11,pc}.....| 00006030 1d 24 10 2e 73 65 72 76 69 63 65 63 6f 64 65 0d |.$..servicecode.| 00006040 1d 2e 20 20 20 20 20 20 20 20 20 53 54 4d 46 44 |.. STMFD| 00006050 20 20 20 28 73 70 29 21 2c 7b 6c 69 6e 6b 7d 0d | (sp)!,{link}.| 00006060 1d 38 1d 20 20 20 20 20 20 20 20 4c 44 52 20 20 |.8. LDR | 00006070 20 20 20 52 31 32 2c 5b 52 31 32 5d 0d 1d 42 1b | R12,[R12]..B.| 00006080 20 20 20 20 20 20 20 20 54 45 51 20 20 20 20 20 | TEQ | 00006090 52 31 2c 23 26 34 39 0d 1d 4c 1d 20 20 20 20 20 |R1,#&49..L. | 000060a0 20 20 20 42 45 51 20 20 20 20 20 73 74 61 72 74 | BEQ start| 000060b0 77 69 6d 70 0d 1d 56 1b 20 20 20 20 20 20 20 20 |wimp..V. | 000060c0 54 45 51 20 20 20 20 20 52 31 2c 23 26 34 41 0d |TEQ R1,#&4A.| 000060d0 1d 60 1f 20 20 20 20 20 20 20 20 42 45 51 20 20 |.`. BEQ | 000060e0 20 20 20 73 74 61 72 74 65 64 77 69 6d 70 0d 1d | startedwimp..| 000060f0 6a 1b 20 20 20 20 20 20 20 20 54 45 51 20 20 20 |j. TEQ | 00006100 20 20 52 31 2c 23 26 38 37 0d 1d 74 1e 20 20 20 | R1,#&87..t. | 00006110 20 20 20 20 20 42 4c 45 51 20 20 20 20 69 6e 73 | BLEQ ins| 00006120 74 61 6c 6c 61 6c 6c 0d 1d 7e 1b 20 20 20 20 20 |tallall..~. | 00006130 20 20 20 54 45 51 20 20 20 20 20 52 31 2c 23 26 | TEQ R1,#&| 00006140 38 38 0d 1d 88 26 20 20 20 20 20 20 20 20 42 45 |88...& BE| 00006150 51 20 20 20 20 20 66 69 6c 74 65 72 6d 61 6e 61 |Q filtermana| 00006160 67 65 72 64 79 69 6e 67 0d 1d 92 1b 20 20 20 20 |gerdying.... | 00006170 20 20 20 20 54 45 51 20 20 20 20 20 52 31 2c 23 | TEQ R1,#| 00006180 26 32 37 0d 1d 9c 1e 20 20 20 20 20 20 20 20 4c |&27.... L| 00006190 44 4d 4e 45 46 44 20 28 73 70 29 21 2c 7b 70 63 |DMNEFD (sp)!,{pc| 000061a0 7d 0d 1d a6 1a 20 20 20 20 20 20 20 20 4d 4f 56 |}.... MOV| 000061b0 20 20 20 20 20 52 31 34 2c 23 30 0d 1d b0 27 20 | R14,#0...' | 000061c0 20 20 20 20 20 20 20 53 54 52 20 20 20 20 20 52 | STR R| 000061d0 31 34 2c 5b 52 31 32 2c 23 6d 79 68 61 6e 64 6c |14,[R12,#myhandl| 000061e0 65 5d 0d 1d ba 22 20 20 20 20 20 20 20 20 42 4c |e]..." BL| 000061f0 20 20 20 20 20 20 66 69 66 69 6c 74 65 72 72 65 | fifilterre| 00006200 6d 6f 76 65 0d 1d c4 22 20 20 20 20 20 20 20 20 |move..." | 00006210 42 4c 20 20 20 20 20 20 70 69 66 69 6c 74 65 72 |BL pifilter| 00006220 72 65 6d 6f 76 65 0d 1d ce 1e 20 20 20 20 20 20 |remove.... | 00006230 20 20 4c 44 4d 46 44 20 20 20 28 73 70 29 21 2c | LDMFD (sp)!,| 00006240 7b 70 63 7d 0d 1d d8 04 0d 1d e2 17 2e 66 69 6c |{pc}.........fil| 00006250 74 65 72 6d 61 6e 61 67 65 72 64 79 69 6e 67 0d |termanagerdying.| 00006260 1d ec 29 20 20 20 20 20 20 20 20 4c 44 52 20 20 |..) LDR | 00006270 20 20 20 52 33 2c 5b 52 31 32 2c 23 6d 6f 64 75 | R3,[R12,#modu| 00006280 6c 65 66 6c 61 67 73 5d 0d 1d f6 56 20 20 20 20 |leflags]...V | 00006290 20 20 20 20 42 49 43 20 20 20 20 20 52 33 2c 52 | BIC R3,R| 000062a0 33 2c 23 28 66 69 66 69 6c 74 65 72 69 6e 73 74 |3,#(fifilterinst| 000062b0 61 6c 6c 65 64 20 84 20 70 69 66 69 6c 74 65 72 |alled . pifilter| 000062c0 69 6e 73 74 61 6c 6c 65 64 20 84 20 69 63 66 69 |installed . icfi| 000062d0 6c 74 65 72 69 6e 73 74 61 6c 6c 65 64 29 0d 1e |lterinstalled)..| 000062e0 00 29 20 20 20 20 20 20 20 20 53 54 52 20 20 20 |.) STR | 000062f0 20 20 52 33 2c 5b 52 31 32 2c 23 6d 6f 64 75 6c | R3,[R12,#modul| 00006300 65 66 6c 61 67 73 5d 0d 1e 0a 1e 20 20 20 20 20 |eflags].... | 00006310 20 20 20 4c 44 4d 46 44 20 20 20 28 73 70 29 21 | LDMFD (sp)!| 00006320 2c 7b 70 63 7d 0d 1e 14 04 0d 1e 1e 10 2e 73 74 |,{pc}.........st| 00006330 61 72 74 65 64 77 69 6d 70 0d 1e 28 27 20 20 20 |artedwimp..(' | 00006340 20 20 20 20 20 4c 44 52 20 20 20 20 20 52 31 34 | LDR R14| 00006350 2c 5b 52 31 32 2c 23 6d 79 68 61 6e 64 6c 65 5d |,[R12,#myhandle]| 00006360 0d 1e 32 1a 20 20 20 20 20 20 20 20 43 4d 4e 20 |..2. CMN | 00006370 20 20 20 20 52 31 34 2c 23 31 0d 1e 3c 17 20 20 | R14,#1..<. | 00006380 20 20 20 20 20 20 ec 51 20 20 20 52 31 34 2c 23 | .Q R14,#| 00006390 30 0d 1e 46 27 20 20 20 20 20 20 20 20 53 54 52 |0..F' STR| 000063a0 45 51 20 20 20 52 31 34 2c 5b 52 31 32 2c 23 6d |EQ R14,[R12,#m| 000063b0 79 68 61 6e 64 6c 65 5d 0d 1e 50 1e 20 20 20 20 |yhandle]..P. | 000063c0 20 20 20 20 4c 44 4d 46 44 20 20 20 28 73 70 29 | LDMFD (sp)| 000063d0 21 2c 7b 70 63 7d 0d 1e 5a 04 0d 1e 64 0b 2e 6d |!,{pc}..Z...d..m| 000063e0 79 6d 61 73 6b 0d 1e 6e 29 20 20 20 20 20 20 20 |ymask..n) | 000063f0 20 45 51 55 44 20 20 20 20 25 31 30 30 30 30 30 | EQUD %100000| 00006400 31 31 31 30 30 31 30 31 31 31 30 30 31 31 0d 1e |11100101110011..| 00006410 78 04 0d 1e 82 11 2e 66 69 66 69 6c 74 65 72 6d |x......fifilterm| 00006420 61 73 6b 0d 1e 8c 29 20 20 20 20 20 20 20 20 45 |ask...) E| 00006430 51 55 44 20 20 20 20 25 31 30 30 30 30 30 31 31 |QUD %10000011| 00006440 31 30 30 31 30 31 31 31 30 30 31 31 0d 1e 96 04 |100101110011....| 00006450 0d 1e a0 11 2e 70 69 66 69 6c 74 65 72 6d 61 73 |.....pifiltermas| 00006460 6b 0d 1e aa 29 20 20 20 20 20 20 20 20 45 51 55 |k...) EQU| 00006470 44 20 20 20 20 25 31 30 30 30 30 30 31 31 31 30 |D %1000001110| 00006480 30 31 30 31 31 30 30 30 31 31 0d 1e b4 04 0d 1e |0101100011......| 00006490 be 11 2e 69 63 66 69 6c 74 65 72 6d 61 73 6b 0d |...icfiltermask.| 000064a0 1e c8 29 20 20 20 20 20 20 20 20 45 51 55 44 20 |..) EQUD | 000064b0 20 20 20 25 31 31 31 30 30 30 31 31 31 30 30 31 | %111000111001| 000064c0 30 31 31 30 30 30 31 31 0d 1e d2 05 5d 0d 1e dc |01100011....]...| 000064d0 0b ed 20 70 61 73 73 25 0d 1e e6 05 e1 0d ff |.. pass%.......| 000064df