          EJECT
*         CTEXT CTP$DFT_ERROR_CONTROL
*
*         THIS DECK CONTAINS CODE TO PROCESS
*         VARIOUS DIFFERENT ERROR CONTROLS ON DFT

 CFF      SPACE  4,10
**        CFF - CHECK IF FREEZE FLAG SET.
*
*         CALLS  FHE, IDA, *HAP*, *SAP*.


          ROUTINE CFF
          LDN    0
          STM    RTP2
          LDN    VER5
          RJM    VCK         CHECK VERSION
          PJP    CFF9        IF VERSION 5 OR GREATER
          LDN    HDRP
          RJM    IDA
          CRDL   CM          GET DFT HEADER
          LDDL   CM+DHFLG
          LPBC   (DH.FFC,DH.FFU)
          ZJP    CFFX        IF NEITHER FLAG SPECIFIED
          LDDL   CM+DHFLG
          LPBC   (DH.FFC)
          ZJN    CFF2        IF FREEZE ON CORRECTED ERROR NOT SET
          LDM    SUMS
          LPBC   (SSCE)
          ZJN    CFF2        IF ENTRY NOT A CORRECTED ERROR
          CALL   HAP         HALT ALL PROCESSORS
 CFF1     LDN    HDRP
          RJM    IDA
          CRDL   CM          GET HEADER
          LDDL   CM+DHFLG
          SHN    21-DH.FFC
          MJN    CFF1        IF FREEZE ON CORRECTED ERROR FLAG SET
          UJN    CFF4        START PROCESSORS

 CFF2     LDDL   CM+DHFLG
          LPBC   (DH.FFU)
          ZJP    CFF7        IF FREEZE ON UNCORRECTED NOT SET
          LDM    SUMS
          LPBC   (SSUE)
          ZJN    CFF7        IF ENTRY NOT UNCORRECTED ERROR
          CALL   HAP         HALT ALL PROCESSORS
 CFF3     LDN    HDRP
          RJM    IDA
          CRDL   CM          GET DFT HEADER
          LDDL   CM+DHFLG
          SHN    21-DH.FFU
          MJN    CFF3        IF FREEZE ON UNCORRECTED ERROR FLAG SET
 CFF4     CALL   SAP         START ALL PROCESSORS
          LDD    ET
          SBN    PROCID
          NJN    CFF5        IF NOT A PROCESSOR
          LDM    CPUH        GET THE HALTED PROCESSOR ORDINAL
          SHN    14
          UJN    CFF6        CHECK ELEMENT

 CFF5     LDN    0           ALL OTHERS ARE ZERO
 CFF6     LMD    ET          TYPE OF ELEMENT PREVIOUSLY WORKING ON
          RJM    FHE
          MJN    CFF8        IF CANT FIND WHAT WE WERE DOING
 CFF7     LJM    CFFX        RETURN

 CFF8     SETDAN (EPUN,DAME)
          LDC    DAME+TDFT   613 - DFT NO DESC IN MRT
          STM    RTP1
          CALL   ERRH

 CFF9     BSS    0           VERSION 5 PROCESSING
          LDN    ECRP
          RJM    IDA         INCREMENT DFT ADDRESS
          CRDL   W0
          LDDL   W0
          LRD    W1
          ADC    RR
          CRDL   W0          READ IN CONTROL FLAGS
          LDDL   W1
          LPN    1
          ZJP    CFFX        IF NO SPECIAL PROCESSING
          RJM    CET         CONVERT ELEMENT TYPE
          RJM    GEE         GET ELEMENT ENTRY IN ERROR CONTROL RECORD
          MJP    CFF29       IF ENTRY NOT FOUND
          STM    CFFC        SAVE ENTRY OFFSET
          LDDL   CM+1        GET ACTION INDEX
          STD    T2
          LDM    CFFA,T2
          STD    T2
          LJM    0,T2        PROCESS ACTION CODE

 CFF10    LJM    CFFX

 CFF11    LDN    1
          STM    RTP2        SET TO IGNORE ERROR HANDLING
          UJN    CFF10

 CFF12    CALL   HAP
 CFF12.1  LDN    ECRP
          RJM    IDA         INCREMENT DFT ADDRESS
          CRDL   W0          READ IN POINTER WORD
          LDDL   W0
          LRD    W1
          ADC    RR
          CRDL   W0          READ IN ECR HEADER
          LDDL   W1
          LPN    2
          ZJN    CFF12.1     IF NO UPDATE REQUIRED
          CALL   SAP
          RJM    ROE         RESTORE ORIGINAL ELEMENT

          UJP    CFFX

 CFF12.5  LDM    SUMS
          LPBC   (SSUE,SSCE)
          NJP    CFF12       IF ANY ERROR
          UJP    CFF10

 CFF13    LDM    SUMS        SUMMARY STATUS
          LPBC   (SSCE)
          ZJP    CFF10       IF NOT CORRECTED ERROR
          UJP    CFF12

 CFF14    LDM    SUMS        SUMMARY STATUS
          LPBC   (SSUE)
          ZJP    CFF10       IF NOT UNCORRECTED ERROR
          UJP    CFF12

 CFF15    LDM    SUMS        SUMMARY STATUS
          LPBC   (SSCE)
          ZJP    CFF10       IF NOT CORRECTED ERROR
          UJP    CFF11

 CFF16    LDM    SUMS
          LPBC   (SSUE)
          ZJP    CFF10       IF NOT UNCORRECTED ERROR
          UJP    CFF11

 CFF17    RJM    GR1         GET R1 REGISTER
          LDN    0
          RJM    CBR         CHECK BIT RANGE
          ZJP    CFF10       IF NOT IN RANGE
          UJP    CFF12

 CFF18    RJM    GR1         GET R1 REGISTER
          LDN    0
          RJM    CSB         CHECK FOR SPECIFIC BITS SET
          NJP    CFF10       IF SPECIFIC BITS NOT SET
          UJP    CFF12

 CFF19    RJM    GR1         GET R1 REGISTER
          RJM    GR2         GET R2 REGISTER
          LDN    0
          RJM    CBR         CHECK BIT RANGE
          ZJP    CFF10       IF NOT IN RANGE
          LDN    1
          RJM    CBR         CHECK BIT RANGE
          ZJP    CFF10       IF NOT IN RANGE
          UJP    CFF12

 CFF20    RJM    GR1         GET R1 REGISTER
          RJM    GR2         GET R2 REGISTER
          LDN    0
          RJM    CBR         CHECK BIT RANGE
          ZJP    CFF10       IF NOT IN RANGE
          LDN    1
          RJM    CSB         CHECK SPECIFIC BITS
          NJP    CFF10       IF SPECIFIC BITS NOT SET
          UJP    CFF12

 CFF21    RJM    GR1         GET R1 REGISTER
          RJM    GR2         GET R2 REGISTER
          LDN    0
          RJM    CSB         CHECK FOR SPECIFIC BIT
          NJP    CFF10       IF NOT SET
          LDN    1
          RJM    CBR         CHECK BIT RANGE
          ZJP    CFF10       IF NOT SET
          UJP    CFF12

 CFF22    RJM    GR1         GET R1 REGISTER
          RJM    GR2         GET R2 REGISTER
          LDN    0
          RJM    CSB         CHECK SPECIFIC BITS
          NJP    CFF10       IF NOT SET
          LDN    1
          RJM    CSB         CHECK SPECIFIC BITS
          NJP    CFF10       IF NOT SET
          UJP    CFF12

 CFF23    RJM    GR1         GET R1 REGISTER
          RJM    GR2         GET R2 REGISTER
          LDN    0
          RJM    CBR         CHECK BIT RANGE
          ZJP    CFF10       IF NOT IN RANGE
          LDN    1
          RJM    CBR         CHECK BIT RANGE
          ZJP    CFF10       IF NOT IN RANGE
          UJP    CFF11

 CFF24    RJM    GR1         GET R1 REGISTER
          RJM    GR2         GET R2 REGISTER
          LDN    0
          RJM    CBR         CHECK BIT RANGE
          ZJP    CFF10       IF NOT IN RANGE
          LDN    1
          RJM    CSB         CHECK SPECIFIC BITS
          NJP    CFF10       IF NOT SET
          UJP    CFF11

 CFF25    RJM    GR1         GET R1 REGISTER
          RJM    GR2         GET R2 REGISTER
          LDN    0
          RJM    CSB         CHECK SPECIFIC BIT
          NJP    CFF10       IF NOT SET
          LDN    1
          RJM    CBR         CHECK BIT RANGE
          ZJP    CFF10       IF NOT IN RANGE
          UJP    CFF11

 CFF26    RJM    GR1         GET R1 REGISTER
          RJM    GR2         GET R2 REGISTER
          LDN    0
          RJM    CSB         CHECK FOR SPECIFIC BITS
          NJP    CFF10       IF NOT SET
          LDN    1
          RJM    CSB         CHECK FOR SPECIFIC BITS
          NJP    CFF10       IF NOT SET
          UJP    CFF11

 CFF27    RJM    GR1         GET R1 REGISTER
          LDN    0
          RJM    CBR         CHECK BIT RANGE
          ZJP    CFF10       IFF NOT IN RANGE
          UJP    CFF11

 CFF28    RJM    GR1         GET R1 REGISTER
          LDN    0
          RJM    CSB         CHECK SPECIFIC BITS
          NJP    CFF10       IF NOT SET
          UJP    CFF11

*         DFT ANALYSIS - ILLEGAL ELEMENT SPECIFIED ON ERROR CONTROL.
*         DFT FLAGS - LOGGING.

 CFF29    SETDAN (EPUN,DAIE)
          SETFLG (BC.FL)
          LDN    CM
          RJM    CLR
          LDD    T1          GET BAD ELEMENT ID
          STDL   CM
          LDN    NRSP
          RJM    IDA
          CRDL   W0          READ IN NON REGISTER BUFFER POINTER
          LRD    W1
          LDDL   W0
          ADC    RR+NRSBL+1
          CWDL   CM          WRITE REQUEST RESPONSE TO SCRATCH BUFFER
          LDN    NRSBL
          STML   LLOG
          LDN    1
          STML   RTP1
          CALL   LOG
          LJM    CFFX        RETURN

 CFFA     CON    CFFX
          CON    CFF11
          CON    CFF12.5
          CON    CFF13
          CON    CFF14
          CON    CFF15
          CON    CFF16
          CON    CFF17
          CON    CFF18
          CON    CFF19
          CON    CFF20
          CON    CFF21
          CON    CFF22
          CON    CFF23
          CON    CFF24
          CON    CFF25
          CON    CFF26
          CON    CFF27
          CON    CFF28

 CFFC     CON    0           CURRENT ENTRY
 CFFD     BSSZ   4           R1 REGISTER
 CFFE     BSSZ   4           R2 REGISTER
 ROE      SPACE  4,10
**        ROE - RESTORE ORIGINAL ELEMENT.
*
*         EXIT   (HBUF) HOLDS THE ORIGINAL ELEMENT WHICH CAUSED THE ACTION.

 ROE      SUBR               ENTRY/EXIT
          LDD    ET
          SBN    PROCID
          NJN    ROE2        IF NOT CPU
          LDM    CPUO
          SHN    14
          ADN    PROCID
 ROE1     RJM    FHE         RE READ THE ELEMENT
          MJP    ROE5        IF ERROR FINDING ELEMENT
          UJP    ROEX

 ROE2     LDD    ET
          SBN    IOUID
          NJN    ROE3        IF NOT IOU
          LDM    IOUO
          SHN    14
          ADN    IOUID
          UJN    ROE1

 ROE3     LDD    ET
          SBN    CMID
          NJN    ROE4        IF NOT CENTRAL MEMORY
          LDN    CMID
          UJP    ROE1

 ROE4     LDD    ET
          SBN    PMID
          NJN    ROE5        IF NOT PAGE MAP
          LDN    PMID
          UJP    ROE1

*         DFT ANALYSIS - ERROR PROCESSING ERROR CONTROL RECORD.
*         DFT FLAGS - LOGGING.

 ROE5     SETDAN (EPUN,DAEP)
          SETFLG (BC.FL)
          LDN    CM
          RJM    CLR
          LDD    ET          GET ELEMENT TYPE
          STDL   CM+1
          LDN    NRSP
          RJM    IDA
          CRDL   W0          READ IN NON REGISTER BUFFER POINTER
          LRD    W1
          LDDL   W0
          ADC    RR+NRSBL+1
          CWDL   CM          WRITE REQUEST RESPONSE TO SCRATCH BUFFER
          LDN    NRSBL
          STML   LLOG
          LDN    1
          STML   RTP1
          CALL   LOG
          LJM    ROEX        RETURN
 GEE      SPACE  4,10
**        GEE - GET ELEMENT ENTRY.
*
*         ENTRY  (A) = ID OF ENTRY TO FIND.
*
*         EXIT   (A) = CURRENT POSITION OF ENTRY.
*                (A) < 0 = ENTRY NOT FOUND.
*                (W0 - W3) = POINTER TO ERROR CONTROL RECORD.
*                (CM - CM+3) = ENTRY HEADER WORD.


 GEE0     LDM    GEEA
 GEE      SUBR               ENTRY/EXIT
          STD    T1          SAVE ID OF ENTRY
          LDN    ECRP
          RJM    IDA         INCREMENT DFT ADDRESS
          CRDL   W0          POINTER ADDRESS
          LRD    W1
          LDD    W0
          ADC    RR
          CRML   GEEB,ON     HEADER WORD
 GEE1     LDM    GEEA
          ADD    W0
          ADC    RR
          CRDL   CM          GET ID WORD
          LDDL   CM
          LPC    0#FF
          SBD    T1          ID TO SEARCH FOR
          ZJN    GEE0        IF FOUND THE ENTRY
          LDM    GEEB+2
          RAML   GEEA        GET TO NEXT ENTRY
          SBD    W3
          PJP    GEE2        IF AT END OF TABLE
          UJP    GEE1

 GEE2     LCN    0
          UJP    GEEX

 GEEA     CON    1
 GEEB     BSS    4
 CET      SPACE  4,10
**        CET - CONVERT ELEMENT TYPE.
*
*         EXIT   (A) = ELEMENT ID TO SEARCH FOR.
*
*         USES   T1.


 CET      SUBR               ENTRY/EXIT
          LDD    ET
          STD    T1
          SBN    PROCID
          NJN    CET1        IF NOT PROCESSOR
          LDM    CPUO
          SHN    4
          STM    CETA        SAVE ORDINAL PORTION OF ID
          UJN    CET2

 CET1     LDD    T1
          SBN    IOUID
          NJN    CET2        IF NOT IOU
          LDM    IOUO
          SHN    4
          STM    CETA        SAVE ORDINAL PORTION OF ID
 CET2     LDM    ETYP,T1
          LMML   CETA        FORM COMPLETE ID
          UJN    CETX        RETURN

 CETA     CON    0

*COPY CTC$DFT_ELEMENT_CONVERSIONS


 GCC      SPACE  4,10
**        GCC - GET CONNECT CODE.
*
*         ENTRY  (A) = ELEMENT TYPE.
*
*         EXIT   (A) = CONNECT CODE.


 GCC      SUBR               ENTRY/EXIT
          STD    T1
          LDN    PROCID
          SBD    T1
          NJN    GCC2        IF NOT PROCESSOR
          LDM    CPUO
          NJN    GCC1        IF CPU 1
          LDML   CP0CC
          UJN    GCCX        RETURN

 GCC1     LDML   CP1CC
          UJN    GCCX        RETURN

 GCC2     LDN    IOUID
          SBD    T1
          NJN    GCC3        IF NOT IOU
          LDML   I0CC
          UJN    GCCX        RETURN

 GCC3     LDN    CMID
          SBD    T1
          NJN    GCC4        IF NOT MEMORY
          LDML   CMCC
          UJN    GCCX

 GCC4     LDML   S0PMC       PAGE MAP CONNECT CODE
          UJP    GCCX        RETURN

 CBR      SPACE  4,10
**        CBR - CHECK BIT RANGE.
*
*         ENTRY  (A) = 0 = USE R1 REGISTER DATA.
*                (A) = 1 = USE R2 REGISTER DATA.
*
*         EXIT   (A) <> 0 BIT RANGE MET.
*                (A) = 0 BIT RANGE CONDITION NOT MET.


 CBR      SUBR               ENTRY/EXIT
          STD    T1
          LDN    ECRP
          RJM    IDA
          CRDL   W0          POINTER WORD
          LDD    T1
          NJP    CBR1
          LDDL   W0
          ADM    CFFC        ENTRY OFFSET
          ADC    RR+3
          LRD    W1
          CRML   CBRA,ON     R1 REGISTER
          LDML   CFFD
          LPML   CBRA
          NJP    CBRX        RETURN
          LDML   CFFD+1
          LPML   CBRA+1
          NJP    CBRX
          LDML   CFFD+2
          LPML   CBRA+2
          NJP    CBRX
          LDML   CFFD+3
          LPML   CBRA+3
          UJP    CBRX

 CBR1     LDDL   W0
          ADM    CFFC        ENTRY OFFSET
          ADC    RR+5
          LRD    W1
          CRML   CBRA,ON     R2 REGISTER
          LDML   CFFE
          LPML   CBRA
          NJP    CBRX        RETURN
          LDML   CFFE+1
          LPML   CBRA+1
          NJP    CBRX
          LDML   CFFE+2
          LPML   CBRA+2
          NJP    CBRX
          LDML   CFFE+3
          LPML   CBRA+3
          UJP    CBRX

 CBRA     BSS    4
 CSB      SPACE  4,10
**        CSB - CHECK SPECIFIC BIT.
*
*         ENTRY  (A) = 0 = USE R1 REGISTER DATA.
*                (A) = 1 = USE R2 REGISTER DATA.
*
*         EXIT   (A) <> 0 SPECIFIC BIT CONDITION NOT MET.
*                (A) = 0 SPECIFIC BIT CONDITION MET.


 CSB      SUBR               ENTRY/EXIT
          STD    T1
          LDN    ECRP
          RJM    IDA
          CRDL   W0          POINTER WORD
          LDD    T1
          NJP    CSB1        IF TO R2 REGISTER
          LDDL   W0
          ADM    CFFC        ENTRY OFFSET
          ADC    RR+3
          LRD    W1
          CRML   CSBA,ON     R1 REGISTER
          LDML   CFFD
          LMML   CSBA
          NJP    CSBX        RETURN
          LDML   CFFD+1
          LMML   CSBA+1
          NJP    CSBX
          LDML   CFFD+2
          LMML   CSBA+2
          NJP    CSBX
          LDML   CFFD+3
          LMML   CSBA+3
          UJP    CSBX

 CSB1     LDDL   W0
          ADM    CFFC        ENTRY OFFSET
          ADC    RR+5
          LRD    W1
          CRML   CSBA,ON     R2 REGISTER
          LDML   CFFE
          LMML   CSBA
          NJP    CSBX        RETURN
          LDML   CFFE+1
          LMML   CSBA+1
          NJP    CSBX
          LDML   CFFE+2
          LMML   CSBA+2
          NJP    CSBX
          LDML   CFFE+3
          LMML   CSBA+3
          UJP    CSBX

 CSBA     BSS    4
 GR1      SPACE  4,10
**        GR1 - GET R1 REGISTER.
*
*         ENTRY  - (CM - CM+3) = ENTRY HEADER WORD.
*
*         EXIT   - (CFFD - CFFD+3) R1 REGISTER WITH MASK APPLIED.
*
*         CALLS  GCC, IDA, PAC, *READMR*.
*
*         USES   EC, RN, W0 - W3.


 GR1      SUBR               ENTRY/EXIT
          LDDL   CM+2        GET R1
          STD    RN
          LDDL   CM          GET ID
          LPN    0#F
          STD    T1
          LDML   ETYP,T1    CONVERT TO CTI BASED ID
          RJM    GCC         GET CONNECT CODE
          STDL   EC
          READMR RDATA       READ REGISTER CONTENTS
          RJM    PAC         PACK TO *MRVAL*
          LDN    ECRP
          RJM    IDA
          CRDL   W0          POINTER WORD
          LDDL   W0
          ADM    CFFC        ENTRY POSITION IN ERROR CONTROL RECORD
          LRD    W1
          ADC    RR+2
          CRML   CFFD,ON     READ IN M1 MASK
          LDML   MRVAL
          LPML   CFFD
          STML   CFFD
          LDML   MRVAL+1
          LPML   CFFD+1
          STML   CFFD+1
          LDML   MRVAL+2
          LPML   CFFD+2
          STML   CFFD+2
          LDML   MRVAL+3
          LPML   CFFD+3
          STML   CFFD+3
          UJP    GR1X
 GR2      SPACE  4,10
**        GR2 - GET R2 REGISTER.
*
*         ENTRY  - (CM - CM+3) = ENTRY HEADER WORD.
*
*         EXIT   - (CFFE - CFFE+3) R2 REGISTER WITH MASK APPLIED.
*
*         CALLS  GCC, IDA, PAC, *READMR*.
*
*         USES   EC, RN, W0 - W3.


 GR2      SUBR               ENTRY/EXIT
          LDDL   CM+3        GET R2
          STD    RN
          LDDL   CM          GET ID
          LPN    0#F
          STD    T1
          LDML   ETYP,T1    CONVERT TO CTI BASED ID
          RJM    GCC         GET CONNECT CODE
          STDL   EC
          READMR RDATA       READ REGISTER CONTENTS
          RJM    PAC         PACK TO *MRVAL*
          LDN    ECRP
          RJM    IDA
          CRDL   W0          POINTER WORD
          LDDL   W0
          ADM    CFFC        ENTRY POSITION IN ERROR CONTROL RECORD
          LRD    W1
          ADC    RR+4
          CRML   CFFE,ON     READ IN M2 MASK
          LDML   MRVAL
          LPML   CFFE
          STML   CFFE
          LDML   MRVAL+1
          LPML   CFFE+1
          STML   CFFE+1
          LDML   MRVAL+2
          LPML   CFFE+2
          STML   CFFE+2
          LDML   MRVAL+3
          LPML   CFFE+3
          STML   CFFE+3
          UJP    GR2X

 UER      SPACE  4,10
**        UER - UPDATE ERROR CONTROL RECORD.
*
*         CALLS  ECM, *FINDCM*, IDA, UED.
*
*         USES   CALB, T1, T2, W0 - W7.

          ROUTINE UER
          LJM    UER1        FOR 1.4.1 DONT MAKE 2AP REQUESTS UNILATERALLY
          LDC    0#210       READ CDA FUNCTION
          STML   CALB
          LDC    0503
          STML   CALB+1
          LDC    2200
          STML   CALB+2
          RJM    ECM         EXECUTE CIP MODULE
          LDML   CALB+1
          SBN    4
          MJP    UER5        IF 2AP ERROR
          LDM    CPU0M
          SHN    -4
          LMN    5
          NJN    UER1        IF NOT S0
          LDML   TOUB
          ADC    24+H77TBLP
          UJN    UER2

 UER1     LDML   TOUB
          ADC    H77TBLP
 UER2     STML   UERA
          STML   UERB
          STML   UERC
          LDN    ECRP
          RJM    IDA         INCREMENT DFT ADDRESS
          CRDL   W4
          FINDCM ECR
          ADN    2           SKIP HEADER WORDS
          CRML   **,W7       READ IN ECR FROM EI BUFFER AREA
 UERA     EQU    *-1
          LDDL   W4
          LRD    W5
          ADC    RR
          CWML   **,W7       WRITE TO ECR IN DFT STRUCTURE
 UERB     EQU    *-1
          RJM    CSP         CHECK FOR SPECIAL PROCESSING
          NJN    UER3        IF SPECIAL PROCESSING
          LDN    0
          STDL   T1
          UJN    UER4

 UER3     LDN    1
          STDL   T1          SET SPECIAL PROCESSING
 UER4     LDN    ECRP
          RJM    IDA         INCREMENT DFT ADDRESS
          CRDL   W0
          LDDL   W0
          LRD    W1
          ADC    RR
          CRDL   W4          READ IN CONTROL FLAGS
          LDDL   W5
          LPC    0#FFFC
          LMDL   T1
          STDL   W5
          LDDL   W0
          ADC    RR
          CWDL   W4          REWRITE CONTROL FLAGS
          LDDL   W0
          ADC    RR
          CRML   **,W7       READ ECR BACK INTO PP MEMORY
 UERC     EQU    *-1
*         CALL   UED         UPDATE THE DISK BUT NOT FOR 1.4.1 UNILATERALLY
          UJP    UERX        RETURN

*         DFT ANALYSIS - ERROR UPDATING ERROR CONTROL RECORD.
*         DFT FLAGS - LOGGING.

 UER5     SETDAN (EPUN,DAUE)
          SETFLG (BC.FL)
          LDN    CM
          RJM    CLR
          LDML   CALB+1      GET 2AP RESPONSE
          STDL   CM+1
          LDN    NRSP
          RJM    IDA
          CRDL   W0          READ IN NON REGISTER BUFFER POINTER
          LRD    W1
          LDDL   W0
          ADC    RR+NRSBL+1
          CWDL   CM          WRITE REQUEST RESPONSE TO SCRATCH BUFFER
          LDN    NRSBL
          STML   LLOG
          LDN    1
          STML   RTP1
          CALL   LOG
          LJM    UERX        RETURN
 UED      SPACE  4,10
**        UED - UPDATE ERROR CONTROL RECORD ON DISK.
*
*         CALLS  LOG, PFC.
*
*         USES   CALB.


          ROUTINE UED
          LDC    3120        WRITE 16 BIT CDA SECTOR FUNCTION FOR CTI
          STML   CALB
          LDC    0503
          STML   CALB+1      FIRST PART OF NAME
          LDC    2200
          STML   CALB+2      LAST PART OF NAME
          LDC    360
          STML   CALB+3      LENGTH OF SECTOR
          CALL   PFC         PREPARE FOR 2AP CALL
          LDML   CALB+1
          ZJP    UEDX        IF NO ERRORS
          SBN    76+1
          PJP    UEDX        IF NO ERRORS

*         DFT ANALYSIS - ERROR UPDATING ERROR CONTROL RECORD.
*         DFT FLAGS - LOGGING.

          SETDAN (EPUN,DAUE)
          SETFLG (BC.FL)
          LDN    CM
          RJM    CLR
          LDML   CALB+1      GET 2AP RESPONSE
          STDL   CM+1
          LDN    NRSP
          RJM    IDA
          CRDL   W0          READ IN NON REGISTER BUFFER POINTER
          LRD    W1
          LDDL   W0
          ADC    RR+NRSBL+1
          CWDL   CM          WRITE REQUEST RESPONSE TO SCRATCH BUFFER
          LDN    NRSBL
          STML   LLOG
          LDN    1
          STML   RTP1
          CALL   LOG
          LJM    UEDX        RETURN

 CSP      SPACE  4,10
**        CSP - CHECK FOR DFT SPECIAL PROCESSING.
*
*         EXIT   (A) <> 0 IF SPECIAL PROCESSING REQUIRED.
*
*         USES   CM - CM+3, T1 - T4, W0 - W7.


 CSP      SUBR               ENTRY/EXIT
          LDN    ECRP
          RJM    IDA
          CRDL   W0          POINTER TO ECR
          LDDL   W0
          LRD    W1
          ADC    RR
          CRDL   CM          GET HEADER TO ECR
          LDDL   W0
          ADC    RR
          CRDL   W4          HEADER TO ECR
          AODL   W0
 CSP1     LDDL   W0
          ADC    RR
          CRDL   T1          GET ID/ACTION WORD
          LDDL   T2
          NJN    CSPX        IF SOME ACTION SPECIFIED
          LDDL   CM+2
          RADL   W0
          SODL   CM+3
          NJN    CSP1        IF MORE TO EXAMINE
          LDN    0
          UJP    CSPX        RETURN


*         END CTP$DFT_ERROR_CONTROL
