*DECK HPA315
      OVCAP.
      SUBROUTINE HPA315 
* 
*         CONTROL PROGRAM FOR HPA315 - CYBERPLUS
* 
*CALL HPACOM1 
  
      IF (FROG(6) .NE. L"T") GO TO 10 
      CALL SECOND(CP) 
      PRINT 9,CP
    9 FORMAT ( ' ENTER HPA315, SECOND = ',F10.3)
   10 CONTINUE
* 
      IF (RTY .EQ. O"63") GO TO 400 
* 
*         MESSAGES NOT PROCESSED, GET NEXT RECORD 
* 
      CALL GNR3 
      CALL SETEM3(1)
      GO TO 1000
* 
*         CYBERPLUS ERRORS
* 
  400 CALL AN15CP 
  
 1000 CONTINUE
      END 
      SUBROUTINE AN15CP 
* 
*         DESCRIPTION 
*         ----------- 
*         SUBROUTINE AN15CP PROCESSES SEF INPUT RECORDS FOR CYBERPLUS 
*         ERRORS FOR ERROR CODE 3410B, RECORD TYPE 63B. 
* 
*         ERRORS IN DATA WILL BE DENOTED BY LOOPFLG 
*                LOOPFLG = 0        ILLEGAL BIT COUNT 
*                        = 1        INSUFFICIENT DATA 
*                        = 2        LOOP ENDS AT WORD 8 - NEXT RECORD IN
*                        = 21 - 25  LOCATION OF DATA IN IFLD ARRAY
* 
*         ENTRY CONDITION 
*         --------------- 
*         ENTERED WHEN SEF IS POSITIONED AT THE FIRST RECORD OF CYBERPLUS 
*         ERROR MESSAGES. 
* 
*         EXIT CONDITION
*         --------------
*         EXIT WHEN SEF RECORDS FOR CYBERPLUS ERRORS ARE EXHAUSTED. 
* 
*         CALLED BY 
*         --------- 
*         PROGRAM HPA315
* 
*         CALLS 
*         ----- 
*         DL15CP
* 
*CALL HPACOM1 
*CALL HPACOM2 
*CALL HPACOM3 
      COMMON / IGRAPH / IGRAPH(16,12) 
      COMMON/HRSCCT/HRSCCT,TCT(5,1) 
  
      DIMENSION VALHPP (12) 
      DIMENSION LOOPMSG(2,1)
  
      DATA VALHPP / O"3411",       0,       0, O"3422", O"3423",
     .              O"3427", O"3430", O"3431", O"3432", O"3434",
     .              O"3435", O"3436"  / 
  
      DATA (LOOPMSG(I,1),I=1,2,1)  /
     .10H*** EXCESS,10H DATA *** /
      DATA (TCT(I,1),I=1,5,1)  /
     .10H MORE OCCU,10HRRENCES TH,10HIS HOUR OF,10H THIS SYMP,
     .10HTOM CODE  /
  
* 
*     INITIALIZATION FOR UNIT ANALYSIS REPORTS
   50 CALL INISET3
  
      DO 60 I = 1, 16 
      DO 60 J = 1, 12 
   60 IGRAPH(I,J) = 0 
* 
*     SET HEADER POINTERS 
* 
      IHDR = 3
      TYPID = 10HCYBERPLUS
      MPR(1,1) = O"3410"
      MPR(1,2) = 3
* 
* 
*     COLLECT DATA FOR ANALYSIS REPORT
* 
  100 IF (RCFA .NE. 2HON) GO TO 200 
      CALL STOJN3 
* 
*     COLLECT DATA FOR ANALYSIS GRAPH REPORT
* 
      HPPX = (IFLD(21) .AND. O"7777") 
      HPPX = (15 - HPPX) + 1
      IF ((HPPX .LT. 1) .OR. (HPPX .GT. 16)) GO TO 200
      HPAEC = SHIFT(IFLD(21),24) .AND. O"7777"
      DO 110 I = 1, 12
      IF (HPAEC .NE. VALHPP(I)) GO TO 110 
      IGRAPH (HPPX,I) = IGRAPH (HPPX,I) + 1 
      GO TO 200 
  110 CONTINUE
* 
*     GENERATE A DETAIL REPORT
* 
  200 HDATA(5) = IFLD(FC16) 
      CALL DL15CP (LOOPFLG) 
* 
*     READ THE NEXT SEF RECORD
* 
      IF ((LOOPFLG.EQ.1).OR.(LOOPFLG.EQ.2)) GO TO 215 
  210 CALL GNR3 
      CALL SETEM3 (1) 
* 
*        VERIFY ALL DATA WAS USED 
* 
      IF ((IFLD(18).EQ.R" CONTINU").AND.(TWIC.NE.0).AND.
     .            (LOOPFLG.NE.0))   THEN
           CALL LOAPR(1,LOOPMSG(1,1),LOOPMSG(2,1),SP,SP,SP,SP,SP,SP)
           CALL PRINT15 (13,2)
           IF (RCFD.EQ.2HON)  CALL PLSEC (5)
           GO TO 210
      ENDIF 
* 
      IF ((TWIC.NE.0).AND.(IFLD(18).EQ.R" CONTINU"))  GO TO 210 
* 
  215 LOOPFLG = 22
      IF (TWIC .GE. 3) GO TO 100
  
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * 
  
* 
*     GENERATE THE ANALYSIS REPORT
* 
* 
*     MAKE SURE THE DETAIL REPORT IS COMPLETE 
* 
      IF (HRSCCT.GT.10)  THEN 
         HRS = HRSCCT - 10
         CALL LOAPR(1,HRS,TCT(1,1),TCT(2,1),TCT(3,1),TCT(4,1),TCT(5,1), 
     .                                        SP,SP)
         CALL PRINT15(24,6) 
         CALL PRINT15(13,3) 
         HRSCCT = 0 
      ENDIF 
      IF (RCFA .NE. 2HON) GO TO 900 
  
      CALL XOVCAP ('ERDIST3',0,0) 
      CALL UOVCAP ('ERDIST3') 
  
* 
*     GENERATE THE GRAPH REPORT 
* 
      IF (LINE .GT. 45) CALL HEADER 
      IPRTHD = 3HOFF
      HCF(5) = 4
  
      DO 600 I = 1, 16
      PL(1) = R"HPP"
      PL(2) = 16 - I
      IPRT = 3HOFF
         DO 550 J = 1, 12 
         PL(J + 2) = IGRAPH(I,J)
         IF (PL(J + 2) .GT. 99999) PL(J + 2) = 99999
         IF (PL(J + 2) .NE. 0) IPRT = 2HON
  550    CONTINUE 
      IF ((IPRTHD .EQ. 3HOFF) .AND. (IPRT .EQ. 2HON)) THEN
         CALL PHEAD15 (5) 
         IPRTHD = 2HON
      ENDIF 
      IF (IPRT .EQ. 2HON) CALL PRINT15 (2,14) 
  600 CONTINUE
  
      HCF(5) = 5
      IF (IPRTHD .EQ. 2HON) CALL PHEAD15 (5)
* 
*     GENERATE THE SECDED REPORT
* 
      IF (STOR(1,1) .EQ. 0)  GO TO 800
      HFLG = 0
      HCF(1) = 6
      DO 720 K = 1,68 
         IF (STOR(K,1).EQ.0)    GO TO 725 
         CALL LOAPR(1,STOR(K,2),STOR(K,1),STOR(K,5),STOR(K,3),
     .                STOR(K,4),STOR(K,6),SP,SP)
         IF (HFLG.EQ.0)  THEN 
            IF ((LINE + 7).GT.PLF)  CALL HEADER 
            CALL PHEAD15(1) 
            HFLG = 1
         ENDIF
         CALL PRINT15(3,6)
  720 CONTINUE
* 
*          PRINT MESSAGE IF ARRAY OVERFLOW
* 
  725 IF (STOR(68,32).NE.0) THEN
         PRINT 726, STOR(68,32) 
  726    FORMAT(//,' ***** SECDED ARRAY OVERFLOWED FOR ANALYSIS ',
     .   'SUMMARY REPORT ',I5,' TIMES.',/' ***** THE DETAIL REPORT ', 
     .   'CONTAINS ALL SECDED ERRORS WHICH WERE LOGGED.') 
      ENDIF 
* 
  800 PRINT 801 
  801 FORMAT (//,10X,'CONSULT THE CYBERPLUS TROUBLESHOOTING GUIDE ',
     .'(60462390)',/,18X,'FOR FRU INFORMATION BY SYMPTOM CODE (SC).') 
      LINE = LINE + 4 
* 
  900 IF (TWIC .EQ. 2) GO TO 50 
  
      RETURN
      END 
      SUBROUTINE DL15CP (LOOPFLG) 
* 
*         DESCRIPTION 
*         ----------- 
*         SUBROUTINE DL15CP GENERATES A DETAIL REPORT FOR CYBERPLUS 
*         ERRORS FOR ERROR CODE 3410B, RECORD TYPE 63B. 
* 
*         ERRORS IN DATA WILL BE DENOTED BY LOOPFLG 
*                LOOPFLG = 0        ILLEGAL BIT COUNT 
*                        = 1        INSUFFICIENT DATA 
*                        = 2        LOOP ENDS AT WORD 8 - NEXT RECORD IN
*                        = 21 - 25  LOCATION OF DATA IN IFLD ARRAY
* 
*         ENTRY CONDITION 
*         --------------- 
*         ENTERED WHEN SEF IS POSITIONED AT NEXT RECORD (OR SET OF RECORDS) 
*         CONTAINING CYBERPLUS ERRORS TO BE REPORTED. 
* 
*         EXIT CONDITION
*         --------------
*         EXIT WHEN SEF RECORDS (OR SET OF RECORDS) CONTAINING CYBERPLUS ERRORS 
*         HAS BEEN REPORTED.
* 
*         CALLED BY 
*         --------- 
*         AN15CP
* 
*         CALLS 
*         ----- 
*         PRINT15 
* 
*CALL HPACOM1 
*CALL HPACOM2 
      COMMON/HRSCCT/HRSCCT,TCT(5,1) 
* 
  
      DIMENSION ICRPMSG (2, 16), VALHPP (12)
      DIMENSION LOOPMSG (2,1) 
  
      DATA (ICRPMSG(I, 1),I=1,2,1) / 10HSTATUS BIT,10H, SPARE    /
      DATA (ICRPMSG(I, 2),I=1,2,1) / 10HDOUBLE-BIT,10H HPM ERROR /
      DATA (ICRPMSG(I, 3),I=1,2,1) / 10HSINGLE-BIT,10HHPM ERROR  /
      DATA (ICRPMSG(I, 4),I=1,2,1) / 10HCNTRL MEM ,10HINTRFC ERR /
      DATA (ICRPMSG(I, 5),I=1,2,1) / 10HAPPLICATIO,10HN RNG STOP /
      DATA (ICRPMSG(I, 6),I=1,2,1) / 10HDF RING ST,10HOP         /
      DATA (ICRPMSG(I, 7),I=1,2,1) / 10HRQSTK RING,10H STOP      /
      DATA (ICRPMSG(I, 8),I=1,2,1) / 10HSYSTEM RIN,10HG STOP     /
      DATA (ICRPMSG(I, 9),I=1,2,1) / 10H170 CHANNE,10HL PARITY   /
      DATA (ICRPMSG(I,10),I=1,2,1) / 10HMULTIPLE L,10HOST PKTS   /
      DATA (ICRPMSG(I,11),I=1,2,1) / 10HLOST PACKE,10HT          /
      DATA (ICRPMSG(I,12),I=1,2,1) / 10HPACKET REA,10HDY         /
      DATA (ICRPMSG(I,13),I=1,2,1) / 10HDMT OCCURR,10HED         /
      DATA (ICRPMSG(I,14),I=1,2,1) / 10HEND FLAG  ,10H           /
      DATA (ICRPMSG(I,15),I=1,2,1) / 10HDF READY  ,10H           /
      DATA (ICRPMSG(I,16),I=1,2,1) / 10HRQSTK READ,10HY          /
  
      DATA VALHPP / O"3411",       0,       0, O"3422", O"3423",
     .              O"3427", O"3430", O"3431", O"3432", O"3434",
     .              O"3435", O"3436"  / 
      DATA (LOOPMSG(I,1),I=1,2,1)  / 10H*** EXCESS,10H DATA *** / 
      DATA HRSCCT/0/
  
      IF (RCFD.EQ.2HON) CALL UCHEK15
  
*     PREPARE 1ST LINE OF DETAIL REPORT (VALIDATE HPP NUMBER) 
      JNAME = IFLD(18)
      HPP = IFLD(21) .AND. O"7777"
      ENCODE (10, 20, HPPX) HPP 
   20 FORMAT (7X,Z3.1)
      HPAEC = SHIFT(IFLD(21),24) .AND. O"7777"
      DO 22 I = 1,12
      IF (HPAEC .EQ. VALHPP(I)) GO TO 24
   22 CONTINUE
      HPPX = 10H
   24 HPN = SHIFT(IFLD(21),-12) .AND. O"7777" 
      HR = IFLD(20) .AND. O"77770000000000000000" 
      IF(HRSCCT.EQ.0) SHR = HR
      IF((HR.NE.SHR) .AND. (HPAEC.EQ.O"3417"))  THEN
        IF(HRSCCT.GT.10)  THEN
           HRS = HRSCCT - 10
           CALL LOAPR(1,HRS,TCT(1,1),TCT(2,1),TCT(3,1),TCT(4,1),
     .                                      TCT(5,1),SP,SP) 
           CALL PRINT15(24,6) 
           CALL PRINT15(13,3) 
           HRSCCT = 0 
           SHR = HR 
        ENDIF 
      ENDIF 
* 
      IF((HR.EQ.SHR) .AND. (HPAEC.EQ.O"3417"))  HRSCCT = HRSCCT + 1 
* 
      IF(HRSCCT.GT.10)  GO TO 100 
  
      CALL LOAPR(1,IFLD(20),IFLD(FPPU),HPPX,SP,SP,SP,JNAME,HPN) 
      IF ((HPAEC .LT. O"3411") .OR. (HPAEC .GT. O"3440")) GO TO 50
      PL(4) = NEC(1,HPAEC)
      PL(5) = NEC(2,HPAEC)
      PL(6) = NEC(3,HPAEC)
  
   50 CALL PRINT15 (1,8)
  
*     REPORT INCOMPLETE BML MESSAGES
      IF ((SHIFT(IFLD(22),12) .AND. O"7777") .EQ. O"7777") THEN 
         IF (RCFD.EQ.2HON)  PRINT 30
   30    FORMAT (26X,'*** INCOMPLETE DATA LOGGED IN BML ***') 
         LINE = LINE + 1
         GO TO 900
      ENDIF 
  
*     REJECT MESSAGES WITH AN INVALID SYMPTOM CODE
      IF ((HPAEC .LT. O"3411") .OR. (HPAEC .GT. O"3440")) GO TO 900 
  
*     EXIT WHEN MESSAGES CONTAIN NO FURTHER DATA
      IF ((HPAEC .EQ. O"3412")  .OR. (HPAEC .EQ. O"3421")  .OR. 
     .   ((HPAEC .GE. O"3424") .AND. (HPAEC .LE. O"3427"))) GO TO 900 
* 
*     REPORT RECORDS CONTAINING A SINGLE WORD OF INFORMATION
* 
      IF ((HPAEC .EQ. O"3411")  .OR.
     .   ((HPAEC .GE. O"3413") .AND. (HPAEC .LE. O"3416")) .OR. 
     .    (HPAEC .EQ. O"3422")  .OR. (HPAEC .EQ. O"3423")  .OR. 
     .    (HPAEC .EQ. O"3440")) THEN
         PL(1) = SHIFT(IFLD(22),-12) .AND. Z"FFFF"
         ICRP = SHIFT(IFLD(22),32) .AND. O"7777 7400 0000 0000 0000"
  
*     CALL OUT THE CRP GENERAL STATUS BITS
         IPRNT = 3HOFF
         DO 60 I = 1,16 
         IF ((SHIFT(ICRP,I) .AND. 1) .EQ. 0) GO TO 60 
         PL(2) = ICRPMSG(1,I) 
         PL(3) = ICRPMSG(2,I) 
         IF (IPRNT .EQ. 3HOFF) THEN 
            IPRNT = 2HON
            CALL PRINT15 (5,3)
         ELSE 
            CALL PRINT15 (6,3)
         ENDIF
   60    CONTINUE 
         IF (IPRNT .EQ. 3HOFF) CALL PRINT15 (5,3) 
  
         IF ((HPAEC .EQ. O"3411") .OR. (HPAEC .EQ. O"3414") .OR.
     .       (HPAEC .GT. O"3416")) GO TO 900
  
         IF ((HPAEC .EQ. O"3413") .OR. (HPAEC .EQ. O"3416")) THEN 
            PL(1) = SHIFT(IFLD(22),-36) .AND. Z"FFFF" 
            CALL PRINT15 (7,1)
            GO TO 900 
         ENDIF
  
         IF (HPAEC .EQ. O"3415") THEN 
            PL(2) = SHIFT(IFLD(22),-32) .AND. Z"FFFF" 
            PL(1) = SHIFT(IFLD(22),-48) .AND. Z"FFF"
            CALL PRINT15 (8,2)
            GO TO 900 
         ENDIF
      ENDIF 
  
      IF ((HPAEC .EQ. O"3435") .OR. (HPAEC .EQ. O"3436")) THEN
         PL(1) = IFLD(22) .AND. O"7777" 
         PL(2) = SHIFT(IFLD(22),-28) .AND. Z"FFFF"
         PL(3) = SHIFT(IFLD(22),-12) .AND. Z"FFFF"
         PL(4) = SHIFT(IFLD(22),-44) .AND. Z"F" 
         IF (HPAEC.EQ.O"3435")  CALL PRINT15 (23,3) 
         IF (HPAEC.EQ.O"3436")  CALL PRINT15 (9,4)
         GO TO 900
      ENDIF 
* 
*     REPORT RECORDS CONTAINING LOOP INFORMATION
* 
  
*     ERROR DETECT LOOP 
  100 CONTINUE
      IF ((HPAEC .EQ. O"3417") .OR. (HPAEC .EQ. O"3420")) THEN
         CALL LOOPEDB (LOOPFLG) 
         GO TO 900
      ENDIF 
  
*     DMAU LOOP 3 
      IF ((HPAEC .EQ. O"3430") .OR. (HPAEC .EQ. O"3431") .OR. 
     .    (HPAEC .EQ. O"3433") .OR. (HPAEC .EQ. O"3434")) THEN
         CALL LOOP3 (LOOPFLG) 
         IF(LOOPFLG.LE.1)  GO TO 900
         IF (HPAEC .EQ. O"3433") GO TO 900
      ENDIF 
  
*     DMAU LOOP 1 
      IF ((HPAEC .EQ. O"3430") .OR. (HPAEC .EQ. O"3432") .OR. 
     .    (HPAEC .EQ. O"3434") .OR. (HPAEC .EQ. O"3437")) THEN
         CALL LOOP1 (LOOPFLG) 
         IF (LOOPFLG.LE.1)  GO TO 900 
         IF ((HPAEC .EQ. O"3430").OR.(HPAEC.EQ.O"3437")) THEN 
             IF ((LOOPFLG.EQ.21).AND.(IFLD(18).EQ.R" CONTINU")) THEN
               CALL LOAPR(1,LOOPMSG(1,1),LOOPMSG(2,1),SP,SP,SP,SP,SP,SP)
               CALL PRINT15 (13,2)
               GO TO 900
             ENDIF
             GO TO 900
         ENDIF
      ENDIF 
  
*     DMAU LOOP 2 
      IF ((HPAEC .EQ. O"3431") .OR. (HPAEC .EQ. O"3432") .OR. 
     .    (HPAEC .EQ. O"3434")) THEN
         CALL LOOP2 (LOOPFLG) 
         IF ((LOOPFLG.EQ.21).AND.(IFLD(18).EQ.R" CONTINU")) THEN
             CALL LOAPR(1,LOOPMSG(1,1),LOOPMSG(2,1),SP,SP,SP,SP,SP,SP)
             CALL PRINT15 (13,2)
         ENDIF
      ENDIF 
  
  900 IF((RCFD.EQ.2HON) .AND. (HRSCCT.LE.10))  CALL PLSEC(5)
      RETURN
      END 
      SUBROUTINE LOOP1(LOOPFLG) 
* 
*         DESCRIPTION 
*         ----------- 
*         SUBROUTINE LOOP1 REPORTS THE INFORMATION PROVIDED IN DMAU LOOP
*         1 OF A CYBERPLUS ERROR MESSAGE. 
* 
*         ENTRY CONDITION 
*         --------------- 
*         ENTERED WHEN A SYMPTOM CODE CONTAINING A DMAU LOOP 1 MESSAGE
*         IS ENCOUNTERED. SYMPTOM CODES 203B, 207B, 213B, AND 237B. 
* 
*         EXIT CONDITION
*         --------------
*         EXIT UPON COMPLETION OF REPORTING OF DMAU LOOP 1 DATA OR IF 
*         ONE OF THE FOLLOWING ERROR CONDITIONS OCCURS. 
* 
*         ERRORS IN DATA WILL BE DENOTED BY LOOPFLG 
*                LOOPFLG = 0        ILLEGAL BIT COUNT 
*                        = 1        INSUFFICIENT DATA 
*                        = 2        LOOP ENDS AT WORD 8 - NEXT RECORD IN
*                        = 21 - 25  LOCATION OF DATA IN IFLD ARRAY
* 
*         CALLED BY 
*         --------- 
*         SUBROUTINE DL15CP 
* 
*         CALLS 
*         ----- 
*         PRINT15 
* 
*CALL HPACOM1 
*CALL HPACOM2 
      DIMENSION LOOPMSG(3,7)
* 
      DATA (LOOPMSG(I,1),I=1,3,1) / 10HFROM DMAU ,10HLOOP 1:PMI,
     .10H/CMR INPUT/
      DATA (LOOPMSG(I,2),I=1,1,1) / 10HRAW DATA: /
      DATA (LOOPMSG(I,3),I=1,2,1) / 10HPMI/CMR OU,10HTPUT      /
      DATA (LOOPMSG(I,4),I=1,1,1) / 10HCMI INPUT /
      DATA (LOOPMSG(I,5),I=1,1,1) / 10HCMI OUTPUT/
      DATA (LOOPMSG(I,6),I=1,3,1) / 10H*** INVALI,10HD BIT COUN,
     .10HT LOOP1***/
      DATA (LOOPMSG(I,7),I=1,3,1) / 10H*** INSUFF,10HICIENT DAT,
     .10HA LOOP1***/
* 
*         GET BIT COUNT AND CHECK VALIDITY
* 
      IBC1 = SHIFT(IFLD(LOOPFLG),12).AND.Z"FFF" 
*         PMI LOOP ONLY 
      IF (IBC1.EQ.256)  THEN
          NWRD = 5
          GO TO 10
      ENDIF 
*        PMI AND CMI LOOP PRESENT 
      IF (IBC1.EQ.544)  THEN
          NWRD = 10 
          GO TO 10
      ENDIF 
*        ILLEGAL BIT COUNT
      GO TO 900 
* 
*         TRANSFER LOOP 1 TO ARRAY HX 
* 
   10 DO 20 I=1,NWRD
         HX(I) = IFLD(LOOPFLG)
         IF (LOOPFLG.EQ.25) THEN
            LOOPFLG = 20
            CALL GNR3 
            CALL SETEM3 (1) 
            IF (IFLD(18).EQ.R" CONTINU")  GO TO 19
            IF (I.EQ.NWRD) THEN 
               LOOPFLG = 2
               GO TO 20 
            ENDIF 
            GO TO 950 
         ENDIF
   19    LOOPFLG = LOOPFLG + 1
   20 CONTINUE
* 
*         PROCESS LOOP 1 DATA - PMI 
* 
      IF (RCFD.EQ.2HON)  CALL PLSEC(5)
      CALL LOAPR(1,LOOPMSG(1,1),LOOPMSG(2,1),LOOPMSG(3,1),SP,SP,SP,SP,
     .             SP)
      CALL PRINT15 (14,3) 
* 
      ICTRL = SHIFT(HX(1),24).AND.Z"FFF"
      IADDR = HX(1).AND.Z"FFFFFFFF" 
      ID1 = HX(2).AND.Z"FFFFFFFFFFFFF"
      ID2 = SHIFT(HX(3),12).AND.Z"FFF"
* 
      CALL LOAPR(1,ICTRL,IADDR,ID1,ID2,SP,SP,SP,SP) 
      CALL PRINT15 (15,4) 
* 
*         CHECK FOR PRESENCE OF CMI LOOP
* 
      IF (IBC1.EQ.544) GO TO 100
* 
      CALL LOAPR(1,LOOPMSG(1,3),LOOPMSG(2,3),SP,SP,SP,SP,SP,SP) 
      CALL PRINT15 (16,2) 
* 
      ICTRL = SHIFT(HX(3),32).AND.Z"FFF"
      IADDR = SHIFT(HX(3).AND.Z"FFFFFFF",8).OR.SHIFT(HX(4),8).AND.Z"FF" 
      ID1 = HX(4).AND.Z"FFFFFFFFFFF"
      ID2 = SHIFT(HX(5),20).AND.Z"FFFFF"
* 
      CALL LOAPR(1,ICTRL,IADDR,ID1,ID2,SP,SP,SP,SP) 
      CALL PRINT15 (17,4) 
      GO TO 800 
* 
*        PROCESS CMI LOOP - INPUT 
* 
  100 CALL LOAPR(1,LOOPMSG(1,4),SP,SP,SP,SP,SP,SP,SP) 
      CALL PRINT15 (16,1) 
* 
      ICTRL = SHIFT(HX(3),32).AND.Z"FFF"
*         COLLECT ADDRESS BITS
      IA1 = HX(3).AND.Z"FF" 
      IA2 = SHIFT(HX(4),32).AND.Z"FF" 
      IA3 = SHIFT(HX(4).AND.Z"F",4).OR.SHIFT(HX(5),4).AND.Z"F"
      IA4 = SHIFT(HX(5),36).AND.Z"FF" 
*         COLLECT DATA BITS 
      ID1 = SHIFT(HX(3),52).AND.Z"FFFF" 
      ID2 = SHIFT(HX(4),24).AND.Z"FFFF" 
      ID3 = SHIFT(HX(4),56).AND.Z"FFFF" 
      ID4 = SHIFT(HX(5),28).AND.Z"FFFF" 
* 
      CALL LOAPR(1,ICTRL,IA1,IA2,IA3,IA4,ID1,ID2,ID3) 
      PL(9) = ID4 
      CALL PRINT15 (18,9) 
* 
*         PROCESS CMI LOOP - OUTPUT 
* 
      CALL LOAPR(1,LOOPMSG(1,5),SP,SP,SP,SP,SP,SP,SP) 
      CALL PRINT15 (16,1) 
* 
      ICTRL = SHIFT(HX(5),56).AND.Z"FFF"
*         COLLECT ADDRESS BITS
      IA1 = SHIFT(HX(6),24).AND.Z"FF" 
      IA2 = SHIFT(HX(6),56).AND.Z"FF" 
      IA3 = SHIFT(HX(7),28).AND.Z"FF" 
      IA4 = HX(7).AND.Z"FF" 
*         COLLECT DATA BITS 
      ID1 = SHIFT(HX(6),16).AND.Z"FFFF" 
      ID2 = SHIFT(HX(6),48).AND.Z"FFFF" 
      ID3 = SHIFT(HX(7),20).AND.Z"FFFF" 
      ID4 = SHIFT(HX(7),52).AND.Z"FFFF" 
* 
      CALL LOAPR(1,ICTRL,IA1,IA2,IA3,IA4,ID1,ID2,ID3) 
      PL(9) = ID4 
      CALL PRINT15 (18,9) 
* 
*         PROCESS LOOP 1 - PMI 2ND HALF - (FOLLOWING CMI) 
* 
      CALL LOAPR(1,LOOPMSG(1,3),LOOPMSG(2,3),SP,SP,SP,SP,SP,SP) 
      CALL PRINT15 (16,2) 
* 
      ICTRL = SHIFT(HX(8),20).AND.Z"FFF"
      IADDR = SHIFT(HX(8),56).AND.Z"FFFFFFFF" 
      ID1 = HX(9).AND.Z"FFFFFFFFFFFFFF" 
      ID2 = SHIFT(HX(10),8).AND.Z"FF" 
* 
      CALL LOAPR(1,ICTRL,IADDR,ID1,ID2,SP,SP,SP,SP) 
      CALL PRINT15 (19,4) 
* 
  800 IF (FLAGS(11).NE.2HON) GO TO 1000 
* 
*        DETAIL EXTENDED REPORT - RAW DATA
* 
      HX(11) = SHIFT(HX(1),28)
      HX(12) = SHIFT(HX(1),44)
      HX(13) = HX(1)
      HX(14) = SHIFT(HX(2),16)
      HX(15) = SHIFT(HX(2),32)
      HX(16) = SHIFT(HX(2),48)
      HX(17) = (SHIFT(HX(2).AND.Z"FFF",4)).OR.(SHIFT(HX(3),4).AND.Z"F") 
      HX(18) = SHIFT(HX(3),20)
* 
      CALL LOAPR(1,LOOPMSG(1,2),HX(11),HX(12),HX(13),HX(14),HX(15), 
     .               HX(16),HX(17)) 
      PL(9) = HX(18)
      CALL PRINT15(12,9)
* 
      HX(11) = SHIFT(HX(3),36)
      HX(12) = SHIFT(HX(3),52)
      HX(13) = (SHIFT(HX(3).AND.Z"FF",8)).OR.(SHIFT(HX(4),8).AND.Z"FF") 
      HX(14) = SHIFT(HX(4),24)
      HX(15) = SHIFT(HX(4),40)
      HX(16) = SHIFT(HX(4),56)
      HX(17) = (SHIFT(HX(4).AND.Z"F",12)).OR.(SHIFT(HX(5),12).AND.
     .                 Z"FFF")
      HX(18) = SHIFT(HX(5),28)
* 
      IF(IBC1.EQ.256) GO TO 840 
      HX(19) = SHIFT(HX(5),44)
* 
      CALL LOAPR(1,SP,HX(11),HX(12),HX(13),HX(14),HX(15),HX(16),HX(17)) 
      PL(9) =  HX(18) 
      PL(10) = HX(19) 
      CALL PRINT15(12,10) 
* 
      HX(11) = HX(5)
      HX(12) = SHIFT(HX(6),16)
      HX(13) = SHIFT(HX(6),32)
      HX(14) = SHIFT(HX(6),48)
      HX(15) = (SHIFT(HX(6).AND.Z"FFF",4)).OR.(SHIFT(HX(7),4).AND.Z"F") 
      HX(16) = SHIFT(HX(7),20)
      HX(17) = SHIFT(HX(7),36)
      HX(18) = SHIFT(HX(7),52)
      HX(19) = (SHIFT(HX(7).AND.Z"FF",8)).OR.(SHIFT(HX(8),8).AND.Z"FF") 
* 
      CALL LOAPR(1,SP,HX(11),HX(12),HX(13),HX(14),HX(15),HX(16),HX(17)) 
      PL(9) = HX(18)
      PL(10) = HX(19) 
      CALL PRINT15(12,10) 
* 
      HX(11) = SHIFT(HX(8),24)
      HX(12) = SHIFT(HX(8),40)
      HX(13) = SHIFT(HX(8),56)
      HX(14) = (SHIFT(HX(8).AND.Z"F",12)).OR.(SHIFT(HX(9),12).AND.
     .            Z"FFF") 
      HX(15) = SHIFT(HX(9),28)
      HX(16) = SHIFT(HX(9),44)
      HX(17) = HX(9)
      HX(18) = SHIFT(HX(10),16) 
* 
  840 CALL LOAPR(1,SP,HX(11),HX(12),HX(13),HX(14),HX(15),HX(16),HX(17)) 
      PL(9) = HX(18)
      CALL PRINT15(12,9)
      GO TO 1000
* 
*        INVALID BIT COUNT
* 
  900 CALL LOAPR(1,LOOPMSG(1,6),LOOPMSG(2,6),LOOPMSG(3,6),SP, 
     .               SP,SP,SP,SP) 
      CALL PRINT15 (13,3) 
      LOOPFLG = 0 
      GO TO 1000
* 
*        INSUFFICIENT DATA IN LOOP
* 
  950 CALL LOAPR(1,LOOPMSG(1,7),LOOPMSG(2,7),LOOPMSG(3,7),SP,SP,SP, 
     .                          SP,SP)
      CALL PRINT15 (13,3) 
      LOOPFLG = 1 
* 
 1000 RETURN
      END 
      SUBROUTINE LOOP2 (LOOPFLG)
* 
*         DESCRIPTION 
*         ----------- 
*         SUBROUTINE LOOP2 REPORTS THE INFORMATION PROVIDED IN DMAU 
*         LOOP 2 OF A CYBERPLUS ERROR MESSAGE.
* 
*         ENTRY CONDITION 
*         --------------- 
*         ENTERED WHEN A SYMPTOM CODE CONTAINING A DMAU LOOP 2 MESSAGE
*         IS ENCOUNTERED - SYMPTOM CODES 205B, 207B, AND 213B.
* 
*         EXIT CONDITION
*         --------------
*         EXIT UPON COMPLETION OF REPORTING OF DMAU LOOP 2 DATA OR IF 
*         THERE IS AN ERROR IN THE DATA.
*                LOOPFLG = 0       ILLEGAL BIT COUNT
*                        = 1       INSUFFICIENT DATA
*                        = 2       LOOP ENDS AT WORD 8 - NEXT RECORD IS IN
*                        = 21 - 25 LOCATION OF DATA IN IFLD ARRAY 
* 
*         CALLED BY 
*         --------- 
*         SUBROUTINE DL15CP 
* 
*         CALLS 
*         ----- 
*         PRINT15 
* 
*CALL HPACOM1 
*CALL HPACOM2 
* 
      DIMENSION LOOPMSG(3,6)
      DIMENSION L2(46)
* 
      DATA (LOOPMSG(I,1),I=1,2,1) / 10HFROM DMAU ,10HLOOP 2:   /
      DATA (LOOPMSG(I,2),I=1,3,1) / 10H*** INVALI,10HD BIT COUN,
     .10HT LOOP2***/
      DATA (LOOPMSG(I,3),I=1,3,1) / 10H*** INSUFF,10HICIENT DAT,
     .10HA LOOP2***/
      DATA (LOOPMSG(I,4),I=1,1,1) / 10HPMI/MRI   /
      DATA (LOOPMSG(I,5),I=1,1,1) / 10HMMI/MRI   /
      DATA (LOOPMSG(I,6),I=1,1,1) / 10HRAW DATA: /
      DATA IP/3HINP/, OP/3HOUT/ 
* 
*         GET BIT COUNT AND CHECK VALIDITY
* 
      IBC2 = SHIFT(IFLD(LOOPFLG),12).AND.Z"FFF" 
*         FIRST TERM OF DO LOOP MUST BE 2 WHEN HAVE GOOD DATA 
      DO 5 I=2,17 
         IF ((I*160).EQ.IBC2)  GO TO 10 
    5 CONTINUE
* 
*         ILLEGAL BIT COUNT 
* 
      GO TO 900 
* 
*         DETERMINE NUMBER OF WORDS TO READ 
* 
   10 NWRD = (IBC2+12) / 60 
      IF (((NWRD * 60) + 12). LT. IBC2)  NWRD = NWRD + 1
*         NUMBER OF HPP'S + 1(MASTER) 
      NHPN = (IBC2 / 160) 
* 
*         TRANSFER LOOP 2 DATA TO ARRAY 
* 
      DO 20 I = 1,NWRD
         L2(I) = IFLD(LOOPFLG)
         IF(LOOPFLG.EQ.25) THEN 
            LOOPFLG = 20
            CALL GNR3 
            CALL SETEM3(1)
            IF (IFLD(18).EQ.R" CONTINU") GO TO 19 
            IF (I.EQ.NWRD) THEN 
               LOOPFLG = 2
               GO TO 20 
            ENDIF 
            GO TO 950 
         ENDIF
   19    LOOPFLG = LOOPFLG + 1
   20 CONTINUE
* 
*         PROCESS LOOP 2 DATA 
* 
      I = 1 
      LPN = 1 
      HPPN = -1 
* 
   30 STAT = SHIFT(L2(I),16).AND.Z"F" 
      ICTRL = SHIFT(L2(I),28).AND.Z"FFF"
      ID1 = L2(I).AND.Z"FFFFFFFF" 
      I = I + 1 
      ID2 = SHIFT(L2(I),32).AND.Z"FFFFFFFF" 
      ENCODE(10,35,HPPA) HPPN 
   35 FORMAT(9X,Z1) 
* 
*         MASTER INPUT REGISTERS
      IF (LPN.EQ.1) THEN
          IF (RCFD.EQ.2HON)  CALL PLSEC(5)
          CALL LOAPR(1,LOOPMSG(1,1),LOOPMSG(2,1),LOOPMSG(1,4),SP,IP,
     .               STAT,ICTRL,ID1)
          PL(9) = ID2 
          GO TO 40
      ENDIF 
* 
*         MASTER OUTPUT REGISTERS 
      IF (LPN.EQ.(2*NHPN)) THEN 
          CALL LOAPR(1,SP,SP,LOOPMSG(1,4),SP,OP,STAT,ICTRL,ID1) 
          PL(9) = ID2 
          GO TO 40
      ENDIF 
* 
*         SLAVE OUTPUT REGISTERS
      IF (LPN.GT.NHPN) THEN 
          CALL LOAPR(1,SP,SP,LOOPMSG(1,5),HPPA,OP,STAT,ICTRL,ID1) 
          PL(9) = ID2 
          GO TO 40
      ENDIF 
* 
*         SLAVE INPUT REGISTERS 
      CALL LOAPR(1,SP,SP,LOOPMSG(1,5),HPPA,IP,STAT,ICTRL,ID1) 
      PL(9) = ID2 
* 
   40 CALL PRINT15 (20,9) 
      IF (LPN.GT.NHPN) HPPN = HPPN - 1
      IF (LPN.LT.NHPN) HPPN = HPPN + 1
* 
      IF (I.EQ.NWRD)  GO TO 800 
      LPN = LPN + 1 
* 
      STAT = SHIFT(L2(I),36).AND.Z"F" 
      ICTRL = SHIFT(L2(I),48).AND.Z"FFF"
      ID1 = L2(I).AND.Z"FFF"
      I = I + 1 
      ID2 = SHIFT(L2(I),52).AND.Z"FFFFFFFFFFFFF"
      ENCODE(10,35,HPPA) HPPN 
* 
*         MASTER OUTPUT REGISTERS 
      IF (LPN.EQ.(2*NHPN)) THEN 
          CALL LOAPR(1,SP,SP,LOOPMSG(1,4),SP,OP,STAT,ICTRL,ID1) 
          PL(9) = ID2 
          GO TO 50
      ENDIF 
* 
*         SLAVE OUTPUT REGISTERS
      IF (LPN.GT.NHPN) THEN 
          CALL LOAPR(1,SP,SP,LOOPMSG(1,5),HPPA,OP,STAT,ICTRL,ID1) 
          PL(9) = ID2 
          GO TO 50
      ENDIF 
* 
*         SLAVE INPUT REGISTERS 
      CALL LOAPR(1,SP,SP,LOOPMSG(1,5),HPPA,IP,STAT,ICTRL,ID1) 
      PL(9) = ID2 
* 
   50 CALL PRINT15 (21,9) 
      IF (LPN.GT.NHPN) HPPN = HPPN - 1
      IF (LPN.LT.NHPN) HPPN = HPPN + 1
* 
      IF (I.EQ.NWRD)  GO TO 800 
      LPN = LPN + 1 
* 
      STAT = SHIFT(L2(I),56).AND.Z"F" 
      ICTRL = SHIFT(L2(I).AND.Z"F",8).OR.(SHIFT(L2(I+1),8).AND.Z"FF") 
      I = I + 1 
      ID1 = L2(I).AND.Z"FFFFFFFFFFFFF"
      I = I + 1 
      ID2 = SHIFT(L2(I),12).AND.Z"FFF"
      ENCODE(10,35,HPPA) HPPN 
* 
*         MASTER OUTPUT REGISTERS 
      IF (LPN.EQ.(2*NHPN)) THEN 
          CALL LOAPR(1,SP,SP,LOOPMSG(1,4),SP,OP,STAT,ICTRL,ID1) 
          PL(9) = ID2 
          GO TO 60
      ENDIF 
* 
*         SLAVE OUTPUT REGISTERS
      IF (LPN.GT.NHPN) THEN 
          CALL LOAPR(1,SP,SP,LOOPMSG(1,5),HPPA,OP,STAT,ICTRL,ID1) 
          PL(9) = ID2 
          GO TO 60
      ENDIF 
* 
*         SLAVE INPUT REGISTERS 
      CALL LOAPR(1,SP,SP,LOOPMSG(1,5),HPPA,IP,STAT,ICTRL,ID1) 
      PL(9) = ID2 
* 
   60 CALL PRINT15 (22,9) 
      IF (LPN.GT.NHPN) HPPN = HPPN - 1
      IF (LPN.LT.NHPN) HPPN = HPPN + 1
* 
      IF (I.EQ.NWRD)  GO TO 800 
      LPN = LPN + 1 
      GO TO 30
* 
  800 IF (FLAGS(11).NE.2HON) GO TO 1000 
* 
*         DETAIL EXTENDED REPORT - RAW DATA 
* 
      I = 1 
      HX(1) = SHIFT(L2(I),28) 
      HX(2) = SHIFT(L2(I),44) 
      HX(3) = L2(I) 
      I = I + 1 
      HX(4) = SHIFT(L2(I),16) 
      HX(5) = SHIFT(L2(I),32) 
      HX(6) = SHIFT(L2(I),48) 
      HX(7) = (SHIFT(L2(I).AND.Z"FFF",4)).OR.(SHIFT(L2(I+1),4).AND.Z"F")
      I = I + 1 
      HX(8) = SHIFT(L2(I),20) 
      HX(9) = SHIFT(L2(I),36) 
      HX(10) = SHIFT(L2(I),52)
* 
      IF (I.GT.4)  GO TO 810
      CALL LOAPR(1,LOOPMSG(1,6),HX(1),HX(2),HX(3),HX(4),HX(5),HX(6),
     .                        HX(7))
      CALL LOAPR(9,HX(8),HX(9),HX(10),SP,SP,SP,SP,SP) 
      CALL PRINT15(12,11) 
* 
      IF (I.LE.3) GO TO 820 
  810 CALL LOAPR(1,SP,HX(1),HX(2),HX(3),HX(4),HX(5),HX(6),HX(7))
      CALL LOAPR(9,HX(8),HX(9),HX(10),SP,SP,SP,SP,SP) 
      CALL PRINT15(12,11) 
* 
  820 IF (I.EQ.NWRD) GO TO 1000 
      HX(1) = (SHIFT(L2(I).AND.Z"FF",8)).OR.(SHIFT(L2(I+1),8).AND.Z"FF")
      I = I + 1 
      HX(2) = SHIFT(L2(I),24) 
      HX(3) = SHIFT(L2(I),40) 
      HX(4) = SHIFT(L2(I),56) 
      HX(5) = (SHIFT(L2(I).AND.Z"F",12)).OR.(SHIFT(L2(I+1),12).AND. 
     .                  Z"FFF") 
      I = I + 1 
      HX(6) = SHIFT(L2(I),28) 
      HX(7) = SHIFT(L2(I),44) 
      HX(8) = L2(I) 
      I = I + 1 
      HX(9) = SHIFT(L2(I),16) 
      HX(10) = SHIFT(L2(I),32)
* 
      CALL LOAPR(1,SP,HX(1),HX(2),HX(3),HX(4),HX(5),HX(6),HX(7))
      CALL LOAPR(9,HX(8),HX(9),HX(10),SP,SP,SP,SP,SP) 
      CALL PRINT15(12,11) 
* 
      IF (I.EQ.NWRD) GO TO 1000 
* 
      HX(1) = SHIFT(L2(I),48) 
      HX(2) = (SHIFT(L2(I).AND.Z"FFF",4)).OR.(SHIFT(L2(I+1),4).AND.Z"F")
      I = I + 1 
      HX(3) = SHIFT(L2(I),20) 
      HX(4) = SHIFT(L2(I),36) 
      HX(5) = SHIFT(L2(I),52) 
      HX(6) = (SHIFT(L2(I).AND.Z"FF",8)).OR.(SHIFT(L2(I+1),8).AND.Z"FF")
      I = I + 1 
      HX(7) = SHIFT(L2(I),24) 
      HX(8) = SHIFT(L2(I),40) 
      HX(9) = SHIFT(L2(I),56) 
      HX(10) = (SHIFT(L2(I).AND.Z"F",12)).OR.(SHIFT(L2(I+1),12).AND.
     .           Z"FFF")
* 
      CALL LOAPR(1,SP,HX(1),HX(2),HX(3),HX(4),HX(5),HX(6),HX(7))
      CALL LOAPR(9,HX(8),HX(9),HX(10),SP,SP,SP,SP,SP) 
      CALL PRINT15(12,11) 
* 
      IF(I.EQ.NWRD) GO TO 1000
* 
      I = I + 1 
      HX(1) = SHIFT(L2(I),28) 
      HX(2) = SHIFT(L2(I),44) 
      HX(3) = L2(I) 
      I = I + 1 
      HX(4) = SHIFT(L2(I),16) 
      HX(5) = SHIFT(L2(I),32) 
      HX(6) = SHIFT(L2(I),48) 
      HX(7) = (SHIFT(L2(I).AND.Z"FFF",4)).OR.(SHIFT(L2(I+1),4).AND.Z"F")
      I = I + 1 
      HX(8) = SHIFT(L2(I),20) 
      HX(9) = SHIFT(L2(I),36) 
      HX(10) = SHIFT(L2(I),52)
* 
      CALL LOAPR(1,SP,HX(1),HX(2),HX(3),HX(4),HX(5),HX(6),HX(7))
      CALL LOAPR(9,HX(8),HX(9),HX(10),SP,SP,SP,SP,SP) 
      CALL PRINT15(12,11) 
      GO TO 820 
* 
*         INVALID BIT COUNT 
* 
  900 CALL LOAPR(1,LOOPMSG(1,2),LOOPMSG(2,2),LOOPMSG(3,2),SP, 
     .               SP,SP,SP,SP) 
      CALL PRINT15 (13,3) 
      LOOPFLG = 0 
      GO TO 1000
* 
*         INSUFFICIENT DATA IN LOOP 
* 
  950 CALL LOAPR(1,LOOPMSG(1,3),LOOPMSG(2,3),LOOPMSG(3,3),SP, 
     .               SP,SP,SP,SP) 
      CALL PRINT15 (13,3) 
      LOOPFLG = 1 
* 
 1000 RETURN
      END 
  
      SUBROUTINE LOOP3 (LOOPFLG)
* 
*         DESCRIPTION 
*         ----------- 
*         SUBROUTINE LOOP3 REPORTS THE INFORMATION SUPPLIED IN DMAU LOOP 3
*         OF A CYBERPLUS ERROR MESSAGE. 
* 
*         ENTRY CONDITION 
*         --------------- 
*         ENTERED WHEN A SYMPTOM CODE CONTAINING A DMAU LOOP 3 MESSAGE IS 
*         ENCOUNTERED - SYMPTOM CODES 203B, 205B, 211B AND 213B.
* 
*         EXIT CONDITION
*         --------------
*         EXIT UPON COMPLETION OF REPORTING OF DMAU LOOP 3 DATA. LOOPFLG
*         WILL INDICATE POSITION OF NEXT LOOP IN RECORD IF ONE IS THERE,
*         OR AN ERROR CONDITION.
* 
*         ERRORS IN DATA WILL BE DENOTED BY LOOPFLG 
*                LOOPFLG = 0        ILLEGAL BIT COUNT 
*                        = 1        INSUFFICIENT DATA 
*                        = 2        LOOP ENDS AT WORD 8 - NEXT RECORD IN
*                        = 21 - 25  LOCATION OF DATA IN IFLD ARRAY
* 
*         CALLED BY 
*         --------- 
*         SUBROUTINE DL15CP 
* 
*         CALLS 
*         ----- 
*         PRINT15 
* 
*CALL HPACOM1 
*CALL HPACOM2 
* 
      DIMENSION LOOPMSG(3,4)
* 
      DATA (LOOPMSG(I,1),I=1,2,1) / 10HFROM DMAU ,10HLOOP 3:   /
      DATA (LOOPMSG(I,2),I=1,1,1) / 10HRAW DATA: /
      DATA (LOOPMSG(I,3),I=1,3,1) / 10H*** INVALI,10HD BIT COUN,
     .10HT LOOP3***/
      DATA (LOOPMSG(I,4),I=1,3,1) / 10H*** INSUFF,10HICIENT DAT,
     .10HA LOOP3***/
* 
*         GET BIT COUNT AND CHECK VALIDITY
* 
      IF ((SHIFT(IFLD(21),24).AND.O"7777").EQ.O"3430")
     .                                    LOOPFLG = LOOPFLG + 1 
      SVFLG = LOOPFLG 
      IBC3 = SHIFT(IFLD(LOOPFLG),12).AND.Z"FFF" 
      IF (IBC3.NE.160)  GO TO 900 
* 
*         GET REFERENCE ADDRESS AND REFERENCE ADDRESS + FIELD LENGTH
* 
      RA = SHIFT(IFLD(LOOPFLG),44).AND.Z"FFFFFFFF"
      RAFL = (SHIFT(IFLD(LOOPFLG).AND.Z"FFFF",16)).OR.
     .                          (SHIFT(IFLD(LOOPFLG+1),16).AND.Z"FFFF") 
      LOOPFLG = LOOPFLG + 1 
* 
*         GET CMI EQUIPMENT IDENTIFICATION
* 
      ICMID = SHIFT(IFLD(LOOPFLG),20).AND.Z"F"
* 
*         GET CONTROL FIELD 
* 
      ICTRL = SHIFT(IFLD(LOOPFLG),44).AND.Z"FFF"
* 
*         GET DATA BITS (INTERLEAVED) 
* 
      RD1 = IFLD(LOOPFLG).AND.Z"FFF"
      LOOPFLG = LOOPFLG + 1 
      RD2 = SHIFT(IFLD(LOOPFLG),52).AND.Z"FFFFFFFFFFFFF"
* 
      IF (RCFD.EQ.2HON)  CALL PLSEC(5)
      CALL LOAPR(1,LOOPMSG(1,1),LOOPMSG(2,1),RA,RAFL,ICMID,SP,SP,SP)
      CALL PRINT15 (10,5) 
* 
      CALL LOAPR(1,ICTRL,RD1,RD2,SP,SP,SP,SP,SP)
      CALL PRINT15 (11,3) 
* 
*         CHECK IF DETAIL EXTENDED REPORT IS CALLED 
* 
      IF(FLAGS(11).NE.2HON) GO TO 100 
* 
      HX(1) = SHIFT(IFLD(SVFLG),28) 
      HX(2) = SHIFT(IFLD(SVFLG),44) 
      HX(3) = IFLD(SVFLG) 
      SVFLG = SVFLG + 1 
      HX(4) = SHIFT(IFLD(SVFLG),16) 
      HX(5) = SHIFT(IFLD(SVFLG),32) 
      HX(6) = SHIFT(IFLD(SVFLG),48) 
      HX(7) = (SHIFT(IFLD(SVFLG).AND.Z"FFF",4)).OR. 
     .        (SHIFT(IFLD(SVFLG+1),4).AND.Z"F") 
      SVFLG = SVFLG + 1 
      HX(8) = SHIFT(IFLD(SVFLG),20) 
      HX(9) = SHIFT(IFLD(SVFLG),36) 
      HX(10)= SHIFT(IFLD(SVFLG),52) 
* 
      CALL LOAPR(1,LOOPMSG(1,2),HX(1),HX(2),HX(3),
     .                        HX(4),HX(5),HX(6),HX(7))
      CALL LOAPR(9,HX(8),HX(9),HX(10),SP,SP,SP,SP,SP) 
      CALL PRINT15 (12,11)
* 
*         SET LOOPFLG TO START OF NEXT LOOP(IF THERE IS ONE)
* 
  100 IF(LOOPFLG.EQ.25)  THEN 
         LOOPFLG = 20 
         CALL GNR3
         CALL SETEM3(1) 
         IF (IFLD(18).EQ.R" CONTINU")  GO TO 110
         GO TO 950
      ENDIF 
* 
  110 LOOPFLG = LOOPFLG + 1 
      GO TO 1000
* 
*         INVALID BIT COUNT 
* 
  900 CALL LOAPR(1,LOOPMSG(1,3),LOOPMSG(2,3),LOOPMSG(3,3),SP,SP,SP,SP,
     .        SP) 
      CALL PRINT15 (13,3) 
      LOOPFLG = 0 
      GO TO 1000
* 
*         INSUFFICIENT DATA IN LOOP 
* 
  950 CALL LOAPR(1,LOOPMSG(1,4),LOOPMSG(2,4),LOOPMSG(3,4),SP, 
     .            SP,SP,SP,SP)
      CALL PRINT15 (13,3) 
      LOOPFLG = 1 
* 
 1000 RETURN
      END 
      SUBROUTINE LOOPEDB(LOOPFLG) 
* 
*         DESCRIPTION 
*         ----------- 
*         SUBROUTINE LOOPEDB REPORTS THE INFORMATION PROVIDED BY THE
*         ERROR DETECT BOARD REGISTER LOOP IN A CYBERPLUS ERROR 
*         MESSAGE, SYMPTOM CODES 55B AND 57B. 
* 
*         ENTRY CONDITION 
*         --------------- 
*         ENTERED WHEN A SYMPTOM CODE (55B OR 57B) CONTAINING AN ERROR
*         DETECT BOARD REGISTER LOOP IS ENCOUNTERED.
* 
*         EXIT CONDITION
*         --------------
*         EXIT UPON COMPLETION OF REPORTING OF ERROR DETECT REGISTER
*         LOOP OR LENGTH ERROR IN DATA. 
* 
*         ERRORS IN DATA WILL BE DENOTED BY LOOPFLG 
*                LOOPFLG = 0        ILLEGAL BIT COUNT 
*                        = 1        INSUFFICIENT DATA 
*                        = 2        LOOP ENDS AT WORD 8 - NEXT RECORD IN
*                        = 21 - 25  LOCATION OF DATA IN IFLD ARRAY
* 
*         CALLED BY 
*         --------- 
*         SUBROUTINE DL15CP 
* 
*         CALLS 
*         ----- 
*         PRINT15 
* 
*CALL HPACOM1 
*CALL HPACOM3 
* 
      COMMON / IGRAPH / IGRAPH(16,12) 
      COMMON/HRSCCT/HRSCCT
  
      DIMENSION LOOPMSG(3,4)
      DIMENSION SCTBL(72,2) 
      DIMENSION LEDB(32)
* 
      DATA (LOOPMSG(I,1),I=1,2,1) / 10HERR DETECT,10H LOOP:    /
      DATA (LOOPMSG(I,2),I=1,3,1) / 10H*** INSUFF,10HICIENT DAT,
     .10HA EDB *** /
      DATA (LOOPMSG(I,3),I=1,1,1) / 10HRAW DATA: /
      DATA (LOOPMSG(I,4),I=1,3,1) / 10H*** INVALI,10HD BIT COUN,
     .10HT EDB *** /
* 
      DATA (SCTBL(I,1),I=1,72) /
     .  O"160", O"161", O"162", O"163", O"164", O"165", O"166", O"167", 
     .  O"110", O"111", O"112", O"113", O"114", O"115", O"116", O"117", 
     .  O"120", O"121", O"122", O"123", O"124", O"125", O"126", O"127", 
     .  O"030", O"031", O"032", O"033", O"034", O"035", O"036", O"037", 
     .  O"140", O"141", O"142", O"143", O"144", O"145", O"146", O"147", 
     .  O"050", O"051", O"052", O"053", O"054", O"055", O"056", O"057", 
     .  O"060", O"061", O"062", O"063", O"064", O"065", O"066", O"067", 
     .  O"070", O"071", O"072", O"073", O"074", O"075", O"076", O"077", 
     .  O"001", O"002", O"004", O"010", O"020", O"040", O"100", O"000"/ 
      DATA (SCTBL(I,2),I=1,72) /
     .    2H63,   2H62,   2H61,   2H60,   2H59,   2H58,   2H57,   2H56, 
     .    2H55,   2H54,   2H53,   2H52,   2H51,   2H50,   2H49,   2H48, 
     .    2H47,   2H46,   2H45,   2H44,   2H43,   2H42,   2H41,   2H40, 
     .    2H39,   2H38,   2H37,   2H36,   2H35,   2H34,   2H33,   2H32, 
     .    2H31,   2H30,   2H29,   2H28,   2H27,   2H26,   2H25,   2H24, 
     .    2H23,   2H22,   2H21,   2H20,   2H19,   2H18,   2H17,   2H16, 
     .    2H15,   2H14,   2H13,   2H12,   2H11,   2H10,   2H 9,   2H 8, 
     .    2H 7,   2H 6,   2H 5,   2H 4,   2H 3,   2H 2,   2H 1,   2H 0, 
     .    2HC0,   2HC1,   2HC2,   2HC3,   2HC4,   2HC5,   2HC6,   2HC7/ 
  
      DATA Z32/Z"FFFFFFFF"/ 
* 
*         DETERMINE SYMPTOM CODE
* 
      HPAEC = SHIFT(IFLD(21),24).AND.O"7777"
      IF (HPAEC.EQ.O"3417")  SYMPTOM = O"55"
      IF (HPAEC.EQ.O"3420")  SYMPTOM = O"57"
* 
*         DETERMINE HPN(NHPN) FROM BIT COUNT(IBCE)
* 
      IBCE = SHIFT(IFLD(LOOPFLG),12).AND.Z"FFF" 
* 
*         64 BITS/HPP ERROR DETECT BOARD LOOP 
* 
      DO 6431 I=1,16
         IF ((I * 64).EQ.IBCE)  GO TO 6435
 6431 CONTINUE
      GO TO 950 
* 
 6435 NHPN = IBCE / 64
* 
*         NUMBER OF 32 BIT BYTES TO PROCESS 
* 
      HPNL = 2 * NHPN 
* 
*         INPUT LOOP DATA AND PREPARE FOR PROCESSING
* 
      LOOPFLG = LOOPFLG - 1 
      DO 6420 I = 1,HPNL
         GO TO (6401,6402,6403,6404,6405,6406,6407,6408,6409, 
     .          6410,6411,6412,6413,6414,6415,6401,6402,6403,6404,
     .          6405,6406,6407,6408,6409,6410,6411,6412,6413,6414,
     .          6415,6401,6402)  I
* 
 6401    LOOPFLG = LOOPFLG + 1
         LEDB(I) = SHIFT(IFLD(LOOPFLG),44).AND.Z32
         GO TO 6419 
* 
 6402    TMP = SHIFT(IFLD(LOOPFLG).AND.Z"FFFF",16)
         IF (LOOPFLG.NE.25) GO TO 6422
* 
*         GET NEXT RECORD 
* 
         CALL GNR3
         CALL SETEM3(1) 
         IF (IFLD(18).NE.R" CONTINU")  GO TO 900
         LOOPFLG = 20 
 6422    LEDB(I) = TMP.OR.(SHIFT(IFLD(LOOPFLG+1),16).AND.Z"FFFF") 
         GO TO 6419 
* 
 6403    LOOPFLG = LOOPFLG + 1
         LEDB(I) = SHIFT(IFLD(LOOPFLG),48).AND.Z32
         GO TO 6419 
* 
 6404    LEDB(I) = SHIFT(IFLD(LOOPFLG).AND.Z"FFF",20).OR. 
     .             (SHIFT(IFLD(LOOPFLG+1),20).AND.Z"FFFFF") 
         GO TO 6419 
* 
 6405    LOOPFLG = LOOPFLG + 1
         LEDB(I) = SHIFT(IFLD(LOOPFLG),52).AND.Z32
         GO TO 6419 
* 
 6406    LEDB(I) = SHIFT(IFLD(LOOPFLG).AND.Z"FF",24).OR.
     .             (SHIFT(IFLD(LOOPFLG+1),24).AND.Z"FFFFFF")
         GO TO 6419 
* 
 6407    LOOPFLG = LOOPFLG + 1
         LEDB(I) = SHIFT(IFLD(LOOPFLG),56).AND.Z32
         GO TO 6419 
* 
 6408    TMP = SHIFT(IFLD(LOOPFLG).AND.Z"F",28) 
         IF (LOOPFLG.NE.25)  GO TO 6428 
* 
*            GET NEXT RECORD
* 
         CALL GNR3
         CALL SETEM3(1) 
         IF (IFLD(18).NE.R" CONTINU") GO TO 900 
         LOOPFLG = 20 
 6428    LEDB(I) = TMP.OR.(SHIFT(IFLD(LOOPFLG+1),28).AND. 
     .                             Z"FFFFFFF")
         LOOPFLG = LOOPFLG + 1
         GO TO 6419 
* 
 6409    LEDB(I) = IFLD(LOOPFLG).AND.Z32
         GO TO 6419 
* 
 6410    LOOPFLG = LOOPFLG + 1
         LEDB(I) = SHIFT(IFLD(LOOPFLG),32).AND.Z32
         GO TO 6419 
* 
 6411    TMP = SHIFT(IFLD(LOOPFLG).AND.Z"FFFFFFF",4)
         IF (LOOPFLG.NE.25)  GO TO 6421 
* 
*         GET NEXT RECORD 
* 
         CALL GNR3
         CALL SETEM3(1) 
         IF (IFLD(18).NE.R" CONTINU")  GO TO 900
         LOOPFLG = 20 
 6421    LEDB(I) = TMP.OR.(SHIFT(IFLD(LOOPFLG+1),4).AND.Z"F") 
         GO TO 6419 
* 
 6412    LOOPFLG = LOOPFLG + 1
         LEDB(I) = SHIFT(IFLD(LOOPFLG),36).AND.Z32
         GO TO 6419 
* 
 6413    LEDB(I) = SHIFT(IFLD(LOOPFLG).AND.Z"FFFFFF",8).OR. 
     .             (SHIFT(IFLD(LOOPFLG+1),8).AND.Z"FF") 
         GO TO 6419 
* 
 6414    LOOPFLG = LOOPFLG + 1
         LEDB(I) = SHIFT(IFLD(LOOPFLG),40).AND.Z32
         GO TO 6419 
* 
 6415    LEDB(I) = SHIFT(IFLD(LOOPFLG).AND.Z"FFFFF",12).OR. 
     .             (SHIFT(IFLD(LOOPFLG+1),12).AND.Z"FFF") 
 6419    CONTINUE 
 6420 CONTINUE
* 
*         PROCESS ERROR DETECT LOOP REGISTER INFORMATION
* 
      HPPN = 0
* 
*         CHECK FOR HPP'S HAVING SECDED ERRORS
* 
      IF ((RCFD.EQ.2HON) .AND. (HRSCCT.LE.10))  CALL PLSEC(5) 
      DO 100 I = HPNL,NHPN+1,-1 
         IF ((LEDB(I).AND.Z"0C00").EQ.0)  GO TO 90
*         HPP CONTAINING SECDED ERROR 
            IBNK = SHIFT(LEDB(I),48).AND.O"7" 
            ICHPSEL = LEDB(I).AND.O"3"
            SBE = LEDB(I).AND.Z"0800" 
            S7 = LEDB(I).AND.Z"0200"
* 
            IBIT = 2H 
            IF (SBE.EQ.0)  GO TO 50 
            IF (S7.EQ.0) GO TO 50 
               SYNDRM = SHIFT(LEDB(I),-2).AND.O"177"
* 
*         GET BIT FROM TABLE
               DO 40 J=1,72 
                  IF(SCTBL(J,1).EQ.SYNDRM)  GO TO 45
   40          CONTINUE 
               GO TO 50 
* 
   45          IBIT = SCTBL(J,2)
* 
*         MATCH SECDED DATA FOR ANALYSIS REPORT 
* 
   50          DO 60 K = 1,68 
                  IF (STOR(K,1).EQ.0) GO TO 70
                  IF (STOR(K,2).NE.HPPN) GO TO 59 
                  IF (STOR(K,3).NE.ICHPSEL) GO TO 59
                  IF (STOR(K,4).NE.IBNK) GO TO 59 
                  IF (STOR(K,5).NE.IBIT) GO TO 59 
                  IF (STOR(K,6).NE.SYMPTOM) GO TO 59
                  GO TO 70
   59             CONTINUE
   60          CONTINUE 
               STOR(68,32) = STOR(68,32) + 1
               GO TO 1000 
* 
*          SAVE SECDED DATA FOR ANALYSIS REPORT 
* 
   70          STOR(K,1) = STOR(K,1) + 1
               IF (STOR(K,1).GT.1)  GO TO 75
               STOR(K,2) = HPPN 
               STOR(K,3) = ICHPSEL
               STOR(K,4) = IBNK 
               STOR(K,5) = IBIT 
               STOR(K,6) = SYMPTOM
* 
*         SAVE HPP NUMBER AND ERROR CODE FOR INCLUSION IN THE ANALYSIS
*         REPORT GRAPH
* 
   75 HPPX = (15-HPPN) + 1
      IF (SYMPTOM.EQ.O"55")  IGRAPH(HPPX,2) = IGRAPH(HPPX,2) + 1
      IF (SYMPTOM.EQ.O"57")  IGRAPH(HPPX,3) = IGRAPH(HPPX,3) + 1
* 
*         DETAIL REPORT 
* 
   80       IF (RCFD.NE.2HON) GO TO 90
      IF(HRSCCT.GT.10) GO TO 90 
            CALL LOAPR(1,LOOPMSG(1,1),LOOPMSG(2,1),HPPN,IBIT,ICHPSEL, 
     .                       IBNK,SP,SP)
            CALL PRINT15(4,6) 
* 
   90    HPPN = HPPN + 1
* 
  100 CONTINUE
      IF (FLAGS(11).NE.2HON) GO TO 1000 
      IF(HRSCCT.GT.10) GO TO 1000 
      PL(1) = LOOPMSG(1,3)
      L=1 
* 
*         64 BIT LOOPS
* 
  205 DO 210 K = 2,10,2 
         PL(K) = SHIFT(LEDB(L),-16) 
         PL(K+1) = LEDB(L)
         IF (L.EQ.HPNL)  GO TO 250
         L = L + 1
  210 CONTINUE
* 
      CALL PRINT15(12,11) 
      PL(1) = 10H 
      GO TO 205 
* 
  250 CALL PRINT15(12,K+1)
      GO TO 1000
* 
*         INSUFFICIENT DATA 
* 
  900 CALL LOAPR(1,LOOPMSG(1,2),LOOPMSG(2,2),LOOPMSG(3,2),SP,SP,SP,SP,
     .               SP)
      CALL PRINT15 (13,3) 
      LOOPFLG = 1 
      GO TO 1000
* 
* 
*         INVALID BIT COUNT 
* 
  950 CALL LOAPR(1,LOOPMSG(1,4),LOOPMSG(2,4),LOOPMSG(3,4),SP, 
     .             SP,SP,SP,SP) 
      CALL PRINT15(13,3)
      LOOPFLG = 0 
* 
 1000 RETURN
      END 
      SUBROUTINE PHEAD15 (ST) 
* 
**        DESCRIPTION 
*         ----------- 
*         SUBROUTINE PHEAD15 PRINTS HEADINGS FOR REPORTS DEVELOPED
*         BY HPA315 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
*         ----------
*         PRINT15 
*         UCHEK15 
* 
*CALL HPACOM1 
*CALL HPACOM2 
* 
      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 ((RCFD.NE.2HON).AND.(PTR.LE.3)) GO TO 1000 
      IF ((PTR .LE. 0) .OR. (PTR .GT. 6)) GO TO 1000
      P = P + 1 
* 
*     JUMP TO PRINT FORMAT AS CALLED BY PTR 
* 
      GO TO (10, 20, 30, 40, 50, 60) PTR
  
*     DETAIL REPORT HEADER
   10 PRINT 11,TYPORD,TYPDT,ORD,HDATA(5),TYPID
   11 FORMAT (4H DT ,A4,6H - ** ,R2,1X,A4,10H **  CH = ,O2, 
     .        4X,3H.. ,A10,'  DATA  ..',/)
      GO TO 2 
  
*     DETAIL REPORT SUBHEADER 
   20 PRINT 21
   21 FORMAT (1X,'DATE',62X,'JOB     NO.',/,
     .        3X,'TIME      PP HPP MESSAGE',40X,'NAME   HPPS',/,
     .1X,7(10H----------),7H-------)
      GO TO 2 
  
*     DATE
   30 PRINT 31,SEBUF(23)
   31 FORMAT (1X,A8)
      GO TO 6 
  
*     ANALYSIS REPORT GRAPH HEADER
   40 PRINT 41
   41 FORMAT (//,1X,'HPP FAILURES PER SYMPTOM CODE',/,
     .           1X,'--- -------- --- ------- ----',/)
      GO TO 2 
  
*     ANALYSIS REPORT GRAPH ENDING
   50 PRINT 51
   51 FORMAT (7X,7(10H----------),2H--,/, 
     .12X,'                              2     2     2     2     2',
     .     '     2     2',/,
     .12X,'4     5     5     6     7     0     0     0     0     1',
     .     '     2     2',/,
     .12X,'1     5     7     5     1     1     3     5     7     3',
     .     '     3     5',/,
     .12X,'                    <<<<<<<<  SYMPTOM CODES  >>>>>>>>')
      LINE = LINE + 4 
      GO TO 5 
  
*        ANALYSIS REPORT - SECDED ERRORS
   60 PRINT 61
   61 FORMAT(//,7X,'SUMMARY OF SECDED ERRORS BY HPP',/,7X,
     .3(10H----------),1H-,//,7X,'HPP   COUNT   BIT  CHIP SELECT  BANK',
     .'  SYMPTOM CODE',/) 
      LINE = LINE + 4 
      GO TO 2 
  
* 
 1000 RETURN
      END 
      SUBROUTINE PRINT15 (LT,NW)
* 
**        DESCRIPTON
*         ----------
*         SUBROUTINE PRINT15 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. 
*         PHEAD15- PRINT SUB-HEADER IN VARIOUS REPORTS. 
* 
*CALL HPACOM1 
* 
      DIMENSION IFORM (9,24), FMT (9) 
  
*         FORMAT FOR CYBERPLUS DETAIL REPORT
      DATA (IFORM(I,1),I=1,5,1) / 
     .10H(3X,A8,2X,,10HO2,1X,R3,1,10HX,2A10,A8,,10H17X,R8,3X,,
     .10HI2)       /
  
*         FORMAT FOR CYBERPLUS ANALYSIS REPORT GRAPH
      DATA (IFORM(I,2),I=1,3,1) / 
     .10H(1X,R3,1X,,10HZ1,1H:,12(,10HI6.0))       / 
  
*         FORMAT FOR CYBERPLUS ANALYSIS REPORT - SECDED ERRORS
      DATA (IFORM(I,3),I=1,4,1) / 
     .10H(9X,Z1,4X,,10HI3,5X,A2,8,10HX,O1,8X,Z1,10H,7X,O3)   /
  
*         FORMAT FOR CYBERPLUS DETAIL REPORT - EDB LOOP 
      DATA (IFORM(I,4),I=1,9,1) / 
     .10H(4X,A10,A6,10H,6HHPP = ,,10HZ1,3X,6HBI,10HT = ,A2,3X,
     .10H,10HCHIP S,10HELEC,4HT =,10H ,O1,3X,7H,10HBANK = ,O1,
     .10H,)        /
  
*         FORMAT FOR CYBERPLUS DETAIL REPORT - 2ND LINE 
      DATA (IFORM(I,5),I=1,4,1) / 
     .10H(26X,10HCR,10HP STATUS,1,10HX,Z4,3H = ,10H,2A10)    /
  
*         FORMAT FOR CYBERPLUS DETAIL REPORT - 3RD LINE 
      DATA (IFORM(I,6),I=1,2,1) / 
     .10H(43X,A1,2A,10H10)         /
  
*         FORMAT FOR CYBERPLUS DETAIL REPORT - 3RD LINE 
      DATA (IFORM(I,7),I=1,2,1) / 
     .10H(26X,9HPAC,10HKET = ,Z4)  /
  
*         FORMAT FOR CYBERPLUS DETAIL REPORT - 3RD LINE 
      DATA (IFORM(I,8),I=1,5,1) / 
     .10H(26X,10HPA,10HCKET: CO,8,10HHNTROL = ,,10HZ3,3X,8H D,
     .10HATA = ,Z4)  /
  
*         FORMAT FOR CYBERPLUS DETAIL REPORT - 3RD LINE 
      DATA (IFORM(I,9),I=1,8,1) / 
     .10H(26X,10HME,10HM ADDR =,1,10HX,Z3,2X,10,10HHEXP/ACT D,
     .10HA,4HTA =,1,10HX,Z4,1H/,Z,10H4,2X,6HMEM,10H = ,Z1)   /
  
*         FORMATS FOR CYBERPLUS DETAIL REPORT - LOOP 3
      DATA (IFORM(I,10),I=1,7,1) /
     .10H(3X,A10,A7,10H,5HRA = ,Z,10H8,2X,7HRA+,10HFL =,1X,Z8,
     .10H,2X,8HCMI ,10HID =,1X,Z1,10H)         /
  
      DATA (IFORM(I,11),I=1,4,1) /
     .10H(20X,6HCTR,10HL= ,Z3,10H,10H   DATA = ,10H,Z3,Z13)  /
  
*         FORMAT RAW DATA - ALL LOOPS 
      DATA (IFORM(I,12),I=1,2,1) /
     .10H(11X,A9,10,10H(Z4,1X))  /
  
*         INSUFFICIENT DATA / ILLEGAL BIT COUNT 
      DATA (IFORM(I,13),I=1,1,1) /
     .10H(20X,3A10)/
*         FORMATS FOR CYBERPLUS DETAIL REPORT - LOOP 1
      DATA (IFORM(I,14),I=1,1,1) /
     .10H(3X,3A10) /
  
      DATA (IFORM(I,15),I=1,6,1) /
     .10H(20X,6HCTR,10HL= ,Z3,1X,,10H8HADDRESS=,10H,1X,Z8,1X,,
     .10H5HDATA=,1X,10H,Z13,Z3)  /
  
      DATA (IFORM(I,16),I=1,1,1) /
     .10H(20X,2A10)/
  
      DATA (IFORM(I,17),I=1,6,1) /
     .10H(20X,6HCTR,10HL= ,Z3,1X,,10H8HADDRESS=,10H,1X,Z8,1X,,
     .10H5HDATA=,1X,10H,Z11,Z5)  /
  
      DATA (IFORM(I,18),I=1,6,1) /
     .10H(20X,6HCTR,10HL= ,Z3,1X,,10H8HADDRESS=,10H,1X,4Z2,1X,
     .10H,5HDATA=,1,10HX,4Z4)    /
  
      DATA (IFORM(I,19),I=1,6,1) /
     .10H(20X,6HCTR,10HL= ,Z3,1X,,10H8HADDRESS=,10H,1X,Z8,1X,,
     .10H5HDATA=,1X,10H,Z14,Z2)  /
  
*         FORMATS FOR CYBERPLUS DETAIL REPORT - LOOP 2
      DATA (IFORM(I,20),I=1,7,1) /
     .10H(3X,A10,A7,10H,A7,R2,1X,,10HA3,9H STAT,10HUS= ,Z1,7H,
     .10H CTRL= ,Z3,10H,7H DATA= ,10H,Z8,Z8)   /
  
      DATA (IFORM(I,21),I=1,7,1) /
     .10H(3X,A10,A7,10H,A7,R2,1X,,10HA3,9H STAT,10HUS= ,Z1,7H,
     .10H CTRL= ,Z3,10H,7H DATA= ,10H,Z3,Z13)  /
  
      DATA (IFORM(I,22),I=1,7,1) /
     .10H(3X,A10,A7,10H,A7,R2,1X,,10HA3,9H STAT,10HUS= ,Z1,7H,
     .10H CTRL= ,Z3,10H,7H DATA= ,10H,Z13,Z3)  /
  
*         FORMAT FOR CYBERPLUS DETAIL REPORT - 3RD LINE - SC223 
      DATA (IFORM(I,23),I=1,7,1) /
     .10H(26X,10HME,10HM ADDR =,1,10HX,Z3,2X,10,10HHEXP/ACT D,
     .10HA,4HTA =,1,10HX,Z4,1H/,Z,10H4)        /
  
*     FORMAT FOR CYBERPLUS THRESHOLD MESSAGE FOR SINGLE SECDED OVERFLOW 
      DATA (IFORM(I,24),I=1,4,1) /
     .10H(1X,10H>>>,10H>>>>>>>,I5,10H,1X,5A10,8,10HH <<<<<<<)/
***************************************************************** 
  
*     BYPASS DETAIL REPORT PRINTING IF NOT SELECTED 
      IF ((RCFD.NE.2HON).AND.((LT.EQ.1).OR.(LT.GE.4)))  GO TO 40
*     BYPASS PAGE CHECK FOR CONTINUATION DATA 
      IF ((LT .GE. 5) .AND. (LT .LE. 9)) GO TO 5
      IF (LT .EQ. 23) GO TO 5 
  
*     CHECK FOR PAGE LIMIT
      IF (LINE .LE. PLF) GO TO 5
  
*     INSERT DATE FOR NEW HEADER
      HCF(3) = 3
      CALL HEADER 
      CALL PHEAD15 (1)
  
*     INCREMENT LINE COUNT AND MOVE DATA TO THE PRINT ARRAY 
    5 LINE = LINE + 1 
      IF (LT .EQ. 9) LINE = LINE + 1
  
      DO 25 J = 1, 9
   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 UCHEK15
**
*       UCHEK15 - BASIC ROUTINE USED BY DETAIL PROCESSORS, TO 
*                 TEST FOR CHANGES IN MESSAGE THAT WILL AFFECT
*                 SUBHEADER PRINT.  WHEN CHANGE OCCURS, MODIFY
*                 POINTERS AND CALL PHEAD15 FOR NEW HEADING 
*                 OF DEVICE AND MESSAGE TYPE. 
* 
*       ENTRY CONDITIONS
*       ------------------- 
*       CURRENT MESSAGE IN PROCESS IS IN IFLD 
* 
*       EXIT CONDITIONS 
*       ----------------
*       CURRENT APPLICABLE SUB-HEADERS ARE PRINTED. 
*       FLAGS FOR TESTING  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 
      CALL DREPT3 
      FLAGS(12) = 1H
      PDATE = SEBUF(21) 
      HCF(3) = 3
      CALL HEADER 
      CALL FLIP3
      CALL PHEAD15 (1)
      GO TO 500 
  
*     TEST CHANGE OF DATE 
  200 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(3) = 3
      CALL PHEAD15 (3)
      GO TO 500 
  
*     PRINT NEW PAGE HEADER AND SUBHEADERS
  400 PDATE = SEBUF(23) 
      CALL FLIP3
      HCF(3) = 3
      CALL HEADER 
      CALL PHEAD15 (1)
  
  500 RETURN
      END 
          IDENT  INTEM15
          LCC OVCAP.
          ENTRY  INTEM15
OVLNO     SET    15 
          USE    /LINK/ 
LINKET    BSS    1
LINKEM    BSS    1
          USE    *
  
INTEM15   BSS    1
          SX6    ET 
          SA6    LINKET 
          SX6    EC 
          SA6    LINKEM 
          JP     INTEM15
          EJECT 
*CALL COMHPAERT 
          END 
