Home » Archimedes archive » Acorn User » AU 1998-09.adf » Features » DesktopPD/Director/!Director/Utils/RunFilerAc
DesktopPD/Director/!Director/Utils/RunFilerAc
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 1998-09.adf » Features |
Filename: | DesktopPD/Director/!Director/Utils/RunFilerAc |
Read OK: | ✔ |
File size: | 061D bytes |
Load address: | 0000 |
Exec address: | 0000 |
Duplicates
There are 2 duplicate copies of this file in the archive:
- Archimedes archive » Acorn User » AU 1996-03 B.adf » Regulars » StarInfo/Casula/!Director/Menus/Others/RunFilerAc
- Archimedes archive » Acorn User » AU 1995-10.adf » !Direct » Director/!Director/Utils/RunFilerAc
- Archimedes archive » Acorn User » AU 1998-09.adf » Features » DesktopPD/Director/!Director/Utils/RunFilerAc
File contents
1REM >RunFilerAc 2REM (C) Nick Craig-Wood 1994 3REM This is for starting off Filer_Action tasks 4REM It expects <Dir> <Leaf> and <Path> to be set up 5 6buffer_size%=1024 7DIM buffer% buffer_size% 8 9ON ERROR: ON ERROR OFF: ERROR EXT ERR,REPORT$+" at "+STR$ERL 10 11SYS "OS_GetEnv" TO env% 12 13SYS "OS_ReadArgs",",quit=load,/E,/G,value/E",env%,buffer%,buffer_size% 14 15type%=FNeval(buffer%!8) 16to$=FNgstrans(buffer%!12) 17value%=FNeval(buffer%!16) 18 19IF type%=-1 THEN ERROR 1,"Syntax: *RunFilerAc <type> [<to>] [-value <bits>]" 20 21SYS "Wimp_Initialise",200,&4B534154,"RunFilerAction" TO ,taskID% 22ON ERROR: ON ERROR OFF: PROCclosedown: ERROR EXT ERR,REPORT$+" at "+STR$ERL 23 24SYS "Wimp_StartTask","Filer_Action" TO handle% 25 26SYS "FilerAction_SendSelectedDirectory",handle%,FNvar("Dir")+CHR$(0) 27 28SYS "FilerAction_SendSelectedFile",handle%,FNvar("Leaf")+CHR$(0) 29 30SYS "OS_Byte",&A1,&C6 TO ,,bits% 31bits% = ((bits% AND &40) >> 6) OR ((bits% AND &20) >> 4) OR ((bits% AND &10) >> 2) OR ((bits% AND &80) >> 4) 32 33!buffer%=value% 34value%=buffer% 35 36IF to$="" THEN 37 SYS "FilerAction_SendStartOperation",handle%,type%,bits%,value%,4 38ELSE 39 SYS "FilerAction_SendStartOperation",handle%,type%,bits%,to$+CHR$(0),LEN(to$)+1 40ENDIF 41 42PROCclosedown 43END 44 45DEF PROCclosedown 46 SYS "Wimp_CloseDown" 47ENDPROC 48 49DEF FNvar(var$) 50LOCAL a$,i$,len% 51 SYS "OS_ReadVarVal",var$,buffer%,buffer_size%,0,3 TO ,,len% 52 buffer%?len%=&D 53=$buffer% 54 55DEF FNgstrans(p%) 56LOCAL i%,a$ 57IF p%=0 THEN ="" 58 len%=(!p%) AND &FFFF 59 a$="" 60 FOR i%=2 TO 2+len%-1 61 a$+=CHR$(p%?i%) 62 NEXT i% 63=a$ 64 65DEF FNeval(p%) 66IF p%=0 THEN =-1 67=p%!1
� >RunFilerAc � (C) Nick Craig-Wood 1994 1� This is for starting off Filer_Action tasks 5� It expects <Dir> <Leaf> and <Path> to be set up buffer_size%=1024 � buffer% buffer_size% "� �: � � �: � � �,�$+" at "+Þ ș "OS_GetEnv" � env% Iș "OS_ReadArgs",",quit=load,/E,/G,value/E",env%,buffer%,buffer_size% type%=�eval(buffer%!8) to$=�gstrans(buffer%!12) value%=�eval(buffer%!16) H� type%=-1 � � 1,"Syntax: *RunFilerAc <type> [<to>] [-value <bits>]" Bș "Wimp_Initialise",200,&4B534154,"RunFilerAction" � ,taskID% .� �: � � �: �closedown: � � �,�$+" at "+Þ 0ș "Wimp_StartTask","Filer_Action" � handle% Cș "FilerAction_SendSelectedDirectory",handle%,�var("Dir")+�(0) ?ș "FilerAction_SendSelectedFile",handle%,�var("Leaf")+�(0) "ș "OS_Byte",&A1,&C6 � ,,bits% ebits% = ((bits% � &40) >> 6) � ((bits% � &20) >> 4) � ((bits% � &10) >> 2) � ((bits% � &80) >> 4) !!buffer%=value% "value%=buffer% # $� to$="" � %F ș "FilerAction_SendStartOperation",handle%,type%,bits%,value%,4 &� 'O ș "FilerAction_SendStartOperation",handle%,type%,bits%,to$+�(0),�(to$)+1 (� ) *�closedown +� , -� �closedown . ș "Wimp_CloseDown" /� 0 1� �var(var$) 2� a$,i$,len% 3? ș "OS_ReadVarVal",var$,buffer%,buffer_size%,0,3 � ,,len% 4 buffer%?len%=&D 5 =$buffer% 6 7� �gstrans(p%) 8� i%,a$ 9� p%=0 � ="" : len%=(!p%) � &FFFF ; a$="" < � i%=2 � 2+len%-1 = a$+=�(p%?i%) > � i% ?=a$ @ A� �eval(p%) B� p%=0 � =-1 C =p%!1 �
00000000 0d 00 01 11 f4 20 3e 52 75 6e 46 69 6c 65 72 41 |..... >RunFilerA| 00000010 63 0d 00 02 1e f4 20 28 43 29 20 4e 69 63 6b 20 |c..... (C) Nick | 00000020 43 72 61 69 67 2d 57 6f 6f 64 20 31 39 39 34 0d |Craig-Wood 1994.| 00000030 00 03 31 f4 20 54 68 69 73 20 69 73 20 66 6f 72 |..1. This is for| 00000040 20 73 74 61 72 74 69 6e 67 20 6f 66 66 20 46 69 | starting off Fi| 00000050 6c 65 72 5f 41 63 74 69 6f 6e 20 74 61 73 6b 73 |ler_Action tasks| 00000060 0d 00 04 35 f4 20 49 74 20 65 78 70 65 63 74 73 |...5. It expects| 00000070 20 3c 44 69 72 3e 20 3c 4c 65 61 66 3e 20 61 6e | <Dir> <Leaf> an| 00000080 64 20 3c 50 61 74 68 3e 20 74 6f 20 62 65 20 73 |d <Path> to be s| 00000090 65 74 20 75 70 0d 00 05 04 0d 00 06 15 62 75 66 |et up........buf| 000000a0 66 65 72 5f 73 69 7a 65 25 3d 31 30 32 34 0d 00 |fer_size%=1024..| 000000b0 07 1a de 20 62 75 66 66 65 72 25 20 62 75 66 66 |... buffer% buff| 000000c0 65 72 5f 73 69 7a 65 25 0d 00 08 04 0d 00 09 22 |er_size%......."| 000000d0 ee 20 85 3a 20 ee 20 85 20 87 3a 20 85 20 a2 20 |. .: . . .: . . | 000000e0 9f 2c f6 24 2b 22 20 61 74 20 22 2b c3 9e 0d 00 |.,.$+" at "+....| 000000f0 0a 04 0d 00 0b 19 c8 99 20 22 4f 53 5f 47 65 74 |........ "OS_Get| 00000100 45 6e 76 22 20 b8 20 65 6e 76 25 0d 00 0c 04 0d |Env" . env%.....| 00000110 00 0d 49 c8 99 20 22 4f 53 5f 52 65 61 64 41 72 |..I.. "OS_ReadAr| 00000120 67 73 22 2c 22 2c 71 75 69 74 3d 6c 6f 61 64 2c |gs",",quit=load,| 00000130 2f 45 2c 2f 47 2c 76 61 6c 75 65 2f 45 22 2c 65 |/E,/G,value/E",e| 00000140 6e 76 25 2c 62 75 66 66 65 72 25 2c 62 75 66 66 |nv%,buffer%,buff| 00000150 65 72 5f 73 69 7a 65 25 0d 00 0e 04 0d 00 0f 1a |er_size%........| 00000160 74 79 70 65 25 3d a4 65 76 61 6c 28 62 75 66 66 |type%=.eval(buff| 00000170 65 72 25 21 38 29 0d 00 10 1c 74 6f 24 3d a4 67 |er%!8)....to$=.g| 00000180 73 74 72 61 6e 73 28 62 75 66 66 65 72 25 21 31 |strans(buffer%!1| 00000190 32 29 0d 00 11 1c 76 61 6c 75 65 25 3d a4 65 76 |2)....value%=.ev| 000001a0 61 6c 28 62 75 66 66 65 72 25 21 31 36 29 0d 00 |al(buffer%!16)..| 000001b0 12 04 0d 00 13 48 e7 20 74 79 70 65 25 3d 2d 31 |.....H. type%=-1| 000001c0 20 8c 20 85 20 31 2c 22 53 79 6e 74 61 78 3a 20 | . . 1,"Syntax: | 000001d0 2a 52 75 6e 46 69 6c 65 72 41 63 20 3c 74 79 70 |*RunFilerAc <typ| 000001e0 65 3e 20 5b 3c 74 6f 3e 5d 20 5b 2d 76 61 6c 75 |e> [<to>] [-valu| 000001f0 65 20 3c 62 69 74 73 3e 5d 22 0d 00 14 04 0d 00 |e <bits>]"......| 00000200 15 42 c8 99 20 22 57 69 6d 70 5f 49 6e 69 74 69 |.B.. "Wimp_Initi| 00000210 61 6c 69 73 65 22 2c 32 30 30 2c 26 34 42 35 33 |alise",200,&4B53| 00000220 34 31 35 34 2c 22 52 75 6e 46 69 6c 65 72 41 63 |4154,"RunFilerAc| 00000230 74 69 6f 6e 22 20 b8 20 2c 74 61 73 6b 49 44 25 |tion" . ,taskID%| 00000240 0d 00 16 2e ee 20 85 3a 20 ee 20 85 20 87 3a 20 |..... .: . . .: | 00000250 f2 63 6c 6f 73 65 64 6f 77 6e 3a 20 85 20 a2 20 |.closedown: . . | 00000260 9f 2c f6 24 2b 22 20 61 74 20 22 2b c3 9e 0d 00 |.,.$+" at "+....| 00000270 17 04 0d 00 18 30 c8 99 20 22 57 69 6d 70 5f 53 |.....0.. "Wimp_S| 00000280 74 61 72 74 54 61 73 6b 22 2c 22 46 69 6c 65 72 |tartTask","Filer| 00000290 5f 41 63 74 69 6f 6e 22 20 b8 20 68 61 6e 64 6c |_Action" . handl| 000002a0 65 25 0d 00 19 04 0d 00 1a 43 c8 99 20 22 46 69 |e%.......C.. "Fi| 000002b0 6c 65 72 41 63 74 69 6f 6e 5f 53 65 6e 64 53 65 |lerAction_SendSe| 000002c0 6c 65 63 74 65 64 44 69 72 65 63 74 6f 72 79 22 |lectedDirectory"| 000002d0 2c 68 61 6e 64 6c 65 25 2c a4 76 61 72 28 22 44 |,handle%,.var("D| 000002e0 69 72 22 29 2b bd 28 30 29 0d 00 1b 04 0d 00 1c |ir")+.(0).......| 000002f0 3f c8 99 20 22 46 69 6c 65 72 41 63 74 69 6f 6e |?.. "FilerAction| 00000300 5f 53 65 6e 64 53 65 6c 65 63 74 65 64 46 69 6c |_SendSelectedFil| 00000310 65 22 2c 68 61 6e 64 6c 65 25 2c a4 76 61 72 28 |e",handle%,.var(| 00000320 22 4c 65 61 66 22 29 2b bd 28 30 29 0d 00 1d 04 |"Leaf")+.(0)....| 00000330 0d 00 1e 22 c8 99 20 22 4f 53 5f 42 79 74 65 22 |...".. "OS_Byte"| 00000340 2c 26 41 31 2c 26 43 36 20 b8 20 2c 2c 62 69 74 |,&A1,&C6 . ,,bit| 00000350 73 25 0d 00 1f 65 62 69 74 73 25 20 3d 20 28 28 |s%...ebits% = ((| 00000360 62 69 74 73 25 20 80 20 26 34 30 29 20 3e 3e 20 |bits% . &40) >> | 00000370 36 29 20 84 20 28 28 62 69 74 73 25 20 80 20 26 |6) . ((bits% . &| 00000380 32 30 29 20 3e 3e 20 34 29 20 84 20 28 28 62 69 |20) >> 4) . ((bi| 00000390 74 73 25 20 80 20 26 31 30 29 20 3e 3e 20 32 29 |ts% . &10) >> 2)| 000003a0 20 84 20 28 28 62 69 74 73 25 20 80 20 26 38 30 | . ((bits% . &80| 000003b0 29 20 3e 3e 20 34 29 0d 00 20 04 0d 00 21 13 21 |) >> 4).. ...!.!| 000003c0 62 75 66 66 65 72 25 3d 76 61 6c 75 65 25 0d 00 |buffer%=value%..| 000003d0 22 12 76 61 6c 75 65 25 3d 62 75 66 66 65 72 25 |".value%=buffer%| 000003e0 0d 00 23 04 0d 00 24 0e e7 20 74 6f 24 3d 22 22 |..#...$.. to$=""| 000003f0 20 8c 0d 00 25 46 20 20 c8 99 20 22 46 69 6c 65 | ...%F .. "File| 00000400 72 41 63 74 69 6f 6e 5f 53 65 6e 64 53 74 61 72 |rAction_SendStar| 00000410 74 4f 70 65 72 61 74 69 6f 6e 22 2c 68 61 6e 64 |tOperation",hand| 00000420 6c 65 25 2c 74 79 70 65 25 2c 62 69 74 73 25 2c |le%,type%,bits%,| 00000430 76 61 6c 75 65 25 2c 34 0d 00 26 05 cc 0d 00 27 |value%,4..&....'| 00000440 4f 20 20 c8 99 20 22 46 69 6c 65 72 41 63 74 69 |O .. "FilerActi| 00000450 6f 6e 5f 53 65 6e 64 53 74 61 72 74 4f 70 65 72 |on_SendStartOper| 00000460 61 74 69 6f 6e 22 2c 68 61 6e 64 6c 65 25 2c 74 |ation",handle%,t| 00000470 79 70 65 25 2c 62 69 74 73 25 2c 74 6f 24 2b bd |ype%,bits%,to$+.| 00000480 28 30 29 2c a9 28 74 6f 24 29 2b 31 0d 00 28 05 |(0),.(to$)+1..(.| 00000490 cd 0d 00 29 04 0d 00 2a 0e f2 63 6c 6f 73 65 64 |...)...*..closed| 000004a0 6f 77 6e 0d 00 2b 05 e0 0d 00 2c 04 0d 00 2d 10 |own..+....,...-.| 000004b0 dd 20 f2 63 6c 6f 73 65 64 6f 77 6e 0d 00 2e 19 |. .closedown....| 000004c0 20 20 c8 99 20 22 57 69 6d 70 5f 43 6c 6f 73 65 | .. "Wimp_Close| 000004d0 44 6f 77 6e 22 0d 00 2f 05 e1 0d 00 30 04 0d 00 |Down"../....0...| 000004e0 31 10 dd 20 a4 76 61 72 28 76 61 72 24 29 0d 00 |1.. .var(var$)..| 000004f0 32 10 ea 20 61 24 2c 69 24 2c 6c 65 6e 25 0d 00 |2.. a$,i$,len%..| 00000500 33 3f 20 20 c8 99 20 22 4f 53 5f 52 65 61 64 56 |3? .. "OS_ReadV| 00000510 61 72 56 61 6c 22 2c 76 61 72 24 2c 62 75 66 66 |arVal",var$,buff| 00000520 65 72 25 2c 62 75 66 66 65 72 5f 73 69 7a 65 25 |er%,buffer_size%| 00000530 2c 30 2c 33 20 b8 20 2c 2c 6c 65 6e 25 0d 00 34 |,0,3 . ,,len%..4| 00000540 15 20 20 62 75 66 66 65 72 25 3f 6c 65 6e 25 3d |. buffer%?len%=| 00000550 26 44 0d 00 35 0d 3d 24 62 75 66 66 65 72 25 0d |&D..5.=$buffer%.| 00000560 00 36 04 0d 00 37 12 dd 20 a4 67 73 74 72 61 6e |.6...7.. .gstran| 00000570 73 28 70 25 29 0d 00 38 0b ea 20 69 25 2c 61 24 |s(p%)..8.. i%,a$| 00000580 0d 00 39 10 e7 20 70 25 3d 30 20 8c 20 3d 22 22 |..9.. p%=0 . =""| 00000590 0d 00 3a 18 20 20 6c 65 6e 25 3d 28 21 70 25 29 |..:. len%=(!p%)| 000005a0 20 80 20 26 46 46 46 46 0d 00 3b 0b 20 20 61 24 | . &FFFF..;. a$| 000005b0 3d 22 22 0d 00 3c 17 20 20 e3 20 69 25 3d 32 20 |=""..<. . i%=2 | 000005c0 b8 20 32 2b 6c 65 6e 25 2d 31 0d 00 3d 14 20 20 |. 2+len%-1..=. | 000005d0 20 20 61 24 2b 3d bd 28 70 25 3f 69 25 29 0d 00 | a$+=.(p%?i%)..| 000005e0 3e 0a 20 20 ed 20 69 25 0d 00 3f 07 3d 61 24 0d |>. . i%..?.=a$.| 000005f0 00 40 04 0d 00 41 0f dd 20 a4 65 76 61 6c 28 70 |.@...A.. .eval(p| 00000600 25 29 0d 00 42 10 e7 20 70 25 3d 30 20 8c 20 3d |%)..B.. p%=0 . =| 00000610 2d 31 0d 00 43 09 3d 70 25 21 31 0d ff |-1..C.=p%!1..| 0000061d