*DECK MACROS                                                             MACROS 
          IDENT  MACROS                                                  MACROS 
          TITLE  MACROS - TABLES FOR CODE-GENERATION MACROS 
  
          MACHINE  ANY,I
          COMMENT  TABLES FOR CODE-GENERATION MACROS
          SPACE  4
**        MACROS -  TABLES FOR CODE-GENERATION MACROS 
* 
*         CONTAINS: 
*                RESREG    - DESCRIBES RESERVED REGISTERS 
*                              (FROM COMDECK RESERVE) 
*                MACTEXT   - MACRO TEXT BLOCK 
*                MACDESC   - MACRO DESCRIPTION BLOCK
*                SBUF      - SYMBOL BUFFER
*                RBUF      - R-NUMBER BUFFER
*                CBUF      - CONSTANT BUFFER
*                IBUF      - INTERMEDIATE R-NUMBER BUFFER 
*                ALTWSA    - ALTERNATE WORKING STORAGE AREA 
*                NOMACS    - NUMBER OF CODE-GENERATION MACROS 
  
  
 CONTROL  OPSYN  NIL
  
*CALL OPMACS                                                             MACROS 
  
*CALL REGTYPE                                                            MACROS 
  
          LIST   G                                                       MACROS 
          ENTRY  CBUF,IBUF,RBUF,SBUF                                     MACROS 
          ENTRY  MACDESC,MACTEXT                                         MACROS 
          ENTRY  ALTWSA                                                  MACROS 
          ENTRY  NOMACS 
          ENTRY  RESREG                                                  MACROS 
 B        EQU    8*TYPEB                                                 MACROS 
 X        EQU    8*TYPEX                                                 MACROS 
 A        EQU    8*TYPEA                                                 MACROS 
 NR       SET       0                                                    MACROS 
          MACRO  RESERVE,RNAME,RNUM,TYPE                                 MACROS 
 ASM      SET    0                                                       MACROS 
 MACH     SET    0                                                       MACROS 
 VAL      SET    0                                                       MACROS 
          IFC    EQ,*TYPE*A*,1                                           MACROS 
 ASM      SET    1                                                       MACROS 
          IFC    EQ,*TYPE*M*,1                                           MACROS 
 MACH     SET    1                                                       MACROS 
 VL       MICRO  1,1,/TYPE/                                              MACROS 
          IFC    EQ,*"VL"*V*,1                                           MACROS 
 VAL      SET    1                                                       MACROS 
 T        MICRO  1,1,/RNUM/                                              MACROS 
 N        MICRO  2,1,/RNUM/                                              MACROS 
          VFD    1/ASM,1/MACH,1/VAL,51/0,6/"T"+"N"                       MACROS 
          IFEQ   VAL,1                                                   MACROS 
 RVAL     MICRO  3,,/TYPE/                                               MACROS 
          DATA   "RVAL"                                                  MACROS 
          ENDIF                                                          MACROS 
 RNAME    SET    NR                                                      MACROS 
 NR       SET    NR+1                                                    MACROS 
          ENDM                                                           MACROS 
 RESREG   BSS    0                                                       MACROS 
*CALL RESERVE 
 NRESR    EQU    NR                                                      MACROS 
          USE    MACTEXT     MACRO TEXT BLOCK                            MACROS 
 MACTEXT  BSS    0                                                       MACROS 
          USE    MACDESC     DESCRIPTOR TABLE                            MACROS 
 MACDESC  BSS    0                                                       MACROS 
 MACNUM   SET    1                                                       MACROS 
          ECHO   1,X=(SM,CM,RM,IM)                                       MACROS 
 X        SET    0                                                       MACROS 
 ALTL     SET    100                                                     MACROS 
                                                                         MACROS 
*         SYMBOLS USED IN RIF                                            MACROS 
 PI       EQU    1           INTERMEDIATE PREFIX                         MACROS 
 PP       EQU    0           PARAMETER                                   MACROS 
 PR       EQU    0                                                       MACROS 
 PA       EQU    0                                                       MACROS 
 PB       EQU    0                                                       MACROS 
 PX       EQU    0                                                       MACROS 
 SI       EQU    0                                                       MACROS 
 SP       EQU    NRESR                                                   MACROS 
 SR       EQU    0                                                       MACROS 
 SB       EQU    8*TYPEB                                                 MACROS 
 SX       EQU    8*TYPEX                                                 MACROS 
 SA       EQU    8*TYPEA                                                 MACROS 
                                                                         MACROS 
*         RIF    GENERATE A REG FIELD                                    MACROS 
 RIF      MACRO  RI                                                      MACROS 
          IFC    EQ,*RI**                                                MACROS 
          VFD    16/0                                                    MACROS 
          ELSE                                                           MACROS 
 C        MICRO  1,1,/RI/                                                MACROS 
 R        MICRO  2,,/RI/                                                 MACROS 
          VFD    1/P"C",15/"R"+S"C"                                      MACROS 
          IFC    EQ,/"C"/I/,1                                            MACROS 
 IMAX     MAX    IMAX,"R"                                                MACROS 
          ENDIF                                                          MACROS 
          ENDM                                                           MACROS 
                                                                         MACROS 
*         TABLE  SET TABLE REFERENCE FIELD                               MACROS 
 TABLE    MACRO  T                                                       MACROS 
          IFC    LT,/T/0/                                                MACROS 
 R        MICRO  2,,/T/                                                  MACROS 
          VFD    18/0,12/1,18/"R"                                        MACROS 
          ELSE                                                           MACROS 
          VFD    18/T,12/0,18/0                                          MACROS 
          ENDIF                                                          MACROS 
          ENDM                                                           MACROS 
                                                                         MACROS 
*         CLASS1 GENERATE CLASS 1 INSTRUCTION                            MACROS 
*                VFD  12/1510+OC,16/RI,16/RJ,16/RK                       MACROS 
          MACRO  CLASS1,NAM,OC                                           MACROS 
 NAM      MACRO  RI,RJ,RK                                                MACROS 
          VFD    12/OC                                                   MACROS 
          RIF    RI                                                      MACROS 
          RIF    RJ                                                      MACROS 
          RIF    RK                                                      MACROS 
          ENDM                                                           MACROS 
                                                                         MACROS 
*         CLASS2 GENERATE CLASS 2 INSTRUCTION                            MACROS 
*                VFD  12/1510+OC,16/RI,14/COUNT,18/CONST                 MACROS 
          MACRO  CLASS2,NAM,OC                                           MACROS 
 NAM      MACRO  RI,CONST                                                MACROS 
          VFD    12/OC                                                   MACROS 
          RIF    RI                                                      MACROS 
          IFC    LT,/CONST/0/                                            MACROS 
 R        MICRO  2,,/CONST/                                              MACROS 
          VFD    14/1,18/"R"                                             MACROS 
          ELSE                                                           MACROS 
          VFD    14/0,18/CONST                                           MACROS 
          ENDIF                                                          MACROS 
          ENDM                                                           MACROS 
                                                                         MACROS 
*         CLASS3 GENERATE CLASS 3 INSTRUCTION                            MACROS 
*                VFD 12/1510+OC,16/RI,16/RJ,16/0                         MACROS 
*                VFD 12/0,48/SY                                          MACROS 
          MACRO  CLASS3,NAM,OC                                           MACROS 
 NAM      MACRO  RI,RJ,SY                                                MACROS 
          VFD    12/OC                                                   MACROS 
          RIF    RI                                                      MACROS 
          RIF    RJ                                                      MACROS 
          VFD    16/0                                                    MACROS 
          VFD    12/0                                                    MACROS 
          TABLE  SY                                                      MACROS 
          ENDM                                                           MACROS 
                                                                         MACROS 
*         CLASS4 GENERATE CLASS 4 INSTRUCTION                            MACROS 
*                VFD  12/1510+OC,42/SY                                   MACROS 
          MACRO  CLASS4,NAM,OC                                           MACROS 
 NAM      MACRO  SY                                                      MACROS 
          VFD    12/OC                                                   MACROS 
          TABLE  SY                                                      MACROS 
          ENDM                                                           MACROS 
                                                                         MACROS 
*         CLASS5 ILLEGAL IN MACROS                                       MACROS 
          MACRO  CLASS5,NAM                                              MACROS 
          ENDM                                                           MACROS 
                                                                         MACROS 
*         INST   DEFINE INSTRUCTIONS                                     MACROS 
          MACRO  INST,NAME,CL 
 OC       OCTMIC NAME 
 NAME     CLASS"CL"  "OC"B
 INST     ENDM
  
 CL=1     MICRO  1,, 1
 CL=2     MICRO  1,, 2
 CL=3     MICRO  1,, 3
 CL=4     MICRO  1,, 4
 CL=5     MICRO  1,, 5
  
                                                                         MACROS 
*         RMACRO DEFINE MACRO                                            MACROS 
          MACRO  RMACRO,NAM,NSY,NR,NC                                    MACROS 
           LOC   MACNUM                                                  MACROS 
 IMAX     SET    0                                                       MACROS 
 SM       MAX    SM,NSY                                                  MACROS 
 RM       MAX    RM,NR                                                   MACROS 
 CM       MAX    CM,NC                                                   MACROS 
 MACNUM   SET    MACNUM+1                                                MACROS 
          USE    MACTEXT                                                 MACROS 
 FM       SET    *-MACTEXT                                               MACROS 
 MP       SET    NC*10000B+NR*100B+NSY                                   MACROS 
          ENDM                                                           MACROS 
                                                                         MACROS 
*         ENDR   TERMINATE MACRO DEFINITION                              MACROS 
 ENDR     MACRO                                                          MACROS 
 LM       SET    *-MACTEXT                                               MACROS 
          USE    MACDESC                                                 MACROS 
 LM       SET    LM-FM                                                   MACROS 
          ERRZR  LM          MACRO TEXT MAY NOT BE EMPTY                 MACROS 
          VFD    18/MP,6/IMAX,18/LM,18/FM                                MACROS 
 IM       MAX    IM,IMAX                                                 MACROS 
 ALTL     MAX    ALTL,LM                                                 MACROS 
          ENDM                                                           MACROS 
                                                                         MACROS 
*CALL OPNAMES                                                            MACROS 
*CALL INSTBLK                                                            MACROS 
*         INSTRUCTIONS ILLEGAL WITHIN MACRO DEFINITION                   MACROS 
1         ECHO   ,X=(DATA$,VFD$,REPL,OBJ,LOOP,MD$,DM$,CC$,CU$,ENDL,USE$,
,BSS$)
          PURGMAC  X
 X        MACRO                                                          MACROS 
          ERR                (X ILLEGAL IN MACRO)                        MACROS 
          ENDM                                                           MACROS 
1         ENDD
  
                                                                         MACROS 
*CALL MACDEFS                                                            MACROS 
 SBUF     BSSZ   SM+2        SYMBOL BUFFER                               MACROS 
 RBUF     BSSZ   RM+2        R NUMBER BUFFER                             MACROS 
 CBUF     BSSZ   CM+3        CONSTANT BUFFER                             MACROS 
 IBUF     BSS    IM          INTERMEDIATE R BUFFER                       MACROS 
 ALTWSA   BSS    ALTL                                                    MACROS 
 NMACS    OCTMIC MACNUM 
 NOMACS   DATA   "NMACS"
          END                                                            MACROS 
