COMSSRT 
COMMON
          CTEXT  COMSSRT - SYMBOLS FOR RECORD TYPES.
 SRT      SPACE  4,10 
          BASE   D
*         COMMENT  COPYRIGHT CONTROL DATA SYSTEMS INC.  1992. 
 SRT      SPACE  4,10 
***       SRT - SYMBOLS FOR RECORD TYPES. 
* 
*         J. M. MAREK.      85/10/25. 
          SPACE  4,10 
***       *COMSSRT* DEFINES RECORD TYPE NUMBERS AND RECORD TYPE 
*         MNEMONICS.  A SYMBOL IS DEFINED FOR EACH RECORD TYPE NUMBER,
*         WHICH HAS THE FORM --RT.  THE MNEMONICS ARE USED BY THE NOS 
*         UTILITIES IN DIRECTIVES AND LISTINGS.  THE MNEMONICS ARE
*         DEFINED BY A MICRO AS A STRING THAT CAN EASILY BE REFERENCED
*         IN AN *ECHO* PSEUDO OP OR IN A MACRO CALL.  TWO MACROS, 
*         *CONRT* AND *EQURT* ARE DEFINED TO FACILITATE CREATING BIT
*         STRINGS THAT CORRESPOND TO THE RECORD TYPES.
  
  
****      RECORD TYPE NUMBER SYMBOL DEFINITIONS.
* 
* SYMBOL         NUMBER      MNEMONIC    FORMAT 
  
 TXRT     EQU    0           TEXT        UNRECOGNIZED 
 PPRT     EQU    1           PP          PP PROGRAM 
 RLRT     EQU    3           REL         RELOCATABLE SUBPROGRAM 
 OVRT     EQU    4           OVL         OVERLAY
 ULRT     EQU    5           ULIB        USER LIBRARY 
 OPRT     EQU    6           OPL         MODIFY OPL DECK
 OCRT     EQU    7           OPLC        MODIFY OPL COMMON DECK 
 ODRT     EQU    8D          OPLD        MODIFY OPL DIRECTORY 
 ABRT     EQU    9D          ABS         ABSOLUTE PROGRAM 
 PURT     EQU    10D         PPU         PPU PROGRAM
 CART     EQU    14D         CAP         FAST DYNAMIC LOAD CAPSULE
 PRRT     EQU    16D         PROC        PROCEDURE RECORD 
 PLRT     EQU    20D         PPL         16-BIT PP PROGRAM
****
 RTMIC    SPACE  4,25 
**        RTMIC - RECORD TYPE MICRO.
* 
*         *RTMIC* DEFINES THE RECORD TYPE MNEMONICS USED BY THE NOS 
*         UTILITIES IN DIRECTIVES AND LISTINGS.  THE DEFINITION IS IN 
*         THE FORM OF A MICRO THAT CONTAINS THE MNEMONICS IN ORDER AND
*         SEPARATED BY COMMAS.  THE ORDER IS BY RECORD TYPE NUMBER. 
*         A NULL MNEMONIC IS USED FOR UNUSED RECORD TYPE NUMBERS.  THE
*         INTENT OF THE MICRO IS THAT IT BE USED IN AN *ECHO* PSEUDO OP 
*         OR A MACRO CALL.
* 
*         EXAMPLE - GENERATE A TABLE OF THE MNEMONICS IN RECORD TYPE
*         ORDER, GENERATING *-1* FOR THE UNUSED ENTRIES.  (TO AVOID 
*         ASSEMBLY PROBLEMS, THIS EXAMPLE USES DOLLAR SIGNS WHERE MICRO 
*         MARKS SHOULD BE USED.)
* 
* TNAM    BSS    0
* .E      ECHO   ,RT=($RTMIC$)
* .A      IFC    NE,/RT// 
*         DATA   L/RT/
* .A      ELSE
*         DATA   -1 
* .A      ENDIF 
* .E      ENDD
  
  
 RTMIC    MICRO  1,,/TEXT,PP,,REL,OVL,ULIB,OPL,OPLC,OPLD,ABS,PPU,,,,CAP,
,,PROC,,,,PPL/
 CONRT    SPACE  4,15 
**        CONRT - GENERATE A RECORD TYPE BIT MAP. 
* 
*         *CONRT* IS USED TO GENERATE A VALUE THAT REPRESENTS A BIT MAP 
*         OF RECORD TYPES.  THE MAP CONTAINS A BIT FOR EACH SPECIFIED 
*         RECORD TYPE.  BY DEFAULT, BIT I CORRESPONDS TO RECORD TYPE I, 
*         BUT IF A FIELD WIDTH (FW) PARAMETER IS SPECIFIED, BIT FW-I-1
*         CORRESPONDS TO RECORD TYPE I. 
* 
* TAG     CONRT  (RT1,RT2,...),FW 
* 
*         ENTRY  *RTI* = A RECORD TYPE SYMBOL OR NUMBER.
*                *FW* = OPTIONAL FIELD WIDTH PARAMETER. 
* 
*         MACROS .RTMIC.
  
  
          PURGMAC  CONRT
  
          MACRO  CONRT,TAG,RT,FW
          .RTMIC (RT),FW
 TAG      CON    ".1" 
 CONRT    ENDM
 EQURT    SPACE  4,15 
**        EQURT - EQUATE TO RECORD TYPE BIT MAP.
* 
*         *EQURT* IS USED TO EQUATE A SYMBOL TO A VALUE THAT REPRESENTS 
*         A BIT MAP OF RECORD TYPES.  THE MAP CONTAINS A BIT FOR EACH 
*         SPECIFIED RECORD TYPE.  BY DEFAULT, BIT I CORRESPONDS TO
*         RECORD TYPE I, BUT IF A FIELD WIDTH PARAMETER IS SPECIFIED, 
*         BIT FIELD WIDTH-I-1 CORRESPONDS TO RECORD TYPE I. 
* 
* TAG     EQURT  (RT1,RT2,...),FW 
* 
*         ENTRY  *RTI* = A RECORD TYPE SYMBOL OR NUMBER.
*                *FW* = OPTIONAL FIELD WIDTH PARAMETER. 
* 
*         MACROS .RTMIC.
  
  
          PURGMAC  EQURT
  
          MACRO  EQURT,TAG,RT,FW
          .RTMIC (RT),FW
 TAG      EQU    ".1" 
 EQURT    ENDM
 .RTMIC   SPACE  4,15 
**        .RTMIC - GENERATE RECORD TYPE BIT MAP MICRO.
* 
*         *.RTMIC* IS AN AUXILIARY MACRO CALLED BY *CONRT* AND *EQURT*
*         TO PRODUCE AS A MICRO AN EXPRESSION THAT IS ACCEPTABLE TO 
*         *CON* AND *EQU* PSEUDO OPS AND THAT REPRESENTS THE REQUESTED
*         BIT MAP.
* 
*         .RTMIC (RT1,RT2,...),FW 
* 
*         ENTRY  *RTI* = A RECORD TYPE SYMBOL OR NUMBER.
*                *FW* = OPTIONAL FIELD WIDTH PARAMETER. 
* 
*         EXIT   *.1* IS THE MICRO. 
  
  
          PURGMAC  .RTMIC 
  
 .RTMIC   MACRO  RT,FW
 .1       MICRO  1,,/0/ 
 .A       IFC    NE,/FW// 
 .2       MICRO  1,, FW-1-
 .A       ELSE
 .2       MICRO  0,,//
 .A       ENDIF 
 .B       IRP    RT 
 .3       DECMIC ".2"_RT
 .1       MICRO  1,, ".1"+1S".3"
 .B       IRP 
 .RTMIC   ENDM
          SPACE  4
          BASE   *
 SRT      ENDX
