Machine-Independent MDL for TOPS-20 and VAX.
[pdp10-muddle.git] / mim / development / mim / 20 / default.mud
1 <DEFINE X$DEF-GET-MODE (CHANNEL OPER "AUX" (DATA <T$CHANNEL-DATA .CHANNEL>)
2                         (JFN <1 .DATA>) STS)
3   #DECL ((CHANNEL) T$CHANNEL (DATA) <<PRIMTYPE VECTOR> FIX> (STS) FIX)
4   <COND (<SET STS <CALL SYSOP GTSTS <RHW .JFN> '(RETURN 2)>>
5          <COND (<G=? .STS 0> "CLOSED")
6                (<NOT <0? <ANDB .STS ,GS-WRF>>>
7                 <COND (<0? <ANDB .STS ,GS-RND>> "APPEND")
8                       (T "MODIFY")>)
9                (<NOT <0? <ANDB .STS ,GS-RDF>>>
10                 "READ")>)>>
11
12 <DEFINE X$DEF-GET-BYTE-SIZE (CHANNEL OPER "AUX" (DATA <T$CHANNEL-DATA .CHANNEL>)
13                              (JFN <1 .DATA>) SZ)
14   #DECL ((CHANNEL) T$CHANNEL (DATA) <<PRIMTYPE VECTOR> FIX>)
15   <COND (<SET SZ <CALL SYSOP RFBSZ .JFN '(RETURN 2)>>
16          <COND (<==? .SZ 7> "ASCII")
17                (<==? .SZ 8> "8BIT")
18                (<==? .SZ 36> "BINARY")
19                (T .SZ)>)>>
20
21 <DEFINE X$DEF-SHORT-NAME (CHANNEL OPER "AUX" (DATA <T$CHANNEL-DATA .CHANNEL>))
22   #DECL ((CHANNEL) T$CHANNEL (DATA) <<PRIMTYPE VECTOR> FIX>)
23   <I$DO-JFNS <1 .DATA> *001110000001*>>
24
25 <DEFINE X$DEF-NM1 (CHANNEL OPER "AUX" (DATA <T$CHANNEL-DATA .CHANNEL>))
26   #DECL ((CHANNEL) T$CHANNEL (DATA) <<PRIMTYPE VECTOR> FIX>)
27   <I$DO-JFNS <1 .DATA>  *001000000000*>>
28
29 <DEFINE X$DEF-NM2 (CHANNEL OPER "AUX" (DATA <T$CHANNEL-DATA .CHANNEL>))
30   #DECL ((CHANNEL) T$CHANNEL (DATA) <<PRIMTYPE VECTOR> FIX>)
31   <I$DO-JFNS <1 .DATA>  *000100000000*>>
32
33 <DEFINE X$DEF-DEV (CHANNEL OPER "AUX" (DATA <T$CHANNEL-DATA .CHANNEL>))
34   #DECL ((CHANNEL) T$CHANNEL (DATA) <<PRIMTYPE VECTOR> FIX>)
35   <I$DO-JFNS <1 .DATA>  *100000000000*>>
36
37 <DEFINE X$DEF-SNM (CHANNEL OPER "AUX" STR (DATA <T$CHANNEL-DATA .CHANNEL>))
38   #DECL ((CHANNEL) T$CHANNEL (DATA) <<PRIMTYPE VECTOR> FIX>
39          (STR) <OR FALSE STRING>)
40   <SET STR <I$DO-JFNS <1 .DATA>  *010000000000*>>
41   <COND (<AND <OR <NOT <0? <GETBITS <1 .DATA> <BITS 18 18>>>>
42                   <==? <T$GET-DEVICE-TYPE <1 .DATA>> ,/DVDSK>>
43               <OR <NOT .STR>
44                   <EMPTY? .STR>>>
45          <T$GET-CONNECTED-DIR>)
46         (.STR)>>
47
48 <DEFINE X$DEF-NAME (CHANNEL OPER "OPT" (BITS *37*)
49                     "AUX" (DATA <T$CHANNEL-DATA .CHANNEL>) (ARGBITS 1))
50   #DECL ((CHANNEL) T$CHANNEL (DATA) <<PRIMTYPE VECTOR> FIX>)
51   <COND (<NOT <0? <ANDB .BITS *20*>>>
52          <SET ARGBITS <ORB .ARGBITS *100000000000*>>)>
53   <COND (<NOT <0? <ANDB .BITS *10*>>>
54          <SET ARGBITS <ORB .ARGBITS *010000000000*>>)>
55   <COND (<NOT <0? <ANDB .BITS 4>>>
56          <SET ARGBITS <ORB .ARGBITS *001000000000*>>)>
57   <COND (<NOT <0? <ANDB .BITS 2>>>
58          <SET ARGBITS <ORB .ARGBITS *000100000000*>>)>
59   <COND (<NOT <0? <ANDB .BITS 1>>>
60          <SET ARGBITS <ORB .ARGBITS *000010000000*>>)>
61   <I$DO-JFNS <1 .DATA> .ARGBITS>>
62
63 <DEFINE I$DO-JFNS (JFN BITS "AUX" CT (STR ,I$NAMSTR) NS)
64   #DECL ((JFN BITS) FIX (CT) <OR FIX FALSE> (NS STR) STRING)
65   <SET JFN <ANDB .JFN *777777*>>
66   <COND (<OR <==? .JFN ,/PRIOU>
67              <==? .JFN ,/PRIIN>>
68          <COND (<0? <ANDB .BITS  *100000000000*>>
69                 "")
70                (<0? <ANDB .BITS 1>>
71                 "TTY")
72                (T
73                 "TTY:")>)
74         (<SET CT <CALL SYSOP JFNS .STR .JFN .BITS 0>>
75          <SET NS <ISTRING .CT>>
76          <MAPR <>
77            <FUNCTION (OLD NEW)
78              <1 .NEW <1 .OLD>>>
79            .STR .NS>
80          .NS)>>
81
82 <DEFINE X$DEF-FLUSH (CHANNEL OPER "AUX" (DATA <T$CHANNEL-DATA .CHANNEL>) VAL)
83   #DECL ((CHANNEL) T$CHANNEL (DATA) <<PRIMTYPE VECTOR> FIX>)
84   <COND
85    (<SET VAL
86          <CALL SYSOP CLOSF <ORB <GETBITS <1 .DATA> <BITS 18 0>> *4000000000*>>>
87     .VAL)
88    (T .VAL)>>
89
90 <DEFINE X$DEF-HACK-DATE (CHANNEL OPR "OPTIONAL" NEW
91                           "AUX" (DATA <T$CHANNEL-DATA .CHANNEL>) UV
92                                 (JFN <ANDB <1 .DATA> *777777*>))
93   #DECL ((CHANNEL) T$CHANNEL (OPR) T$ATOM (NEW) FIX (DATA) <<PRIMTYPE VECTOR> FIX>
94          (UV) <UVECTOR [REST FIX]>)
95   <COND (<NOT <GASSIGNED? DATEU>> <SETG DATEU <IUVECTOR 3 0>>)>
96   <SET UV ,DATEU>
97   <COND (<NOT <ASSIGNED? NEW>>
98          <COND (<CALL SYSOP RFTAD .JFN .UV 3>
99                 <COND (<==? .OPR T$READ-DATE>
100                        <3 .UV>)
101                       (<1 .UV>)>)>)
102         (T
103          <1 .UV -1>
104          <2 .UV -1>
105          <3 .UV -1>
106          <COND (<==? .OPR T$READ-DATE>
107                 <3 .UV .NEW>)
108                (<1 .UV .NEW>)>
109          <COND (<CALL SYSOP SFTAD .JFN .UV 3>
110                 .NEW)>)>>