*COMDECK ITMMAC 
*IF DEF,IMS 
*#
*1DC  ITEM MACRO
* 
*     PURPOSE 
*         PROVIDES THREE COMPASS EQU STATEMENTS FOR NAM PREDEFINED
*         FIELDS AND TWO WORD ENTRY CONTAINING NAME FOLLOWED BY 
*         FIELD DESCRIPTIONS IN A TABLE USED BY THE NFETCH AND
*         NSTORE SUBROUTINES. 
*     CALLING SEQUENCE
*         ITEM# NAME, TYPE, WORD OFFSET, FIRST BIT, LENGTH #
*     PARAMETERS
*         <NAME>-     NAM PREDEFINED FIELD NAME.
*         <TYPE>-     NUMERIC BASE OF THE DATA CONTAINED IN THE 
*                     FIELD.
*         <WORD OFFSET>- THE OFFSET FROM THE FIRST WORD OF THE
*                     BLOCK CONTAINING THE FIELD. 
*         <FIRST BIT>-THE BIT POSITION OF THE FIRST BIT OF THE
*                     FIELD IN THE WORD, COUNTING FROM THE
*                     RIGHT, STARTING FROM ZERO.
*         <LENGTH>-   LENGTH OF THE FIELD,
*                     IF THE TYPE IS B, U, OR I, THEN THE LENGTH
*                     IS IN BIT UNITS.
*                     IF THE TYPE IS C, THE LENGTH IS IN BYTE UNITS.
*     ACTION
*         GENERATES THREE EQU STATMENTS IF NP$SYMP IS NOT DEFINED.
*         THE FIRST EQU STATMENT DESCRIBES THE WORD OFFSET OF THE 
*         FIELD. THE SECOND EQU STATMENT DESCRIBES THE FIRST BIT
*         POSITION OF THE FIELD. THE THIRD EQU STATMENT DESCRIBES 
*         THE LENGTH OF THE FIELD.
*         IF NP$SYMP IS NOT DEFINED, IT GENERATES A TWO WORD ENTRY
*         IN A TABLE USED BY NFETCH AND NSTORE SUBROUTINES. THE 
*         FIRST WORD CONTAINS THE FIELD NAME, THE SECOND WORD 
*         CONTAINS THE FIELD DESCRIPTIONS.
*     REGISTERS USED
*         NONE. 
*#
*ENDIF
* 
          PURGMAC ITEM# 
* 
ITEM#     MACRO  NAME,P1,P2,P3,P4 
ITEM#1    IF     DEF,NP$SYMP
          ECHO   ,A=(C,U,I),B=(6,1,1),F=(1,2,3) 
SYM1A     IFC    EQ,*A*P1*
SYMTAB    RMT 
          VFD    42D/0L_NAME,12D/0,6/F
SYMTAB    RMT 
          STOPDUP 
SYM1A     ENDIF 
          ENDD
SYMTAB    RMT 
          VFD    6/77B,12D/P2_D,12D/P3_D,12D/P4_D,18D/0 
SYMTAB    RMT 
ITEM#1    ELSE
SYM2      ECHO   ,A=(C,U,I),B=(6,1,1) 
SYM2A     IFC    EQ,*A*P1*
NAME_#    EQU    P2_D        OFFSET FROM 1ST WORD 
NAME_?    EQU    59D-P3_D    1ST BIT FROM RIGHT 
NAME_$    EQU    B*P4_D      LENGTH 
          STOPDUP 
SYM2A     ENDIF 
SYM2      ENDD
ITEM#1    ENDIF 
ITEM#     ENDM
  
