X-Git-Url: https://jxself.org/git/?p=pdp10-muddle.git;a=blobdiff_plain;f=mim%2Fdevelopment%2Fmim%2Fboot%2Fnboot.compil;fp=mim%2Fdevelopment%2Fmim%2Fboot%2Fnboot.compil;h=e1cca3bf98ce6671d3aecb447982e85363a9cca2;hp=0000000000000000000000000000000000000000;hb=d73ace3f3292e320b461b8fcd2e9f5dc5d9684d7;hpb=d530283ea60fb0ddcc28e9c5bd072456afe06e07 diff --git a/mim/development/mim/boot/nboot.compil b/mim/development/mim/boot/nboot.compil new file mode 100644 index 0000000..e1cca3b --- /dev/null +++ b/mim/development/mim/boot/nboot.compil @@ -0,0 +1,942 @@ + +)> +PAGE-ADDRESS +ADDRESS-PAGE +LHW +RHW +PUTRHW +PUTLHW +ISYSOP +ISYSCALL +TYPE-ENTRY +T$TYPE-ENTRY +T$FRAME +MUD-CHAN +ADECL +CLASS +HANDLER +READ-INFO +PCODE +ZONE +AREA +MSUBR +MCODE +IMSUBR +GC-PARAMS GC-FCN MOVE-FCN GROW-FCN ZONE-ID ALL-SPACES GC-CTL +GCC-MIN-SPACE GCC-MS-FREQ GCC-MS-CT +GCSBOT GCSMIN GCSMAX +GCSFLG ABOT AMIN AMAX AFLGS AF-EXTRA AF-READ-ONLY CURRENT-ZONE +RCL RCLV +NEW-CHANNEL-TYPE +M$$NTYPE M$$PTYPE M$$APPLY M$$NEVAL M$$PRINT M$$TYWRD M$$TDECL +M$$TYSAT M$$TYOFF +M$$FRM-MSUB +M$$GVAL M$$LVAL M$$PNAM M$$OBLS M$$TYPE M$$ATML +M$$VALU M$$ATOM M$$DECL M$$PBND M$$PATM M$$UBID M$$BNDL +M$$H-CLASS M$$H-FUNCTION M$$H-PRIORITY M$$H-ARG M$$H-NEXT +M$$C-NAME M$$C-ENABLE M$$C-HANDLER M$$C-CHANNEL M$$C-PRIORITY +M$$INFINT M$$CONTINT M$$PIPEINT M$$IOINT M$$URGINT +M$$INT-QUEUE +M$$INT-LEVEL M$$INT-CLASSES +M$$OFF-FIX M$$OFF-DCL M$$OFF-ELT +DB-NAME DB-CHANNEL DB +MIN-NEW-SPACE +CHANNEL-TYPE CHANNEL-SCRIPT CHANNEL-NAME CHANNEL-OPEN? +CHANNEL-DATA CHANNEL-USER +MC-HLEN MC-HPOS MC-VLEN MC-VPOS MC-ORAD MC-BITS MC-IRAD +BIT-ACCESS BIT-INTELLIGENT + + +; "Read character types" + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +; "PRINT's magic finite-state machine for atoms" + + ; "# states, not counting terminals" +> ; "No initial \ needed" +> ; "Initial \ needed" +> ; "Initial \ needed, done otherwise" + ; "Slot in state for end of string" + + +)> + +> + )> + + + + + GBIND> + LBIND> + STRING + > + >>> + +)> + > + +> + + + +> + + GBIND> + LBIND> + STRING + > + >>> +> + GBIND> + LBIND> + STRING + > + >>> +> + GBIND> + LBIND> + STRING + > + >>> + + + GBIND + LBIND> + STRING + > + >>> + +> + MSUBR>> +> + + + + +> + + +> + ANY + + >>> + + ANY + + > + [2 >] + FIX>> + + + + + + + + [REST FIX]>> + MCODE T$ATOM LIST [REST ANY]>> + + + + + + )> + + + !\T> + <==? <2 .STR> !\$>>> + ) + (T 10 ,POBL>)>> + + + + 10 ,POBL>> + + + + +; "Stuff for compiling BOOT i/o" + ;"channel identifier" + ;"mode: PRINT, READ, etc." + ;"device name" + ;"file name" + ;"horizontal line length" + ;"horizontal position" + ;"vertical length" + ;"vertical position" + ;"radix" + ;"channel buffer" + ;"buffer valid length" + ;"buffer position" + ;"internal: 0=normal, 1=PRINC, 2=UNPARSE" + ;"read ahead character (or FALSE CHARACTER)" + ;"Frame to go to in flatsize" + + + +)> + FIX [3 STRING] [5 FIX] STRING [3 FIX]>> + + + ATOM > + ]>>> + + + + + + + +> +]>> + +)> + + + + ATOM + + + + ANY + ANY>> +> + + + ;"Type of CHANNEL" + ;"Scripting CHANNEL" + ;"Passed to CHANNEL-OPEN" + ;"Is CHANNEL still open?" + ;"Device-dependent stuff" + ;"Application-dependent stuff" + + + + + [6 FIX] + + + FIX + FIX>> + + [6 FIX] + + + FIX + FIX>> + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +;"Internal modes of a channel." + ; "Bit--on if PRINC" + ; "UNPARSE" + ; "FLATSIZE" + + +;"Some globals used in PRINT." + ;"Maximum size of UNPARSE buffer." + ;"Maximum number of s in a ." + ;"Number of significant digits in a FLOAT." + ;"Number of decimal places in a FLOAT." + ;"Size of temporary buffer." + + + +> + + + +> + (BI$STR) STRING> + +;"Offsets for FRAME." + +;"More cretinous offsets" + + + +;"The FRAME's MSUBR." + + + +;"Unused - Saved PC" + + + +;"Number of arguments" + + + +;"FRAME Unique ID" + + + +;"The previous FRAME" + + + +;"Unused - Saved TP" + + + +;"We will hide here in simulation" + + + +;"The FRAME's BINDing." + + + +;"The FRAME's ACTIVATION." + + + + + +;"ATOM - offset to LVAL binding" + + + +;"ATOM - offset to GVAL binding" + + + +;"ATOM - offset to PNAME string" + + + +;"ATOM - offset to OBLIST (primtype ATOM)" + + + +;"ATOM - valid type TYPE-C or FALSE" + + + +;"ATOM - length of block for atom" + + + +;"Offsets for LBIND." + + + +;"BIND - value of this binding" + + + +;"BIND - ATOM that this binding represent" + + + +;"BIND - this binding's DECL or FALSE if none" + + + +;"BIND - closest previous binding block for any atom" + + + +;"BIND - closest previous binding block for this atom" + + + +;"BIND - unique bind id for this binding block" + + + +;"BIND - length of block for bind" + + + + ;"SAT code for FIX." + ;"SAT code for LIST." + ;"SAT code for RECORD." + ;"SAT code for TEMPLATE." + ;"SAT code for BYTES." + ;"SAT code for STRING." + ;"SAT code for UVECTOR." + ;"SAT code for VECTOR." + + ;"SAT codes for UBLOCK types." + + + + T$ATOM + T$ATOM + + + + T$TYPE-C + >> + + ATOM + ATOM + + + + TYPE-C + >> + + ;"TYPE name." + ;"PRIMTYPE name." + ;"Applicable for APPLYTYPE." + ;"Applicable for EVALTYPE." + ;"Applicable for PRINTTYPE." + ;"TYPE-WORD for this type." + ;"DECL for this type." + +;"Bit offset for TYPE-WORD slot." + + ;"The first three bits are used for SAT." + ;"Amount to LSH to get offset." + + + +;"Definition for ADECL." + + [2 ANY]>> + + ;"The VALUE of the ADECL." + ;"The DECL of the ADECL." + +;"Definition for OFFSET." + + FIX + >> + + + + + + + + + (I$INTCHAN) T$CHANNEL + (M$$PI/2 M$$LIMIT T$MINFL T$MAXFL I$PMINFL) FLOAT + (M$$OBLIST) ]>]> + (M$$OBLNAM) (M$$OBLSIZ) FIX + (M$$OBLSTK) ]>>>]> + (M$$TBIND) (M$$BINDID) FIX + (M$$OBLIST-ROOT M$$ONLIST-ERRORS M$$OBLIST-INTERRUPTS) T$OBLIST + (I$BREAKS I$BRACKS) STRING (I$POWERS) + (I$RDCHRSTR) + (M$$TYPE-UNSTRUC) + ;(M$$CHANLIST) ; + (M$$GBIND) (M$$UNBOUND) T$UNBOUND + (M$$TYP-COUNT) FIX (M$$TYP-NEW) STRING + (M$$TYP-GROUP) + (M$$TYPE-INFO) ]> + (M$$PRINT-TYPES M$$NEVAL-TYPES M$$APPLY-TYPES M$$LOCATIVE + M$$STRUCTURED) + (M$$INITIAL-TYPES) + >]> + (M$$NEWTYPE?) + (M$$ALLTYPES) + (M$$PRINT-TYPES M$$NEVAL-TYPES M$$APPLY-TYPES M$$LOCATIVE M$$STRUCTURED) + + (M$$FREE-FRAMES M$$FRAMES) + (M$$FRAME-ID) FIX + (M$$LBIND) + (M$$STRUCTURED) + (M$$RHI M$$RLOW I$MINFX I$MAXFX) FIX> + +;"Manifest GVALs for APPLY" + + ;"For the SUBR PROG." + ;"For the SUBR BIND." + ;"For the SUBR REPEAT." + ;"For the SUBR APPLY." + ;"For functional calls." + + + + + + + + +;"Offsets for MSUBR." + + ;"Code for the T$MSUBR." + ;"Name of the T$MSUBR." + ;"Decl of the T$MSUBR." + + + +> + + STRING + + + + FIX>> + + + + + + + + + + + + + + + + CLASS + + FIX + ANY + >> + + + + + + + + + + + (M$$INT-CLASSES) ]> + (M$$INT-LEVEL) FIX + (M$$EVALCLASS M$$CREATECLASS) CLASS> + +;"Some offsets for ASSOCIATIONs." + + + + + +;"*************************************************************** + * Some OFFSETs used in TEMPLATE * + ***************************************************************" + +;"NOTE: The following notation is used - + TDT - Template Data Table + TAT - Template Access Table + DT - Discriminant Table + TT - Temporary Table + ET - Element Table + PT - Position Table." + +;"ATOMs in that are used by TEMPLATE: + ANY, BOOLEAN, ENUM, FIX, SBOOL, STRUC." + +;"Newtype for the Template Access Table (TAT)." +> + + [2 FIX] [OPTIONAL ]>> + +> + +> + + ATOM FORM [3 FIX] VECTOR [REST DT-DECL]>> + +;"Table to store the TAT and TDT for all Templates." +>> +>> + +]> + (M$$R-TDT) ]>> + +;"Flags to indicate the type of template element." + ;"Boolean - off:BOOLEAN" + ;"Enumeration - off:(ENUM [obj])" + ;"Enumeration - off:(ENUM vec)" + ;"Sub-range - off:(FIX prim-fix low-lim high-lim)" + ;"Sub-range (S) - off:(SBOOL prim-fix low-lim high-lim)" + ;"Unstruc - off:type" + ;"Unstruc (S) - off:(SBOOL type)" + ;"Struc - off:struc" + ;"Struc (S) - off:(SBOOL struc)" + ;"Struc+lnt - off:(STRUC struc #-of-ele)" + ;"Struc+lnt (S) - off:(SBOOL struc #-of-ele)" + ;"Any - off:ANY" + + + +;"Offsets in the Template Access Table (TAT)." + ;"ATOM - Name of this template." + ;"FORM - Decl for this template." + ;"FIX - Offset of this template in the type table." + ;"FIX - Length info is stored here." + ;"FIX - Location of the discriminant type in record." + ;"VECTOR - Vector of discriminants." + ;"VECTOR - 1 word before start of discriminant field data." + ;"VECTOR - Beginning of each discriminant field data." + + + +;"Offsets in the Discriminant Table (DT)." + ;"FIX - Length of this discriminant type." + ;"FIX - Number of words required by this discriminant." + ;"VECTOR - (start of discriminant element data) - 1." + + + +;"Offsets in the Element Table (ET)." + ;"ATOM - Name of the offset for this element." + ;" - Decl for this element." + ;"FIX - Flag to indicate what this element is." + ;"FIX - Record offset for this element." + ;"FIX - Record offset for the SBOOL flag." + ;"FIX - Record offset for fix STRUCTURED length." + ;"VECTOR - Enumeration or Subrange information." + + + +;"Offsets in the Position Table (PT)." + ;"TYPE-C - Type code for this element." + ;"FIX - Length of structured or position of bit." + ;"FIX - First half-word location of storage in template." + ;"FIX - Length (in half-words) of storage in template." + + + +;"Number of half-words needed to store various MUDDLE objects." + ;"Half-words to store structured object length." + ;"Half-words to store object pointer or unstructured." + ;"Half-words to store object pointer and length." + ;"Half-words to store an ANY." + + + +;"Number of bits in a byte, half-word and word. -- Replaced to be computed + at run time" +; ;"Number of bits in 1/4 of a word." +; ;"Number of bits in a half-word." +; ;"Number of bits in a word." + +; + ;"Character to xlate to" + ;"Code of character to act like" + ;"True ==> break on this, else don't" + ;"Apply this to read object" + ;"Pass previously read object" + +; ;"!$" + ; "! followed by some escape-like character" + ;"Control close square bracket" + + + +']>>> + +> + + ;"TTY input jfn" + ;"TTY output jfn" + ;"Bits per word" + ;"Bits per byte" + ;"Words per page" + ;"characters per word" + ;"Amount to shift from 'word' address" + ;"8-bit bytes per word" + ;"Largest floating point number" + ;"Smallest f.p. number" + + + + + + + + + + + + ;"current read-table if any" + ;"characters available" + ;"CHANNEL" + ;"radix for numbers" + ;"decimal point seen flag" + ;"buffer used w/ access channels" + ;"bytes in buffer" + ;"re-read character" + + + + VECTOR> FIX + CHANNEL FIX > + > FIX CHARACTER + >>> + + + + +; "Stuff for MAPPUR and friends" + + [5 FIX]>> + [5 FIX]>> + + ; "Used to mark pages taken by mappur" + ; "File ID" + ; "DB index" + ; "Location in DB" + ; "Location in core" + ; "Length of code" + ; "length of entry" + + +; "Needed here for BOOT to compile" + +> + + >>) + (>>)> + + + + + +)> + + + + FIX + >>> + + + FIX + >>> + + + + + + + + + + + + + + + [16 FIX]>> + [16 FIX] [REST FIX]>> + + + + + + + + + + + [4 FIX]>> + [4 FIX]>> + + + + + + + + + + (I$ALL-ZONES) ]>> + + + + + +> +> + + + + + + '["BIN" "WAIT" "DISMS"]>> +
+ > + + '.VAL>) + ()>> + + + + '["WAIT" "SIGPAUSE" "READ" "READV" "WRITE" "WRITEV" + "CONNECT" "SELECT" "SEND" "RECV" "RECVMSG" "SENDMSG" + "SENDTO" "RECVFROM" "ACCEPT"]>> + + > + + '.VAL>) + ()>> + +> + +>) + ("UNIX" + >)>> +>) + ("UNIX" + >)>> + .NEW>) + ("UNIX" + .NEW>)>> + .NEW>) + ("UNIX" + .NEW>)>> +) + ("UNIX" + )>> +) + ("UNIX" + )>> + \ No newline at end of file