Home » Archimedes archive » Acorn User » AU 1993-04.adf » !StarInfo/Files/!Auto/!RunImage
!StarInfo/Files/!Auto/!RunImage
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 1993-04.adf |
Filename: | !StarInfo/Files/!Auto/!RunImage |
Read OK: | ✔ |
File size: | 073E bytes |
Load address: | FFFFFB44 |
Exec address: | 696E22D5 |
File contents
10REM >!RunImage (Info11) 20REM Main Auto program 30REM By Andrew Young 40REM Modified for general signposts by Colin Turner 50REM For 32-bit machines 60REM (c) BAU October 1992/April 1993 70: 80key$=INKEY$(0) 90open%=1:close%=2:app%=3:mod%=4:vdu%=5:mode%=6:pin%=7 100SYS "Wimp_Initialise",200,&4B534154,"Transient" 110SYS "XOS_ReadVarVal","Initialise$Exec",0,-1,0,3 TO ,,r2% 120IF r2%=0 THEN PROCfile("Default") 130SYS "OS_GetEnv" TO EnvStr$ 140IF INSTR(EnvStr$," -quit ") THEN 150 i%=INSTR(EnvStr$,"""") 160 i%=INSTR(EnvStr$,"""",i%+1) 170 REPEAT 180 i%+=1 190 UNTILMID$(EnvStr$,i%,1)<>" " 200 command$=MID$(EnvStr$,i%) 210 ENDIF 220IF command$ = "" AND key$ <> "" THEN PROCfile(key$) 230IF command$ <> "" THEN PROCsignpost(command$) 240SYS "Wimp_CloseDown" 250*Set Initialise$Exec True 260END 270: 280DEF FNget_line(fh%) 290s$="" 300REPEAT 310 v%=BGET#fh% 320 s$+=CHR$v% 330UNTIL ((EOF#fh%) OR (v%<32)) 340=s$ 350: 360DEF FNfunc(fc$) 370fc$=MID$(fc$,2,LEN(fc$)-3) 380CASE fc$ OF 390 WHEN "Open":nf%=open% 400 WHEN "Close":nf%=close% 410 WHEN "Application":nf%=app% 420 WHEN "Module":nf%=mod% 430 WHEN "VDU":nf%=vdu% 440 WHEN "Mode":nf%=mode% 450 WHEN "Pin":nf%=pin% 460OTHERWISE: 470 ERROR 1,"Warning: Bad file heading" 480ENDCASE 490=nf% 500: 510DEF PROCvdu(vs$) 520REPEAT 530 d%=INSTR(vs$,",") 540 IF d%=0 THEN d%=LEN(vs$) 550 v%=VAL(LEFT$(vs$,d%)) 560 VDU v% 570 vs$=RIGHT$(vs$,LEN(vs$)-d%) 580UNTIL vs$="" 590ENDPROC 600: 610DEF PROCfile(fn$) 620i%=OPENIN("<Initialise$Dir>."+fn$) 630PROCread_file 640CLOSE #i% 650ENDPROC 660: 670DEF PROCread_file 680IF i%<>0 THEN 690 func%=app% 700 WHILE NOT EOF #i% 710 st$=FNget_line(i%) 720 IF st$<>"" THEN 730 IF LEFT$(st$,1)="{" THEN 740 func%=FNfunc(st$) 750 ELSE 760 CASE func% OF 770 WHEN open%:OSCLI("Filer_OpenDir "+st$) 780 WHEN close%:OSCLI("Filer_CloseDir "+st$) 790 WHEN app%:OSCLI("WimpTask "+st$) 800 WHEN mod%:OSCLI("RMLoad "+st$) 810 WHEN vdu%:PROCvdu(st$) 820 WHEN mode%:SYS "Wimp_SetMode",VAL(st$) 830 WHEN pin%:OSCLI("Pin "+st$) 840 ENDCASE 850 ENDIF 860 ENDIF 870 ENDWHILE 880ENDIF 890ENDPROC 900: 910DEF PROCsignpost(fn$) 920i%=OPENIN(fn$) 930PROCread_file 940CLOSE#i% 950ENDPROC
� >!RunImage (Info11) � Main Auto program � By Andrew Young (8� Modified for general signposts by Colin Turner 2� For 32-bit machines <%� (c) BAU October 1992/April 1993 F: P key$=�(0) Z8open%=1:close%=2:app%=3:mod%=4:vdu%=5:mode%=6:pin%=7 d2ș "Wimp_Initialise",200,&4B534154,"Transient" n:ș "XOS_ReadVarVal","Initialise$Exec",0,-1,0,3 � ,,r2% x� r2%=0 � �file("Default") �ș "OS_GetEnv" � EnvStr$ �� �EnvStr$," -quit ") � � i%=�EnvStr$,"""") � i%=�EnvStr$,"""",i%+1) � � � i%+=1 � ��EnvStr$,i%,1)<>" " � command$=�EnvStr$,i%) � � �.� command$ = "" � key$ <> "" � �file(key$) �*� command$ <> "" � �signpost(command$) �ș "Wimp_CloseDown" �*Set Initialise$Exec True � : � �get_line(fh%) " s$="" ,� 6 v%=�#fh% @ s$+=�v% J� ((�#fh%) � (v%<32)) T=s$ ^: h� �func(fc$) rfc$=�fc$,2,�(fc$)-3) |Ȏ fc$ � � � "Open":nf%=open% � � "Close":nf%=close% � � "Application":nf%=app% � � "Module":nf%=mod% � � "VDU":nf%=vdu% � � "Mode":nf%=mode% � � "Pin":nf%=pin% �: �$ � 1,"Warning: Bad file heading" �� �=nf% �: �� �vdu(vs$) � d%=�vs$,",") � d%=0 � d%=�(vs$) & v%=�(�vs$,d%)) 0 � v% : vs$=�vs$,�(vs$)-d%) D� vs$="" N� X: b� �file(fn$) l!i%=�("<Initialise$Dir>."+fn$) v�read_file � � #i% �� �: �� �read_file � � i%<>0 � � func%=app% � ȕ � � #i% � st$=�get_line(i%) � � st$<>"" � � � �st$,1)="{" � � func%=�func(st$) � � � Ȏ func% � ( � open%:�("Filer_OpenDir "+st$) * � close%:�("Filer_CloseDir "+st$) " � app%:�("WimpTask "+st$) � mod%:�("RMLoad "+st$) * � vdu%:�vdu(st$) 4) � mode%:ș "Wimp_SetMode",�(st$) > � pin%:�("Pin "+st$) H � R � \ � f � p� z� �: �� �signpost(fn$) � i%=�(fn$) ��read_file ��#i% �� �
00000000 0d 00 0a 1d f4 20 20 20 20 20 3e 21 52 75 6e 49 |..... >!RunI| 00000010 6d 61 67 65 20 28 49 6e 66 6f 31 31 29 0d 00 14 |mage (Info11)...| 00000020 1b f4 20 20 20 20 20 4d 61 69 6e 20 41 75 74 6f |.. Main Auto| 00000030 20 70 72 6f 67 72 61 6d 0d 00 1e 16 f4 20 42 79 | program..... By| 00000040 20 20 41 6e 64 72 65 77 20 59 6f 75 6e 67 0d 00 | Andrew Young..| 00000050 28 38 f4 20 20 20 20 20 4d 6f 64 69 66 69 65 64 |(8. Modified| 00000060 20 66 6f 72 20 67 65 6e 65 72 61 6c 20 73 69 67 | for general sig| 00000070 6e 70 6f 73 74 73 20 62 79 20 43 6f 6c 69 6e 20 |nposts by Colin | 00000080 54 75 72 6e 65 72 0d 00 32 19 f4 20 46 6f 72 20 |Turner..2.. For | 00000090 33 32 2d 62 69 74 20 6d 61 63 68 69 6e 65 73 0d |32-bit machines.| 000000a0 00 3c 25 f4 20 28 63 29 20 42 41 55 20 4f 63 74 |.<%. (c) BAU Oct| 000000b0 6f 62 65 72 20 31 39 39 32 2f 41 70 72 69 6c 20 |ober 1992/April | 000000c0 31 39 39 33 0d 00 46 05 3a 0d 00 50 0d 6b 65 79 |1993..F.:..P.key| 000000d0 24 3d bf 28 30 29 0d 00 5a 38 6f 70 65 6e 25 3d |$=.(0)..Z8open%=| 000000e0 31 3a 63 6c 6f 73 65 25 3d 32 3a 61 70 70 25 3d |1:close%=2:app%=| 000000f0 33 3a 6d 6f 64 25 3d 34 3a 76 64 75 25 3d 35 3a |3:mod%=4:vdu%=5:| 00000100 6d 6f 64 65 25 3d 36 3a 70 69 6e 25 3d 37 0d 00 |mode%=6:pin%=7..| 00000110 64 32 c8 99 20 22 57 69 6d 70 5f 49 6e 69 74 69 |d2.. "Wimp_Initi| 00000120 61 6c 69 73 65 22 2c 32 30 30 2c 26 34 42 35 33 |alise",200,&4B53| 00000130 34 31 35 34 2c 22 54 72 61 6e 73 69 65 6e 74 22 |4154,"Transient"| 00000140 0d 00 6e 3a c8 99 20 22 58 4f 53 5f 52 65 61 64 |..n:.. "XOS_Read| 00000150 56 61 72 56 61 6c 22 2c 22 49 6e 69 74 69 61 6c |VarVal","Initial| 00000160 69 73 65 24 45 78 65 63 22 2c 30 2c 2d 31 2c 30 |ise$Exec",0,-1,0| 00000170 2c 33 20 b8 20 2c 2c 72 32 25 0d 00 78 1e e7 20 |,3 . ,,r2%..x.. | 00000180 72 32 25 3d 30 20 8c 20 f2 66 69 6c 65 28 22 44 |r2%=0 . .file("D| 00000190 65 66 61 75 6c 74 22 29 0d 00 82 1c c8 99 20 22 |efault")...... "| 000001a0 4f 53 5f 47 65 74 45 6e 76 22 20 b8 20 45 6e 76 |OS_GetEnv" . Env| 000001b0 53 74 72 24 0d 00 8c 1b e7 20 a7 45 6e 76 53 74 |Str$..... .EnvSt| 000001c0 72 24 2c 22 20 2d 71 75 69 74 20 22 29 20 8c 0d |r$," -quit ") ..| 000001d0 00 96 17 20 20 69 25 3d a7 45 6e 76 53 74 72 24 |... i%=.EnvStr$| 000001e0 2c 22 22 22 22 29 0d 00 a0 1c 20 20 69 25 3d a7 |,"""").... i%=.| 000001f0 45 6e 76 53 74 72 24 2c 22 22 22 22 2c 69 25 2b |EnvStr$,"""",i%+| 00000200 31 29 0d 00 aa 07 20 20 f5 0d 00 b4 0c 20 20 20 |1).... ..... | 00000210 69 25 2b 3d 31 0d 00 be 1a 20 20 fd c1 45 6e 76 |i%+=1.... ..Env| 00000220 53 74 72 24 2c 69 25 2c 31 29 3c 3e 22 20 22 0d |Str$,i%,1)<>" ".| 00000230 00 c8 1b 20 20 63 6f 6d 6d 61 6e 64 24 3d c1 45 |... command$=.E| 00000240 6e 76 53 74 72 24 2c 69 25 29 0d 00 d2 07 20 20 |nvStr$,i%).... | 00000250 cd 0d 00 dc 2e e7 20 63 6f 6d 6d 61 6e 64 24 20 |...... command$ | 00000260 3d 20 22 22 20 80 20 6b 65 79 24 20 3c 3e 20 22 |= "" . key$ <> "| 00000270 22 20 8c 20 f2 66 69 6c 65 28 6b 65 79 24 29 0d |" . .file(key$).| 00000280 00 e6 2a e7 20 63 6f 6d 6d 61 6e 64 24 20 3c 3e |..*. command$ <>| 00000290 20 22 22 20 8c 20 f2 73 69 67 6e 70 6f 73 74 28 | "" . .signpost(| 000002a0 63 6f 6d 6d 61 6e 64 24 29 0d 00 f0 17 c8 99 20 |command$)...... | 000002b0 22 57 69 6d 70 5f 43 6c 6f 73 65 44 6f 77 6e 22 |"Wimp_CloseDown"| 000002c0 0d 00 fa 1d 2a 53 65 74 20 49 6e 69 74 69 61 6c |....*Set Initial| 000002d0 69 73 65 24 45 78 65 63 20 54 72 75 65 0d 01 04 |ise$Exec True...| 000002e0 05 e0 0d 01 0e 05 3a 0d 01 18 14 dd 20 a4 67 65 |......:..... .ge| 000002f0 74 5f 6c 69 6e 65 28 66 68 25 29 0d 01 22 09 73 |t_line(fh%)..".s| 00000300 24 3d 22 22 0d 01 2c 05 f5 0d 01 36 0d 20 76 25 |$=""..,....6. v%| 00000310 3d 9a 23 66 68 25 0d 01 40 0c 20 73 24 2b 3d bd |=.#fh%..@. s$+=.| 00000320 76 25 0d 01 4a 19 fd 20 28 28 c5 23 66 68 25 29 |v%..J.. ((.#fh%)| 00000330 20 84 20 28 76 25 3c 33 32 29 29 0d 01 54 07 3d | . (v%<32))..T.=| 00000340 73 24 0d 01 5e 05 3a 0d 01 68 10 dd 20 a4 66 75 |s$..^.:..h.. .fu| 00000350 6e 63 28 66 63 24 29 0d 01 72 18 66 63 24 3d c1 |nc(fc$)..r.fc$=.| 00000360 66 63 24 2c 32 2c a9 28 66 63 24 29 2d 33 29 0d |fc$,2,.(fc$)-3).| 00000370 01 7c 0c c8 8e 20 66 63 24 20 ca 0d 01 86 17 20 |.|... fc$ ..... | 00000380 c9 20 22 4f 70 65 6e 22 3a 6e 66 25 3d 6f 70 65 |. "Open":nf%=ope| 00000390 6e 25 0d 01 90 19 20 c9 20 22 43 6c 6f 73 65 22 |n%.... . "Close"| 000003a0 3a 6e 66 25 3d 63 6c 6f 73 65 25 0d 01 9a 1d 20 |:nf%=close%.... | 000003b0 c9 20 22 41 70 70 6c 69 63 61 74 69 6f 6e 22 3a |. "Application":| 000003c0 6e 66 25 3d 61 70 70 25 0d 01 a4 18 20 c9 20 22 |nf%=app%.... . "| 000003d0 4d 6f 64 75 6c 65 22 3a 6e 66 25 3d 6d 6f 64 25 |Module":nf%=mod%| 000003e0 0d 01 ae 15 20 c9 20 22 56 44 55 22 3a 6e 66 25 |.... . "VDU":nf%| 000003f0 3d 76 64 75 25 0d 01 b8 17 20 c9 20 22 4d 6f 64 |=vdu%.... . "Mod| 00000400 65 22 3a 6e 66 25 3d 6d 6f 64 65 25 0d 01 c2 15 |e":nf%=mode%....| 00000410 20 c9 20 22 50 69 6e 22 3a 6e 66 25 3d 70 69 6e | . "Pin":nf%=pin| 00000420 25 0d 01 cc 06 7f 3a 0d 01 d6 24 20 85 20 31 2c |%.....:...$ . 1,| 00000430 22 57 61 72 6e 69 6e 67 3a 20 42 61 64 20 66 69 |"Warning: Bad fi| 00000440 6c 65 20 68 65 61 64 69 6e 67 22 0d 01 e0 05 cb |le heading".....| 00000450 0d 01 ea 08 3d 6e 66 25 0d 01 f4 05 3a 0d 01 fe |....=nf%....:...| 00000460 0f dd 20 f2 76 64 75 28 76 73 24 29 0d 02 08 05 |.. .vdu(vs$)....| 00000470 f5 0d 02 12 11 20 64 25 3d a7 76 73 24 2c 22 2c |..... d%=.vs$,",| 00000480 22 29 0d 02 1c 17 20 e7 20 64 25 3d 30 20 8c 20 |").... . d%=0 . | 00000490 64 25 3d a9 28 76 73 24 29 0d 02 26 13 20 76 25 |d%=.(vs$)..&. v%| 000004a0 3d bb 28 c0 76 73 24 2c 64 25 29 29 0d 02 30 09 |=.(.vs$,d%))..0.| 000004b0 20 ef 20 76 25 0d 02 3a 18 20 76 73 24 3d c2 76 | . v%..:. vs$=.v| 000004c0 73 24 2c a9 28 76 73 24 29 2d 64 25 29 0d 02 44 |s$,.(vs$)-d%)..D| 000004d0 0c fd 20 76 73 24 3d 22 22 0d 02 4e 05 e1 0d 02 |.. vs$=""..N....| 000004e0 58 05 3a 0d 02 62 10 dd 20 f2 66 69 6c 65 28 66 |X.:..b.. .file(f| 000004f0 6e 24 29 0d 02 6c 21 69 25 3d 8e 28 22 3c 49 6e |n$)..l!i%=.("<In| 00000500 69 74 69 61 6c 69 73 65 24 44 69 72 3e 2e 22 2b |itialise$Dir>."+| 00000510 66 6e 24 29 0d 02 76 0e f2 72 65 61 64 5f 66 69 |fn$)..v..read_fi| 00000520 6c 65 0d 02 80 09 d9 20 23 69 25 0d 02 8a 05 e1 |le..... #i%.....| 00000530 0d 02 94 05 3a 0d 02 9e 10 dd 20 f2 72 65 61 64 |....:..... .read| 00000540 5f 66 69 6c 65 0d 02 a8 0d e7 20 69 25 3c 3e 30 |_file..... i%<>0| 00000550 20 8c 0d 02 b2 0f 20 66 75 6e 63 25 3d 61 70 70 | ..... func%=app| 00000560 25 0d 02 bc 0f 20 c8 95 20 ac 20 c5 20 23 69 25 |%.... .. . . #i%| 00000570 0d 02 c6 17 20 20 73 74 24 3d a4 67 65 74 5f 6c |.... st$=.get_l| 00000580 69 6e 65 28 69 25 29 0d 02 d0 11 20 20 e7 20 73 |ine(i%).... . s| 00000590 74 24 3c 3e 22 22 20 8c 0d 02 da 16 20 20 20 e7 |t$<>"" ..... .| 000005a0 20 c0 73 74 24 2c 31 29 3d 22 7b 22 20 8c 0d 02 | .st$,1)="{" ...| 000005b0 e4 18 20 20 20 20 66 75 6e 63 25 3d a4 66 75 6e |.. func%=.fun| 000005c0 63 28 73 74 24 29 0d 02 ee 08 20 20 20 cc 0d 02 |c(st$).... ...| 000005d0 f8 12 20 20 20 20 c8 8e 20 66 75 6e 63 25 20 ca |.. .. func% .| 000005e0 0d 03 02 28 20 20 20 20 20 c9 20 6f 70 65 6e 25 |...( . open%| 000005f0 3a ff 28 22 46 69 6c 65 72 5f 4f 70 65 6e 44 69 |:.("Filer_OpenDi| 00000600 72 20 22 2b 73 74 24 29 0d 03 0c 2a 20 20 20 20 |r "+st$)...* | 00000610 20 c9 20 63 6c 6f 73 65 25 3a ff 28 22 46 69 6c | . close%:.("Fil| 00000620 65 72 5f 43 6c 6f 73 65 44 69 72 20 22 2b 73 74 |er_CloseDir "+st| 00000630 24 29 0d 03 16 22 20 20 20 20 20 c9 20 61 70 70 |$)..." . app| 00000640 25 3a ff 28 22 57 69 6d 70 54 61 73 6b 20 22 2b |%:.("WimpTask "+| 00000650 73 74 24 29 0d 03 20 20 20 20 20 20 20 c9 20 6d |st$).. . m| 00000660 6f 64 25 3a ff 28 22 52 4d 4c 6f 61 64 20 22 2b |od%:.("RMLoad "+| 00000670 73 74 24 29 0d 03 2a 19 20 20 20 20 20 c9 20 76 |st$)..*. . v| 00000680 64 75 25 3a f2 76 64 75 28 73 74 24 29 0d 03 34 |du%:.vdu(st$)..4| 00000690 29 20 20 20 20 20 c9 20 6d 6f 64 65 25 3a c8 99 |) . mode%:..| 000006a0 20 22 57 69 6d 70 5f 53 65 74 4d 6f 64 65 22 2c | "Wimp_SetMode",| 000006b0 bb 28 73 74 24 29 0d 03 3e 1d 20 20 20 20 20 c9 |.(st$)..>. .| 000006c0 20 70 69 6e 25 3a ff 28 22 50 69 6e 20 22 2b 73 | pin%:.("Pin "+s| 000006d0 74 24 29 0d 03 48 09 20 20 20 20 cb 0d 03 52 08 |t$)..H. ...R.| 000006e0 20 20 20 cd 0d 03 5c 07 20 20 cd 0d 03 66 06 20 | ...\. ...f. | 000006f0 ce 0d 03 70 05 cd 0d 03 7a 05 e1 0d 03 84 05 3a |...p....z......:| 00000700 0d 03 8e 14 dd 20 f2 73 69 67 6e 70 6f 73 74 28 |..... .signpost(| 00000710 66 6e 24 29 0d 03 98 0d 69 25 3d 8e 28 66 6e 24 |fn$)....i%=.(fn$| 00000720 29 0d 03 a2 0e f2 72 65 61 64 5f 66 69 6c 65 0d |).....read_file.| 00000730 03 ac 08 d9 23 69 25 0d 03 b6 05 e1 0d ff |....#i%.......| 0000073e