*DECK DIAGTBL 
          IDENT  DIAGTBL
          COMMENT   "COMRTN"
          COMMENT   DIAGNOSTIC PRESCAN TABLE
          TITLE  DIAGTBL - DIAGNOSTIC PRESCAN TABLE 
 DIAGTBL  SPACE  4
**        DIAGTBL - DIAGNOSTIC PRESCAN TABLE
* 
*         THIS TABLE CONTAINS THE LEVELS FOR EACH COMPILER DIAGNOSTIC.
*                THE ROUTINE -DIAGSCN- READS THE ETEXT LOOKING FOR A
*                DIAGNOSTIC OF SEVERITY GREAT ENOUGH TO SUPRESS CODE
*                GENERATION.  IF FOUND, WE SKIP TO D$FORMAT.
* 
*         FOR INFORMATION ON CARD FORMATS, ETC, SEE DFTABLE.
* 
*         ENTRY POINTS: 
          ENTRY  DIAGTBL
          ENTRY  DIAGCNT
 MACROS   EJECT 
 #        MACRO 
          ENDM
  
 DEF      SPACE  4
**        DEF MACRO - PICK UP DIAG LETTER AND ENCODING NUMERS 
*                TO MATCH D$FORMAT. 
* 
 DEF      MACRO  NAME 
 CHR      MICRO  1,1,^_NAME_^ 
 LLVL     SET    LLVL+1 
 L_"CHR"  EQU    LLVL 
          ENDM
  
 LLVL     SET    0
 DIAGLVL  SPACE  4
*CALL DIAGLVL 
  
  
 DIAGP    SPACE  4
**        DIAGP MACRO - DIAGNOSTIC PARAMETERS 
*                CALLED:  DIAGP   LVL,NR
*                                  WHERE LVL = DIAGNOSTIC LEVEL (T, W,
*                                  F, C, OR N)
*                                    AND NR IS THE DIAGNOSTIC NUMBER
* 
*                NR MUST BE IN ASCENDING ORDER OR AN ASSEMBLY ERROR WILL
*                RESULT.
* 
 DIAGP    MACRO  LVL,NR 
          IFNE   PFLG,0,1 
 O        ERR                MACROS OUT OF PROPER ORDER 
          IFLE   NR,DNR,1 
 A        ERR                DIAGNOSTIC NUMBERS OUT OF SEQUENCE 
 PFLG     SET    1
 BSSNR     SET    NR-DNR-1
 DNR      SET    NR 
 IFA      IFGT   BSSNR,0
          DUP    BSSNR,1
          VFD    3/LC$
 IFA      ENDIF 
          VFD    3/L_LVL
          ENDM
 DIAGT    SPACE  4
**        DIAGT MACRO - DIAGNOSTIC TEXT DEFINITION
*                THIS MACRO CALL MUST FOLLOW A DIAGP CALL TO DEFINE THE 
*                ERROR NUMBER AND LEVEL.  IT IS CALLED AS:  
*                                  DIAGT  (*TEXT*)
*                THIS MACRO IS A DUMMY AT THIS POINT
*                IT JUST CHECKS MACRO SEQUENCE
* 
 DIAGT    MACRO 
          IFNE   PFLG,1,1 
 O        ERR                MACRO CALLS OUT OF SEQUENCE
 PFLG     SET    0
          ENDM
 TERM     SPACE  4
**        TERM MACRO - TERMINATE DIAGNOSTIC INPUT 
*         COMPLETES THE LAST WORD OF THE LIST 
*                AND COMPUTES THE DIAGNOSTIC COUNT
* 
 TERM     MACRO 
 LAST     SET    *P/3 
 IFA      IFGT   LAST,0 
          DUP    LAST,1 
          VFD    3/LC$
 IFA      ENDIF 
 LWA      BSS    0
 CNT      SET    LWA-DIAGTBL  LENGTH OF TABLE IN WORDS
 DIAGCNT  CON    CNT*20 
          ENDM
          ENDM
  
 CENTURY  SPACE  4
**        CENTURY MACRO - START A DIAGNOSTIC CENTURY
*         NOTE:  THE TERM -CENTURY- IS INCORRECT, BUT THE EASIEST 
*                WAY TO DESCRIBE A GROUP OF 1000 DIAGS... 
* 
*                THIS MACRO MUST PRECEDE THE FIRST DIAGP IN EACH
*                CENTURY (EXCEPT THE 0-S).
*                            CALLING PARAM: 
*                CENTURY     NUMBER 
*                            WHERE NUMBER IS THE FIRST NR IN THE
*                            NEXT CENTURY (I.E. 3000) 
* 
 CENTURY  MACRO  NR 
          IFNE   PFLG,0,1 
 O        ERR                MACROS OUT OF ORDER
          IFLE   NR,DNR,1 
 A        ERR                DIAGNOSTIC NUMBERS OUT OF ORDER
 BSSNR    SET    NR-DNR-1 
 DNR      SET    NR-1 
 IFA      IFGT   BSSNR,0
          DUP    BSSNR,1
          VFD    3/LC$
 IFA      ENDIF 
          ENDM
  
          NOREF  SCNT,BSSNR,DLN,DLVL,DNR,PFLG,LLVL
          NOREF  NOTXT,LC$,FIRST,LAST,LNTH
 LC$      EQU    LC          DUMMY FOR DIAGP MACRO
          NOREF  LT,LW,LF,LC,LN 
 DIAGS    EJECT 
 PFLG     SET    0
 DNR      SET    999
  
 DIAGTBL  BSS    0
 DIAGS    SPACE  4
          CTEXT              DIAGNOSTICS LIST- SEE DFTABLE
*CALL DIAGTXT 
          ENDX
  
*CALL COBIOM
          ENTRY  DUMFET 
 DUMFET   FILEB  LGOBUF,LGOBFS,(RTP=U)      DUMMY FET FOR FATAL MSG 
 LGOBUF   EQU    0           LET CMM ASSIGN BUFFER SPACE
          END 
