          EJECT
*         CTEXT CTP$DFT_GENERATE_FAULT_SYMPTOM
*
*         THIS DECK CONTAINS ROUTINES TO GENERATE A FAULT SYMPTOM CODE
*         FOR AN IOU, CPU, MEMORY OR PAGE MAP AND STORE IT IN THE
*         SCRATCH SUPPORTIVE STATUS BUFFER.
*
*         THE 12-CHARACTER FAULT SYMPTOM CODE HAS THE FOLLOWING FORMAT:
*
*         *DEMMCCC     *
*
*         D = CHARACTER *D* (TO SIGNIFY DFT-PRODUCED ANALYSIS).
*         E = ELEMENT IDENTIFIER:
*                *C*/*D*/*E*/*F* FOR CPU 0/1/2/3.
*                *I*/*J*/*K*/*L* FOR IOU 0/1/2/3.
*                *M* FOR MEMORY.
*                *P* FOR PAGE MAP.
*         MM = MODEL NUMBER FOR ELEMENT WITH FAILURE.
*         CCC = 3-CHARACTER *DFT* ANALYSIS CODE.
 GSB      SPACE  4,10
**        GSB - GENERATE FAULT SYMPTOM CODE CONTAINING BLANKS.
*
*         ENTRY  (RTP1) = 0 USE SUPPORTIVE STATUS BUFFER.
*                       = 1 USE NON REGISTER STATUS BUFFER.

*         USES   T1, CM - CM+3.
*
*         CALLS  IDA.


          ROUTINE  GSB

*         READ FIRST WORD OF FAULT SYMPTOM CODE TO PRESERVE FIRST TWO BYTES.

          LDM    RTP1        FLAG FOR EITHER SUPPORTIVE STATUS OR NON REGISTER STATUS
          ZJN    GSB1        IF TO LOG TO SUPPORTIVE STATUS BUFFER
          LDN    NRSP        ADDRESS OF SCRATCH NON REGISTER DATA BUFFER
          UJN    GSB2

 GSB1     LDN    SSBP        GET ADDRESS OF SCRATCH SUPPORTIVE STATUS BUFFER
 GSB2     RJM    IDA
          CRDL   CM
          LDM    RTP1        FLAG FOR EITHER SUPPORTIVE STATUS OR NON REGISTER STATUS
          ZJN    GSB3        IF TO LOG TO SUPPORTIVE STATUS
          LDN    4           SKIP NON REGISTER BUFFER HEADER WORDS
          UJN    GSB4

 GSB3     LDN    3           SKIP HEADER WORDS
 GSB4     RADL   CM
          LRD    CM+1
          ADC    RR
          CRML   GSBA,ON
          LDC    2R          SET BLANKS IN FAULT SYMPTOM CODE FIELD
          STML   GSBB
          STML   GSBB+1

*         WRITE BLANK FAULT SYMPTOM CODE TO SCRATCH SUPPORTIVE STATUS BUFFER.

          LDN    2           SET NUMBER OF CM WORDS TO WRITE
          STD    T1
          LDDL   CM          LOAD ADDRESS OF SCRATCH BUFFER
          ADC    RR
          CWML   GSBA,T1     WRITE TO SCRATCH BUFFER
          LJM    GSBX        RETURN

 GSBA     BSS    2           RESERVED AREA OF FAULT SYMPTOM CODE
 GSBB     DATA   12H
 GSC      SPACE  4,10
**        GSC - GENERATE FAULT SYMPTOM CODE FOR CPU.
*
*         THE ELEMENT IDENTIFIER USED IN THE FAULT SYMPTOM CODE DEPENDS ON
*         THE CPU ORDINAL:
*                C - PROCESSOR 0.
*                D - PROCESSOR 1.
*                E - PROCESSOR 2.
*                F - PROCESSOR 3.
*
*         CALLS  WFC.


          ROUTINE  GSC

          LDC    2RDC        PROCESSOR ELEMENT IDENTIFIER
          ADM    CPUO        INCREMENT BY CPU ORDINAL
          RJM    WFC         WRITE FAULT SYMPTOM CODE
          LJM    GSCX        RETURN
 GSI      SPACE  4,10
**        GSI - GENERATE FAULT SYMPTOM CODE FOR IOU.
*
*         THE ELEMENT IDENTIFIER USED IN THE FAULT SYMPTOM CODE DEPENDS ON
*         THE IOU ORDINAL:
*                I - IOU 0.
*                J - IOU 1.
*                K - IOU 2.
*                L - IOU 3.
*
*         CALLS  WFC.
 GSI      SPACE  4,10
**        GSI - GENERATE FAULT SYMPTOM CODE FOR IOU.
*
*         CALLS  WFC, *I4A*, *I4I*, *I4S*.


          ROUTINE  GSI

          LDDL   MD
          LMC    0#44
          NJN    GSI1        IF NOT MODEL 44
          CALL   I4I         INTERFACE TO MODEL 44 IOU FSC COMMON DECK
 GSI0     LJM    GSIX        RETURN

 GSI1     LDDL   MD
          LMC    0#42
          NJN    GSI2        IF NOT MODEL 42 IOU
          CALL   I4S
          UJN    GSI0

 GSI2     LDDL   MD
          LMC    0#40
          NJN    GSI3        IF NOT MODEL 40 IOU
          CALL   I4A
          UJN    GSI0

 GSI3     LDC    2RDI        IOU ELEMENT IDENTIFIER
          RJM    WFC         WRITE FAULT SYMPTOM CODE
          LJM    GSIX        RETURN


 GIE      SPACE  4,10
**        GIE - GENERATE INTERNAL ERROR FSC.
*
*         ENTRY  4XX, 5XX AND 6XX CODES ARE HANDLED.


          ROUTINE GIE

          LDDL   BC+BCDA
          LMC    0#240A
          NJN    GIE1        IF NOT SPECIAL 40A ANALYSIS
          LDC    2RDC
          ADM    CPUO
          UJN    GIE2        WRITE FAULT SYMPTOM CODE

 GIE1     LDM    IOUM
          STD    MD
          LDC    2RDI        IOU ELEMENT IDENTIFIER
          ADM    IOUN        NUMBER OF CURRENT IOU (LOWER 12 BITS ONLY)
 GIE2     RJM    WFC         WRITE FAULT SYMPTOM
          LJM    GIEX        RETURN
 GSM      SPACE  4,10
**        GSM - GENERATE FAULT SYMPTOM CODE FOR MEMORY.
*
*         CALLS  WFC.


          ROUTINE  GSM

          LDC    2RDM        MEMORY ELEMENT IDENTIFIER
          RJM    WFC         WRITE FAULT SYMPTOM CODE
          LJM    GSMX        RETURN
 GSP      SPACE  4,10
**        GSP - GENERATE FAULT SYMPTOM CODE FOR PAGE MAP.
*
*         PAGE MAP IS VALID ONLY ON AN S0.  THEREFORE, THIS ROUTINE
*         GENERATES AN ERROR.
*
*         EXIT   TO *ERRH*.


          ROUTINE  GSP

*         SETUP SCRATCH BUFFER CONTROL WORD.
*         DFT ANALYSIS - 61E DFT INTERNAL ERROR.

          SETDAN (EPUN,DAIE)
          LDC    TDFT+DAIE
          STML   RTP1
          CALL   ERRH
          SPACE  4,10
*copy     ctp$convert_digits_to_ascii
*copy     ctp$dft_write_fsc
*         END CTP$DFT_GENERATE_FAULT_SYMPTOM

