*         CTEXT  CTP$DFT_INCREMENT_ERROR_COUNT
 INC      SPACE  4,10
**        INC - INCREMENT COUNTERS.
*
*         THE CORRECTED, UNCORRECTED, UNLOGGED FIELDS OF THE
*         ASSOCIATED MAINFRAME ELEMENT COUNTERS BUFFER IS UPDATED.
*
*         EXIT   (A) < 0 = DONT LOG ERROR.
*                (A) > 0  LOG ERROR.
*
*         USES   T2, T3, T4, T5, CM - CM+3.
*
*         CALLS  CTV, IDA, SPB, VCK.


 INC      SUBR               ENTRY/EXIT
          LDN    VER2
          RJM    VCK         CHECK VERSION OF OS DFT BLOCK
          PJP    INC5        IF AT LEAST VERSION 2
          LDDL   BC+BCEI
          SHN    -10
          ADM    NBUF
          ADM    NUMHW       HEADER POINTERS BLOCK LENGTH
          STD    T3
          RJM    IDA
          CRDL   CM          GET COUNTER (I)
          LDDL   CM
          SHN    21-17
          PJN    INC.5
          LDN    0
          STM    INCA        IF THRESHOLD FLAG ALREADY SET DONT LOG
 INC.5    LDD    CM+METH
          NJN    INC0
          LDN    THRH        GET DEFAULT THRESHOLD
 INC0     STD    T4
          LDDL   BC+BCDA     DFT ANALYSIS CODE
          SHN    -BC.ANP
          STD    T2
          ZJN    INC1        IF ERROR PRIORITY = NONE
          LDN    EPUN
          SBD    T2
          ZJN    INC2        IF UNCORRECTED ERROR
          SBN    1
          ZJN    INC3        IF CORRECTED ERROR
          LDM    INCA
          LJM    INCX        RETURN

 INC1     AOD    CM+MEUL     UNLOGGED = UNLOGGED + 1
          UJP    INC4        CONTINUE PROCESSING

 INC2     AOD    CM+MEUN     UNCORRECTED = UNCORRECTED + 1
          SBD    T4
          MJN    INC4        IF BELOW THRESHOLD
          LDDL   CM
          SHN    21-17
          PJN    INC2.5
          AOD    CM+MEUL
          LDN    0
          STM    INCA
          UJN    INC4        CONTINUE

 INC2.5   LDN    1
          STM    LOGT        SET THRESHOLD MET
          STM    STON
          UJN    INC4        CONTINUE

 INC3     AOD    CM+MECO     CORRECTED = CORRECTED + 1
          SBD    T4
          MJN    INC4        IF BELOW THRESHOLD
          LDDL   CM
          SHN    21-17
          PJN    INC3.5
          AOD    CM+MEUL
          LDN    0
          STM    INCA
          UJN    INC4        CONTINUE

 INC3.5   LDN    1
          STM    LOGT
          STM    STON
 INC4     LDD    T3
          RJM    IDA
          CWDL   CM          REWRITE COUNTER
          LDM    INCA
          LJM    INCX        RETURN

 INC5     LDN    VER4
          RJM    VCK         CHECK VERSION
          PJP    INC11       IF VERSION 4 OR GREATER

          LDDL   BC+BCEI
          SHN    -10         ISOLATE ELEMENT INDEX
          ADM    NBUF
          ADM    NUMHW       NUMBER OF POINTER WORDS
          STD    T5
          RJM    IDA
          CRDL   CM          GET COUNTER (I)
          LDDL   BC+BCDA
          SHN    -BC.ANP     ISOLATE PRIORITY
          NJN    INC6        IF PRIORITY IS CORRECTED OR UNCORRECTED
 INC5.5   AODL   CM+MEUL     INCREMENT UNLOGGED COUNTER
          LDN    0
          STM    INCA        SET DONT LOG FLAG
          UJN    INC8        REWRITE COUNTER

 INC6     SBN    MECO        CORRECTED ERROR VALUE
          NJP    INC9        IF UNCORRECTED ERROR
          RJM    CTV         CALCULATE THRESHOLD VALUE
          MJN    INC5.5      IF NOT TO LOG ERRORS FOR THIS ELEMENT
          STD    T4
          LDDL   CM          GET THRESHOLDS
          SHN    21-17
          PJN    INC7        IF NO CURRENT THRESHOLD
          UJN    INC5.5      INCREMENT UNLOGGED COUNTER

 INC7     AOD    CM+MECO     INCREMENT CORRECTED COUNTER
          SBD    T4          SAVED THRESHOLD VALUE
          MJN    INC8        IF THRESHOLD NOT EXCEEDED
          LDD    T4
          ZJN    INC8        IF WANT ALL ERRORS LOGGED
          LDN    0
          STM    INCA        THRESHOLD MET DONT LOG ERROR
          LDN    1
          STM    LOGT        SET THRESHOLD MET FLAG
          STM    STON
          SHN    17
          LMDL   CM          SET CORRECTED THRESHOLD FLAG
          STDL   CM
 INC8     LRD    DP+1
          RJM    SPB         SET OS BOUNDS
          LDD    T5
          RJM    IDA
          CWDL   CM
          LDM    INCA
          LJM    INCX        RETURN

 INC9     RJM    CTV         CALCULATE THRESHOLD VALUE
          MJP    INC5.5      IF NOT TO LOG ERRORS FOR THIS ELEMENT
          STD    T4
          LDDL   CM          GET THRESHOLDS
          SHN    21-7
          PJN    INC10       IF NO CURRENT THRESHOLD
          LJM    INC5.5      INCREMENT UNLOGGED COUNTER

 INC10    AOD    CM+MEUN     INCREMENT UNCORRECTED COUNTER
          SBD    T4
          MJN    INC8        IF THRESHOLD NOT EXCEEDED
          LDD    T4
          ZJN    INC8        IF WANT ALL LOGGED
          LDN    1
          STM    LOGT        SET THRESHOLD MET FLAG
          STM    STON
          SHN    7
          LMDL   CM          SET UNCORRECTED THRESHOLD
          STDL   CM
          LJM    INC8        CONTINUE

 INC11    BSS    0           VERSION 4 PROCESSING

          LDDL   BC+BCDA
          SHN    -BC.ANP
          STD    T3          SAVE ERROR PRIORITY
          LDM    ETYP,ET     GET ELEMENT TYPE CTI CONVERSION
          STD    T1
          LDM    OTYP,ET     GET ORDINAL ADJUSTMENT ADDRESS
          STD    T2
          ZJN    INC12       IF ORDINAL CANNOT BE GREATER THAN 0
          LDI    T2
          SHN    4
          LMD    T1          FORM ORDINAL/TYPE FOR ID
          STD    T1
 INC12    RJM    GCE         GET COUNTER FOR THIS ID
          LDD    T1
          RJM    GTV         GET THRESHOLD VALUES FROM ECR
          LDD    T3
          ZJP    INC15       IF ZERO PRIORITY INCREMENT UNLOGGED COUNTER
          SBN    MECO
          ZJP    INC14       IF CORRECTED ERROR
          LDML   INCB+3
          ZJP    INC15       IF ZERO DONT LOG THE ERROR
          LMC    0#FFFF
          ZJP    INC16       IF ALWAYS LOG THE ERROR
          LDDL   CM
          LPN    3           GET THRESHOLD MET FLAGS
          SHN    -1
          NJP    INC15       IF THRESHOLD MET DONT LOG THE ERROR
          LDDL   CM+3
          SBML   INCB+3
          MJP    INC16       IF STILL BELOW THRESHOLD
          AODL   CM+1        BUMP THE UNLOGGED ERROR COUNTER
          LDN    1
          STM    LOGT        SET THRESHOLD MET FLAG
          STM    STON
          SHN    1
          LMDL   CM
          STDL   CM          SET THRESHOLD MET FLAG IN COUNTER
          LDN    0
          STM    INCA
 INC13    LRD    W1
          LDD    W0
          ADC    RR
          CWDL   CM          REWRITE COUNTER
          LDM    INCA
          LJM    INCX

 INC14    LDML   INCB+2
          ZJN    INC15       IF ZERO DONT LOG THE ERROR
          LMC    0#FFFF
          ZJN    INC16       IF ALWAYS LOG THE ERROR
          LDDL   CM
          LPN    1           GET CORRECTED ERROR THRESHOLD MET
          NJN    INC15       IF THRESHOLD MET DONT LOG THE ERROR
          LDDL   CM+2
          SBML   INCB+2
          MJN    INC16       IF NOT AT THRESHOLD YET
          AODL   CM+1        BUMP THE UNLOGGED COUNT
          LDN    1
          STM    LOGT        SET THRESHOLD MET FLAG
          STM    STON
          LMDL   CM
          STDL   CM          SET THE THRESHOLD MET FLAG IN THE COUNTER
          LDN    0
          STM    INCA
          LJM    INC13       WRITE THE COUNTER

 INC15    AODL   CM+1        INCREMENT UNLOGGED COUNTER
          LDN    0
          STM    INCA
          LJM    INC13       WRITE THE COUNTER

 INC16    LDD    T3          GET ERROR PRIORITY
          SBN    MECO
          ZJN    INC17       IF CORRECTED
          AODL   CM+3        BUMP UNCORRECTED COUNT
          LJM    INC13       WRITE COUNTER

 INC17    AODL   CM+2        BUMP CORRECTED ERROR COUNT
          LJM    INC13       WRITE COUNTER
*COPY CTP$DFT_GET_COUNTER_ENTRY
 GTV      SPACE  4,10
**        GTV - GET THRESHOLD VALUE.
*
*         ENTRY  (A) = ID TO SEARCH ECR FOR
*
*         EXIT   (INCB) = THRESHOLDS FOR UNCORRECTED OR CORRECTED ERRORS
*                TO *ERRH* IF THRESHOLD VALUE NOT FOUND.
*
*         USES   T4 - T7, W4 - W7, INCA - INCA+3.


 GTV      SUBR               ENTRY/EXIT
          STM    GTVA        SAVE ID
          LDN    ECRP
          RJM    IDA
          CRDL   T4          READ IN THE ECR POINTER WORD
          LDD    T4
          LRD    T5
          ADC    RR
          CRDL   W4          READ IN ECR HEADER WORD
          SODL   W7          DECREMENT NUMBER OF ENTRIES FOR COUNTING
          AODL   T4          GET PAST HEADER
 GTV1     LDDL   T4
          ADC    RR
          CRML   INCB,ON     READ IN ELEMENT ID WORD
          LDML   INCB
          LMML   GTVA
          ZJP    GTV2        IF FOUND CORRECT WORD
          LDDL   W6          ENTRY SIZE
          RADL   T4          BUMP OFFSET
          SODL   W7
          PJN    GTV1        IF MORE TO EXAMINE

*         DFT ANALYSIS - LOST COUNTER VALUE FOR THIS ELEMENT.

          LDN    BC
          RJM    CLR
          SETDAN (EPUN,DATV)
          LDC    DATV+TDFT   620 - CANNOT FIND THRESHOLD VALUE
          STML   RTP1
          CALL   ERRH        ISSUE MESSAGE AND HANG

 GTV2     AODL   T4
          ADC    RR
          CRML   INCB,ON     READ IN THE THRESHOLD ENTRY
          LJM    GTVX

 GTVA     CON    0

 INCA     CON    1           LOG FLAG
 INCB     BSSZ   4

*         END    CTP$DFT_INCREMENT_ERROR_COUNT
