          OVERLAY  (CTP$SCI PROCESS ANALYSIS CODE),CBUF-100
 PAN      SPACE  4,15
**        PAN - PROCESS ANALYSIS CODE.
*
*         ENTRY  (ANCD) = ANALYSIS CODE.
*                (AACA) = 1, IF *MDD* IS TO PROCESS MR ERRORS.
*                       = 0, IF *SCI* IS TO HANG ON MR ERRORS.
*
*         EXIT   TO *MDER*, IF *MDD* IS TO PROCESS ERROR.
*                OTHERWISE, NO EXIT.
*
*         USES   T1 - T7.
*
*         CALLS  CDA, CME, CMN, IIB, ITM.
*
*         NOTE   THIS OVERLAY IS LOCATED AT *CBUF-100* TO MINIMIZE THE
*                POSSIBILITY THAT IT WILL OVERLAY WHATEVER CODE MAY
*                HAVE CAUSED OR ENCOUNTERED THE ERROR.


 PAN      ROUTINE

*         IF THE *MDD* FLAG IS SET, THEN LET *MDD* PROCESS THE ERROR
*         ONLY IF IT IS A CH17 ERROR (603, 605, 60F).

          LDML   AACA
          ZJN    PAN20       IF NOT *MDD* ERROR
          LDML   ANCD        ANALYSIS CODE
          LMC    DAMP        603 - CH17 PARITY ERROR
          ZJN    PAN10       IF CH17 PARITY ERROR
          LMN    DAMA-DAMP   605 - CH17 ACTIVE
          ZJN    PAN10       IF CH17 ACTIVE
          LMN    DACI-DAMA   60F - CH17 INACTIVE
          NJN    PAN20       IF NOT CH17 ERROR
 PAN10    STM    LOCK        CLEAR LONG TERM INTERLOCK
          LJM    MDER        LET *MDD* PROCESS ERROR

 PAN20    EXITMR  PAN40
          FATALMR  PAN40
          LDK    1RS         SET SCI PRODUCT
          STML   CMEA
          LDC    1RI         SET ELEMENT SPECIFIER TO IOU0
          STML   CMEB
          LDML   IOUM        IOU MODEL NUMBER
          RJM    CDA         CONVERT DIGITS TO ASCII
          STML   CMEC
          STML   SNFS+1
          LDML   ANCD        ANALYSIS CODE
          STML   CMED
          RJM    CME         CONSTRUCT MESSAGE IN EICB
          SBN    1
          STD    T1          SAVE *CME* EXIT CONDITION
          RJM    ITM         ISSUE CYBER 2000 MESSAGE IF APPROPRIATE
          LDD    T1
          ZJN    PAN30       IF EICB CANNOT BE WRITTEN
          RJM    CMN         CONSTRUCT MESSAGE IN NON-REGISTER STATUS BUFFER

*         NOTIFY *DFT* THAT *SCI* HAS DELIBERATELY HUNG ITSELF.

          LDN    D8RLP       READ RELOCATION CONTROL WORD
          RJM    IIB
          CRDL   T0
          LDDL   T3          RELOCATION CONTROL WORD LENGTH
          ZJN    PAN30       IF NOT DEFINED
          LRD    T0+1
          LDD    T0
          ADC    RR
          CRDL   T4
          LDDL   T5          SET DELIBERATE HANG STATUS
          LPC    177377
          LMC    400
          STDL   T5
          LDD    T0          REWRITE RELOCATION CONTROL WORD
          ADC    RR
          CWDL   T4
 PAN30    LDML   ANCD        REPORT ANALYSIS CODE AND HANG
          UJN    *           HANG

 PAN40    AOM    PANA        SET FLAG
          UJN    PAN30       HANG

 PANA     CON    0           1 = ERROR OCCURRED WHILE PROCESSING ERROR
 CMN      SPACE  4,15
**        CMN - CONSTRUCT MESSAGE IN NON-REGISTER STATUS BUFFER.
*
*         ENTRY  (ANCD) = ANALYSIS CODE.
*                (SNFS+1) = MODEL NUMBER IN ASCII.
*
*         EXIT   MESSAGE SET IN NON-REGISTER STATUS BUFFER.
*                C170 AND/OR C180 ERROR FLAG SET TO TELL OS TO LOG ERROR.
*
*         USES   CM - CM+4, T1 - T4.
*
*         CALLS  CDA, CSD, IIB.


 CMN      SUBR               ENTRY/EXIT

*         CHECK ANALYSIS CODE.

          LDML   ANCD
          LMC    DADN
          ZJN    CMNX        IF DFT NOT IN CIP DIRECTORY
          LMN    DANV&DADN
          ZJN    CMNX        IF DFT NEVER VERIFIED
          LMN    DARJ&DANV
          ZJN    CMNX        IF DFT SET REJECT FLAG

*         CHECK THE *DFT* VERSION.

          LDC    HDRP+RR
          ADML   DFTO
          LRD    DP
          CRDL   CM
          LDDL   CM+1
          SHN    -DH.RL
          SBN    5
          MJN    CMNX        IF *DFT* VERSION DOES NOT SUPPORT NRSB USAGE

*         SET THE DFT ANALYSIS CODE.

          LDC    0#3000      PRIORITY
          ADML   ANCD
          STML   SNRB+1

*         SET THE DATE AND TIME.

          LDN    DFCM+7      GET DATE/TIME FROM EICB
          RJM    IIB
          CRML   SNDT,ON

*         SET THE FAULT SYMPTOM CODE.

          LDML   ANCD        CONVERT LOWER TWO DIGITS OF ANALYSIS CODE
          LPC    0#FF
          RJM    CDA         CONVERT DIGITS TO ASCII
          STML   SNFS+3
          LDML   ANCD        CONVERT UPPER DIGIT OF ANALYSIS CODE
          SHN    -8D
          RJM    CSD         CONVERT SINGLE DIGIT TO ASCII
          LMC    1RZ*400
          STML   SNFS+2

*         SET THE APPROPRIATE OS LOGGING FLAG(S).

          LDML   SCMT+PTDB.  DETERMINE WHICH FLAG(S) TO SET
          LPC    2000
          ZJN    CMN20       IF *SCD/VE* STATE NOT ACTIVE
          LDD    DO
          ZJN    CMN10       IF DUAL STATE
          LDN    1           SET C180 FLAG
          SHN    DH.FE8
          UJN    CMN30       CONTINUE

 CMN10    LMBC   DH.FE8      SET C180 FLAG
 CMN20    LMBC   DH.FE7      SET C170 FLAG
 CMN30    STML   CMNA        SAVE FOR SETTING IN DFT CONTROL WORD
          LMN    10          SET LOGGING FLAG
          ERRNZ  DH.FL-3     CHANGE CODE IF LOGGING FLAG POSITION CHANGES
          STML   SNFG        SET IN NON-REGISTER STATUS BUFFER

*         WRITE THE *SCI* NON-REGISTER STATUS BUFFER TO CENTRAL MEMORY.

          LRD    DP
          LDC    NRSP+RR     GET POINTER TO NRSB
          ADM    DFTO
          CRDL   CM
          LRD    CM+1
          LDDL   CM          READ FIRST WORD OF NRSB
          ADC    RR
          CRDL   T1          GET ELEMENT SIZE
          LDN    5           SET LENGTH TO WRITE
          STD    T1
          AOD    CM          SKIP HEADER WORD
          LDN    NRSSC       GET *SCI* BUFFER INDEX
          STD    T2
 CMN40    LDDL   T4          SKIP BUFFER
          RADL   CM
          SOD    T2          DECREMENT INDEX
          NJN    CMN40       IF NOT YET AT CORRECT BUFFER
          LDDL   CM
          ADC    RR
          CWML   SNRB,T1     WRITE *SCI* NON-REGISTER STATUS BUFFER

*         SET THE C170 AND/OR C180 ERROR FLAG(S) IN THE DFT CONTROL WORD.

          LDN    0           CLEAR BUFFER
          STD    CM
          STD    CM+1
          STD    CM+2
          LRD    DP
          LDC    **          SET APPROPRIATE OS FLAG(S)
 CMNA     EQU    *-1
          STDL   CM+DHFLG
          LDC    HDRP+RR     SET FLAG(S) IN *DFT* HEADER
          ADM    DFTO
          RDSL   CM
          LJM    CMNX        RETURN
 SNRB     SPACE  4,10
**        SNRB - *SCI* NON-REGISTER STATUS BUFFER.


 SNRB     BSS    0
          VFD    8/2         *SCI* ID
          VFD    8/OSSS      OS ACTION CODE = STEP SYSTEM
          VFD    4/3         PRIORITY = UNCORRECTED ERROR
          VFD    12/0        *DFT* ANALYSIS CODE
 SNFG     VFD    8/0         SEQUENCE NUMBER = 0
          VFD    8/0         FLAGS = V180 AND/OR V170, LOG
          VFD    16/0        RESERVED
          VFD    32/0        RESERVED
          VFD    8/4         ELEMENT ID
          VFD    8/7         TYPE
          VFD    16/5        LENGTH
 SNDT     VFD    32/0        DATE
          VFD    32/0        TIME
          VFD    32/0        RESERVED
 SNFS     VFD    32/4RSIMM   FAULT SYMPTOM CODE - PART 1
          VFD    32/4RZ600   FAULT SYMPTOM CODE - PART 2
          VFD    32/0        FAULT SYMPTOM CODE - PART 3
 ITM      SPACE  4,10
**        ITM - ISSUE CYBER 2000 MESSAGE IF APPROPRIATE.
*
*         ENTRY  (A) .GE. 0 IF MESSAGE WRITTEN TO THE EICB.
*                (T2) = MESSAGE LENGTH.
*                (CMEE) = FORMATTED MESSAGE AS WRITTEN TO THE EICB.
*
*         EXIT   MESSAGE WRITTEN TO BOOT CONTROL TABLE OS MESSAGE BUFFER,
*                            IF CYBER 2000 MAINFRAME.


 ITM      SUBR               ENTRY/EXIT
          ZJN    ITMX        IF MESSAGE NOT WRITTEN TO THE EICB
          LDML   S0FLG       CHECK IF CYBER 2000
          LMC    10000
          NJN    ITMX        IF NOT CYBER 2000
          LDN    BCTOB       WRITE MESSAGE TO THE OS MESSAGE BUFFER
          CWML   CMEE,T2
          UJN    ITMX        RETURN

*copy     ctp$construct_message_in_eicb

          OVERFLOW  SCMT     CHECK FOR OVERFLOW

          QUAL   *
