Machine-Independent MDL for TOPS-20 and VAX.
[pdp10-muddle.git] / mim / development / mim / 20 / default.mud
diff --git a/mim/development/mim/20/default.mud b/mim/development/mim/20/default.mud
new file mode 100644 (file)
index 0000000..2974ff2
--- /dev/null
@@ -0,0 +1,110 @@
+<DEFINE X$DEF-GET-MODE (CHANNEL OPER "AUX" (DATA <T$CHANNEL-DATA .CHANNEL>)
+                       (JFN <1 .DATA>) STS)
+  #DECL ((CHANNEL) T$CHANNEL (DATA) <<PRIMTYPE VECTOR> FIX> (STS) FIX)
+  <COND (<SET STS <CALL SYSOP GTSTS <RHW .JFN> '(RETURN 2)>>
+        <COND (<G=? .STS 0> "CLOSED")
+              (<NOT <0? <ANDB .STS ,GS-WRF>>>
+               <COND (<0? <ANDB .STS ,GS-RND>> "APPEND")
+                     (T "MODIFY")>)
+              (<NOT <0? <ANDB .STS ,GS-RDF>>>
+               "READ")>)>>
+
+<DEFINE X$DEF-GET-BYTE-SIZE (CHANNEL OPER "AUX" (DATA <T$CHANNEL-DATA .CHANNEL>)
+                            (JFN <1 .DATA>) SZ)
+  #DECL ((CHANNEL) T$CHANNEL (DATA) <<PRIMTYPE VECTOR> FIX>)
+  <COND (<SET SZ <CALL SYSOP RFBSZ .JFN '(RETURN 2)>>
+        <COND (<==? .SZ 7> "ASCII")
+              (<==? .SZ 8> "8BIT")
+              (<==? .SZ 36> "BINARY")
+              (T .SZ)>)>>
+
+<DEFINE X$DEF-SHORT-NAME (CHANNEL OPER "AUX" (DATA <T$CHANNEL-DATA .CHANNEL>))
+  #DECL ((CHANNEL) T$CHANNEL (DATA) <<PRIMTYPE VECTOR> FIX>)
+  <I$DO-JFNS <1 .DATA> *001110000001*>>
+
+<DEFINE X$DEF-NM1 (CHANNEL OPER "AUX" (DATA <T$CHANNEL-DATA .CHANNEL>))
+  #DECL ((CHANNEL) T$CHANNEL (DATA) <<PRIMTYPE VECTOR> FIX>)
+  <I$DO-JFNS <1 .DATA>  *001000000000*>>
+
+<DEFINE X$DEF-NM2 (CHANNEL OPER "AUX" (DATA <T$CHANNEL-DATA .CHANNEL>))
+  #DECL ((CHANNEL) T$CHANNEL (DATA) <<PRIMTYPE VECTOR> FIX>)
+  <I$DO-JFNS <1 .DATA>  *000100000000*>>
+
+<DEFINE X$DEF-DEV (CHANNEL OPER "AUX" (DATA <T$CHANNEL-DATA .CHANNEL>))
+  #DECL ((CHANNEL) T$CHANNEL (DATA) <<PRIMTYPE VECTOR> FIX>)
+  <I$DO-JFNS <1 .DATA>  *100000000000*>>
+
+<DEFINE X$DEF-SNM (CHANNEL OPER "AUX" STR (DATA <T$CHANNEL-DATA .CHANNEL>))
+  #DECL ((CHANNEL) T$CHANNEL (DATA) <<PRIMTYPE VECTOR> FIX>
+        (STR) <OR FALSE STRING>)
+  <SET STR <I$DO-JFNS <1 .DATA>  *010000000000*>>
+  <COND (<AND <OR <NOT <0? <GETBITS <1 .DATA> <BITS 18 18>>>>
+                 <==? <T$GET-DEVICE-TYPE <1 .DATA>> ,/DVDSK>>
+             <OR <NOT .STR>
+                 <EMPTY? .STR>>>
+        <T$GET-CONNECTED-DIR>)
+       (.STR)>>
+
+<DEFINE X$DEF-NAME (CHANNEL OPER "OPT" (BITS *37*)
+                   "AUX" (DATA <T$CHANNEL-DATA .CHANNEL>) (ARGBITS 1))
+  #DECL ((CHANNEL) T$CHANNEL (DATA) <<PRIMTYPE VECTOR> FIX>)
+  <COND (<NOT <0? <ANDB .BITS *20*>>>
+        <SET ARGBITS <ORB .ARGBITS *100000000000*>>)>
+  <COND (<NOT <0? <ANDB .BITS *10*>>>
+        <SET ARGBITS <ORB .ARGBITS *010000000000*>>)>
+  <COND (<NOT <0? <ANDB .BITS 4>>>
+        <SET ARGBITS <ORB .ARGBITS *001000000000*>>)>
+  <COND (<NOT <0? <ANDB .BITS 2>>>
+        <SET ARGBITS <ORB .ARGBITS *000100000000*>>)>
+  <COND (<NOT <0? <ANDB .BITS 1>>>
+        <SET ARGBITS <ORB .ARGBITS *000010000000*>>)>
+  <I$DO-JFNS <1 .DATA> .ARGBITS>>
+
+<DEFINE I$DO-JFNS (JFN BITS "AUX" CT (STR ,I$NAMSTR) NS)
+  #DECL ((JFN BITS) FIX (CT) <OR FIX FALSE> (NS STR) STRING)
+  <SET JFN <ANDB .JFN *777777*>>
+  <COND (<OR <==? .JFN ,/PRIOU>
+            <==? .JFN ,/PRIIN>>
+        <COND (<0? <ANDB .BITS  *100000000000*>>
+               "")
+              (<0? <ANDB .BITS 1>>
+               "TTY")
+              (T
+               "TTY:")>)
+       (<SET CT <CALL SYSOP JFNS .STR .JFN .BITS 0>>
+        <SET NS <ISTRING .CT>>
+        <MAPR <>
+          <FUNCTION (OLD NEW)
+            <1 .NEW <1 .OLD>>>
+          .STR .NS>
+        .NS)>>
+
+<DEFINE X$DEF-FLUSH (CHANNEL OPER "AUX" (DATA <T$CHANNEL-DATA .CHANNEL>) VAL)
+  #DECL ((CHANNEL) T$CHANNEL (DATA) <<PRIMTYPE VECTOR> FIX>)
+  <COND
+   (<SET VAL
+        <CALL SYSOP CLOSF <ORB <GETBITS <1 .DATA> <BITS 18 0>> *4000000000*>>>
+    .VAL)
+   (T .VAL)>>
+
+<DEFINE X$DEF-HACK-DATE (CHANNEL OPR "OPTIONAL" NEW
+                         "AUX" (DATA <T$CHANNEL-DATA .CHANNEL>) UV
+                               (JFN <ANDB <1 .DATA> *777777*>))
+  #DECL ((CHANNEL) T$CHANNEL (OPR) T$ATOM (NEW) FIX (DATA) <<PRIMTYPE VECTOR> FIX>
+        (UV) <UVECTOR [REST FIX]>)
+  <COND (<NOT <GASSIGNED? DATEU>> <SETG DATEU <IUVECTOR 3 0>>)>
+  <SET UV ,DATEU>
+  <COND (<NOT <ASSIGNED? NEW>>
+        <COND (<CALL SYSOP RFTAD .JFN .UV 3>
+               <COND (<==? .OPR T$READ-DATE>
+                      <3 .UV>)
+                     (<1 .UV>)>)>)
+       (T
+        <1 .UV -1>
+        <2 .UV -1>
+        <3 .UV -1>
+        <COND (<==? .OPR T$READ-DATE>
+               <3 .UV .NEW>)
+              (<1 .UV .NEW>)>
+        <COND (<CALL SYSOP SFTAD .JFN .UV 3>
+               .NEW)>)>>
\ No newline at end of file