*DECK HPA314
      OVCAP.
      SUBROUTINE HPA314 
* 
*         CONTROL PROGRAM FOR OVERLAY (3,14)
*        HPA314 PROCESSES ALL MF MISC. ERRORS/MSGS AND 990 MEMORY ERRORS. 
*        RECORD TYPE:  11B - MF MISC. ERRORS/MSGS/TOP OF HOUR COUNTS, 
*                                               READ RECORDS 1 AT A TIME. 
* 
*        RECORD TYPE: 104B - 990 MEMORY ERRORS, READ RECORDS 2 AT A TIME. 
*        ERROR CODE: 4304B
* 
*        RECORD TYPE: 105B - 990 MEMORY SECDED, READ RECORDS 1 AT A TIME. 
*        ERROR CODE: 4305B
* 
*CALL HPACOM1 
  
      IF (FROG(6).NE. L"T") GO TO 10
      CALL SECOND(CP) 
      PRINT 9,CP
    9 FORMAT ( ' ENTER HPA314, SECOND = ',F10.3)
   10 CONTINUE
* 
      IF ((RTY .EQ. O"104") .OR. (RTY .EQ. O"105")) GO TO 400 
      IF ((RTY .EQ. O"11") .AND. (IFLD(FDT) .EQ. R"MR")) GO TO 300
* 
*         MESSAGES NOT PROCESSED, GET NEXT RECORD 
* 
      CALL GNR3 
      CALL SETEM3(1)
      GO TO 1000
* 
  
*         MISC. MAINFRAME ERRORS/MESSAGES 
* 
  300 CALL ANMISC 
      GO TO 1000
* 
*         THETA(990) MEMORY ERRORS
* 
  400 CALL AN990M 
      GO TO 1000
* 
 1000 CONTINUE
      END 
      SUBROUTINE ANMISC 
* 
**    DESCRIPTION 
*     ----------- 
*     SUBROUTINE ANMISC PROCESSES MISCELLANEOUS MAINFRAME ERRORS AND
*     MESSAGES. 
* 
*CALL HPACOM1 
*CALL HPACOM2 
  
*     INITIALIZATION FOR UNIT ANALYSIS REPORTS
      CALL INISET3
      CALL DREPT3 
  
*     SET HEADER POINTERS 
      IHDR = 31 
  
      MPR(1,1) = O"4300"
      MPR(1,2) = 10 
      SKIPGNR = 0 
  
   50 IF (RCFA .EQ. 2HON) CALL STOJN3 
  
      IF (RCFD .EQ. 2HON) THEN
         IF ((MTY .EQ. O"4316") .OR. (MTY .EQ. O"4317")) THEN 
            CALL DLEPM (SKIPGNR)
         ELSE 
            CALL DLMISC (SKIPGNR) 
         ENDIF
      ENDIF 
  
      IF (SKIPGNR .EQ. 1) THEN
         SKIPGNR = 0
         GO TO 100
      ENDIF 
  
  
   75 CONTINUE
      CALL GNR3 
      CALL SETEM3 (1) 
  
  100 CONTINUE
  
      IF (TWIC .EQ. 0) GO TO 400
      IF ((IFLD(18) .EQ. R" CONTINU") .AND. ((MTY .GE. O"4314") .AND. 
     .   (MTY .LE. O"4320"))) GO TO 75
      IF (RTY .EQ. O"11") GO TO 50
  
  400 CONTINUE
      IF (RCFA .EQ. 3HOFF) GO TO 900
      PL(63) = 10H
      PL(64) = 10H
      CALL XOVCAP ('ERDIST3',0,0) 
      CALL UOVCAP ('ERDIST3') 
  
  900 CONTINUE
      RETURN
      END 
      SUBROUTINE AN990M 
* 
*         DESCRIPTION 
*         ----------- 
*         SUBROUTINE AN990M PROCESSES SEF INPUT RECORDS FOR THETA(990)
*         MEMORY ERRORS/MESSAGES FOR ERROR CODES 4305(SECDED ERRORS)
*         AND 4304 (MEMORY ERRORS LOGGED WITH MAINTENANCE REGISTERS). 
* 
*         ENTRY CONDITION 
*         --------------- 
*         ENTERED WHEN SEF IS POSITIONED AT THE FIRST RECORD OF THETA(990)
*         MEMORY ERROR MESSAGES.
* 
*         EXIT CONDITION
*         --------------
*         EXIT WHEN SEF RECORDS FOR THETA(990) MEMORY ERRORS ARE EXHAUSTED. 
* 
*         CALLED BY 
*         --------- 
*         PROGRAM HPA314
* 
*         CALLS 
*         ----- 
*         II990M
*         DL990M
*         SEC990M 
* 
*CALL HPACOM1 
*CALL HPACOM2 
*CALL HPACOM3 
      COMMON /MFLD/ IFLD2(50), NFLD2(50), FCSEL(8), I64K
     .              ,IOUERR 
* 
      DATA FCSEL / 2H4A,2H6A,2H4B,2H6B,2H4C,2H6C,2H4D,2H6D /
      DATA IAMHRD / 0 /, IAMSFT / 0 / 
      DATA IOUERR /2HNO/
* 
*     INITIALIZATION FOR UNIT ANALYSIS REPORTS
      CALL INISET3
      CALL DREPT3 
* 
*         CHECK OI REGISTER (BITS 13,14) FOR 64K/256K 
*             I64K = 0   16K MEMORY CHIP
*                  = 1  256K MEMORY CHIP
*                  = 2   64K MEMORY CHIP
* 
   50 IF (MTY .EQ. O"4304") I64K = SHIFT(IFLD(31),-1) .AND. 3 
      IF (MTY .EQ. O"4305") I64K = SHIFT(IFLD(34),-9) .AND. 3 
* 
*     SET HEADER POINTERS 
* 
      MPR(1,1) = O"4304"
      MPR(1,2) = 3
      IF (I64K .GE. 1)  MPR(1,2) = 11 
      MPR(2,1) = O"4305"
      MPR(2,2) = 7
      IF (I64K .GE. 1)  MPR(2,2) = 12 
* 
*     PROCESS 990 MEMORY ERRORS 
* 
      IF (RTY .EQ. O"104") THEN 
         MODEL = IFLD2(24)
  
*        GATHER ANALYSIS REPORT 
         IF (RCFA .EQ. 2HON)  CALL STOJN3 
  
*        SAVE FIRST TWO RECORDS AND READ THE NEXT TWO RECORDS 
         DO 56 I = 19, 50 
            IFLD2(I) = IFLD(I)
   56       NFLD2(I) = NFLD(I)
  
*        EXCEPTION: PRE-DFT 4 CORR/MOB ERRORS, SYMPTOM CODE 403B/405B 
         VERSION = IFLD(FUN)
         IF ((VERSION .LT. 4) .AND. 
     .      ((IFLD(49) .EQ. O"403").OR.(IFLD(49) .EQ. O"405"))) GO TO 60
  
         CALL GNR3
         CALL SETEM3 (1)
  
   60    CALL DL990M
  
*        CHECK FOR SUPPORTIVE STATUS BUFFER INFORMATION FROM DFT
         IF (VERSION .GE. 4) THEN 
            CALL GNR3 
            CALL SETEM3 (1) 
            IF ((TWIC .EQ. 0) .OR.
     .         ((RTY .NE. O"104") .AND. (RTY .NE. O"105"))) GO TO 400 
            IF (RTY .EQ. O"105") GO TO 50 
            IF (RCFD .NE. 2HON) GO TO 150 
            IF ((IFLD(19) .AND. O"1000") .EQ. 0) GO TO 150
            TAG1 = SHIFT(IFLD(21),44) .OR. SHIFT(IFLD(22),28) .OR.
     .             SHIFT(IFLD(23),20) .OR. SHIFT(IFLD(24),12) .OR.
     .                   IFLD(25) 
            TAG2 = SHIFT(IFLD(26),-4) .AND. Z"FFF"
            PRINT 102,VERSION,TAG1,TAG2 
  102       FORMAT(/,7X,'DFT REVISION ',I2,' FAULT SYMPTOM CODE = ',
     .             R10,R2)
  
*           REPORT WHEN DFT SUPPORTIVE STATUS BUFFER DATE/TIME INVALID
            IF ((IFLD(19) .AND. O"4000") .NE. 0) THEN 
               PRINT 104
  104          FORMAT (7X,'DFT-REPORTED WALL CLOCK TIME INTEGRITY HAS ',
     .                    'BEEN LOST')
               LINE = LINE + 1
            ENDIF 
  
            PRINT 106 
  106       FORMAT (1X,7(10H----------),9H---------,/)
            LINE = LINE + 4 
         ENDIF
  
*        READ THE NEXT RECORD 
  150    CALL GNR3
         CALL SETEM3 (1)
         IF ((TWIC .EQ. 0) .OR. 
     .      ((RTY .NE. O"104") .AND. (RTY .NE. O"105"))) GO TO 400
         GO TO 50 
      ENDIF 
* 
*     PROCESS 990 SECDED RECORDS
* 
      IF (RTY .EQ. O"105") THEN 
         MODEL = IFLD(33) 
         CALL SEC990M 
  
*        READ THE NEXT RECORD 
         CALL GNR3
         CALL SETEM3 (1)
         IF ((TWIC .EQ. 0) .OR. 
     .       (RTY .NE. O"104") .OR. (RTY .NE. O"105")) GO TO 400
         GO TO 50 
      ENDIF 
  
  
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * 
  
  400 IF (RCFD .EQ. 2HON) PRINT 410 
  410 FORMAT (//,'    * * * * * USE THE 990 SMAQR PUB NO. 60462111 ', 
     .            'FOR FRU DETERMINATION * * * * *')
      LINE = LINE + 2 
  
      IF ((RCFD .EQ. 2HON) .AND. (IOUERR .EQ. 3HYES)) THEN
        IF ((LINE + 11) .GT. PLF) CALL HEADER 
        PRINT 850 
      ENDIF 
  
      IF (RCFA .EQ. 3HOFF) GO TO 900
      PL(63) = 1
      PL(64) = MODEL
      CALL XOVCAP('ERDIST3',0,0)
      CALL UOVCAP('ERDIST3')
* 
*     PRINT FAILURES BY BANK AND CAGE (MODEL 40) / DISTRIBUTOR (41) 
      HCF(1) = 4
      IF (I64K .GE. 1)  HCF(1) = 14 
      HCF(2) = 0
      DO 500 J = 1, 8 
      IF ((I64K .GE. 1) .AND. (J .GT. 4)) GO TO 510 
        DO 450 I = 1,8
        IF (STOR(I,J) .NE. 0) GO TO 470 
  450   CONTINUE
        GO TO 500 
* 
  470 HDATA(1) = FCSEL (J)
      IF (I64K .GE. 1) HDATA(1) = J - 1 
        IF ((LINE + 8) .GT. PLF) CALL HEADER
        CALL PHEAD14(1) 
      CALL LOAPR(1,STOR(1,J),STOR(2,J),STOR(3,J),STOR(4,J),STOR(5,J), 
     .             STOR(6,J),STOR(7,J),STOR(8,J)) 
        CALL PRINT14 (6,8)
  500 CONTINUE
* 
*     PRINT SUMMARY OF POTENTIAL HARD SECDED ERRORS 
  510 CONTINUE
      IF (STOR(10,1) .EQ. 0) GO TO 800
      HCF(1) = 5
      IF (I64K .GE. 1)  HCF(1) = 13 
      DO 520 K = 10, 68 
      IF (STOR(K,1) .EQ. 0) GO TO 550 
      IF (STOR(K,1) .EQ. 1) GO TO 520 
      CALL LOAPR (1,STOR(K,1),STOR(K,2),STOR(K,3),STOR(K,4),STOR(K,5),
     .              STOR(K,6),STOR(K,7),STOR(K,8))
      IF (IAMHRD .EQ. 0) THEN 
         IF ((LINE + 8) .GT. PLF) CALL HEADER 
         CALL PHEAD14 (1) 
         IAMHRD = 1 
      ENDIF 
      IF (I64K .EQ. 0)  CALL PRINT14 (7,8)
      IF (I64K .GE. 1)  CALL PRINT14 (21,8) 
  520 CONTINUE
* 
*     PRINT SUMMARY OF TRANSIENT ERRORS 
  550 HCF(1) = 6
      IF (I64K .GE. 1)  HCF(1) = 8
      DO 570 K = 10,68
      IF (STOR(K,1) .EQ. 0) GO TO 580 
      IF (STOR(K,1) .GT. 1) GO TO 570 
      CALL LOAPR (1,STOR(K,2),STOR(K,3),STOR(K,4),STOR(K,5),STOR(K,6),
     .              STOR(K,7),STOR(K,8),SP) 
      IF (IAMSFT .EQ. 0) THEN 
         IF ((LINE + 8) .GT. PLF) CALL HEADER 
         CALL PHEAD14 (1) 
         IAMSFT = 1 
      ENDIF 
      IF (I64K .EQ. 0)  CALL PRINT14 (8,7)
      IF (I64K .GE. 1)  CALL PRINT14 (20,7) 
      PL(57) = PL(60) = 0 
  570 CONTINUE
* 
*     PRINT MESSAGE OF ARRAY OVERFLOW 
  580 IF (STOR(68,32) .NE. 0) THEN
      PRINT 582,STOR(68,32) 
  582 FORMAT (//,' ***** SECDED ARRAY OVERFLOWED FOR ANALYSIS SUMMARY ',
     .'REPORT.',/,' ***** ',I6,' POTENTIAL HARD/TRANSIENT ERRORS NOT ', 
     .'INCLUDED.',/,' ***** THE DETAIL REPORT CONTAINS ALL SECDED ',
     .'ERRORS WHICH WERE LOGGED.')
      ENDIF 
  
  
  800 IF (IOUERR .EQ. 3HYES) THEN 
        IF ((LINE + 11) .GT. PLF) CALL HEADER 
        PRINT 850 
      ENDIF 
  850 FORMAT(///,1X,'* * * * * * * * * * * * * * * * * * * * * * * * * '
     .             ,'* * * * * * * * * * * * * *',/,
     .           1X,'*  TO COMPLETELY ANALYZE THIS FAILURE IT IS NECESS'
     .             ,'ARY TO CHECK WHETHER      *',/,
     .           1X,'*  ADDITIONAL FAILURE DATA WAS CONCURRENTLY RECORD'
     .             ,'ED (IDENTICAL FAILURE     *',/,
     .           1X,'*  TIME STAMP) FOR THE IOU OR FOR A PERIPHERAL CON'
     .             ,'TROLLER WHILE DOING A DMA *',/,
     .           1X,'*  TRANSFER OVER A CIO CHANNEL.  IF ONLY A CHANNEL'
     .             ,' PARITY ERROR WAS         *',/,
     .           1X,'*  CONCURRENTLY RECORDED FOR THE IOU A CONTROLLER '
     .             ,'ON THE CHANNEL SPECIFIED  *',/,
     .           1X,'*  COULD HAVE AN ASSCOCIATED ERROR, OTHERWISE, ALL'
     .             ,' CONTROLLERS ON CIO       *',/,
     .           1X,'*  CHANNELS FOR THAT IOU MAY HAVE TO BE CHECKED FO'
     .             ,'R AN ASSOCIATED ERROR.    *',/,
     .           1X,'* * * * * * * * * * * * * * * * * * * * * * * * * '
     .             ,'* * * * * * * * * * * * * *')
  
  900 RETURN
      END 
      SUBROUTINE DLMISC (SKIPGNR) 
* 
**    DESCRIPTION 
*     ----------- 
*     SUBROUTINE DLMISC PROCESSES MISCELLANEOUS MAINFRAME ERRORS AND
*     MESSAGES. 
* 
*CALL HPACOM1 
*CALL HPACOM2 
  
  
      DIMENSION  FAULT (5,93), MSG (3,7), IDFTID(7) 
  
      DATA (FAULT(I,01),I=1,5,1) /
     .Z"401",10HBAD RESPON,10HSE TO OS R,10HEQUEST    ,10H          / 
      DATA (FAULT(I,02),I=1,5,1) /
     .Z"402",10HDFT LOGGED,10H PROCESSOR,10H FAILURE  ,10H          / 
      DATA (FAULT(I,03),I=1,5,1) /
     .Z"403",10HERROR UPDA,10HTING ECR R,10HECORD     ,10H          / 
      DATA (FAULT(I,04),I=1,5,1) /
     .Z"404",10HERRONEOUS ,10HBIT 59 SET,10H AND NO ER,10HR DETECTED/ 
      DATA (FAULT(I,05),I=1,5,1) /
     .Z"405",10HTRANSIENT ,10HBIT 59 CON,10HDITION    ,10H          / 
      DATA (FAULT(I,06),I=1,5,1) /
     .Z"406",10HERROR PROC,10HESSING ECR,10H IN ERROR ,10HCONDITION / 
      DATA (FAULT(I,07),I=1,5,1) /
     .Z"407",10HUNDEFINED ,10HERROR     ,10H          ,10H          / 
      DATA (FAULT(I,08),I=1,5,1) /
     .Z"408",10HUNDEFINED ,10HERROR     ,10H          ,10H          / 
      DATA (FAULT(I,09),I=1,5,1) /
     .Z"409",10HUNDEFINED ,10HERROR     ,10H          ,10H          / 
      DATA (FAULT(I,10),I=1,5,1) /
     .Z"40A",10HUNDEFINED ,10HERROR     ,10H          ,10H          / 
      DATA (FAULT(I,11),I=1,5,1) /
     .Z"40B",10HUNDEFINED ,10HERROR     ,10H          ,10H          / 
      DATA (FAULT(I,12),I=1,5,1) /
     .Z"40C",10HUNDEFINED ,10HERROR     ,10H          ,10H          / 
      DATA (FAULT(I,13),I=1,5,1) /
     .Z"40D",10HUNDEFINED ,10HERROR     ,10H          ,10H          / 
      DATA (FAULT(I,14),I=1,5,1) /
     .Z"40E",10HUNDEFINED ,10HERROR     ,10H          ,10H          / 
      DATA (FAULT(I,15),I=1,5,1) /
     .Z"40F",10HUNDEFINED ,10HERROR     ,10H          ,10H          / 
      DATA (FAULT(I,16),I=1,5,1) /
     .Z"410",10HUNDEFINED ,10HERROR     ,10H          ,10H          / 
      DATA (FAULT(I,17),I=1,5,1) /
     .Z"411",10HUNDEFINED ,10HERROR     ,10H          ,10H          / 
      DATA (FAULT(I,18),I=1,5,1) /
     .Z"412",10HUNDEFINED ,10HERROR     ,10H          ,10H          / 
      DATA (FAULT(I,19),I=1,5,1) /
     .Z"413",10HUNDEFINED ,10HERROR     ,10H          ,10H          / 
      DATA (FAULT(I,20),I=1,5,1) /
     .Z"501",10HBAD PACKET,10H RESPONSE ,10H          ,10H          / 
      DATA (FAULT(I,21),I=1,5,1) /
     .Z"502",10HPACKET SEQ,10HUENCE NUMB,10HER MISMATC,10HH         / 
      DATA (FAULT(I,22),I=1,5,1) /
     .Z"503",10HBAD PACKET,10H PHASE IN ,10HDFT       ,10H          / 
      DATA (FAULT(I,23),I=1,5,1) /
     .Z"504",10HDFT/2AP IN,10HTERFACE ER,10HROR       ,10H          / 
      DATA (FAULT(I,24),I=1,5,1) /
     .Z"505",10HUNDEFINED ,10HERROR     ,10H          ,10H          / 
      DATA (FAULT(I,25),I=1,5,1) /
     .Z"506",10HUNDEFINED ,10HERROR     ,10H          ,10H          / 
      DATA (FAULT(I,26),I=1,5,1) /
     .Z"507",10HUNDEFINED ,10HERROR     ,10H          ,10H          / 
      DATA (FAULT(I,27),I=1,5,1) /
     .Z"508",10HUNDEFINED ,10HERROR     ,10H          ,10H          / 
      DATA (FAULT(I,28),I=1,5,1) /
     .Z"509",10HUNDEFINED ,10HERROR     ,10H          ,10H          / 
      DATA (FAULT(I,29),I=1,5,1) /
     .Z"50A",10HUNDEFINED ,10HERROR     ,10H          ,10H          / 
      DATA (FAULT(I,30),I=1,5,1) /
     .Z"50B",10HUNDEFINED ,10HERROR     ,10H          ,10H          / 
      DATA (FAULT(I,31),I=1,5,1) /
     .Z"50C",10HUNDEFINED ,10HERROR     ,10H          ,10H          / 
      DATA (FAULT(I,32),I=1,5,1) /
     .Z"50D",10HUNDEFINED ,10HERROR     ,10H          ,10H          / 
      DATA (FAULT(I,33),I=1,5,1) /
     .Z"50E",10HUNDEFINED ,10HERROR     ,10H          ,10H          / 
      DATA (FAULT(I,34),I=1,5,1) /
     .Z"50F",10HUNDEFINED ,10HERROR     ,10H          ,10H          / 
      DATA (FAULT(I,35),I=1,5,1) /
     .Z"510",10HUNDEFINED ,10HERROR     ,10H          ,10H          / 
      DATA (FAULT(I,36),I=1,5,1) /
     .Z"511",10HUNDEFINED ,10HERROR     ,10H          ,10H          / 
      DATA (FAULT(I,37),I=1,5,1) /
     .Z"512",10HUNDEFINED ,10HERROR     ,10H          ,10H          / 
      DATA (FAULT(I,38),I=1,5,1) /
     .Z"513",10HUNDEFINED ,10HERROR     ,10H          ,10H          / 
      DATA (FAULT(I,39),I=1,5,1) /
     .Z"601",10HUNDEFINED ,10HERROR     ,10H          ,10H          / 
      DATA (FAULT(I,40),I=1,5,1) /
     .Z"602",10HUNDEFINED ,10HERROR     ,10H          ,10H          / 
      DATA (FAULT(I,41),I=1,5,1) /
     .Z"603",10HCHANNEL 17,10H PARITY ER,10HROR       ,10H          / 
      DATA (FAULT(I,42),I=1,5,1) /
     .Z"604",10HCHANNEL 17,10H INTERLOCK,10H ERROR    ,10H          / 
      DATA (FAULT(I,43),I=1,5,1) /
     .Z"605",10HCHANNEL 17,10H ACTIVE   ,10H          ,10H          / 
      DATA (FAULT(I,44),I=1,5,1) /
     .Z"606",10HUNDEFINED ,10HERROR     ,10H          ,10H          / 
      DATA (FAULT(I,45),I=1,5,1) /
     .Z"607",10HDFT REGIST,10HER NUMBER ,10HNOT IN MRB,10H          / 
      DATA (FAULT(I,46),I=1,5,1) /
     .Z"608",10HDFT MAINFR,10HAME IDENTI,10HFICATION E,10HRROR      / 
      DATA (FAULT(I,47),I=1,5,1) /
     .Z"609",10HDFT PROCES,10HSOR TYPE E,10HRROR      ,10H          / 
      DATA (FAULT(I,48),I=1,5,1) /
     .Z"60A",10HDFT FATAL ,10HSTACK     ,10H          ,10H          / 
      DATA (FAULT(I,49),I=1,5,1) /
     .Z"60B",10HDFT BUILD ,10HREGISTER L,10HIST SIZE E,10HRROR      / 
      DATA (FAULT(I,50),I=1,5,1) /
     .Z"60C",10HPP LOAD ER,10HROR       ,10H          ,10H          / 
      DATA (FAULT(I,51),I=1,5,1) /
     .Z"60D",10H170 MONITO,10HR MCR FAUL,10HT         ,10H          / 
      DATA (FAULT(I,52),I=1,5,1) /
     .Z"60E",10HBAD SYSTEM,10H REQUEST  ,10H          ,10H          / 
      DATA (FAULT(I,53),I=1,5,1) /
     .Z"60F",10HCHANNEL 17,10H INACTIVE ,10H          ,10H          / 
      DATA (FAULT(I,54),I=1,5,1) /
     .Z"610",10HSCI PRESET,10H FAILURE  ,10H          ,10H          / 
      DATA (FAULT(I,55),I=1,5,1) /
     .Z"611",10HSCI LOADED,10H IN PP 0  ,10H          ,10H          / 
      DATA (FAULT(I,56),I=1,5,1) /
     .Z"612",10HDFT ELEMEN,10HT DESCRIPT,10HOR NOT IN ,10HMRT       / 
      DATA (FAULT(I,57),I=1,5,1) /
     .Z"613",10HUNDEFINED ,10HERROR     ,10H          ,10H          / 
      DATA (FAULT(I,58),I=1,5,1) /
     .Z"614",10HDFT VERSIO,10HN INCOMPAT,10HIBILITY   ,10H          / 
      DATA (FAULT(I,59),I=1,5,1) /
     .Z"615",10HSCI TABLE ,10HTOO SMALL ,10H          ,10H          / 
      DATA (FAULT(I,60),I=1,5,1) /
     .Z"616",10HWALL CLOCK,10H CHIP READ,10H ERROR    ,10H          / 
      DATA (FAULT(I,61),I=1,5,1) /
     .Z"617",10HNOS/VE MON,10HITOR NOT R,10HESPONDING ,10H          / 
      DATA (FAULT(I,62),I=1,5,1) /
     .Z"618",10HSCI UNABLE,10H TO LOAD D,10HFT        ,10H          / 
      DATA (FAULT(I,63),I=1,5,1) /
     .Z"619",10HREGISTER L,10HIST ERROR ,10H          ,10H          / 
      DATA (FAULT(I,64),I=1,5,1) /
     .Z"61A",10HDFT IOU FI,10HELD PROCES,10HSING ERROR,10H          / 
      DATA (FAULT(I,65),I=1,5,1) /
     .Z"61B",10HSCI UNABLE,10H TO FIND D,10HFT        ,10H          / 
      DATA (FAULT(I,66),I=1,5,1) /
     .Z"61C",10HDFT SECOND,10HARY BUFFER,10H ERROR    ,10H          / 
      DATA (FAULT(I,67),I=1,5,1) /
     .Z"61D",10HPRIMARY BU,10HFFER ALLOC,10HATION ERRO,10HR         / 
      DATA (FAULT(I,68),I=1,5,1) /
     .Z"61E",10HDFT INTERN,10HAL ERROR  ,10H          ,10H          / 
      DATA (FAULT(I,69),I=1,5,1) /
     .Z"61F",10HDFT CANNOT,10H FIND COUN,10HTER VALUE ,10H          / 
      DATA (FAULT(I,70),I=1,5,1) /
     .Z"620",10HDFT CANNOT,10H FIND THRE,10HSHOLD VALU,10HE         / 
      DATA (FAULT(I,71),I=1,5,1) /
     .Z"621",10HDFT DISK S,10HTATUS LENG,10HTH EXCEEDE,10HD         / 
      DATA (FAULT(I,72),I=1,5,1) /
     .Z"622",10HSCI DETECT,10HED DFT ERR,10HOR WHILE L,10HOADING SSR/ 
      DATA (FAULT(I,73),I=1,5,1) /
     .Z"623",10HSCI DETECT,10HED DFT ERR,10HOR WHILE L,10HOADING VCB/ 
      DATA (FAULT(I,74),I=1,5,1) /
     .Z"624",10HSCI/DFT ER,10HROR WHILE ,10HHALTING 17,10H0 CPU     / 
      DATA (FAULT(I,75),I=1,5,1) /
     .Z"625",10HSCI/DFT ER,10HROR WHILE ,10HSTARTING V,10HIRTUAL CPU/ 
      DATA (FAULT(I,76),I=1,5,1) /
     .Z"626",10HSCI/DFT ER,10HROR WHILE ,10HIDLING SEC,10HONDARY IOU/ 
      DATA (FAULT(I,77),I=1,5,1) /
     .Z"627",10HSCI/DFT ER,10HROR WHILE ,10HHALTING VI,10HRTUAL CPU / 
      DATA (FAULT(I,78),I=1,5,1) /
     .Z"628",10HSCI/DFT ER,10HROR WHILE ,10HSTARTING 1,10H70 CPU    / 
      DATA (FAULT(I,79),I=1,5,1) /
     .Z"629",10HUNDEFINED ,10HERROR     ,10H          ,10H          / 
      DATA (FAULT(I,80),I=1,5,1) /
     .Z"62A",10HUNDEFINED ,10HERROR     ,10H          ,10H          / 
      DATA (FAULT(I,81),I=1,5,1) /
     .Z"62B",10HUNDEFINED ,10HERROR     ,10H          ,10H          / 
      DATA (FAULT(I,82),I=1,5,1) /
     .Z"62C",10HUNDEFINED ,10HERROR     ,10H          ,10H          / 
      DATA (FAULT(I,83),I=1,5,1) /
     .Z"62D",10HUNDEFINED ,10HERROR     ,10H          ,10H          / 
      DATA (FAULT(I,84),I=1,5,1) /
     .Z"62E",10HUNDEFINED ,10HERROR     ,10H          ,10H          / 
      DATA (FAULT(I,85),I=1,5,1) /
     .Z"62F",10HUNDEFINED ,10HERROR     ,10H          ,10H          / 
      DATA (FAULT(I,86),I=1,5,1) /
     .Z"630",10HUNDEFINED ,10HERROR     ,10H          ,10H          / 
      DATA (FAULT(I,87),I=1,5,1) /
     .Z"631",10HUNDEFINED ,10HERROR     ,10H          ,10H          / 
      DATA (FAULT(I,88),I=1,5,1) /
     .Z"632",10HUNDEFINED ,10HERROR     ,10H          ,10H          / 
      DATA (FAULT(I,89),I=1,5,1) /
     .Z"633",10HUNDEFINED ,10HERROR     ,10H          ,10H          / 
      DATA (FAULT(I,90),I=1,5,1) /
     .Z"634",10HUNDEFINED ,10HERROR     ,10H          ,10H          / 
      DATA (FAULT(I,91),I=1,5,1) /
     .Z"635",10HUNDEFINED ,10HERROR     ,10H          ,10H          / 
      DATA (FAULT(I,92),I=1,5,1) /
     .Z"636",10HUNDEFINED ,10HERROR     ,10H          ,10H          / 
      DATA (FAULT(I,93),I=1,5,1) /
     .Z"FFF",10HUNDEFINED ,10HERROR     ,10H          ,10H          / 
  
  
*     ENVIRONMENT WARNING/CLEAR MESSSAGES 
      DATA (MSG(I,1),I=1,3,1)/
     .10HENVIRONMEN,10HT WARNING ,10H          /
      DATA (MSG(I,2),I=1,3,1)/
     .10HLONG POWER,10H WARNING  ,10H          /
      DATA (MSG(I,3),I=1,3,1)/
     .10HSHORT POWE,10HR WARNING ,10H          /
      DATA (MSG(I,4),I=1,3,1)/
     .10HENVIRONMEN,10HT WARNING ,10HCLEAR     /
      DATA (MSG(I,5),I=1,3,1)/
     .10HLONG POWER,10H WARNING  ,10HCLEAR     /
      DATA (MSG(I,6),I=1,3,1)/
     .10HSHORT POWE,10HR WARNING ,10HCLEAR     /
      DATA (MSG(I,7),I=1,3,1)/
     .10HUNRECOGNIZ,10HED MESSAGE,10H          /
  
*     DFT ID CODES
      DATA (IDFTID(I),I=1,7,1) /
     .10HCPU 0     ,10HMEMORY    ,10HIOU 0     ,10HCPU 1     ,
     .10HIOU 1     ,10HUNKNOWN   ,10HDFT/SCI   /
  
      SKIPGNR = 0 
  
      CALL UCHEK14
  
      IF  (MTY .EQ. O"67")   GO TO 500
      IF  (MTY .EQ. O"316")  GO TO 600
      IF  (MTY .EQ. O"4300") GO TO 100
      IF ((MTY .EQ. O"4306") .OR. (MTY .EQ. O"4307")) GO TO 200 
      IF  (MTY .EQ. O"4310") GO TO 300
      IF  (MTY .EQ. O"4311") GO TO 400
      IF ((MTY .EQ. O"4314") .OR. (MTY .EQ. O"4315")) GO TO 700 
      IF (MTY .EQ. O"4320") GO TO 700 
      GO TO 900 
  
*     PROCESS INVALID/INCOMPLETE MAINFRAME ERRORS 
  100 PL(1) = IFLD(20)
      PL(2) = IFLD(40)
      PL(3) = MFID
      PL(4) = IFLD(19)
      VERSION = IFLD(FUN) 
      IF (VERSION .GE. 3) ENCODE (10,110,PL(5)) VERSION 
  110 FORMAT (8X,I2)
      CALL PRINT14 (1, 5) 
      GO TO 900 
  
*     PROCESS PROCESSOR MALFUNCTION/STATE ERRORS
  200 PL(1) = IFLD(20)
      PL(2) = SEFREC(4) 
      PL(3) = SEFREC(5) 
      PL(4) = MFID
      CALL PRINT14 (10,4) 
      GO TO 900 
  
*     PROCESS ENVIRONMENT WARNINGS/CLEARS ERRORS
  300 J = IFLD(40) - O"3400"
      IF (J .GT. 6) J = 7 
      VERSION = IFLD(FUN) 
      IF (VERSION .EQ. 5) GO TO 340 
  
      IF (((VERSION .EQ. 4) .AND. (SAVMSG .EQ. J) .AND. 
     .     (SAVSEQ .EQ. (IFLD(19) .AND. Z"FF"))) .OR. 
     .    ((VERSION .NE. 4) .AND. 
     .     ((SAVTIME .NE. IFLD(20)) .AND. (SAVCODE .EQ. IFLD(40)))))THEN
         IPRINT = 1 
      ELSE
         IPRINT = 0 
      ENDIF 
  
      DO 320 I = 23, 35, 4
      IF ((IFLD(I) .EQ. 0) .AND. (IFLD(I+1) .EQ. 0)) GO TO 320
      IELEM = SHIFT(IFLD(I),-8) .AND. Z"FF" 
      IEC = (IELEM + 1) 
      IF (IELEM .EQ. Z"10") IEC = 4 
      IF (IELEM .EQ. Z"12") IEC = 5 
      IF (IEC .GT. 5) IEC = 6 
      MODEL = IFLD(I) .AND. Z"FF" 
      SERIAL = IFLD(I+1)
      IF (IPRINT .EQ. 0) THEN 
         IPRINT = 1 
         CALL LOAPR (1, IFLD(20),IFLD(40),MSG(1,J),MSG(2,J),MSG(3,J), 
     .                 IDFTID(IEC),MODEL,SERIAL)
         PL(9) = MFID 
         PL(10) = IFLD(19)
         IF (VERSION .GE. 3) ENCODE (10,110,PL(11)) VERSION 
         CALL PRINT14 (11,11) 
         GO TO 320
      ENDIF 
      IF (IPRINT .NE. 0) THEN 
         CALL LOAPR (1,IDFTID(IEC),MODEL,SERIAL,MFID,IFLD(19),SP,SP,SP) 
         IF (VERSION .GE. 3) ENCODE (10,110,PL(6)) VERSION
         CALL PRINT14 (12,6)
         GO TO 320
      ENDIF 
  320 CONTINUE
      SAVTIME = IFLD(20)
      SAVCODE = IFLD(40)
      SAVSEQ = IFLD(19) 
      SAVMSG = J
      GO TO 800 
  
*     DFT5 ENVIRONMENT WARNING/CLEAR ERRORS 
  340 CONTINUE
      IF ((IFLD(23) .EQ. 0) .AND. (IFLD(24). EQ. 0)) GO TO 800
      IELEM = SHIFT(IFLD(23),-8) .AND. Z"FF"
      IEC =(IELEM + 1)
      IF (IELEM .EQ. Z"10") IEC = 4 
      IF (IELEM .EQ. Z"12") IEC = 5 
      IF (IEC .GT. 5) IEC = 6 
      MODEL = IFLD(23) .AND. Z"FF"
      SERIAL = IFLD(24) 
      TAG1 = SHIFT(SEFREC(6),12) .AND. O"7777"
      CALL LOAPR (1, IFLD(20),SEFREC(5),TAG1,MSG(1,J),MSG(2,J), 
     .               MSG(3,J),IDFTID(IEC),MODEL)
      PL(9) = SERIAL
      PL(10) = MFID 
      PL(11) = IFLD(19) 
      ENCODE (10,110,PL(12)) VERSION
      CALL PRINT14 (23,12)
      GO TO 800 
  
*     PROCESS TOP OF THE HOUR MAINFRAME ELEMENT COUNTER BUFFER
  400 PL(1) = IFLD(20)
      VERSION = IFLD(FUN) 
      DO 410 I = 21, 33, 4
      IF (VERSION .GE. 4) THEN
         ID = (IFLD(I) + 1) .AND. Z"F"
      IF (ID .GT. 4) GO TO 410
      IF ((ID. EQ. 4) .AND. (VERSION .EQ. 5)) ID = 7
         IF (IFLD(I) .EQ. Z"10") ID = 4 
         IF (IFLD(I) .EQ. Z"12") ID = 5 
      ELSE
         IF (IFLD(I) .GT. 2) GO TO 410
         IF (IFLD(I) .EQ. 0) ID = 3 
         IF (IFLD(I) .EQ. 1) ID = 2 
         IF (IFLD(I) .EQ. 2) ID = 1 
         IF ((ID .EQ. 3) .AND. (I .EQ. 25))  ID = 5 
         IF ((ID .EQ. 1) .AND. (I .EQ. 33))  ID = 4 
      ENDIF 
      IF ((IFLD(I+1) .EQ. 0) .AND. (IFLD(I+2) .EQ. 0) .AND. 
     .    (IFLD(I+3) .EQ. 0)) GO TO 410 
      CALL LOAPR (2,IDFTID(ID),IFLD(I+1),IFLD(I+2),IFLD(I+3), 
     .              MFID,IFLD(19),SP,SP)
      IF (VERSION .GE. 3) ENCODE (10,110,PL(8)) VERSION 
      CALL PRINT14 (13, 8)
  410 CONTINUE
      GO TO 800 
  
*     PROCESS MICROCODE/EI ENVIRONMENT MESSAGES 
  500 MNAME = AND(SHIFT(IFLD(21),30),O"77 7700 0000 0000") .OR. 
     .        AND(SHIFT(IFLD(22),14),     O"77 7774 0000") .OR. 
     .        AND(SHIFT(IFLD(23),-2),           O"3 7777")
      MY1 = IFLD(25)
      MM1 = AND (SHIFT(IFLD(26),-4),O"7777")
      MD1 = AND (SHIFT(IFLD(26), 8),O"7400") .OR. 
     .      AND (SHIFT(IFLD(27),-8), O"377")
      LOAD = IFLD(28) .AND. 1 
      IF (LOAD .EQ. 1) LOAD = 3H NO 
      IF (LOAD .EQ. 0) LOAD = 3HYES 
      IENAME = IFLD(24) .AND. O"7777" 
      MY2 = IFLD(29)
      MM2 = AND (SHIFT(IFLD(30),-4),O"7777")
      MD2 = AND (SHIFT(IFLD(30), 8),O"7400") .OR. 
     .      AND (SHIFT(IFLD(31),-8), O"377")
      CALL LOAPR (1,IFLD(20),MNAME,MY1,MM1,MD1,LOAD,IENAME,MY2) 
      CALL LOAPR (9,MM2,MD2,MFID,SP,SP,SP,SP,SP)
      CALL PRINT14 (14,11)
      GO TO 900 
  
*     PROCESS PRE-DFT HOURLY PROCESSOR ERROR COUNTS 
  600 TCPU0 = SHIFT(IFLD(22),-4) .AND. O"7777"
      TCPU1A = SHIFT(IFLD(22),8) .AND. O"7400"
      TCPU1B = SHIFT(IFLD(23),-8) .AND. O"377"
      TCPU1 = TCPU1A .OR. TCPU1B
      CALL LOAPR (1,IFLD(20),MFID,TCPU0,TCPU1,SP,SP,SP,SP)
      CALL PRINT14 (15,4) 
      GO TO 900 
  
*     DFT/SCI MESSAGES
  700 CONTINUE
      VERSION = IFLD(FUN) 
      SYMPTOM = IFLD(45)
      LENGTH = SHIFT(IFLD(24), 4) .OR. IFLD(37) 
      DO 710 I = 1, 93
      IF (SYMPTOM .EQ. FAULT(1, I)) GO TO 720 
  710 CONTINUE
      I = 93
  720 TAG1 = SHIFT(IFLD(29),44) .OR. SHIFT(IFLD(30),28) .OR.
     .       SHIFT(IFLD(31),12) .OR. IFLD(32) 
      TAG2 = SHIFT(IFLD(33),-4) .AND. O"7777" 
      CALL LOAPR (1, IFLD(20),TAG1,TAG2,FAULT(2,I),FAULT(3,I),
     .               FAULT(4,I),FAULT(5,I),MFID)
      PL(9) = IFLD(19)
      ENCODE (10,110,PL(10)) VERSION
      IF (SYMPTOM .EQ. Z"22F") THEN 
         ICOUNT = SHIFT(NFLD(24),4) .OR. NFLD(37) 
         PL(4) = ICOUNT 
         PL(5) = PL(6) = PL(7) = 10H
         CALL PRINT14 (27, 10)
         GO TO 800
      ENDIF 
      CALL PRINT14 (24,10)
  
      IF (LENGTH .LE. 4) GOTO 800 
  
      DO 725 I = 5, LENGTH, 4 
         CALL GNR3
         CALL SETEM3(1) 
         IF (IFLD(18) .NE. R" CONTINU") GO TO 750 
         PL(9) = 10H
         CALL LOAPR (1, IFLD(21),IFLD(22),IFLD(23),IFLD(24),IFLD(37), 
     .               SP,SP,SP)
         IF (LENGTH .GT. I)  THEN 
           ENCODE (10,730,PL(6)) IFLD(25) 
           ENCODE (10,730,PL(7)) IFLD(26) 
           ENCODE (10,730,PL(8)) IFLD(27) 
           ENCODE (10,730,PL(9)) SHIFT(IFLD(28),4) .OR. IFLD(39)
         ENDIF
         IF (I .EQ. 5) THEN 
            CALL PRINT14 (25, 9)
         ELSE 
            CALL PRINT14 (26, 9)
         ENDIF
         IF (LENGTH .GT. (I + 1)) THEN
            PL(9) = 10H 
            CALL LOAPR (1, IFLD(29),IFLD(30),IFLD(31),
     .                  IFLD(32),IFLD(41),SP,SP,SP) 
            IF (LENGTH .GT. (I + 2)) THEN 
               ENCODE (10,730,PL(6)) IFLD(33) 
               ENCODE (10,730,PL(7)) IFLD(34) 
               ENCODE (10,730,PL(8)) IFLD(35) 
               ENCODE (10,730,PL(9)) SHIFT(IFLD(36),4) .OR. IFLD(43)
            ENDIF 
            CALL PRINT14 (26, 9)
         ENDIF
  725 CONTINUE
      GO TO 800 
  
  730 FORMAT (6X,Z4)
  750 CONTINUE
      SKIPGNR = 1 
  
*     REPORT WHEN DFT SUPPORTIVE STATUS BUFFER DATE/TIME IS INVALID 
  800 IF ((VERSION .GE. 4) .AND. ((IFLD(19) .AND. O"4000") .NE. 0)) THEN
         PRINT 810
  810    FORMAT (12X,'DFT-REPORTED WALL CLOCK TIME INTEGRITY HAS BEEN ',
     .               'LOST')
         LINE = LINE + 1
      ENDIF 
  
  900 CONTINUE
      RETURN
      END 
      SUBROUTINE DLEPM (SKIPGNR)
* 
**        DESCRIPTION 
*         ----------- 
*           THIS ROUTINE DEVELOPS THE DETAIL REPORT FOR EPM WARNING AND 
*           EPM MONITOR.  SEF RECORDS ARE READ IN ONE AT A TIME BECAUSE 
*           THE MESSAGES ARE OF VARIABLE LENGTH.
* 
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * 
*CALL,HPACOM1 
*CALL,HPACOM2 
  
  
      DIMENSION  INTRRPT (5, 4),  IBOARD (5, 16),  IEPM (6, 75) 
  
      DATA (INTRRPT (I, 1), I=1,5,1) /
     .10HUUU   NUMB,10HER OF WATC,10HH DOG TIME,10HR INTERRUP,
     .10HTS        /
      DATA (INTRRPT (I, 2), I=1,5,1) /
     .10HCCC   NUMB,10HER OF BUS ,10HERROR INTE,10HRRUPTS    ,
     .10H          /
      DATA (INTRRPT (I, 3), I=1,5,1) /
     .10HFFF   NUMB,10HER OF REAL,10H TIME CLOC,10HK ERROR IN,
     .10HTERRUPTS  /
      DATA (INTRRPT (I, 4), I=1,5,1) /
     .10HLLL   NUMB,10HER OF UNEX,10HPECTED INT,10HERRUPTS   ,
     .10H          /
  
      DATA (IBOARD (I, 01), I=1,5,1) /
     .10HEEE   ROM ,10HCHECK ERRO,10HR         ,10H          ,
     .10H          /
      DATA (IBOARD (I, 02), I=1,5,1) /
     .10HBBB   RAM ,10HCHECK ERRO,10HR         ,10H          ,
     .10H          /
      DATA (IBOARD (I, 03), I=1,5,1) /
     .10HADC1  NO R,10HEADY DIGIT,10H IN ADC   ,10H          ,
     .10H          /
      DATA (IBOARD (I, 04), I=1,5,1) /
     .10HADC2  NO E,10HND OF CONV,10HERSION IN ,10HADC       ,
     .10H          /
      DATA (IBOARD (I, 05), I=1,5,1) /
     .10HADC3  REFE,10HRENCE VOLT,10HAGE ERROR ,10H          ,
     .10H          /
      DATA (IBOARD (I, 06), I=1,5,1) /
     .10HADC4  NOT ,10HALL DIGITS,10H READY ERR,10HOR        ,
     .10H          /
      DATA (IBOARD (I, 07), I=1,5,1) /
     .10HADC5  MULT,10HIPLE DIGIT,10HS READY ER,10HROR       ,
     .10H          /
      DATA (IBOARD (I, 08), I=1,5,1) /
     .10HUE6   UART,10H NO ENABLE,10H TRANSMISS,10HION ERROR ,
     .10H          /
      DATA (IBOARD (I, 09), I=1,5,1) /
     .10HUE7   UART,10H CHECKSUM ,10HERROR     ,10H          ,
     .10H          /
      DATA (IBOARD (I, 10), I=1,5,1) /
     .10HUE8   UART,10H DIAGNOSTI,10HC PACKET L,10HENGTH ERRO,
     .10HR         /
      DATA (IBOARD (I, 11), I=1,5,1) /
     .10HUE1   UART,10H DIAGNOSTI,10HC ERROR   ,10H          ,
     .10H          /
      DATA (IBOARD (I, 12), I=1,5,1) /
     .10HUE3   UART,10H PARITY ER,10HROR       ,10H          ,
     .10H          /
      DATA (IBOARD (I, 13), I=1,5,1) /
     .10HUE4   UART,10H FRAME ERR,10HOR        ,10H          ,
     .10H          /
      DATA (IBOARD (I, 14), I=1,5,1) /
     .10HUE2   UART,10H OVERRUN E,10HRROR      ,10H          ,
     .10H          /
      DATA (IBOARD (I, 15), I=1,5,1) /
     .10HUE5   UART,10H BREAK INT,10HERRUPT ERR,10HOR        ,
     .10H          /
      DATA (IBOARD (I, 16), I=1,5,1) /
     .10HUE9   UART,10H UNDEFINED,10H STATUS ER,10HROR       ,
     .10H          /
  
      DATA (IEPM (I, 01), I=1,6,1) /
     .Z"00",10H00 LONG  I,10HNVALID TEM,10HP -2.0 VOL,10HT PWR SUP ,
     .10H          /
      DATA (IEPM (I, 02), I=1,6,1) /
     .Z"03",10H03 LONG  I,10HNVALID TEM,10HP -4.5 VOL,10HT PWR SUP ,
     .10H          /
      DATA (IEPM (I, 03), I=1,6,1) /
     .Z"06",10H06 LONG  I,10HNVALID TEM,10HP CPU 0 SH,10HUNT       ,
     .10H          /
      DATA (IEPM (I, 04), I=1,6,1) /
     .Z"09",10H09 LONG  I,10HNVALID TEM,10HP CPU 1 SH,10HUNT       ,
     .10H          /
      DATA (IEPM (I, 05), I=1,6,1) /
     .Z"0C",10H0C SHORT I,10HNVALID TEM,10HP CPU 0 OU,10HTLET AIR  ,
     .10H          /
      DATA (IEPM (I, 06), I=1,6,1) /
     .Z"0F",10H0F SHORT I,10HNVALID TEM,10HP CPU 1 OU,10HTLET AIR  ,
     .10H          /
      DATA (IEPM (I, 07), I=1,6,1) /
     .Z"12",10H12 SHORT I,10HNVALID TEM,10HP MEM 1 OU,10HTLET AIR  ,
     .10H          /
      DATA (IEPM (I, 08), I=1,6,1) /
     .Z"15",10H15 LONG  H,10HI TEMP -2.,10H0 VOLT PWR,10H SUP HT SI,
     .10HNK        /
      DATA (IEPM (I, 09), I=1,6,1) /
     .Z"18",10H18 SHORT I,10HNVALID TEM,10HP MEM 2 OU,10HTLET AIR  ,
     .10H          /
      DATA (IEPM (I, 10), I=1,6,1) /
     .Z"1B",10H1B LONG  I,10HNVALID TEM,10HP CPU AMBI,10HENT AIR   ,
     .10H          /
      DATA (IEPM (I, 11), I=1,6,1) /
     .Z"1E",10H1E LONG  I,10HNVALID TEM,10HP MEM AMBI,10HTENT AIR  ,
     .10H          /
      DATA (IEPM (I, 12), I=1,6,1) /
     .Z"21",10H21 SHORT I,10HNVALID TEM,10HP REV AIRF,10HLOW       ,
     .10H          /
      DATA (IEPM (I, 13), I=1,6,1) /
     .Z"27",10H27 LONG  H,10HI TEMP -4.,10H5 VOLT PWR,10H SUP HT SI,
     .10HNK        /
      DATA (IEPM (I, 14), I=1,6,1) /
     .Z"2A",10H2A EARLY H,10HI TEMP CPU,10H 0 SHUNT  ,10H          ,
     .10H          /
      DATA (IEPM (I, 15), I=1,6,1) /
     .Z"2D",10H2D LONG  H,10HI TEMP CPU,10H 0 SHUNT  ,10H          ,
     .10H          /
      DATA (IEPM (I, 16), I=1,6,1) /
     .Z"30",10H30 SHORT H,10HI TEMP CPU,10H 0 SHUNT  ,10H          ,
     .10H          /
      DATA (IEPM (I, 17), I=1,6,1) /
     .Z"33",10H33 EARLY H,10HI TEMP CPU,10H 1 SHUNT  ,10H          ,
     .10H          /
      DATA (IEPM (I, 18), I=1,6,1) /
     .Z"36",10H36 LONG  H,10HI TEMP CPU,10H 1 SHUNT  ,10H          ,
     .10H          /
      DATA (IEPM (I, 19), I=1,6,1) /
     .Z"39",10H39 SHORT H,10HI TEMP CPU,10H 1 SHUNT  ,10H          ,
     .10H          /
      DATA (IEPM (I, 20), I=1,6,1) /
     .Z"3C",10H3C EARLY H,10HI AMBIENT ,10HAVG AIR TE,10HMP        ,
     .10H          /
      DATA (IEPM (I, 21), I=1,6,1) /
     .Z"3F",10H3F LONG  H,10HI AMBIENT ,10HAVG AIR TE,10HMP        ,
     .10H          /
      DATA (IEPM (I, 22), I=1,6,1) /
     .Z"42",10H42 SHORT C,10HPU 0 OUTLE,10HT TEMP > A,10HMBIENT + 3,
     .10H2 F       /
      DATA (IEPM (I, 23), I=1,6,1) /
     .Z"45",10H45 SHORT C,10HPU 1 OUTLE,10HT TEMP > A,10HMBIENT + 3,
     .10H2 F       /
      DATA (IEPM (I, 24), I=1,6,1) /
     .Z"48",10H48 SHORT M,10HEM 1 OUTLE,10HT TEMP > A,10HMBIENT + 3,
     .10H2 F       /
      DATA (IEPM (I, 25), I=1,6,1) /
     .Z"4B",10H4B SHORT M,10HEM 2 OUTLE,10HT TEMP > A,10HMBIENT + 3,
     .10H2 F       /
      DATA (IEPM (I, 26), I=1,6,1) /
     .Z"4E",10H4E SHORT R,10HEV MEM AIR,10H TEMP > AM,10HBIENT + 13,
     .10H F        /
      DATA (IEPM (I, 27), I=1,6,1) /
     .Z"51",10H51 NONE  C,10HPU 0 -2.0 ,10HVOLT PWR S,10HUP OVER-CU,
     .10HR         /
      DATA (IEPM (I, 28), I=1,6,1) /
     .Z"54",10H54 NONE  C,10HPU 1 -2.0 ,10HVOLT PWR S,10HUP OVER-CU,
     .10HR         /
      DATA (IEPM (I, 29), I=1,6,1) /
     .Z"57",10H57 NONE  M,10HEM -2.0 VO,10HLT PWR SUP,10H OVER-CUR ,
     .10H          /
      DATA (IEPM (I, 30), I=1,6,1) /
     .Z"5A",10H5A NONE  C,10HPU 0 -4.5 ,10HVOLT PWR S,10HUP OVER-CU,
     .10HR         /
      DATA (IEPM (I, 31), I=1,6,1) /
     .Z"5D",10H5D NONE  C,10HPU 1 -4.5 ,10HVOLT PWR S,10HUP OVER-CU,
     .10HR         /
      DATA (IEPM (I, 32), I=1,6,1) /
     .Z"60",10H60 NONE  M,10HEM -4.5 VO,10HLT PWR SUP,10H OVER-CUR ,
     .10H          /
      DATA (IEPM (I, 33), I=1,6,1) /
     .Z"63",10H63 NONE  M,10HEM +5.0 VO,10HLT PWR SUP,10H OVER-CUR ,
     .10H          /
      DATA (IEPM (I, 34), I=1,6,1) /
     .Z"66",10H66 NONE  C,10HPU 0 SIB C,10HAGE NOT FU,10HLLY SEATED,
     .10H          /
      DATA (IEPM (I, 35), I=1,6,1) /
     .Z"69",10H69 NONE  C,10HPU 1 SIB C,10HAGE NOT FU,10HLLY SEATED,
     .10H          /
      DATA (IEPM (I, 36), I=1,6,1) /
     .Z"6C",10H6C NONE  -,10H2.0 VOLT P,10HWR SUP OVE,10HR-VOLT    ,
     .10H          /
      DATA (IEPM (I, 37), I=1,6,1) /
     .Z"6F",10H6F NONE  -,10H4.5 VOLT P,10HWR SUP OVE,10HR-VOLT    ,
     .10H          /
      DATA (IEPM (I, 38), I=1,6,1) /
     .Z"72",10H72 NONE  +,10H5.0 VOLT P,10HWR SUP OVE,10HR-VOLT    ,
     .10H          /
      DATA (IEPM (I, 39), I=1,6,1) /
     .Z"75",10H75 SHORT H,10HI TEMP CPU,10H BLOWER MO,10HTOR       ,
     .10H          /
      DATA (IEPM (I, 40), I=1,6,1) /
     .Z"78",10H78 SHORT H,10HI TEMP MEM,10H BLOWER MO,10HTOR       ,
     .10H          /
      DATA (IEPM (I, 41), I=1,6,1) /
     .Z"7B",10H7B SHORT H,10HI TEMP PWR,10H SUP BLOWE,10HR MOTOR   ,
     .10H          /
      DATA (IEPM (I, 42), I=1,6,1) /
     .Z"7E",10H7E NONE  B,10HREAKER(S) ,10HOFF IN PWR,10H CAB      ,
     .10H          /
      DATA (IEPM (I, 43), I=1,6,1) /
     .Z"81",10H81 SHORT M,10HG1 POWER I,10HS OFF     ,10H          ,
     .10H          /
      DATA (IEPM (I, 44), I=1,6,1) /
     .Z"84",10H84 SHORT M,10HG2 POWER I,10HS OFF     ,10H          ,
     .10H          /
      DATA (IEPM (I, 45), I=1,6,1) /
     .Z"87",10H87 NONE  C,10HTRL WARN C,10HABLE (+24V,10H CHAIN) DI,
     .10HSCONNECTED/
      DATA (IEPM (I, 46), I=1,6,1) /
     .Z"8A",10H8A LONG  P,10HIP3 CPU/CM,10H/PWR CAB  ,10H          ,
     .10H          /
      DATA (IEPM (I, 47), I=1,6,1) /
     .Z"8D",10H8D SHORT P,10HIP3 CPU/CM,10H/PWR CAB  ,10H          ,
     .10H          /
      DATA (IEPM (I, 48), I=1,6,1) /
     .Z"90",10H90 NONE  B,10HREAKER(S) ,10HOFF IN PRI,10HMARY IOU C,
     .10HAB        /
      DATA (IEPM (I, 49), I=1,6,1) /
     .Z"93",10H93 NONE  B,10HREAKER(S) ,10HOFF IN EXP,10H IOU CAB  ,
     .10H          /
      DATA (IEPM (I, 50), I=1,6,1) /
     .Z"96",10H96 NONE  B,10HREAKER(S) ,10HOFF IN STD,10HALN IOU CA,
     .10HB         /
      DATA (IEPM (I, 51), I=1,6,1) /
     .Z"99",10H99 NONE  B,10HREAKER(S) ,10HOFF IN STD,10HALN EXP IO,
     .10HU CAB     /
      DATA (IEPM (I, 52), I=1,6,1) /
     .Z"9C",10H9C LONG  H,10HI TEMP PRI,10HMARY IOU P,10HWR SUP HT ,
     .10HSINK      /
      DATA (IEPM (I, 53), I=1,6,1) /
     .Z"9F",10H9F LONG  L,10HOGIC BLOWE,10HR FAILURE ,10HPRIMARY IO,
     .10HU         /
      DATA (IEPM (I, 54), I=1,6,1) /
     .Z"A2",10HA2 NONE  H,10HI TEMP BK ,10HPWR SUP HT,10H SINK PRIM,
     .10HARY IOU   /
      DATA (IEPM (I, 55), I=1,6,1) /
     .Z"A5",10HA5 NONE  P,10HWR SUP #2 ,10HOVER-VOLT/,10HCUR PRIMAR,
     .10HY IOU     /
      DATA (IEPM (I, 56), I=1,6,1) /
     .Z"A8",10HA8 NONE  P,10HWR SUP #1 ,10HOVER-VOLT/,10HCUR PRIMAR,
     .10HY IOU     /
      DATA (IEPM (I, 57), I=1,6,1) /
     .Z"AB",10HAB NONE  P,10HWR SUP #3 ,10HOVER-VOLT/,10HCUR PRIMAR,
     .10HY IOU     /
      DATA (IEPM (I, 58), I=1,6,1) /
     .Z"AE",10HAE LONG  H,10HI TEMP PWR,10H SUP HT SI,10HNK EXP IOU,
     .10H          /
      DATA (IEPM (I, 59), I=1,6,1) /
     .Z"B1",10HB1 LONG  L,10HOGIC BLOWE,10HR FAILURE ,10HIN EXP IOU,
     .10H          /
      DATA (IEPM (I, 60), I=1,6,1) /
     .Z"B4",10HB4 NONE  H,10HI TEMP BK ,10HPWR SUP HT,10H SINK EXP ,
     .10HIOU       /
      DATA (IEPM (I, 61), I=1,6,1) /
     .Z"B7",10HB7 NONE  P,10HWR SUP #2 ,10HOVER-VOLT/,10HCUR EXP IO,
     .10HU         /
      DATA (IEPM (I, 62), I=1,6,1) /
     .Z"BA",10HBA NONE  P,10HWR SUP #1 ,10HOVER-VOLT/,10HCUR EXP IO,
     .10HU         /
      DATA (IEPM (I, 63), I=1,6,1) /
     .Z"BD",10HBD NONE  P,10HWR SUP #3 ,10HOVER-VOLT/,10HCUR EXP IO,
     .10HU         /
      DATA (IEPM (I, 64), I=1,6,1) /
     .Z"C0",10HC0 LONG  H,10HI TEMP PWR,10H SUP HT SI,10HNK STDALN ,
     .10HIOU       /
      DATA (IEPM (I, 65), I=1,6,1) /
     .Z"C3",10HC3 LONG  L,10HOGIC BLOWE,10HR FAILURE ,10HIN STDALN ,
     .10HIOU       /
      DATA (IEPM (I, 66), I=1,6,1) /
     .Z"C6",10HC6 NONE  H,10HI TEMP BK ,10HPWR SUP HT,10H SINK STDA,
     .10HLN IOU    /
      DATA (IEPM (I, 67), I=1,6,1) /
     .Z"C9",10HC9 NONE  P,10HWR SUP #2 ,10HOVER-VOLT/,10HCUR STDALN,
     .10H IOU      /
      DATA (IEPM (I, 68), I=1,6,1) /
     .Z"CC",10HCC NONE  P,10HWR SUP #1 ,10HOVER-VOLT/,10HCUR STDALN,
     .10H IOU      /
      DATA (IEPM (I, 69), I=1,6,1) /
     .Z"CF",10HCF NONE  P,10HWR SUP #3 ,10HOVER-VOLT/,10HCUR STDALN,
     .10H IOU      /
      DATA (IEPM (I, 70), I=1,6,1) /
     .Z"D2",10HD2 LONG  H,10HI TEMP PWR,10H SUP HT SI,10HNK STDALN ,
     .10HEXP IOU   /
      DATA (IEPM (I, 71), I=1,6,1) /
     .Z"D5",10HD5 LONG  L,10HOGIC BLOWE,10HR FAILURE ,10HIN STDALN ,
     .10HEXP IOU   /
      DATA (IEPM (I, 72), I=1,6,1) /
     .Z"D8",10HD8 NONE  H,10HI TEMP BK ,10HPWR SUP HT,10H SINK STDA,
     .10HLN EXP IOU/
      DATA (IEPM (I, 73), I=1,6,1) /
     .Z"DB",10HDB NONE  P,10HWR SUP #2 ,10HOVER-VOLT/,10HCUR STDALN,
     .10H EXP IOU  /
      DATA (IEPM (I, 74), I=1,6,1) /
     .Z"DE",10HDE NONE  P,10HWR SUP #1 ,10HOVER-VOLT/,10HCUR STDALN,
     .10H EXP IOU  /
      DATA (IEPM (I, 75), I=1,6,1) /
     .Z"E1",10HE1 NONE  P,10HWR SUP #3 ,10HOVER-VOLT/,10HCUR STDALN,
     .10H EXP IOU  /
  
      SKIPGNR = 0 
  
      CALL UCHEK14
  
      VERSION = IFLD(FUN) 
      LENGTH = SHIFT(IFLD(28),4) .OR. (SHIFT(IFLD(50),4) .AND. Z"F")
      SYMPTOM = IFLD(50) .AND. Z"FFF" 
  
      CALL GNR3 
      CALL SETEM3(1)
      IF (IFLD(18) .NE. R" CONTINU") GO TO 750
  
*        LAST RESET DATE/TIME 
  
      IFLD(36) = SHIFT(IFLD(36), 4) .OR. ((SHIFT(IFLD(50), 16) .AND.
     .                 Z"4")) 
      IF ((IFLD(37) .NE. SAVE37) .OR. (IFLD(36) .NE. SAVE36) .OR. 
     .   (IFLD(35) .NE. SAVE35) .OR. (IFLD(34) .NE. SAVE34) .OR.
     .   (IFLD(33) .NE. SAVE33) .OR. (IFLD(32) .NE. SAVE32) .OR.
     .   (MFID .NE. SAVEMF) .OR. (VERSION .NE. SAVEVER))  THEN
         CALL LOAPR (1, IFLD(32), IFLD(33), IFLD(34), IFLD(35), 
     .                  IFLD(36), IFLD(37), MFID, SP) 
         ENCODE (10, 840, PL(8)) VERSION
         CALL PRINT14 (28, 8) 
         SAVE32 = IFLD(32)
         SAVE33 = IFLD(33)
         SAVE34 = IFLD(34)
         SAVE35 = IFLD(35)
         SAVE36 = IFLD(36)
         SAVE37 = IFLD(37)
         SAVEMF = MFID
         SAVEVER = VERSION
      ENDIF 
  
      IF (SYMPTOM .EQ. Z"408") GOTO 400 
  
*        EPM REVISION DATE AND NUMBER 
  
      IF ((IFLD(42) .NE. SAVE42) .OR. (IFLD(41) .NE. SAVE41) .OR. 
     .   (IFLD(40) .NE. SAVE40) .OR. (IFLD(39) .NE. SAVE39))  THEN
         CALL LOAPR (1, IFLD(39), IFLD(40), IFLD(41), IFLD(42), SP, SP, 
     .                  SP, SP) 
         CALL PRINT14 (29, 4) 
         SAVE39 = IFLD(39)
         SAVE40 = IFLD(40)
         SAVE41 = IFLD(41)
         SAVE42 = IFLD(42)
      ENDIF 
  
*        TASK 16 - EXCEPTION INTERRUPT COUNTERS 
  
      CALL GNR3 
      CALL SETEM3(1)
      IF (IFLD(18) .NE. R" CONTINU") GO TO 750
      IFLD(36) = SHIFT(IFLD(36), 4) .OR. ((SHIFT(IFLD(50), 16) .AND.
     .                 Z"4")) 
      FIRST = 3HYES 
      DO 100 I = 1, 4 
      IF (IFLD(I+32) .GT. 0)  THEN
         IF (FIRST .EQ. 3HYES)  THEN
            CALL LOAPR (1, IFLD(20), INTRRPT(1,I), INTRRPT(2,I),
     .                  INTRRPT(3,I), INTRRPT(4,I), INTRRPT(5,I), 
     .                  IFLD(I+32), IFLD(19)) 
            FIRST = 2HNO
         ELSE 
            CALL LOAPR (1, SP, INTRRPT(1,I), INTRRPT(2,I),
     .                  INTRRPT(3,I), INTRRPT(4,I), INTRRPT(5,I), 
     .                  IFLD(I+32), IFLD(19)) 
         ENDIF
         CALL PRINT14 (30, 8) 
      ENDIF 
  100 CONTINUE
  
*        TASK 17 - EPM BOARD ERRORS 
  
      CALL GNR3 
      CALL SETEM3(1)
      IF (IFLD(18) .NE. R" CONTINU") GO TO 750
      IFLD(28) = SHIFT (IFLD(28), 4) .OR. (SHIFT (IFLD(50), 4) .AND.
     .                       Z"F")
      IFLD(36) = SHIFT (IFLD(36), 4) .OR. (SHIFT (IFLD(50), 16) .AND. 
     .                       Z"F")
      IFLD(44) = SHIFT (IFLD(44), 4) .OR. (SHIFT (IFLD(50), 28) .AND. 
     .                       Z"F")
      IFLD(52) = (SHIFT (IFLD(49), 4) .AND. Z"F0") .OR. 
     .                       (SHIFT (IFLD(50), 40) .AND. Z"F")
      IFLD(51) = SHIFT (IFLD(49), -4) .AND. Z"FF" 
      IFLD(50) = SHIFT (IFLD(49), -12) .AND. Z"FF"
      IFLD(49) = SHIFT (IFLD(49), -20) .AND. Z"FF"
  
      DO 200 I = 24, 52, 2
      IF (IFLD(I) .NE. 0) THEN
         J = I/2  - 11
         IF (FIRST .EQ. 3HYES)  THEN
            CALL LOAPR (1, IFLD(20), IBOARD(1,J), IBOARD(2,J),
     .                     IBOARD(3,J), IBOARD(4,J), IBOARD(5,J), 
     .                     IFLD(I), IFLD(19)) 
            FIRST = 2HNO
         ELSE 
            CALL LOAPR (1, SP, IBOARD(1,J), IBOARD(2,J),
     .                     IBOARD(3,J), IBOARD(4,J), IBOARD(5,J), 
     .                     IFLD(I), IFLD(19)) 
         ENDIF
         CALL PRINT14 (30, 8) 
      ENDIF 
  200 CONTINUE
  
      CALL GNR3 
      CALL SETEM3(1)
      IF (IFLD(18) .NE. R" CONTINU") GO TO 750
      IF (IFLD(22) .NE. 0) THEN 
         IF (FIRST .EQ. 3HYES)  THEN
            CALL LOAPR (1, IFLD(20), IBOARD(1,16), IBOARD(2,16),
     .                     IBOARD(3,16), IBOARD(4,16), IBOARD(5,16),
     .                     IFLD(22), IFLD(19))
            FIRST = 2HNO
         ELSE 
            CALL LOAPR (1, SP, IBOARD(1,16), IBOARD(2,16),
     .                     IBOARD(3,16), IBOARD(4,16), IBOARD(5,16),
     .                     IFLD(22), IFLD(19))
         ENDIF
         CALL PRINT14 (30, 8) 
      ENDIF 
      GO TO 800 
  
*        EPM WARNING - TASK 9 
  400 CONTINUE
      SIZE = SHIFT (IFLD(21),8) .OR. IFLD(22) 
      NUMBUFF = ((LENGTH - 4) * 8 - 18) / 10
      NUMBUF1 = (SIZE - 18) / 10
      IF (NUMBUF1 .LT. NUMBUFF) NUMBUFF = NUMBUF1 
      DO 700 J = 1, NUMBUFF 
      I = MOD (J, 16) 
      IF (I .EQ. 0) GO TO 560 
      GO TO (410, 420, 430, 440, 450, 460, 470, 480, 490, 500, 510, 
     .       520, 530, 540, 550) I
  410 IFLD(44) = SHIFT (IFLD(44), 4) .OR. (SHIFT (IFLD(50), 28) .AND. 
     .                       Z"F")
      IFLD(52) = (SHIFT (IFLD(49), 4) .AND. Z"F0") .OR. 
     .                       (SHIFT (IFLD(50), 40) .AND. Z"F")
      IFLD(51) = SHIFT (IFLD(49), -4) .AND. Z"FF" 
      IFLD(50) = SHIFT (IFLD(49), -12) .AND. Z"FF"
      IFLD(49) = SHIFT (IFLD(49), -20) .AND. Z"FF"
      ICODE = IFLD(47)
      CALL LOAPR (1, IFLD(40), IFLD(41), IFLD(42), IFLD(43), IFLD(44),
     .            IFLD(45), IFLD(39), SP) 
      GO TO 600 
  
  420 PL(1) = IFLD(50)
      PL(2) = IFLD(51)
      PL(3) = IFLD(52)
      PL(7) = IFLD(49)
      CALL GNR3 
      CALL SETEM3(1)
      IF (IFLD(18) .NE. R" CONTINU") GO TO 750
      IFLD(28) = SHIFT (IFLD(28), 4) .OR. (SHIFT (IFLD(50), 4) .AND.
     .                       Z"F")
      IFLD(36) = SHIFT (IFLD(36), 4) .OR. (SHIFT (IFLD(50), 16) .AND. 
     .                       Z"F")
      IFLD(44) = SHIFT (IFLD(44), 4) .OR. (SHIFT (IFLD(50), 28) .AND. 
     .                       Z"F")
      IFLD(52) = (SHIFT (IFLD(49), 4) .AND. Z"F0") .OR. 
     .                       (SHIFT (IFLD(50), 40) .AND. Z"F")
      IFLD(51) = SHIFT (IFLD(49), -4) .AND. Z"FF" 
      IFLD(50) = SHIFT (IFLD(49), -12) .AND. Z"FF"
      IFLD(49) = SHIFT (IFLD(49), -20) .AND. Z"FF"
      ICODE = IFLD(25)
      PL(4) = IFLD(21)
      PL(5) = IFLD(22)
      PL(6) = IFLD(23)
      GO TO 600 
  
  430 ICODE = IFLD(35)
      CALL LOAPR (1, IFLD(28), IFLD(29), IFLD(30), IFLD(31), IFLD(32),
     .               IFLD(33), IFLD(27), SP)
      GO TO 600 
  
  440 ICODE = IFLD(45)
      CALL LOAPR (1, IFLD(38), IFLD(39), IFLD(40), IFLD(41), IFLD(42),
     .               IFLD(43), IFLD(37), SP)
      GO TO 600 
  
  450 PL(1) = IFLD(48)
      PL(2) = IFLD(49)
      PL(3) = IFLD(50)
      PL(4) = IFLD(51)
      PL(5) = IFLD(52)
      PL(7) = IFLD(47)
      CALL GNR3 
      CALL SETEM3(1)
      IF (IFLD(18) .NE. R" CONTINU") GO TO 750
      IFLD(28) = SHIFT (IFLD(28), 4) .OR. (SHIFT (IFLD(50), 4) .AND.
     .                       Z"F")
      IFLD(36) = SHIFT (IFLD(36), 4) .OR. (SHIFT (IFLD(50), 16) .AND. 
     .                       Z"F")
      IFLD(44) = SHIFT (IFLD(44), 4) .OR. (SHIFT (IFLD(50), 28) .AND. 
     .                       Z"F")
      IFLD(52) = (SHIFT (IFLD(49), 4) .AND. Z"F0") .OR. 
     .                       (SHIFT (IFLD(50), 40) .AND. Z"F")
      IFLD(51) = SHIFT (IFLD(49), -4) .AND. Z"FF" 
      IFLD(50) = SHIFT (IFLD(49), -12) .AND. Z"FF"
      IFLD(49) = SHIFT (IFLD(49), -20) .AND. Z"FF"
      ICODE = IFLD(23)
      PL(6) = IFLD(21)
      GO TO 600 
  
  460 ICODE = IFLD(33)
      CALL LOAPR (1, IFLD(26), IFLD(27), IFLD(28), IFLD(29), IFLD(30),
     .               IFLD(31), IFLD(25), SP)
      GO TO 600 
  
  470 ICODE = IFLD(43)
      CALL LOAPR (1, IFLD(36), IFLD(37), IFLD(38), IFLD(39), IFLD(40),
     .               IFLD(41), IFLD(35), SP)
      GO TO 600 
  
  480 CALL LOAPR (1, IFLD(46), IFLD(47), IFLD(48), IFLD(49), IFLD(50),
     .               IFLD(51), IFLD(45), SP)
      CALL GNR3 
      CALL SETEM3(1)
      IF (IFLD(18) .NE. R" CONTINU") GO TO 750
      IFLD(28) = SHIFT (IFLD(28), 4) .OR. (SHIFT (IFLD(50), 4) .AND.
     .                       Z"F")
      IFLD(36) = SHIFT (IFLD(36), 4) .OR. (SHIFT (IFLD(50), 16) .AND. 
     .                       Z"F")
      IFLD(44) = SHIFT (IFLD(44), 4) .OR. (SHIFT (IFLD(50), 28) .AND. 
     .                       Z"F")
      IFLD(52) = (SHIFT (IFLD(49), 4) .AND. Z"F0") .OR. 
     .                       (SHIFT (IFLD(50), 40) .AND. Z"F")
      IFLD(51) = SHIFT (IFLD(49), -4) .AND. Z"FF" 
      IFLD(50) = SHIFT (IFLD(49), -12) .AND. Z"FF"
      IFLD(49) = SHIFT (IFLD(49), -20) .AND. Z"FF"
      ICODE = IFLD(21)
      GO TO 600 
  
  490 ICODE = IFLD(31)
      CALL LOAPR (1, IFLD(24), IFLD(25), IFLD(26), IFLD(27), IFLD(28),
     .              IFLD(29), IFLD(23), SP) 
      GO TO 600 
  
  500 ICODE = IFLD(41)
      CALL LOAPR (1, IFLD(34), IFLD(35), IFLD(36), IFLD(37), IFLD(38),
     .               IFLD(39), IFLD(33), SP)
      GO TO 600 
  
  510 ICODE = IFLD(51)
      CALL LOAPR (1, IFLD(44), IFLD(45), IFLD(46), IFLD(47), IFLD(48),
     .               IFLD(49), IFLD(43), SP)
      GO TO 600 
  
  520 CALL GNR3 
      CALL SETEM3(1)
      IF (IFLD(18) .NE. R" CONTINU") GO TO 750
      IFLD(28) = SHIFT (IFLD(28), 4) .OR. (SHIFT (IFLD(50), 4) .AND.
     .                       Z"F")
      IFLD(36) = SHIFT (IFLD(36), 4) .OR. (SHIFT (IFLD(50), 16) .AND. 
     .                       Z"F")
      IFLD(44) = SHIFT (IFLD(44), 4) .OR. (SHIFT (IFLD(50), 28) .AND. 
     .                       Z"F")
      IFLD(52) = (SHIFT (IFLD(49), 4) .AND. Z"F0") .OR. 
     .                       (SHIFT (IFLD(50), 40) .AND. Z"F")
      IFLD(51) = SHIFT (IFLD(49), -4) .AND. Z"FF" 
      IFLD(50) = SHIFT (IFLD(49), -12) .AND. Z"FF"
      IFLD(49) = SHIFT (IFLD(49), -20) .AND. Z"FF"
      ICODE = IFLD(29)
      CALL LOAPR (1, IFLD(22), IFLD(23), IFLD(24), IFLD(25), IFLD(26),
     .               IFLD(27), IFLD(21), SP)
      GO TO 600 
  
  530 ICODE = IFLD(39)
      CALL LOAPR (1, IFLD(32), IFLD(33), IFLD(34), IFLD(35), IFLD(36),
     .               IFLD(37), IFLD(31), SP)
      GO TO 600 
  
  540 ICODE = IFLD(49)
      CALL LOAPR (1, IFLD(42), IFLD(43), IFLD(44), IFLD(45), IFLD(46),
     .              IFLD(47), IFLD(41), SP) 
      GO TO 600 
  
  550 PL(7) = IFLD(51)
      PL(1) = IFLD(52)
      CALL GNR3 
      CALL SETEM3(1)
      IF (IFLD(18) .NE. R" CONTINU") GO TO 750
      IFLD(28) = SHIFT (IFLD(28), 4) .OR. (SHIFT (IFLD(50), 4) .AND.
     .                       Z"F")
      IFLD(36) = SHIFT (IFLD(36), 4) .OR. (SHIFT (IFLD(50), 16) .AND. 
     .                       Z"F")
      ICODE = IFLD(27)
      PL(2) = IFLD(21)
      PL(3) = IFLD(22)
      PL(4) = IFLD(23)
      PL(5) = IFLD(24)
      PL(6) = IFLD(25)
      GO TO 600 
  
  560 ICODE = IFLD(37)
      CALL LOAPR (1, IFLD(30), IFLD(31), IFLD(32), IFLD(33), IFLD(34),
     .               IFLD(35), IFLD(29), SP)
  
  600 DO 610 I= 1, 75 
      IF (ICODE .EQ. IEPM(1, I)) THEN 
         PL(8) = IEPM(2, I) 
         PL(9) = IEPM(3, I) 
         PL(10) = IEPM(4, I)
         PL(11) = IEPM(5, I)
         PL(12) = IEPM(6, I)
         PL(13) = 10H 
         GOTO 630 
      ENDIF 
  610 CONTINUE
      ENCODE (10,850,PL(8)) ICODE 
      PL(9) = 10HUNDEFINED
      PL(10) = 10HERROR 
      PL(11) = PL(12) = PL(13) = 10H
  630 CONTINUE
      PL(13) = IFLD(19) 
      CALL PRINT14 (31, 13) 
  700 CONTINUE
  
      GO TO 800 
  
  750 SKIPGNR = 1 
  
*        REPORT WHEN DFT SSB DATE/TIME IS INVALID 
  800 IF ((VERSION .GE. 4) .AND. ((IFLD(19) .AND. O"4000") .NE. 0)) THEN
         PRINT 810
  810    FORMAT (12X,'DFT-REPORTED WALL CLOCK TIME INTEGRITY HAS BEEN ',
     .               'LOST')
         LINE = LINE + 1
      ENDIF 
  840 FORMAT (8X, I2) 
  850 FORMAT (Z2, 8X) 
  900 RETURN
      END 
      SUBROUTINE DL990M 
* 
**        DESCRIPTION 
*         ----------- 
*           THIS ROUTINE DEVELOPS THE ANALYSIS REPORT FOR THE THETA(990)
*           MEMORY. ERROR MESSAGES REQUIRING MULTIPLE SEF RECORDS ARE 
*           STORED IN ORDER IN IFLD2, NFLD2, IFLD, NFLD.
* 
*         CALLED BY 
*         --------- 
*           AN990M
* 
*         THE FOLLOWING ARE THE OCTAL EQUIVALENTS FOR THE REGISTER NUMBERS
*           OCTAL   REGISTER(S)   DESCRIPTION 
*           -----   --------      ----------- 
*             00        00        STATUS SUMMARY
*             20        10        EQUIPMENT IDENTIFICATION
*             22        12        OPTIONS INSTALLED 
*             40        20        ENVIRONMENT CONTROL 
*             41        21        BOUNDS REGISTER 
*            240-3     A0-A3      CORRECTED ERROR LOGS   (CELO-3) 
*            244-7     A4-A7      UNCORRECTED ERROR LOGS (UEL0-3) 
* 
*         THE DEFINITIONS BELOW TELL WHERE THE INFORMATION IS LOCATED 
*         WITHIN THE REGISTERS. 
*         PORT-16K      = BITS 8-10 OF REGISTERS A0-A7
*         PORT-64K/256K = BITS 5-7 OF REGISTERS A0-A7 
*         ADDRESS-16K   = BITS 13-36 OF REGISTERS A0-A7 
*         ADDR-64K/256K = BITS 11-36 OF REGISTERS A0-A7 
*         SYNDROME CODE = BITS 40-47 OF REGISTERS A0-A3 
* 
*         MEMORY DATA IS STORED AS FOLLOWS FOR THE ANALYSIS REPORT: 
*         STOR(I,J) = FAILURES BY BANK (I) AND CAGE/DISTRIBUTOR (J) 
*                 I = 1 TO 8 FOR BANKS 0 THRU 7 
*                 J = 1 TO 8 FOR CAGES 4A,6A,4B,6B,4C,6C,4D,6D FOR 16K
*                 J = 1 TO 4 FOR DISTRIBUTOR NUMBER FOR 64K/256K
* 
*CALL HPACOM1 
*CALL HPACOM2 
*CALL HPACOM3 
  
      COMMON /MFLD/ IFLD2(50), NFLD2(50), FCSEL(2,4), I64K
     .              , IOUERR
      DIMENSION IMSG (4, 9), SC(5), RGE(8)
* 
      DATA (IMSG(I,1),I=1,4,1)/ 
     .10HDEADSTART ,10HERROR LOG ,10HMEMORY ERR,10HOR        /
      DATA (IMSG(I,2),I=1,4,1)/ 
     .10HEXPRESS DE,10HADSTART ME,10HMORY DUMP ,10H          /
      DATA (IMSG(I,3),I=1,4,1)/ 
     .10HCORRECTED ,10HMEMORY ERR,10HOR        ,10H          /
      DATA (IMSG(I,4),I=1,4,1)/ 
     .10HUNCORRECTE,10HD MEMORY E,10HRROR      ,10H          /
      DATA (IMSG(I,5),I=1,4,1)/ 
     .10HFATAL CM E,10HRROR (MULT,10HIPLE ODD B,10HIT ERROR) /
      DATA (IMSG(I,6),I=1,4,1)/ 
     .10HNO ERROR D,10HETECTED IN,10H REGISTERS,10H          /
      DATA (IMSG(I,7),I=1,4,1)/ 
     .10HMULTIPLE E,10HRROR OCCUR,10HRENCE     ,10H          /
      DATA (IMSG(I,8),I=1,4,1) /
     .10HINVALID DA,10HTA - REG  ,10H          ,10H          /
      DATA (IMSG(I,9),I=1,4,1)/ 
     .10HUNIDENTIFI,10HED DFT ERR,10HOR CODE   ,10H          /
* 
  
      DATA SC / O"401", O"402", O"403", O"404", O"405" /
* 
      RCT = 0 
      RGCT = 1
      RGFLG = 0 
      IPRINT = 3HOFF
  
      DO 3 I = 1,8
        RGE(I) = 10H
    3 CONTINUE
  
*     DFT REVISION NUMBER 
      VERSION = IFLD(FUN) 
  
      IF (RCFD .NE. 2HON) GO TO 5 
      PL(57) = 16 
      IF (I64K .EQ. 2)  PL(57) = 64 
      IF (I64K .EQ. 1)  PL(57) = 256
      IHDR = 25 
      CALL UCHEK14
  
*     SYMPTOM CODE
    5 DO 10 SCH = 1,5 
      IFLD249 = IFLD2(49) .AND. O"777"
*     REPORT ALL REGISTERS FOR DFT VERSION 4: CORRECTED AND UNCORRECTED 
      IF (IFLD249 .EQ. SC(SCH)) THEN
         IF ((VERSION .GE. 4) .AND. (SCH .EQ. 4)) GO TO 100 
         GO TO (100, 100, 100, 200, 100) SCH
      ENDIF 
   10 CONTINUE
* 
      SCH = 9 
      GO TO 900 
  
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * 
* 
*     PROCESS CEL 0/1/2/3 REGISTERS - NFLD2 ARRAY 
* 
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * 
  
  100 FDIST = 0 
      DO 150 I = 25, 40, 5
      IF ((NFLD2(I-4) .NE. 0) .OR. (NFLD2(I-3) .NE. 0) .OR. 
     .    (NFLD2(I-2) .NE. 0) .OR. (NFLD2(I-1) .NE. 0)) GO TO 110 
      IF ((NFLD2(I) .NE. 0) .OR. (NFLD2(41+2*FDIST) .NE. 0)) GO TO 110
      RCT = RCT + 1 
      GO TO 150 
  
*         CHECK VALID DATA BIT IN A_ REGISTER 
  110 IF(AND(SHIFT(NFLD2(I-4),-15),1).NE.1) THEN
          RG = I/5 - 5
          ENCODE (10,111,RGE(RGCT)) RG
  111     FORMAT ("A",I1,8X)
          RGCT = RGCT + 1 
          RGFLG = 1 
          RCT = RCT + 1 
          GO TO 150 
      ENDIF 
  
*     PORT
      PORT = AND(SHIFT(NFLD2(I-4),-5),7)
      IF (I64K .GE. 1) PORT = AND (SHIFT(NFLD2(I-4),-8),7)
  
*     ADDRESS 
      FAU = AND(NFLD2(I-4),7) 
      IF (I64K .GE. 1) FAU = AND (NFLD2(I-4),O"37") 
      FAL = OR(SHIFT(FAU,16),NFLD2(I-3))
      FADDR = OR(SHIFT(NFLD2(I-2),-3),SHIFT(FAL,5)) 
      FCADDR = NFLD2(I-3) .AND. Z"3FFF" 
      IF (I64K .EQ. 2)  FCADDR = NFLD2(I-3) 
      IF (I64K .EQ. 1)  FCADDR = (SHIFT(NFLD2(I-4),16) .AND. Z"30000")
     .                           .OR. NFLD2(I-3)
  
*     COLUMN AND BANK 
      ICOL = AND(NFLD2(I-4),1)
      IF (I64K .EQ. 2)  ICOL = AND(SHIFT(NFLD2(I-4),-2),1)
      IF (I64K .EQ. 1)  ICOL = AND(SHIFT(NFLD2(I-4),-4),1)
      FBANK = SHIFT(NFLD2(I-2),-5) .AND. 7
  
*     SYNDROME CODE AND BIT 
      SYNCD = NFLD2(I-1)
      CALL SCD990 (SYNCD, SBIT, FCD ) 
* 
      IF (I64K .GE. 1)  GO TO 145 
  
*     ROW 
      ROW = SHIFT(NFLD2(I-3),-14) .AND. 3 
  
*     CAGE TRANSLATION
      FCAGE = FCSEL(ICOL+1,FDIST+1) 
* 
*     SAVE BANK AND CAGE FOR ANALYSIS REPORT
      IF (ICOL .EQ. 0) STOR(FBANK+1,(2*(FDIST+1)-1)) =
     .                 STOR(FBANK+1,(2*(FDIST+1)-1)) + 1
      IF (ICOL .EQ. 1) STOR(FBANK+1,(2*(FDIST+1))) =
     .                 STOR(FBANK+1,(2*(FDIST+1))) + 1
* 
      IF (RCFD .NE. 2HON) GO TO 150 
      CALL LOAPR (1,IFLD(20),ICOL,FCAGE,FBANK,SBIT,ROW,FADDR,FCADDR)
      PL(9) = PORT
      IF (IPRINT .EQ.2HON) THEN 
         PL(1) = 10H
      ELSE
         IPRINT = 2HON
      ENDIF 
      CALL PRINT14 (2,9)
      GO TO 150 
  
*     RANK
  145 RANK = AND(NFLD2(I-4),3)
      IF (I64K .EQ. 1)  RANK = AND(SHIFT(NFLD2(I-4),-2),3)
  
*     SAVE BANK AND DISTRIBUTOR NUMBER FOR ANALYSIS REPORT
      STOR(FBANK+1,FDIST+1) = STOR(FBANK+1,FDIST+1) + 1 
  
      IF (RCFD .NE. 2HON) GO TO 150 
      CALL LOAPR (1,IFLD(20),ICOL,FDIST,FBANK,SBIT,RANK,FADDR,FCADDR) 
      PL(9) = PORT
      IF (IPRINT .EQ.2HON) THEN 
         PL(1) = 10H
      ELSE
         IPRINT = 2HON
      ENDIF 
      CALL PRINT14 (18,9) 
  
  150 FDIST = FDIST + 1 
*     PROCESS ALL REGISTERS FOR DFT VERSION 4: CORRECTED AND UNCORRECTED
      IF (VERSION .GE. 4) GO TO 500 
*     PROCESS ALL REGISTERS FOR DEADSTART AND EXPRESS DEADSTART ERRORS
      IF ((SCH .EQ. 1) .OR. (SCH .EQ. 2)) GO TO 500 
*     PROCESSING DONE FOR SCH TYPES 3/5 - CORRECTED/MULTIPLE ODD BIT
*     IF CEL REGISTERS CONTAINED NO ERRORS, GO PRINT MSG. 
      IF (RCT .EQ. 4) GO TO 800 
      GO TO 900 
  
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * 
* 
*     MOVE THE DATA ARRAYS FOR COMMON PROCESSING
* 
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * 
  
*     REPOSITION UEL REGISTERS - FROM NFLD2 TO IFLD ARRAY 
  200 DO 210 I = 21, 50 
      NFLD(I) = IFLD(I) 
      IFLD(I) = NFLD2(I)
  210 NFLD2(I) = 0
      GO TO 500 
  
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * 
* 
*      PROCESS UEL0/1/2/3 REGISTERS - IFLD ARRAY
* 
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * 
  
  500 FDIST = 0 
      DO 550 I = 25, 40, 5
      IF ((IFLD(I-4) .NE. 0) .OR. (IFLD(I-3) .NE. 0) .OR. 
     .    (IFLD(I-2) .NE. 0) .OR. (IFLD(I-1) .NE. 0)) GO TO 510 
      IF ((IFLD(I) .NE. 0) .OR. (IFLD(41+2*FDIST) .NE. 0)) GO TO 510
      RCT = RCT + 1 
      GO TO 550 
  
*         CHECK VALID DATA BIT IN A_ REGISTER 
  510 IF(AND(SHIFT(IFLD(I-4),-15),1).NE.1)   THEN 
          RG = I/5 - 5 + 4
          ENCODE (10,111,RGE(RGCT)) RG
          RGFLG = 1 
          RGCT = RGCT + 1 
          RCT = RCT + 1 
          GO TO 550 
      ENDIF 
  
*     PORT
      PORT = AND (SHIFT(IFLD(I-4),-5),7)
      IF (I64K .GE. 1) PORT = AND (SHIFT(IFLD(I-4),-8),7) 
  
      IF ((PORT .EQ. 3) .OR. (PORT .EQ. 7)) IOUERR = 3HYES
  
*     ADDRESS 
      FAU = AND(IFLD(I-4),7)
      IF (I64K .GE. 1) FAU = AND (IFLD(I-4),O"37")
      FAL = OR(SHIFT(FAU,16),IFLD(I-3)) 
      FADDR = OR(SHIFT(IFLD(I-2),-3),SHIFT(FAL,5))
      FCADDR = IFLD(I-3) .AND. Z"3FFF"
      IF (I64K .EQ. 2)  FCADDR = IFLD(I-3)
      IF (I64K .EQ. 1)  FCADDR = (SHIFT(IFLD(I-4),16) .AND. Z"30000") 
     .                           .OR. IFLD(I-3) 
  
*     COLUMN AND BANK 
      ICOL = AND(IFLD(I-4),1) 
      IF (I64K .EQ. 2)  ICOL = AND(SHIFT(IFLD(I-4),-2),1) 
      IF (I64K .EQ. 1)  ICOL = AND(SHIFT(IFLD(I-4),-4),1) 
      FBANK = SHIFT(IFLD(I-2),-5) .AND. 7 
  
      SBIT = 10H
* 
      IF (I64K .GE. 1) GO TO 545
  
*     ROW 
      ROW = SHIFT(IFLD(I-3),-14) .AND. 3
  
*     CAGE TRANSLATION
      FCAGE = FCSEL(ICOL+1,FDIST+1) 
* 
*     SAVE BANK AND CAGE FOR ANALYSIS REPORT
      IF (ICOL .EQ. 0) STOR(FBANK+1,(2*(FDIST+1)-1)) =
     .                 STOR(FBANK+1,(2*(FDIST+1)-1)) + 1
      IF (ICOL .EQ. 1) STOR(FBANK+1,(2*(FDIST+1))) =
     .                 STOR(FBANK+1,(2*(FDIST+1))) + 1
  
      CALL LOAPR (1,IFLD(20),ICOL,FCAGE,FBANK,SBIT,ROW,FADDR,FCADDR)
      PL(9) = PORT
      IF (IPRINT .EQ.2HON) THEN 
         PL(1) = 10H
      ELSE
         IPRINT = 2HON
      ENDIF 
      CALL PRINT14 (2,9)
      GO TO 550 
* 
  545 RANK = AND(IFLD(I-4),3) 
      IF (I64K .EQ. 1)  RANK = AND(SHIFT(IFLD(I-4),-2),3) 
  
*     SAVE BANK AND DISTRIBUTOR NUMBER FOR ANALYSIS REPORT
      STOR(FBANK+1,FDIST+1) = STOR(FBANK+1,FDIST+1) + 1 
  
      IF (RCFD .NE. 2HON) GO TO 550 
      CALL LOAPR (1,IFLD(20),ICOL,FDIST,FBANK,SBIT,RANK,FADDR,FCADDR) 
      PL(9) = PORT
      IF (IPRINT .EQ.2HON) THEN 
         PL(1) = 10H
      ELSE
         IPRINT = 2HON
      ENDIF 
      CALL PRINT14 (18,9) 
* 
  550 FDIST = FDIST + 1 
*     PROCESSING DONE FOR ALL CORRECTED/UNCORRECTED REGISTERS 
*     IF CEL AND UEL REGISTERS CONTAINED NO ERRORS, GO PRINT MSG. 
      IF ((VERSION .GE. 4) .AND. (RCT .EQ. 8)) GO TO 800
      IF ((VERSION .GE. 4) .AND. (RCT .NE. 8)) GO TO 900
*     CHECK FOR ERRORS IN PRE-DFT4 (UNCORR CONTAINED ONLY UEL REGISTERS)
      IF  (RCT .EQ. 8) GO TO 800
      GO TO 900 
  
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * 
* 
*     ALERT: MEMORY REGISTERS CONTAINED NO ERROR INFORMATION
* 
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * 
  
  800 IF (RCFD .NE. 2HON) GO TO 1000
      CALL LOAPR (1,IMSG(1,6),IMSG(2,6),IMSG(3,6),SP,SP,SP,SP,SP) 
      CALL PRINT14 (3,3)
  
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * 
* 
*     IDENTIFY THE ERROR TYPE/MESSAGE 
* 
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * 
  
  900 IF (RCFD .NE. 2HON) GO TO 1000
      IDFTCD = IFLD2(49)
      SEQNO = IFLD2(19) 
      CALL LOAPR (1,IDFTCD,IMSG(1,SCH),IMSG(2,SCH),IMSG(3,SCH), 
     .              IMSG(4,SCH),SEQNO,SP,SP)
      CALL PRINT14 (16,6) 
      IF ((IFLD2(49) .AND. O"4000") .NE. 0) THEN
         CALL LOAPR (1,IMSG(1,7),IMSG(2,7),IMSG(3,7),SP,SP,SP,SP,SP)
         CALL PRINT14 (3,3) 
      ENDIF 
      IF (SCH .EQ. 9) GO TO 1000
      IF (RGFLG .NE. 0)  THEN 
          CALL LOAPR(1,IMSG(1,8),IMSG(2,8),RGE(1),RGE(2),RGE(3),RGE(4), 
     .                 RGE(5),RGE(6)) 
          PL(9) = RGE(7)
          PL(10) = RGE(8) 
          CALL PRINT14(22,10) 
      ENDIF 
  
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * 
* 
*     DUMP ALL THE REGISTERS
* 
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * 
  
      IF (IPRINT .EQ. 3HOFF) PRINT 904,IFLD(20) 
  904 FORMAT (3X,A10,'NO ERROR DETECTED IN AX REGISTERS') 
      CALL PLSEC (5)
  
*     STATUS SUMMARY AND ENVIRONMENTAL CONTROL REGISTERS (00 AND 20)
      CALL LOAPR (1,IFLD2(44),IFLD2(26),IFLD2(27),IFLD2(28),
     .              IFLD2(29),IFLD2(30),IFLD2(43),IFLD2(48))
      CALL LOAPR (9,IFLD2(36),IFLD2(37),IFLD2(38),IFLD2(39),
     .              IFLD2(40),IFLD2(47),SP,SP)
      CALL PRINT14 (4,14) 
  
*     CEL REGISTERS FROM NFLD2 ARRAY (A0 - A1 - A2 - A3)
*     (SPEC HANDLING FOR PRE-DFT4 UNCORR ERRORS: ONLY UEL REGISTERS)
      IF ((VERSION .LT. 4) .AND. (SCH .EQ. 4)) GO TO 910
      CALL LOAPR (1,NFLD2(42),NFLD2(21),NFLD2(22),NFLD2(23),
     .              NFLD2(24),NFLD2(25),NFLD2(41),NFLD2(44))
      CALL LOAPR (9,NFLD2(26),NFLD2(27),NFLD2(28),NFLD2(29),
     .              NFLD2(30),NFLD2(43),NFLD2(46),NFLD2(31))
      CALL LOAPR(17,NFLD2(32),NFLD2(33),NFLD2(34),NFLD2(35),
     .              NFLD2(45),NFLD2(48),NFLD2(36),NFLD2(37))
      CALL LOAPR(25,NFLD2(38),NFLD2(39),NFLD2(40),NFLD2(47),
     .              SP,SP,SP,SP)
      CALL PRINT14 (4,28) 
  
*     UEL REGISTERS FROM IFLD ARRAY (A4 - A5 - A6 - A7) 
*     (SPEC HANDLING FOR PRE-DFT4 CORR/MOB ERRORS: ONLY CEL REGISTERS)
  910 IF ((VERSION .LT. 4) .AND. ((SCH.EQ.3) .OR. (SCH.EQ.5)))GO TO 1000
      CALL LOAPR (1,IFLD(42),IFLD(21),IFLD(22),IFLD(23),
     .              IFLD(24),IFLD(25),IFLD(41),IFLD(44))
      CALL LOAPR (9,IFLD(26),IFLD(27),IFLD(28),IFLD(29),
     .              IFLD(30),IFLD(43),IFLD(46),IFLD(31))
      CALL LOAPR(17,IFLD(32),IFLD(33),IFLD(34),IFLD(35),
     .              IFLD(45),IFLD(48),IFLD(36),IFLD(37))
      CALL LOAPR(25,IFLD(38),IFLD(39),IFLD(40),IFLD(47),
     .              SP,SP,SP,SP)
      CALL PRINT14 (4,28) 
  
*     BR REGISTER FROM NFLD ARRAY (21)
      CALL LOAPR (1,NFLD(42),NFLD(21),NFLD(22),NFLD(23),
     .              NFLD(24),NFLD(25),NFLD(41),SP)
      CALL PRINT14 (5,7)
* 
 1000 CONTINUE
      RETURN
      END 
      SUBROUTINE SEC990M
* 
**        DESCRIPTION 
*         ----------- 
*         SUBROUTINE SEC990M DEVELOPS THE DETAIL REPORT FOR 990 
*         MEMORY (THETA) SECDED ERRORS BY PROCESSING SEF RECORDS
*         WITH ERROR CODE 4305B.
* 
*         SECDED DATA IS STORED AS FOLLOWS FOR THE ANALYSIS REPORT: 
*         STOR(10,J) THRU (68,J) = THE SUMMARY OF ERRORS BY TYPE WHERE: 
*           J = 1  ERROR COUNT
*           J = 2  WORD ADDRESS 
*           J = 3  CHIP ADDRESS 
*           J = 4  COLUMN 
*           J = 5  CAGE (16K) / DISTRIBUTOR (64K AND 256K)
*           J = 6  BANK 
*           J = 7  BIT
*           J = 8  ROW (16K) / RANK (64K AND 256K)
* 
*         CALLED BY 
*         --------- 
*         AN990M
* 
*         CALLS 
*         ----- 
*         SCD990
* 
*CALL HPACOM1 
*CALL HPACOM2 
*CALL HPACOM3 
      COMMON /MFLD/ IFLD2(50), NFLD2(50), FCSEL(2,4), I64K
  
      DIMENSION MCD(3,7)
* 
      DATA (MCD(I,1),I=1,3,1)/
     .10HSYN CODE B,10HIT FAILED ,10H(UNC)     /
      DATA (MCD(I,2),I=1,3,1)/
     .10HDOUBLE/MUL,10HTIPLE ERR ,10H(UNC)     /
      DATA (MCD(I,3),I=1,3,1)/
     .10HMULT REPOR,10HTED AS SGL,10H(UNC)     /
      DATA (MCD(I,4),I=1,3,1)/
     .10HPARTIAL WR,10HITE PE    ,10H(UNC)     /
      DATA (MCD(I,5),I=1,3,1)/
     .10HNO ERROR D,10HETECTED   ,10H(COR)     /
      DATA (MCD(I,6),I=1,3,1)/
     .10HSINGLE BIT,10H ERROR    ,10H(COR)     /
      DATA (MCD(I,7),I=1,3,1)/
     .10H          ,10H          ,10H          /
  
      IHDR = 26 
      IDATA = 0 
* 
*     FIND SECDED ERROR(S) IN SEF RECORD
      DO 200 I = 21, 30, 3
      IF (IFLD(I) .EQ. 0) GO TO 200 
      IF ((IFLD(I+1) .EQ. 0) .AND. (IFLD(I+2) .EQ. 0)) GO TO 200
  
      IF ((RCFD .EQ. 2HON) .AND. (IDATA .EQ. 0)) THEN 
         CALL UCHEK14 
         IDATA = 1
      ENDIF 
  
*     SEQUENCE NUMBER 
      SEQNO = IFLD(19)
  
*     DFT REVISION NUMBER 
      VERSION = IFLD(FUN) 
  
* 
*     GET FAILING WORD ADDRESS AND CHIP ADDRESS 
      SADDR = IFLD(I+1) 
      FCADDR = SHIFT(SADDR,-5) .AND. Z"3FFF"
      IF (I64K .EQ. 2)  FCADDR = SHIFT(SADDR,-5) .AND. Z"FFFF"
      IF (I64K .EQ. 1)  FCADDR = SHIFT(SADDR,-5) .AND. Z"3FFFF" 
* 
*     COLUMN AND BANK 
      ICOL = AND (SHIFT(SADDR,-21),1) 
      IF (I64K .EQ. 2)  ICOL = AND(SHIFT(SADDR,-23),1)
      IF (I64K .EQ. 1)  ICOL = AND(SHIFT(SADDR,-25),1)
      FBANK = SHIFT(SADDR,-2) .AND. 7 
* 
*     DISTRIBUTOR AND CAGE TRANSLATION
      FDIST = AND(SADDR,3)
      FCAGE = FCSEL(ICOL+1,FDIST+1) 
* 
*     SYNDROME CODE AND BIT 
      SYNCD = IFLD(I+2) 
      IF (SYNCD .GT. 255) THEN
         SBIT = 10H 
         FCD = 7
         GO TO 90 
      ENDIF 
      CALL SCD990 (SYNCD, SBIT, FCD ) 
  
*     ROW AND RANK
      ROW  = AND (SHIFT(SADDR,-19), 3)
      RANK = AND (SHIFT(SADDR,-21), 3)
      IF (I64K .EQ. 1)  RANK = AND(SHIFT(SADDR,-23),1)
* 
*     SAVE ERRORS FOR ANALYSIS REPORT 
   90 CONTINUE
      DO 100 J = 10, 68 
      IF (STOR(J,1) .EQ. 0) GO TO 110 
      IF (STOR(J,2) .EQ. SADDR) GO TO 110 
  100 CONTINUE
      STOR(68,32) = STOR(68,32) + 1 
      GO TO 150 
  110 STOR(J,1) = STOR(J,1) + IFLD(I) 
      STOR(J,2) = SADDR 
      STOR(J,3) = FCADDR
      STOR(J,4) = ICOL
      STOR(J,5) = FCAGE 
      IF (I64K .GE. 1) STOR(J,5) = FDIST
      STOR(J,6) = FBANK 
      STOR(J,7) = SBIT
      STOR(J,8) = ROW 
      IF (I64K .GE. 1) STOR(J,8) = RANK 
* 
  150 PL(2) = IFLD(I) 
      IF (RCFA .EQ. 2HON) CALL STOJN3 
      IF (RCFD .NE. 2HON) GO TO 200 
* 
      IF (I64K .EQ.0)  THEN 
      CALL LOAPR (1,IFLD(20),IFLD(I),ICOL,FCAGE,FBANK,SBIT,ROW,SADDR) 
      CALL LOAPR (9,FCADDR,SYNCD,MFID,SEQNO,SP,MCD(1,FCD),MCD(2,FCD), 
     .              MCD(3,FCD)) 
      IF (VERSION .GE. 3) ENCODE (10,160,PL(13)) VERSION
  160 FORMAT (8X,I2)
      CALL PRINT14 (9, 16)
       GO TO 200
      ENDIF 
* 
      IF (I64K .GE. 1)  THEN
      CALL LOAPR (1,IFLD(20),IFLD(I),ICOL,FDIST,FBANK,SBIT,RANK,SADDR)
      CALL LOAPR (9,FCADDR,SYNCD,MFID,SEQNO,SP,MCD(1,FCD),MCD(2,FCD), 
     .              MCD(3,FCD)) 
      IF (VERSION .GE. 3) ENCODE (10,160,PL(13)) VERSION
      CALL PRINT14 (19, 16) 
      ENDIF 
  200 CONTINUE
  
*     REPORT WHEN DFT SUPPORTIVE STATUS BUFFER DATE/TIME IS INVALID 
      IF ((IFLD(19) .AND. O"4000") .NE. 0)  THEN
         PRINT 210
  210    FORMAT (12X,'DFT-REPORTED WALL CLOCK TIME INTEGRITY HAS BEEN ',
     .               'LOST')
         LINE = LINE + 1
      ENDIF 
  
      RETURN
      END 
      SUBROUTINE SCD990 (SYNCD, SBIT, FCD ) 
* 
**        DESCRIPTION 
*         ----------- 
*         THIS ROUTINE LOOKS UP THE SYNDROME CODE IN TABLE SYNTBL 
*         AND RETURNS THE CORRECTED BIT(SBIT), IF AVAILABLE, AND
*         THE CONDITION (CD) DESCRIBED. 
*             REFERENCE: THETA FUNCTIONAL UNIT SPECIFICATION
*                        21989810     REV 004 
* 
*         CONDITIONS(CD): X = CORRECTED SINGLE BIT ERROR
*                         1 = SYNDROME CODE BIT THAT FAILED 
*                         2 = MULTIPLE ERROR
*                         3 = MULTIPLE ERROR REPORTED AS A SINGLE ERROR 
*                         4 = DOUBLE ERROR OR MULTIPLE ERROR ON ONE OF
*                             THE TWO BYTES INDICATED 
*                         5 = NO ERROR DETECTED 
* 
*         THIS ROUTINE ALSO LOOKS UP THE FAILING BOARD IN TABLE IBRDTBL 
*         BASED ON THE BANK AND SYNDROME BIT. 
* 
*CALL HPACOM1 
  
      DIMENSION SYNTBL (256,2)
* 
      DATA (SYNTBL(I,1),I=1,206)/99,  71,  70,  99,  69,  99,  99,
     .       24,  68,  99,  99,  16,  99,   8,   0,  99,  67,  99,
     .       99,  99,  99,  99,  99,  99,  99,  99,  99,  99,  99,
     .       99,  99,  99,  66,  99,  99,  99,  99,  99,  99,  99,
     .       99,  99,  99,  99,  99,  99,  99,  99,  99,  99,  99,
     .       99,  99,  99,  99,  28,  99,  99,  99,  20,  99,  12,
     .        4,  99,  65,  99,  99,  99,  99,  99,  99,  99,  99,
     .       99,  99,  99,  99,  10,  99,  99,  99,  99,  99,  99,
     .       99,  99,  99,  26,  99,  99,  99,  18,  99,  10,   2,
     .       99,  99,  99,  99,  99,  99,  99,  99,  30,  99,  99,  99, 
     .       22,  99,  14,   6,  99,  56,  99,  99,  60,  99,  58,
     .       62,  99,  99,  57,  61,  99,  59,  99,  99,  63,  64,
     .       99,  99,  99,  99,  99,  99,  99,  99,  99,  99,  99,
     .       99,  99,  99,  99,  99,  99,  99,  99,  99,  99,  99,
     .       25,  99,  99,  99,  17,  99,   9,   1,  99,  99,  99,
     .       99,  99,  99,  99,  99,  29,  99,  99,  99,  21,  99,
     .       13,   5,  99,  48,  99,  99,  52,  99,  50,  54,  99,
     .       99,  49,  53,  99,  51,  99,  99,  55,  99,  99,  99,
     .       99,  99,  99,  99,  27,  99,  99,  99,  19,  99,  11/
  
      DATA (SYNTBL(I,1),I=207,256) /
     .        3,  99,  40,  99,  99,  44,  99,  42,  46,  99,  99,
     .       41,  45,  99,  43,  99,  99,  47,  32,  99,  99,  36,
     .       99,  34,  38,  99,  99,  33,  37,  99,  35,  99,  99,
     .       39,  99,  99,  99,  99,  99,  99,  99,  31,  99,  99,
     .       99,  23,  99,  15,   7,  99/ 
  
       DATA (SYNTBL(I,2),I=1,256)  /
     .       5, 1, 1, 4, 1, 2, 2, 6, 1, 2, 2, 6, 4, 6, 6, 2,
     .       1, 2, 2, 3, 2, 3, 3, 4, 2, 3, 3, 4, 3, 4, 4, 3,
     .       1, 2, 2, 3, 2, 3, 3, 4, 2, 3, 3, 4, 3, 4, 4, 3,
     .       4, 3, 3, 2, 3, 2, 2, 6, 3, 2, 2, 6, 2, 6, 6, 2,
     .       1, 2, 2, 3, 2, 3, 3, 4, 2, 3, 3, 4, 3, 4, 4, 3,
     .       2, 3, 3, 2, 3, 2, 2, 6, 3, 2, 2, 6, 2, 6, 6, 2,
     .       2, 3, 3, 2, 3, 2, 2, 6, 3, 2, 2, 6, 2, 6, 6, 2,
     .       6, 4, 4, 6, 4, 6, 6, 4, 4, 6, 6, 4, 6, 4, 4, 6,
     .
     .       1, 2, 2, 3, 2, 3, 3, 4, 2, 3, 3, 4, 3, 4, 4, 3,
     .       2, 3, 3, 2, 3, 2, 2, 6, 3, 2, 2, 6, 2, 6, 6, 2,
     .       2, 3, 3, 2, 3, 2, 2, 6, 3, 2, 2, 6, 2, 6, 6, 2,
     .       6, 4, 4, 6, 4, 6, 6, 4, 4, 6, 6, 4, 6, 4, 4, 6,
     .       4, 3, 3, 2, 3, 2, 2, 6, 3, 2, 2, 6, 2, 6, 6, 2,
     .       6, 4, 4, 6, 4, 6, 6, 4, 4, 6, 6, 4, 6, 4, 4, 6,
     .       6, 4, 4, 6, 4, 6, 6, 4, 4, 6, 6, 4, 6, 4, 4, 6,
     .       2, 3, 3, 2, 3, 2, 2, 6, 3, 2, 2, 6, 2, 6, 6, 2  /
  
* 
      FBIT = SYNTBL(SYNCD+1,1)
      FCD = SYNTBL(SYNCD+1,2) 
* 
      IF (FBIT .EQ. 99) THEN
          SBIT = 10H
         GO TO 900
      ENDIF 
* 
      ENCODE (10,880,SBIT) FBIT 
  880 FORMAT (I2,8X)
      PL(60) = FBIT 
* 
* 
  900 CONTINUE
      RETURN
      END 
      SUBROUTINE PHEAD14 (ST) 
* 
**        DESCRIPTION 
*         ----------- 
*         SUBROUTINE PHEAD14 PRINTS HEADINGS FOR REPORTS DEVELOPED
*         BY OVERLAY 14 ROUTINES. 
* 
*         ENTRY CONDTIONS 
*         --------------- 
*         HCF(5) - ARRAY PRESET WITH POINTER 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 HCF(5) ARE SCANNED 
*                  SEQUENTIALLY AND SEVERAL SUBHEADERS MAY BE PRINTED.
*         ST     - CONTAINS POINTER TO WHERE ROUTINE WILL START 
*                  SCAN OF HCF FLAG.
* 
*         EXIT CONDITIONS 
*         --------------- 
*         SUBHEADER HAS BEEN PRINTED
*         AN (HCF) FLAG CONTAINING (0) HAS BEEN ENCOUNTERED 
* 
*         DATA AREAS
*         ----------
*         HCF(5)  - FLAGS TO CONTROL SUB-HEADERS TO PRINT 
*         TYPDT  - CURRENT DEVICE TYPE
* 
*         CALLED  BY
*         ----------
*         PRINT14 
*         UCHEK14 
* 
*CALL HPACOM1 
*CALL HPACOM2 
* 
      COMMON /MFLD/ IFLD2(50), NFLD2(50), FCSEL(2,4), I64K
* 
      P = ST
      GO TO 5 
  
    2 LINE = LINE + 1 
    5 LINE = LINE + 1 
  
    6 IF (P .GT. 5) GO TO 1000
  
*     DETERMINE PRINT HEADER TO BE CALLED 
      PTR = HCF(P)
      IF ((PTR .LE. 0) .OR. (PTR .GT.14))  GO TO 1000 
      P = P + 1 
  
*         SKIP PRINTING ENTRY DATE FOR EPM WARNINGS 
      IF ((PTR .EQ. 9) .AND. (MTY .EQ. O"4317")) GO TO 6
* 
*     JUMP TO PRINT FORMAT AS CALLED BY PTR 
* 
      GO TO (10,20,30,40,50,60,70,80,90,100,110,120,130,140)  PTR 
  
   10 IF (RTY .EQ. O"11") GO TO 6 
      IF (MTY .EQ. O"4305") GO TO 6 
      PRINT 11,IFLD2(23),IFLD2(25),IFLD2(41)
   11 FORMAT (/,1X,'DT - ** MR **',5X,'ELEMENT = ',Z2,4X, 
     .       'SERIAL NUMBER = ',Z3,Z1)
      GO TO 2 
  
* 
   20 IF (RTY .EQ. O"11") GO TO 6 
      IF (MTY .EQ. O"4305") GO TO 6 
      PRINT 21,IFLD2(24),(IFLD2(I),I=31,35),IFLD2(45),MFID,PL(57) 
   21 FORMAT (19X,'MODEL   = ',Z2,4X,'OI REGISTER   = ',Z4,1X,Z4,1X,
     .  2Z2,1X,Z3,Z1,/,19X,'MFID    = ',R1,21X,'(',I3,'K CHIP MEMORY)') 
      GO TO 2 
  
*     MEMORY ERRORS DETAIL REPORT HEADER - 16K
   30 PRINT 31
   31 FORMAT (/,1X,'DATE',48X,'WORD       CHIP',/,
     .     3X,'TIME    COLUMN    CAGE      BANK    BIT     ROW   ', 
     .'ADDRESS    ADDRESS     PORT',/,1X,7('----------'),'---------') 
      LINE = LINE + 2 
      GO TO 2 
  
*     MEMORY ERRORS SUMMARY BY BANK AND CAGE - 16K
   40 PRINT 41, HDATA(1)
   41 FORMAT (//,5X,'SUMMARY OF FAILURES BY BANK',26X,'CAGE ',A2, 
     .         /,5X,6('----------'),
     ./,5X,'BANK NUMBER      =   0   1   2   3   4   5   6   7',/)
      LINE = LINE + 3 
      GO TO 2 
  
*     SECDED SUMMARY - POTENTIAL HARD ERRORS - 16K
   50 PRINT 51
   51 FORMAT (//,5X,'SUMMARY OF POTENTIAL HARD SECDED ERRORS BY', 
     .' ADDRESS',/,5X,6('----------'),'------', 
     .//,5X,'COUNT   WORD ADDRESS   CHIP ADDRESS   COL   CAGE   BANK  ',
     .'BIT   ROW',
     . /,5X,'-----   ------------   ------------   ---   ----   ----  ',
     .'---   ---')
      LINE = LINE + 3 
      GO TO 2 
  
*     SECDED SUMMARY - TRANSIENT ERRORS - 16K 
   60 PRINT 61
   61 FORMAT (//,5X,'SUMMARY OF TRANSIENT SECDED ERRORS BY ADDRESS',
     . /,5X,6('----------'),'------', 
     .//,5X,'        WORD ADDRESS   CHIP ADDRESS   COL   CAGE   BANK  ',
     .'BIT   ROW',
     . /,5X,'        ------------   ------------   ---   ----   ----  ',
     .'---   ---')
      LINE = LINE + 3 
      GO TO 2 
  
*     SECDED DETAIL REPORT HEADER - 16K 
   70 PRINT 71, IFLD(33)
   71 FORMAT(/,1X,'DT = ** MR **   MSG >>> (708) TOP OF HOUR SECDED ID',
     .            ' TABLE           MODEL = ',Z2,//,
     .       1X,'DATE     HOUR',25X,'WORD    CHIP SYN  MF SEQ DFT',/, 
     .       2X,'TIME    COUNT COL CAGE BANK BIT ROW  ADDRESS ',
     .       'ADDR CODE ID NUM REV MESSAGE',/,
     .       1X,9('----------'),'--') 
      GO TO 2 
  
*         SECDED SUMMARY - TRANSIENT ERRORS - 64K AND 256K
   80 PRINT 81
   81 FORMAT (//,5X,'SUMMARY OF TRANSIENT SECDED ERRORS BY ADDRESS',
     .  /,5X,6('----------'),'------',
     .//,5X,'        WORD ADDRESS   CHIP ADDRESS   COL   DIST   BANK  ',
     .'BIT  RANK',
     . /,5X,'        ------------   ------------   ---   ----   ----  ',
     .'---  ----')
      GO TO 1000
  
*     DATE
   90 PRINT 91,SEBUF(23)
   91 FORMAT (1X,A8)
      GO TO 6 
  
*         SUBHEADER FOR MISCELLANEOUS MAINFRAME ERRORS/MSGS 
  100 IF (MTY .EQ. O"4306") THEN
         PRINT 1001 
 1001    FORMAT (' DT - ** MR ***   MSG >>> (209) FATAL CPU ERROR', 
     .           ' (CPU ERROR EXIT MODE 20)',/) 
         PRINT 105
         LINE = LINE + 4
         GO TO 2
      ELSE IF (MTY .EQ. O"4307") THEN 
         PRINT 1002 
 1002    FORMAT (' DT - ** MR ***   MSG >>> (209) FATAL CPU ERROR', 
     .           ' (CPU ERROR EXIT MODE 67)',/) 
         PRINT 105
         LINE = LINE + 4
         GO TO 2
      ELSE IF (MTY .EQ. O"4311") THEN 
         PRINT 1003 
 1003    FORMAT (' DT - ** MR ***   MSG >>> (707) TOP OF HOUR MAIN',
     .           'FRAME ELEMENT COUNTER BUFFERS',/) 
         PRINT 109
         LINE = LINE + 4
         GO TO 2
      ENDIF 
  
      PRINT 101,SEBUF(27),SEBUF(28),SEBUF(29) 
  101 FORMAT (' DT - ** MR ***   MSG-TYP >>> ',2A10,A8,' <<<',/)
  
      IF  (MTY .EQ. O"67")   PRINT 102
      IF  (MTY .EQ. O"316")  PRINT 108
      IF  (MTY .EQ. O"4300") PRINT 103
      IF  (MTY .EQ. O"4310") PRINT 107
      IF ((MTY .EQ. O"4314") .OR. (MTY .EQ. O"4315")) PRINT 104 
      IF (MTY .EQ. O"4320") PRINT 106 
      IF (MTY .EQ. O"4316") PRINT 151 
      IF (MTY .EQ. O"4317") PRINT 152 
      LINE = LINE + 4 
      GO TO 2 
  
*         SUBHEADER FOR MICROCODE/EI ENVIRONMENT MESSAGES 
  102 FORMAT (1X,'DATE',13X,'MICROCODE   DATE',16X,'EI REV. DATE',7X, 
     .'MF',/, 
     .7X,'TIME       NAME',8X,'GENERATED   LOADED  LEVEL   GENERATED',
     .'  ID',/,1X,7(10H----------)) 
  
*         SUBHEADER FOR INVALID/INCOMPLETE MAINFRAME ERRORS 
  103 FORMAT (1X,'DATE                    ',/,7X,'TIME      ',
     .' SYMPTOM CODE      MFID      SEQUENCE NUMBER   DFT REVISION',/,
     .1X,7('----------'),'----')
  
*         SUBHEADER FOR DFT/SCI ERRORS
  104 FORMAT (1X,'DATE',61X,'MF SEQ DFT',/, 
     .3X,'TIME',5X,'FSC',10X,'DFT/SCI ERROR MESSAGE',20X, 
     .'ID NUM REV',/, 
     .1X,7(10H----------),6H------) 
  
*         SUBHEADER FOR PROCESSOR MALFUNCTION/STATE ERRORS
  105 FORMAT (1X,'DATE',/,
     .7X,'TIME       CONTENTS OF RA + 0     CONTENTS OF LOCATION',
     .' (P)  MFID',/,1X,7(10H----------)) 
  
  
*         SUBHEADER FOR NEGATIVE SIT CONDITION
  106 FORMAT (1X,'DATE',34X,'MF SEQ DFT',/, 
     .3X,'TIME',5X,'FSC',13X,'COUNT',6X,'ID NUM REV',/, 
     .1X,5(10H----------))
  
*         SUBHEADER FOR ENVIRONMENTAL WARNINGS/CLEARS 
  107 FORMAT (1X,'DATE',64X,'MF SEQ DFT',/, 
     .3X,'TIME     FSC',10X,'ENVIRONMENTAL MESSAGE      ',
     .'ELEM  MODEL  S/N ID NUM REV',/,
     .1X,7(10H----------),8H--------) 
  
*        PRE-DFT HOURLY PROCESSOR ERROR COUNTS
  108 FORMAT (29X,'HOURLY',6X,'HOURLY',/, 
     .       1X,'DATE',6X,'TIME',6X,'MFID  ', 
     .       'CPU0 COUNT  CPU1 COUNT',/,1X,5(10H----------))
  
*         TOP OF THE HOUR MAINFRAME ELEMENT COUNTER BUFFER
  109 FORMAT (1X,'DATE',8X,'MAINFRAME    UNLOGGED  CORRECTED  UNCORR',
     .'ECTED      SEQUENCE  DFT',/, 
     .3X,'TIME       ELEMENT      COUNT      COUNT        CO',
     .'UNT   MFID  NUMBER REVISION',/,
     .1X,7(10H----------),9H---------)
  
*         MEMORY ERRORS DETAIL REPORT HEADER - 64K AND 256K 
  110 PRINT 111 
  111 FORMAT (/,1X,'DATE',12X,'DISTRIBUTOR',25X,'WORD',7X,'CHIP',/, 
     .     3X,'TIME   COLUMN    NUMBER    BANK     BIT    RANK   ', 
     .'ADDRESS    ADDRESS    PORT',/,1X,7('----------'),'---------')
      LINE = LINE + 2 
      GO TO 2 
  
*          SECDED DETAIL REPORT HEADER - 64K AND 256K 
  120 PRINT 121, IFLD(33) 
  121 FORMAT(/,1X,'DT = ** MR **   MSG >>> (708) TOP OF HOUR SECDED ID',
     .            ' TABLE           MODEL = ',Z2,//,
     .       1X,'DATE     HOUR',25X,'WORD    CHIP  SYN  MF SEQ DFT',/,
     .       2X,'TIME    COUNT COL DIST BANK BIT RANK ADDRESS ',
     .       'ADDR  CODE ID NUM REV MESSAGE',/, 
     .       1X,9('----------'),'---')
      GO TO 2 
  
*         SECDED SUMMARY - POTENTIAL HARD ERRORS - 64K AND 256K 
  130 PRINT 131 
  131 FORMAT (//,5X,'SUMMARY OF POTENTIAL HARD SECDED ERRORS BY', 
     .' ADDRESS',/,5X,6('----------'),'------', 
     .//,5X,'COUNT   WORD ADDRESS   CHIP ADDRESS   COL   DIST   BANK  ',
     .'BIT  RANK',
     . /,5X,'-----   ------------   ------------   ---   ----   ----  ',
     .'---  ----')
      LINE = LINE + 4 
      GO TO 2 
  
*         MEMORY ERRORS SUMMARY BY BANK AND DIST - 64K AND 256K 
  140 PRINT 141, HDATA(1) 
  141 FORMAT (//,5X,'SUMMARY OF FAILURES BY BANK',12X,'DISTRIBUTOR ', 
     .'NUMBER ',I1,/,5X,5('----------'),'---------',
     ./,5X,'BANK NUMBER      =   0   1   2   3   4   5   6   7',/)
      LINE = LINE + 3 
      GO TO 2 
  
*         SUBHEADER FOR EPM BOARD ERROR 
  151 FORMAT (1X,'DATE',70X,'DFT',/,
     .3X,'TIME ',6X,'CODE  DESCRIPTION',37X,'COUNT  SEQ',/, 
     .1X,7('-----------'))
  
*         SUBHEADER FOR EPM WARNINGS
  152 FORMAT (76X,'DFT',/,
     .1X,'DATE     TIME     SEQ  EC WARNING DESCRIPTION',30X,'SEQ',/, 
     .1X,7('-----------'),'--') 
* 
 1000 RETURN
      END 
      SUBROUTINE PRINT14 (LT,NW)
* 
**        DESCRIPTON
*         ----------
*         SUBROUTINE PRINT14 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
* 
*         EXIT CONDITIONS 
*         ---- ---------- 
*         DATA AREAS SHARED - LINE
* 
*         CALLS 
*         ----- 
*         HEADER - INITIALIZE EACH PAGE OF VARIOUS REPORTS. 
*         PHEAD14- PRINT SUB-HEADER IN VARIOUS REPORTS. 
* 
*CALL HPACOM1 
* 
      DIMENSION IFORM (11, 31), FMT (11)
* 
*     FORMAT FOR INCOMPLETE/INVALID BML ERROR RECORDS 
      DATA (IFORM (I,1),I=1,4,1)/ 
     .10H(7X,A8,7X,,10HO4,12X,R1,,10H14X,Z2,12X,10H,R2)      /
* 
*     FORMAT FOR 990 MEMORY DETAIL REPORT - 16K 
      DATA (IFORM (I,2),I=1,6,1)/ 
     .10H(3X,A8,2X,,10HI1,8X,A2,9,10HX,I1,6X,A2,10H,6X,I1,4X,,
     .10HZ7,4X,Z4,9,10HX,I1)      / 
* 
*     FORMAT FOR MEMORY DETAIL REPORT ERROR MESSAGE 
      DATA (IFORM (I,3),I=1,2,1)/ 
     .10H(13X,3(A10,10H))         / 
* 
*     FORMAT FOR DETAIL EXTENDED LISTING OF MULTIPLE REGISTERS
      DATA (IFORM (I,4),I=1,9,1)/ 
     .10H(13X,4HREG,10H ,Z2,1H=,Z,10H4,1X,Z4,1X,10H,Z2,Z2,1X,,
     .10HZ3,Z1,8X,4,10HHREG ,Z2,1,10HH=,Z4,1X,Z,10H4,1X,Z2,Z2,
     .10H,1X,Z3,Z1) / 
* 
*     FORMAT FOR DETAIL EXTENDED LISTING OF A SINGLE REGISTER 
      DATA (IFORM (I,5),I=1,5,1)/ 
     .10H(13X,4HREG,10H ,Z2,1H=,Z,10H4,1X,Z4,1X,10H,Z2,Z2,1X,,
     .10HZ3,Z1)     / 
* 
*     FORMAT FOR SUMMARY OF ERRORS BY BANK AND CAGE 
      DATA (IFORM (I,6),I=1,4,1)/ 
     .10H(5X,11HERR,10HOR COUNT,6,10HX,1H=,8(1X,10H,I3))     /
* 
*     FORMAT FOR SUMMARY OF POTENTIAL HARD SECDED ERRORS - 16K
      DATA (IFORM (I,7),I=1,5,1)/ 
     .10H(4X,I6,5X,,10HZ7,9X,Z4,9,10HX,I1,5X,A2,10H,6X,I1,4X,,
     .10HA2,4X,I1) /
* 
*     FORMAT FOR SUMMARY OF TRANSIENT SECDED ERRORS - 16K 
      DATA (IFORM (I,8),I=1,5,1)/ 
     .10H(15X,Z7,9X,10H,Z4,9X,I1,,10H5X,A2,6X,I,10H1,4X,A2,4X,
     .10H,I1)      /
* 
*     FORMAT FOR SECDED DETAIL REPORT - 16K 
      DATA (IFORM (I,9),I=1,9,1)/ 
     .10H(2X,A8,1X,,10HI4,2X,I1,3,10HX,A2,3X,I1,10H,3X,A2,3X,,
     .10HI1,3X,Z7,1,10HX,Z4,2X,Z2,10H,2X,R1,2X,,10HZ2,2X,R2,2,
     .10HX,3A10)   /
* 
*     FORMAT FOR PROCESSOR MALFUNCTION/STATE ERRORS 
      DATA(IFORM(I,10),I=1,3,1)/
     .10H(7X,A8,3X,,10HO20,3X,O20,10H,8X,R1)   /
* 
*     FORMAT FOR ENVIRONMENT WARNINGS/CLEARS
      DATA(IFORM(I,11),I=1,7,1)/
     .10H(3X,A8,' (,10H',Z3,') ',,10H7X,2A10,A5,10H,2X,A7,2X,,
     .10HZ2,1X,Z4,2,10HX,R1,2X,Z2,10H,2X,R2)   /
  
      DATA(IFORM(I,12),I=1,4,1)/
     .10H(52X,A7,2X,10H,Z2,1X,Z4,,10H2X,R1,2X,Z,10H2,2X,R2)  /
* 
*     FORMAT FOR TOP OF THE HOUR MAINFRAME ELEMENT COUNTER BUFFER 
      DATA(IFORM(I,13),I=1,5,1)/
     .10H(3X,A8,3X,,10HA10,1X,I5,,10H6X,I5,7X,I,10H5,7X,R1,6X,
     .10H,Z2,5X,R2)/
* 
*     FORMAT FOR MICROCODE/EI ENVIRONMENT MESSAGES
      DATA(IFORM(I,14),I=1,7,1) / 
     .10H(7X,A8,3X,,10HR7,5X,R2,2,10H(1H/,R2),5,10HX,A3,5X,R2,
     .10H,5X,R2,2(1,10HH/,R2),3X,,10HR1)        / 
* 
*     FORMAT FOR PRE-DFT PROCESSOR HOURLY ERROR COUNTS
      DATA(IFORM(I,15),I=1,3,1) / 
     .10H(11X,A8,5X,10H,R1,2(8X,I,10H4))       /
* 
*     FORMAT FOR MEMORY DETAIL REPORT ERROR MESSAGE 
      DATA(IFORM(I,16),I=1,6,1) / 
     .10H(7X,'(',Z3,10H,') ',4(,A,10H10),7X,'SE,10HQUENCE NUM,
     .10HBER = ',Z2,10H)         /
* 
*         FORMAT FOR 990 MEMORY DETAIL REPORT - 64K AND 256K
      DATA (IFORM (I,18),I=1,6,1)/
     .10H(3X,A8,2X,,10HI1,8X,I1,9,10HX,I1,6X,A2,10H,7X,I1,4X,,
     .10HZ7,4X,Z5.0,10H,7X,I1)   /
* 
*         FORMAT FOR SECDED DETAIL REPORT - 64K AND 256K
      DATA(IFORM(I,19),I=1,9,1) / 
     .10H(2X,A8,1X,,10HI4,2X,I1,4,10HX,I1,3X,I1,10H,3X,A2,3X,,
     .10HI1,3X,Z7,1,10HX,Z5.0,2X,,10HZ2,2X,R1,2,10HX,Z2,2X,R2,
     .10H,2X,3A10) /
* 
*         FORMAT FOR SUMMARY OF TRANSIENT SECDED ERRORS - 64K/256K
      DATA (IFORM (I,20),I=1,5,1) / 
     .10H(15X,Z7,9X,10H,Z5.0,8X,I,10H1,5X,I1,6X,10H,I1,4X,A2,,
     .10H4X,I1)    /
* 
*         FORMAT FOR SUMMARY OF POTENTIAL HARD SECDED ERRORS - 64K/256K 
      DATA (IFORM (I,21),I=1,6,1) / 
     .10H(4X,I6,5X,,10HZ7,9X,Z5.0,10H,8X,I1,5X,,10HI1,6X,I1,4,
     .10HX,A2,4X,I1,10H)         /
* 
*         FORMAT FOR INVALID DATA IN REGISTERS A0 - A7
      DATA (IFORM (I,22),I=1,2,1) / 
     .10H(13X,2A10,,10H8(1X,A2)  /
* 
*         FORMAT FOR DFT5 ENVIRONMENT WARNINGS/CLEARS 
      DATA(IFORM(I,23),I=1,7,1)/
     .10H(3X,A8,1X,,10HR10,R2,1X,,10H2A10,A5,2X,10H,A7,2X,Z2,,
     .10H1X,Z4,2X,R,10H1,2X,Z2,2X,10H,R2)      /
* 
*         FORMAT FOR DFT/SCI ERROR MESSAGES 
      DATA(IFORM(I,24),I=1,5,1)/
     .10H(3X,A8,1X,,10HR10,R2,1X,,10H4A10,2X,R1,10H,2X,Z2,2X,,
     .10HR2)       /
* 
*         FORMAT FOR FIRST DFT/SCI DATA BLOCK 
      DATA(IFORM(I,25),I=1,5,1)/
     .10H(11X,'DATA,10H BLOCK:   ,10H',3(Z4,1X),10H,Z3,Z1,4X,,
     .10H4(R4,1X)) /
* 
*         FORMAT FOR ADDITIONAL DFT/SCI DATA BLOCK
      DATA(IFORM(I,26),I=1,4,1)/
     .10H(25X,3(Z4,,10H1X),Z3,Z1,,10H4X,4(R4,1X,10H)         /
* 
*          FORMAT FOR NEGATIVE SIT CONDITION
      DATA(IFORM(I,27),I=1,5,1)/
     .10H(3X,A8,1X,,10HR10,R2,5X,,10HI4,2X,3A1,,10H2X,R1,2X,Z,
     .10H2,2X,R2)  /
* 
*          FORMAT FOR EPM LAST RESET DATE/TIME
      DATA(IFORM(I,28),I=1,11,1)/ 
     .10H(3X,'LAST ,10HRESET DATE,10H/TIME = ',,10HZ2,'/',Z2,,
     .10H'/',Z2,1X,,10HZ2,'.',Z2,,10H'.',Z2,3X,,10H'MFID = ',,
     .10HR1,3X,'DFT,10H REV = ',R,10H2)        /
* 
*          FORMAT FOR EPM REVISION DATE AND NUMBER
      DATA(IFORM(I,29),I=1,6,1)/
     .10H(5X,'EPM R,10HEV DATE = ,10H',Z2,'/',Z,10H2,'/',Z2,',
     .10H   EPM REV,10H = ',Z2)  /
* 
*          FORMAT FOR EPM BOARD ERROR DETAIL
      DATA(IFORM(I,30),I=1,3,1)/
     .10H(3X,A8,3X,,10H5A10,5X,I4,10H,3X,Z2)   /
* 
*          FORMAT FOR EPM WARNINGS
      DATA(IFORM(I,31),I=1,6,1)/
     .10H(1X,Z2,'/',10HZ2,'/',Z2,,10H1X,Z2,'.',,10HZ2,'.',Z2,,
     .10H2X,Z2,2X,5,10HA10,3X,Z2)/
***************************************************************** 
  
*     BYPASS PAGE CHECK FOR CONTINUATION DATA 
      IF ((LT .GE. 3) .AND. (LT .LE. 5)) GO TO 5
  
*     CHECK FOR PAGE LIMIT
      IF (LINE .LE. PLF) GO TO 5
  
*     INSERT DATE FOR NEW HEADER
      HCF(4) = 9
      CALL HEADER 
      CALL PHEAD14 (1)
  
*     INCREMENT LINE COUNT AND MOVE DATA TO THE PRINT ARRAY 
    5 LINE = LINE + 1 
      IF ((LT .EQ. 4) .AND. (NW .EQ. 28)) LINE = LINE + 2 
  
      DO 25 J = 1, 11 
   25 FMT(J) = IFORM (J,LT) 
  
*     PRINT THE LINE OF DATA
      PRINT FMT,(PL(J),J=1,NW)
   40 DO 45 K = 1,NW
   45 PL(K) = 1H
* 
      RETURN
      END 
      SUBROUTINE UCHEK14
**
*       UCHEK14 - BASIC ROUTINE USED BY DETAIL PROCESSORS, TO 
*                 TEST FOR CHANGES IN MESSAGE THAT WILL AFFECT
*                 SUBHEADER PRINT.  WHEN CHANGE OCCURS, MODIFY
*                 POINTERS AND CALL PHEAD14 FOR NEW HEADING 
*                 OF DEVICE AND MESSAGE TYPE. 
* 
*       ENTRY CONDITIONS
*       ------------------- 
*       CURRENT MESSAGE IN PROCESS IS IN (IFLD2/NFLD2/IFLD/NFLD)
* 
*       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 
  
*     JUMP IF NOT INITIAL ENTRY 
      IF (FLAGS(12) .NE. 7HNEW-EST) GO TO 200 
      FLAGS(12) = 1H
      SVMTY = IFLD(FMTY)
      PDATE = SEBUF(21) 
      CALL FLIP3
      HCF(4) = 9
      CALL HEADER 
      CALL PHEAD14 (1)
      GO TO 500 
  
*     TEST CHANGE IN MESSAGE TYPE 
  200 IF ((SVMTY  .NE. MTY) .AND. (RTY .NE.  O"11")) GO TO 400
      IF  ((SVMTY .NE. MTY) .AND. (RTY .EQ. O"11")) GO TO 300 
  
*     TEST NEED FOR NEW PAGE FOR MEMORY ERRORS
      IF ((MTY .EQ. O"4304") .AND. ((LINE+6) .GE. PLF)) GO TO 400 
  
  
*     TEST CHANGE OF DATE 
      IF (PDATE .EQ. SEBUF(23)) GO TO 500 
* 
*     PUT DATE BACK INTO DETAIL LINE
      IF ((LINE + 2) .GT. PLF) GO TO 400
      PDATE = SEBUF(23) 
      CALL FLIP3
      HCF(4) = 9
      CALL PHEAD14 (4)
      GO TO 500 
  
*     PRINT NEW SUB-HEADER FOR MISC. MAINFRAME ERRORS/MSGS. 
  300 IF ((LINE+9) .GT. PLF) GO TO 400
      PDATE = SEBUF(23) 
      SVMTY = MTY 
      CALL FLIP3
      HCF(4) = 9
      CALL PLSEC(4) 
      CALL PHEAD14 (3)
      GO TO 500 
  
*     PRINT NEW PAGE HEADER AND SUBHEADERS
  400 PDATE = SEBUF(23) 
      SVMTY = MTY 
      CALL FLIP3
      HCF(4) = 9
      CALL HEADER 
      CALL PHEAD14 (1)
  
  500 RETURN
      END 
          IDENT  INTEM14
          LCC OVCAP.
          ENTRY  INTEM14
OVLNO     SET    14 
          USE    /LINK/ 
LINKET    BSS    1
LINKEM    BSS    1
          USE    *
  
INTEM14   BSS    1
          SX6    ET 
          SA6    LINKET 
          SX6    EC 
          SA6    LINKEM 
          JP     INTEM14
          EJECT 
*CALL COMHPAERT 
          END 
