Machine-Independent MDL for TOPS-20 and VAX.
[pdp10-muddle.git] / mim / development / mim / 20 / io-utils.mima
1
2 #WORD *16053031231*
3 <GFCN \1aT$HANG ("VALUE" ANY "OPTIONAL" ANY) PRED6>
4                     <OPT-DISPATCH 0 %<> OPT4 OPT5>
5 OPT4
6                     <PUSH %<>>
7 OPT5
8                     <TEMP VAL10>
9                     <INTGO>
10                     <LOOP>
11 AGAIN11
12                     <INTGO>
13                     <FRAME '\1aT$EVAL>
14                     <PUSH PRED6>
15                     <CALL '\1aT$EVAL 1 = VAL10>
16                     <TYPE? VAL10 <TYPE-CODE FALSE> + PHRASE13>
17                     <RETURN VAL10>
18                     <DEAD VAL10>
19 PHRASE13
20                     <SETS 'RUNINT -1>
21                     <SYSOP 'WAIT = VAL10>
22                     <SETS 'RUNINT 0>
23                     <JUMP + AGAIN11>
24                     <END \1aT$HANG>
25 #WORD *14006672442*
26 <GFCN \1aT$JNAME ("VALUE" STRING "OPTIONAL" STRING) NEW6>
27                     <OPT-DISPATCH 0 %<> OPT4 OPT5>
28 OPT4
29                     <PUSH #T$UNBOUND 0>
30 OPT5
31                     <TEMP TS8 WD7:FIX TEMP20 TEMP21>
32                     <INTGO>
33                     <USBLOCK <TYPE-CODE STRING> 6 = TS8 (TYPE STRING)>
34                     <TYPE? NEW6 <TYPE-CODE UNBOUND> - PHRASE11>
35                     <SYSOP 'GETNM (RETURN 1) = WD7>
36                     <LOOP>
37 AGAIN15
38                     <INTGO>
39                     <VEQUAL? WD7 0 + EXIT12 (TYPE FIX)>
40                     <ROT WD7 6 = WD7 (TYPE FIX)>
41                     <AND WD7 #WORD *77* = TEMP20>
42                     <ADD TEMP20 32 = TEMP20 (TYPE FIX)>
43                     <CHTYPE TEMP20 <TYPE-CODE CHARACTER> = TEMP20>
44                     <AND WD7 #WORD *777777777700* = WD7>
45                     <PUTUS TS8 1 TEMP20>
46                     <DEAD TEMP20>
47                     <RESTUS TS8 1 = TS8 (TYPE STRING)>
48                     <JUMP + AGAIN15>
49 EXIT12
50                     <TOPU TS8 = TEMP20>
51                     <LENUS TS8 = TS8 (TYPE FIX)>
52                     <SUB 6 TS8 = TEMP21 (TYPE FIX)>
53                     <DEAD TS8>
54                     <UUBLOCK <TYPE-CODE STRING> TEMP21 = TS8 (TYPE STRING)>
55                     <MOVE-STRING TEMP20 TS8 TEMP21 (NO-OVERLAP T)>
56                     <DEAD TEMP20 TEMP21>
57                     <JUMP + PHRASE23>
58 PHRASE11
59                     <SET WD7 0 (TYPE FIX)>
60                     <SET TS8 0 (TYPE FIX)>
61                     <SET TEMP21 NEW6 (TYPE STRING)>
62                     <LOOP>
63 MAP25
64                     <INTGO>
65                     <EMPUS? TEMP21 + MAPAP28>
66                     <NTHUS TEMP21 1 = TEMP20>
67                     <LSH WD7 6 = WD7 (TYPE FIX)>
68                     <SUB TEMP20 32 = TEMP20 (TYPE FIX)>
69                     <AND TEMP20 #WORD *77* = TEMP20>
70                     <OR WD7 TEMP20 = WD7>
71                     <DEAD TEMP20>
72                     <ADD TS8 1 = TS8 (TYPE FIX)>
73                     <LESS? TS8 6 - MAPAP28 (TYPE FIX)>
74                     <RESTUS TEMP21 1 = TEMP21 (TYPE STRING)>
75                     <JUMP + MAP25>
76 MAPAP28
77                     <SYSOP 'SETNM WD7>
78                     <DEAD WD7>
79                     <SET TS8 NEW6>
80                     <DEAD NEW6>
81 PHRASE23
82                     <IFSYS "TOPS20">
83                     <ADJ -4>
84                     <ENDIF "TOPS20">
85                     <IFSYS "VAX">
86                     <ADJ -4>
87                     <ENDIF "VAX">
88                     <RETURN TS8>
89                     <DEAD TS8>
90                     <END \1aT$JNAME>
91 #WORD *30440230762*
92 <GFCN \1aT$SLEEP ("VALUE" ANY <OR FIX FLOAT> "OPTIONAL" ANY) TM6 PRED7>
93                     <OPT-DISPATCH 1 %<> OPT4 OPT5>
94 OPT4
95                     <PUSH %<>>
96 OPT5
97                     <TEMP RTM8:FIX TEMP11 STIME15:FIX>
98                     <INTGO>
99                     <TYPE? TM6 <TYPE-CODE FLOAT> - PHRASE10>
100                     <MULF TM6 1000.0 = TEMP11 (TYPE FLOAT)>
101                     <DEAD TM6>
102                     <FIX TEMP11 = RTM8 (TYPE FIX)>
103                     <DEAD TEMP11>
104                     <JUMP + COND9>
105 PHRASE10
106                     <MUL TM6 1000 = RTM8 (TYPE FIX)>
107                     <DEAD TM6>
108 COND9
109                     <LOOP>
110 AGAIN16
111                     <INTGO>
112                     <FRAME '\1aT$EVAL>
113                     <PUSH PRED7>
114                     <CALL '\1aT$EVAL 1 = TEMP11>
115                     <TYPE? TEMP11 <TYPE-CODE FALSE> + PHRASE18>
116                     <RETURN TEMP11>
117                     <DEAD TEMP11>
118 PHRASE18
119                     <SYSOP 'TIME-JSYS (RETURN 1) = STIME15>
120                     <SETS 'RUNINT -1>
121                     <SYSOP 'DISMS RTM8 = TEMP11>
122                     <SETS 'RUNINT 0>
123                     <SYSOP 'TIME-JSYS (RETURN 1) = TEMP11>
124                     <SUB TEMP11 STIME15 = TEMP11 (TYPE FIX)>
125                     <DEAD STIME15>
126                     <SUB RTM8 TEMP11 = RTM8 (TYPE FIX)>
127                     <DEAD TEMP11>
128                     <GRTR? RTM8 0 + AGAIN16 (TYPE FIX)>
129                     <RETURN 'T>
130                     <END \1aT$SLEEP>
131 #WORD *14077535133*
132 <GFCN \1aX$INIT-ENV ("VALUE" ATOM)>
133                     <TEMP TEMP7>
134                     <INTGO>
135                     <NTHR 'T$HOME-STRUC 1 = TEMP7 (RECORD-TYPE ATOM) (BRANCH-FALSE + TAG6)>
136                     <TYPE? TEMP7 <TYPE-CODE FALSE> + TAG6>
137                     <NTHR TEMP7 1 = TEMP7 (RECORD-TYPE GBIND)>
138                     <TYPE? TEMP7 <TYPE-CODE UNBOUND> - PHRASE5>
139                     <DEAD TEMP7>
140 TAG6
141                     <SETG 'T$HOME-STRUC "MIM">
142 PHRASE5
143                     <RETURN 'T>
144                     <END \1aX$INIT-ENV>
145 #WORD *12424054644*
146 <GFCN \1aT$SYS-ERR ("VALUE" FALSE STRING <FALSE FIX> "OPTIONAL" <OR ATOM FALSE>) NAME6 ERR7 NAME?8>
147                     <OPT-DISPATCH 2 %<> OPT4 OPT5>
148 OPT4
149                     <PUSH 'T>
150 OPT5
151                     <TEMP TEMP10:FALSE>
152                     <INTGO>
153                     <FRAME '\1aI$STD-ERROR>
154                     <PUSH NAME6>
155                     <DEAD NAME6>
156                     <PUSH ERR7>
157                     <DEAD ERR7>
158                     <PUSH NAME?8>
159                     <DEAD NAME?8>
160                     <CALL '\1aI$STD-ERROR 3 = TEMP10>
161                     <RETURN TEMP10>
162                     <DEAD TEMP10>
163                     <END \1aT$SYS-ERR>
164 #WORD *25747440666*
165 <GFCN \1aT$TRANSLATE-ERROR ("VALUE" STRING <FALSE FIX>) ERR4>
166                     <TEMP NS7 TEMP12 TEMP8>
167                     <INTGO>
168                     <GVAL 'I$NAMSTR = NS7>
169                     <IFSYS "VAX">
170                     <NTHL ERR4 1 = TEMP12 (TYPE FIX)>
171                     <PUTBITS TEMP12 16 16 131072 = TEMP8>
172                     <ENDIF "VAX">
173                     <IFSYS "TOPS20">
174                     <NTHL ERR4 1 = TEMP12 (TYPE FIX)>
175                     <DEAD ERR4>
176                     <PUTBITS TEMP12 18 18 131072 = TEMP8>
177                     <ENDIF "TOPS20">
178                     <IFSYS "VAX">
179                     <LENUS NS7 = TEMP12 (TYPE FIX)>
180                     <SUB 0 TEMP12 = TEMP12 (TYPE FIX)>
181                     <PUTBITS 0 16 16 TEMP12 = TEMP12>
182                     <ENDIF "VAX">
183                     <IFSYS "TOPS20">
184                     <LENUS NS7 = TEMP12 (TYPE FIX)>
185                     <SUB 0 TEMP12 = TEMP12 (TYPE FIX)>
186                     <PUTBITS 0 18 18 TEMP12 = TEMP12>
187                     <ENDIF "TOPS20">
188                     <SYSOP 'ERSTR NS7 TEMP8 TEMP12 = TEMP12>
189                     <DEAD TEMP8>
190                     <UUBLOCK <TYPE-CODE STRING> TEMP12 = TEMP8 (TYPE STRING)>
191                     <MOVE-STRING NS7 TEMP8 TEMP12 (NO-OVERLAP %<>)>
192                     <DEAD NS7 TEMP12>
193                     <RETURN TEMP8>
194                     <DEAD TEMP8>
195                     <END \1aT$TRANSLATE-ERROR>
196 #WORD *22156062620*
197 <GFCN \1aI$STD-ERROR ("VALUE" FALSE STRING <FALSE FIX> "OPTIONAL" ANY) NAME6 ERR7 NAME?8>
198                     <OPT-DISPATCH 2 %<> OPT4 OPT5>
199 OPT4
200                     <PUSH 'T>
201 OPT5
202                     <TEMP NS9 ES11:STRING NM118 NM220 DEV22 SNM24>
203                     <INTGO>
204                     <USBLOCK <TYPE-CODE STRING> 500 = NS9 (TYPE STRING)>
205                     <FRAME '\1aT$TRANSLATE-ERROR>
206                     <PUSH ERR7>
207                     <CALL '\1aT$TRANSLATE-ERROR 1 = ES11>
208                     <TYPE? NAME?8 <TYPE-CODE FALSE> + PHRASE29>
209                     <DEAD NAME?8>
210                     <FRAME '\1aX$VALUE?>
211                     <PUSH 'NM1>
212                     <CALL '\1aX$VALUE? 1 = NM118>
213                     <FRAME '\1aX$VALUE?>
214                     <PUSH 'NM2>
215                     <CALL '\1aX$VALUE? 1 = NM220>
216                     <FRAME '\1aX$VALUE?>
217                     <PUSH 'DEV>
218                     <CALL '\1aX$VALUE? 1 = DEV22>
219                     <FRAME '\1aX$VALUE?>
220                     <PUSH 'SNM>
221                     <CALL '\1aX$VALUE? 1 = SNM24>
222                     <SYSOP 'GTJFN-L NAME6 8388608 34359607295 DEV22 SNM24 NM118 NM220 0 0 0 = NM118>
223                     <DEAD DEV22 SNM24 NM220>
224                     <TYPE? NM118 <TYPE-CODE FALSE> + PHRASE29>
225                     <SYSOP 'JFNS NS9 NM118 0 0 = NM220>
226                     <SYSOP 'RLJFN NM118>
227                     <DEAD NM118>
228                     <UUBLOCK <TYPE-CODE STRING> NM220 = NAME6 (TYPE STRING)>
229                     <MOVE-STRING NS9 NAME6 NM220 (NO-OVERLAP T)>
230                     <DEAD NS9 NM220>
231 PHRASE29
232                     <CONS NAME6 ERR7 = NS9>
233                     <DEAD NAME6 ERR7>
234                     <CONS ES11 NS9 = NS9>
235                     <DEAD ES11>
236                     <CHTYPE NS9 <TYPE-CODE FALSE> = NS9>
237                     <IFSYS "TOPS20">
238                     <ADJ -102>
239                     <ENDIF "TOPS20">
240                     <IFSYS "VAX">
241                     <ADJ -127>
242                     <ENDIF "VAX">
243                     <RETURN NS9>
244                     <DEAD NS9>
245                     <END \1aI$STD-ERROR>
246 #WORD *32351756627*
247 <GFCN \1aT$GET-JFN ("VALUE" <OR FALSE FIX> STRING FIX FIX <OR ATOM FALSE>) NAME4 MODE5 BSZ6 NEW?7>
248                     <TEMP JFN8 TEMP15>
249                     <INTGO>
250                     <TYPE? NEW?7 <TYPE-CODE FALSE> + PHRASE11>
251                     <DEAD NEW?7>
252                     <SYSOP 'GTJFN-S-S -34359476224 NAME4 = JFN8>
253                     <DEAD NAME4>
254                     <JUMP + PHRASE12>
255 PHRASE11
256                     <SYSOP 'GTJFN-S-S 8590196736 NAME4 = JFN8>
257                     <DEAD NAME4>
258 PHRASE12
259                     <SET TEMP15 JFN8>
260                     <TYPE? TEMP15 <TYPE-CODE FALSE> + PHRASE19>
261                     <LSH BSZ6 30 = TEMP15 (TYPE FIX)>
262                     <DEAD BSZ6>
263                     <OR TEMP15 MODE5 = TEMP15>
264                     <DEAD MODE5>
265                     <SYSOP 'OPENF JFN8 TEMP15 = TEMP15>
266                     <TYPE? TEMP15 <TYPE-CODE FALSE> + PHRASE17>
267                     <RETURN JFN8>
268                     <DEAD JFN8>
269 PHRASE17
270                     <SYSOP 'RLJFN JFN8>
271                     <DEAD JFN8>
272 PHRASE19
273                     <RETURN TEMP15>
274                     <DEAD TEMP15>
275                     <END \1aT$GET-JFN>
276 #WORD *37011316026*
277 <GFCN \1aT$GET-BYTE-COUNT ("VALUE" FIX FIX FIX) JFN4 BSZ5>
278                     <TEMP OBC6:FIX OBS7 TEMP18:FIX>
279                     <INTGO>
280                     <SYSOP 'SIZEF JFN4 (RETURN 2) = OBC6>
281                     <SYSOP 'GTFDB JFN4 262153 5 (RETURN 5) = OBS7>
282                     <DEAD JFN4>
283                     <AND OBS7 #WORD *7700000000* = OBS7>
284                     <LSH OBS7 -24 = OBS7 (TYPE FIX)>
285                     <VEQUAL? OBS7 0 - PHRASE11 (TYPE FIX)>
286                     <SET OBS7 36 (TYPE FIX)>
287 PHRASE11
288                     <VEQUAL? OBS7 BSZ5 - PHRASE15 (TYPE FIX)>
289                     <RETURN OBC6>
290                     <DEAD OBC6>
291 PHRASE15
292                     <DIV 36 OBS7 = OBS7 (TYPE FIX)>
293                     <SUB OBS7 1 = TEMP18 (TYPE FIX)>
294                     <ADD OBC6 TEMP18 = OBC6 (TYPE FIX)>
295                     <DEAD TEMP18>
296                     <DIV OBC6 OBS7 = OBC6 (TYPE FIX)>
297                     <DEAD OBS7>
298                     <DIV 36 BSZ5 = TEMP18 (TYPE FIX)>
299                     <DEAD BSZ5>
300                     <MUL OBC6 TEMP18 = OBS7 (TYPE FIX)>
301                     <DEAD OBC6 TEMP18>
302                     <RETURN OBS7>
303                     <DEAD OBS7>
304                     <END \1aT$GET-BYTE-COUNT>
305 #WORD *34650165305*
306 <GFCN \1aT$CLOSE-OPEN ("VALUE" ANY FIX FIX FIX) JFN4 MODE5 BSZ6>
307                     <TEMP TEMP9>
308                     <INTGO>
309                     <OR JFN4 #WORD *400000000000* = TEMP9>
310                     <SYSOP 'CLOSF TEMP9 = TEMP9>
311                     <TYPE? TEMP9 <TYPE-CODE FALSE> + BOOL7>
312                     <LSH BSZ6 30 = TEMP9 (TYPE FIX)>
313                     <DEAD BSZ6>
314                     <OR TEMP9 MODE5 = TEMP9>
315                     <DEAD MODE5>
316                     <SYSOP 'OPENF JFN4 TEMP9 = TEMP9>
317                     <DEAD JFN4>
318 BOOL7
319                     <RETURN TEMP9>
320                     <DEAD TEMP9>
321                     <END \1aT$CLOSE-OPEN>
322 #WORD *16132021023*
323 <GFCN \1aT$GET-DEVICE-TYPE ("VALUE" <OR FALSE FIX> FIX) JFN4>
324                     <TEMP VAL5 TEMP8>
325                     <INTGO>
326                     <SYSOP 'DVCHR JFN4 (RETURN 2) = VAL5>
327                     <DEAD JFN4>
328                     <SET TEMP8 VAL5>
329                     <TYPE? TEMP8 <TYPE-CODE FALSE> + PHRASE7>
330                     <LSH VAL5 -18 = VAL5 (TYPE FIX)>
331                     <AND VAL5 #WORD *777* = TEMP8>
332                     <DEAD VAL5>
333 PHRASE7
334                     <RETURN TEMP8>
335                     <DEAD TEMP8>
336                     <END \1aT$GET-DEVICE-TYPE>
337 #WORD *1675311017*
338                     <GFCN \1aX$IO-INIT ("VALUE" <OR ATOM FALSE>)>
339                     <TEMP TEMP5 TEMP6>
340                     <INTGO>
341                     <SETG 'T$MUDDLE-SYSTEM "T">
342                     <PUSH !\\r>
343                     <PUSH !\
344 >
345                     <UBLOCK <TYPE-CODE STRING> 2 = TEMP5 (TYPE STRING)>
346                     <SETG 'CRLF-STRING TEMP5>
347                     <DEAD TEMP5>
348                     <SETG 'CRLF-LENGTH 2>
349                     <UUBLOCK <TYPE-CODE STRING> 10 = TEMP5>
350                     <SET TEMP6 TEMP5>
351                     <LOOP (TEMP6 VALUE LENGTH)>
352 ISTR7
353                     <EMPUS? TEMP6 + ISTRE8>
354                     <PUTUS TEMP6 1 !\   >
355                     <RESTUS TEMP6 1 = TEMP6>
356                     <JUMP + ISTR7>
357 ISTRE8
358                     <SETG 'TABSTR TEMP5>
359                     <DEAD TEMP5>
360                     <UUBLOCK <TYPE-CODE STRING> 7 = TEMP5>
361                     <SET TEMP6 TEMP5>
362                     <LOOP (TEMP6 VALUE LENGTH)>
363 ISTR9
364                     <EMPUS? TEMP6 + ISTRE10>
365                     <PUTUS TEMP6 1 !\ >
366                     <RESTUS TEMP6 1 = TEMP6>
367                     <JUMP + ISTR9>
368 ISTRE10
369                     <SETG 'SPACESTR TEMP5>
370                     <DEAD TEMP5>
371                     <SETG 'I$RDBLEN 1280>
372                     <SETG 'T$NM2 "MUD">
373                     <PUSH 0>
374                     <PUSH 'T$DISK>
375                     <PUSH 2>
376                     <PUSH 'T$TWAY>
377                     <PUSH 7>
378                     <PUSH 'T$TWAY>
379                     <PUSH 8>
380                     <PUSH 'T$TWAY>
381                     <PUSH 9>
382                     <PUSH 'T$TWAY>
383                     <PUSH 10>
384                     <PUSH 'T$TTY>
385                     <PUSH 'T>
386                     <PUSH 'T>
387                     <UBLOCK <TYPE-CODE VECTOR> 3 = STACK>
388                     <PUSH 11>
389                     <PUSH 'T$TTY>
390                     <PUSH 'T>
391                     <PUSH 'T>
392                     <UBLOCK <TYPE-CODE VECTOR> 3 = STACK>
393                     <PUSH 13>
394                     <PUSH 'T$TWAY>
395                     <PUSH %<>>
396                     <PUSH %<>>
397                     <UBLOCK <TYPE-CODE VECTOR> 3 = STACK>
398                     <PUSH 14>
399                     <PUSH 'T$TWAY>
400                     <PUSH 'T>
401                     <PUSH 'T>
402                     <UBLOCK <TYPE-CODE VECTOR> 3 = STACK>
403                     <UBLOCK <TYPE-CODE VECTOR> 18 = TEMP5>
404                     <SETG 'T$DEVVEC TEMP5>
405                     <DEAD TEMP5>
406                     <FRAME '\1aT$ISTRING>
407                     <PUSH 100>
408                     <CALL '\1aT$ISTRING 1 = TEMP5>
409                     <SETG 'I$NAMSTR TEMP5>
410                     <DEAD TEMP5>
411                     <SETG 'I$CHANNEL-TYPES ()>
412                     <FRAME '\1aT$NEW-CHANNEL-TYPE>
413                     <PUSH 'T$DEFAULT>
414                     <PUSH %<>>
415                     <PUSH 'T$NAME>
416                     <PUSH 'X$DEF-NAME>
417                     <PUSH 'T$NM1>
418                     <PUSH 'X$DEF-NM1>
419                     <PUSH 'T$NM2>
420                     <PUSH 'X$DEF-NM2>
421                     <PUSH 'T$DEV>
422                     <PUSH 'X$DEF-DEV>
423                     <PUSH 'T$SNM>
424                     <PUSH 'X$DEF-SNM>
425                     <PUSH 'T$SHORT-NAME>
426                     <PUSH 'X$DEF-SHORT-NAME>
427                     <PUSH 'T$FLUSH>
428                     <PUSH 'X$DEF-FLUSH>
429                     <PUSH 'T$READ-DATE>
430                     <PUSH 'X$DEF-HACK-DATE>
431                     <PUSH 'T$WRITE-DATE>
432                     <PUSH 'X$DEF-HACK-DATE>
433                     <PUSH 'T$GET-MODE>
434                     <PUSH 'X$DEF-GET-MODE>
435                     <PUSH 'T$GET-BYTE-SIZE>
436                     <PUSH 'X$DEF-GET-BYTE-SIZE>
437                     <CALL '\1aT$NEW-CHANNEL-TYPE 24>
438                     <FRAME '\1aT$NEW-CHANNEL-TYPE>
439                     <PUSH 'T$DISK>
440                     <PUSH 'T$DEFAULT>
441                     <PUSH 'T$FILE-HANDLE>
442                     <PUSH 'X$DISK-FILE-HANDLE>
443                     <PUSH 'T$QUERY>
444                     <PUSH 'X$DISK-QUERY>
445                     <PUSH 'T$OPEN>
446                     <PUSH 'X$DISK-OPEN>
447                     <PUSH 'T$CLOSE>
448                     <PUSH 'X$DISK-CLOSE>
449                     <PUSH 'T$FLUSH>
450                     <PUSH 'X$DISK-FLUSH>
451                     <PUSH 'T$READ-BYTE>
452                     <PUSH 'X$DISK-READ-BYTE>
453                     <PUSH 'T$WRITE-BYTE>
454                     <PUSH 'X$DISK-WRITE-BYTE>
455                     <PUSH 'T$READ-BUFFER>
456                     <PUSH 'X$DISK-READ-BUFFER>
457                     <PUSH 'T$WRITE-BUFFER>
458                     <PUSH 'X$DISK-WRITE-BUFFER>
459                     <PUSH 'T$ACCESS>
460                     <PUSH 'X$DISK-ACCESS>
461                     <PUSH 'T$BUFOUT>
462                     <PUSH 'X$DISK-BUFOUT>
463                     <PUSH 'T$FILE-LENGTH>
464                     <PUSH 'X$DISK-FILE-LENGTH>
465                     <PUSH 'T$PRINT-DATA>
466                     <PUSH 'X$DISK-PRINT-DATA>
467                     <CALL '\1aT$NEW-CHANNEL-TYPE 28>
468                     <FRAME '\1aT$NEW-CHANNEL-TYPE>
469                     <PUSH 'I$UNPARSE>
470                     <PUSH %<>>
471                     <PUSH 'T$WRITE-BUFFER>
472                     <PUSH 'X$UP-WRITE-BUF>
473                     <PUSH 'T$WRITE-BYTE>
474                     <PUSH 'X$UP-WRITE-BYTE>
475                     <PUSH 'T$READ-BYTE>
476                     <PUSH 'X$UP-READ-BYTE>
477                     <CALL '\1aT$NEW-CHANNEL-TYPE 8 = TEMP5>
478                     <RETURN TEMP5>
479                     <DEAD TEMP5>
480                     <END \1aX$IO-INIT>
481
482 #WORD *21673533247*
483 <GFCN \1aX$IO-LOAD ("VALUE" ANY FIX) BOOTYP4>
484                     <TEMP TEMP7>
485                     <INTGO>
486                     <FRAME '\1aX$RESET>
487                     <PUSH 'I$FLATSIZE>
488                     <PUSH %<>>
489                     <PUSH %<>>
490                     <PUSH 'T>
491                     <PUSH 0>
492                     <PUSH %<>>
493                     <UBLOCK <TYPE-CODE VECTOR> 6 = TEMP7>
494                     <CHTYPE TEMP7 <TYPE-CODE CHANNEL> = STACK>
495                     <DEAD TEMP7>
496                     <CALL '\1aX$RESET 1 = TEMP7>
497                     <SETG 'M$$FLATCHAN TEMP7>
498                     <DEAD TEMP7>
499                     <FRAME '\1aX$RESET>
500                     <PUSH 'I$UNPARSE>
501                     <PUSH %<>>
502                     <PUSH %<>>
503                     <PUSH 'T>
504                     <PUSH "">
505                     <PUSH %<>>
506                     <UBLOCK <TYPE-CODE VECTOR> 6 = TEMP7>
507                     <CHTYPE TEMP7 <TYPE-CODE CHANNEL> = STACK>
508                     <DEAD TEMP7>
509                     <CALL '\1aX$RESET 1 = TEMP7>
510                     <SETG 'M$$INTCHAN TEMP7>
511                     <DEAD TEMP7>
512                     <LESS? BOOTYP4 0 + PHRASE11 (TYPE FIX)>
513                     <FRAME '\1aT$FILE-EXISTS?>
514                     <PUSH "<MIM.20>CHANNEL-OPERATION.MBIN">
515                     <CALL '\1aT$FILE-EXISTS? 1 = TEMP7>
516                     <TYPE? TEMP7 <TYPE-CODE FALSE> + PHRASE11>
517                     <DEAD TEMP7>
518                     <FRAME '\1aT$FLOAD>
519                     <PUSH "<MIM.20>CHANNEL-OPERATION.MBIN">
520                     <CALL '\1aT$FLOAD 1>
521                     <JUMP + COND10>
522 PHRASE11
523                     <FRAME '\1aT$FLOAD>
524                     <PUSH "<MIM.20>CHANNEL-OPERATION.MSUBR">
525                     <CALL '\1aT$FLOAD 1>
526 COND10
527                     <LESS? BOOTYP4 0 + PHRASE19 (TYPE FIX)>
528                     <FRAME '\1aT$FILE-EXISTS?>
529                     <PUSH "<MIM.20>TWAY.MBIN">
530                     <CALL '\1aT$FILE-EXISTS? 1 = TEMP7>
531                     <TYPE? TEMP7 <TYPE-CODE FALSE> + PHRASE19>
532                     <DEAD TEMP7>
533                     <FRAME '\1aT$FLOAD>
534                     <PUSH "<MIM.20>TWAY.MBIN">
535                     <CALL '\1aT$FLOAD 1>
536                     <JUMP + COND18>
537 PHRASE19
538                     <FRAME '\1aT$FLOAD>
539                     <PUSH "<MIM.20>TWAY.MSUBR">
540                     <CALL '\1aT$FLOAD 1>
541 COND18
542                     <LESS? BOOTYP4 0 + PHRASE27 (TYPE FIX)>
543                     <DEAD BOOTYP4>
544                     <FRAME '\1aT$FILE-EXISTS?>
545                     <PUSH "<MIM.20>TTY.MBIN">
546                     <CALL '\1aT$FILE-EXISTS? 1 = TEMP7>
547                     <TYPE? TEMP7 <TYPE-CODE FALSE> + PHRASE27>
548                     <DEAD TEMP7>
549                     <FRAME '\1aT$FLOAD>
550                     <PUSH "<MIM.20>TTY.MBIN">
551                     <CALL '\1aT$FLOAD 1 = TEMP7>
552                     <RETURN TEMP7>
553                     <DEAD TEMP7>
554 PHRASE27
555                     <FRAME '\1aT$FLOAD>
556                     <PUSH "<MIM.20>TTY.MSUBR">
557                     <CALL '\1aT$FLOAD 1 = TEMP7>
558                     <RETURN TEMP7>
559                     <DEAD TEMP7>
560                     <END \1aX$IO-LOAD>
561 #WORD *32053074013*
562 <GFCN \1aT$RENAME ("VALUE" <OR FALSE STRING> STRING STRING) OLD4 NEW5>
563                     <TEMP NM16 NM27 DEV8 SNM9 (FOLD10 %<>) (FNEW11 %<>) NS14 VAL12>
564                     <INTGO>
565                     <FRAME '\1aX$VALUE?>
566                     <PUSH 'T$NM1>
567                     <CALL '\1aX$VALUE? 1 = NM16>
568                     <FRAME '\1aX$VALUE?>
569                     <PUSH 'T$NM2>
570                     <CALL '\1aX$VALUE? 1 = NM27>
571                     <FRAME '\1aX$VALUE?>
572                     <PUSH 'T$DEV>
573                     <CALL '\1aX$VALUE? 1 = DEV8>
574                     <FRAME '\1aX$VALUE?>
575                     <PUSH 'T$SNM>
576                     <CALL '\1aX$VALUE? 1 = SNM9>
577                     <USBLOCK <TYPE-CODE STRING> 500 = NS14 (TYPE STRING)>
578                     <FRAME '\1aI$DO-OPEN>
579                     <PUSH 8589934592>
580                     <PUSH OLD4>
581                     <PUSH DEV8>
582                     <PUSH SNM9>
583                     <PUSH NM16>
584                     <PUSH NM27>
585                     <CALL '\1aI$DO-OPEN 6 = FOLD10>
586                     <SET VAL12 FOLD10>
587                     <TYPE? VAL12 <TYPE-CODE FALSE> + BOOL21>
588                     <FRAME '\1aI$DO-OPEN>
589                     <PUSH -0>
590                     <PUSH NEW5>
591                     <DEAD NEW5>
592                     <PUSH DEV8>
593                     <DEAD DEV8>
594                     <PUSH SNM9>
595                     <DEAD SNM9>
596                     <PUSH NM16>
597                     <DEAD NM16>
598                     <PUSH NM27>
599                     <DEAD NM27>
600                     <CALL '\1aI$DO-OPEN 6 = FNEW11>
601                     <SET VAL12 FNEW11>
602 BOOL21
603                     <TYPE? VAL12 <TYPE-CODE FALSE> + PHRASE25>
604                     <SYSOP 'RNAMF FOLD10 FNEW11 = VAL12>
605                     <TYPE? VAL12 <TYPE-CODE FALSE> + PHRASE25>
606                     <SYSOP 'JFNS NS14 FNEW11 0 0 = NM16>
607                     <SYSOP 'RLJFN FNEW11>
608                     <UUBLOCK <TYPE-CODE STRING> NM16 = NEW5 (TYPE STRING)>
609                     <MOVE-STRING NS14 NEW5 NM16 (NO-OVERLAP T)>
610                     <DEAD NS14 NM16>
611                     <SET VAL12 NEW5>
612                     <DEAD NEW5>
613 PHRASE25
614                     <TYPE? VAL12 <TYPE-CODE FALSE> - PHRASE27>
615                     <TYPE? FOLD10 <TYPE-CODE FALSE> + PHRASE29>
616                     <SYSOP 'RLJFN FOLD10>
617                     <DEAD FOLD10>
618 PHRASE29
619                     <TYPE? FNEW11 <TYPE-CODE FALSE> + PHRASE31>
620                     <SYSOP 'RLJFN FNEW11>
621                     <DEAD FNEW11>
622 PHRASE31
623                     <FRAME '\1aI$STD-ERROR>
624                     <PUSH OLD4>
625                     <DEAD OLD4>
626                     <PUSH VAL12>
627                     <DEAD VAL12>
628                     <CALL '\1aI$STD-ERROR 2 = VAL12>
629 PHRASE27
630                     <IFSYS "TOPS20">
631                     <ADJ -102>
632                     <ENDIF "TOPS20">
633                     <IFSYS "VAX">
634                     <ADJ -127>
635                     <ENDIF "VAX">
636                     <RETURN VAL12>
637                     <DEAD VAL12>
638                     <END \1aT$RENAME>
639 #WORD *10357763734*
640 <GFCN \1aT$DELFILE ("VALUE" <OR FALSE STRING> STRING "OPTIONAL" <OR STRING FIX> <OR STRING FIX> <OR STRING FIX> <OR STRING FIX>) NM9 NM110 NM211 DEV12 SNM13>
641                     <OPT-DISPATCH 1 %<> OPT4 OPT5 OPT6 OPT7 OPT8>
642 OPT4
643                     <PUSH #T$UNBOUND 0>
644 OPT5
645                     <PUSH #T$UNBOUND 0>
646 OPT6
647                     <PUSH #T$UNBOUND 0>
648 OPT7
649                     <PUSH #T$UNBOUND 0>
650 OPT8
651                     <TEMP FID14 VAL15>
652                     <INTGO>
653                     <TYPE? NM110 <TYPE-CODE UNBOUND> - TAG16>
654                     <FRAME '\1aX$VALUE?>
655                     <PUSH 'T$NM1>
656                     <CALL '\1aX$VALUE? 1 = NM110>
657 TAG16
658                     <TYPE? NM211 <TYPE-CODE UNBOUND> - TAG19>
659                     <FRAME '\1aX$VALUE?>
660                     <PUSH 'T$NM2>
661                     <CALL '\1aX$VALUE? 1 = NM211>
662 TAG19
663                     <TYPE? DEV12 <TYPE-CODE UNBOUND> - TAG22>
664                     <FRAME '\1aX$VALUE?>
665                     <PUSH 'T$DEV>
666                     <CALL '\1aX$VALUE? 1 = DEV12>
667 TAG22
668                     <TYPE? SNM13 <TYPE-CODE UNBOUND> - TAG25>
669                     <FRAME '\1aX$VALUE?>
670                     <PUSH 'T$SNM>
671                     <CALL '\1aX$VALUE? 1 = SNM13>
672 TAG25
673                     <FRAME '\1aI$DO-OPEN>
674                     <PUSH 8589934592>
675                     <PUSH NM9>
676                     <PUSH DEV12>
677                     <DEAD DEV12>
678                     <PUSH SNM13>
679                     <DEAD SNM13>
680                     <PUSH NM110>
681                     <DEAD NM110>
682                     <PUSH NM211>
683                     <DEAD NM211>
684                     <CALL '\1aI$DO-OPEN 6 = FID14>
685                     <SET VAL15 FID14>
686                     <TYPE? VAL15 <TYPE-CODE FALSE> + PHRASE29>
687                     <SYSOP 'DELF FID14 = VAL15>
688 PHRASE29
689                     <TYPE? VAL15 <TYPE-CODE FALSE> - PHRASE32>
690                     <TYPE? FID14 <TYPE-CODE FALSE> + PHRASE34>
691                     <SYSOP 'RLJFN FID14>
692                     <DEAD FID14>
693 PHRASE34
694                     <FRAME '\1aI$STD-ERROR>
695                     <PUSH NM9>
696                     <DEAD NM9>
697                     <PUSH VAL15>
698                     <DEAD VAL15>
699                     <CALL '\1aI$STD-ERROR 2 = FID14>
700                     <RETURN FID14>
701                     <DEAD FID14>
702 PHRASE32
703                     <RETURN NM9>
704                     <DEAD NM9>
705                     <END \1aT$DELFILE>
706 #WORD *23441447624*
707 <GFCN \1aT$FILE-EXISTS? ("VALUE" <OR ATOM FALSE> STRING "OPTIONAL" <OR STRING FIX> <OR STRING FIX> <OR STRING FIX> <OR STRING FIX>) NAME9 NM110 NM211 DEV12 SNM13>
708                     <OPT-DISPATCH 1 %<> OPT4 OPT5 OPT6 OPT7 OPT8>
709 OPT4
710                     <PUSH #T$UNBOUND 0>
711 OPT5
712                     <PUSH #T$UNBOUND 0>
713 OPT6
714                     <PUSH #T$UNBOUND 0>
715 OPT7
716                     <PUSH #T$UNBOUND 0>
717 OPT8
718                     <TEMP FID14>
719                     <INTGO>
720                     <TYPE? NM110 <TYPE-CODE UNBOUND> - TAG15>
721                     <FRAME '\1aX$VALUE?>
722                     <PUSH 'T$NM1>
723                     <CALL '\1aX$VALUE? 1 = NM110>
724 TAG15
725                     <TYPE? NM211 <TYPE-CODE UNBOUND> - TAG18>
726                     <FRAME '\1aX$VALUE?>
727                     <PUSH 'T$NM2>
728                     <CALL '\1aX$VALUE? 1 = NM211>
729 TAG18
730                     <TYPE? DEV12 <TYPE-CODE UNBOUND> - TAG21>
731                     <FRAME '\1aX$VALUE?>
732                     <PUSH 'T$DEV>
733                     <CALL '\1aX$VALUE? 1 = DEV12>
734 TAG21
735                     <TYPE? SNM13 <TYPE-CODE UNBOUND> - TAG24>
736                     <FRAME '\1aX$VALUE?>
737                     <PUSH 'T$SNM>
738                     <CALL '\1aX$VALUE? 1 = SNM13>
739 TAG24
740                     <FRAME '\1aI$DO-OPEN>
741                     <PUSH 8589934592>
742                     <PUSH NAME9>
743                     <PUSH DEV12>
744                     <DEAD DEV12>
745                     <PUSH SNM13>
746                     <DEAD SNM13>
747                     <PUSH NM110>
748                     <DEAD NM110>
749                     <PUSH NM211>
750                     <DEAD NM211>
751                     <CALL '\1aI$DO-OPEN 6 = FID14>
752                     <TYPE? FID14 <TYPE-CODE FALSE> + PHRASE28>
753                     <SYSOP 'RLJFN FID14>
754                     <DEAD FID14>
755                     <RETURN 'T>
756 PHRASE28
757                     <FRAME '\1aI$STD-ERROR>
758                     <PUSH NAME9>
759                     <DEAD NAME9>
760                     <PUSH FID14>
761                     <DEAD FID14>
762                     <CALL '\1aI$STD-ERROR 2 = FID14>
763                     <RETURN FID14>
764                     <DEAD FID14>
765                     <END \1aT$FILE-EXISTS?>
766 #WORD *14507655772*
767 <GFCN \1aI$DO-OPEN ("VALUE" ANY FIX STRING <OR STRING FIX> <OR STRING FIX> <OR STRING FIX> <OR STRING FIX>) MODE4 NAME5 DEV6 SNM7 NM18 NM29>
768                     <TEMP TEMP10>
769                     <INTGO>
770                     <SYSOP 'GTJFN-L NAME5 MODE4 34359607295 DEV6 SNM7 NM18 NM29 0 0 0 = TEMP10>
771                     <DEAD NAME5 MODE4 DEV6 SNM7 NM18 NM29>
772                     <RETURN TEMP10>
773                     <DEAD TEMP10>
774                     <END \1aI$DO-OPEN>
775 #WORD *25022365705*
776 <GFCN \1aT$GEN-OPEN ("VALUE" ANY STRING "OPTIONAL" STRING STRING <OR ATOM FALSE VECTOR>) NAME8 MODE9 BSZ10 DEVNAM11>
777                     <OPT-DISPATCH 1 %<> OPT4 OPT5 OPT6 OPT7>
778 OPT4
779                     <PUSH "READ">
780 OPT5
781                     <PUSH "ASCII">
782 OPT6
783                     <PUSH %<>>
784 OPT7
785                     <TEMP (NEW?12 %<>) DEV16 SNM17 NM118 NM219 NS20 TEMP31 TEMP32 TEMP33 TEMP34 TEMP35>
786                     <INTGO>
787                     <FRAME '\1aX$VALUE?>
788                     <PUSH 'DEV>
789                     <CALL '\1aX$VALUE? 1 = DEV16>
790                     <FRAME '\1aX$VALUE?>
791                     <PUSH 'SNM>
792                     <CALL '\1aX$VALUE? 1 = SNM17>
793                     <FRAME '\1aX$VALUE?>
794                     <PUSH 'NM1>
795                     <CALL '\1aX$VALUE? 1 = NM118>
796                     <FRAME '\1aX$VALUE?>
797                     <PUSH 'NM2>
798                     <CALL '\1aX$VALUE? 1 = NM219>
799                     <USBLOCK <TYPE-CODE STRING> 500 = NS20 (TYPE STRING)>
800                     <IFCAN "STRING-EQUAL?">
801                     <STRING-EQUAL? MODE9 "CREATE" - PHRASE30>
802                     <ENDIF "STRING-EQUAL?">
803                     <IFCANNOT "STRING-EQUAL?">
804                     <SET TEMP31 MODE9>
805                     <SET TEMP32 "CREATE" (TYPE STRING)>
806                     <LENUS TEMP31 = TEMP33 (TYPE FIX)>
807                     <VEQUAL? TEMP33 6 - PHRASE30>
808                     <LOOP (TEMP31 VALUE LENGTH) (TEMP32 VALUE LENGTH) (TEMP33 VALUE)>
809 TAG36
810                     <NTHUS TEMP31 1 = TEMP34>
811                     <NTHUS TEMP32 1 = TEMP35>
812                     <VEQUAL? TEMP34 TEMP35 - PHRASE30>
813                     <DEAD TEMP34 TEMP35>
814                     <RESTUS TEMP31 1 = TEMP31 (TYPE STRING)>
815                     <RESTUS TEMP32 1 = TEMP32 (TYPE STRING)>
816                     <SUB TEMP33 1 = TEMP33 (TYPE FIX)>
817                     <GRTR? TEMP33 0 + TAG36 (TYPE FIX)>
818                     <ENDIF "STRING-EQUAL?">
819                     <SET NEW?12 'T (TYPE ATOM)>
820 PHRASE30
821                     <FRAME '\1aI$DO-OPEN>
822                     <VEQUAL? NEW?12 0 + PHRASE41>
823                     <DEAD NEW?12>
824                     <SET TEMP32 -0 (TYPE FIX)>
825                     <JUMP + PHRASE42>
826 PHRASE41
827                     <SET TEMP32 8589934592 (TYPE FIX)>
828 PHRASE42
829                     <PUSH TEMP32>
830                     <DEAD TEMP32>
831                     <PUSH NAME8>
832                     <PUSH DEV16>
833                     <DEAD DEV16>
834                     <PUSH SNM17>
835                     <DEAD SNM17>
836                     <PUSH NM118>
837                     <DEAD NM118>
838                     <PUSH NM219>
839                     <DEAD NM219>
840                     <CALL '\1aI$DO-OPEN 6 = NEW?12>
841                     <TYPE? NEW?12 <TYPE-CODE FALSE> + PHRASE38>
842                     <SYSOP 'JFNS NS20 NEW?12 0 0 = NM118>
843                     <UUBLOCK <TYPE-CODE STRING> NM118 = DEV16 (TYPE STRING)>
844                     <MOVE-STRING NS20 DEV16 NM118 (NO-OVERLAP T)>
845                     <DEAD NS20 NM118>
846                     <TYPE? DEVNAM11 <TYPE-CODE FALSE> - COND46>
847                     <FRAME '\1aT$GET-DEVICE-TYPE>
848                     <PUSH NEW?12>
849                     <CALL '\1aT$GET-DEVICE-TYPE 1 = NM118>
850                     <GVAL 'T$DEVVEC = SNM17>
851                     <EMPUV? SNM17 + PHRASE47>
852                     <LOOP (NM118 VALUE) (SNM17 LENGTH VALUE)>
853 TAG50
854                     <NTHUV SNM17 1 = TEMP32>
855                     <TYPE? TEMP32 <TYPE-CODE FIX> - TAG51>
856                     <VEQUAL? TEMP32 NM118 + TAG49>
857                     <DEAD TEMP32>
858 TAG51
859                     <RESTUV SNM17 1 = SNM17 (TYPE VECTOR)>
860                     <EMPUV? SNM17 - TAG50>
861                     <JUMP + PHRASE47>
862 TAG49
863                     <NTHUV SNM17 2 = DEVNAM11>
864                     <DEAD SNM17>
865                     <JUMP + COND46>
866 PHRASE47
867                     <SET DEVNAM11 'T$TWAY (TYPE ATOM)>
868 COND46
869                     <SYSOP 'RLJFN NEW?12>
870                     <DEAD NEW?12>
871                     <TYPE? DEVNAM11 <TYPE-CODE ATOM> - PHRASE55>
872                     <FRAME '\1aT$CHANNEL-OPEN>
873                     <PUSH DEVNAM11>
874                     <DEAD DEVNAM11>
875                     <PUSH DEV16>
876                     <DEAD DEV16>
877                     <PUSH MODE9>
878                     <DEAD MODE9>
879                     <PUSH BSZ10>
880                     <DEAD BSZ10>
881                     <CALL '\1aT$CHANNEL-OPEN 4 = TEMP31>
882                     <JUMP + PHRASE57>
883 PHRASE55
884                     <FRAME '\1aT$CHANNEL-OPEN>
885                     <NTHUV DEVNAM11 1 = STACK>
886                     <PUSH DEV16>
887                     <DEAD DEV16>
888                     <PUSH MODE9>
889                     <DEAD MODE9>
890                     <PUSH BSZ10>
891                     <DEAD BSZ10>
892                     <SET TEMP31 4 (TYPE FIX)>
893                     <RESTUV DEVNAM11 1 = TEMP32 (TYPE VECTOR)>
894                     <DEAD DEVNAM11>
895                     <LOOP (TEMP32 VALUE LENGTH) (TEMP31 VALUE)>
896 TAG59
897                     <INTGO>
898                     <EMPUV? TEMP32 + TAG58>
899                     <NTHUV TEMP32 1 = STACK>
900                     <RESTUV TEMP32 1 = TEMP32 (TYPE VECTOR)>
901                     <ADD TEMP31 1 = TEMP31 (TYPE FIX)>
902                     <JUMP + TAG59>
903 TAG58
904                     <CALL '\1aT$CHANNEL-OPEN TEMP31 = TEMP31>
905 PHRASE57
906                     <TYPE? TEMP31 <TYPE-CODE FALSE> - COND37>
907                     <FRAME '\1aI$STD-ERROR>
908                     <PUSH NAME8>
909                     <DEAD NAME8>
910                     <PUSH TEMP31>
911                     <DEAD TEMP31>
912                     <CALL '\1aI$STD-ERROR 2 = TEMP31>
913                     <JUMP + COND37>
914 PHRASE38
915                     <FRAME '\1aI$STD-ERROR>
916                     <PUSH NAME8>
917                     <DEAD NAME8>
918                     <PUSH NEW?12>
919                     <DEAD NEW?12>
920                     <CALL '\1aI$STD-ERROR 2 = TEMP31>
921 COND37
922                     <IFSYS "TOPS20">
923                     <ADJ -102>
924                     <ENDIF "TOPS20">
925                     <IFSYS "VAX">
926                     <ADJ -127>
927                     <ENDIF "VAX">
928                     <RETURN TEMP31>
929                     <DEAD TEMP31>
930                     <END \1aT$GEN-OPEN>
931 #WORD *32443632156*
932 <GFCN \1aX$VALUE? ("VALUE" <OR FIX STRING> ATOM) ATM4>
933                     <TEMP TEMP8>
934                     <INTGO>
935                     <GEN-ASSIGNED? ATM4 - PHRASE7>
936                     <GEN-LVAL ATM4 = TEMP8>
937                     <DEAD ATM4>
938                     <JUMP + PHRASE12>
939 PHRASE7
940                     <NTHR ATM4 1 = TEMP8 (RECORD-TYPE ATOM) (BRANCH-FALSE + TAG14)>
941                     <TYPE? TEMP8 <TYPE-CODE FALSE> + TAG14>
942                     <NTHR TEMP8 1 = TEMP8 (RECORD-TYPE GBIND)>
943                     <TYPE? TEMP8 <TYPE-CODE UNBOUND> - TAG13>
944                     <DEAD TEMP8>
945 TAG14
946                     <SET TEMP8 %<> (TYPE FALSE)>
947                     <JUMP + PHRASE12>
948 TAG13
949                     <GVAL ATM4 = TEMP8>
950                     <DEAD ATM4>
951 PHRASE12
952                     <TYPE? TEMP8 <TYPE-CODE FALSE> + BOOL18>
953                     <TYPE? TEMP8 <TYPE-CODE FIX> + BOOL18>
954                     <EMPUS? TEMP8 - PHRASE17 (TYPE STRING)>
955 BOOL18
956                     <RETURN 0>
957 PHRASE17
958                     <RETURN TEMP8>
959                     <DEAD TEMP8>
960                     <END \1aX$VALUE?>
961 #WORD *21075024667*
962 <GFCN \1aT$UNAME ("VALUE" STRING)>
963                     <TEMP ST5:STRING UNUM4:FIX>
964                     <INTGO>
965                     <GVAL 'I$NAMSTR = ST5>
966                     <SYSOP 'GJINF (RETURN 1) = UNUM4>
967                     <SYSOP 'DIRST ST5 UNUM4>
968                     <DEAD ST5 UNUM4>
969                     <FRAME '\1aI$GET-STRING>
970                     <GVAL 'I$NAMSTR = STACK>
971                     <CALL '\1aI$GET-STRING 1 = ST5>
972                     <RETURN ST5>
973                     <DEAD ST5>
974                     <END \1aT$UNAME>
975 #WORD *35714303505*
976 <GFCN \1aT$GET-CONNECTED-DIR ("VALUE" ANY)>
977                     <TEMP ST5:STRING GCD9 TEMP15>
978                     <INTGO>
979                     <GVAL 'I$NAMSTR = ST5>
980                     <SYSOP 'GJINF (RETURN 2) = GCD9>
981                     <SYSOP 'DIRST ST5 GCD9>
982                     <DEAD ST5 GCD9>
983                     <FRAME '\1aI$GET-STRING>
984                     <GVAL 'I$NAMSTR = STACK>
985                     <CALL '\1aI$GET-STRING 1 = ST5>
986                     <SET GCD9 ST5>
987                     <EMPUS? GCD9 + TAG11>
988                     <LOOP (GCD9 LENGTH VALUE)>
989 TAG13
990                     <NTHUS GCD9 1 = TEMP15>
991                     <VEQUAL? TEMP15 !\: + TAG12>
992                     <DEAD TEMP15>
993                     <RESTUS GCD9 1 = GCD9 (TYPE STRING)>
994                     <EMPUS? GCD9 - TAG13>
995 TAG11
996                     <SET GCD9 %<> (TYPE FALSE)>
997 TAG12
998                     <LENUS ST5 = TEMP15 (TYPE FIX)>
999                     <PUTUS ST5 TEMP15 !\\0>
1000                     <DEAD TEMP15>
1001                     <FRAME '\1aI$GET-STRING>
1002                     <RESTUS GCD9 2 = STACK (TYPE STRING)>
1003                     <CALL '\1aI$GET-STRING 1 = TEMP15>
1004                     <PUTUS GCD9 1 !\\0>
1005                     <DEAD GCD9>
1006                     <FRAME '\1aI$GET-STRING>
1007                     <PUSH ST5>
1008                     <DEAD ST5>
1009                     <CALL '\1aI$GET-STRING 1 = ST5>
1010                     <PUSH TEMP15>
1011                     <DEAD TEMP15>
1012                     <PUSH ST5>
1013                     <DEAD ST5>
1014                     <MRETURN 2 0>
1015                     <END \1aT$GET-CONNECTED-DIR>
1016 #WORD *22677560412*
1017 <GFCN \1aI$GET-STRING ("VALUE" STRING STRING) ST4>
1018                     <TEMP NST5 TEMP13>
1019                     <INTGO>
1020                     <SET NST5 ST4>
1021                     <EMPUS? NST5 + PHRASE8>
1022                     <LOOP (NST5 LENGTH VALUE)>
1023 TAG11
1024                     <NTHUS NST5 1 = TEMP13>
1025                     <VEQUAL? TEMP13 !\\0 + TAG10>
1026                     <DEAD TEMP13>
1027                     <RESTUS NST5 1 = NST5 (TYPE STRING)>
1028                     <EMPUS? NST5 - TAG11>
1029                     <JUMP + PHRASE8>
1030 TAG10
1031                     <LENUS ST4 = TEMP13 (TYPE FIX)>
1032                     <LENUS NST5 = NST5 (TYPE FIX)>
1033                     <SUB TEMP13 NST5 = TEMP13 (TYPE FIX)>
1034                     <DEAD NST5>
1035                     <UUBLOCK <TYPE-CODE STRING> TEMP13 = NST5 (TYPE STRING)>
1036                     <MOVE-STRING ST4 NST5 TEMP13 (NO-OVERLAP T)>
1037                     <DEAD ST4 TEMP13>
1038                     <RETURN NST5>
1039                     <DEAD NST5>
1040 PHRASE8
1041                     <PUSH ST4>
1042                     <DEAD ST4>
1043                     <UBLOCK <TYPE-CODE STRING> 1 = NST5 (TYPE STRING)>
1044                     <RETURN NST5>
1045                     <DEAD NST5>
1046                     <END \1aI$GET-STRING>