*COMDECK  COMSPBD - PREBINARY STRUCTURE DECLARATIONS. 
 PREBIN   TITLE  PREBINARY STRUCTURE DECLARATIONS 
 K.TAG    SPACE  4,30 
**        K.TAG - VALUES OF TAG PREFIXES. 
* 
*         IN THE BACK END (PASSES 2 + 3), OPERANDS ARE REPRESENTED
*         AS "TAGS".  A TAG CONSISTS OF TWO PARTS, A PREFIX AND AN
*         ORDINAL.  THE PREFIX DETERMINES HOW THE ORDINAL IS TO BE
*         INTERPRETED.
  
  
 P=PFX    EQU    15          POSITION OF PREFIX RELATIVE TO TAG FIELD 
 P=PFX    DECMIC P=PFX
 K=PFX    EQU    1S"P=PFX"   PREFIX MULTIPLIER FOR SHIFT
  
  
          LOC    0                         -- ORD FIELD IS -- 
 K=SYM    BSS    1                 T.SYM   SYMBOL TABLE ORDINAL 
 K=GL     BSS    1                 T.GL    GENERATED LABEL
 K=AP     BSS    1                 T.API   AP-LIST INDEX
 K=IO     BSS    1                 T.IOI   I/O APL INDEX
 K=LC     BSS    1                 T.LCA   LCM POINTER WORD INDEX 
 K=END    BSS    0
          LOC    *O 
  
  
 K.SYM    EQU    K=SYM*K=PFX
 K.GL     EQU    K=GL*K=PFX 
 K.AP     EQU    K=AP*K=PFX 
 K.IO     EQU    K=IO*K=PFX 
 K.LC     EQU    K=LC*K=PFX 
 T.PB     SPACE  4,10 
**        T.PB - PREBINARY TABLE. 
* 
*         AS INSTRUCTIONS ARE COMPILED THEY ARE ENTERED INTO THE
*         *PREBINARY* ONE INSTRUCTION PER WORD.  THE *K* PORTION OF A 
*         30 BIT INSTRUCTION WILL CONTAIN A *SHORT CONSTANT* OR A TAG.
*         WHEN THE END OF A SOURCE PROGRAM UNIT IS ENCOUNTERED, THE 
*         *PREBINARY* (AND CONTENTS OF APPROPRIATE TABLES) ARE USED TO
*         GENERATE ACTUAL LOADER TEXT.
* 
*         THE DIFFERENT ENTRY FORMATS ARE DESCRIBED BELOW --
 PB/SHORT SPACE  4,10 
*  1.     15 BIT INSTRUCTIONS 
*         +--------------+---------------------------------------------+
*         +              +/////////////////////////////////////////////+
*         +   I N S T    +/////////////////////////////////////////////+
*         +              +/////////////////////////////////////////////+
*         +--------------+---------------------------------------------+
*                15                         45
*         THE *BXI  XJ* (10B) INSTRUCTION IS COMPILED AS 10IJ0 AND
*         CHANGED LATER TO 10IJJ. 
  
          DESCRIBE PB.       PB(GH,I,J,K) 
 INST     DEFINE 15          (GHIJK) = SHORT INSTRUCTION
          DEFINE 45 
  
          REDEF INST
 GH       DEFINE 6           OPCODE 
 I        DEFINE 3           I-REG
 J        DEFINE 3           J-REG
 K        DEFINE 3           K-REG
 PB/LONG  SPACE  4,20 
**  2.    LONG INSTRUCTIONS.
*         +-----------+-----------------+-----------------+------------+
*         +           +                 +                 +////////////+
*         +  G,H,I,J  +                 +                 +////////////+
*         +  OP-CODE  +     T  A  G     +    B  I  A  S   +////////////+
*         +           +                 +                 +////////////+
*         +-----------+-----------------+-----------------+------------+
*              12             18                 18             12
  
  
          REDEF 
 GHIJ     DEFINE 12          OPCODE 
 TAG      DEFINE 18          SYMBOL (*IH* AND ORDINAL)
 BIAS     DEFINE 18 
 H2       DEFINE 12          SYMORD OF ADDRESS DECREMENT
 BJR      DEQU   H2,3        B-REG FOR INDEXED JUMP 
  
  
**        (PB.TAG) IS THE REPRESENTATION OF AN OPERAND. 
*         SEE DEFINITION OF (K.TAG) ABOVE.
  
  
          REDEF  TAG
 PFX      DEFINE 3           PREFIX 
          DEFINE 1
 ORD      DEFINE 14          ORDINAL
          ERRNZ  PB.PFXP-PB.ORDP-P=PFX
 PB/PSU   SPACE  4,20 
**  3.    PSEUDO-INSTRUCTIONS.
* 
*         WHEN (PB.GH) = 0, IT DOES NOT REPRESENT A "PS" INSTRUCTION
*         (HARDWARE 00), RATHER IT IS A DIRECTIVE TO THE ASSEMBLER, 
*         COMMONLY TERMED A "PSEUDO-INSTRUCTION". 
* 
*         THE FORMAT OF A PSEUDO-INSTRUCTION IS THE SAME AS FOR LONG
*         INSTRUCTIONS.  THE TAG, BIAS, AND BJR FIELDS CONTAIN THE
*         VARIOUS PARAMETERS.  SEE THE GID FOR PARTICULARS. 
 T.IOA    SPACE  4,20 
***       T.IOA - I/O APLIST TABLE. 
*                FORMAT DEFINED AS IA. .
  
 Z=IOA    EQU    2           WORDS PER ENTRY
  
  
***       T.CLW - I/O CHARACTER LENGTH ARRAY ITEM LENGTH. 
*                FORMAT DEFINED AS IA. .
  
 Z=CLW    EQU    2           WORDS PER ENTRY
