7 <COND (<=? <SAVE "MV"> "SAVED"> T)
10 <SETG BUFSTRING <ISTRING 200>>
12 <DEFINE RQ ("OPT" (NOJCL? <>))
15 <RUN-QUESTIONS .NOJCL?>>>
17 <DEFINE RUN-QUESTIONS ("OPT" (NOJCL? <>) "AUX" FIL FILLEN REC (BUF ,BUFSTRING) CH
18 (JCL-STR <>) REM-STR (JCL-VEC <>) REM-VEC
19 (QUICK? <>) (UN <UNAME>) (ANY-JCL? <>))
20 #DECL ((REM-STR JCL-STR) <OR STRING FALSE>
21 (JCL-VEC REM-VEC) <OR VECTOR FALSE> (FIL) LIST)
23 <IFSYS ("TOPS20" <COND (.NOJCL? <SET JCL-STR <>>)
24 (T <SET JCL-STR <READJCL>>)>)
25 ("VAX" <COND (.NOJCL? <SET JCL-VEC <>>)
26 (T <SET JCL-VEC <READARGS>>)>)>
28 <UNASSIGN PRECOMPILED>
29 <UNASSIGN AUTO-PRECOMP>
31 <COND (<OR .JCL-VEC .JCL-STR>
42 (<SET REM-STR <MEMQ !\/ .JCL-STR>>
43 <SET FIL <LEX <SUBSTRUC .JCL-STR 0 <- <LENGTH .JCL-STR>
45 <SET REM-STR <LPARSE <REST .REM-STR>>>
48 <COND (<TYPE? .TOKEN ATOM>
49 <COND (<MEMQ .TOKEN '[L /L D /D]>
52 (<MEMQ .TOKEN '[V /V]>
54 (<MEMQ .TOKEN '[G /G]>
57 (<MEMQ .TOKEN '[GC /GC]>
60 (<MEMQ .TOKEN '[I /I]>
63 (<MEMQ .TOKEN '[P /P]>
65 (<MEMQ .TOKEN '[PA /PA]>
67 <SET AUTO-PRECOMP T>)>)
69 <COND (<MEMQ <1 .TOKEN> '[P /P
73 <COND (<MEMQ <1 .TOKEN>
80 (<SET FIL <LEX .JCL-STR <LENGTH .JCL-STR>>>)>)
84 <FUNCTION (VV "AUX" (ST <1 .VV>))
85 #DECL ((VV) <VECTOR [REST STRING]>)
86 <COND (<AND <NOT <EMPTY? .ST>>
93 <SET FIL <ILIST <- <LENGTH .JCL-VEC>
101 <COND (<MEMBER .TOKEN '["L" "-L" "D" "-D"]>
104 (<MEMBER .TOKEN '["V" "-V"]>
106 (<MEMBER .TOKEN '["G" "-G"]>
109 (<MEMBER .TOKEN '["GC" "-GC"]>
112 (<MEMBER .TOKEN '["I" "-I"]>
115 (<MEMBER .TOKEN '["P" "-P"]>
117 (<MEMBER .TOKEN '["PA" "-PA"]>
119 <SET AUTO-PRECOMP T>)
123 <COND (<AND <TYPE? .X ADECL>
143 (<SET FIL (!.JCL-VEC)>)>)>
144 <COND (<NOT .ANY-JCL?>
148 (<=? <1 .FIL> "BOOT">
157 <SET FILLEN <READSTRING .BUF .INCHAN "
\e">>
158 <SET FIL <LEX .BUF .FILLEN>>
166 <COND (<SET DOC <MEMQ <TYI> "YyTt ">> <PRINC " [Listing]"> <CRLF>)
167 (T <PRINC " [No Listing]"> <CRLF>)>)>
168 <COND (<N=? <1 .FIL> "BOOT">
172 <PRINC "Interpreter: ">
173 <COND (<MEMQ <TYI> " YyTt">
174 <PRINC " [Interpreter Code]">
177 (T <SETG INT-MODE <>> <PRINC " [User Code]">)>
180 <COND (<MEMQ <TYI> " YyTt">
183 (T <SETG GC-MODE <>> <PRINC " [Non-GC Code]">)>
186 <PRINC " [Boot mode]">
188 <SETG BOOT-MODE <SETG INT-MODE T>>
190 <COND (<AND <NOT .QUICK?> <NOT ,BOOT-MODE>>
192 <COND (<MEMQ <TYI> " YyTt"> <SETG GLUE T> <PRINC " [Glue]">)
193 (T <PRINC " [No Glue]"> <SETG GLUE <>>)>
195 <COND (<AND <NOT .QUICK?> <NOT ,INT-MODE>>
196 <PRINC "Things to do: ">
198 <COND (<==? <NEXTCHR> <ASCII 27>> <CRLF> <RETURN>)>
200 <COND (<SET CH <CHANNEL-OPEN PARSE <1 .FIL>>>
201 <FILE-MIMOC <CHANNEL-OP .CH NM1> <> <> .DOC !.FIL>
207 <SET CH <SYS-ERR <1 .FIL> .CH T>>
208 <PRINT-MANY .OUTCHAN PRINC "Can't find name of output file: "
209 <1 .CH> "--" <2 .CH>>
217 <DEFINE LEAVE-MIMOC (UN)
219 <COND (<=? .UN "TAA"> <QUIT>)
222 <DEFINE LEX (BUF "OPTIONAL" (LEN <LENGTH .BUF>))
223 #DECL ((BUF) STRING (LEN) FIX)
224 <SET BUF <SUBSTRUC .BUF 0 .LEN <REST .BUF <- <LENGTH .BUF> .LEN>>>>
225 <REPEAT ((L ("")) CHR (LS <>))
228 <PUTREST <REST .L <- <LENGTH .L> 1>> (<STRING .LS>)>)>
230 <COND (<MEMQ <SET CHR <1 .BUF>> " ,
233 <SET LS <SUBSTRUC .LS 0 <- <LENGTH .LS><LENGTH .BUF>>>>
234 <PUTREST <REST .L <- <LENGTH .L> 1>> (.LS)>
238 <SET BUF <REST .BUF>>>>