Machine-Independent MDL for TOPS-20 and VAX.
[pdp10-muddle.git] / mim / development / mim / 20 / io-utils.mima
diff --git a/mim/development/mim/20/io-utils.mima b/mim/development/mim/20/io-utils.mima
new file mode 100644 (file)
index 0000000..2a63a07
--- /dev/null
@@ -0,0 +1,1046 @@
+
+#WORD *16053031231*
+<GFCN \1aT$HANG ("VALUE" ANY "OPTIONAL" ANY) PRED6>
+                   <OPT-DISPATCH 0 %<> OPT4 OPT5>
+OPT4
+                   <PUSH %<>>
+OPT5
+                   <TEMP VAL10>
+                   <INTGO>
+                   <LOOP>
+AGAIN11
+                   <INTGO>
+                   <FRAME '\1aT$EVAL>
+                   <PUSH PRED6>
+                   <CALL '\1aT$EVAL 1 = VAL10>
+                   <TYPE? VAL10 <TYPE-CODE FALSE> + PHRASE13>
+                   <RETURN VAL10>
+                   <DEAD VAL10>
+PHRASE13
+                   <SETS 'RUNINT -1>
+                   <SYSOP 'WAIT = VAL10>
+                   <SETS 'RUNINT 0>
+                   <JUMP + AGAIN11>
+                   <END \1aT$HANG>
+#WORD *14006672442*
+<GFCN \1aT$JNAME ("VALUE" STRING "OPTIONAL" STRING) NEW6>
+                   <OPT-DISPATCH 0 %<> OPT4 OPT5>
+OPT4
+                   <PUSH #T$UNBOUND 0>
+OPT5
+                   <TEMP TS8 WD7:FIX TEMP20 TEMP21>
+                   <INTGO>
+                   <USBLOCK <TYPE-CODE STRING> 6 = TS8 (TYPE STRING)>
+                   <TYPE? NEW6 <TYPE-CODE UNBOUND> - PHRASE11>
+                   <SYSOP 'GETNM (RETURN 1) = WD7>
+                   <LOOP>
+AGAIN15
+                   <INTGO>
+                   <VEQUAL? WD7 0 + EXIT12 (TYPE FIX)>
+                   <ROT WD7 6 = WD7 (TYPE FIX)>
+                   <AND WD7 #WORD *77* = TEMP20>
+                   <ADD TEMP20 32 = TEMP20 (TYPE FIX)>
+                   <CHTYPE TEMP20 <TYPE-CODE CHARACTER> = TEMP20>
+                   <AND WD7 #WORD *777777777700* = WD7>
+                   <PUTUS TS8 1 TEMP20>
+                   <DEAD TEMP20>
+                   <RESTUS TS8 1 = TS8 (TYPE STRING)>
+                   <JUMP + AGAIN15>
+EXIT12
+                   <TOPU TS8 = TEMP20>
+                   <LENUS TS8 = TS8 (TYPE FIX)>
+                   <SUB 6 TS8 = TEMP21 (TYPE FIX)>
+                   <DEAD TS8>
+                   <UUBLOCK <TYPE-CODE STRING> TEMP21 = TS8 (TYPE STRING)>
+                   <MOVE-STRING TEMP20 TS8 TEMP21 (NO-OVERLAP T)>
+                   <DEAD TEMP20 TEMP21>
+                   <JUMP + PHRASE23>
+PHRASE11
+                   <SET WD7 0 (TYPE FIX)>
+                   <SET TS8 0 (TYPE FIX)>
+                   <SET TEMP21 NEW6 (TYPE STRING)>
+                   <LOOP>
+MAP25
+                   <INTGO>
+                   <EMPUS? TEMP21 + MAPAP28>
+                   <NTHUS TEMP21 1 = TEMP20>
+                   <LSH WD7 6 = WD7 (TYPE FIX)>
+                   <SUB TEMP20 32 = TEMP20 (TYPE FIX)>
+                   <AND TEMP20 #WORD *77* = TEMP20>
+                   <OR WD7 TEMP20 = WD7>
+                   <DEAD TEMP20>
+                   <ADD TS8 1 = TS8 (TYPE FIX)>
+                   <LESS? TS8 6 - MAPAP28 (TYPE FIX)>
+                   <RESTUS TEMP21 1 = TEMP21 (TYPE STRING)>
+                   <JUMP + MAP25>
+MAPAP28
+                   <SYSOP 'SETNM WD7>
+                   <DEAD WD7>
+                   <SET TS8 NEW6>
+                   <DEAD NEW6>
+PHRASE23
+                   <IFSYS "TOPS20">
+                   <ADJ -4>
+                   <ENDIF "TOPS20">
+                   <IFSYS "VAX">
+                   <ADJ -4>
+                   <ENDIF "VAX">
+                   <RETURN TS8>
+                   <DEAD TS8>
+                   <END \1aT$JNAME>
+#WORD *30440230762*
+<GFCN \1aT$SLEEP ("VALUE" ANY <OR FIX FLOAT> "OPTIONAL" ANY) TM6 PRED7>
+                   <OPT-DISPATCH 1 %<> OPT4 OPT5>
+OPT4
+                   <PUSH %<>>
+OPT5
+                   <TEMP RTM8:FIX TEMP11 STIME15:FIX>
+                   <INTGO>
+                   <TYPE? TM6 <TYPE-CODE FLOAT> - PHRASE10>
+                   <MULF TM6 1000.0 = TEMP11 (TYPE FLOAT)>
+                   <DEAD TM6>
+                   <FIX TEMP11 = RTM8 (TYPE FIX)>
+                   <DEAD TEMP11>
+                   <JUMP + COND9>
+PHRASE10
+                   <MUL TM6 1000 = RTM8 (TYPE FIX)>
+                   <DEAD TM6>
+COND9
+                   <LOOP>
+AGAIN16
+                   <INTGO>
+                   <FRAME '\1aT$EVAL>
+                   <PUSH PRED7>
+                   <CALL '\1aT$EVAL 1 = TEMP11>
+                   <TYPE? TEMP11 <TYPE-CODE FALSE> + PHRASE18>
+                   <RETURN TEMP11>
+                   <DEAD TEMP11>
+PHRASE18
+                   <SYSOP 'TIME-JSYS (RETURN 1) = STIME15>
+                   <SETS 'RUNINT -1>
+                   <SYSOP 'DISMS RTM8 = TEMP11>
+                   <SETS 'RUNINT 0>
+                   <SYSOP 'TIME-JSYS (RETURN 1) = TEMP11>
+                   <SUB TEMP11 STIME15 = TEMP11 (TYPE FIX)>
+                   <DEAD STIME15>
+                   <SUB RTM8 TEMP11 = RTM8 (TYPE FIX)>
+                   <DEAD TEMP11>
+                   <GRTR? RTM8 0 + AGAIN16 (TYPE FIX)>
+                   <RETURN 'T>
+                   <END \1aT$SLEEP>
+#WORD *14077535133*
+<GFCN \1aX$INIT-ENV ("VALUE" ATOM)>
+                   <TEMP TEMP7>
+                   <INTGO>
+                   <NTHR 'T$HOME-STRUC 1 = TEMP7 (RECORD-TYPE ATOM) (BRANCH-FALSE + TAG6)>
+                   <TYPE? TEMP7 <TYPE-CODE FALSE> + TAG6>
+                   <NTHR TEMP7 1 = TEMP7 (RECORD-TYPE GBIND)>
+                   <TYPE? TEMP7 <TYPE-CODE UNBOUND> - PHRASE5>
+                   <DEAD TEMP7>
+TAG6
+                   <SETG 'T$HOME-STRUC "MIM">
+PHRASE5
+                   <RETURN 'T>
+                   <END \1aX$INIT-ENV>
+#WORD *12424054644*
+<GFCN \1aT$SYS-ERR ("VALUE" FALSE STRING <FALSE FIX> "OPTIONAL" <OR ATOM FALSE>) NAME6 ERR7 NAME?8>
+                   <OPT-DISPATCH 2 %<> OPT4 OPT5>
+OPT4
+                   <PUSH 'T>
+OPT5
+                   <TEMP TEMP10:FALSE>
+                   <INTGO>
+                   <FRAME '\1aI$STD-ERROR>
+                   <PUSH NAME6>
+                   <DEAD NAME6>
+                   <PUSH ERR7>
+                   <DEAD ERR7>
+                   <PUSH NAME?8>
+                   <DEAD NAME?8>
+                   <CALL '\1aI$STD-ERROR 3 = TEMP10>
+                   <RETURN TEMP10>
+                   <DEAD TEMP10>
+                   <END \1aT$SYS-ERR>
+#WORD *25747440666*
+<GFCN \1aT$TRANSLATE-ERROR ("VALUE" STRING <FALSE FIX>) ERR4>
+                   <TEMP NS7 TEMP12 TEMP8>
+                   <INTGO>
+                   <GVAL 'I$NAMSTR = NS7>
+                   <IFSYS "VAX">
+                   <NTHL ERR4 1 = TEMP12 (TYPE FIX)>
+                   <PUTBITS TEMP12 16 16 131072 = TEMP8>
+                   <ENDIF "VAX">
+                   <IFSYS "TOPS20">
+                   <NTHL ERR4 1 = TEMP12 (TYPE FIX)>
+                   <DEAD ERR4>
+                   <PUTBITS TEMP12 18 18 131072 = TEMP8>
+                   <ENDIF "TOPS20">
+                   <IFSYS "VAX">
+                   <LENUS NS7 = TEMP12 (TYPE FIX)>
+                   <SUB 0 TEMP12 = TEMP12 (TYPE FIX)>
+                   <PUTBITS 0 16 16 TEMP12 = TEMP12>
+                   <ENDIF "VAX">
+                   <IFSYS "TOPS20">
+                   <LENUS NS7 = TEMP12 (TYPE FIX)>
+                   <SUB 0 TEMP12 = TEMP12 (TYPE FIX)>
+                   <PUTBITS 0 18 18 TEMP12 = TEMP12>
+                   <ENDIF "TOPS20">
+                   <SYSOP 'ERSTR NS7 TEMP8 TEMP12 = TEMP12>
+                   <DEAD TEMP8>
+                   <UUBLOCK <TYPE-CODE STRING> TEMP12 = TEMP8 (TYPE STRING)>
+                   <MOVE-STRING NS7 TEMP8 TEMP12 (NO-OVERLAP %<>)>
+                   <DEAD NS7 TEMP12>
+                   <RETURN TEMP8>
+                   <DEAD TEMP8>
+                   <END \1aT$TRANSLATE-ERROR>
+#WORD *22156062620*
+<GFCN \1aI$STD-ERROR ("VALUE" FALSE STRING <FALSE FIX> "OPTIONAL" ANY) NAME6 ERR7 NAME?8>
+                   <OPT-DISPATCH 2 %<> OPT4 OPT5>
+OPT4
+                   <PUSH 'T>
+OPT5
+                   <TEMP NS9 ES11:STRING NM118 NM220 DEV22 SNM24>
+                   <INTGO>
+                   <USBLOCK <TYPE-CODE STRING> 500 = NS9 (TYPE STRING)>
+                   <FRAME '\1aT$TRANSLATE-ERROR>
+                   <PUSH ERR7>
+                   <CALL '\1aT$TRANSLATE-ERROR 1 = ES11>
+                   <TYPE? NAME?8 <TYPE-CODE FALSE> + PHRASE29>
+                   <DEAD NAME?8>
+                   <FRAME '\1aX$VALUE?>
+                   <PUSH 'NM1>
+                   <CALL '\1aX$VALUE? 1 = NM118>
+                   <FRAME '\1aX$VALUE?>
+                   <PUSH 'NM2>
+                   <CALL '\1aX$VALUE? 1 = NM220>
+                   <FRAME '\1aX$VALUE?>
+                   <PUSH 'DEV>
+                   <CALL '\1aX$VALUE? 1 = DEV22>
+                   <FRAME '\1aX$VALUE?>
+                   <PUSH 'SNM>
+                   <CALL '\1aX$VALUE? 1 = SNM24>
+                   <SYSOP 'GTJFN-L NAME6 8388608 34359607295 DEV22 SNM24 NM118 NM220 0 0 0 = NM118>
+                   <DEAD DEV22 SNM24 NM220>
+                   <TYPE? NM118 <TYPE-CODE FALSE> + PHRASE29>
+                   <SYSOP 'JFNS NS9 NM118 0 0 = NM220>
+                   <SYSOP 'RLJFN NM118>
+                   <DEAD NM118>
+                   <UUBLOCK <TYPE-CODE STRING> NM220 = NAME6 (TYPE STRING)>
+                   <MOVE-STRING NS9 NAME6 NM220 (NO-OVERLAP T)>
+                   <DEAD NS9 NM220>
+PHRASE29
+                   <CONS NAME6 ERR7 = NS9>
+                   <DEAD NAME6 ERR7>
+                   <CONS ES11 NS9 = NS9>
+                   <DEAD ES11>
+                   <CHTYPE NS9 <TYPE-CODE FALSE> = NS9>
+                   <IFSYS "TOPS20">
+                   <ADJ -102>
+                   <ENDIF "TOPS20">
+                   <IFSYS "VAX">
+                   <ADJ -127>
+                   <ENDIF "VAX">
+                   <RETURN NS9>
+                   <DEAD NS9>
+                   <END \1aI$STD-ERROR>
+#WORD *32351756627*
+<GFCN \1aT$GET-JFN ("VALUE" <OR FALSE FIX> STRING FIX FIX <OR ATOM FALSE>) NAME4 MODE5 BSZ6 NEW?7>
+                   <TEMP JFN8 TEMP15>
+                   <INTGO>
+                   <TYPE? NEW?7 <TYPE-CODE FALSE> + PHRASE11>
+                   <DEAD NEW?7>
+                   <SYSOP 'GTJFN-S-S -34359476224 NAME4 = JFN8>
+                   <DEAD NAME4>
+                   <JUMP + PHRASE12>
+PHRASE11
+                   <SYSOP 'GTJFN-S-S 8590196736 NAME4 = JFN8>
+                   <DEAD NAME4>
+PHRASE12
+                   <SET TEMP15 JFN8>
+                   <TYPE? TEMP15 <TYPE-CODE FALSE> + PHRASE19>
+                   <LSH BSZ6 30 = TEMP15 (TYPE FIX)>
+                   <DEAD BSZ6>
+                   <OR TEMP15 MODE5 = TEMP15>
+                   <DEAD MODE5>
+                   <SYSOP 'OPENF JFN8 TEMP15 = TEMP15>
+                   <TYPE? TEMP15 <TYPE-CODE FALSE> + PHRASE17>
+                   <RETURN JFN8>
+                   <DEAD JFN8>
+PHRASE17
+                   <SYSOP 'RLJFN JFN8>
+                   <DEAD JFN8>
+PHRASE19
+                   <RETURN TEMP15>
+                   <DEAD TEMP15>
+                   <END \1aT$GET-JFN>
+#WORD *37011316026*
+<GFCN \1aT$GET-BYTE-COUNT ("VALUE" FIX FIX FIX) JFN4 BSZ5>
+                   <TEMP OBC6:FIX OBS7 TEMP18:FIX>
+                   <INTGO>
+                   <SYSOP 'SIZEF JFN4 (RETURN 2) = OBC6>
+                   <SYSOP 'GTFDB JFN4 262153 5 (RETURN 5) = OBS7>
+                   <DEAD JFN4>
+                   <AND OBS7 #WORD *7700000000* = OBS7>
+                   <LSH OBS7 -24 = OBS7 (TYPE FIX)>
+                   <VEQUAL? OBS7 0 - PHRASE11 (TYPE FIX)>
+                   <SET OBS7 36 (TYPE FIX)>
+PHRASE11
+                   <VEQUAL? OBS7 BSZ5 - PHRASE15 (TYPE FIX)>
+                   <RETURN OBC6>
+                   <DEAD OBC6>
+PHRASE15
+                   <DIV 36 OBS7 = OBS7 (TYPE FIX)>
+                   <SUB OBS7 1 = TEMP18 (TYPE FIX)>
+                   <ADD OBC6 TEMP18 = OBC6 (TYPE FIX)>
+                   <DEAD TEMP18>
+                   <DIV OBC6 OBS7 = OBC6 (TYPE FIX)>
+                   <DEAD OBS7>
+                   <DIV 36 BSZ5 = TEMP18 (TYPE FIX)>
+                   <DEAD BSZ5>
+                   <MUL OBC6 TEMP18 = OBS7 (TYPE FIX)>
+                   <DEAD OBC6 TEMP18>
+                   <RETURN OBS7>
+                   <DEAD OBS7>
+                   <END \1aT$GET-BYTE-COUNT>
+#WORD *34650165305*
+<GFCN \1aT$CLOSE-OPEN ("VALUE" ANY FIX FIX FIX) JFN4 MODE5 BSZ6>
+                   <TEMP TEMP9>
+                   <INTGO>
+                   <OR JFN4 #WORD *400000000000* = TEMP9>
+                   <SYSOP 'CLOSF TEMP9 = TEMP9>
+                   <TYPE? TEMP9 <TYPE-CODE FALSE> + BOOL7>
+                   <LSH BSZ6 30 = TEMP9 (TYPE FIX)>
+                   <DEAD BSZ6>
+                   <OR TEMP9 MODE5 = TEMP9>
+                   <DEAD MODE5>
+                   <SYSOP 'OPENF JFN4 TEMP9 = TEMP9>
+                   <DEAD JFN4>
+BOOL7
+                   <RETURN TEMP9>
+                   <DEAD TEMP9>
+                   <END \1aT$CLOSE-OPEN>
+#WORD *16132021023*
+<GFCN \1aT$GET-DEVICE-TYPE ("VALUE" <OR FALSE FIX> FIX) JFN4>
+                   <TEMP VAL5 TEMP8>
+                   <INTGO>
+                   <SYSOP 'DVCHR JFN4 (RETURN 2) = VAL5>
+                   <DEAD JFN4>
+                   <SET TEMP8 VAL5>
+                   <TYPE? TEMP8 <TYPE-CODE FALSE> + PHRASE7>
+                   <LSH VAL5 -18 = VAL5 (TYPE FIX)>
+                   <AND VAL5 #WORD *777* = TEMP8>
+                   <DEAD VAL5>
+PHRASE7
+                   <RETURN TEMP8>
+                   <DEAD TEMP8>
+                   <END \1aT$GET-DEVICE-TYPE>
+#WORD *1675311017*
+                   <GFCN \1aX$IO-INIT ("VALUE" <OR ATOM FALSE>)>
+                   <TEMP TEMP5 TEMP6>
+                   <INTGO>
+                   <SETG 'T$MUDDLE-SYSTEM "T">
+                   <PUSH !\\r>
+                   <PUSH !\
+>
+                   <UBLOCK <TYPE-CODE STRING> 2 = TEMP5 (TYPE STRING)>
+                   <SETG 'CRLF-STRING TEMP5>
+                   <DEAD TEMP5>
+                   <SETG 'CRLF-LENGTH 2>
+                   <UUBLOCK <TYPE-CODE STRING> 10 = TEMP5>
+                   <SET TEMP6 TEMP5>
+                   <LOOP (TEMP6 VALUE LENGTH)>
+ISTR7
+                   <EMPUS? TEMP6 + ISTRE8>
+                   <PUTUS TEMP6 1 !\   >
+                   <RESTUS TEMP6 1 = TEMP6>
+                   <JUMP + ISTR7>
+ISTRE8
+                   <SETG 'TABSTR TEMP5>
+                   <DEAD TEMP5>
+                   <UUBLOCK <TYPE-CODE STRING> 7 = TEMP5>
+                   <SET TEMP6 TEMP5>
+                   <LOOP (TEMP6 VALUE LENGTH)>
+ISTR9
+                   <EMPUS? TEMP6 + ISTRE10>
+                   <PUTUS TEMP6 1 !\ >
+                   <RESTUS TEMP6 1 = TEMP6>
+                   <JUMP + ISTR9>
+ISTRE10
+                   <SETG 'SPACESTR TEMP5>
+                   <DEAD TEMP5>
+                   <SETG 'I$RDBLEN 1280>
+                   <SETG 'T$NM2 "MUD">
+                   <PUSH 0>
+                   <PUSH 'T$DISK>
+                   <PUSH 2>
+                   <PUSH 'T$TWAY>
+                   <PUSH 7>
+                   <PUSH 'T$TWAY>
+                   <PUSH 8>
+                   <PUSH 'T$TWAY>
+                   <PUSH 9>
+                   <PUSH 'T$TWAY>
+                   <PUSH 10>
+                   <PUSH 'T$TTY>
+                   <PUSH 'T>
+                   <PUSH 'T>
+                   <UBLOCK <TYPE-CODE VECTOR> 3 = STACK>
+                   <PUSH 11>
+                   <PUSH 'T$TTY>
+                   <PUSH 'T>
+                   <PUSH 'T>
+                   <UBLOCK <TYPE-CODE VECTOR> 3 = STACK>
+                   <PUSH 13>
+                   <PUSH 'T$TWAY>
+                   <PUSH %<>>
+                   <PUSH %<>>
+                   <UBLOCK <TYPE-CODE VECTOR> 3 = STACK>
+                   <PUSH 14>
+                   <PUSH 'T$TWAY>
+                   <PUSH 'T>
+                   <PUSH 'T>
+                   <UBLOCK <TYPE-CODE VECTOR> 3 = STACK>
+                   <UBLOCK <TYPE-CODE VECTOR> 18 = TEMP5>
+                   <SETG 'T$DEVVEC TEMP5>
+                   <DEAD TEMP5>
+                   <FRAME '\1aT$ISTRING>
+                   <PUSH 100>
+                   <CALL '\1aT$ISTRING 1 = TEMP5>
+                   <SETG 'I$NAMSTR TEMP5>
+                   <DEAD TEMP5>
+                   <SETG 'I$CHANNEL-TYPES ()>
+                   <FRAME '\1aT$NEW-CHANNEL-TYPE>
+                   <PUSH 'T$DEFAULT>
+                   <PUSH %<>>
+                   <PUSH 'T$NAME>
+                   <PUSH 'X$DEF-NAME>
+                   <PUSH 'T$NM1>
+                   <PUSH 'X$DEF-NM1>
+                   <PUSH 'T$NM2>
+                   <PUSH 'X$DEF-NM2>
+                   <PUSH 'T$DEV>
+                   <PUSH 'X$DEF-DEV>
+                   <PUSH 'T$SNM>
+                   <PUSH 'X$DEF-SNM>
+                   <PUSH 'T$SHORT-NAME>
+                   <PUSH 'X$DEF-SHORT-NAME>
+                   <PUSH 'T$FLUSH>
+                   <PUSH 'X$DEF-FLUSH>
+                   <PUSH 'T$READ-DATE>
+                   <PUSH 'X$DEF-HACK-DATE>
+                   <PUSH 'T$WRITE-DATE>
+                   <PUSH 'X$DEF-HACK-DATE>
+                   <PUSH 'T$GET-MODE>
+                   <PUSH 'X$DEF-GET-MODE>
+                   <PUSH 'T$GET-BYTE-SIZE>
+                   <PUSH 'X$DEF-GET-BYTE-SIZE>
+                   <CALL '\1aT$NEW-CHANNEL-TYPE 24>
+                   <FRAME '\1aT$NEW-CHANNEL-TYPE>
+                   <PUSH 'T$DISK>
+                   <PUSH 'T$DEFAULT>
+                   <PUSH 'T$FILE-HANDLE>
+                   <PUSH 'X$DISK-FILE-HANDLE>
+                   <PUSH 'T$QUERY>
+                   <PUSH 'X$DISK-QUERY>
+                   <PUSH 'T$OPEN>
+                   <PUSH 'X$DISK-OPEN>
+                   <PUSH 'T$CLOSE>
+                   <PUSH 'X$DISK-CLOSE>
+                   <PUSH 'T$FLUSH>
+                   <PUSH 'X$DISK-FLUSH>
+                   <PUSH 'T$READ-BYTE>
+                   <PUSH 'X$DISK-READ-BYTE>
+                   <PUSH 'T$WRITE-BYTE>
+                   <PUSH 'X$DISK-WRITE-BYTE>
+                   <PUSH 'T$READ-BUFFER>
+                   <PUSH 'X$DISK-READ-BUFFER>
+                   <PUSH 'T$WRITE-BUFFER>
+                   <PUSH 'X$DISK-WRITE-BUFFER>
+                   <PUSH 'T$ACCESS>
+                   <PUSH 'X$DISK-ACCESS>
+                   <PUSH 'T$BUFOUT>
+                   <PUSH 'X$DISK-BUFOUT>
+                   <PUSH 'T$FILE-LENGTH>
+                   <PUSH 'X$DISK-FILE-LENGTH>
+                   <PUSH 'T$PRINT-DATA>
+                   <PUSH 'X$DISK-PRINT-DATA>
+                   <CALL '\1aT$NEW-CHANNEL-TYPE 28>
+                   <FRAME '\1aT$NEW-CHANNEL-TYPE>
+                   <PUSH 'I$UNPARSE>
+                   <PUSH %<>>
+                   <PUSH 'T$WRITE-BUFFER>
+                   <PUSH 'X$UP-WRITE-BUF>
+                   <PUSH 'T$WRITE-BYTE>
+                   <PUSH 'X$UP-WRITE-BYTE>
+                   <PUSH 'T$READ-BYTE>
+                   <PUSH 'X$UP-READ-BYTE>
+                   <CALL '\1aT$NEW-CHANNEL-TYPE 8 = TEMP5>
+                   <RETURN TEMP5>
+                   <DEAD TEMP5>
+                   <END \1aX$IO-INIT>
+
+#WORD *21673533247*
+<GFCN \1aX$IO-LOAD ("VALUE" ANY FIX) BOOTYP4>
+                   <TEMP TEMP7>
+                   <INTGO>
+                   <FRAME '\1aX$RESET>
+                   <PUSH 'I$FLATSIZE>
+                   <PUSH %<>>
+                   <PUSH %<>>
+                   <PUSH 'T>
+                   <PUSH 0>
+                   <PUSH %<>>
+                   <UBLOCK <TYPE-CODE VECTOR> 6 = TEMP7>
+                   <CHTYPE TEMP7 <TYPE-CODE CHANNEL> = STACK>
+                   <DEAD TEMP7>
+                   <CALL '\1aX$RESET 1 = TEMP7>
+                   <SETG 'M$$FLATCHAN TEMP7>
+                   <DEAD TEMP7>
+                   <FRAME '\1aX$RESET>
+                   <PUSH 'I$UNPARSE>
+                   <PUSH %<>>
+                   <PUSH %<>>
+                   <PUSH 'T>
+                   <PUSH "">
+                   <PUSH %<>>
+                   <UBLOCK <TYPE-CODE VECTOR> 6 = TEMP7>
+                   <CHTYPE TEMP7 <TYPE-CODE CHANNEL> = STACK>
+                   <DEAD TEMP7>
+                   <CALL '\1aX$RESET 1 = TEMP7>
+                   <SETG 'M$$INTCHAN TEMP7>
+                   <DEAD TEMP7>
+                   <LESS? BOOTYP4 0 + PHRASE11 (TYPE FIX)>
+                   <FRAME '\1aT$FILE-EXISTS?>
+                   <PUSH "<MIM.20>CHANNEL-OPERATION.MBIN">
+                   <CALL '\1aT$FILE-EXISTS? 1 = TEMP7>
+                   <TYPE? TEMP7 <TYPE-CODE FALSE> + PHRASE11>
+                   <DEAD TEMP7>
+                   <FRAME '\1aT$FLOAD>
+                   <PUSH "<MIM.20>CHANNEL-OPERATION.MBIN">
+                   <CALL '\1aT$FLOAD 1>
+                   <JUMP + COND10>
+PHRASE11
+                   <FRAME '\1aT$FLOAD>
+                   <PUSH "<MIM.20>CHANNEL-OPERATION.MSUBR">
+                   <CALL '\1aT$FLOAD 1>
+COND10
+                   <LESS? BOOTYP4 0 + PHRASE19 (TYPE FIX)>
+                   <FRAME '\1aT$FILE-EXISTS?>
+                   <PUSH "<MIM.20>TWAY.MBIN">
+                   <CALL '\1aT$FILE-EXISTS? 1 = TEMP7>
+                   <TYPE? TEMP7 <TYPE-CODE FALSE> + PHRASE19>
+                   <DEAD TEMP7>
+                   <FRAME '\1aT$FLOAD>
+                   <PUSH "<MIM.20>TWAY.MBIN">
+                   <CALL '\1aT$FLOAD 1>
+                   <JUMP + COND18>
+PHRASE19
+                   <FRAME '\1aT$FLOAD>
+                   <PUSH "<MIM.20>TWAY.MSUBR">
+                   <CALL '\1aT$FLOAD 1>
+COND18
+                   <LESS? BOOTYP4 0 + PHRASE27 (TYPE FIX)>
+                   <DEAD BOOTYP4>
+                   <FRAME '\1aT$FILE-EXISTS?>
+                   <PUSH "<MIM.20>TTY.MBIN">
+                   <CALL '\1aT$FILE-EXISTS? 1 = TEMP7>
+                   <TYPE? TEMP7 <TYPE-CODE FALSE> + PHRASE27>
+                   <DEAD TEMP7>
+                   <FRAME '\1aT$FLOAD>
+                   <PUSH "<MIM.20>TTY.MBIN">
+                   <CALL '\1aT$FLOAD 1 = TEMP7>
+                   <RETURN TEMP7>
+                   <DEAD TEMP7>
+PHRASE27
+                   <FRAME '\1aT$FLOAD>
+                   <PUSH "<MIM.20>TTY.MSUBR">
+                   <CALL '\1aT$FLOAD 1 = TEMP7>
+                   <RETURN TEMP7>
+                   <DEAD TEMP7>
+                   <END \1aX$IO-LOAD>
+#WORD *32053074013*
+<GFCN \1aT$RENAME ("VALUE" <OR FALSE STRING> STRING STRING) OLD4 NEW5>
+                   <TEMP NM16 NM27 DEV8 SNM9 (FOLD10 %<>) (FNEW11 %<>) NS14 VAL12>
+                   <INTGO>
+                   <FRAME '\1aX$VALUE?>
+                   <PUSH 'T$NM1>
+                   <CALL '\1aX$VALUE? 1 = NM16>
+                   <FRAME '\1aX$VALUE?>
+                   <PUSH 'T$NM2>
+                   <CALL '\1aX$VALUE? 1 = NM27>
+                   <FRAME '\1aX$VALUE?>
+                   <PUSH 'T$DEV>
+                   <CALL '\1aX$VALUE? 1 = DEV8>
+                   <FRAME '\1aX$VALUE?>
+                   <PUSH 'T$SNM>
+                   <CALL '\1aX$VALUE? 1 = SNM9>
+                   <USBLOCK <TYPE-CODE STRING> 500 = NS14 (TYPE STRING)>
+                   <FRAME '\1aI$DO-OPEN>
+                   <PUSH 8589934592>
+                   <PUSH OLD4>
+                   <PUSH DEV8>
+                   <PUSH SNM9>
+                   <PUSH NM16>
+                   <PUSH NM27>
+                   <CALL '\1aI$DO-OPEN 6 = FOLD10>
+                   <SET VAL12 FOLD10>
+                   <TYPE? VAL12 <TYPE-CODE FALSE> + BOOL21>
+                   <FRAME '\1aI$DO-OPEN>
+                   <PUSH -0>
+                   <PUSH NEW5>
+                   <DEAD NEW5>
+                   <PUSH DEV8>
+                   <DEAD DEV8>
+                   <PUSH SNM9>
+                   <DEAD SNM9>
+                   <PUSH NM16>
+                   <DEAD NM16>
+                   <PUSH NM27>
+                   <DEAD NM27>
+                   <CALL '\1aI$DO-OPEN 6 = FNEW11>
+                   <SET VAL12 FNEW11>
+BOOL21
+                   <TYPE? VAL12 <TYPE-CODE FALSE> + PHRASE25>
+                   <SYSOP 'RNAMF FOLD10 FNEW11 = VAL12>
+                   <TYPE? VAL12 <TYPE-CODE FALSE> + PHRASE25>
+                   <SYSOP 'JFNS NS14 FNEW11 0 0 = NM16>
+                   <SYSOP 'RLJFN FNEW11>
+                   <UUBLOCK <TYPE-CODE STRING> NM16 = NEW5 (TYPE STRING)>
+                   <MOVE-STRING NS14 NEW5 NM16 (NO-OVERLAP T)>
+                   <DEAD NS14 NM16>
+                   <SET VAL12 NEW5>
+                   <DEAD NEW5>
+PHRASE25
+                   <TYPE? VAL12 <TYPE-CODE FALSE> - PHRASE27>
+                   <TYPE? FOLD10 <TYPE-CODE FALSE> + PHRASE29>
+                   <SYSOP 'RLJFN FOLD10>
+                   <DEAD FOLD10>
+PHRASE29
+                   <TYPE? FNEW11 <TYPE-CODE FALSE> + PHRASE31>
+                   <SYSOP 'RLJFN FNEW11>
+                   <DEAD FNEW11>
+PHRASE31
+                   <FRAME '\1aI$STD-ERROR>
+                   <PUSH OLD4>
+                   <DEAD OLD4>
+                   <PUSH VAL12>
+                   <DEAD VAL12>
+                   <CALL '\1aI$STD-ERROR 2 = VAL12>
+PHRASE27
+                   <IFSYS "TOPS20">
+                   <ADJ -102>
+                   <ENDIF "TOPS20">
+                   <IFSYS "VAX">
+                   <ADJ -127>
+                   <ENDIF "VAX">
+                   <RETURN VAL12>
+                   <DEAD VAL12>
+                   <END \1aT$RENAME>
+#WORD *10357763734*
+<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>
+                   <OPT-DISPATCH 1 %<> OPT4 OPT5 OPT6 OPT7 OPT8>
+OPT4
+                   <PUSH #T$UNBOUND 0>
+OPT5
+                   <PUSH #T$UNBOUND 0>
+OPT6
+                   <PUSH #T$UNBOUND 0>
+OPT7
+                   <PUSH #T$UNBOUND 0>
+OPT8
+                   <TEMP FID14 VAL15>
+                   <INTGO>
+                   <TYPE? NM110 <TYPE-CODE UNBOUND> - TAG16>
+                   <FRAME '\1aX$VALUE?>
+                   <PUSH 'T$NM1>
+                   <CALL '\1aX$VALUE? 1 = NM110>
+TAG16
+                   <TYPE? NM211 <TYPE-CODE UNBOUND> - TAG19>
+                   <FRAME '\1aX$VALUE?>
+                   <PUSH 'T$NM2>
+                   <CALL '\1aX$VALUE? 1 = NM211>
+TAG19
+                   <TYPE? DEV12 <TYPE-CODE UNBOUND> - TAG22>
+                   <FRAME '\1aX$VALUE?>
+                   <PUSH 'T$DEV>
+                   <CALL '\1aX$VALUE? 1 = DEV12>
+TAG22
+                   <TYPE? SNM13 <TYPE-CODE UNBOUND> - TAG25>
+                   <FRAME '\1aX$VALUE?>
+                   <PUSH 'T$SNM>
+                   <CALL '\1aX$VALUE? 1 = SNM13>
+TAG25
+                   <FRAME '\1aI$DO-OPEN>
+                   <PUSH 8589934592>
+                   <PUSH NM9>
+                   <PUSH DEV12>
+                   <DEAD DEV12>
+                   <PUSH SNM13>
+                   <DEAD SNM13>
+                   <PUSH NM110>
+                   <DEAD NM110>
+                   <PUSH NM211>
+                   <DEAD NM211>
+                   <CALL '\1aI$DO-OPEN 6 = FID14>
+                   <SET VAL15 FID14>
+                   <TYPE? VAL15 <TYPE-CODE FALSE> + PHRASE29>
+                   <SYSOP 'DELF FID14 = VAL15>
+PHRASE29
+                   <TYPE? VAL15 <TYPE-CODE FALSE> - PHRASE32>
+                   <TYPE? FID14 <TYPE-CODE FALSE> + PHRASE34>
+                   <SYSOP 'RLJFN FID14>
+                   <DEAD FID14>
+PHRASE34
+                   <FRAME '\1aI$STD-ERROR>
+                   <PUSH NM9>
+                   <DEAD NM9>
+                   <PUSH VAL15>
+                   <DEAD VAL15>
+                   <CALL '\1aI$STD-ERROR 2 = FID14>
+                   <RETURN FID14>
+                   <DEAD FID14>
+PHRASE32
+                   <RETURN NM9>
+                   <DEAD NM9>
+                   <END \1aT$DELFILE>
+#WORD *23441447624*
+<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>
+                   <OPT-DISPATCH 1 %<> OPT4 OPT5 OPT6 OPT7 OPT8>
+OPT4
+                   <PUSH #T$UNBOUND 0>
+OPT5
+                   <PUSH #T$UNBOUND 0>
+OPT6
+                   <PUSH #T$UNBOUND 0>
+OPT7
+                   <PUSH #T$UNBOUND 0>
+OPT8
+                   <TEMP FID14>
+                   <INTGO>
+                   <TYPE? NM110 <TYPE-CODE UNBOUND> - TAG15>
+                   <FRAME '\1aX$VALUE?>
+                   <PUSH 'T$NM1>
+                   <CALL '\1aX$VALUE? 1 = NM110>
+TAG15
+                   <TYPE? NM211 <TYPE-CODE UNBOUND> - TAG18>
+                   <FRAME '\1aX$VALUE?>
+                   <PUSH 'T$NM2>
+                   <CALL '\1aX$VALUE? 1 = NM211>
+TAG18
+                   <TYPE? DEV12 <TYPE-CODE UNBOUND> - TAG21>
+                   <FRAME '\1aX$VALUE?>
+                   <PUSH 'T$DEV>
+                   <CALL '\1aX$VALUE? 1 = DEV12>
+TAG21
+                   <TYPE? SNM13 <TYPE-CODE UNBOUND> - TAG24>
+                   <FRAME '\1aX$VALUE?>
+                   <PUSH 'T$SNM>
+                   <CALL '\1aX$VALUE? 1 = SNM13>
+TAG24
+                   <FRAME '\1aI$DO-OPEN>
+                   <PUSH 8589934592>
+                   <PUSH NAME9>
+                   <PUSH DEV12>
+                   <DEAD DEV12>
+                   <PUSH SNM13>
+                   <DEAD SNM13>
+                   <PUSH NM110>
+                   <DEAD NM110>
+                   <PUSH NM211>
+                   <DEAD NM211>
+                   <CALL '\1aI$DO-OPEN 6 = FID14>
+                   <TYPE? FID14 <TYPE-CODE FALSE> + PHRASE28>
+                   <SYSOP 'RLJFN FID14>
+                   <DEAD FID14>
+                   <RETURN 'T>
+PHRASE28
+                   <FRAME '\1aI$STD-ERROR>
+                   <PUSH NAME9>
+                   <DEAD NAME9>
+                   <PUSH FID14>
+                   <DEAD FID14>
+                   <CALL '\1aI$STD-ERROR 2 = FID14>
+                   <RETURN FID14>
+                   <DEAD FID14>
+                   <END \1aT$FILE-EXISTS?>
+#WORD *14507655772*
+<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>
+                   <TEMP TEMP10>
+                   <INTGO>
+                   <SYSOP 'GTJFN-L NAME5 MODE4 34359607295 DEV6 SNM7 NM18 NM29 0 0 0 = TEMP10>
+                   <DEAD NAME5 MODE4 DEV6 SNM7 NM18 NM29>
+                   <RETURN TEMP10>
+                   <DEAD TEMP10>
+                   <END \1aI$DO-OPEN>
+#WORD *25022365705*
+<GFCN \1aT$GEN-OPEN ("VALUE" ANY STRING "OPTIONAL" STRING STRING <OR ATOM FALSE VECTOR>) NAME8 MODE9 BSZ10 DEVNAM11>
+                   <OPT-DISPATCH 1 %<> OPT4 OPT5 OPT6 OPT7>
+OPT4
+                   <PUSH "READ">
+OPT5
+                   <PUSH "ASCII">
+OPT6
+                   <PUSH %<>>
+OPT7
+                   <TEMP (NEW?12 %<>) DEV16 SNM17 NM118 NM219 NS20 TEMP31 TEMP32 TEMP33 TEMP34 TEMP35>
+                   <INTGO>
+                   <FRAME '\1aX$VALUE?>
+                   <PUSH 'DEV>
+                   <CALL '\1aX$VALUE? 1 = DEV16>
+                   <FRAME '\1aX$VALUE?>
+                   <PUSH 'SNM>
+                   <CALL '\1aX$VALUE? 1 = SNM17>
+                   <FRAME '\1aX$VALUE?>
+                   <PUSH 'NM1>
+                   <CALL '\1aX$VALUE? 1 = NM118>
+                   <FRAME '\1aX$VALUE?>
+                   <PUSH 'NM2>
+                   <CALL '\1aX$VALUE? 1 = NM219>
+                   <USBLOCK <TYPE-CODE STRING> 500 = NS20 (TYPE STRING)>
+                   <IFCAN "STRING-EQUAL?">
+                   <STRING-EQUAL? MODE9 "CREATE" - PHRASE30>
+                   <ENDIF "STRING-EQUAL?">
+                   <IFCANNOT "STRING-EQUAL?">
+                   <SET TEMP31 MODE9>
+                   <SET TEMP32 "CREATE" (TYPE STRING)>
+                   <LENUS TEMP31 = TEMP33 (TYPE FIX)>
+                   <VEQUAL? TEMP33 6 - PHRASE30>
+                   <LOOP (TEMP31 VALUE LENGTH) (TEMP32 VALUE LENGTH) (TEMP33 VALUE)>
+TAG36
+                   <NTHUS TEMP31 1 = TEMP34>
+                   <NTHUS TEMP32 1 = TEMP35>
+                   <VEQUAL? TEMP34 TEMP35 - PHRASE30>
+                   <DEAD TEMP34 TEMP35>
+                   <RESTUS TEMP31 1 = TEMP31 (TYPE STRING)>
+                   <RESTUS TEMP32 1 = TEMP32 (TYPE STRING)>
+                   <SUB TEMP33 1 = TEMP33 (TYPE FIX)>
+                   <GRTR? TEMP33 0 + TAG36 (TYPE FIX)>
+                   <ENDIF "STRING-EQUAL?">
+                   <SET NEW?12 'T (TYPE ATOM)>
+PHRASE30
+                   <FRAME '\1aI$DO-OPEN>
+                   <VEQUAL? NEW?12 0 + PHRASE41>
+                   <DEAD NEW?12>
+                   <SET TEMP32 -0 (TYPE FIX)>
+                   <JUMP + PHRASE42>
+PHRASE41
+                   <SET TEMP32 8589934592 (TYPE FIX)>
+PHRASE42
+                   <PUSH TEMP32>
+                   <DEAD TEMP32>
+                   <PUSH NAME8>
+                   <PUSH DEV16>
+                   <DEAD DEV16>
+                   <PUSH SNM17>
+                   <DEAD SNM17>
+                   <PUSH NM118>
+                   <DEAD NM118>
+                   <PUSH NM219>
+                   <DEAD NM219>
+                   <CALL '\1aI$DO-OPEN 6 = NEW?12>
+                   <TYPE? NEW?12 <TYPE-CODE FALSE> + PHRASE38>
+                   <SYSOP 'JFNS NS20 NEW?12 0 0 = NM118>
+                   <UUBLOCK <TYPE-CODE STRING> NM118 = DEV16 (TYPE STRING)>
+                   <MOVE-STRING NS20 DEV16 NM118 (NO-OVERLAP T)>
+                   <DEAD NS20 NM118>
+                   <TYPE? DEVNAM11 <TYPE-CODE FALSE> - COND46>
+                   <FRAME '\1aT$GET-DEVICE-TYPE>
+                   <PUSH NEW?12>
+                   <CALL '\1aT$GET-DEVICE-TYPE 1 = NM118>
+                   <GVAL 'T$DEVVEC = SNM17>
+                   <EMPUV? SNM17 + PHRASE47>
+                   <LOOP (NM118 VALUE) (SNM17 LENGTH VALUE)>
+TAG50
+                   <NTHUV SNM17 1 = TEMP32>
+                   <TYPE? TEMP32 <TYPE-CODE FIX> - TAG51>
+                   <VEQUAL? TEMP32 NM118 + TAG49>
+                   <DEAD TEMP32>
+TAG51
+                   <RESTUV SNM17 1 = SNM17 (TYPE VECTOR)>
+                   <EMPUV? SNM17 - TAG50>
+                   <JUMP + PHRASE47>
+TAG49
+                   <NTHUV SNM17 2 = DEVNAM11>
+                   <DEAD SNM17>
+                   <JUMP + COND46>
+PHRASE47
+                   <SET DEVNAM11 'T$TWAY (TYPE ATOM)>
+COND46
+                   <SYSOP 'RLJFN NEW?12>
+                   <DEAD NEW?12>
+                   <TYPE? DEVNAM11 <TYPE-CODE ATOM> - PHRASE55>
+                   <FRAME '\1aT$CHANNEL-OPEN>
+                   <PUSH DEVNAM11>
+                   <DEAD DEVNAM11>
+                   <PUSH DEV16>
+                   <DEAD DEV16>
+                   <PUSH MODE9>
+                   <DEAD MODE9>
+                   <PUSH BSZ10>
+                   <DEAD BSZ10>
+                   <CALL '\1aT$CHANNEL-OPEN 4 = TEMP31>
+                   <JUMP + PHRASE57>
+PHRASE55
+                   <FRAME '\1aT$CHANNEL-OPEN>
+                   <NTHUV DEVNAM11 1 = STACK>
+                   <PUSH DEV16>
+                   <DEAD DEV16>
+                   <PUSH MODE9>
+                   <DEAD MODE9>
+                   <PUSH BSZ10>
+                   <DEAD BSZ10>
+                   <SET TEMP31 4 (TYPE FIX)>
+                   <RESTUV DEVNAM11 1 = TEMP32 (TYPE VECTOR)>
+                   <DEAD DEVNAM11>
+                   <LOOP (TEMP32 VALUE LENGTH) (TEMP31 VALUE)>
+TAG59
+                   <INTGO>
+                   <EMPUV? TEMP32 + TAG58>
+                   <NTHUV TEMP32 1 = STACK>
+                   <RESTUV TEMP32 1 = TEMP32 (TYPE VECTOR)>
+                   <ADD TEMP31 1 = TEMP31 (TYPE FIX)>
+                   <JUMP + TAG59>
+TAG58
+                   <CALL '\1aT$CHANNEL-OPEN TEMP31 = TEMP31>
+PHRASE57
+                   <TYPE? TEMP31 <TYPE-CODE FALSE> - COND37>
+                   <FRAME '\1aI$STD-ERROR>
+                   <PUSH NAME8>
+                   <DEAD NAME8>
+                   <PUSH TEMP31>
+                   <DEAD TEMP31>
+                   <CALL '\1aI$STD-ERROR 2 = TEMP31>
+                   <JUMP + COND37>
+PHRASE38
+                   <FRAME '\1aI$STD-ERROR>
+                   <PUSH NAME8>
+                   <DEAD NAME8>
+                   <PUSH NEW?12>
+                   <DEAD NEW?12>
+                   <CALL '\1aI$STD-ERROR 2 = TEMP31>
+COND37
+                   <IFSYS "TOPS20">
+                   <ADJ -102>
+                   <ENDIF "TOPS20">
+                   <IFSYS "VAX">
+                   <ADJ -127>
+                   <ENDIF "VAX">
+                   <RETURN TEMP31>
+                   <DEAD TEMP31>
+                   <END \1aT$GEN-OPEN>
+#WORD *32443632156*
+<GFCN \1aX$VALUE? ("VALUE" <OR FIX STRING> ATOM) ATM4>
+                   <TEMP TEMP8>
+                   <INTGO>
+                   <GEN-ASSIGNED? ATM4 - PHRASE7>
+                   <GEN-LVAL ATM4 = TEMP8>
+                   <DEAD ATM4>
+                   <JUMP + PHRASE12>
+PHRASE7
+                   <NTHR ATM4 1 = TEMP8 (RECORD-TYPE ATOM) (BRANCH-FALSE + TAG14)>
+                   <TYPE? TEMP8 <TYPE-CODE FALSE> + TAG14>
+                   <NTHR TEMP8 1 = TEMP8 (RECORD-TYPE GBIND)>
+                   <TYPE? TEMP8 <TYPE-CODE UNBOUND> - TAG13>
+                   <DEAD TEMP8>
+TAG14
+                   <SET TEMP8 %<> (TYPE FALSE)>
+                   <JUMP + PHRASE12>
+TAG13
+                   <GVAL ATM4 = TEMP8>
+                   <DEAD ATM4>
+PHRASE12
+                   <TYPE? TEMP8 <TYPE-CODE FALSE> + BOOL18>
+                   <TYPE? TEMP8 <TYPE-CODE FIX> + BOOL18>
+                   <EMPUS? TEMP8 - PHRASE17 (TYPE STRING)>
+BOOL18
+                   <RETURN 0>
+PHRASE17
+                   <RETURN TEMP8>
+                   <DEAD TEMP8>
+                   <END \1aX$VALUE?>
+#WORD *21075024667*
+<GFCN \1aT$UNAME ("VALUE" STRING)>
+                   <TEMP ST5:STRING UNUM4:FIX>
+                   <INTGO>
+                   <GVAL 'I$NAMSTR = ST5>
+                   <SYSOP 'GJINF (RETURN 1) = UNUM4>
+                   <SYSOP 'DIRST ST5 UNUM4>
+                   <DEAD ST5 UNUM4>
+                   <FRAME '\1aI$GET-STRING>
+                   <GVAL 'I$NAMSTR = STACK>
+                   <CALL '\1aI$GET-STRING 1 = ST5>
+                   <RETURN ST5>
+                   <DEAD ST5>
+                   <END \1aT$UNAME>
+#WORD *35714303505*
+<GFCN \1aT$GET-CONNECTED-DIR ("VALUE" ANY)>
+                   <TEMP ST5:STRING GCD9 TEMP15>
+                   <INTGO>
+                   <GVAL 'I$NAMSTR = ST5>
+                   <SYSOP 'GJINF (RETURN 2) = GCD9>
+                   <SYSOP 'DIRST ST5 GCD9>
+                   <DEAD ST5 GCD9>
+                   <FRAME '\1aI$GET-STRING>
+                   <GVAL 'I$NAMSTR = STACK>
+                   <CALL '\1aI$GET-STRING 1 = ST5>
+                   <SET GCD9 ST5>
+                   <EMPUS? GCD9 + TAG11>
+                   <LOOP (GCD9 LENGTH VALUE)>
+TAG13
+                   <NTHUS GCD9 1 = TEMP15>
+                   <VEQUAL? TEMP15 !\: + TAG12>
+                   <DEAD TEMP15>
+                   <RESTUS GCD9 1 = GCD9 (TYPE STRING)>
+                   <EMPUS? GCD9 - TAG13>
+TAG11
+                   <SET GCD9 %<> (TYPE FALSE)>
+TAG12
+                   <LENUS ST5 = TEMP15 (TYPE FIX)>
+                   <PUTUS ST5 TEMP15 !\\0>
+                   <DEAD TEMP15>
+                   <FRAME '\1aI$GET-STRING>
+                   <RESTUS GCD9 2 = STACK (TYPE STRING)>
+                   <CALL '\1aI$GET-STRING 1 = TEMP15>
+                   <PUTUS GCD9 1 !\\0>
+                   <DEAD GCD9>
+                   <FRAME '\1aI$GET-STRING>
+                   <PUSH ST5>
+                   <DEAD ST5>
+                   <CALL '\1aI$GET-STRING 1 = ST5>
+                   <PUSH TEMP15>
+                   <DEAD TEMP15>
+                   <PUSH ST5>
+                   <DEAD ST5>
+                   <MRETURN 2 0>
+                   <END \1aT$GET-CONNECTED-DIR>
+#WORD *22677560412*
+<GFCN \1aI$GET-STRING ("VALUE" STRING STRING) ST4>
+                   <TEMP NST5 TEMP13>
+                   <INTGO>
+                   <SET NST5 ST4>
+                   <EMPUS? NST5 + PHRASE8>
+                   <LOOP (NST5 LENGTH VALUE)>
+TAG11
+                   <NTHUS NST5 1 = TEMP13>
+                   <VEQUAL? TEMP13 !\\0 + TAG10>
+                   <DEAD TEMP13>
+                   <RESTUS NST5 1 = NST5 (TYPE STRING)>
+                   <EMPUS? NST5 - TAG11>
+                   <JUMP + PHRASE8>
+TAG10
+                   <LENUS ST4 = TEMP13 (TYPE FIX)>
+                   <LENUS NST5 = NST5 (TYPE FIX)>
+                   <SUB TEMP13 NST5 = TEMP13 (TYPE FIX)>
+                   <DEAD NST5>
+                   <UUBLOCK <TYPE-CODE STRING> TEMP13 = NST5 (TYPE STRING)>
+                   <MOVE-STRING ST4 NST5 TEMP13 (NO-OVERLAP T)>
+                   <DEAD ST4 TEMP13>
+                   <RETURN NST5>
+                   <DEAD NST5>
+PHRASE8
+                   <PUSH ST4>
+                   <DEAD ST4>
+                   <UBLOCK <TYPE-CODE STRING> 1 = NST5 (TYPE STRING)>
+                   <RETURN NST5>
+                   <DEAD NST5>
+                   <END \1aI$GET-STRING>
\ No newline at end of file