2 <NEWTYPE MUDREF!-OP WORD>
6 <DECLARE ("VALUE" MUDREF!-OP CHARACTER)>
12 <INTERNAL-ENTRY MUDR1 1>
14 <SUB TP* [<2 (2)>]> ; "CLEAN OFF USELESS ARGUMENT"
15 <PUSH P* [0]> ; "NUMBER OF ARGUMENTS TO STRING"
16 <MOVSI A* <TYPE-CODE ATOM>> ; "GET CHANNEL AND PUSH IT"
17 <MOVE B* <MQUOTE INCHAN>>
30 <CAIG B* *132*> ; "Between 0 and Z?"
33 <CAILE B* *71*> ; "Skip if digit."
34 <CAILE B* *100*> ; "Skip if an upper case letter."
35 LP3 <SKIPA B* (TP)> ; "GET BACK CHANNEL"
43 <DPB B* [<(*000600* ) A>]>
47 ISYM <MOVSI C* (<CHTYPE <* *50* *50* *50* *50* *50* *50*> OPCODE>)>
49 <MOVE E* [<(*440600*) (P)>]>
53 <SUBI A* <- <ASCII !"0> 33>>
54 <CAIL A* <- <ASCII !"A> <ASCII !"0> -1>>
55 <SUBI A* <- <ASCII !"A> <ASCII !"0> *12*>>
66 ISYM3 <MOVSI A* <TYPE-CODE MUDREF!-OP >>
72 <SUB-ENTRY OUTPUT-MUDREF ("VALUE" ANY MUDREF!-OP )>
78 <INTERNAL-ENTRY IOUT 1>
80 <MOVSI A* <TYPE-CODE ATOM>>
81 <MOVE B* <MQUOTE OUTCHAN>>
86 <CAIE E* <TYPE-CODE CHANNEL>>
92 <MOVEI D* 13> ; "Carriage ret lf first"
95 <MOVSI A* <TYPE-CODE CHANNEL>>
98 <MOVSI A* <TYPE-CODE CHANNEL>>
101 STARTP <MOVEI D* <ASCII !"|>>
103 LPS <MOVE D* -2 (TP)>
107 <MOVEI D* <ASCII !" >>
109 LEAVE <SUB TP* [<2 (2)>]>
119 <ADDI D* <- <ASCII !"0> 1>>
120 <CAILE D* <ASCII !"9>>
121 <ADDI D* <- <ASCII !"A> <ASCII !"9> 1>>
122 <CAILE D* <ASCII !"Z>>
123 <SUBI D* <- <ASCII !"Z> <ASCII !"#> -1>>
124 <CAIN D* <ASCII !"#>>
125 <MOVEI D* <ASCII !".>>
126 <CAIN D* <ASCII !"/>>