)> PAGE-ADDRESS ADDRESS-PAGE LHW RHW PUTRHW PUTLHW ISYSOP ISYSCALL TYPE-ENTRY T$TYPE-ENTRY T$ATOM 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$$INT-QUEUE M$$INT-QUEUE-R 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" )> > )> STRING >> STRING >> STRING >> STRING >> T$GBIND STRING >> T$MSUBR>> ANY [2 ] FIX>> ANY >> [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>> 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) 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" ;"!$" ;"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 T$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>) ()>> '["WRITE" "SELECT" "READ" "WAIT" "SIGPAUSE"]>> > '.VAL>) ()>> > >) ("UNIX" >)>> >) ("UNIX" >)>> .NEW>) ("UNIX" .NEW>)>> .NEW>) ("UNIX" .NEW>)>> ) ("UNIX" 2>)>> ) ("UNIX" -2>)>>