*COMDECK /ERRDRM/ 
          TITLE     ERR$RM
          TITLE     ERR$RM - HANDLE ALL ERRORS
*#
*1CD  ERR$RM
*0D   PURPOSE 
*0        HANDLE ALL ERRORS.
*0D   ACTION
*0        TRY TO LOAD AND PASS THE BUCK (X6) TO DF$CRM.  IF UNSUCESSFUL,
*         ISSUE A TERSE DAYFILE MESSAGE AND ABORT.
*#
          SPACE     1 
 SFDEF    MACRO     SYM 
 SYM      SDEF      "#_SYM_#" 
 SFDEF    ENDM
  
          MACRO     SDEF,NAM,TBL,WRD,SIZ,POS
 NAM.W    =         WRD 
 NAM.P    =         60-POS-SIZ
 NAM.S    =         SIZ 
          ENDM
          SPACE     1 
*CALL /EPCOM/ 
          SFDEF     DFC 
          SFDEF     EFC 
          SPACE     1 
          ENTRY     ERR$RM
 ERR$RM   BSS 
          ERRNZ     DFC.W-EFC.W    FIELDS NOT IN SAME WORD ("SEQUENCE") 
          SA1       A0+DFC.W
          BX4       X6
          LX4       NTE.P 
          BX2       X1
          LX1       DFC.P+DFC.S-2  SECOND BIT OF DFC
          LX2       EFC.P+EFC.S-2  SECOND BIT OF EFC
          BX2       X1+X2 
          BX2       -X4+X2
          SB5       X5
          PL        X2,JPB5        IF NOTE BUT DAYFILE/ERROR FILE OFF.
          SA1       ERRNO 
          IR        X1,CANT        IF NOT INFINITE, CANT LOAD DF$CRM
 .DEV     IF        DEF,#DEV# 
          SB0       B1+UNER1
          EQ        UNER2 
 UNER1    BSS 
          RJ        =YUNTRACK 
 UNER2    BSS 
 .DEV     ENDIF 
          SA6       A1
  
          LOAD.BAM  PL.DF 
  
          SA1       ERRNO 
          MX7       1              INFINITE 
          SA7       A1
 JPB5     BSS       0 
          JP        B5             GO DAYFILE ERROR MESSAGE 
                                   OR RETURN IF NOTE AND NOTE DISPLAY 
                                   OPTIONS OFF. 
  
 .DEV     IF        DEF,#DEV# 
*         DO
*                   LDSET(SUBST=$ERR$$RM$-TRKERR) 
*         TO LET TRACK GO ON INTO DF$CRM. 
          ENTRY     TRKERR
 TRKERR   SA1       ERRNO 
          OR        X1,UNER2
 .DEV     ENDIF 
 CANT     SB4       4 
          SA3       MSG2
          BX7       X3
          MX2       -3
  
 BDLOOP   BX6       -X2*X1
          LX1       -3
          IX7       X7+X6 
          SB4       B4-B1 
          LX7       -6
          PL        B4,BDLOOP      LOOP TO CONVERT ERROR NUM TO DISPLAY 
  
          SA1       A0
          MX0       42
          LX7       -6
          BX6       X0*X1          LFN
          SA7       A3
          SA6       A7+B1 
          MESSAGE   MSG 
          ABORT 
  
 MSG      DIS     2,CANT LOAD CAPS-RM ER
 MSG2     DIS     1, ON R 0000
 ERRNO    DATA      1S59           INFINITE 
* END /ERRDRM/
