Home » Archimedes archive » Acorn Computing » 1995 01 subscription disc.adf » 9501s » PD/!LIBRARY/SETRUNPATH
PD/!LIBRARY/SETRUNPATH
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 Computing » 1995 01 subscription disc.adf » 9501s |
Filename: | PD/!LIBRARY/SETRUNPATH |
Read OK: | ✔ |
File size: | 0335 bytes |
Load address: | 0000 |
Exec address: | 0000 |
File contents
10REM>:SetUp.$.!Library.SetRunPath 20SYS "OS_GetEnv" TO name$ 30FOR X%=1 TO 3:pos%=INSTR(name$," ",pos%):name$=RIGHT$(name$,LEN(name$)-pos%):NEXT 40DIM buf% &400,var% 256 50$var%="Run$Path"+CHR$0 60SYS "OS_ReadVarVal",var%,buf%,&400,0,3 TO ,,length% 70length%-=1 80A$="":FOR X%=0 TO length%:A$=A$+CHR$(?(buf%+X%)):NEXT 90IF LEFT$(A$,1)<>"," A$+="," 100IF RIGHT$(name$)="," THEN name$=LEFT$(name$) 110IF RIGHT$(name$)="." THEN name$=LEFT$(name$) 120IF LEFT$(name$,1)="<" THEN 130$var%=MID$(name$,2,INSTR(name$,">")-2)+CHR$0 140SYS "OS_ReadVarVal",var%,buf%,&400,0,3 TO ,,length% 150length%-=1 160B$="":FOR X%=0 TO length%:B$=B$+CHR$(?(buf%+X%)):NEXT 170name$=B$+RIGHT$(name$,LEN(name$)-INSTR(name$,">")) 180IF RIGHT$(name$)="." THEN name$=LEFT$(name$) 190ENDIF 200match%=0 210REPEAT 220pos%=INSTR(A$,",") 230IF LEFT$(A$,LEN(name$))=name$ THEN match%=1 ELSE A$=RIGHT$(A$,LEN(A$)-pos%) 240UNTIL LEN(A$)<=0 OR match%=1 OR pos%=0 250IF match%=0 THEN 260OSCLI("SET Run$Path <Run$Path>,"+name$+".") 270ENDIF
"�>:SetUp.$.!Library.SetRunPath ș "OS_GetEnv" � name$ B� X%=1 � 3:pos%=�name$," ",pos%):name$=�name$,�(name$)-pos%):� (� buf% &400,var% 256 2$var%="Run$Path"+�0 <5ș "OS_ReadVarVal",var%,buf%,&400,0,3 � ,,length% Flength%-=1 P0A$="":� X%=0 � length%:A$=A$+�(?(buf%+X%)):� Z� �A$,1)<>"," A$+="," d!� �name$)="," � name$=�name$) n!� �name$)="." � name$=�name$) x� �name$,1)="<" � �$$var%=�name$,2,�name$,">")-2)+�0 �5ș "OS_ReadVarVal",var%,buf%,&400,0,3 � ,,length% �length%-=1 �0B$="":� X%=0 � length%:B$=B$+�(?(buf%+X%)):� �)name$=B$+�name$,�(name$)-�name$,">")) �!� �name$)="." � name$=�name$) �� �match%=0 �� �pos%=�A$,",") �9� �A$,�(name$))=name$ � match%=1 � A$=�A$,�(A$)-pos%) �"� �(A$)<=0 � match%=1 � pos%=0 �� match%=0 � +�("SET Run$Path <Run$Path>,"+name$+".") � �
00000000 0d 00 0a 22 f4 3e 3a 53 65 74 55 70 2e 24 2e 21 |...".>:SetUp.$.!| 00000010 4c 69 62 72 61 72 79 2e 53 65 74 52 75 6e 50 61 |Library.SetRunPa| 00000020 74 68 0d 00 14 1a c8 99 20 22 4f 53 5f 47 65 74 |th...... "OS_Get| 00000030 45 6e 76 22 20 b8 20 6e 61 6d 65 24 0d 00 1e 42 |Env" . name$...B| 00000040 e3 20 58 25 3d 31 20 b8 20 33 3a 70 6f 73 25 3d |. X%=1 . 3:pos%=| 00000050 a7 6e 61 6d 65 24 2c 22 20 22 2c 70 6f 73 25 29 |.name$," ",pos%)| 00000060 3a 6e 61 6d 65 24 3d c2 6e 61 6d 65 24 2c a9 28 |:name$=.name$,.(| 00000070 6e 61 6d 65 24 29 2d 70 6f 73 25 29 3a ed 0d 00 |name$)-pos%):...| 00000080 28 18 de 20 62 75 66 25 20 26 34 30 30 2c 76 61 |(.. buf% &400,va| 00000090 72 25 20 32 35 36 0d 00 32 17 24 76 61 72 25 3d |r% 256..2.$var%=| 000000a0 22 52 75 6e 24 50 61 74 68 22 2b bd 30 0d 00 3c |"Run$Path"+.0..<| 000000b0 35 c8 99 20 22 4f 53 5f 52 65 61 64 56 61 72 56 |5.. "OS_ReadVarV| 000000c0 61 6c 22 2c 76 61 72 25 2c 62 75 66 25 2c 26 34 |al",var%,buf%,&4| 000000d0 30 30 2c 30 2c 33 20 b8 20 2c 2c 6c 65 6e 67 74 |00,0,3 . ,,lengt| 000000e0 68 25 0d 00 46 0e 6c 65 6e 67 74 68 25 2d 3d 31 |h%..F.length%-=1| 000000f0 0d 00 50 30 41 24 3d 22 22 3a e3 20 58 25 3d 30 |..P0A$="":. X%=0| 00000100 20 b8 20 6c 65 6e 67 74 68 25 3a 41 24 3d 41 24 | . length%:A$=A$| 00000110 2b bd 28 3f 28 62 75 66 25 2b 58 25 29 29 3a ed |+.(?(buf%+X%)):.| 00000120 0d 00 5a 19 e7 20 c0 41 24 2c 31 29 3c 3e 22 2c |..Z.. .A$,1)<>",| 00000130 22 20 41 24 2b 3d 22 2c 22 0d 00 64 21 e7 20 c2 |" A$+=","..d!. .| 00000140 6e 61 6d 65 24 29 3d 22 2c 22 20 8c 20 6e 61 6d |name$)="," . nam| 00000150 65 24 3d c0 6e 61 6d 65 24 29 0d 00 6e 21 e7 20 |e$=.name$)..n!. | 00000160 c2 6e 61 6d 65 24 29 3d 22 2e 22 20 8c 20 6e 61 |.name$)="." . na| 00000170 6d 65 24 3d c0 6e 61 6d 65 24 29 0d 00 78 15 e7 |me$=.name$)..x..| 00000180 20 c0 6e 61 6d 65 24 2c 31 29 3d 22 3c 22 20 8c | .name$,1)="<" .| 00000190 0d 00 82 24 24 76 61 72 25 3d c1 6e 61 6d 65 24 |...$$var%=.name$| 000001a0 2c 32 2c a7 6e 61 6d 65 24 2c 22 3e 22 29 2d 32 |,2,.name$,">")-2| 000001b0 29 2b bd 30 0d 00 8c 35 c8 99 20 22 4f 53 5f 52 |)+.0...5.. "OS_R| 000001c0 65 61 64 56 61 72 56 61 6c 22 2c 76 61 72 25 2c |eadVarVal",var%,| 000001d0 62 75 66 25 2c 26 34 30 30 2c 30 2c 33 20 b8 20 |buf%,&400,0,3 . | 000001e0 2c 2c 6c 65 6e 67 74 68 25 0d 00 96 0e 6c 65 6e |,,length%....len| 000001f0 67 74 68 25 2d 3d 31 0d 00 a0 30 42 24 3d 22 22 |gth%-=1...0B$=""| 00000200 3a e3 20 58 25 3d 30 20 b8 20 6c 65 6e 67 74 68 |:. X%=0 . length| 00000210 25 3a 42 24 3d 42 24 2b bd 28 3f 28 62 75 66 25 |%:B$=B$+.(?(buf%| 00000220 2b 58 25 29 29 3a ed 0d 00 aa 29 6e 61 6d 65 24 |+X%)):....)name$| 00000230 3d 42 24 2b c2 6e 61 6d 65 24 2c a9 28 6e 61 6d |=B$+.name$,.(nam| 00000240 65 24 29 2d a7 6e 61 6d 65 24 2c 22 3e 22 29 29 |e$)-.name$,">"))| 00000250 0d 00 b4 21 e7 20 c2 6e 61 6d 65 24 29 3d 22 2e |...!. .name$)=".| 00000260 22 20 8c 20 6e 61 6d 65 24 3d c0 6e 61 6d 65 24 |" . name$=.name$| 00000270 29 0d 00 be 05 cd 0d 00 c8 0c 6d 61 74 63 68 25 |).........match%| 00000280 3d 30 0d 00 d2 05 f5 0d 00 dc 11 70 6f 73 25 3d |=0.........pos%=| 00000290 a7 41 24 2c 22 2c 22 29 0d 00 e6 39 e7 20 c0 41 |.A$,",")...9. .A| 000002a0 24 2c a9 28 6e 61 6d 65 24 29 29 3d 6e 61 6d 65 |$,.(name$))=name| 000002b0 24 20 8c 20 6d 61 74 63 68 25 3d 31 20 8b 20 41 |$ . match%=1 . A| 000002c0 24 3d c2 41 24 2c a9 28 41 24 29 2d 70 6f 73 25 |$=.A$,.(A$)-pos%| 000002d0 29 0d 00 f0 22 fd 20 a9 28 41 24 29 3c 3d 30 20 |)...". .(A$)<=0 | 000002e0 84 20 6d 61 74 63 68 25 3d 31 20 84 20 70 6f 73 |. match%=1 . pos| 000002f0 25 3d 30 0d 00 fa 10 e7 20 6d 61 74 63 68 25 3d |%=0..... match%=| 00000300 30 20 8c 0d 01 04 2b ff 28 22 53 45 54 20 52 75 |0 ....+.("SET Ru| 00000310 6e 24 50 61 74 68 20 3c 52 75 6e 24 50 61 74 68 |n$Path <Run$Path| 00000320 3e 2c 22 2b 6e 61 6d 65 24 2b 22 2e 22 29 0d 01 |>,"+name$+".")..| 00000330 0e 05 cd 0d ff |.....| 00000335