          EJECT
*         CTEXT CTP$DFT_ANALYZE_IOU_ERRORS_I4
*
*         ANALYSIS ROUTINES FOR I4 IOUS
*
*         NOTE:  THIS DECK USES A VARIANT OF THE ROUTINE
*         MACRO. THIS VARIANT REMOVES THE GLOBAL NATURE OF THE
*         ENTRY POINT NAMES (NAME_O, NAME_E) TO ALLOW FOR THE
*         POSSIBILITY OF EITHER I2 OR I4 BEING ON THE SYSTEM.
*
*         THE USAGE OF THIS DECK IS AS FOLLOWS
*
*         QUAL
**COPY CTP$DFT_ANALYZE_IOU_ERRORS_I4
*         QUAL   *



 AIE      SPACE  4,10
**        AIE - ANALYSE IOU ERRORS.
*
*         ENTRY  REGISTERS LOGGING IN SCRATCH BUFFER.
*                (IOUO) = IOU ORDINAL.
*                (SUMS) = SUMMARY STATUS.
*
*         CALLS  CEE, CLR, GBV, FMB, *CFF*, *LOG*.


          ROUTINE AIE,NG

          RJM    CEE         CHECK FOR EXPECTED IOU ERROR
          NJP    AIEX        IF NO PROCESSING NEEDED
          LDN    0
          STM    NERR        SET NO ERROR FLAG FALSE
          LDN    BC
          RJM    CLR         ZERO SCRATCH BCW
          LDML   IOUO        GET IOU ORDINAL
          RJM    SSE         SET SECONDARY ELEMENT IDENTIFIER
          CALL   CFF         CHECK FOR FREEZE
          LDM    RTP2
          ZJN    AIE1        IF NOT TO IGNORE ERROR
          LDN    0
          STM    REGI        RESET REGISTER LIST INDEX
          STM    DFTA
          UJP    AIEX

 AIE1     SETDAC DDCL        ACTION TO CLEAR ERRORS
          LDC    IFS2
          RJM    FMB         FIND MAINTENANCE REGISTER IN SCRATCH BUFFER
          CRDL   W0
          LDDL   W3
          SHN    21-7        GET MAC ERROR BIT
          PJP    AIE2       IF OK NOT SET
          LDN    BC
          RJM    CLR

*         SET UP SCRATCH BUFFER CONTROL WORD.
*
*         DFT ANALYSIS - ANALYSIS = FATAL IOU ERROR.
*         DFT ANALYSIS - DFT ACTION = CLEAR ERROR.
*         DFT ANALYSIS - ERROR PRIORITY = UNCORRECTED ERROR.
*         DFT ANALYSIS - FLAGS = VALID 170, VALID 180, LOG (OS).
*         DFT ANALYSIS - OS ACTION = FATAL IOU ERROR.
*                                  = SYSTEM STEP (VERSION 4).

          SETDAC DDCL
          SETDAN (EPUN,DAFI)
          SETFLG (BC.FV7,BC.FV8,BC.FL)
          RJM    SOI         SET OS ACTION BASED ON IOU ORDINAL
          LJM    AIE10       CONTINUE

 AIE2     LDM    IOUM
          LMC    0#43
          ZJN    AIE2.1      IF MODEL 43
          LMN    0#44&0#43
          NJP    AIE2.5      IF NOT MODEL 43, 44 IOU
 AIE2.1   LDM    /HB57/BI57
          ZJP    AIE2.5      IF NOT BIT 57
          LDN    0           CLEAR BIT 57 FLAG
          STM    /HB57/BI57
          LDN    BC
          RJM    CLR

*         SET UP SCRATCH BUFFER CONTROL WORD.
*
*         DFT ANALYSIS - ANALYSIS = FATAL IOU ERROR.
*         DFT ANALYSIS - DFT ACTION = CLEAR ERROR.
*         DFT ANALYSIS - ERROR PRIORITY = UNCORRECTED ERROR.
*         DFT ANALYSIS - FLAGS =  VALID 180, LOG (OS).
*         DFT ANALYSIS - OS ACTION = FATAL BIT 57 IOU ERROR.
*                                  = SYSTEM STEP (VERSION 4).

          SETDAC DDCL
          SETDAN (EPUN,DAIB)
          SETFLG (BC.FV8,BC.FL)
          SETOSA OSSS,OSIMB
          LDML   IOUO        GET IOU ORDINAL
          ZJN    AIE2.25     IF IOU0 ERROR
          SETOSA OS18S,OSIMB
 AIE2.25  LJM    AIE10       CONTINUE

 AIE2.5   LDM    SUMS
          SHN    21-SSPH
          PJP    AIE3       IF NOT PROCESSOR HALT

*         SET UP SCRATCH BUFFER CONTROL WORD.
*
*         DFT ANALYSIS - ANALYSIS = UNCORRECTED IOU ERROR.
*         DFT ANALYSIS - DFT ACTION = CLEAR ERROR.
*         DFT ANALYSIS - ERROR PRIORITY = UNCORRECTED ERROR.
*         DFT ANALYSIS - FLAGS = LOG (OS).
*         DFT ANALYSIS - OS ACTION = FATAL IOU ERROR.
*                                  = SYSTEM STEP (VERSION 4).

          SETDAC DDCL
          SETDAN (EPUN,DAUIE)
          SETFLG (BC.FL)
          SETOSA OSFIE,OSSS
          LDN    0
          STM    GBVA        FLAG FOR NIO PP REGISTERS
          RJM    GBV         GET BOUNDS VIOLATION
          ZJN    AIE3        IF NOT NIO PP
          LJM    AIE5        CONTINUE

 AIE3     LDC    IFS1
          RJM    FMB         FIND MAINTENANCE REGISTER IN SCRATCH BUFFER
          CRDL   W0          GET *FS1* REGISTER
          LDDL   W2          BITS 32 - 47
          LPC    0#FF07      IGNORE 12/16, BIT 44, CORRECTED ERROR BITS
          RADL   W3          INCLUDE BITS 48 - 63
          ZJP    AIE3.5      IF BITS 32 - 39, 45 - 63 NOT SET

*         SET UP SCRATCH BUFFER CONTROL WORD.
*
*         DFT ANALYSIS - ANALYSIS = FATAL IOU ERROR.
*         DFT ANALYSIS - DFT ACTION = CLEAR ERROR.
*         DFT ANALYSIS - ERROR PRIORITY = UNCORRECTED ERROR.
*         DFT ANALYSIS - FLAGS = VALID 170, VALID 180, LOG (OS).
*         DFT ANALYSIS - OS ACTION = FATAL IOU ERROR.
*                                  = SYSTEM STEP (VERSION 4).

          SETDAC DDCL
          SETDAN (EPUN,DAFI)
          SETFLG (BC.FV7,BC.FV8,BC.FL)
          RJM    SOI         SET OS ACTION BASED ON IOU ORDINAL
          LJM    AIE5        CONTINUE

 AIE3.5   LDDL   W2
          SHN    21-3        12/16 CONVERSION ERROR
          PJP    AIE4        IF NOT 12/16 ERROR

*         SET UP SCRATCH BUFFER CONTROL WORD.
*
*         DFT ANALYSIS - ANALYSIS = 12/16 CONVERSION ERROR.
*         DFT ANALYSIS - DFT ACTION = CLEAR ERROR.
*         DFT ANALYSIS - ERROR PRIORITY = CORRECTED ERROR.
*         DFT ANALYSIS - FLAGS = LOG (OS).

          SETDAC DDCL
          SETDAN (EPCO,DA1216)
          SETFLG (BC.FL)
          LJM    AIE5        CONTINUE

 AIE4     LDC    IFS2        *FS2* REGISTER
          RJM    FMB         FIND MAINTENANCE REGISTER IN SCRATCH BUFFER
          CRDL   W0          READ THE REGISTER
          LDC    EIMR
          RJM    FMB         FIND MAINTENANCE REGISTER IN SCRATCH BUFFER
          CRDL   W4
          LDDL   W6
          LPC    0#FF
          LMC    0#42
          NJN    AIE4.5      IF NOT MODEL 42 IOU
          LDDL   W3
          LPC    0#1F90
          STDL   W3          CLEAR CIO COMPONENT
 AIE4.5   LDDL   W0
          ADDL   W1          CHECK FOR ANY BITS SET
          ADDL   W2
          ADDL   W3
          ZJP    AIE6        GO CHECK CIO REGISTERS

*         SET UP SCRATCH BUFFER CONTROL WORD.
*
*         DFT ANALYSIS - ANALYSIS = CHANNEL ERROR.
*         DFT ANALYSIS - DFT ACTION = CLEAR ERROR.
*         DFT ANALYSIS - ERROR PRIORITY = UNCORRECTED ERROR.
*         DFT ANALYSIS - FLAGS = LOG (OS).

          SETDAC DDCL
          SETDAN (EPCO,DACHE)
          SETFLG (BC.FL)
 AIE5     CALL   LOG         LOG ERROR
          RJM    RSS         RESTORE SCRATCH SUPPORTIVE STATUS BUFFER
          LDN    BC
          RJM    CLR         CLEAR OLD ANALYSIS CODE

 AIE6     LDN    EIMR        ELEMENT ID
          RJM    FMB         FIND MAINTENANCE REGISTER IN SCRATCH BUFFER
          CRDL   W0
          LDDL   W2
          LPC    0#FF
          LMC    0#43
          ZJP    AIE11       IF MODEL 43 IOU
          LMN    0#44&0#43
          ZJP    AIE11       IF MODEL 44 IOU
          LDN    OIMR        OPTIONS INSTALLED REGISTER
          RJM    FMB         FIND MAINTENANCE REGISTER IN SCRATCH BUFFER
          CRDL   W0
          LDDL   W3
          SHN    10D
          PJP    AIE11       IF NO CIO PPS PRESENT, STILL CHECK FOR CORR ERR
          LDM    SUMS
          SHN    21-SSPH
          PJP    AIE7        IF NOT PROCESSOR HALT

*         SET UP SCRATCH BUFFER CONTROL WORD.
*
*         DFT ANALYSIS - ANALYSIS = UNCORRECTED CIO PP ERROR.
*         DFT ANALYSIS - DFT ACTION = CLEAR ERROR.
*         DFT ANALYSIS - ERROR PRIORITY = UNCORRECTED ERROR.
*         DFT ANALYSIS - FLAGS = LOG (OS) ALREADY SET.
*         DFT ANALYSIS - OS ACTION = FATAL IOU ERROR.
*                                  = SYSTEM STEP (VERSION 4).

          SETDAC DDCL
          SETDAN (EPUN,DACUIE)
          SETOSA OSFIE,OSSS
          LDN    1
          STM    GBVA        FLAG FOR CIO PP
          RJM    GBV         GET BOUNDS VIOLATION FOR CIO PP
          ZJN    AIE7        IF NOT CIO PP
          LJM    AIE10       CONTINUE

 AIE7     LDN    EIMR
          RJM    FMB         FIND REGISTER IN MAINTENANCE REGISTER SCRATCH
          CRDL   W0
          LDDL   W2
          LPC    0#FF
          LMC    0#42        MODEL 42 IOU
          ZJP    AIE8.5      IF MODEL 42 IOU
          LDC    CIFS1
          RJM    FMB         FIND MAINTENANCE REGISTER IN SCRATCH BUFFER
          CRDL   W0          GET *FS1* REGISTER
          LDDL   W2          BITS 32 - 47
          LPC    0#DF07      IGNORE 12/16, UNUSED BITS, CORRECTED ERRORS
          STDL   T1
          LDDL   W3          BITS 48 - 63
          LPC    0#FB00
          RADL   T1          INCLUDE BITS 48 - 63
          ZJP    AIE8        IF NO ERRORS IN *FS1* (EXCEPT 12/16)

*         SET UP SCRATCH BUFFER CONTROL WORD.
*
*         DFT ANALYSIS - ANALYSIS = FATAL IOU ERROR.
*         DFT ANALYSIS - DFT ACTION = CLEAR ERROR.
*         DFT ANALYSIS - ERROR PRIORITY = UNCORRECTED ERROR.
*         DFT ANALYSIS - FLAGS = VALID 170, VALID 180, LOG (OS).
*         DFT ANALYSIS - OS ACTION = FATAL IOU ERROR.
*                                  = SYSTEM STEP (VERSION 4).

          SETDAC DDCL
          SETDAN (EPUN,DACFI)
          SETFLG (BC.FV7,BC.FV8,BC.FL)
          RJM    SOI         SET OS ACTION BASED ON IOU ORDINAL
          LJM    AIE10       LOG ERROR

 AIE8     LDDL   W2
          SHN    21-3        12/16 CONVERSION ERROR
          PJP    AIE9        IF NOT 12/16 ERROR

*         SET UP SCRATCH BUFFER CONTROL WORD.
*
*         DFT ANALYSIS - ANALYSIS = 12/16 CONVERSION ERROR.
*         DFT ANALYSIS - DFT ACTION = CLEAR ERROR.
*         DFT ANALYSIS - ERROR PRIORITY = CORRECTED ERROR.
*         DFT ANALYSIS - FLAGS = LOG (OS).

          SETDAC DDCL
          SETDAN (EPCO,DAC1216)
          SETFLG (BC.FL)
          LJM    AIE10       LOG ERROR

 AIE8.5   LDC    IFS2
          UJN    AIE9.1      READ NIO FS2 REGISTER ON MODEL 42 IOU

 AIE9     LDC    CIFS2       *FS2* REGISTER
 AIE9.1   RJM    FMB         FIND MAINTENANCE REGISTER IN SCRATCH BUFFER
          CRDL   W0          READ THE REGISTER
          LDN    EIMR
          RJM    FMB         FIND REGISTER IN MAINTENANCE REGISTER SCRATCH
          CRDL   T1
          LDDL   T3
          LPC    0#FF
          LMC    0#42        MODEL 42 IOU
          NJN    AIE9.5      IF NOT MODEL 42 IOU
          LDDL   W3
          LPN    0#F
          UJN    AIE9.6

 AIE9.5   LDDL   W0
          ADDL   W1          CHECK FOR ANY BITS SET
          ADDL   W2
          ADDL   W3
 AIE9.6   ZJP    AIE11       IF NO ERRORS

*         SET UP SCRATCH BUFFER CONTROL WORD.
*
*         DFT ANALYSIS - ANALYSIS = CHANNEL ERROR.
*         DFT ANALYSIS - DFT ACTION = CLEAR ERROR.
*         DFT ANALYSIS - ERROR PRIORITY = CORRECTED ERROR.
*         DFT ANALYSIS - FLAGS = LOG (OS).

          SETDAC DDCL
          SETDAN (EPCO,DACCHE)
          SETFLG (BC.FL)
 AIE10    CALL   LOG         LOG ERROR
          RJM    RSS         RESTORE SCRATCH SUPPORTIVE STATUS BUFFER
          LDN    BC
          RJM    CLR         CLEAR OLD ANALYSIS CODE
 AIE11    LDM    SUMS
          SHN    21-SSCE
          PJP    AIE12       IF NOT CORRECTED ERROR

*         SET UP SCRATCH BUFFER CONTROL WORD.
*
*         DFT ANALYSIS - ANALYSIS = CORRECTED IOU ERROR.
*         DFT ANALYSIS - DFT ACTION = CLEAR ERROR.
*         DFT ANALYSIS - ERROR PRIORITY = CORRECTED ERROR.
*         DFT ANALYSIS - FLAGS = LOG (OS).

          SETDAC DDCL
          SETDAN (EPCO,DACIE)
          SETFLG (BC.FL)
          CALL   LOG
 AIE12    RJM    ZSB         ZERO THE SUPPORTIVE STATUS BUFFER
          LJM    AIEX        RETURN

 GBV      SPACE  4,10
**        GBV - GET BOUNDS VIOLATION.
*
*         ENTRY  *GBVA* IS FLAG DENOTING 1=CIO REGISTER, 0=NIO REGISTER.
*
*         EXIT   (A) = 0 PERTINENT *FS1* RESISTER NOT IN ERROR.
*
*         USES   T1, W0 - W7.
*
*         CALLS  FMB, VCK.


 GBV      SUBR               ENTRY/EXIT
          LDN    EIMR        ELEMENT ID REGISTER
          RJM    FMB         FIND REGISTER IN BUFFER
          CRDL   W0
          LDDL   W2
          LPC    0#FF
          LMC    0#42
          STD    T1          SAVE MODEL 42 IOU BOOLEAN
          LDM    GBVA
          NJN    GBV0        IF CIO PP
          LDC    IFS1        ADD IN *FS1* REGISTER OFFSET
          UJN    GBV2        CONTINUE

 GBV0     LDD    T1
          NJN    GBV1        IF NOT MODEL 42 IOU
          LDC    IFS1
          UJN    GBV2

 GBV1     LDC    CIFS1       CIO *FS1* REGISTER
 GBV2     RJM    FMB         FIND MAINTENANCE REGISTER IN SCRATCH BUFFER
          CRDL   W0          GET *FS1* REGISTER
          LDD    T1
          NJN    GBV5        IF NOT MODEL 42 IOU
          LDM    GBVA
          NJN    GBV3        IF CIO SEARCH
          LDDL   W1
          LPC    0#1F00      CLEAR CIO COMPONENT
          UJN    GBV4

 GBV3     LDN    0
          STDL   W0          CLEAR NIO BARRELS 0,1
          LDDL   W1
          LPC    0#1F
 GBV4     STDL   W1
 GBV5     LDDL   W0
          ADDL   W1
          ADDL   W2
          ADDL   W3
          ZJP    GBVX        IF NOTHING IN *FS1*
          LDM    GBVA
          NJN    GBV6        IF CIO PP
          LDN    IOSB        NIO OS BOUNDS
          UJN    GBV8        CONTINUE

 GBV6     LDD    T1
          NJN    GBV7        IF NOT MODEL 42 IOU
          LDN    IOSB
          UJN    GBV8

 GBV7     LDN    CIOSB       CIO OS BOUNDS
 GBV8     RJM    FMB         FIND MAINTENANCE REGISTER IN SCRATCH BUFFER
          CRDL   W4
          LDDL   W0
          LPDL   W4          USE *OSB* AS A MASK AGAINST *FS1* REGISTER
          ZJN    GBV11       SO FAR 180 PP
 GBV9     SETFLG (BC.FV7)    SET VALID 170 FLAG
          LDN    VER2
          RJM    VCK         CHECK DFT BLOCK VERSION
          MJN    GVB10       IF DFT 1 SELECTED

*         DFT ANALYSIS - OS ACTION = FATAL IOU ERROR.
*                                  = C170 STATE STEP (VERSION 4).

          SETOSA OSNSI,OS17S
          LDN    1
 GVB10    LJM    GBVX        RETURN

 GBV11    LDM    GBVA        GET CIO OR NIO
          NJN    GBV12       IF CIO ONLY HAVE 2 BARRELS
          LDDL   W1
          LPDL   W5          USE OS BOUNDS AS MASK
          NJP    GBV9        IF 170 PP ERROR
 GBV12    SETFLG (BC.FV8)    SET VALID 180 FLAG

*         DFT ANALYSIS - OS ACTION = FATAL IOU ERROR.
*                                  = C180 STATE STEP (VERSION 4).

          SETOSA OSVEI,OS18S

          LDN    D8TY
          RJM    IIB
          CRDL   CM
          LDDL   CM+3
          LPC    0#3F
          SBN    2
          MJN    GBV13       IF DFT LEVEL GREATER THAN OS LEVEL
          SETOSA OSVEI,OSHGP HUNG PP OS ACTION
 GBV13    LDN    1
          LJM    GBVX        RETURN

 GBVA     CON    0           FLAG TELLING NIO OR CIO TYPE OF PP
 RSS      SPACE  4,10
**        RSS - RESTORE SUPPORTIVE STATUS.
*
*         ENTRY  (LLOG) HOLDS THE LENGTH TO LOG
*

 RSS      SUBR               ENTRY/EXIT
          LDN    VER4
          RJM    VCK         CHECK VERSION
          MJN    RSSX        IF LESS THAN VERSION 4 LEAVE
          LDN    SSBP        READ SUPPORTIVE STATUS HEADER WORD
          RJM    IDA
          CRDL   CM
          AODL   CM          SKIP TO SCRATCH ENTRY HEADER WORD
          LRD    CM+1
          ADC    RR
          CRML   RSSA,ON
          LDML   LLOG        SET LOGGED MRB SIZE
          STML   RSSA+3
          LDN    MTMRB       SET MRB TYPE
          RAML   RSSA
          LDDL   CM          REWRITE HEADER WORD
          ADC    RR
          CWML   RSSA,ON
          UJN    RSSX        RETURN

 RSSA     BSSZ   4
 SOI      SPACE  4,10
**        SOI - SET OS ACTION BASED ON IOU ORDINAL.
*
*         EXIT   APPROPRIATE OS ACTION CODE HAS BEEN SET.
*                FOR VERSION 4 OR LATER THESE ACTION CODES
*                ARE SYSTEM STEP, IF IOU0 ERROR OR
*                C180 STATE STEP, IF IOU1 ERROR.


 SOI1     SETOSA OSFIE,OSSS

 SOI      SUBR               ENTRY/EXIT
          LDML   IOUO        GET IOU ORDINAL
          ZJN    SOI1        IF IOU0 ERROR
          SETOSA OSVEI,OS18S
          UJN    SOIX        RETURN
 ZSB      SPACE  4,10
**        ZSB - ZERO SUPPORTIVE STATUS.
*
*

 ZSB      SUBR               ENTRY/EXIT
          LDN    VER4
          RJM    VCK         CHECK VERSION
          MJN    ZSBX        IF LESS THAN VERSION 4 LEAVE
          LDN    SSBP        READ SUPPORTIVE STATUS HEADER WORD
          RJM    IDA
          CRDL   CM
          AODL   CM          SKIP TO SCRATCH ENTRY HEADER WORD
          LRD    CM+1
          ADC    RR
          CWML   ZSBA,ON     CLEAR SUPPORTIVE STATUS HEADER
          UJN    ZSBX        RETURN

 ZSBA     BSSZ   4

*         END OF CTP$DFT_ANALYZE_IOU_ERRORS_I4





