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