*DECK,HPA36 
      OVCAP.
      SUBROUTINE HPA36
* 
**      HPA36 - CONTROL PROGRAM FOR ROUTINES IN SECONDARY 
*               OVERLAY ( 3,6 ) 
* 
*CALL HPACOM1 
* 
      IF (FROG(6) .NE. L"T") GO TO 10 
      CALL SECOND (CP)
      PRINT 9,CP
    9 FORMAT ( ' ENTER HPA36, SECOND = ',F10.3) 
   10 CONTINUE
      GO TO (100,200,100,100,100,100,100,100,900) OVCALL
  
  100 GO TO 1000
  
  200 CONTINUE
      IF ((IFLD(FRTY).EQ.O"12").AND.(IFLD(FDT).NE.R"SR")) 
     .   GO TO 300
      CALL AN6SCR3
      GO TO 1000
  
  300 CONTINUE
      CALL GNR3 
      CALL SETEM3(1)
      GO TO 1000
  
  900 IF (RTY .EQ. O"73") GO TO 910 
      IF(RTY .EQ. O"72") GO TO 920
      CALL AN6ECS3
      GO TO 1000
  
  910 CALL AN6MAP3
      GO TO 1000
* 
920   CALL AN6ESM3
  
 1000 CONTINUE
      END 
      SUBROUTINE  AN6ECS3 
* 
**        DESCRIPTION 
*         ----------- 
*         SUBROUTINE AN6ECS3 PROCESSES ECS/ESM/STORNET SEF DATA.
* 
*                                                                        R2FECS 
*         DATA AREAS                                                     R2FECS 
*         -----------                                                    R2FECS 
*                                                                        R2FECS 
*         THE INFORMATION FROM THE SEF IS STORED IN THE ARRAY IFLD.      R2FECS 
*                                                                        R2FECS 
*         IFLD(20) = TIME                                                R2FECS 
*             (21) = RETRY                                               R2FECS 
*             (22) = DEVICE STATUS (IF ANY)                              R2FECS 
*                  = ERROR INCIDENT NUMBER FOR EC MESSAGES
*             (23) = FUNCTION REJECTED (IF ANY)                          R2FECS 
*             (24) = 6681 STATUS (IF ANY)                                R2FECS 
*             (25) = LAST THREE BITS USED TO STORE THE GOOD, BAD, UGLY
*                    FLAG. IT WAS SET IN POST2. 
*                    THE SIX BITS BEFORE THE FLAG BITS = THE LINK 
*                    CHARACTER OF DE OR DP OR SN MESSAGES.
*             (26) = RECOVERED/UNRECOVERED                               R2FECS 
*             (27) = R/W                                                 R2FECS 
*             (28) = ECS - XFER ADDRESS                                  R2FECS 
*             (29) = CM - XFER ADDRESS                                   R2FECS 
*             (30) = WORD COUNT                                          R2FECS 
*             (31) = ECS - ERROR ADDRESS                                 R2FECS 
*             (32) = RA - ECS                                            R2FECS 
*             (33) = ECS SIZE/1000B                                      R2FECS 
*             (35) = EXPECTED DATA (GOOD)                                R2FECS 
*             (36) = ACTUAL DATA (BAD)                                   R2FECS 
*                                                                        R2FECS 
*         ARRAY UADD IS USED TO STORE DATA FOR THE ANALYSIS REPORT       R2FECS 
*                                                                        R2FECS 
*         UADD(1,J) = COUNT OF ERRORS AT THAT ADDRESS WITH THAT DATA     R2FECS 
*             (2,J) = ERROR ADDRESS                                      R2FECS 
*             (3,J) = GOOD DATA                                          R2FECS 
*             (4,J) = BAD DATA                                           R2FECS 
*             (5,J) = DATA DIFFERENCE                                    R2FECS 
*             (6,J) = FLAG TO TELL WHICH DATA WAS PRESENT - GOOD,BAD OR  R2FECS 
*                     UGLY (UGLY = CAN'T DETERMINE GOOD OR BAD DATA)     R2FECS 
*                                                                        R2FECS 
*         OTHER DATA AREAS USED ARE:                                     R2FECS 
*                                                                        R2FECS 
*         STOR(68,32) = STORE ERROR COUNT - STORED IN ERDIST3            R2FECS 
*         NOADRER = NUMBER OF ADDRESS ERORS - 1 WORD RETRYS              R2FECS 
*                                                                        R2FECS 
*         IGBU = FLAG FOR GOOD,BAD OR UGLY (FROM UADD(6,J))              R2FECS 
*         IF IGBU = 1 THEN GOOD DATA ONLY                                R2FECS 
*                 = 2 THEN BAD DATA ONLY                                 R2FECS 
*                 = 3 THEN GOOD AND BAD DATA                             R2FECS 
*                 = 4 THEN UGLY DATA ONLY                                R2FECS 
*                 = 5 N/A                                                R2FECS 
*                 = 6 THEN UGLY AND BAD DATA                             R2FECS 
*                 = 7 N/A                                                R2FECS 
*                                                                        R2FECS 
*         IGDATA                                                         R2FECS 
*         IBDATA    = USED TO STORE DATA IN DISPLAY CODE                 R2FECS 
*         IDIFDATA                                                       R2FECS 
*                                                                        R2FECS 
*         GENERAL NOTES                                                  R2FECS 
*         -------------                                                  R2FECS 
*                                                                        R2FECS 
*         IF IFLD(FMTY) = 350B THRU 354B THEN MESSAGE IS FROM NOS/BE     R2FECS 
*                                                                        R2FECS 
*         IF IFLD(FMTY) = 355B THEN ITS AN OLD DP OR DE MSG (NOS)        R2FECS 
*                         OR IT MAY BE FROM AN OLD NORM                  R2FECS 
*                                                                        R2FECS 
*         IF IFLD(FMTY) = 356B THEN IT IS A NEW DP OR EC MESSAGE WHICH   R2FECS 
*                         HAS ONE WORD RETRYS. (NOS)                     R2FECS 
*                                                                        R2FECS 
*         IF IFLD(FMTY) = 40B, 41B, 50B, 100B, 363B - SN MSG FROM NOS 
* 
*         IF IFLD(FRTY) = 70B THEN ITS A ECS MESSAGE (DE MSG FROM NOS)   R2FECS 
*         IF IFLD(FRTY) = 71B - ESM (DP) OR STORNET (SN) MSG FROM NOS 
*                                                                        R2FECS 
*CALL,HPACOM1 
*CALL,HPACOM2 
*CALL,HPACOM3 
  
      DIMENSION UADD(6,75)                                               R2FECS 
      DIMENSION IGDATA(2),IBDATA(2),IDIFDAT(2)                           R2FECS 
      EQUIVALENCE (UADD(1,1),STOR(1,1)) 
  
      MAXECS = 75 
      IHDR = 20 
      NOADRER = 0                                                        R2FECS 
  
      CALL INISET3
      MPR(1,1) = O"31"
      MPR(1,2) = 16 
      IF (RTY .EQ. O"71") MPR(1,2) = 17 
      MPR(2,1) = O"32"
      MPR(2,2) = 10 
      MPR(3,1) = O"34"
      MPR(3,2) = 11 
      MPR(4,1) = O"51"
      MPR(4,2) = MPR(1,2) 
      MPR(5,1) = O"52"
      MPR(5,2) = 11 
      MPR(6,1) = O"356" 
      MPR(6,2) = MPR(1,2) 
  
      TYPID = 4HECS 
      IF (RTY .EQ. O"71") TYPID = 4HDDP 
      IF (IFLD(FDT) .EQ. R"SN") TYPID = 7HSTORNET 
   20 IF (RCFA .EQ. 2HON) CALL STOJN3 
*                                                                        R2FECS 
*         ONLY ADD THE 1 WORD READS TO THE ANALYSIS TABLE                R2FECS 
*                                                                        R2FECS 
      IF (IFLD(30) .NE. 1) GO TO 50                                      R2FECS 
  
*     ELIMINATE FOR RMS/RAM ERRORS/MESSAGES 
      IF (((MTY .GE. O"32") .AND. (MTY .LE. O"34")) .OR.
     .     (MTY .EQ. O"52")) GO TO 50 
  
      NOADRER = NOADRER + 1                                              R2FECS 
*                                                                        R2FECS 
*         SET THE FLAG TO 3, IF NOT A 1 WORD READ NOS MESSAGE            R2FECS 
*                                                                        R2FECS 
      IF ((MTY .NE. O"356") .AND. (IFLD(FDT) .NE. R"SN") .AND.
     .    (MTY .NE. O"40") .AND. (MTY .NE. O"41") .AND. 
     .    (MTY .EQ. O"50") .AND. (MTY .NE. O"100") .AND.
     .    (MTY .NE. O"363")) IFLD(25) = 3 
  
      DO 30 J = 1,MAXECS
         IF(UADD(1,J).EQ.0)GO TO 40 
*                                                                        R2FECS 
*         ADD IN THE RELATIVE ADDRESSES                                  R2FECS 
*                                                                        R2FECS 
         IFLD(28) = IFLD(28) + IFLD(32)                                  R2FECS 
         IFLD(31) = IFLD(31) + IFLD(32)                                  R2FECS 
         IF (IFLD(31) .EQ. 0) IFLD(31) = IFLD(28)                        R2FECS 
         IF (IFLD(31) .NE. UADD(2,J)) GO TO 30                           R2FECS 
         IF(IFLD(34).NE.UADD(3,J))GO TO 30
         IF(IFLD(35).NE.UADD(4,J))GO TO 30
         IF (IFLD(25) .NE. UADD(6,J)) GO TO 30                           R2FECS 
         GO TO 40 
   30 CONTINUE
      GO TO 50
  
   40 UADD(1,J) = UADD(1,J) + 1 
      UADD(2,J) = IFLD(31)                                               R2FECS 
      UADD(3,J) = IFLD(34)
      UADD(4,J) = IFLD(35)
      UADD(5,J) = XOR(IFLD(34),IFLD(35))
      UADD(6,J) = IFLD(25)                                               R2FECS 
* 
   50 IF (RCFD .NE. 3HOFF) CALL DL6ECS3 
  
      CALL GNR3 
      CALL SETEM3(1)
      IF (TWIC .GE. 3) GO TO 20 
      IF (RCFA .EQ. 3HOFF) GO TO 890
      CALL XOVCAP ('ERDIST3',0,0) 
      CALL UOVCAP ('ERDIST3') 
  
      IF (UADD(1,1) .EQ. 0) GO TO 890                                    R2FECS 
      HCF(1) = 20 
      HCF(2) = 0
      CALL PHEAD36 (1)
      DO 875 J=1,MAXECS                                                  HPA402J
      IF (UADD(1,J).EQ.0) GO TO 880 
      IF ((UADD(3,J).EQ.0).AND.(UADD(4,J).EQ.0)) GO TO 875
*                                                                        R2FECS 
*         BLANK OUT FIELDS THAT DO NOT HAVE MEANINGFUL DATA              R2FECS 
*                                                                        R2FECS 
      IGBU = AND(UADD(6,J),7)                                            R2FECS 
      IGDATA(1) = IBDATA(1) = IDIFDAT(1) = 0                             R2FECS 
      IF (IGBU .EQ. 3) GO TO 840                                         R2FECS 
      IF (IGBU .EQ. 6) GO TO 830                                         R2FECS 
      IF (IGBU .EQ. 1) GO TO 825                                         R2FECS 
      IGDATA(1) = 10H                                                    R2FECS 
      IGDATA(2) = 10H                                                    R2FECS 
  825 CONTINUE                                                           R2FECS 
      IF (IGBU .EQ. 2) GO TO 830                                         R2FECS 
      IBDATA(1) = 10H                                                    R2FECS 
      IBDATA(2) = 10H                                                    R2FECS 
  830 CONTINUE                                                           R2FECS 
      IF (IGBU .NE. 6) GO TO 835                                         R2FECS 
      IDIFDAT(1) = 10H NO GOOD -                                         R2FECS 
      IDIFDAT(2) = 10H BOTH BAD                                          R2FECS 
  835 CONTINUE                                                           R2FECS 
      IDIFDAT(1) = 10H                                                   R2FECS 
      IDIFDAT(2) = 10H                                                   R2FECS 
  840 CONTINUE                                                           R2FECS 
      IF (IGDATA(1) .EQ. 0) ENCODE(20,903,IGDATA) UADD(3,J)              R2FECS 
      IF (IBDATA(1) .EQ. 0) ENCODE(20,903,IBDATA) UADD(4,J)              R2FECS 
      IF (IDIFDAT(1) .EQ. 0) ENCODE(20,903,IDIFDAT) UADD(5,J)            R2FECS 
      CALL LOAPR(1,UADD(1,J),UADD(2,J),IGDATA(1),IGDATA(2),              R2FECS 
     .IBDATA(1),IBDATA(2),IDIFDAT(1),IDIFDAT(2))                         R2FECS 
      CALL PRINT36 (6,8)
  875 CONTINUE
*                                                                        R2FECS 
*         PRINT TOTAL MESSAGE W/ TOTAL NUMBER OF ADDRESS ERRORS          R2FECS 
*                                                                        R2FECS 
  880 CONTINUE
      PL(1) = NOADRER                                                    R2FECS 
      PL(2) = STOR(68,32)                                                R2FECS 
      CALL PRINT36(105,2)                                                R2FECS 
  
  890 CONTINUE
  903 FORMAT(O20)                                                        R2FECS 
      RETURN
      END 
      SUBROUTINE AN6ESM3
* 
**    DESCRIPTION 
*     ----------- 
*     SUBROUTINE AN6ESM PROCESSES ESM/STORNET SECDED DATA AND HOURLY
*                       SIDE DOOR PORT STATUS FROM THE SEF FILE.
* 
*                       RECORD TYPE 72B FROM NOS
*                       DEVICE TYPE ES FOR ESM; SN FOR STORNET
*                       ERROR CODE 344B - HOURLY SIDE DOOR PORT STATUS
*                                  345B/357B - DOUBLE BIT ERRORS
*                                  346B/360B - PROG. SINGLE BIT CTR.
*                                  347B/361B - SINGLE BIT ERRORS
* 
*CALL,HPACOM1 
*CALL,HPACOM2 
      CALL INISET3
      IHDR = 12 
20    MPR(1,1) = IFLD(FMTY) 
      IF  (MTY .EQ. O"344") MPR(1,2) = 5
      IF ((MTY .EQ. O"345") .OR. (MTY .EQ. O"357")) MPR(1,2) = 6
      IF ((MTY .EQ. O"346") .OR. (MTY .EQ. O"360")) MPR(1,2) = 7
      IF ((MTY .EQ. O"347") .OR. (MTY .EQ. O"361")) MPR(1,2) = 8
  
      TYPID = 3HESM 
      IF (IFLD(FDT) .EQ. R"SN") TYPID = 7HSTORNET 
  
      CALL DL6ESM3
      CALL GNR3 
      CALL SETEM3(1)
      IF (TWIC .GE. 5) GO TO 20 
  
      IF (RCFA .EQ. 2HON) THEN
         CALL XOVCAP ('ERDIST3',0,0)
         CALL UOVCAP ('ERDIST3')
      ENDIF 
  
      RETURN
      END 
        SUBROUTINE AN6MAP3
* 
**            AN6MAP3 ---   PROCESS ANALYSIS REPORTS AND CALL DETAIL
*                           FOR THE MAP III/IV MESSAGES.
* 
*CALL,HPACOM1 
*CALL,HPACOM2 
  
      SRTY = RTY
      IHDR = 23 
      TYPID = 10HMAP III/IV 
   50 CALL INISET3
  
      MPR(1,1) = O"377" 
      MPR(1,2) = 24 
  100 IF (RCFA .EQ. 2HON) CALL STOJN3 
  
      IF (RCFD .EQ. 2HON) CALL DL6MAP3
  
      CALL GNR3 
      CALL SETEM3(1)
       IF (TWIC .LT. 3 ) GO TO 400
       GO TO 100
  
  400 IF (RCFA .EQ. 2HON) THEN
         CALL XOVCAP ('ERDIST3',0,0)
         CALL UOVCAP ('ERDIST3')
      ENDIF 
  
*             IF EOF
       IF (TWIC .EQ. 0) GO TO 500 
       IF (SRTY .EQ. RTY ) GO TO 50 
  
  500 RETURN
       END
      SUBROUTINE AN6SCR3                                                 HPA31A1
* 
***       DESCRIPTION 
*         ----------- 
* 
*         AN6SCR3 - PRINTS ANALYSIS REPROT FOR CY176 AND CY170           HPA31A1
*         STATUS/CONTROL REGISTER ENTRIES.                               HPA31A1
*         IT ALSO PRINTS ANALYSIS REPORT FOR 865 AND 875 MAIN-
*         TENANCE REGISTER NESSAGES.
* 
*CALL,HPACOM1 
*CALL,HPACOM2 
*CALL,HPACOM3 
      COMMON /IERR/ MULERR,NMSG                                          R2FSCR 
* 
      DIMENSION FDEF(28,2)
      DIMENSION INUMB(20),MSGA(5,25)
  
      DATA (INUMB(I),I=1,19) /
     .0,08,00,13,08,08,08,08,00,16,16,16,16,00,00,10,10,16,16          /
  
      DATA (MSGA(J,2), J=1,5) / 
     .10H LCME FAIL,10HURES BY BA,10HNK        ,10H          ,10H 
     .   /
      DATA (MSGA(J,4), J=1,5) / 
     .10H 7000 PPU ,10HERRORS    ,10H          ,10H          ,10H 
     .   /
  
      DATA (MSGA(J,5), J=1,5) / 
     .10H SECDED FA,10HILURES BY ,10HBANK (QUAD,10H 0)       ,10H 
     .   /
      DATA (MSGA(J,6), J=1,5) / 
     .10H SECDED FA,10HILURES BY ,10HBANK (QUAD,10H 1)       ,10H 
     .   /
      DATA (MSGA(J,7), J=1,5) / 
     .10H SECDED FA,10HILURES BY ,10HBANK (QUAD,10H 2)       ,10H 
     .   /
      DATA (MSGA(J,8), J=1,5) / 
     .10H SECDED FA,10HILURES BY ,10HBANK (QUAD,10H 3)       ,10H 
     .   /
  
      DATA (MSGA(J,10), J=1,5) /
     .10H SSM-C FAI,10HLURES BY B,10HANK  (QUAD,10H 0)       ,10H 
     .   /
      DATA (MSGA(J,11), J=1,5) /
     .10H SSM-C FAI,10HLURES BY B,10HANK  (QUAD,10H 1)       ,10H 
     .   /
      DATA (MSGA(J,12), J=1,5) /
     .10H SSM-C FAI,10HLURES BY B,10HANK  (QUAD,10H 2)       ,10H 
     .   /
      DATA (MSGA(J,13), J=1,5) /
     .10H SSM-C FAI,10HLURES BY B,10HANK  (QUAD,10H 3)       ,10H 
     .   /
  
      DATA (MSGA(J,16), J=1,5) /
     .10H PP FAILUR,10HES  (PPS0),10H          ,10H          ,10H 
     .   /
      DATA (MSGA(J,17), J=1,5) /
     .10H PP FAILUR,10HES  (PPS1),10H          ,10H          ,10H 
     .   /
      DATA (MSGA(J,18), J=1,5) /
     .10H CHANNEL E,10HRRORS (PPS,10H0)        ,10H          ,10H 
     .   /
      DATA (MSGA(J,19), J=1,5) /
     .10H CHANNEL E,10HRRORS (PPS,10H1)        ,10H          ,10H 
     .   /
  
      DATA (MSGA(J,20),J=1,5) / 
     .10H SECDED FA,10HILURES BY ,10HBANK (PORT,10H 0)       ,10H 
     .   /
      DATA (MSGA(J,21),J=1,5) / 
     .10H SECDED FA,10HILURES BY ,10HBANK (PORT,10H 1)       ,10H 
     .   /
      DATA (MSGA(J,22),J=1,5) / 
     .10H SECDED FA,10HILURES BY ,10HBANK (PORT,10H 2)       ,10H 
     .   /
      DATA (MSGA(J,23),J=1,5) / 
     .10H SECDED FA,10HILURES BY ,10HBANK (PORT,10H 3)       ,10H 
     .   /
  
* 
*           ****   BETA STATUS AND CONTROL REGISTER FIELDS  ****
*           FDS(01) = SCR BIT 000-023 
*           FDS(02) =         024-039 
*           FDS(03) =         040-047 
*           FDS(04) =         048-053 
*           FDS(05) =         054-071 
*           FDS(06) =         072-075 
*           FDS(07) =         076-083 
*           FDS(08) =         084-095 
*           FDS(09) =         096-117 
*           FDS(10) =         118-127 
*           FDS(11) =         128-131 
*           FDS(12) =         132-136 
*           FDS(13) =         137-143 
*           FDS(14) =         144-151 
*           FDS(15) =         152-155 
*           FDS(16) =         156-167 
*           FDS(17) =         168-171 
*           FDS(18) =         172 
*           FDS(19) =         173-174 
*           FDS(20) =         175-182 
*           FDS(21) =         183 
*           FDS(22) =         184-191 
*           FDS(23) =         192-195 
*           FDS(24) =         196 
*           FDS(25) =         197-201 
*           FDS(26) =         202-203 
*           FDS(27) = 
*           FDS(28) = THRESHOLD COUNT OR HOURLY COUNT 
* 
      DATA (FDEF(I,1), I = 1,28) /
     .46, 45, 44, 43, 42, 41, 40, 39, 38, 37, 
     .36, 35, 34, 33, 32, 31, 30, 29, 28, 27, 
     .26, 25, 24, 23, 22, 21, 47, 48/ 
* 
*     ****  STATUS/CONTROL REGISTER FIELDS  ****
*     FIELD     BIT       DESCRIPTION 
*     SC1     00 - 23   ERROR STATUS BITS 
*     SC2     24 - 39   ERROR STATUS BITS 
*     SC3     40 - 47   SYNDROME BITS 0-7 
*     SC4     48 - 50   SYNDROM ADDRESS BITS 0-2
*     SC5     51 - 52   SYNDROM ADDRESS BITS 16-17
*     SC6     53        SYNDROME ADDRESS BIT 3
*                       875 MAINTENANCE REGISTER FIELDS 
*                       SC5     BIT 51        PORT
*                       SC6     BITS 52-53    CAGE
*     SC7     54 - 55   PE PORT CODE BITS 00-01 
*     SC8     56 - 83   BREAKPOINT PORT/FUNCTION
*                       PPS P REGISTER BITS,
*                       PP CODE BITS, AND OTHERS
*     SC9     84 - 135  PPS 500-NSEC MAJOR CYCLE, 
*                       BREAKPOINT ADDRESS BITS,
*                       BREAKPOINT CONDITION BITS,
*                       PP SELECT CODE BITS, AND OTHERS 
*     SC10   136 - 138  ECS TRANSFER ERROR CODE BIT 0-2 
*     SC11   139        CMC ADDRESS/DATA PARITY ERROR 
*     SC12   140 - 143  CLOCK FREQUENCY MAGNITUDE, SLOW/FAST BITS 
*     SC13   144 - 182  RVM ADDRESS BITS 0-5 STATUS 
*                       RVM QUADRANT 0-11 SELECT BITS,
*                       RVM MODULE ADDRESS BITS 0-5 
*     SC14   183        DOUBLE BIT ERROR
*     SC15   184 - 196  CP-O/1 TO CMC ZERO ADDRESS PARITY,
*                       CP-0/1 TO CMC ZERO DATA PARITY, 
*                       SOFTWARE FLAG BITS, 
*                       CP-0/1 STOPPED BITS,
*                       MONITOR FLAG CP-0/1 BITS
*     SC16   197 - 201  PPM RECONFIGURATION BITS 0-4
*     SC17   202 - 203  NOT USED
*     SC18               NOT USED 
*     SC19               THRESHOLD COUNT OR SECDED ERROR COUNT
*     SC20               TIME INTERVAL ELAPSED
* 
      DATA (FDEF(I,2),I=1,28) / 
     .37,  36,  35,  34,  33,  32,  31,  30,  29,  28,
     .27,  26,  25,  24,  23,  22,  21,  38,  39,  40,  8*0 / 
* 
* 
      IHDR=7
      CALL INISET3
      IF ((SEFREC(1).LT.0).AND.(IFLD(FRTY).EQ.12)) GO TO 1
      IF ((SEFREC(1).LT.0).AND.(IFLD(FRTY).EQ.13)) GO TO 1
      TYPID = 10HCY176/SCR
*                                                                        HPA31A1
*         IF THIS IS THE FIRST TIME INTO THIS ANALYSIS REPORT            HPA31A1
*         AND THE FIRST ERROR IS A MT OF 312 WITH A RT OF 3              HPA31A1
*         THEN THAT MEANS ALL OTHER ERRORS ARE FOR A CY176               HPA31A1
*         AND THEREFORE THIS IS A SECDED INTERVAL ELAPSE MSG             HPA31A1
*         FOR THE CY176.                                                 HPA31A1
*                                                                        HPA31A1
      IF ((IFLD(FRTY).EQ.3).AND.(IFLD(FMTY).NE.O"312")) 
     .  TYPID = 10HCY170/SCR
* 
      IF ((IFLD(FRTY).EQ.O"16").OR.(IFLD(FRTY).EQ.O"25")) 
     .    TYPID = 10H  865/MR 
      IF ((IFLD(FRTY).EQ.O"17").OR.(IFLD(FRTY).EQ.O"26")) 
     .    TYPID = 10H  875/MR 
      IF (IFLD(FRTY).EQ.O"14") TYPID = 10HCY170/SCR 
* 
    1 CONTINUE
  
*       SET PRHEAD FORMATS
  
      MPR(1,1) = O"347" 
      MPR(1,2) = 22 
      IF ((IFLD(FRTY).EQ.3).AND.(IFLD(FMTY).NE.O"312"))MPR(1,2)=18
      IF((IFLD(FRTY).EQ.O"12").OR.(IFLD(FRTY).EQ.O"15")) MPR(1,2)=14
      IF(IFLD(FRTY).EQ.O"14") MPR(1,2) = 13 
      IF ((TYPID.EQ.10H  865/MR  ).OR.(TYPID.EQ.10H  875/MR  )) 
     .IHDR = 32 
      IF ((IHDR.EQ.32).AND.(IFLD(FMTY).EQ.O"314")) MPR(1,2) = 13
      IF (IFLD(FMTY).EQ.O"334") MPR(1,2) = 9
*     INITIALIZE MULTIPLE MESSAGE COUNTERS                               R2FSCR 
                                                                         R2FSCR 
      MULERR = 0                                                         R2FSCR 
      NMSG = 0                                                           R2FSCR 
                                                                         R2FSCR 
  
    5 CONTINUE                                                           HPA31A1
      IF((IFLD(FRTY).LT.O"12").OR.(IFLD(FRTY).GT.O"17")) GO TO 8
      CALL DL6SEC3
      GO TO 10
    8 IF ((IFLD(FRTY).NE.3).AND.(IFLD(FRTY).NE.O"25").AND.
     .     (IFLD(FRTY).NE.O"26"))  GO TO 6
      DO 50 K = 1,28
      P = FDEF(K,2) 
      IF (P .EQ. 0) GO TO 50
      FDS(K) = IFLD(P)
   50 CONTINUE
      GO TO 7                                                            HPA31A1
    6 DO 60 K = 1,28
      P = FDEF(K,1) 
      IF (P .EQ. 0) GO TO 60
      FDS(K) = IFLD(P)
   60 CONTINUE
    7 CONTINUE                                                           HPA31A1
      CALL DL6SCR3                                                       HPA31A1
* 
* 
*     READ OUT NEXT ENTRY.
   10 CALL GNR3 
      CALL SETEM3(1)
      IF ( TWIC .LT. 3) GO TO 100 
      GO TO 5 
* 
* 
**    USAGE OF ARRAY (STOR) 
* 
*     2              LCME BANK FAILURES 
*     4              7000 PPU ERRORS
  
*     5              SECDED BANK FAILURE QUAD 0 (LOWER CYBERS AND 865)
*                                        PORT 1 (875) 
* 
*     6              SECDED BANK FAILURE QUAD 1 (LOWER CYBERS AND 865)
*                                        PORT 1 (875) 
* 
*     7              SECDED BANK FAILURE QUAD 2 (LOWER CYBERS AND 865)
*                                        PORT 2 (875) 
* 
*     8              SECDED BANK FAILURE QUAD 3 (LOWER CYBERS AND 865)
*                                        PORT 3 (875) 
* 
*                                                                        HPA31A1
*     NOTE: CSU-0 FOR LOWER CYBERS IS STORED IN WORDS 1-8 AND            HPA31A1
*           CSU-1 IS STORED IN WORDS 9-16                                HPA31A1
*           CAGE 0 FOR 875 IS STORED IN WORDS 1-8 AND 
*           CAGE 1 FOR 875 IS STORED IN WORDS 9-16
*                                                                        HPA31A1
  
*     10             SSM-C BANK FAILURES   QUAD 0 
*     11             SSM-C BANK FAILURES   QUAD 1 
*     12             SSM-C BANK FAILURES   QUAD 2 
*     13             SSM-C BANK FAILURES   QUAD 3 
  
*     16             PP  ERRORS (PPS0)
*     17             PP  ERRORS (PPS1)
*     18             CHANNEL    FAILURES   PPS0 
*     19             CHANNEL    FAILURES   PPS1 
* 
*    20 - 68         ACCUMULATED ERROR COUNT
* 
*              1     ERROR TYPE 
*              2     COUNT
*              3     CHARASTIC
*              4     TYPE 
*              5/6   MESSAGE
  
**    PROCESS DISTROBUTION ERRORS 
  
  100 CONTINUE
      IF (RCFA .EQ. 3HOFF) GO TO 310
      CALL XOVCAP ('ERDIST3',0,0) 
      CALL UOVCAP ('ERDIST3') 
      HCF(1) = 23                                                        R2FSCR 
      HCF(2) = 0                                                         R2FSCR 
      CALL PRINT36(4,1) 
      CALL PRINT36(4,1) 
  
      FLCSU = 0                                                          HPA31A1
*                                                                        HPA31A1
*     SET FLAG CSU = 0                                                   HPA31A1
*                                                                        HPA31A1
      DO 299 I = 1,19 
      IF (TYPID.EQ.10H  865/MR  ) GO TO 150 
      IF ((FLCSU .EQ. 0).AND.(I .LT. 9))GO TO 150                        HPA31A1
      IF (I .GT. 9)GO TO 150                                             HPA31A1
*                                                                        HPA31A1
*     IF THESE ARE LOWER CYBER OR 875 ERRORS STORED 
*                                                                        HPA31A1
  120 FLCSU = FLCSU + 1                                                  HPA31A1
      ILN = 4 + FLCSU                                                    HPA31A1
*                                                                        HPA31A1
*     SET THING UP SO FOR CSU-1 DATA IS STORED ON TOP OF                 HPA31A1
*     CSU-0 AND GO THRU THE SAME CODE ONLY CHANGING THE HEADER           HPA31A1
*     875 CAGE 0 AND CAGE 1 ARE HANDLED THE SAME WAY
*                                                                        HPA31A1
      DO 130 J=1,8                                                       HPA31A1
  130 STOR(ILN,J) = STOR(ILN,J+8)                                        HPA31A1
      GO TO 200                                                          HPA31A1
  150 ILN = I                                                            HPA31A1
  200 CONTINUE                                                           HPA31A1
      INB = INUMB(ILN)
      IF (INB .EQ. 0)GO TO 290                                           HPA31A1
      DO 201 ITEM = 1,INB 
      IF (STOR(ILN,ITEM) .NE. 0) GO TO 202
  201 CONTINUE
      GO TO 290                                                          HPA31A1
  
*     PRINT HEADER
  
  202 DO 203 J = 1,5
      PL(J) = MSGA(J,ILN) 
      IF ((TYPID.EQ.10H  875/MR  ).AND.((ILN.GE.5).AND.(ILN.LE.8))) 
     .   K = ILN + 15 
      IF ((TYPID.EQ.10H  875/MR  ).AND.((ILN.GE.5).AND.(ILN.LE.8))) 
     .   PL(J) = MSGA(J,K)
  203 CONTINUE
      IF ((ILN.LT.5).OR.(ILN.GT.8))GO TO 204                             HPA31A1
      IF (TYPID.EQ.10H  865/MR  ) GO TO 204 
      PL(5) = 5HCSU-0                                                    HPA31A1
      IF (FLCSU.GT.0)PL(5) = 5HCSU-1                                     HPA31A1
      IF  (TYPID.EQ.10H  875/MR  ) PL(5) = 6HCAGE 0 
      IF ((TYPID.EQ.10H  875/MR  ).AND.(FLCSU.GT.0)) PL(5) = 6HCAGE 1 
  204 CONTINUE                                                           HPA31A1
      CALL PRINT36 (5,5)
  
  
      DO 205 J = 1,INB
  205 ENCODE (10,902,PL(J)) J-1 
      CALL PRINT36 (2,INB)
  
      DO 206 J = 1,INB
  206 IF ( STOR(ILN,J) .NE. 0.) 
     .ENCODE(10,900,PL(J)) STOR(ILN,J)
      CALL PRINT36 (2,INB)
      CALL PRINT36 (5,5)
  290 IF ((ILN.EQ.9).AND.(FLCSU.EQ.0))GO TO 120                          HPA31A1
      IF ((FLCSU.GT.0).AND.(FLCSU.LT.4))GO TO 120                        HPA31A1
  299 CONTINUE
  
*     PRINT3 THE ERROR COUNTS 
  
      CALL PHEAD36(1)                                                    R2FSCR 
  
      DO 305 I = 20,68
      IF (STOR(I,2).EQ.0) GO TO 309                                      R2FSCR 
      ENCODE (10,901,PL(1)) STOR(I,2) 
      PL(2) = STOR(I,5) 
      PL(3) = STOR(I,6) 
      PL(4) = STOR(I,4) 
      PL(5) = STOR(I,3) 
      PL(6) = STOR(I,7) 
      CALL PRINT36(1,6) 
  305 CONTINUE                                                           R2FSCR 
  
      PL(1) = 10H NUMBER OF 
      PL(2) = 10H ERRORS EX 
      PL(3) = 10HCEEDS AVAI 
      PL(4) = 10HLABLE SPAC 
      PL(5) = 10HE. 
      CALL PRINT36 (5,5)
  309 CONTINUE                                                           R2FSCR 
      IF (MULERR .EQ. 0) GO TO 310                                       R2FSCR 
      PL(1) = MULERR                                                     R2FSCR 
      PL(2) = NMSG                                                       R2FSCR 
      CALL PRINT36 (104,2)                                               R2FSCR 
  310 CONTINUE
  900 FORMAT(I3,7X) 
  901 FORMAT(I5,5X) 
  902 FORMAT(1X,O2,7X)
* 
      RETURN
      END 
                                                                         HPA31A1
      SUBROUTINE DL6ECS3
* 
*           SUBROUTINE DL6ECS3 PREPARES/PRINTS DETAIL REPORT FOR ECS, 
*                              ESM AND STORNET ERRORS.
* 
*           CALLED BY -- AN6ECS3
* 
*CALL,HPACOM1 
* 
*        BYPASS DETAIL FOR ON/OFF MESSAGE, IF NO (ST) PARAMETER 
      IF (FLAGS(8) .LT. O"40") GO TO 10 
      IF (FROG(8) .EQ. 3HOFF) GO TO 900 
  
   10 CALL UCHEK36
      IF (FLAGS(4) .EQ. 3HOFF) GO TO 900
  
*     CHECK FOR RMS/RAM ERRORS/MESSAGES 
      IF (((MTY .GE. O"32") .AND. (MTY .LE. O"34")) .OR.
     .     (MTY .EQ. O"52")) GO TO 300
  
      RECVR = 5H YES                                                     R2FECS 
      IF (IFLD(FEST + 1) .NE. 0) RECVR = 5H NO                           R2FECS 
      IF ((SHIFT(IFLD(32),37).AND.1).EQ.1) RECVR = 5H 
      RW = 1H                                                            R2FECS 
      IF (IFLD(27) .EQ. 2) RW = 1HR                                      R2FECS 
      IF (IFLD(27) .EQ. 3) RW = 1HW                                      R2FECS 
*                                                                        R2FECS 
*         BLANK OUT FIELDS THAT DON'T HAVE DATA IN THEM                  R2FECS 
*                                                                        R2FECS 
      ICMXFER = 10H                                                      R2FECS 
      IF (IFLD(29) .GT. 0) ICMXFER = 0                                   R2FECS 
      IECXFER = IERRADR = 0                                              R2FECS 
*                                                                        R2FECS 
*         IF THIS IS A 1 WORD READ AND THE ADDRESSES WERE STORED         R2FECS 
*         IN IFLD(28) (OLD NORMALIZER OF NOS),THEN PUT ERROR ADDRESS     R2FECS 
*         IN THE CORRECT IFLD.                                           R2FECS 
*                                                                        R2FECS 
      IF ((IFLD(30).EQ.1).AND.(IFLD(31).EQ.0)) IFLD(31) = IFLD(28)       R2FECS 
      IF (IFLD(28).EQ.IFLD(31)) IECXFER = 10H                            R2FECS 
      IF (IFLD(30).NE.1) IERRADR = 10H                                   R2FECS 
      IF ((IFLD(28).GT.0).AND.(IFLD(31).EQ.0)) IERRADR = 10H             R2FECS 
      IF (ICMXFER.NE."          ")ENCODE(10,902,ICMXFER)IFLD(29)
      IF (IECXFER.NE."          ")ENCODE(10,902,IECXFER)IFLD(28)
      IF (IERRADR.NE."          ")ENCODE(10,902,IERRADR)IFLD(31)
  
      CALL LOAPR(1,IFLD(20),IFLD(FJOB),RW,RECVR,IFLD(21),IFLD(FPPU),
     .             IFLD(FCHAN),MFID)
      PL( 9) = IECXFER
      PL(10) = IERRADR
      PL(11) = IFLD(30) 
      PL(12) = ICMXFER
  
      IF (RTY .EQ. O"71") GO TO 200 
      CALL PRINT36(106,12)
      GO TO 900 
  
  200 PL(12) = IFLD(22) 
      PL(13) = IFLD(23) 
      CALL PRINT36(107,13)
      GO TO 900 
  
*     GENERATE DETAIL REPORT FOR RMS/RAM ERRORS/MESSAGES
  300 IF (MTY .EQ. O"32") THEN
         CALL LOAPR (1,IFLD(20),IFLD(FJOB),IFLD(FPPU),IFLD(FCHAN),
     .                 IFLD(FUN),IFLD(21),IFLD(22),IFLD(23))
         PL( 9) = MFID
         CALL PRINT36 (114,9) 
         GO TO 900
      ENDIF 
  
      CALL LOAPR (1,IFLD(20),IFLD(FJOB),IFLD(FPPU),IFLD(FCHAN), 
     .              IFLD(FUN),MFID,SP,SP) 
      CALL PRINT36 (115,6)
  
  900 RETURN
  902 FORMAT(O8)                                                         R2FECS 
      END 
      SUBROUTINE DL6ESM3
* 
**    DESCRIPTION 
*     ----------- 
*          SUBROUTINE DL6ESM3 PREPARES/PRINTS DETAIL REPORT FOR ESM AND 
*                     STORNET SECDED AND HOURLY SIDE DOOR PORT STATUS.
* 
*          CALLED BY -- AN6ESM3 
* 
* 
*     DATA AREAS
*     ---- -----
* 
*     SIDE DOOR PORT STATUS - 344B
*     ----------------------------
*          PL(1) = DATE 
*          PL(2) = TIME 
*          PL(3) = PP 
*          PL(4) = CH 
*          PL(5) = MFID 
*          PL(6) = STATUS 
* 
*     DOUBLE BIT ERRORS - 345B AND 357B 
*     --------------------------------- 
*          PL(1) = DATE                     A 
*          PL(2) = TIME                     A 
*          PL(3) = PP 
*          PL(4) = CH 
*          PL(5) = FILLER 
*          PL(6) = BITS 23-13               O 
*          PL(7) = BITS 12-4                O 
*          PL(8) = BITS 2-0                 O 
*          PL(9) = MFID                     A 
* 
*     PROGRAMMABLE SINGLE BIT COUNTER - 346B AND 360B 
*     ----------------------------------------------- 
*          PL(1) = DATE                     A 
*          PL(2) = TIME                     A 
*          PL(3) = PP 
*          PL(4) = CH 
*          PL(5) = BITS 33-24               O 
*          PL(6) = BITS 23-12               O 
*          PL(7) = BITS 11-0                O 
*          PL(8) = MFID                     A 
* 
*     SINGLE BIT ERRORS - 347B AND 361B 
*     --------------------------------- 
*          PL(1) = DATE                     A 
*          PL(2) = TIME                     A 
*          PL(3) = PP 
*          PL(4) = CH 
*          PL(5) = HOURLY COUNT             I 
*          PL(6) = SYNDROME BITS            O 
*          PL(7) = FAILING BIT
*          PL(8) = BIT 23 
*          PL(9) = BITS 22-17 
*          PL(10) = BITS 2-0
*          PL(11) = MFID
* 
*CALL,HPACOM1 
*CALL,HPACOM2 
      DIMENSION FBIT(68,2)
* 
*         FAILING BIT TABLE 
* 
      DATA (FBIT(01,I),I=1,2) /O"001", 64/
      DATA (FBIT(02,I),I=1,2) /O"002", 65/
      DATA (FBIT(03,I),I=1,2) /O"004", 66/
      DATA (FBIT(04,I),I=1,2) /O"007", 40/
      DATA (FBIT(05,I),I=1,2) /O"010", 67/
      DATA (FBIT(06,I),I=1,2) /O"013", 48/
      DATA (FBIT(07,I),I=1,2) /O"015", 56/
      DATA (FBIT(08,I),I=1,2) /O"016", 32/
      DATA (FBIT(09,I),I=1,2) /O"020", 68/
      DATA (FBIT(10,I),I=1,2) /O"040", 69/
      DATA (FBIT(11,I),I=1,2) /O"067", 43/
      DATA (FBIT(12,I),I=1,2) /O"073", 51/
      DATA (FBIT(13,I),I=1,2) /O"075", 59/
      DATA (FBIT(14,I),I=1,2) /O"076", 35/
      DATA (FBIT(15,I),I=1,2) /O"100", 70/
      DATA (FBIT(16,I),I=1,2) /O"127", 45/
      DATA (FBIT(17,I),I=1,2) /O"133", 53/
      DATA (FBIT(18,I),I=1,2) /O"136", 37/
      DATA (FBIT(19,I),I=1,2) /O"147", 46/
      DATA (FBIT(20,I),I=1,2) /O"153", 54/
      DATA (FBIT(21,I),I=1,2) /O"156", 38/
      DATA (FBIT(22,I),I=1,2) /O"160", 24/
      DATA (FBIT(23,I),I=1,2) /O"163", 27/
      DATA (FBIT(24,I),I=1,2) /O"165", 29/
      DATA (FBIT(25,I),I=1,2) /O"166", 30/
      DATA (FBIT(26,I),I=1,2) /O"171", 25/
      DATA (FBIT(27,I),I=1,2) /O"172", 26/
      DATA (FBIT(28,I),I=1,2) /O"174", 28/
      DATA (FBIT(29,I),I=1,2) /O"177", 31/
      DATA (FBIT(30,I),I=1,2) /O"200", 71/
      DATA (FBIT(31,I),I=1,2) /O"227", 41/
      DATA (FBIT(32,I),I=1,2) /O"233", 49/
      DATA (FBIT(33,I),I=1,2) /O"235", 57/
      DATA (FBIT(34,I),I=1,2) /O"236", 33/
      DATA (FBIT(35,I),I=1,2) /O"247", 42/
      DATA (FBIT(36,I),I=1,2) /O"253", 50/
      DATA (FBIT(37,I),I=1,2) /O"255", 58/
      DATA (FBIT(38,I),I=1,2) /O"256", 34/
      DATA (FBIT(39,I),I=1,2) /O"260", 16/
      DATA (FBIT(40,I),I=1,2) /O"263", 19/
      DATA (FBIT(41,I),I=1,2) /O"265", 21/
      DATA (FBIT(42,I),I=1,2) /O"266", 22/
      DATA (FBIT(43,I),I=1,2) /O"271", 17/
      DATA (FBIT(44,I),I=1,2) /O"272", 18/
      DATA (FBIT(45,I),I=1,2) /O"274", 20/
      DATA (FBIT(46,I),I=1,2) /O"277", 23/
      DATA (FBIT(47,I),I=1,2) /O"307", 44/
      DATA (FBIT(48,I),I=1,2) /O"313", 52/
      DATA (FBIT(49,I),I=1,2) /O"316", 36/
      DATA (FBIT(50,I),I=1,2) /O"320", 08/
      DATA (FBIT(51,I),I=1,2) /O"323", 11/
      DATA (FBIT(52,I),I=1,2) /O"325", 13/
      DATA (FBIT(53,I),I=1,2) /O"326", 14/
      DATA (FBIT(54,I),I=1,2) /O"331", 09/
      DATA (FBIT(55,I),I=1,2) /O"332", 10/
      DATA (FBIT(56,I),I=1,2) /O"334", 12/
      DATA (FBIT(57,I),I=1,2) /O"337", 15/
      DATA (FBIT(58,I),I=1,2) /O"340", 00/
      DATA (FBIT(59,I),I=1,2) /O"343", 03/
      DATA (FBIT(60,I),I=1,2) /O"345", 05/
      DATA (FBIT(61,I),I=1,2) /O"346", 06/
      DATA (FBIT(62,I),I=1,2) /O"351", 01/
      DATA (FBIT(63,I),I=1,2) /O"352", 02/
      DATA (FBIT(64,I),I=1,2) /O"354", 04/
      DATA (FBIT(65,I),I=1,2) /O"357", 07/
      DATA (FBIT(66,I),I=1,2) /O"367", 47/
      DATA (FBIT(67,I),I=1,2) /O"373", 55/
      DATA (FBIT(68,I),I=1,2) /O"376", 39/
      IF(RCFD .EQ. 2HON) CALL UCHEK36 
  
      IF  (MTY .EQ. O"344") GO TO 400 
      IF ((MTY .EQ. O"346") .OR.  (MTY .EQ. O"360")) GO TO 200
      IF ((MTY .EQ. O"347") .OR.  (MTY .EQ. O"361")) GO TO 300
      IF ((MTY .NE. O"345") .AND. (MTY .NE. O"357")) GO TO 900
  
*     DOUBLE BIT ERRORS 
      DO 150 I=21,35,2
      IF ((SHIFT(IFLD(I),-11).AND.1).EQ.0) GO TO 900
      PL(1) = SEBUF(23) 
      PL(2) = IFLD(20)
      PL(3) = IFLD(FPPU)
      PL(4) = IFLD(FCHAN) 
      PL(5) = 10H 
      PL(6) = IFLD(I) .AND. O"3777" 
      PL(7) = SHIFT(IFLD(I+1),-3) .AND. O"777"
      PL(8) = IFLD(I+1) .AND. O"7"
      PL(9) = MFID
      IF (RCFA .EQ. 2HON) CALL STOJN3 
150   IF(RCFD .EQ. 2HON) CALL PRINT36(111,9)
      GO TO 900 
* 
*     PROGRAMMABLE SINGLE BIT ERROR COUNTER 
  200 CONTINUE
      IF ((IFLD(21).EQ.0).AND.(IFLD(22).EQ.0).AND.(IFLD(23).EQ.0))
     .   GO TO 900
      PL(1) = SEBUF(23) 
      PL(2) = IFLD(20)
      PL(3) = IFLD(FPPU)
      PL(4) = IFLD(FCHAN) 
      PL(5) = IFLD(21)
      PL(6) = IFLD(22)
      PL(7) = IFLD(23)
      PL(8) = MFID
      IF (RCFA .EQ. 2HON) CALL STOJN3 
      IF(RCFD .EQ. 2HON) CALL PRINT36(112,8)
      GO TO 900 
* 
*     SINGLE BIT ERRORS 
300   DO 320 I=36,41
      IF(IFLD(I) .EQ. 0) GO TO 900
*     CALCULATE POSITION OF ADDRESSES WHICH CORRESPOND TO THE COUNTS. 
      POSIT = (2 * I) - 51
      PL(1) = SEBUF(23) 
      PL(2) = IFLD(20)
      PL(3) = IFLD(FPPU)
      PL(4) = IFLD(FCHAN) 
      PL(5) = IFLD(I) 
      PL(6) = SHIFT(IFLD(POSIT),-1).AND.O"777"
*         FIND FAILING BIT
      DO 305 J = 1,68 
      IF (PL(6).EQ.FBIT(J,1)) GO TO 310 
  305 CONTINUE
      PL(7) = 10H 
      GO TO 315 
  310 ENCODE (10,311,PL(7)) FBIT(J,2) 
  311 FORMAT (I2,8X)
  315 CONTINUE
      PL(8) = IFLD(POSIT).AND.1 
      PL(9) = SHIFT(IFLD(POSIT+1),-3).AND.O"77" 
      PL(10) = IFLD(POSIT+1).AND.O"7" 
      PL(11) = MFID 
      IF (RCFA .EQ. 2HON) CALL STOJN3 
  320 IF (RCFD .EQ. 2HON) CALL PRINT36 (113, 11)
      GO TO 900 
* 
*     HOURLY SIDE DOOR PORT STATUS
  400 PL(1) = SEBUF(23) 
      PL(2) = IFLD(20)
      PL(3) = IFLD(FPPU)
      PL(4) = IFLD(FCHAN) 
      PL(5) = MFID
      PL(6) = SHIFT(SEFREC(4),12) .AND. O"7777" 
      PL(7) = SHIFT(SEFREC(4),24) .AND. O"7777" 
      PL(8) = SHIFT(SEFREC(4),36) .AND. O"7777" 
      PL(9) = SHIFT(SEFREC(4),48) .AND. O"7777" 
      PL(10) = SEFREC(4) .AND. O"7777"
      IF (RCFA .EQ. 2HON) CALL STOJN3 
      IF (RCFD .EQ. 2HON) CALL PRINT36 (116, 10)
  
900   RETURN
      END 
  
            SUBROUTINE DL6MAP3
* 
**              DL6MAP3 --- DEVELOP DETAIL REPORT FOR MAP III/IV. 
* 
*               CALLED BY -- AN6MAP3
* 
*CALL,HPACOM1 
  
      CALL UCHEK36
      IF (FLAGS(4) .EQ. 3HOFF) GO TO 900
  
      IACCESS = R" "
      IF (IFLD(30) .EQ. 1) IACCESS = R"A" 
      IF (IFLD(30) .EQ. 2) IACCESS = R"B" 
  
      CALL LOAPR (1,IFLD(20),IFLD(FPPU),IFLD(FCHAN),IACCESS,MFID, 
     .              IFLD(22),IFLD(23),IFLD(24)) 
      PL( 9) = IFLD(25) 
      PL(10) = IFLD(26) 
      PL(11) = IFLD(27) 
      PL(12) = IFLD(28) 
      PL(13) = IFLD(29) 
  
      CALL PRINT36 (103, 13)
  
  900 CONTINUE
      RETURN
       END
      SUBROUTINE DL6SCR3                                                 HPA31A1
* 
**        DL6SCR3 - PRINTS DETAIL REPORT FOR CY176 AND CY170             HPA31A1
*         STATUS/CONTROL REGISTER ENTRIES.                               HPA31A1
*         PRINTS DETAIL REPORT FOR 865/875 MAINTENANCE REGISTER 
*         ENTRIES.
*         IT ALSO SETS UP THINGS FOR ANALYSIS REPORT.                    HPA31A1
* 
*CALL,HPACOM1 
*CALL,HPACOM2 
*CALL,HPACOM3 
      COMMON /IERR/ MULERR,NMSG                                          R2FSCR 
      COMMON /SEC/ BTABLE(32) 
      INTEGER BTABLE, EEMBITS 
* 
      DIMENSION MSG(40,2),XTABLE(48),TTABLE(44),HTABLE(15)
      DIMENSION LTABLE(15), MSGDIST(25) 
      DIMENSION PLTEMP(22)                                               HPA404S
      DIMENSION RECON(8)                                                 HPA31A1
  
*     TABLE OF SCR/MR ERROR MESSAGES
  
      DATA (MSG(01,J),J=1,2,1) / 10HLCME TIME , 10HCOUNT       /         HPA31A1
      DATA (MSG(02,J),J=1,2,1) / 10HSECDED TIM, 10HE CT        /         HPA31A1
      DATA (MSG(03,J),J=1,2,1) / 10HSSM  ERROR, 10H            /         HPA31A1
      DATA (MSG(04,J),J=1,2,1) / 10HERROR IN S, 10HECOND PPS   /         HPA31A1
      DATA (MSG(05,J),J=1,2,1) / 10HLCME  ERRO, 10HR           /
      DATA (MSG(06,J),J=1,2,1) / 10H7000 PPU E, 10HRROR        /
      DATA (MSG(07,J),J=1,2,1) / 10HPE,DATA FR, 10HOM PPS1 CH  /
      DATA (MSG(08,J),J=1,2,1) / 10HPE,DATA FR, 10HOM PPS0 CH  /
      DATA (MSG(09,J),J=1,2,1) / 10HPE,DATA FR, 10HOM PPS1 PP  /
      DATA (MSG(10,J),J=1,2,1) / 10HPE,DATA FR, 10HOM PPS0 PP  /
      DATA (MSG(11,J),J=1,2,1) / 10HPP MEMORY , 10HPE.         /
      DATA (MSG(12,J),J=1,2,1) / 10HCHANNEL PE, 10H.           /
      DATA (MSG(13,J),J=1,2,1) / 10HPOWER FAIL, 10HURE         /
      DATA (MSG(14,J),J=1,2,1) / 10HPOWER SHUT, 10H-DOWN       /
      DATA (MSG(15,J),J=1,2,1) / 10HREAD PYRAM, 10HID          /         HPA31A1
      DATA (MSG(16,J),J=1,2,1) / 10HADDR PARIT, 10HY ERROR     /         HPA31A1
      DATA (MSG(17,J),J=1,2,1) / 10HSECDED ERR, 10HOR          /         HPA31A1
      DATA (MSG(18,J),J=1,2,1) / 10HCMC DATA P, 10HE.          /         HPA31A1
      DATA (MSG(19,J),J=1,2,1) / 10HCMC ADDRES, 10HS PE.       /         HPA31A1
      DATA (MSG(20,J),J=1,2,1) / 10HTIMING FAU, 10HLT          /         HPA31A1
      DATA (MSG(21,J),J=1,2,1) / 10HBITS 136-1, 10H38 NOT SET  /         HPA31A1
      DATA (MSG(22,J),J=1,2,1) / 10HCP TO ECS , 10HCOUPLER PE  /         HPA31A1
      DATA (MSG(23,J),J=1,2,1) / 10HCMC DOUBLE, 10H ERROR      /         HPA31A1
      DATA (MSG(24,J),J=1,2,1) / 10HCMC TO CM , 10HADDR PE.    /         HPA31A1
      DATA (MSG(25,J),J=1,2,1) / 10HCMC DATA P, 10HE.          /         HPA31A1
      DATA (MSG(26,J),J=1,2,1) / 10HECS BANK P, 10HE.          /         HPA31A1
      DATA (MSG(27,J),J=1,2,1) / 10HECS CNTRL , 10HDATA PE.    /         HPA31A1
      DATA (MSG(28,J),J=1,2,1) / 10HECS CNTRL , 10HADDR PE.    /         HPA31A1
      DATA (MSG(29,J),J=1,2,1) / 10HCP-0 P REG, 10HISTER PE.   /         HPA31A1
      DATA (MSG(30,J),J=1,2,1) / 10HCP-1 P REG, 10HISTER PE.   /         HPA31A1
      DATA (MSG(31,J),J=1,2,1) / 10HCM DATA PE, 10H AT IOU     /
      DATA (MSG(32,J),J=1,2,1) / 10HCM ADDRESS, 10H PE         /
      DATA (MSG(33,J),J=1,2,1) / 10HCMC-0 SECD, 10HED ERROR    /
      DATA (MSG(34,J),J=1,2,1) / 10HCMC-1 SECD, 10HED ERROR    /
      DATA (MSG(35,J),J=1,2,1) / 10HCMC-1 DATA, 10H PE.        /
      DATA (MSG(36,J),J=1,2,1) / 10HCMC-1 ADDR, 10H PE.        /
      DATA (MSG(37,J),J=1,2,1) / 10HCMC-0 DATA, 10H PE.        /
      DATA (MSG(38,J),J=1,2,1) / 10HCMC-0 ADDR, 10H PE.        /
      DATA (MSG(39,J),J=1,2,1) / 10HBITS 144-1, 10H46 NOT SET  /
      DATA (MSG(40,J),J=1,2,1) / 10HESM ENVIRO, 10HN FAIL      /
  
**    XTABLE - TABLE OF EXECUTION MASKS (INDEX CORRESPONDS WITH ERR BIT)
  
*   BIT  ORD          ERROR                                   MODIFIED
* 
*     0   1 = NULL
*     1   2 = NULL
*     2   3 = NULL
*     3   4 = SSM SECDED ERROR                                  YES      HPA31A1
*     4   5 = 7000 PPU ERROR
*     5   6 = NULL
*     6   7 = PP INPUT-DATA P.E. FROM PPS0     CHANNEL          YES 
*     7   8 = PP INPUT-DATA P.E. FROM PPS0      PP              YES 
*     8   9 = NULL
*     9  10 = NULL
*    10  11 = ERROR IN SECOND PPS 
*    11  12 = LCME SECDED ERROR                                 YES      HPA31A1
*    12  13 = NULL
*    13  14 = NULL
*    14  15 = PP0 MEMORY PARITY ERROR 
*    15  16 = PP1 MEMORY PARITY ERROR 
*    16  17 = PP2 MEMORY PARITY ERROR 
*    17  18 = PP3 MEMORY PARITY ERROR 
*    18  19 = PP4 MEMORY PARITY ERROR 
*    19  20 = PP5 MEMORY PARITY ERROR 
*    20  21 = PP6 MEMORY PARITY ERROR 
*    21  22 = PP7 MEMORY PARITY ERROR 
*    22  23 = PP8 MEMORY PARITY ERROR 
*    23  24 = PP9 MEMORY PARITY ERROR 
*    24  25 = CHANNEL  0 PARITY ERROR 
*    25  26 = CHANNEL  1 PARITY ERROR 
*    26  27 = CHANNEL  2 PARITY ERROR 
*    27  28 = CHANNEL  3 PARITY ERROR 
*    28  29 = CHANNEL  4 PARITY ERROR 
*    29  30 = CHANNEL  5 PARITY ERROR 
*    30  31 = CHANNEL  6 PARITY ERROR 
*    31  32 = CHANNEL  7 PARITY ERROR 
*    32  33 = CHANNEL 10 PARITY ERROR 
*    33  34 = CHANNEL 11 PARITY ERROR 
*    34  35 = CHANNEL 12 PARITY ERROR 
*    35  36 = CHANNEL 13 PARITY ERROR 
*    36  37 = POWER FAILURE 
*    37  38 = LOWER SHUT-DOWN IMMINENT
*    38  39 = NULL
*    39  40 = NULL
*        41 = NOT USED                                                   HPA31A1
*        42 = NOT USED                                                   HPA31A1
*        43 = NOT USED                                                   HPA31A1
*        44 = SSM PARITY                                        YES      HPA31A1
*        45 = NOT USED                                                   HPA31A1
*        46 = LCME  PARITY                                    SEE ORD 12
*        47 = PP INPUT-DATA P.E. FROM PPS1     CHANNEL        SEE ORD 07
*        48 = PP INPUT-DATA P.E. FROM PPS1      PP            SEE ORD 08
* 
*                                                                        HPA31A1
*        BIT DEFINITIONS FOR CY170'S, FIRST 13 BITS.                     HPA31A1
*                                                                        HPA31A1
*        BIT DEFINITIONS ARE DESCRIBED BELOW WHERE, "BIT" IS THE SCR     HPA31A1
*        BIT NUMBER, "ORD" IS THE INDEX INTO LTABLE,"ERROR" IS WHAT      HPA31A1
*        IS MEANT IF THAT BIT IS SET, "TYPE" IS THE POSSIBLE             HPA31A1
*        VALUES FOR PL(4) TAKEN FROM TTABLE, AND "MODIFIED" IS           HPA31A1
*        WHAT THE DECIDING FACTORS ARE TO CHANGE THE "TYPE" FROM         HPA31A1
*        TTABLE.                                                         HPA31A1
*                                                                        HPA31A1
*        CY170 BIT DEFINITIONS FOR BITS 14 THRU 39 ARE THE SAME          HPA31A1
*        AS THE CY176 THEREFORE XTABLE IS USED.                          HPA31A1
*                                                                        HPA31A1
*   BIT  ORD    ERROR                  TYPE      MODIFIED BY             HPA31A1
*                                                                        HPA31A1
*     0   1 = READ PYRIMID             PPS-0     CHANNEL 36              HPA31A1
*                                      PPS-1                             HPA31A1
*     1   2 = CSU-0 ADDRESS PE                   N/A                     HPA31A1
*     2   3 = CSU-1 ADDRESS PE                   N/A                     HPA31A1
*     3   4 = SECDED ERROR             SINGLE    BIT 183                 HPA31A1
*                                      DOUBLE                            HPA31A1
*     4   5 = NULL                                                       HPA31A1
*     5   6 = CMC DATA PE              CP-1      BITS 54,55              HPA31A1
*                                      CP-0      ** NOTE **              HPA31A1
*                                      PPS-1     ERROR MAY BE CHANGED    HPA31A1
*                                      PPS-0     BY BIT 139              HPA31A1
*                                                                        HPA31A1
*     6   7 = PE DATA FROM PPS0 CH               MODIFIED BY             HPA31A1
*     7   8 = PE DATA FORM PPS0 PP               XTABLE ORD 47,48        HPA31A1
*                                                                        HPA31A1
*     8   9 = CSU-0 TIMING FAULT                 N/A                     HPA31A1
*     9  10 = CSU-1 TIMING FAULT                 N/A                     HPA31A1
*    10  11 = ERROR IN 2ND PPS                   N/A                     HPA31A1
*    11  12 = ECS ERROR                          ERROR MODIFIED          HPA31A1
*                                                BY BITS 136-138         HPA31A1
*    12  13 = CP-0 P REGIESTER PE      PPS-0     CHANNEL 36              HPA31A1
*                                      PPS-1                             HPA31A1
*    13  14 = CP-1 P REGISTER PE       PPS-0     CHANNEL 36              HPA31A1
*                                      PPS-1                             HPA31A1
*        15 = CMC ADDRESS PE           CP-1      SEE ORD 6               HPA31A1
*                                      CP-0                              HPA31A1
*                                      PPS-1                             HPA31A1
*                                      PPS-0                             HPA31A1
*                                                                        HPA31A1
* 
*        BIT DEFINITIONS FOR 865/875 MAINTENANCE REGISTER 
*        FIRST 14 BITS AND BIT 39:  
* 
*   BIT  ORD    ERROR                TYPE        MODIFIED BY
* 
*    0    1 = CM DATA PE. AT IOU  IOU-0,IOU-1    CNANNEL 36 
*    1    2 = CM ADDR PE FR CMC-0                N/A
*    2    3 = CM ADDR PE FR CMC-1                N/A
*    3    4 = SECDED ERROR        SINGLE,DOUBLE  BIT 183
*                                 CMC-0,CMC-1    BIT 184
*    4    5 = CMC-1 PARITY ERROR  IOU-0,IOU-1    BITS 148,149 
*                                 DATA,ADDR      BIT 150
*    5    6 = CMC-0 PARITY ERROR  IOU-0,IOU-1    BITS 54,55 
*                                 DATA,ADDR      BIT 139
*    6    7 = NOT USED
*    7    8 = NOT USED
*    8    9 = NOT USED
*    9   10 = EEM XFER ERR SMU-1                 ERRORS MODIFIED BY 
*                                                BITS 144-146 
*   10   11 = ERRORS IN 2ND IOU                  N/A
*   11   12 = EEM XFER ERR SMU-0                 ERRORS MODIFIED BY 
*                                                BITS 136-138 
*   12   13 = CP-0 P-REG PE       IOU-0,IOU-1    CNANNEL 36 
*   13   14 = CP-1 P-REG PE       IOU-0,IOU-1    CHANNEL 36 
*   39   40 = ESM ENVIRON FAIL                   N/A
  
*     FORMAT OF TABLE 
* 
*              00 00 00B
*                \ \  \ 
*                 \ \  \--ORDINAL INTO TTABLE (PL(4)) 
*                  \ \
*                   \ \---ORDINAL INTO MSG    (MSGO)
*                    \
*                     \---PROCESSOR           (PROC)
* 
*                             0 = NULL           10 = LCME PARITY 
*                             1 = LCME THRES CT  11 = 7000 PP            HPA31A1
*                             2 = SECDED THRES   12 = PP PARITY          HPA31A1
*                             3 = ERR IN 2ND PPS 13 = CH PARITY          HPA31A1
*                             4 = SSM SECDED     14 = PP IN CH ERR       HPA31A1
*                             5 = SSM PARITY     15 = PP IN PP ERR       HPA31A1
*                             6 = N/U            16 = POWER FAIL         HPA31A1
*                             7 = LCME  SEC/DED  17 = SHUTDOWN
*                                                                        HPA31A1
*         USED FOR CY170 ONLY                                            HPA31A1
*                                                                        HPA31A1
*                             20 = READ PYRIMID  23 = CMC ERROR          HPA31A1
*                             21 = CSU ERROR      24 = ECS/ESM ERROR
*                             22 = SECDED ERROR  25 = P-REG. ERROR       HPA31A1
*                                                                        HPA31A1
*        USED FOR 865/875 ONLY
*                             26 = CM DATA PE AT IOU  30 = CMC-1 PE 
*                             27 = CM ADDR PE         31 = CMC-0 PE 
*                             32 = ESM ENVIRON FAIL 
* 
  
      DATA (XTABLE(I), I = 1,48) /
     .O"00 00 00",  O"00 00 00",  O"00 00 00",  O"04 03 01",
     .      O"11 06 33",  O"00 00 00",  O"14 10 34",  O"15 12 34",
     .            O"00 00 00",  O"00 00 00",  O"03 04 34",  O"07 05 01",
     .                  O"00 00 00",  O"00 00 00",  O"12 13 05",  O"12 1
     .3 06",                  O"12 13 07",  O"12 13 10",  O"12 13 11",
     .O"12 13 12",                  O"12 13 13",  O"12 13 14",  O"12 13 
     .15",  O"12 13 16",                  O"13 14 17",  O"13 14 20",  O"
     .13 14 21",  O"13 14 22",                  O"13 14 23",  O"13 14 24
     .",  O"13 14 25",  O"13 14 26",                  O"13 14 27",  O"13
     . 14 30",  O"13 14 31",  O"13 14 32",                  O"16 15 34",
     .  O"17 16 34",  O"00 00 00",  O"00 00 00",                  O"00 0
     .0 00",  O"00 00 00",  O"00 00 00",  O"05 03 04",
     .O"00 00 00",  O"10 05 04",  O"14 07 34",  O"15 11 34"/
      DATA (LTABLE(I), I = 1,15) /
     .O"20 17 40",  O"21 20 42",  O"21 20 43",  O"22 21 01",
     .      O"00 00 00",  O"23 22 44",  O"14 10 34",  O"15 12 34",
     .            O"21 24 42",  O"21 24 43",  O"03 04 34",  O"24 25 46",
     .                  O"25 35 40",  O"25 36 40",  O"23 23 44"/
      DATA (HTABLE(I),I=1,15) / 
     .O"26 37 47", O"27 40 51", O"27 40 52", O"22 41 01", 
     .      O"30 43 47", O"31 45 47", O"00 00 00", O"00 00 00", 
     .            O"00 00 00", O"24 47 54", O"03 04 34", O"24 25 53", 
     .                  O"25 35 47", O"25 36 47", O"32 50 34"/
  
*     TTABLE - ERROR TYPE TABLE 
  
      DATA (TTABLE(I),I=1,44) / 
     .7HSINGLE    ,7HDOUBLE    ,7HMULT      ,7HPARITY    ,
     .7HPP 00     ,7HPP 01     ,7HPP 02     ,7HPP 03     ,
     .7HPP 04     ,7HPP 05     ,7HPP 06     ,7HPP 07     ,
     .7HPP 10     ,7HPP 11     ,7HCH 00     ,7HCH 01     ,               HPA31A1
     .7HCH 02     ,7HCH 03     ,7HCH 04     ,7HCH 05     ,
     .7HCH 06     ,7HCH 07     ,7HCH 10     ,7HCH 11     ,
     .7HCH 12     ,7HCH 13     ,7HPPUXX     ,7H          ,
     .7HSYNDM     ,7HCH 16     ,7HCH 36     ,7HPPS-0     ,               HPA31A1
     .7HPPS-1     ,7HCSU-0     ,7HCSU-1     ,7HCP-1      ,               HPA31A1
     .7HCP-0      ,7HECS       ,7HIOU-0     ,7HIOU-1     ,
     .7HCMC-0     ,7HCMC-1     ,7HSMU-0     ,7HSMU-1     /
  
*     BTABLE - FAILING BIT TABLE
  
*         FOR ENTRIES 0 - 72B, RESULTS IS FAILING BIT 
*         FOR ENTRY   75B,     SYNDROME CODE BIT FAILED 
*         FOR ENTRY   76B,     DOUBLE OR MULTIPLE ERROR 
*         FOR ENTRY   77B,     MULTIPLE ERROR 
  
  
  
      DATA (BTABLE(I), I = 1, 32)  /
     .O"12 76 76 75 76 75 75 00 ", O"76 22 21 76 15 76 76 75",
     .O"76 25 23 76 16 76 76 75 ", O"77 76 76 32 76 31 30 76 ", 
     .O"76 26 27 76 00 76 76 75 ", O"77 76 76 35 76 33 57 76 ", 
     .O"77 76 76 41 76 40 56 76 ", O"76 77 04 76 77 76 76 42 ", 
     .O"76 10 03 76 01 76 76 75 ", O"64 76 76 36 76 37 07 76 ", 
     .O"77 76 76 43 76 67 63 76 ", O"76 77 77 76 77 76 76 45 ", 
     .O"77 76 76 50 76 66 65 76 ", O"76 77 77 76 77 76 76 51 ", 
     .O"76 77 77 76 77 76 76 52 ", O"77 76 76 77 76 14 77 76 ", 
     .O"76 11 05 76 02 76 76 75 ", O"77 76 76 20 76 13 06 76 ", 
     .O"77 76 76 47 76 17 70 76 ", O"76 77 77 76 77 76 76 46 ", 
     .O"54 76 76 77 76 73 71 76 ", O"76 77 77 76 77 76 76 53 ", 
     .O"76 77 77 76 77 76 76 55 ", O"77 76 76 77 76 77 77 76 ", 
     .O"77 76 76 77 76 77 72 76 ", O"76 77 77 76 77 76 76 60 ", 
     .O"76 77 77 76 44 76 76 61 ", O"77 76 76 77 76 77 77 76 ", 
     .O"76 77 77 76 77 76 76 62 ", O"77 76 76 77 76 77 34 76 ", 
     .O"77 76 76 24 76 77 77 76 ", O"76 77 77 76 77 76 76 77 "/ 
  
                                                                         HPA31A1
*     MSGDIST - TABLE USED TO DECIDE WHICH MESSAGE TO USE FOR            HPA31A1
*     MESSAGE DISTRIBUTION.  INDEX TO THIS TABLE IS PROC.                HPA31A1
                                                                         HPA31A1
      DATA (MSGDIST(I),I=1,25)  / 
     .O"312", O"312", O"724", 
     .    O"700", O"700", O"000", 
     .        O"701", O"701", O"702", 
     .            O"703", O"704", O"705", 
     .                O"705", O"324", O"323", 
     .                    O"706", O"707", O"700", 
     .                        O"710", O"711", O"712", 
     .                            O"713", O"714", O"721", 
     .                                O"720"/ 
* 
      DATA  SIZE /0/
  
                                                                         HPA31A1
*     FDS DEFINITIONS OF BITS OF FIELDS USED IN REPORTS.                 HPA31A1
                                                                         HPA31A1
*      FIELDS       CY176      CY170, 865, 875
*      USED         BITS           BITS                                  HPA31A1
                                                                         HPA31A1
*     FDS(1)       0-23           0-23                                   HPA31A1
*     FDS(2)       24-39          24-39                                  HPA31A1
*     FDS(3)       40-47          40-47                                  HPA31A1
*     FDS(4)       48-53          48-50                                  HPA31A1
*     FDS(5)        N/U           51-52    (51    875 CAGE) 
*     FDS(6)       72-75           53      (52-53 875 PORT) 
*     FDS(7)        N/U           54-55                                  HPA31A1
*     FDS(9)       96-117          N/U                                   HPA31A1
*     FDS(10)       N/U           136-138                                HPA31A1
*     FDS(11)       N/U            139                                   HPA31A1
*     FDS(12)      132-135         N/U                                   HPA31A1
*     FDS(13)      N/U           144-182
*     FDS(14)      144-151         183                                   HPA31A1
*     FDS(15)       N/U           184-196                                HPA31A1
*     FDS(16)      156-167         N/U                                   HPA31A1
*     FDS(18)       172           THRES CT                               HPA31A1
*     FDS(19)      173-174        TIME INT CT                            HPA31A1
*     FDS(21)       183                                                  HPA31A1
*     FDS(24)       196                                                  HPA31A1
*     FDS(27)      THRES CT                                              HPA31A1
*     FDS(28)      TIME INT CT                                           HPA31A1
                                                                         HPA31A1
  
*     USAGE OF PL FOR CY176                                              HPA31A1
* 
*     PL        FIELD CONTAINS                        DATA FORMAT 
* 
*     PL(01) =  TIME                                       O
*     PL(02) =  MESSAGE (PART 1)                           A
*     PL(03) =  MESSAGE (PART 2)                           A
*     PL(04) =  TYPE                                       A
*     PL(05) =  ADDRESS                                    O
*     PL(06) =  QUAD                                       O
*     PL(07) =  BANK                                       O
*     PL(08) =  WORD                                       O
*     PL(09) = FILLER                                      A
*     PL(10) =  BIT                                        O
*     PL(11) =  SYNDROM / STATUS                           O
*     PL(12) = ROW SELECT 
*     PL(13) = MF ID
                                                                         HPA31A1
*     USAGE OF PL FOR CY170                                              HPA31A1
                                                                         HPA31A1
*     PL(01) = TIME                                        O             HPA31A1
*     PL(02) = MESSAGE (PART 1)                            A             HPA31A1
*     PL(03) = MESSAGE (PART 2)                            A             HPA31A1
*     PL(04) = TYPE                                        A             HPA31A1
*     PL(05) = CHASSIS                                     O             HPA31A1
*     PL(06) = QUAD                                        O             HPA31A1
*     PL(07) = BANK                                        O             HPA31A1
*     PL(08) = FILLER                                      A             HPA31A1
*     PL(09) = FILLER                                      A
*     PL(10) = BIT                                         O             HPA31A1
*     PL(11) = SYNDROM/STATUS                              O             HPA31A1
*     PL(12) = CHIP SELECT
*     PL(13) = MF ID
* 
*     USAGE OF PL FOR 865/875 
  
*     PL(01) = TIME 
*     PL(02) = MESSAGE (PART 1) 
*     PL(03) = MESSAGE (PART 2) 
*     PL(04) = TYPE 
*     PL(05) = PORT (875 ONLY)
*     PL(06) = QUAD (865) OR CAGE (875) 
*     PL(07) = BANK 
*     PL(08) = FILLER 
*     PL(09) = FILLER 
*     PL(10) = BIT
*     PL(11) = SYNDROM/STATUS 
*     PL(12) = ROW SELECT 
*     PL(13) = MFID 
  
  
**    USAGE OF ARRAY (STOR) 
* 
*     2              LCME BANK FAILURES 
*     4              7000 PPU ERRORS
  
*     5              SECDED BANK FAILURE QUAD 0 (LOWER CYBERS AND 865)
*                                        PORT 1 (875) 
* 
*     6              SECDED BANK FAILURE QUAD 1 (LOWER CYBERS AND 865)
*                                        PORT 1 (875) 
* 
*     7              SECDED BANK FAILURE QUAD 2 (LOWER CYBERS AND 865)
*                                        PORT 2 (875) 
* 
*     8              SECDED BANK FAILURE QUAD 3 (LOWER CYBERS AND 865)
*                                        PORT 3 (875) 
* 
*                                                                        HPA31A1
*     NOTE: CSU-0 FOR LOWER CYBERS IS STORED IN WORDS 1-8 AND            HPA31A1
*           CSU-1 IS STORED IN WORDS 9-16                                HPA31A1
*            CAGE 0 FOR 875 IS STORED IN WORDS 1-8 AND
*            CAGE 1 FOR 875 IS STORED IN WORDS 9-16 
*                                                                        HPA31A1
  
*     10             SSM-C BANK FAILURES   QUAD 0 
*     11             SSM-C BANK FAILURES   QUAD 1 
*     12             SSM-C BANK FAILURES   QUAD 2 
*     13             SSM-C BANK FAILURES   QUAD 3 
  
*     16             PP  ERRORS (PPS0)
*     17             PP  ERRORS (PPS1)
*     18             CHANNEL    FAILURES   PPS0 
*     19             CHANNEL    FAILURES   PPS1 
  
  
* 
      IF (RCFD .EQ. 2HON) CALL UCHEK36
* 
      NERR=0                                                             R2FSCR 
      NBIT=OR(FDS(1), SHIFT(FDS(2),24)) 
                                                                         HPA31A1
*     GET THE THRESHOLD COUNT                                            HPA31A1
                                                                         HPA31A1
      ICT = FDS(28)                                                      HPA31A1
      IF (IFLD(FRTY).EQ.3)ICT = FDS(19)                                  HPA31A1
      IF ((IFLD(FMTY).EQ.O"334").AND.(SIZE.EQ.0)) GO TO 10
      GO TO 20
   10 CONTINUE
*     CHECK BITS 176-177 FOR 865/875 MEMORY SIZE
      DO 15  I = 32,35
      SIZEBIT = SHIFT(FDS(13),-I).AND.1 
      IF (SIZEBIT.EQ.0) GO TO 15
      SIZE = SIZE + 1 
   15 CONTINUE
      MSIZE = SIZE * 2
   20 CONTINUE
  
**    TEST BITS AND EXECUTE PROPER PROCESSOR FOR THE ERRORS FOUND 
  
      DO 899 IBPOS=1,40,1 
      IF (IFLD(FMTY).NE.O"312") GO TO 50
      IF (IBPOS .GT. 1) GO TO 899                                        R2FSCR 
      IF (RCFA .EQ. 2HON) CALL STOJN3 
      MSGO = PROC = 1                                                    HPA31A1
      IF (IFLD(FRTY).EQ.3)MSGO = PROC = 2                                HPA31A1
      ENCODE(10,909,PL(3))MSG(MSGO,2),ICT                                HPA31A1
      PL(1) = IFLD(20)                                                   R2FSCR 
      PL(2) = MSG(MSGO,1)                                                HPA31A1
      GO TO 893                                                          R2FSCR 
   50 CONTINUE                                                           R2FSCR 
      IF(AND(NBIT,1).EQ.0)  GOTO 899
  
**    BLANK FILL PL AND PREPARE ERROR BITS FROM SCR FOR TESTING 
  
      DO 80 I = 1,12                                                     HPA31A1
      PLTEMP(I) = 10H                                                    HPA404S
 80   PL(I) = 10H 
*     TO DISTINGUISH 76B (IN TABLE BTABLE) FROM BIT 62 (=76B) 
      IBIT62=0
  
*     ERROR BIT ESTABLISHED 
  
      IEXEC = XTABLE(IBPOS) 
      IF ((IFLD(FRTY).EQ.3).AND.(IBPOS.LE.14))
     .IEXEC = LTABLE(IBPOS)                                              HPA31A1
      IF ((IFLD(FMTY).EQ.O"334").AND.(IBPOS.LE.14)) 
     .  IEXEC = HTABLE(IBPOS) 
      IF ((IFLD(FMTY).EQ.O"334").AND.(IBPOS.EQ.40)) 
     .  IEXEC = HTABLE(15)
      PROC    = AND(SHIFT(IEXEC,-12),O"77") 
  
*     CORRECT ERROR CODES FOR SCM/SSM-A/SSM-B,LCM/LCME,CHASSIS 0/1
  
      IF (PROC .NE. 4) GO TO 102                                         HPA31A1
  
  
*                                                                        HPA31A1
*     CORRECT FOR SSM PARITY MODE                                        HPA31A1
*                                                                        HPA31A1
  
      IF (RTY.NE.2 .AND. RTY.NE.6 .AND. RTY.NE.7) GO TO 102 
      IZ=10 
      IF (AND(FDS(19),2).EQ.2) IEXEC = XTABLE(44)                        HPA31A1
  
  
  
**    CORRECT LCM/LCME ERROR MESSAGE
  
  102 IF (PROC .NE. 7) GO TO 103                                         HPA31A1
      IF (AND(FDS(17),4).EQ.4) IEXEC = XTABLE(46)                        HPA31A1
  
**    CORRECT ERROR CODES FOR PPS0,PPS1 (DEPENDANT ON REPORTING CHANNEL)
  
  103 IF (IFLD(FCHAN) .NE. O"36") GO TO 110 
      IF (PROC.EQ.O"14")  IEXEC = XTABLE(47)
      IF (PROC.EQ.O"15")  IEXEC = XTABLE(48)
                                                                         HPA31A1
*     CORRECT FOR CY170 CMC ADDRESS ERROR                                HPA31A1
                                                                         HPA31A1
  110 CONTINUE
      IF ((PROC.EQ.O"23").AND.(FDS(11).EQ.1)) IEXEC = LTABLE(15)
  
**    SET WORKING CELLS 
  
      TTBLO = AND(IEXEC,O"77")
      PL(4) = TTABLE(TTBLO) 
      MSGO  = AND(SHIFT(IEXEC,-6 ),O"77") 
      PROC  = AND(SHIFT(IEXEC,-12),O"77") 
      IEXEC = SHIFT(IEXEC,-18)
      MEMADD = OR(OR(SHIFT(AND(FDS(4),3),16),SHIFT(AND(FDS(4),O"74"), 
     .  -2)),SHIFT(FDS(16),4))
  
**    EXECUTE APPROIATE PROCESSOR 
  
      IF (PROC .EQ. 0) GO TO 899
      GO TO ( 
     .200,210,220,230,240,250,260,270,280,290,300,310,320,330,340,
     .350,360,370,380,390,400,410,420,430,440,450) PROC 
  
  200 GO TO 899                                                          HPA31A1
  210 GO TO 899                                                          HPA31A1
  220 GO TO 890                                                          HPA31A1
**    SSM-C SEC/DED PROCESSING
  
  230 PL(6) = AND (SHIFT(MEMADD,-16), O"3") 
      PL(5) = MEMADD
      PL(7) = AND(MEMADD,O"17") 
      IZ = 10 
      STOR(IZ+PL(6),PL(7)+1) = STOR(IZ+PL(6),PL(7)+1)+1 
      PL(11)= AND(FDS(3),O"377")
      PL(12) =AND(SHIFT(MEMADD,-4),O"3")
      GO TO 880 
  
**    SSM-C PARITY  PROCESSING
  
  240 PL(6) = AND(SHIFT(MEMADD, -16), O"3") 
      PL(5) = MEMADD
      PL(7) = AND(MEMADD,O"17") 
      STOR(IZ+PL(6),PL(7)+1) = STOR(IZ+PL(6),PL(7)+1)+1 
      PL(11)= AND(FDS(3),O"377")
      PL(12) = AND(SHIFT(MEMADD,-4),O"3") 
      GO TO 890 
  
  250 GO TO 899                                                          HPA31A1
  
**    LCME SEC/DED PROCESSING 
  
 260  PL(5) = FDS(9)
      PL(7) = OR(AND(SHIFT(FDS(9),-4),O"3"),AND(SHIFT(FDS(9),-18),O"14")
     +) 
      STOR(2,PL(7)+1) = STOR(2,PL(7)+1)+1 
      PL(8) = AND(FDS(9),O"17") 
      PL(11)= AND(FDS(14),O"377") 
      IF (PL(4) .EQ. TTABLE(4)) GO TO 890 
      GO TO 880 
  
**    LCME PARITY PROCESSSING 
  
 270  PL(4) = TTABLE(4) 
      GO TO 260 
  
  
**    7000 PPU PROCESSING 
  
 280  ENCODE(10,900,PL(4)) FDS(6) 
      STOR(4,FDS(6)+1) = STOR(4,FDS(6)+1)+1 
      PL(11) = FDS(12)
      GO TO 890 
  
**    PP PARITY PROCESSING
  
  290 IF (IFLD(FCHAN) .EQ. O"36") PL(4) = PL(4)+O"02000000000000" 
      IZ=AND((SHIFT(PL(4),-30)-R"00"),O"7777")
      IPPS = SHIFT (IZ,-4)+16 
      IZ   = AND(IZ,O"17")
      STOR(IPPS,IZ+1)=STOR(IPPS,IZ+1)+1 
      GO TO 320 
  
**    CH PARITY PROCESSING
  
  300 IF (IFLD(FCHAN) .EQ. O"36") PL(4) = PL(4) +O"02000000000000"
      IZ=AND((SHIFT(PL(4),-30)-R"00"),O"7777")
      IPPS = SHIFT (IZ,-4)+18 
      IZ   = AND(IZ,O"17")
      STOR(IPPS,IZ+1)=STOR(IPPS,IZ+1)+1 
      GO TO 890 
  
**    PP INPUT DATA CHANNEL ERROR PROCESSING
  
  310 CONTINUE                                                           HPA31A1
      GO TO 890 
  
**    PP INPUT DATA PROCESSOR ERROR PROCESSING
  
  320 CONTINUE                                                           HPA31A1
  
**    POWER FAIL PROCESSING 
  
 330  GO TO 890 
  
**    POWER GOING DOWN ERROR
  
 340  GO TO 890 
                                                                         HPA31A1
**    CY170 PYRAMID READ                                                 HPA31A1
                                                                         HPA31A1
  350 CONTINUE                                                           HPA31A1
                                                                         HPA31A1
*     MODIFY "TYPE" IF CHANNEL 36                                        HPA31A1
                                                                         HPA31A1
      IF (IFLD(FCHAN) .EQ. O"36") PL(4) = TTABLE(33)
      GO TO 890                                                          HPA31A1
                                                                         HPA31A1
**    CY170 CSU ERROR                                                    HPA31A1
                                                                         HPA31A1
  360 CONTINUE                                                           HPA31A1
      GO TO 890                                                          HPA31A1
                                                                         HPA31A1
**    CY170 SECDED ERROR                                                 HPA31A1
                                                                         HPA31A1
  370 CONTINUE                                                           HPA31A1
                                                                         HPA31A1
*     MODIFY "TYPE" IF BIT 183 IS SET TO A DOUBLE BIT ERROR              HPA31A1
                                                                         HPA31A1
      PL(1) = IFLD(20)                                                   HPA31A1
      IF ((MSGO.EQ.33).AND.((FDS(15).AND.1).EQ.1)) MSGO = 34
      PL(2) = MSG(MSGO,1)                                                HPA31A1
      PL(3) = MSG(MSGO,2)                                                HPA31A1
      IF (ICT .GT. 0) ENCODE (10,909,PL(3))MSG(MSGO,2),ICT               HPA31A1
      IF (FDS(14) .EQ. 1) PL(4) = TTABLE(2)                              HPA31A1
      ENCODE(10,912,PL(5)) FDS(6)                                        HPA31A1
      IF (IFLD(FRTY).EQ.O"25")  PL(5) = 10H 
      IF (IFLD(FRTY).EQ.O"25") ROWSEL = FDS(5).AND.1
      IF (IFLD(FRTY).EQ.O"25")
     .        FDS(5) = (SHIFT(FDS(6),1)).OR.(SHIFT(FDS(5),-1).AND.1)
      ENCODE(10,912,PL(6)) FDS(5)                                        HPA31A1
      ENCODE(10,912,PL(7)) FDS(4)                                        HPA31A1
      PL(11) = AND(FDS(3),O"377") 
      PL(12) = AND(SHIFT(FDS(15),-6),O"3")
      IF (IFLD(FRTY).EQ.O"25") PL(12) = ROWSEL
*                                                                        HPA31A1
*     INDA IS THE FIRST INDEX TO STORE THE NUMBER OF ERRORS              HPA31A1
*     BY QUAD.                                                           HPA31A1
*                                                                        HPA31A1
*     INDB IS THE SECOND INDEX TO STOR THE NUMBER OF ERRORS              HPA31A1
*     BY CSU AND BANK.                                                   HPA31A1
*                                                                        HPA31A1
      INDA = FDS(5) + 5                                                  HPA31A1
      IF (IFLD(FRTY).EQ.O"26") INDA = FDS(6) + 5
      INDB = OR(SHIFT(FDS(6),3),FDS(4)) + 1                              HPA31A1
      IF (IFLD(FRTY).EQ.O"25") INDB = FDS(4) + 1
      IF (IFLD(FRTY).EQ.O"26") INDB = OR(SHIFT(FDS(5),3),FDS(4))+1
      STOR(INDA,INDB) = STOR(INDA,INDB) + 1                              HPA31A1
                                                                         HPA31A1
*     PL(8) IS LEFT BLANK SO THAT SYNDROME BIT CODE FOR CY176 CAN        HPA31A1
*     ALSO BE USED FOR CY170.                                            HPA31A1
                                                                         HPA31A1
      GO TO 880                                                          HPA31A1
                                                                         HPA31A1
**    CY170 CMC ERROR                                                    HPA31A1
                                                                         HPA31A1
  380 CONTINUE                                                           HPA31A1
                                                                         HPA31A1
*     MODIFY "TYPE" ACCORDING TO BITS 54 AND 55                          HPA31A1
                                                                         HPA31A1
      PL(4) = TTABLE(TTBLO + FDS(7))                                     HPA31A1
      GO TO 890                                                          HPA31A1
                                                                         HPA31A1
**    CY170 ECS ERROR                                                    HPA31A1
                                                                         HPA31A1
  390 CONTINUE                                                           HPA31A1
                                                                         HPA31A1
*     MODIFY INDEX TO MSG ARRAY ACCORDING TO BITS 136-138                HPA31A1
                                                                         HPA31A1
      IF (MSGO.EQ.39) GO TO 395 
      MSGO = MSGO + FDS(10)                                              HPA31A1
      GO TO 890                                                          HPA31A1
  395 CONTINUE
      EEMBITS = FDS(13).AND.7 
      IF (EEMBITS.EQ.0) GO TO 890 
      MSGO = 21 + EEMBITS 
      GO TO 890 
                                                                         HPA31A1
**    CY170 P-REG ERROR                                                  HPA31A1
                                                                         HPA31A1
  400 CONTINUE                                                           HPA31A1
                                                                         HPA31A1
*     MODIFY "TYPE" IF CHANNEL 36                                        HPA31A1
                                                                         HPA31A1
      IF (IFLD(FCHAN) .EQ. O"36") PL(4) = TTABLE(33)
      IF((IFLD(FMTY).EQ.O"334").AND.(IFLD(FCHAN).EQ.O"36")) PL(4)=TTABLE
     +(40)
      GO TO 890                                                          HPA31A1
* 
*      CM DATA PE AT IOU
* 
  410 CONTINUE
      IF (IFLD(FCHAN).EQ.O"36") PL(4) = TTABLE(40)
      GO TO 890 
* 
*     CM ADDR PE
* 
  420 GO TO 890 
* 
*     CMC-1 PE
* 
  430 CONTINUE
      IF ((SHIFT(FDS(13),-6).AND.1).EQ.1) MSGO = 36 
      IF ((SHIFT(FDS(13),-4).AND.3).EQ.2) PL(4) = TTABLE(40)
      GO TO 890 
* 
*     CMC-0 PE
* 
  440 CONTINUE
      IF (FDS(11).EQ.1) MSGO = 38 
      IF (FDS(7).EQ.2) PL(4) = TTABLE(40) 
      GO TO 890 
* 
*     ESM ENVIRONMENT FAILURE 
* 
  450 GO TO 890 
  
**    ENTER FAILING BIT INTO TABLE
  
 880  PL(10) = BTABLE(SHIFT(PL(11),-3)+1) 
      PL(10) = AND(SHIFT(PL(10),-(6*(AND(PL(11),7)))),O"77")
      IF (PL(10) .EQ. O"77") PL(4) = TTABLE(3)
      IF (PL(10).EQ.0) PL(4) = 10H
      IF(PROC .NE. 18) GO TO 882
*     CHECK FOR DOUBLE OR MULTIPLE BIT ERRORS 
      IF ((PL(4).NE.TTABLE(2)).AND.(PL(4).NE.TTABLE(3)) 
     .   .AND.(PL(10).NE.0)) GO TO 883
      PL(10) = 10H
      GO TO 892 
  
  
*     CHECK FOR SYNDROME BIT FAILURE
  
 882  IF (PL(10) .NE. O"75") GO TO 885
          PL(4) = TTABLE(O"35") 
      IF((PROC .NE. 4) .AND. (PROC .NE. 7)) GO TO 885 
  
*     FIND BOARD NUMBER FOR SYNDROM BITS
  
  883 IF (PL(11) .EQ. O"001") PL(10) = 60 
      IF (PL(11) .EQ. O"002") PL(10) = 61 
      IF (PL(11) .EQ. O"004") PL(10) = 62 
      IF(PL(11) .EQ. O"004") IBIT62=1 
*     NOTE BIT 62 IS EQUAL TO 76B  WHICH STANDS FOR DOUBLE BIT ERROR
*     SO IBIT62 IS NOW A FLAG TO MARK 76B AS A SINGLE, BIT-62 ERROR.
      IF (PL(11) .EQ. O"010") PL(10) = 63 
      IF (PL(11) .EQ. O"020") PL(10) = 64 
      IF (PL(11) .EQ. O"040") PL(10) = 65 
      IF (PL(11) .EQ. O"100") PL(10) = 66 
      IF (PL(11) .EQ. O"200") PL(10) = 67 
      IF(PROC .EQ. 18) GO TO 892
  
*     CHECK FOR DOUBLE OR MULTIPLE BIT ERROR
  
  885 TSTBIT = FDS (21) 
      IF (PROC .GE.O"20") GO TO 890 
      IF(PROC .EQ. 7) TSTBIT = FDS(24)
      IF (TSTBIT .EQ. 1) GO TO 886
      IF (PL(4).EQ.TTABLE(3)) GO TO 887 
      IF (PL(10).EQ.0) GO TO 887
      IF ((PL(10).NE.O"76").AND.(PL(11).NE.4)) GO TO 890
      IF (IBIT62 .EQ. 1) GO TO 890
* 
 886  PL(4) = TTABLE(2) 
  887 CONTINUE
      PL(10) = 10H
  
*     CLOCK AND REFERENCE MARGIN CONDITIONS 
  
  890 CONTINUE                                                           HPA31A1
      PL(1) = IFLD(20)
      PL(2) = MSG(MSGO,1) 
      PL(3) = MSG(MSGO,2) 
      IF (ICT .GT. 0) ENCODE(10,909,PL(3))MSG(MSGO,2),ICT                HPA31A1
      IF (IFLD(FMTY).EQ.O"334") ENCODE(10,908,PL(3)) MSG(MSGO,2),MSIZE
      IF (PL(5).NE."          ") ENCODE(10,905,PLTEMP(5))PL(5)
      PL(5) = PLTEMP(5)                                                  HPA404S
      IF (PL(6) .NE. "          ")ENCODE(10,912,PLTEMP(6))PL(6) 
      PL(6) = PLTEMP(6)                                                  HPA404S
      IF (PL(7).NE."          ") ENCODE(10,903,PLTEMP(7))PL(7)
      PL(7) = PLTEMP(7)                                                  HPA404S
      IF (PL(8).NE."          ") ENCODE(10,903,PLTEMP(8))PL(8)
      PL(8) = PLTEMP(8)                                                  HPA404S
  892 CONTINUE                                                           HPA31A1
      IF (IFLD(FMTY).EQ.O"334") ENCODE(10,908,PL(3)) MSG(MSGO,2),MSIZE
      IF (PL(10).NE."          ") ENCODE(10,907,PLTEMP(10))PL(10) 
      PL(10) = PLTEMP(10)                                                HPA404S
      IF (PL(11).NE."          ") ENCODE(10,906,PLTEMP(11))PL(11) 
      PL(11) = PLTEMP(11)                                                HPA404S
      PL(13) = MFID 
      IF(PL(12) .NE. "          ") ENCODE(10,903,PLTEMP(12)) PL(12) 
      PL(12) = PLTEMP(12) 
      MTY = MSGDIST(PROC)                                                HPA31A1
      IF ((MTY.EQ.O"714").AND.(PL(4).EQ.TTABLE(O"52"))) MTY = O"715"
      IF (MSGO.EQ.33) MTY = O"716"
      IF (MSGO.EQ.34) MTY = O"717"
      IF (PL(4).EQ.TTABLE(O"53")) MTY = O"723"
      IF (PL(4).EQ.TTABLE(O"54")) MTY = O"722"
      IF (MSGO.EQ.40) MTY = O"725"
      IF (RCFA .EQ. 2HON) CALL STOJN3 
  
  893 CONTINUE                                                           R2FSCR 
*     SAVE ERROR ACCUMULATION DATA
  
      IX = PL(5)
      ENCODE(10,916,IY) PL(13)
      IF (TYPID.EQ."CY176/SCR ") ENCODE(10,913,IX) PL(6),PL(7)
      IF (TYPID.EQ."CY176/SCR ") ENCODE(10,915,IY) PL(10),PL(12),PL(13) 
      IF(IFLD(FRTY) .EQ. 3) ENCODE(10,914,IX) PL(5),PL(6),PL(7) 
      IF(IFLD(FRTY) .EQ. 3) ENCODE(10,915,IY) PL(10),PL(12),PL(13)
      IF (IFLD(FMTY).EQ.O"334") ENCODE(10,914,IX) PL(5),PL(6),PL(7) 
      IF (IFLD(FMTY).EQ.O"334") ENCODE(10,915,IY) PL(10),PL(12),PL(13)
  
      DO 895 IJ = 20,68 
      IF (STOR(IJ,1) .EQ. 0)   GO TO 896
      IF(STOR(IJ,3) .NE. IX) GO TO 895
      IF(STOR(IJ,7) .NE. IY) GO TO 895
      IF(STOR(IJ,1) .NE. PROC) GO TO 895
      IF(STOR(IJ,4) .NE. PL(4)) GO TO 895 
      GO TO 896 
  895 CONTINUE
      GO TO 897 
  
  896 STOR(IJ,1) = PROC 
      STOR(IJ,2) = STOR(IJ,2)+1 
                                                                         HPA31A1
*     IF THERE IS A THRESHOLD COUNT ADD THIS INTO THE                    HPA31A1
*     NUMBER OF ERRORS FOR THAT ADDRESS OR BOARD.                        HPA31A1
*     THIS DOES NOT APPLY TO MTY 312B SINCE THAT IS AN HOURLY            HPA31A1
*     COUNT WITHOUT A SPECIFIC ADDRESS.                                  HPA31A1
                                                                         HPA31A1
      IF ((ICT.GT.0).AND.(IFLD(FMTY).NE.O"312"))
     .   STOR(IJ,2) = STOR(IJ,2) + ICT - 1
      STOR(IJ,3) = IX 
      STOR(IJ,4) = PL(4)
      STOR(IJ,5) = PL(2)
      STOR(IJ,6) = MSG(MSGO,2)                                           HPA31A1
      STOR(IJ,7) = IY 
  
  897 CONTINUE
*     IF THERE IS ANOTHER ERROR BIT SET IN THE SAME MESSAGE, BLANK       R2FSCR 
*     OUT THE TIME AND INCREMENT THE COUNTERS.                           R2FSCR 
      NERR = NERR + 1                                                    R2FSCR 
      IF (NERR.LT.2) GO TO 898                                           R2FSCR 
      PL(1) = 10H                                                        R2FSCR 
      MULERR = MULERR + 1                                                R2FSCR 
      IF (NERR.EQ.2) NMSG = NMSG + 1                                     R2FSCR 
  898 CONTINUE                                                           R2FSCR 
      IF (IFLD(FRTY) .EQ. 3) GO TO 920                                   HPA31A1
      IF (IFLD(FMTY).EQ.O"334") GO TO 920 
      IF(RCFD .EQ. 2HON) CALL PRINT36(102,13) 
      GO TO 930                                                          HPA31A1
  920 CONTINUE                                                           HPA31A1
      IF(RCFD .EQ. 2HON) CALL PRINT36(108,13) 
  930 CONTINUE                                                           HPA31A1
      IF (FLAGS(11) .EQ. 3HOFF) GO TO 899                                HPA31A1
      ENCODE (80,910,RECON)SEFREC(4),SEFREC(5),SEFREC(6),SEFREC(7)       HPA31A1
      DECODE (170,911,RECON)PL(1),PL(2),PL(3),PL(4),PL(5),PL(6),         HPA31A1
     .          PL(7),PL(8),PL(9),PL(10),PL(11),PL(12),                  HPA31A1
     .          PL(13),PL(14),PL(15),PL(16),PL(17)                       HPA31A1
      CALL PRINT36(101,17)                                               HPA31A1
  
  899 NBIT = SHIFT(NBIT,-1) 
  
  
  900 FORMAT (3HPPU,O2,5X)
  903 FORMAT (O2,8X)
  905 FORMAT (O10)
  906 FORMAT (O3,7X)
  907 FORMAT (I2,8X)
  908 FORMAT (A6,2X,I1,1HM) 
  909 FORMAT (A6,O4)                                                     R2FSCR 
  910 FORMAT(4(O20))                                                     HPA31A1
  911 FORMAT(17A4)                                                       HPA31A1
  912 FORMAT(O1,9X)                                                      HPA31A1
913   FORMAT(4X,A2,1H/,A2,1H/)
914   FORMAT(A3,1H/,A2,1H/,A2,1H/)
915   FORMAT(1X,A2,1H/,1X,A2,1H/,1X,R1) 
916   FORMAT(5X,R1,4X)
      RETURN
      END 
      SUBROUTINE DL6SEC3
* 
**    DL6SEC3 - PRINTS DETAIL REPORT FOR CY170, CY176, AND 865/875
*     UNIQUE IDENTIFIERS AND COUNTS FOR SECDED ERRORS.
* 
*CALL,HPACOM1 
*CALL,HPACOM2 
*CALL,HPACOM3 
      COMMON /SEC/ BTABLE(32) 
      INTEGER BTABLE
  
      DIMENSION PLTEMP(13)
* 
*     NOTE !!  TYPE THROUGH MF ID IS SHIFTED UP 
*                ONE FROM THE WAY DL6SCR3 SETS UP THE PL ARRAY. 
*     USAGE OF PL FOR CY176 
* 
*     PL       FIELD CONSTRAINS                    DATA FORMAT
*     PL(01) = TIME                                     O 
*     PL(02) = MESSAGE (PART 1)                         A 
*     PL(03) = MESSAGE (PART 2)                         A 
*     PL(04) = SECDED HOURLY COUNT                      O 
*     PL(05) = TYPE                                     A 
*     PL(06) = ADDRESS                                  O 
*     PL(07) = QUAD                                     O 
*     PL(08) = BANK                                     O 
*     PL(09) = WORD                                     O 
*     PL(10) = FILLER                                    A
*     PL(11) = BIT                                      O 
*     PL(12) = SYNDROM / STATUS                         O 
*     PL(13) = ROW SELECT 
*     PL(14) = MF ID
* 
*     USAGE OF PL FOR CY170 
* 
*     PL(01) = TIME                                     0 
*     PL(02) = FILLER 
*     PL(03) = FILLER 
*     PL(04) = SECDED HOURLY COUNT                      O 
*     PL(05) = TYPE 
*     PL(06) = CHASSIS (CY170) OR PORT (875)
*     PL(07) = QUAD    (865)   OR CAGE (875)
*     PL(08) = BANK                                     O 
*     PL(09) = FILLER                                   A 
*     PL(10) = FILLER                                    A
*     PL(11) = BIT                                      O 
*     PL(12) = SYNDROM / STATUS                         O 
*     PL(13) = CHIP SELECT (CY170) OR ROW SELECT (865/875)
*     PL(14) = MF ID
* 
* 
      IF((IFLD(21) .EQ. 0) .AND. (IFLD(22) .EQ. 0)) GO TO 990 
      IF(RCFD .EQ. 2HON) CALL UCHEK36 
      DO 800 ID=21,30,2 
**    BLANK FILL PL AND PLTEMP
      DO 80 I=1,13
      PLTEMP(I) = 10H 
80    PL(I) = 10H 
      IF((IFLD(ID) .EQ. 0) .AND. (IFLD(ID+1) .EQ. 0)) GO TO 990 
      PL(3) = 10HERR COUNT
      IF(IFLD(FRTY) .EQ. 13) GO TO 300
      IF(TYPID .EQ. 10HCY170/SCR ) GO TO 200
      IF (TYPID.EQ.10H  875/MR  ) GO TO 220 
      IF (TYPID.EQ.10H  865/MR  ) GO TO 400 
  
*     SECDED UNIQUE ID AND COUNT FOR CY176
      PROC = 4
      PL(2) = 10HCM SECDED
      PL(6) = OR((AND(SHIFT(IFLD(ID),-2),O"600000")),(AND(SHIFT(IFLD(ID)
     ., -20),O"177777"))) 
      PL(7) = (AND(SHIFT(IFLD(ID),-18),O"3")) 
      PL(8) = (AND(SHIFT(IFLD(ID),-20),O"17"))
      PL(12) = (AND(SHIFT(IFLD(ID),-10),O"377"))
      PL(13) = AND(SHIFT(IFLD(ID),-24),O"3")
      GO TO 600 
  
*     SECDED UNIQUE ID AND COUNTS FOR C170
200   PROC = 18 
      PL(2) = 10HCM SECDED
      ENCODE(10,912,PL(6))AND(SHIFT(IFLD(ID),27),O"1")
      ENCODE(10,912,PL(7))AND(SHIFT(IFLD(ID),29),O"3")
  210 CONTINUE
      ENCODE(10,912,PL(8))AND(SHIFT(IFLD(ID),32),O"7")
      PL(12) =(AND(SHIFT(IFLD(ID),40),O"377"))
      PL(13) = AND(SHIFT(IFLD(ID),26),O"3") 
      GO TO 600 
  
*     SECDED UNIQUE ID AND COUNTS FOR 875 
  220 PROC = 18 
      PL(2) = 10HMR SECDED
      ENCODE(10,912,PL(6)) AND(SHIFT(IFLD(ID),28),O"3") 
      ENCODE(10,912,PL(7)) AND(SHIFT(IFLD(ID),29),O"1") 
      GO TO 210 
  
*     LCME SECDED FOR CY176 
300   PROC = 7
      PL(2) = 10HLCME SECDE 
      PL(3) = 10HD ERR CNT
      PL(6) = 10H 
      PL(8) = (AND(SHIFT(IFLD(ID),-24),O"17"))
      PL(9) = (AND(SHIFT(IFLD(ID),-20),O"17"))
      PL(12) = (AND(SHIFT(IFLD(ID),-28),O"377"))
      GO TO 600 
  
*     SECDED UNIQUE ID AND COUNTS FOR 865 
  400 CONTINUE
      PROC = 18 
      PL(2) = 10HMR SECDED
      ENCODE (10,912,PL(7)) AND(SHIFT(IFLD(ID),28),O"3")
      ENCODE (10,912,PL(8)) AND(SHIFT(IFLD(ID),32),O"7")
      PL(12) = AND(SHIFT(IFLD(ID),40),O"377") 
      PL(13) = AND(SHIFT(IFLD(ID),29),1)
  
*     SET UP COMMON FIELDS FOR ALL 170 AND 176 SECDED IDS AND COUNTS
600   PL(11) = BTABLE(SHIFT(PL(12),-3)+1) 
      PL(11) = AND(SHIFT(PL(11),-(6*(AND(PL(12),7)))),O"77")
      PL(5) = 7HSINGLE
      IF (PL(11).EQ.0) PL(5) = 7H 
      IF (PL(11).EQ.O"76") PL(5) = 7HDOUBLE 
      IF (PL(11).EQ.O"77") PL(5) = 7HMULT 
      IF ((PL(11).EQ.0).OR.(PL(11).EQ.O"76").OR.(PL(11).EQ.O"77"))
     .   PL(11) = 10H 
      IF(TYPID .EQ. 10HCY170/SCR ) GO TO 683
      IF ((TYPID.EQ.10H  865/MR  ).OR.(TYPID.EQ.10H  875/MR  )) 
     .   GO TO 683
  
*     CHECK FOR SYNDROM BIT FAILURE 
      IF (PL(11) .NE. O"75") GO TO 690
      PL(5) = 7H SYNDM
683   IF(PL(12) .EQ. O"001") PL(11) = 60
      IF(PL(12) .EQ. O"002") PL(11) = 61
      IF(PL(12) .EQ. O"004") PL(11) = 62
      IF(PL(12) .EQ. O"010") PL(11) = 63
      IF(PL(12) .EQ. O"020") PL(11) = 64
      IF(PL(12) .EQ. O"040") PL(11) = 65
      IF(PL(12) .EQ. O"100") PL(11) = 66
      IF(PL(12) .EQ. O"200") PL(11) = 67
      IF (TYPID.NE.10HCY176/SCR ) GO TO 692 
690   CONTINUE
      SPACES=10H
      IF(PL(6) .NE. SPACES) ENCODE(10,905,PLTEMP(6)) PL(6)
      PL(6) = PLTEMP(6) 
      IF(PL(7) .NE. SPACES) ENCODE(10,912,PLTEMP(7)) PL(7)
      PL(7) = PLTEMP(7) 
      IF(PL(8) .NE. SPACES) ENCODE(10,903,PLTEMP(8)) PL(8)
      PL(8) = PLTEMP(8) 
      IF(PL(9) .NE. SPACES) ENCODE(10,903,PLTEMP(9)) PL(9)
      PL(9) = PLTEMP(9) 
692   CONTINUE
      PL(1) = IFLD(20)
      PL(4) = IFLD(ID+1)
      IF(PL(11) .NE. SPACES) ENCODE(10,907,PLTEMP(11)) PL(11) 
      PL(11) = PLTEMP(11) 
      IF(PL(12) .NE. SPACES) ENCODE(10,906,PLTEMP(12)) PL(12) 
      PL(12) = PLTEMP(12) 
      IF(PL(13) .NE. SPACES) ENCODE(10,903,PLTEMP(13)) PL(13) 
      PL(13) = PLTEMP(13) 
      PL(14) = MFID 
      IF (RCFA .EQ. 2HON) CALL STOJN3 
      ENCODE(10,901,PLTEMP(4)) PL(4)
      PL(4) = PLTEMP(4) 
  
*     SAVE ERROR ACCUMULATION DATA
      IX = PL(6)
      ENCODE(10,916,IY) PL(14)
      IF(TYPID.EQ."CY176/SCR ") ENCODE(10,913,IX) PL(7),PL(8) 
      IF(TYPID.EQ."CY176/SCR ") ENCODE(10,915,IY)PL(11),PL(13),PL(14) 
      IF ((TYPID.EQ."CY170/SCR ").OR.(TYPID.EQ."  865/MR  ")
     . .OR.(TYPID.EQ."  875/MR  ")) 
     .ENCODE(10,914,IX) PL(6),PL(7),PL(8) 
      IF ((TYPID.EQ."CY170/SCR ").OR.(TYPID.EQ."  865/MR  ")
     . .OR.(TYPID.EQ."  875/MR  ")) 
     .ENCODE(10,915,IY) PL(11),PL(13),PL(14)
  
      DO 895 IJ=20,68 
      IF(STOR(IJ,1) .EQ. 0) GO TO 896 
      IF(STOR(IJ,3) .NE. IX) GO TO 895
      IF(STOR(IJ,7) .NE. IY) GO TO 895
      IF(STOR(IJ,1) .NE. PROC) GO TO 895
      IF(STOR(IJ,4) .NE. PL(5)) GO TO 895 
      GO TO 896 
895   CONTINUE
      GO TO 897 
896   STOR(IJ,1) = PROC 
      STOR(IJ,2) = STOR(IJ,2) + IFLD(ID+1)
      STOR(IJ,3) = IX 
      STOR(IJ,4) = PL(5)
      STOR(IJ,5) = PL(2)
      STOR(IJ,6) = PL(3)
      STOR(IJ,7) = IY 
897   CONTINUE
      PL(2) = PL(3) = 10H 
      IF(TYPID .EQ. 10HCY170/SCR ) GO TO 720
      IF ((TYPID.EQ.10H  865/MR  ).OR.(TYPID.EQ.10H  875/MR  )) 
     .   GO TO 720
      IF(RCFD .EQ.2HON) CALL PRINT36(109,14)
      GO TO 800 
720   IF(RCFD .EQ.2HON) CALL PRINT36(110,14)
800   CONTINUE
990   RETURN
  901 FORMAT (I2,8X)
903   FORMAT(O2,8X) 
905   FORMAT(O10) 
906   FORMAT(O3,7X) 
907   FORMAT(I2,8X) 
912   FORMAT(O1,9X) 
913   FORMAT(4X,A2,1H/,A2,1H/)
914   FORMAT(A3,1H/,A2,1H/,A2,1H/)
915   FORMAT(1X,A2,1H/,1X,A2,1H/,1X,R1) 
916   FORMAT(5X,R1,4X)
      END 
      SUBROUTINE PHEAD36 (ST) 
* 
**     PHEAD36 PRINTS HEADINGS FOR REPORTS DEVELOPED
*      BY OV-3 ROUTINES.
* 
*      ENTRY CONDITIONS 
*      -----------------
*      HCF(5) - ARRAY PRESET WITH POINTERS TO A SET OF HEADINGS 
*               THAT MAY BE PRINTED.  A NON-ZERO VALUE IN HCF(1)
*                  TO HCF(5) IS A POINTER TO A HEADING, AS USED IN
*                  COMPUTED GO-TO. HCF(1) TO (5) ARE SCANNED
*               SEQUENTIALLY AND SEVERAL SUBHEADERS MAY BE PRINTED. 
*          ST = CONTAINS POINTER TO WHERE ROUTINE WILL
*               START SCANN OF (HCF) FLAG.
* 
*       EXIT CONDITIONS 
*       ----------------
*          SUB-HEADER PRINT COMPLETED.
*              ENCOUNTER (HCF) FLAG CONTAINING ( 0 ). 
* 
*       DATA AREAS
*       --------------------
*        HCF(5) - FLAGS TO CONTROL SUB-HEADER PRINT 
*        HDATA(5) = 5 WORDS OF (A) FORMAT DATA USED IN PRINT. 
*        HDATA(3) = CURRENT DATE FOR PRINT
* 
*         CALLED BY 
*         --------- 
*         PRINT36 - AUTOMATICALLY, WHEN NEW PAGE IS INITIATED.
* 
*CALL HPACOM1 
*CALL,HPACOM2 
  
*        TEST FOR PRINT FLAG OFF                                        000280
      IF (FLAGS(4) .EQ. 3HOFF) GO TO 1000                               000290
      P = ST
      GO TO 5 
    2 LINE = LINE + 1 
    5 LINE = LINE + 1 
  
      IF (P .GT. 5) GO TO 1000
  
    6 PTR = HCF(P)
      IF ((PTR .LT. 1) .OR. (PTR .GT. 24)) GO TO 1000 
      P = P + 1 
  
  
*        JUMP TO PRINT AS CALLED BY POINTER 
      GO TO (  10,  20,1000,1000,  50,  60,  70,  80,  90, 100, 
     .        110, 120, 130, 140,1000, 160, 170, 180,1000, 200, 
     .       1000, 220, 230, 240) PTR 
  
* 
   10 CONTINUE
      PTYPID = TYPID
      IF (TYPID.NE.10H  875/MR  )GO TO 15 
      I875CR = FDS(12).AND.1
      IF (IFLD(FMTY).EQ.O"314") I875CR = IFLD(14).AND.1 
      IF (I875CR.EQ.1) PTYPID = 10H  875CR/MR 
   15 CONTINUE
      PRINT 11, TYPORD,TYPDT,ORD,PTYPID 
   11 FORMAT (1X,'DT ',A4,6H - ** ,R2,1X,A4,3H ** 
     .,4X,3H.. ,A10,'  DATA  ..') 
      GO TO 6 
  
*          DATE / MESSAGE TYPE HEADER 
   20 IF ((RTY .EQ. O"70") .OR. (RTY .EQ. O"71") .OR. (RTY .EQ. O"72")
     ..OR.(RTY .EQ. O"73") .OR. (RTY .EQ. 3)) GO TO 25
      IF ((TYPID.EQ.10H  865/MR  ).OR.(TYPID.EQ.10H  875/MR  )) 
     .   GO TO 25 
      PRINT 21,HDATA(3),IFLD(FCON),IFLD(FUN),SEBUF(27), 
     .SEBUF(28),SEBUF(29)                                                R2FSCR 
   21 FORMAT (///,1X,A10,8H  EQUIP ,O2,7H  UNIT ,O3,15H  MSG-TYPE >>> ,  R2FSCR 
     .2A10,A8,3H<<<,/)                                                   R2FSCR 
      LINE = LINE + 3 
      GO TO 2 
   25 PRINT 26,SEBUF(27),SEBUF(28),SEBUF(29)
   26 FORMAT (//,20X,14H MSG-TYPE >>> ,2A10,A8,3H<<<,/) 
      LINE = LINE + 3 
      GO TO 5 
* 
*         *** HEADER FOR ESM/STORNET HOURLY SIDE DOOR PORT STATUS 
   50 PRINT 51
   51 FORMAT (4X,'DATE      TIME      PP     CH    MFID   STATUS')
      GO TO 820 
* 
*        *** HEADER FOR DOUBLE BIT ESM/STORNET ERRORS 
   60 PRINT 61
   61 FORMAT (40X,'BITS         BITS',/,4X,'DATE      ',
     .'TIME      PP     CH       23-4         2-0     MFID')
      GO TO 820 
* 
*        *** HEADER FOR PROG. SINGLE BIT ESM/STORNET COUNTER
   70 PRINT 71
   71 FORMAT(46X,'BITS',/,4X,'DATE      TIME      PP     ', 
     .'CH             33-0           MFID') 
      GO TO 820 
* 
*        *** HEADER FOR SINGLE BIT ESM/STORNET ERRORS 
   80 PRINT 81
   81 FORMAT(32X,'HOUR    SYND  FAILING  SYND    ADDR    BITS  MF',/, 
     .4X,'DATE    TIME      PP   CH   COUNT   CODE    BIT     23',
     .'     22-17   2-0   ID')
      GO TO 820 
* 
*     HEADER FOR 865/875 MAINTENANCE REGISTER 
   90 CONTINUE
      IADR = 8H   QD-BK 
      IF (TYPID .EQ. 10H  875/MR  ) IADR = 8HPT-CG-BK 
      PRINT 91, IADR
   91 FORMAT (3X,'DATE',21X,'MEMORY',9X,'ADR. BITS',13X,'ROW  MF',
     ./,6X,'TIME',7X,'MESSAGE     SIZE   TYPE',4X,A8,2X,
     .'BIT   SYN  SEL  ID') 
      GO TO 820 
* 
*     SUB-HEADER FOR RMS RAM MSG - FLAWED ADD(MTY=32B)- ECS(RTY70/71)80C
  100 PRINT 101 
  101 FORMAT (1X,'DATE',/,
     .4X,'TIME        JOB     PP  CH  UN    CYL    TRK   SEC  MFID')
      GO TO 820 
* 
*     SUB-HEADER FOR RMS RAM ERRORS/MSGS(MTY=33/34/52B)-ECS(RTY70/71)80C
  110 PRINT 111 
  111 FORMAT (1X,'DATE',/,
     .4X,'TIME        JOB     PP  CH  UN   MFID') 
      GO TO 820 
* 
*     DATE
  120 CONTINUE
      PRINT 121,SEBUF(23)                                                HPA31A1
  121 FORMAT(1X,A8)                                                      HPA31A1
      GO TO 5                                                            HPA31A1
* 
*     HEADER FOR CY170 S/C AND 865/875 MR SECDED UNIQUE ID AND COUNTS 
  130 CONTINUE
      IADR = 9HCSU-QD-BK
      IF (TYPID.EQ.10H  865/MR  ) IADR = 9H    QD-BK
      IF (TYPID.EQ.10H  875/MR  ) IADR = 9H PT-CG-BK
      SEL = 4H ROW
      IF (TYPID.EQ.10HCY170/SCR ) SEL = 4HCHIP
      PRINT 131, SEL, IADR
  131 FORMAT (3X,'DATE',9X,'HOUR    TYPE     ADR. BITS',18X,A4,4X,'MF', 
     ./,6X,'TIME      COUNT',12X,A9,4X,'BIT    SYN     SEL    ID')
      GO TO 820 
* 
*     HEADER FOR CY176 S/C UNIQUE ID AND COUNTS 
140   PRINT 141 
      GO TO 820 
  141 FORMAT (6X,'TIME',6X,'  HOUR ',3X,'TYPE',13X, 
     .'MEMORY',6X,'STAT ROW MF',/,17X,' COUNT ',10X,'ADDRESS',
     .2X,'Q-BK-WD BIT  SYN SEL ID') 
* 
*          SUBHEADER FOR ECS DETAIL REPORT
  160 PRINT 161 
  161 FORMAT(' DATE',33X,'MF ECS-XFER ECS ERROR WORD    CM-XFER', 
     ./,4X,'TIME    JOBNAME R/W RCV RTY PP CH ID',
     .' ADDRESS  ADDRESS   COUNT   ADDRESS')
      GO TO 820                                                          R2FECS 
  
*        SUBHEADER FOR ESM AND STORNET ERRORS DETAIL REPORT 
  170 PRINT 171 
  171 FORMAT(' DATE',33X,'MF ECS-XFER ECS ERROR WORD  DEVICE',
     ./,4X,'TIME    JOBNAME R/W RCV RTY PP CH ID',
     .' ADDRESS  ADDRESS   COUNT STATUS   FUNC')
      GO TO 820                                                          R2FECS 
  
*          *****  HEADER FOR S/C REPORT - DETAIL   ***
  180 PRINT 181 
      GO TO 820                                                          HPA31A1
  181 FORMAT (3X,'DATE',20X,'(THRES/',9X,'ADR. BITS',13X, 
     .'CHIP  MF',/,6X,'TIME',7X,'MESSAGE    COUNT)  TYPE',
     .'    CSU-Q-BK  BIT   SYN  SEL.  ID')
  
*            HEADER FOR ECS ERROR ANALYSIS REPORT 
  200 PRINT 201 
  201 FORMAT (//,6X,'ABSOLUTE',8X,'DATA',15X,'DATA',15X,'DATA', 
     ./,'  QTY  ADDRESS',7X,'EXPECTED',12X,'ACTUAL',13X,'DIFFERENCE') 
      GO TO 820                                                          R2FECS 
* 
*       HEADER FOR BETA SCR REPORT - DETAIL 
  220 PRINT 221 
      GO TO 820                                                          R2FSCR 
  221 FORMAT (
     .6X,'TIME',6X,'MESSAGE',3X,'(THRES/',3X,'TYPE',13X,'MEMORY', 
     .5X,'STAT ROW MF',/,27X,'COUNT)',10X,'ADDRESS',3X, 
     .'Q-BK-WD BIT SYN SEL ID') 
  
*     HEADING FOR SCR/MR ACCUMULATED ERRORS REPORT
  230 CONTINUE
      IADR = 9HCSU/QD/BK
      IF (TYPID.EQ.10H  865/MR  ) IADR = 9H    QD/BK
      IF (TYPID.EQ.10H  875/MR  ) IADR = 9HPT /CG/BK
      PRINT 231, IADR 
  231 FORMAT (/,1X,'ACCUMULATED ERRORS LIST BY TYPE/ADDRESS',/, 
     ./,4X,'COUNT',6X,'MESSAGE',12X,'TYPE',5X,A9,'/BIT/SEL/MF') 
      GO TO 820 
  
*        SUBHEADER FOR MAP III/IV DETAIL REPORT 
  240 PRINT 241 
  241 FORMAT (1X,'DATE                 MAP   MF   PRIMARY  PROGR.  ', 
     .'MACRO/MEM CONTRL/MEM   ARITHMETIC...ERRORS  MEMORY',/, 
     .         2X,'TIME      PP  CH  ACCESS  ID   STATUS   STATUS  ', 
     .' ADDRESS    ADDRESS    --1--  --2--  --3--  ERRORS',/, 
     .1X,10(10H----------)) 
      GO TO 2 
  
* 
  820 PRINT 821 
  821 FORMAT (1X,7(10H----------),8H--------)                            R2FSCR 
      GO TO 2 
 1000 RETURN
      END 
      SUBROUTINE PRINT36 (LT,NW)
* 
**        DESCRIPTION 
*         ----------- 
*         SUBROUTINE PRINT36 PRINTS A LINE OF DATA IN VARIOUS REPORTS 
*         BY TRACKING LINE COUNTS AND STARTS NEW PAGE IF NEEDED.
* 
*         ENTRY CONDITIONS
*         ----------------
*         LT   - DEFINES THE FORMAT STATEMENT TO BE USED, 
*         NW   - DEFINES THE NUMBER OF WORDS TO BE PRINTED. 
* 
*         DATA AREAS SHARED - 
*         LINE, RCF, PL(32) 
* 
*         EXIT CONDITIONS 
*         --------------- 
*         DATA AREAS SHARED - 
*         LINE
* 
*         DATA AREAS
*         ----------
*         LINE   - (1)/COMMON BLOCK/NUMBER OF LINES PRINTED SO FAR
*                  IN A PAGE. 
*         IFORM  - (12,60)/COMMON BLOCK/AREA TO HOLD THE EXECUTION
*                  TIME FORMAT STATEMENTS FOR VARIOUS REPORTS.
*                  COLUMN NUMBER SELECTS A SET OF FORMAT STATEMENT
*                  AND THE MAXIMUN LENGTH OF ONE STATEMENT IS 12
*                  WORDS LONG.
*         PL - (32)/COMMON BLOCK/AREA TO HOLD A LIST OF PRINT 
*                  DATA LOADED BY THE CALLING ROUTINE.
*         CALLS 
*         ----- 
*         HEADER - INITIALIZE EACH PAGE OF VARIOUS REPORTS. 
*         PRHEAD - PRINT SUB-HEADER IN VARIOUS REPORT.
* 
*CALL,HPACOM1 
*CALL,HPACOM2 
  
      DIMENSION IFORM ( 4, 6 ), FORM2 ( 12, 16 ), FMT (12)
* 
  
*     REPEATED ERROR FORMAT 
      DATA (IFORM(I,1), I=1,4,1) /
     .10H(3X,A5,2X,,10H2A10,3X,A6,10H,4X,2A10,/,10H)         /
  
*     C176 SCR DISTROBUTION FORMAT
      DATA (IFORM(I,2), I=1,2,1) /
     .10H(32(1X,A3),10H)         /
* 
      DATA (IFORM(I,4), I=1,2,1) /10H(A10)     ,10H          /
  
      DATA(IFORM(I,5),I=1,2,1) /
     .10H(5A10)    ,10H          /
  
*        FORMAT FOR ANALYSIS OF ECS/DDP ADDRESS ERROR 
      DATA (IFORM(I,6),I=1,3) /10H(1X,I4,1X,,10HO8,3(1X,2(,10HA10)))     /
     +/ 
  
* 
*       **********************************************
* 
*         ...START OF (FORM2) ARRAY FOR LARGE FORMATS ... 
* 
*        ... THESE ARE CALLED WITH FORMAT PARAMETER BIASED
*            BY +100, IN PRINT CALL . 
* 
*        ************************************************ 
* 
* 
*                                                                        HPA31A1
*         EXTENDED DETAIL FOR SCR REPORTS                                HPA31A1
      DATA (FORM2(I,1),I=1,12,1) /
     .10H(14X,9A5,2,10H0H(203,191,10H,179,...10,10H7),/,14X,8,10HA5,5X, 
     .   ,10H          , 10H16H(95,83,,10H71,...11),,10H/)        ,10H
     .        ,10H          ,10H          / 
  
*     C176 STATUS/CONTROL REGISTER DETAIL REPORT
      DATA (FORM2(I,2),I=1,7,1) / 
     .10H(4X,A9,2A1,10H0,1X,A7,2X,10H,R8,2X,A1,,10H2(1X,A2),2,10HA2,1X,,
     .A3,,10H2X,A2,2X,R,10H1)         / 
  
*         FORMAT FOR MAP III/IV DETAIL REPORT 
      DATA (FORM2(I,3),I=1,5,1) / 
     .10H(2X,A8,2(2,10HX,O2),2(5X,10H,R1),4(5X,,10HO4),5X,4(3,
     .10HX,O4))     / 
* 
*         FORMAT FOR ANALYSIS MULTIPLE ERROR MESSAGES                    R2FSCR 
      DATA (FORM2(I,4),I=1,12,1) /
     .10H(/,14H *TH,10HERE WERE (,10H,I5,33H ) ,10HMULTIPLE E,10HRRORS I
     .NST,10HANCES IN (,  10HI5,12H ) M,10HESSAGES*) ,10H          ,10H 
     .         ,10H          ,10H          /
  
      DATA (FORM2(I,5),I=1,12,1) /
     .10H(/,16H ** ,10HTHERE WERE,10H (,I5,26H ,10H), 1 WORD ,10HREADS, 
     .IN ,10HTHE (,I5, ,  10H18H ) ERRO,10HR ENTRYS *,10H*)        ,10H 
     .         ,10H          ,10H          /
  
*        FORMAT FOR ECS DETAIL REPORT 
      DATA (FORM2(I,6),I=1,7,1) / 
     .10H(4X,A8,R8,,10H2X,A1,1X,A,10H5,I2,2(1X,,10HO2.2),2X,R,
     .10H1,2(1X,A8),10H,2X,I4,3X,,10HA8)       /
* 
*     FORMAT FOR ESM AND STORNET ERRORS DETAIL REPORT 
      DATA (FORM2(I,7),I=1,7,1) / 
     .10H(4X,A8,R8,,10H2X,A1,1X,A,10H5,I2,2(1X,,10HO2.2),2X,R,
     .10H1,2(1X,A8),10H,2X,I4,3X,,10HO4,4X,O4) /
                                                                         HPA31A1
*     CY170 SCR AND 865/875 MAINTENANCE REGISTER DETAIL REPORT
      DATA (FORM2(I,8),I=1,6,1) / 
     .10H(4X,3A10,2,10HX,A7,3(2X,,10HA1),A1,2A2,10H,3X,A3,3X,,10HA2,3X,R
     .1) ,10H          /
                                                                         HPA31A1
*     CY176 STATUS/CONTROL UNIQUE ID AND COUNTS 
      DATA (FORM2(I,9),I=1,7,1) / 
     .10H(4X,A9,2A3,10H,1X,A2,4X,,10HA7,R8,2X,A,10H1,2(1X,A2),10H,2A2,2X
     .,A3,10H,2X,A2,2X,,10HR1)        / 
* 
*     CY170 AND 865/875 SECDED UNIQUE ID AND COUNTS 
      DATA (FORM2(I,10),I=1,7,1) /
     .10H(4X,A10,2A,10H1,2X,A2,4X,10H,A7,2X,3(2,10HX,A1),A3,2,10HA2,4X,A
     .3,6,10HX,A2,5X,R1,10H)          / 
* 
*     ESM/STORNET DOUBLE BIT ERRORS 
      DATA(FORM2(I,11),I=1,6,1) / 
     .10H(1X,2A10,3,10HX,O2.2,5X,,10HO2.2,A1,5X,10H,O4.4,O3.3,
     .10H,8X,O1.1,8,10HX,R1)     /
* 
*     ESM/STORNET PROG. SINGLE BIT COUNTER
      DATA(FORM2(I,12),I=1,5,1) / 
     .10H(1X,2A10,3,10HX,O2.2,5X,,10HO2.2,9X,3(,10HO4.4),9X,R,
     .10H1)        /
* 
*     ESM SINGLE BIT REPORTS
      DATA(FORM2(I,13),I=1,8,1) / 
     .10H(1X,2A10,1,10HX,O2.2,3X,,10HO2.2,3X,I4,10H,5X,O3.3,5,
     .10HX,A2,6X,O1,10H.1,7X,O2.2,10H,5X,O1.1,5,10HX,R1)     /
* 
*        FORMAT FOR RMS/RAM MESSAGE - WITH FLAWED ADDRESS (MTY=32B) 
      DATA (FORM2(I,14),I=1,5,1) /
     .10H(4X,A8,2X,,10HR8,3(2X,O2,10H.2),4X,O4.,10H4,2(3X,O3.,
     .10H3),4X,R1) /
  
*        FORMAT FOR RMS/RAM ERROR/MESSAGE (MTY=33B,34B,52B) 
      DATA (FORM2(I,15),I=1,3,1) /
     .10H(4X,A8,2X,,10HR8,3(2X,O2,10H.2),5X,R1)/
* 
*     ESM/STORNET HOURLY SIDE DOOR PORT STATUS
      DATA(FORM2(I,16),I=1,5,1) / 
     .10H(1X,2A10,3,10HX,O2.2,5X,,10HO2.2,6X,R1,10H,4X,5(O4.4,
     .10H,2X))     /
*       **************************************************
  
*      IF CURRENT DETAILS - NOT TO BE PRINTED - RETURN. 
      IF (FLAGS(4) .EQ. 3HOFF) GO TO 50 
  
*                                                                        R2FECS 
*         PUT BACK DATE IF AT THE TOP OF PAGE                            R2FECS 
*                                                                        R2FECS 
      IF (LINE .LE. PLF) GO TO 5                                         R2FECS 
      HDATA(3) = SEBUF(21)                                               R2FECS 
      CALL HEADER                                                        R2FECS 
      CALL PHEAD36(1)                                                    R2FECS 
  
    5 CONTINUE                                                           R2FECS 
      LINE=LINE+1 
      IF (LT .GE. 100) GO TO 10 
      DO 8 J=1,4
       FMT(J)=IFORM(J,LT) 
  8   CONTINUE
      PRINT FMT, (PL(J),J=1,NW) 
      IF (LT .EQ. 1) LINE = LINE + 1                                     HPA31A1
      GO TO 50
* 
*      PRINT WITH FORMAT OF 100 OR MORE 
   10 LFM = LT - 100
      IF (LT.EQ.101) LINE = LINE + 2
      DO 12 J=1,12
       FMT(J)=FORM2(J,LFM)
 12   CONTINUE
      PRINT FMT, (PL(J),J=1,NW) 
  
   50 DO 60 K=1,NW
   60 PL(K) = 1H
* 
  
      RETURN
      END 
      SUBROUTINE UCHEK36
**
*        UCHEK36  - BASIC ROUTINE USED BY DETAIL PROCESSORS, TO 
*                   TEST FOR CHANGES IN MESSAGE THAT WILL AFFECT
*                   SUBHEADER PRINT.  WHEN CHANGE OCCURS, MODIFY
*                   POINTERS AND CALL PHEAD36 FOR NEW HEADING 
*                   OF DEVICE AND MESSAGE TYPE. 
* 
*        ENTRY CONDITIONS 
*       ------------------- 
*       CURRENT MESSAGE IN PROCESS IS IN (IFLD) 
*     - FOR START OF REPORT, (SVEST) FLAG HAS BEEN PRESET,
*       BY ANALYZER ROUTINES, TO ( -1) TO INDICATE
*       ORIGINAL ENTRY. 
* 
*       EXIT CONDITIONS 
*       ----------------
*       CURRENT APPLICABLE SUB-HEADERS ARE PRINTED , AND FLAGS
*       FOR TEST CHANGES IN NEXT MESSAGE ARE SAVED. 
* 
*       DATA AREAS
*        -----------
*        SVMTY - SAVE MESSAGE TYPE IN PROCESS 
* 
* 
*CALL HPACOM1 
*CALL,HPACOM2 
  
      CALL DREPT3 
  
*       JUMP IF NOT INITIAL ENTRY FOR THIS UNIT 
      IF ( FLAGS(12) .NE. 7HNEW-EST ) GO TO 200 
  
*             INITIALIZE
      FLAGS(12) = 1H
      SVMTY = IFLD(FMTY)
      PDATE = SEBUF(21) 
      CALL HEADER 
      CALL FLIP3
  
      IF ((IFLD(FRTY).EQ.3).OR.(IFLD(FRTY).EQ.7)) HCF(4) = 12            HPA31A1
      IF((IFLD(FRTY).EQ.O"14") .OR. (IFLD(FRTY).EQ.O"15")) HCF(4) = 12
      IF ((IFLD(FRTY).EQ.O"16").OR.(IFLD(FRTY).EQ.O"17")) HCF(4) = 12 
      IF (IFLD(FMTY).EQ.O"334") HCF(4) = 12 
      IF (IFLD(FRTY).EQ.O"12") HCF(4) = 12
      IF ((RTY .EQ. O"70") .OR. (RTY .EQ. O"71")) HCF(4) = 12 
      IF (RTY .EQ. O"73") HCF(4) = 12 
      CALL PHEAD36 (1)
      GO TO 600                                                          R2FECS 
  
*         TEST CHANGE IN MESSAGE TYPE 
  200 IF (SVMTY .NE. MTY) GO TO 300 
  
*       TEST CHANGE OF DATE 
      IF (PDATE .EQ. SEBUF(23)) GO TO 600 
      PDATE = SEBUF(23)                                                  R2FECS 
      HDATA(3) = PDATE                                                   R2FECS 
      HCF(4) = 12                                                        HPA31A1
      CALL PHEAD36(4)                                                    HPA31A1
      GO TO 600                                                          HPA31A1
  
  300 PDATE = SEBUF(23) 
      HDATA(3) = PDATE
      SVMTY = MTY 
*     SET SUBHEADER CONTROLS
      CALL FLIP3
      IF ((IFLD(FRTY).EQ.3).OR.(IFLD(FRTY).EQ.7)) HCF(4) = 12            HPA31A1
      IF((IFLD(FRTY).EQ.O"14") .OR. (IFLD(FRTY).EQ.O"15")) HCF(4) = 12
      IF ((IFLD(FRTY).EQ.O"16").OR.(IFLD(FRTY).EQ.O"17")) HCF(4) = 12 
      IF (IFLD(FMTY).EQ.O"334") HCF(4) = 12 
      IF (IFLD(FRTY).EQ.O"12") HCF(4) = 12
      IF ((RTY .EQ. O"70") .OR. (RTY .EQ. O"71")) HCF(4) = 12 
      IF (RTY .EQ. O"73") HCF(4) = 12 
      IF ((LINE+4) .GT. PLF) GO TO 400
      CALL PHEAD36 (2)
      GO TO 600 
  
  400 CONTINUE
      CALL HEADER 
      CALL PHEAD36 (1)
      GO TO 600 
  
  600 RETURN                                                             R2FECS 
      END 
          IDENT  INTEM36
          LCC OVCAP.
          ENTRY  INTEM36
OVLNO     SET    6
          USE    /LINK/ 
LINKET    BSS    1
LINKEM    BSS    1
          USE    *
  
INTEM36   BSS    1
          SX6    ET 
          SA6    LINKET 
          SX6    EC 
          SA6    LINKEM 
          JP     INTEM36
          EJECT 
*CALL COMHPAERT 
          END 
