Machine-Independent MDL for TOPS-20 and VAX.
[pdp10-muddle.git] / mim / development / mim / mimc / mimc.mload
diff --git a/mim/development/mim/mimc/mimc.mload b/mim/development/mim/mimc/mimc.mload
new file mode 100644 (file)
index 0000000..300fb6a
--- /dev/null
@@ -0,0 +1,146 @@
+
+<BLOCK (<ROOT>)>
+
+<COND (<NOT <GASSIGNED? ITUPLE>>  <SETG ITUPLE ITUPLE>)>
+<COND (<NOT <GASSIGNED? TUPLE>> <SETG TUPLE TUPLE>)>
+
+STACK
+
+MULTI-SET MULTI
+
+<COND (<NOT <GASSIGNED? MULTI-SET> > <FLOAD "MSETC.MSUBR">)>
+
+FGETBITS
+
+FPUTBITS
+
+<SETG MIM T>
+
+<ENDBLOCK>
+
+<SET REDEFINE T>
+
+<BLOCK (<ROOT>)>
+
+UNSPECIAL
+
+ELSE
+
+CALL
+
+ALT-DECL
+
+T$UNBOUND
+
+<ENDBLOCK>
+
+<FLOAD "ROOT-STUFF.MUD">
+
+<FLOAD "PS:<MIMLIB>CBITS">
+
+<MAPF <>
+      <FUNCTION (X) <PACKAGE .X> <ENDPACKAGE>> 
+                  '("ISTRUC" "COMSUB" "BITTST" "CBACK" "CONFOR"
+                   "CPRINT" "INFCMP" "CASE"
+                   "SPCGEN")>
+
+
+<SETG GROUPS <MAPF ,LIST
+                  <FUNCTION (NM "AUX" (CHN <>)
+                                      TT)
+                       <USE .NM>
+                       <DROP .NM>>
+                  <SETG PCKS '("COMPDEC" "CDRIVE" "PASS1"  "SYMANA" "CARANA"
+                               "STRANA" "NOTANA" "MAPANA" "CODGEN"
+                               "CARGEN" "ADVMESS" "NOTGEN" "NEWREP" "STRGEN"
+                               "MMQGEN" "LNQGEN" "ALLR" "BUILDL" "MAPGEN"
+                               "MIMGEN" "COMFIL" "SUBRTY" "BITSGEN")>>>
+
+<SET READ-TABLE ,READ-TABLE>
+
+<BLOCK (<ROOT>)>
+
+DBG UDBG PD UPD C R
+<SETG CALL `CALL>
+<ENDBLOCK>
+
+<DEFINE DBG () <USE-TOTAL !,PCKS>>
+
+<DEFINE UDBG () <DROP !,PCKS>>
+<USE "FINDATOM">
+<USE "CDRIVE">
+<USE "COMPDEC">
+<USE "COMFIL">
+
+<DEFINE R (X "OPTIONAL" CH "AUX" (Y <COMPILE .X>) (NO-BQ <>))
+       #DECL ((NO-BQ) <SPECIAL ANY>)
+       <COND (<NOT <ASSIGNED? CH>>
+              <COND (,DF-O
+                     <SET CH ,OUTCHAN>)
+                    (ELSE
+                     <SET CH <OPEN "PRINT" <STRING <SPNAME .X> ".MIMA">>>)>)
+             (<TYPE? .CH STRING>
+              <SET CH <OPEN "PRINT" .CH>>)
+             (<NOT <TYPE? .CH CHANNEL>>
+              <SET CH ,OUTCHAN>)>
+       <COND (.CH
+              <COND (<N==? .CH ,OUTCHAN> <SET NO-BQ T>)>
+              <MAPF <>
+                    <FUNCTION (Z)
+                         <COND (<TYPE? .Z ATOM> <PRIN1 .Z .CH>)
+                               (ELSE
+                                <PRINC "       " .CH>
+                                <PRIN1 .Z .CH>)>
+                         <CRLF .CH>>
+                    .Y>
+              <COND (<N==? .CH ,OUTCHAN> <SET NO-BQ <>><CLOSE .CH>)>
+              T)
+             (ELSE .CH)>>
+
+
+
+<DEFINE C ("OPTIONAL" (REST-OFF 0))
+       <MAPF <>
+             <FUNCTION (I)
+                  <COND (<TYPE? .I ATOM> <PRIN1 .I>)
+                        (ELSE
+                         <PRINC "      ">
+                         <PRIN1 .I>)>
+                  <CRLF>>
+             <REST .CODE-START .REST-OFF>>
+       T>
+
+<DROP "COMPDEC">
+
+<DEFINE PD (PCK "AUX" (PN <COND (<TYPE? .PCK ATOM> <SPNAME .PCK>)
+                               (ELSE .PCK)>))
+       <BLOCK ,<LOOKUP .PN #OBLIST PACKAGE>>
+       T>
+
+<DEFINE UPD () <ENDBLOCK> T>
+
+<SETG DF-O T>
+
+<USE "CHKDCL">
+
+<SETG INTERPRETER-IMPLEMENTOR? T>
+
+<DROP "CHKDCL">
+
+<FLOAD "<MIMC.MIM>MIMC.ASK">
+
+<FLOAD "<MIM.BOOT>NBOOT.COMPIL">
+
+<USE "PURIFY">
+
+<PURIFY-WORLD>
+
+<SETG CTLZ-PRINT!-COMPDEC!-PACKAGE T>
+
+<PROG () <PRINC "Invoke <SAV> to create a SAVE file.">
+         <CRLF>
+        <PRINT <COPY-GC>>>
+
+<FEATURES "COMPILER" ("MACHINE" "TOPS20")("SUBSYSTEM" "MIMC")
+         ("ENVIRONMENT" "MIM")>
\ No newline at end of file