*DECK HPA37 
      OVCAP.
      SUBROUTINE HPA37
* 
**       DESCRIPTION
*        -----------
*        CONTROL PROGRAM FOR ROUTINES IN SECONDARY
*        OVERLAY ( 3, 7 ) 
* 
*        CALLED BY - HPA3 
* 
*CALL HPACOM1 
* 
      IF (FROG(6) .NE. L"T") GO TO 10 
      CALL SECOND (CP)
      PRINT 9,CP
    9 FORMAT ( ' ENTER HPA37, SECOND = ',F10.3) 
   10 CONTINUE
      GO TO (100,100,100,100,100,100,100,100,100,100,200) OVCALL
  
*        MESSAGE NOT PROCESSED - GET NEXT RECORD
  
  100 CALL GNR3 
      CALL SETEM3(1)
      GO TO 1000
  
  200 CONTINUE
      IF (RTY.EQ.O"66") GO TO 300 
      IF (RTY.EQ.O"67") GO TO 400 
      CALL AN3MS7 
      GO TO 1000
  
  300 CALL AN3MST7
      GO TO 1000
  
  400 CALL AN3CCC7
  
 1000 CONTINUE
      END 
      SUBROUTINE AN3MS7 
* 
**       DESCRIPTION
*        -----------
*        DEVELOPE UNIT ANALYSIS REPORT FOR MASS STORAGE FACILITY
*        SUBSYSTEM - MSFS 
* 
*        ENTRY
*        -----
*        SEF DATA FOR MSFS EQUIPMENT IN ARRAYS IFLD AND NFLD
*        (IF ERROR MESSAGE) OR IN ARRAY IFLD (IF USAGE MESSAGE) 
* 
* 
*        EXIT 
*        ---- 
*        ALL MSFS ENTRIES PROCESSED 
*        SEF FILE POSITIONED TO NEXT ENTRY
*        ALL REPORTS REQUESTED HAVE BEEN PRINTED
* 
*        DATA AREAS AND DEFINITIONS 
*        -------------------------- 
*        PRUK- COMMON BLOCK ARRAY TO SUM USAGE FOR THIS EQUIPMENT 
*              TO BE PRINTED BY ERDIST3 
* 
*CALL HPACOM1 
*CALL HPACOM2 
*CALL HPACOM3 
      DIMENSION SUM(217,5,2)
      EQUIVALENCE (SUM(1,1,1),STOR(1,1))
* 
      DATA TFL / 0 /
  
      CALL LOVCAP ('ACCUM3')
  
   10 CONTINUE
      CALL INISET3
      TMOUNT = 0
      IHDR = 9
      MPR(1,1) = O"60"
      MPR(1,2) = 3
      IF (FROG(18).EQ.3HYES) MPR(1,2) = 5 
      MPR(2,1) = O"2500"
      MPR(2,2) = 4
      IF (FROG(18).EQ.3HYES) MPR(2,2) = 6 
      TYPID = 4HMSFS
   20 CONTINUE
*     CLEAR QUALIFIER FOR UNUSED MESSAGES 
      IF (MTY .NE. O"60") FLAGS(8) = 0
  
      IF (RCFA .EQ. 2HON) CALL STOJN3 
  
  
*        CALL DETAILED REPORT IF SELECTED 
      IF(RCFD.NE.3HOFF) CALL DL3MS7 
  
*        CHECK FOR USAGE MESSAGE
      UNID = IFLD(FUN)
      IF (RCFA .EQ. 3HOFF) GO TO 300
  
      IF(IFLD(FMTY).EQ.O"60") GO TO 200 
*        MUST BE AN ERROR MESSAGE 
*        SAVE DATA FOR ANALYSIS REPORTS 
      VSN = NFLD(23) + SHIFT(NFLD(22),12) + SHIFT(NFLD(21),24)
      IF (VSN.EQ.0) VSN = O"55 55 55 55 55 55"
  
*     SUM RECOVERED ERRORS
      IF (IFLD(16) .EQ. 0) CALL ACCUM3 (VSN,2)
*     SUM UNRECOVERED ERRORS
      IF (IFLD(16) .NE. 0) CALL ACCUM3 (VSN,1)
      GO TO 300 
  
  200 CONTINUE
      DO 220 I=1,10 
      IF (PRUK(3,I) .EQ. 0) GO TO 240 
      IF (PRUK(3,I) .EQ. MFID) GO TO 260
*           TABLE FULL
  220 CONTINUE
      IF (TFL .GT. 4) GO TO 300 
      TFL = TFL + 1 
      PRINT 1000
      GO TO 300 
  240 PRUK(3,I) = MFID
*        SUM BLOCKS READ
  260 PRUK(1,I) = PRUK(1,I) + FLAGS (20)
  
*        SUM BLOCKS WRITTEN 
      PRUK(2,I) = PRUK(2,I) + FLAGS (21)
  
*         TOTAL MOUNTS
      TMOUNT = TMOUNT + 1 
  
  300 CALL GNR3 
      CALL SETEM3(1)
      IF(TWIC.LT.3) GO TO 400                                           004030
      IF(IFLD(FUN).NE.UNID) GO TO 400                                   004040
      GO TO 20                                                          004050
  
*        CHECK FOR ANALYSIS REPORT
  400 IF (RCFA .EQ. 3HOFF) GO TO 800
      HDATA(2) = 10H MSC
      CALL XOVCAP ('ERDIST3',0,0) 
      CALL UOVCAP ('ERDIST3') 
      CALL LOVCAP ('PRSUM3')
*         PRINT TOTAL MOUNTS
      IF (TMOUNT.NE.0) PL(1) = TMOUNT 
      IF (TMOUNT.NE.0) CALL PRINT37(2,1)
  
*        PRINT SUMMARY OF RECOVERED ERRORS
      IF (SUM(1,2,2) .EQ. 0) GO TO 500
      HCF(5) = 8
      CALL PHEAD37(5) 
      HDATA(1) = 10HMSC VSN 
      CALL PRSUM3(2,6)
      HCF(5) = 9
      CALL PHEAD37(5) 
  
*        PRINT SUMMARY OF UNRECOVERED ERRORS
      IF (LINE+6 .LE. PLF) GO TO 500
      CALL HEADER 
  500 IF (SUM(1,1,2) .EQ. 0) GO TO 750
      HCF(5) = 10 
      CALL PHEAD37(5) 
      HDATA(1) = 10HMSC VSN 
      CALL PRSUM3(1,6)
  750 CONTINUE
      CALL UOVCAP ('PRSUM3')
  
  800 IF (TWIC .GT. 1) GO TO 10 
  
      CALL UOVCAP ('ACCUM3')
  
 1000 FORMAT (1X,'..BLOCKS READ/WRITTEN TABLE FULL..AN3MS7--')
      RETURN
      END 
      SUBROUTINE AN3MST7
* 
**     DESCRIPTION
*      -----------
*      DEVELOPS UNIT ANALYSIS REPORT FOR MASSTOR 7990.
* 
*      DATA AREAS AND DEFINITIONS FOR 7990 USAGES MESSSAGES 
*      IFLD(21) + IFLD(22) + IFLD(23) + IFLD(24) = CSN
*      IFLD(26) + IFLD(27) = STRIPE WRITTEN 
*      IFLD(28) + T2 = STRIPE READ
*      IFLD(31) = WRITE CHECKS
*      IFLD(32) = DEMARK ATTEMPTS 
*      IFLD(33) = DEMARK CHECKS 
*      T3 = READ CHECKS 
*      IFLD(36) = UNRECOVERABLE READ ERRORS 
*      IFLD(37) = SERVO CHECKS
*      IFLD(38) = FORMAT CHECKS 
*      IFLD(39) = CALLS TO SEARCH ID
*      IFLD(40) = DUMMY DE-STAGE COMMANDS 
*      IFLD(41) = RE-THREAD COMMANDS
*      IFLD(42) = SM AND DRD UNIT NUMBERS (FORMERLY IFLD(4) & IFLD(FUN))
*      NFLD(21) + NFLD(22) + NFLD(23) + NFLD(24) = CSN
*      NFLD(26) = SEARCH COMMANDS 
*      NFLD(27) = OTHER WRITE CHECKS
*      NFLD(28) = OTHER READ CHECKS 
*      TN2 = CARTRIDGE LOADS
*      NFLD(31) = CARTRIDGE LOAD ERRORS 
*      NFLD(32) = CARTDRIGE UNLOADS 
*      NFLD(33) = CARTRIDGE UNLOAD ERRORS 
*CALL,HPACOM1 
*CALL,HPACOM2 
*CALL,HPACOM3 
      DIMENSION SUM(217,5,2), USGTOT(8,16,20), TYPE(13,4) 
      EQUIVALENCE (SUM(1,1,1),STOR(1,1))
* 
      DATA TFL / 0 /
      DATA (((USGTOT(I,J,K),I=1,8),J=1,16),K=1,20) / 2560*0 / 
  
      DATA(TYPE(I,4),I=1,13)/ Z"30", Z"40", Z"41", Z"43", Z"44", Z"47", 
     .                        Z"60", Z"61", Z"63", Z"65", Z"67", Z"E1", 
     .                        Z"F0" / 
  
      DATA(TYPE(I,3),I=1,9) /9*10H          / 
      DATA(TYPE(1,I),I=1,2) /10H30-CIF, DT,10HI/DTO ERR / 
      DATA(TYPE(2,I),I=1,3) /10H40-DRD, DR,10HC, DIF DTI,10H/DTO ERR  / 
      DATA(TYPE(3,I),I=1,2) /10H41-ACCESSO,10HR ERROR   / 
      DATA(TYPE(4,I),I=1,3) /10H43-DEVICE/,10HPATH STATU,10HS CHANGE  / 
      DATA(TYPE(5,I),I=1,2) /10H44-ALT DEV,10HICE ERROR / 
      DATA(TYPE(6,I),I=1,3) /10H47-DEVICE ,10HDRIVER SOF,10HTWARE ERR / 
      DATA(TYPE(7,I),I=1,2) /10H60-CPU/MEM,10HORY ERROR / 
      DATA(TYPE(8,I),I=1,2) /10H61-SOFTWAR,10HE ERROR   / 
      DATA(TYPE(9,I),I=1,3) /10H63-VIRTUAL,10H TAPE ERRO,10HRS        / 
      DATA(TYPE(10,I),I=1,3) /10H65-SMT OPE,10HRATION ERR,10HORS       /
      DATA(TYPE(11,I),I=1,3) /10H67-COPY VO,10HLUME ERROR,10HS         /
      DATA(TYPE(12,I),I=1,3) /10HE1-ERROR L,10HOG OVERFLO,10HW         /
      DATA(TYPE(13,I),I=1,3) /10HFX-ASSOC. ,10HWRITE LOG ,10HSMT DATA  /
  
      CALL LOVCAP ('ACCUM3')
  
   10 CONTINUE
      CALL INISET3
      TMOUNT = 0
      IHDR = 9
*      USAGE
      MPR(1,1) = O"60"
      MPR(1,2) = 11 
      IF (FROG(18).EQ.3HYES) MPR(1,2) = 26
*      FMT 30 
      MPR(2,1) = O"4710"
      MPR(2,2) = 12 
*      FMT 40 
      MPR(3,1) = O"5020"
      MPR(3,2) = 13 
*      FMT 41 
      MPR(4,1) = O"5070"
      MPR(4,2) = 14 
*      FMT 43 
      MPR(5,1) = O"5117"
      MPR(5,2) = 15 
*      FMT 44 
      MPR(6,1) = O"5220"
      MPR(6,2) = 13 
*      FMT 47 
      MPR(7,1) = O"5350"
      MPR(7,2) = 16 
*      FMTS 60 AND 61 
      MPR(8,1) = O"5617"
      MPR(8,2) = 17 
*      FMT E1 
      MPR(9,1) = O"5620"
      MPR(9,2) = 16 
*      FMT 63 
      MPR(10,1) = O"6017" 
      MPR(10,2) = 27
*      FMT 65 
      MPR(11,1) = O"6107" 
      MPR(11,2) = 28
*      FMT 67 
      MPR(12,1) = O"6120" 
      MPR(12,2) = 29
*      FMT FX 
      MPR(13,1) = O"6130" 
      MPR(13,2) = 30
*      FMT 40 (FOR HPA ERROR CODES O"6141"-O"6144", WHICH OVERFLOW
*             ORIGINAL FMT 40 AREA OF ERRORM CODES/MESSAGES TABLE)
      MPR(14,1) = O"6144" 
      MPR(14,2) = 13
*      FMT 41 (FOR HPA ERROR CODE O"6161", WHICH OVERFLOWS
*             ORIGINAL FMT 41 AREA OF ERRORM CODES/MESSAGES TABLE)
      MPR(15,1) = O"6161" 
      MPR(15,2) = 14
*      FMT 63 (FOR HPA ERROR CODES O"6201"-O"6212", WHICH OVERFLOW
*             ORIGINAL FMT 63 AREA OF ERRORM CODES/MESSAGES TABLE)
      MPR(16,1) = O"6212" 
      MPR(16,2) = 27
  
      TYPID = 10HMSSTR 7990 
   20 CONTINUE
*     CLEAR QUALIFIER FOR UNUSED MESSAGES 
      IF (MTY .NE. O"60") FLAGS(8) = 0
  
      IF ((IFLD(FJOB) .NE. R" CONTINU") .AND. (RCFA .EQ. 2HON)) 
     .CALL STOJN3 
  
*        CHECK FOR USAGE MESSAGE
      IF(IFLD(FMTY).EQ.O"60") GO TO 200 
*        CHECK FOR MESSAGE FORMAT AND SEVERITY LEVEL
      IF (IFLD(42).NE.1) GO TO 100
      IFMT = SHIFT(IFLD(21),-8).AND.Z"FF" 
      IF ((IFMT .AND. Z"F0") .EQ. Z"F0") IFMT = Z"F0" 
      LEVEL = SHIFT(IFLD(24),-10).AND.3 
      DO 50 I = 1, 13 
      IF(IFMT.EQ.TYPE(I,4)) GO TO 60
   50 CONTINUE
      IFMT = 0
      GO TO 300 
   60 HX(1) = TYPE(I,1) 
      HX(2) = TYPE(I,2) 
      HX(3) = TYPE(I,3) 
*        CALL DETAILED REPORT IF SELECTED 
  100 IF(RCFD.NE.3HOFF) CALL DL3MST7
  
      IF (RCFA .EQ. 3HOFF) GO TO 300
*        SAVE DATA FOR ANALYSIS REPORTS 
      IF (IFLD(42).NE.4) GO TO 300
      IF ((LEVEL .NE. 1) .AND. (LEVEL .NE. 3)) GO TO 300
      IF ((IFMT .EQ.     0) .OR. (IFMT .EQ. Z"30") .OR. 
     .    (IFMT .EQ. Z"43") .OR. (IFMT .EQ. Z"60") .OR. 
     .    (IFMT .EQ. Z"61") .OR. (IFMT .EQ. Z"E1") .OR. 
     .    (IFMT .EQ. Z"F0")) GO TO 300
      ICSN = 10H
  
*      CHECK CSN FOR FORMATS 40, 41, 44 AND 47
      IF ((IFMT .EQ. Z"40") .OR. (IFMT .EQ. Z"41") .OR. 
     .    (IFMT .EQ. Z"44") .OR. (IFMT .EQ. Z"47")) THEN
      DO 110,  I = 26,32
  110 IF (IFLD(I).NE.0) GO TO 115 
  115 MNF = (SHIFT(IFLD(26),16).AND.Z"FFFF0000")
     .     .OR.(IFLD(27).AND.Z"FFFF") 
      MANUF = 2H
      IF (MNF.EQ.Z"C9C2D440") MANUF = 2HA-
      T2 = SHIFT(IFLD(29),8).OR.IFLD(30)
      K1 = SHIFT(IFLD(28),-8).AND.Z"F"
      K2 = SHIFT(T2,-8).AND.Z"F"
      K3 = SHIFT(IFLD(31),-8).AND.Z"F"
      K4 = SHIFT(IFLD(32),-8).AND.Z"F"
      ENCODE (10,120,ICSN) MANUF,K1,IFLD(28),K2,T2, 
     .       K3,IFLD(31),K4,IFLD(32)
  120 FORMAT (A2,8Z1) 
      GO TO 175 
      ENDIF 
  
*      CHECK CSN FOR FORMAT 63
      IF (IFMT .EQ. Z"63") THEN 
      DO 130 I = 45, 50 
  130 IF (PL(I) .NE. 0) GO TO 132 
      GO TO 136 
  132 MNF = (SHIFT(PL(45),16) .AND. Z"FFFF0000") .OR. 
     .            (PL(46) .AND. Z"FFFF")
      MANUF = 2H
      IF (MNF .EQ. Z"C9C2D440") MANUF = 2HA-
      K1 = SHIFT(PL(47),-8).AND.Z"F"
      K2 = SHIFT(PL(48),-8).AND.Z"F"
      K3 = SHIFT(PL(49),-8).AND.Z"F"
      K4 = SHIFT(PL(50),-8).AND.Z"F"
      ENCODE (10,120,ICSN) MANUF,K1,PL(47),K2,PL(48),K3,PL(49),K4,PL(50)
  136 CONTINUE
      GO TO 175 
      ENDIF 
  
*      CHECK CSN FOR FORMAT 65
      IF (IFMT .EQ. Z"65") THEN 
      DO 142 I = 53, 58 
  142 IF (PL(I) .NE. 0) GO TO 144 
      GO TO 146 
  144 MNF = (SHIFT(PL(53),16) .AND. Z"FFFF0000") .OR. 
     .            (PL(54) .AND. Z"FFFF")
      MANUF = 2H
      IF (MNF .EQ. Z"C9C2D440") MANUF = 2HA-
      K1 = SHIFT(PL(55),-8).AND.Z"F"
      K2 = SHIFT(PL(56),-8).AND.Z"F"
      K3 = SHIFT(PL(57),-8).AND.Z"F"
      K4 = SHIFT(PL(58),-8).AND.Z"F"
      ENCODE (10,120,ICSN) MANUF,K1,PL(55),K2,PL(56),K3,PL(57),K4,PL(58)
  146 CONTINUE
      GO TO 175 
      ENDIF 
  
*      CHECK SOURCE CSN FOR FORMAT 67 
      IF (IFMT .EQ. Z"67") THEN 
      DO 152 I = 49, 54 
  152 IF (PL(I) .NE. 0) GO TO 154 
      GO TO 156 
  154 MNF = (SHIFT(PL(49),16) .AND. Z"FFFF0000") .OR. 
     .            (PL(50) .AND. Z"FFFF")
      MANUF = 2H
      IF (MNF .EQ. Z"C9C2D440") MANUF = 2HA-
      K1 = SHIFT(PL(51),-8).AND.Z"F"
      K2 = SHIFT(PL(52),-8).AND.Z"F"
      K3 = SHIFT(PL(53),-8).AND.Z"F"
      K4 = SHIFT(PL(54),-8).AND.Z"F"
      ENCODE (10,120,ICSN) MANUF,K1,PL(51),K2,PL(52),K3,PL(53),K4,PL(54)
  156 CONTINUE
      GO TO 175 
      ENDIF 
  
  175 CONTINUE
*     SUM WARNING ERRORS
      IF (LEVEL.EQ.1) CALL ACCUM3 (ICSN,2)
*     SUM FATAL ERRORS
      IF (LEVEL.EQ.3) CALL ACCUM3 (ICSN,1)
      GO TO 300 
  
  200 CONTINUE
* 
      IF ((RCFD .EQ. 2HON) .AND. (FROG(8) .EQ. 2HON)) CALL DL3USG7
      IF (RCFA.EQ.3HOFF) GO TO 300
  
      DO 220 I=1,10 
      IF (PRUK(3,I) .EQ. 0) GO TO 240 
      IF (PRUK(3,I) .EQ. MFID) GO TO 260
*           TABLE FULL
  220 CONTINUE
      IF (TFL .GT. 4) GO TO 300 
      TFL = TFL + 1 
      PRINT 1000
      GO TO 300 
  240 PRUK(3,I) = MFID
*        SUM STRIPES READ 
  260 PRUK(1,I) = PRUK(1,I) + FLAGS (20)
  
*        SUM STRIPES WRITTEN
      PRUK(2,I) = PRUK(2,I) + FLAGS (21)
  
*         TOTAL MOUNTS
      TMOUNT = TMOUNT + 1 
  
      IF (FROG(8).NE.2HON) GO TO 300
*      TOTAL FOR USAGE SUMMARY
      IF ((IFLD(FUN) .EQ. 0) .AND. (IFLD(4) .EQ. 0)) THEN 
         SM = SHIFT(IFLD(42),-6) .AND. O"17"
         IDRD = IFLD(42) .AND. O"17"
      ELSE
      SM = IFLD(FUN)
      IDRD = IFLD(4)
         IF (SM .GT. 7) SM = 0
         IF (IDRD .GT. 15) IDRD = 0 
      ENDIF 
      K = SM + 1
      L = IDRD + 1
      T3 = SHIFT(IFLD(34),12).OR.IFLD(35) 
      USGTOT(K,L,1) = USGTOT(K,L,1) + 1 
      USGTOT(K,L,12) = USGTOT(K,L,12) + FLAGS(20) 
      USGTOT(K,L,6) = USGTOT(K,L,6) + FLAGS(21) 
      DO 270  M = 2,4 
  270 USGTOT(K,L,M) = USGTOT(K,L,M) + IFLD(37+M)
      USGTOT(K,L,5) = USGTOT(K,L,5) + NFLD(26)
      USGTOT(K,L,7) = USGTOT(K,L,7) + IFLD(31)
      USGTOT(K,L,8) = USGTOT(K,L,8) + IFLD(37)
      USGTOT(K,L,9) = USGTOT(K,L,9) + NFLD(27)
      USGTOT(K,L,10) = USGTOT(K,L,10) + IFLD(32)
      USGTOT(K,L,11) = USGTOT(K,L,11) + IFLD(33)
      USGTOT(K,L,13) = USGTOT(K,L,13) + T3
      USGTOT(K,L,14) = USGTOT(K,L,14) + IFLD(38)
      USGTOT(K,L,15) = USGTOT(K,L,15) + NFLD(28)
      USGTOT(K,L,16) = USGTOT(K,L,16) + IFLD(36)
      TN2 = SHIFT(NFLD(29),8).OR.NFLD(30) 
      USGTOT(K,L,17) = USGTOT(K,L,17) + TN2 
      DO 280  M = 18,20 
  280 USGTOT(K,L,M) = USGTOT(K,L,M) + NFLD(13+M)
  
  300 CALL GNR3 
      CALL SETEM3(1)
      IF(TWIC.LT.3) GO TO 400 
      GO TO 20
  
*        CHECK FOR ANALYSIS REPORT
  400 IF (RCFA .EQ. 3HOFF) GO TO 800
      CALL XOVCAP ('ERDIST3',0,0) 
      CALL UOVCAP ('ERDIST3') 
      CALL LOVCAP ('PRSUM3')
*         PRINT TOTAL MOUNTS
      IF (TMOUNT.NE.0) PL(1) = TMOUNT 
      IF (TMOUNT.NE.0) CALL PRINT37(2,1)
  
*        PRINT SUMMARY OF WARNING ERRORS
      IF (SUM(1,2,2) .EQ. 0) GO TO 500
      HCF(5) = 20 
      CALL PHEAD37(5) 
      HDATA(1) = 10H  CSN 
      CALL PRSUM3(2,22) 
      HCF(5) = 21 
      CALL PHEAD37(5) 
  
*        PRINT SUMMARY OF FATAL ERRORS
      IF (LINE+6 .LE. PLF) GO TO 500
      CALL HEADER 
  500 IF (SUM(1,1,2) .EQ. 0) GO TO 550
      HCF(5) = 22 
      CALL PHEAD37(5) 
      HDATA(1) = 10H  CSN 
      CALL PRSUM3(1,22) 
  550 CONTINUE
      CALL UOVCAP ('PRSUM3')
  
      IF (FROG(8).NE.2HON) GO TO 800
  
*      PRINT USAGE SUMMARY
      DO 650 II = 1,8 
      SMD = II
      DRD1 = (II * 2) - 1 
      DRD2 = (II * 2) 
      IF ((USGTOT(SMD,DRD1,1) .EQ. 0) .AND. (USGTOT(SMD,DRD2,1) .EQ. 0))
     .     GO TO 650
      HCF(5) = 23 
      PL(1) = SMD - 1 
      PL(63) = DRD1 - 1 
      PL(64) = DRD2 - 1 
      K = 2 
      DO 620  J = 2,38,2
      PL(J) = USGTOT(SMD,DRD1,K)
  620 K = K + 1 
      K = 2 
      DO 630  J = 3,39,2
      PL(J) = USGTOT(SMD,DRD2,K)
  630 K = K + 1 
      IF ((LINE+32).GT.PLF) CALL HEADER 
      CALL PHEAD37(5) 
      DO 640  I = 1, 64 
  640 PL(I) = 1H
  650 CONTINUE
  
  800 IF (TWIC .GT. 1) GO TO 10 
  
      CALL UOVCAP ('ACCUM3')
  
 1000 FORMAT (1X,'..STRIPES READ/WRITTEN TABLE FULL..AN3MST7--')
      RETURN
      END 
      SUBROUTINE AN3CCC7
* 
**    DESCRIPTION 
*     ----------- 
*     DEVELOPS UNIT ANALYSIS REPORT FOR MASSTOR CCC.
* 
*CALL,HPACOM1 
*CALL,HPACOM2 
      CALL INISET3
      IHDR = 9
      MPR(1,1) = O"5650"
      MPR(1,2) = 24 
      IF (FROG(18).EQ.3HYES) MPR(1,2) = 25
      TYPID = 10H MSSTR CCC 
   20 IF (RCFA .EQ. 2HON) CALL STOJN3 
      IF (RCFD.EQ.2HON) CALL DL3CCC7
      CALL GNR3 
      CALL SETEM3(1)
      IF (TWIC.GE.3) GO TO 20 
      IF (RCFA .EQ. 2HON) THEN
         CALL XOVCAP ('ERDIST3',0,0)
         CALL UOVCAP ('ERDIST3')
      ENDIF 
  
      RETURN
      END 
      SUBROUTINE DL3MS7 
* 
**       DESCRIPTION
*        -----------
*        DEVELOPE DETAILES REPORTS FOR MSFS EQUIPMENT 
* 
*        ENTRY
*        -----
*        DATA IN IFLD(64) AND NFLD(64)
* 
*        FIELD          DESCRIPTION                  MESSAGE 1
*        -----          ----------- 
*        IFLD - 21       LAST COUPLER FUNCTION
*        IFLD - 22       LAST CTL TAG 
*        IFLD - 23       CTL TAG MODIFIER 
*        IFLD - 24       CTL TAG STATUS 
*        IFLD - 25       MSFS - 2 OPERATION (COMMAND) 
*        IFLD - 26       BUFFER WORD COUNTER STSTUS 
*        IFLD - 27       BUFFER PARITY ERROR STATUS 
*        IFLD - 28       BUFFER OUTPUT COUNTER
*        IFLD - 29       BUFFER INPUT COUNTER 
*        IFLD - 30       CTL STATUS 
*        IFLD - 31       COUPLER STATUS 
*        IFLD - 32       .. UNUSED .. 
*        IFLD - 33       MSA SENSE BYTES 00-04
*        IFLD - 34       MSA SENSE BYTES 04-11.5
*        IFLD - 35       MSA SENSE BYTES 11.5-19
* 
*        FIELD          DESCRIPTION                  MESSAGE 2
*        -----          ----------- 
*        NFLD - 21       VSN OF MSC - TOP 12 BITS 
*        NFLD - 22       VSN OF MSC - MIDDLE 12 BITS
*        NFLD - 23       VSN OF MSC - BOTTOM 12 BITS
*        NFLD - 24       MSC LOCATION ASSIGNED
*        NFLD - 25       MSC LOCATION FROM LABEL
*        NFLD - 26       .. UNUSED .. 
*        NFLD - 27       RETRY COUNT
*        NFLD - 28       RECOVERY METHOD
*        NFLD - 29       BLOCK NUMBER 
*        NFLD - 30       BLOCK SIZE 
*        NFLD - 31       MST ID THAT WROTE THE MSC
*        NFLD - 32       STREAM NUMBER
*        NFLD - 33       MST/CSU SENSE DATA BYTES   00-04 
*        NFLD - 34       MST/CSU SENSE DATA BYTES   05-11.5 
*        NFLD - 35       MST/CSU SENSE DATA BYTES   11.5-19 
* 
*        FIELD          DESCRIPTION                  USAGE MESSAGE
*        -----          ----------- 
*        IFLD - 21       VSN OF MSC  - TOP 12 BITS
*        IFLD - 22       VSN OF MSC  - MIDDLE 12 BITS 
*        IFLD - 23       VSN OF MSC  - BOTTOM 12 BITS 
*        IFLD - 24       MCS LOCATION ASSIGNED
*        IFLD - 25       LOAD TIME
*        IFLD - 26       HEAD POSITION CHANGES
*        IFLD - 27       STREAMS READ/WRITTEN 
*        IFLD - 28       BLOCKS READ
*        IFLD - 29       BLOCKS WRITTEN 
*        IFLD - 30       BLOCK SIZE 
*        IFLD - 31       .. UNUSED .. 
*        IFLD - 32       .. UNUSED .. 
*        IFLD - 33       X-TRAVEL       - BITS 39-24
*                        Y-TRAVEL       - BITS 23-08
*                        PICKS/PUTS     - BITS 07-00
*        IFLD - 34       PICKS/PUTS     - BITS 59-52
*                        SELECTOR MOVES - BITS 51-36
*                        .. UNUSED ...  - BITS 35 -00 
*        IFLD - 35       .. UNUSED .. 
* 
*        EXIT 
*        ---- 
*        DETAILED REPORT LINE PRINTED 
* 
*        ROUTINED CALLED - PRINT37,UCHEK37,LOAPR, 
* 
*        ROUTINES CALLED BY - AN3MS7
* 
*CALL HPACOM1 
*CALL HPACOM2 
* 
*        OMIT USAGE RECORDS UNLESS  ( ST ) PARAMETER SELECTED 
      IF(FLAGS(8).LT.O"40") GO TO 50
      IF(FROG(8).EQ.3HOFF) GO TO 900
   50 CONTINUE
      CALL UCHEK37
      IF (FLAGS(4) .EQ. 3HOFF) GO TO 900
  
      IF (MTY .NE. O"60") GO TO 500 
*        USAGE DETAIL - (ST) PARAMETER SELECTED                         003750
      VSN = IFLD(23) + SHIFT(IFLD(22),12) + SHIFT(IFLD(21),24)          003770
      MSAID = SHIFT(IFLD(33),24).AND.O"17"
      MSTID = IFLD(32)
      ICSUID = SHIFT(IFLD(33),-17).AND.O"177" 
      ICSUUNT = SHIFT(IFLD(33),-12).AND.O"37" 
      ICPLUNT = SHIFT(IFLD(31),-6).AND.O"77"
      TPASS = SHIFT(IFLD(27),-6).AND.O"77"
      PIKPUT = IFLD(27).AND.O"77" 
      READERR = SHIFT(IFLD(34),12).AND.O"7777"
      WRTEERR = SHIFT(IFLD(34),24).AND.O"7777"
      SELCNT = SHIFT(IFLD(34),36).AND.O"7777" 
      IF (VSN.EQ.0) VSN = O"55 55 55 55 55 55"
      XPOS = SHIFT(IFLD(24),-6) .AND. O"77" 
      YPOS = IFLD(24) .AND. O"77" 
      CALL LOAPR(1,IFLD(20),IFLD(FJOB),VSN,MFID,IFLD(FCHAN) 
     .           ,IFLD(FCON),IFLD(FUN),MSAID) 
      CALL LOAPR(9,MSTID,ICSUID,ICSUUNT,ICPLUNT,XPOS,YPOS 
     .           ,IFLD(26),TPASS) 
      IF (FROG(18).EQ.3HYES) GO TO 200
      CALL LOAPR(17,IFLD(28),IFLD(29),PIKPUT,IFLD(30),READERR 
     .           ,WRTEERR,SELCNT,SP)
      CALL PRINT37(102,23)
      GO TO 900 
  200 CONTINUE
      CALL LOAPR(17,IFLD(28),IFLD(29),SP,SP,SP,SP,SP,SP)
      CALL PRINT37(104,18)
      GO TO 900                                                         003900
  
  500 CONTINUE                                                          003920
*        MSFS ERROR MESSAGE 
*           ARRAY IFLD HOLDS INFO FROM MESSAGE 1
*           ARRAY NFLD HOLDS INFO FROM MESSAGE 2
* 
  
*        FILL IN MST,CSU,MSA ID 
      ICSU = SHIFT(IFLD(31),-4) .AND. O"377"
      MSA = IFLD(31).AND.O"17"
      ICPLNUM = IFLD(21).AND.O"77"
  
*         SET VSN FOR ERROR MESSAGE 
      VSN = NFLD(23) + SHIFT(NFLD(22),12) + SHIFT(NFLD(21),24)
      RCVR = 1HY
      IF (IFLD(FEST+1).EQ.1)  RCVR = 1HN
      RTY = SHIFT(IFLD(21),-6).AND.O"77"
      RW = 1HR
      WT = SHIFT(NFLD(27),-11).AND.1
      IF (WT.EQ.1)  RW = 1HW
      PCODE = NFLD(27).AND.O"3777"
      XPOS = SHIFT(NFLD(24),-6).AND.O"77" 
      YPOS = NFLD(24).AND.O"77" 
      IF (VSN.EQ.0) VSN = O"55 55 55 55 55 55"
      CALL LOAPR (1,IFLD(20),IFLD(FJOB),VSN,MFID,IFLD(FCHAN)
     .            ,IFLD(FCON),IFLD(FUN),MSA)
      CALL LOAPR(9,ICSU,ICPLNUM,RTY,RW,RCVR,XPOS,YPOS,PCODE)
      IF (FROG(18).EQ.3HYES) GO TO 600
      CALL LOAPR(17,IFLD(24),IFLD(25),IFLD(26),IFLD(27),IFLD(28), 
     .              IFLD(29),IFLD(30),NFLD(26)) 
      CALL LOAPR(25,IFLD(22),NFLD(28),NFLD(29),NFLD(30) 
     .           ,SP,SP,SP,SP)
      CALL PRINT 37(101,28) 
      GO TO 800 
  600 CONTINUE
      CALL LOAPR(17,IFLD(24),IFLD(25),SP,SP,SP,SP,SP,SP)
      CALL PRINT37(103,18)
  
  800 CONTINUE
*        CHECK FOR EXTENDED DETAILED REPORT 
      IF(FLAGS(11).EQ.3HOFF) GO TO 900
*        SET MSA SENSE IN PL(1) TO PL(20) 
      IFLD(33) = SHIFT(IFLD(33),28) 
      DO 820 I=1,5
         PL(I) = IFLD(33).AND.O"377"
         IFLD(33) = SHIFT(IFLD(33),8) 
  820 CONTINUE
      DO 821 I=6,13 
         IFLD(34) = SHIFT(IFLD(34),8) 
         PL(I) = IFLD(34).AND.O"377"
  821 CONTINUE
      PL(13) = PL(13).AND.O"360"
      IFLD(35) = SHIFT(IFLD(35),4)
      PL(13) = PL(13).OR.(IFLD(35).AND.O"17") 
      DO 822 I=14,20
         IFLD(35) = SHIFT(IFLD(35),8) 
         PL(I) = IFLD(35).AND.O"377"
  822 CONTINUE
      IF (FROG(18).EQ.3HYES) GO TO 850
  
*        SET CSU OR MST SENSE IN PL(21) TO PL(40) 
  
      PL(21) = SHIFT(NFLD(31),-4).AND.O"377"
      NFLD(31) = SHIFT(NFLD(31),4).AND.O"360" 
      PL(22) = SHIFT(NFLD(32),-4).AND.O"17" 
      PL(22) = NFLD(31).OR.PL(22) 
      NFLD(32) = SHIFT(NFLD(32),4).AND.O"360" 
      NFLD(33) = SHIFT(NFLD(33),24) 
      PL(23) = NFLD(32).OR.(NFLD(33).AND.O"17") 
      DO 823  I = 24,28 
      NFLD(33) = SHIFT(NFLD(33),8)
      PL(I) = NFLD(33).AND.O"377" 
  823 CONTINUE
      PL(28) = PL(28).AND.O"360"
      NFLD(34) = SHIFT(NFLD(34),4)
      PL(28) = PL(28).OR.(NFLD(34).AND.O"17") 
      DO 824  I = 29,35 
      NFLD(34) = SHIFT(NFLD(34),8)
      PL(I) = NFLD(34).AND.O"377" 
  824 CONTINUE
      DO 825  I = 36,40 
      NFLD(35) = SHIFT(NFLD(35),8)
      PL(I) = NFLD(35).AND.O"377" 
  825 CONTINUE
      CALL PRINT37(3,40)
      GO TO 900 
  850 CONTINUE
      CALL PRINT37(5,20)
      PL(1) = SHIFT(NFLD(31),-4).AND.O"377" 
      NFLD(31) = SHIFT (NFLD(31),4).AND.O"360"
      PL(2) = SHIFT(NFLD(32),-4).AND.O"17"
      PL(2) = NFLD(31).OR.PL(2) 
      NFLD(32) = SHIFT(NFLD(32),4).AND.O"360" 
      NFLD(33) = SHIFT(NFLD(33),24) 
      PL(3) = NFLD(32).OR.(NFLD(33).AND.O"17")
      DO 860  I = 4,8 
      NFLD(33) = SHIFT(NFLD(33),8)
      PL(I) = NFLD(33).AND.O"377" 
  860 CONTINUE
      PL(8) = PL(8).AND.O"360"
      NFLD(34) = SHIFT(NFLD(34),4)
      PL(8) = PL(8).OR.(NFLD(34).AND.O"17") 
      DO 870  I = 9,15
      NFLD(34) = SHIFT(NFLD(34),8)
      PL(I) = NFLD(34).AND.O"377" 
  870 CONTINUE
      DO 880  I = 16,20 
      NFLD(35) = SHIFT(NFLD(35),8)
      PL(I) = NFLD(35).AND.O"377" 
  880 CONTINUE
      CALL PRINT37(5,20)
  
  900 CONTINUE
      RETURN
      END 
      SUBROUTINE DL3MST7
* 
**     DESCRIPTION
*      -----------
*      DEVELOPS DETAIL REPORTS FOR MASSTOR 7990 ERROR MESSAGES
* 
*      ENTRY
*      -----
*      DATA IN IFLDS
* 
*      DATA AREAS AND DEFINITIONS FOR 7990 ERROR MESSAGES 
*       1ST RECORD
*      T1 = ERROR CODE
*      IFLD(26) = SUBERROR CODE 
*      IFLD(27) = ACTIVE TASK POINT 
*      IFLD(28) - IFLD(41) = DATA STACK (STORED IN PL(17) - PL(28)) 
*      IFLD(42) = 1 (RECORD #1) 
*       2ND RECORD
*      IFLD(21) - IFLD(37) = RETURN STACK (STORED IN PL(29) - PL(42)) 
*      IFLD(38) - IFLD(41)  FORMAT DEPENDENT (STORED IN PL(43) - PL(46))
*                           (BYTE40-47) 
*      IFLD(42) = 2 (RECORD #2) 
*       3RD RECORD
*      IFLD(21) - IFLD(41)  FORMAT DEPENDENT (STORED IN PL(47) - PL(64))
*                           (BYTE48-6B) 
*      IFLD(42) = 3 (RECORD #3) 
*       4TH RECORD
*      IFLD(21) - IFLD(32)  FORMAT DEPENDENT
*                           (BYTE6C-7F) 
*      IFLD(42) = 4 (RECORD #4) 
* 
*CALL,HPACOM1 
*CALL,HPACOM2 
      DIMENSION SEVERE(4),ITYPE(13),IDEV43(7),MSTRBUS(8),IBUFERR(9,2) 
      DATA (SEVERE(I),I=1,4) /6H INFO , 6H WARN , 6HINTREQ, 6HFATAL / 
  
      DATA(ITYPE(I),I=1,13)/ Z"30", Z"40", Z"41", Z"43", Z"44", Z"47",
     .                       Z"60", Z"61", Z"63", Z"65", Z"67", Z"E1",
     .                       Z"F0" /
  
      DATA (IDEV43(I),I=1,7) /3HCIF, 3HDRD, 3HDRC, 3HSMA, 3HDIF,
     .                        3HDTO, 3HAIF/ 
      DATA (MSTRBUS(I),I=1,8) /4HCPU2, 4HCIF3, 4HCIF2, 4HCIF1,
     .                         4HCIF0, 4HDISK, 4HCPU1, 4H    /
      DATA (IBUFERR(1,J),J=1,2) /10HUNCORRECT ,4HERR /
      DATA (IBUFERR(2,J),J=1,2) /10HSINGLE BIT,4H ERR/
      DATA (IBUFERR(3,J),J=1,2) /10HBUFFER TIM,4HEOUT/
      DATA (IBUFERR(4,J),J=1,2) /10HBYTE 3 DAT,4HA PE/
      DATA (IBUFERR(5,J),J=1,2) /10HBYTE 2 DAT,4HA PE/
      DATA (IBUFERR(6,J),J=1,2) /10HBYTE 1 DAT,4HA PE/
      DATA (IBUFERR(7,J),J=1,2) /10HBYTE 0 DAT,4HA PE/
      DATA (IBUFERR(8,J),J=1,2) /10HXADDR PARI,4HTY E/
      DATA (IBUFERR(9,J),J=1,2) /10H          ,4H    /
  
      IF (IFLD(FJOB).NE.R" CONTINU") CALL UCHEK37 
  
      T1 = SHIFT(IFLD(24),4).OR.IFLD(25)
      T2 = SHIFT(IFLD(29),8).OR.IFLD(30)
      T3 = SHIFT(IFLD(34),12).OR.IFLD(35) 
  
      GO TO (100,200,300,400) IFLD(42)
  
*      FORMAT NUMBER, ERROR CODE AND SUB-CODE 
  100 IFMT = SHIFT(IFLD(21),-8).AND.Z"FF" 
      IF ((IFMT .AND. Z"F0") .EQ. Z"F0") THEN 
         SAVFMT = IFMT
         IFMT = Z"F0" 
         CALL LOAPR (8,SP,SP,SP,IFLD(21),IFLD(22),IFLD(23),T1,IFLD(26)) 
      ENDIF 
  
      ICODE = T1
      SUBCODE = IFLD(26)
      LEVEL = SHIFT(T1,-14).AND.3 
*      STORE ACTIVE TASK POINTER AND DATA STACK FOR DX REPORT 
      IF (FLAGS(11).NE.2HON) RETURN 
      CALL LOAPR(16,IFLD(27),IFLD(28),T2,IFLD(31),IFLD(32),IFLD(33),
     .           T3,SP) 
      DO 120  I = 23,28 
  120 PL(I) = IFLD(13+I)
      RETURN
  
*      RECORD #2
  200 IF (FLAGS(11).NE.2HON) GO TO 240
*      STORE RETURN STACK FOR DX REPORT 
      CALL LOAPR(29,IFLD(21),IFLD(22),IFLD(23),T1,IFLD(26),IFLD(27),
     .           IFLD(28),T2) 
      CALL LOAPR(37,IFLD(31),IFLD(32),IFLD(33),T3,IFLD(36),IFLD(37),
     .           SP,SP) 
*      STORE THE REST OF RECORD #2
  240 DO 260  I = 43,46 
  260 PL(I) = IFLD(I-5) 
      RETURN
  
*      STORE RECORD #3
  300 CALL LOAPR(47,IFLD(21),IFLD(22),IFLD(23),T1,IFLD(26),IFLD(27),
     .           IFLD(28),T2) 
      CALL LOAPR(55,IFLD(31),IFLD(32),IFLD(33),T3,IFLD(36),IFLD(37),
     .           IFLD(38),IFLD(39)) 
      PL(63) = IFLD(40) 
      PL(64) = IFLD(41) 
      RETURN
  
*      FINISH PROCESSING EACH MESSAGE AND PRINT REPORT
  400 PL(1) = IFLD(20)
      PL(3) = IFLD(FCHAN) 
      PL(4) = MFID
      PL(5) = SEVERE(LEVEL+1) 
  
      DO 420 I = 1, 13
      IF (IFMT.EQ.ITYPE(I)) GO TO 440 
  420 CONTINUE
      RETURN
  
*        FMT  30  40  41  43  44  47   60  61   63   65   67  E1   F0 
  440 GO TO (500,600,700,800,600,900,1000,900,1100,1200,1300,900,1400) I
  
*      30 CIF, DTI/DTO ERRORS 
  500 PL(2) = 10H 
      NUMCIF = SHIFT(PL(43),-8).AND.Z"FF" 
      NUMDTIO = PL(43).AND.Z"FF"
      ENCODE (20,2001,PL(6)) NUMCIF,NUMDTIO 
      IF (NUMCIF.EQ.Z"FF") PL(6) = 10H
      IF (NUMDTIO.EQ.Z"FF") PL(7) = 10H 
      PL(8) = ICODE 
      PL(9) = SUBCODE 
      CALL PRINT37(6,9) 
      IF (FLAGS(11).NE.2HON) RETURN 
      CALL PRINT37 (200,42) 
      IF (NUMDTIO.NE.Z"FF") GO TO 520 
      IF (FLAGS(4) .NE. 3HOFF) CALL PLSEC (5) 
      RETURN
  520 CALL LOAPR (1,IFLD(28),T2,IFLD(31),IFLD(32),SP,SP,SP,SP)
      CALL PRINT37 (201,4)
      IF (FLAGS(4) .NE. 3HOFF) CALL PLSEC (5) 
      RETURN
  
*      40 DRD,DRC,DIF,DTI/DTO ERROR AND 44 ALT DEVICE ERROR 
  600 CONTINUE
*      CSN
      DO 603,  I = 26,32
  603 IF (IFLD(I).NE.0) GO TO 606 
      ICSN = 10H
      GO TO 612 
  606 MNF = (SHIFT(IFLD(26),16).AND.Z"FFFF0000")
     .     .OR.(IFLD(27).AND.Z"FFFF") 
      MANUF = 2H
      IF (MNF.EQ.Z"C9C2D440") MANUF = 2HA-
      T2 = SHIFT(IFLD(29),8).OR.IFLD(30)
      K1 = SHIFT(IFLD(28),-8).AND.Z"F"
      K2 = SHIFT(T2,-8).AND.Z"F"
      K3 = SHIFT(IFLD(31),-8).AND.Z"F"
      K4 = SHIFT(IFLD(32),-8).AND.Z"F"
      ENCODE (10,609,ICSN) MANUF,K1,IFLD(28),K2,T2, 
     .       K3,IFLD(31),K4,IFLD(32)
  609 FORMAT (A2,8Z1) 
  612 CONTINUE
      PL(2) = ICSN
      NUMDRD = SHIFT(PL(43),-8).AND.Z"FF" 
      NUMDRC = PL(43).AND.Z"FF" 
      NUMDIF = SHIFT(PL(44),-8).AND.Z"FF" 
      NUMDTIO = PL(44).AND.Z"FF"
      NUMSMA = Z"FF"
      IF (IFMT.EQ.Z"44") NUMSMA = SHIFT(PL(45),-8).AND.Z"FF"
      ENCODE (50,2002,PL(6)) NUMDRD,NUMDRC,NUMDIF,NUMDTIO,NUMSMA
      IF (NUMDRD.EQ.Z"FF") PL(6) = 10H
      IF (NUMDRC.EQ.Z"FF") PL(7) = 10H
      IF (NUMDIF.EQ.Z"FF") PL(8) = 10H
      IF (NUMDTIO.EQ.Z"FF") PL(9) = 10H 
      IF (NUMSMA.EQ.Z"FF") PL(10) = 10H 
      PL(11) = ICODE
      PL(12) = SUBCODE
      CALL PRINT37(7,12)
      IF (FLAGS(11).NE.2HON) RETURN 
      CALL PRINT37 (200,42) 
      IF (IFMT.EQ.Z"44") GO TO 640
      IF (NUMDRD.EQ.Z"FF") GO TO 620
      DO 615  I = 1,8 
  615 PL(I) = PL(44+I)
      CALL PRINT37(202,8) 
  620 IF(NUMDRC.EQ.Z"FF") GO TO 640 
      DO 625  I = 1,9 
  625 PL(I) = PL(52+I)
      CALL PRINT37(203,9) 
  640 IF (NUMDIF.EQ.Z"FF") GO TO 660
      PL(1) = PL(62)
      PL(2) = PL(63)
      PL(3) = PL(64)
      CALL PRINT37(204,3) 
  660 IF (NUMDTIO.EQ.Z"FF") GO TO 680 
      CALL LOAPR (1,IFLD(21),IFLD(22),IFLD(23),T1,SP,SP,SP,SP)
      CALL PRINT37(201,4) 
  680 IF (FLAGS(4) .NE. 3HOFF) CALL PLSEC (5) 
      RETURN
  
*      41 ACCESSOR ERROR
  700 CONTINUE
*      CSN
      DO 703,  I = 26,32
  703 IF (IFLD(I).NE.0) GO TO 706 
      ICSN = 10H
      GO TO 712 
  706 MNF = (SHIFT(IFLD(26),16).AND.Z"FFFF0000")
     .     .OR.(IFLD(27).AND.Z"FFFF") 
      MANUF = 2H
      IF (MNF.EQ.Z"C9C2D440") MANUF = 2HA-
      T2 = SHIFT(IFLD(29),8).OR.IFLD(30)
      K1 = SHIFT(IFLD(28),-8).AND.Z"F"
      K2 = SHIFT(T2,-8).AND.Z"F"
      K3 = SHIFT(IFLD(31),-8).AND.Z"F"
      K4 = SHIFT(IFLD(32),-8).AND.Z"F"
      ENCODE (10,609,ICSN) MANUF,K1,IFLD(28),K2,T2, 
     .       K3,IFLD(31),K4,IFLD(32)
  712 CONTINUE
      PL(2) = ICSN
      NUMSMA = SHIFT(PL(43),-8).AND.Z"FF" 
      NUMAIF = SHIFT(PL(44),-8).AND.Z"FF" 
      ENCODE (20,2001,PL(6)) NUMSMA,NUMAIF
      IF (NUMSMA.EQ.Z"FF") PL(6) = 10H
      IF (NUMAIF.EQ.Z"FF") PL(7) = 10H
      PL(8) = ICODE 
      PL(9) = SUBCODE 
      CALL PRINT37 (8,9)
      IF (FLAGS(11).NE.2HON) RETURN 
      CALL PRINT37 (200,42) 
      IF (NUMSMA.EQ.Z"FF") GO TO 720
      DO 715  I = 1,8 
  715 PL(I) = PL(I+44)
      CALL PRINT37 (205,8)
  720 IF (NUMAIF.EQ.Z"FF") GO TO 740
      PL(1) = PL(62)
      PL(2) = PL(63)
      PL(3) = PL(64)
      CALL PRINT37(206,3) 
  740 IF (FLAGS(4) .NE. 3HOFF) CALL PLSEC (5) 
      RETURN
  
*      43 DEVICE/PATH STATUS CHANGE 
  800 PL(2) = 10H 
      IDEV = SHIFT(PL(43),-8).AND.Z"FF" 
      IF (IDEV.EQ.Z"FF") GO TO 820
      PL(6) = IDEV43(IDEV+1)
      PL(7) = PL(43).AND.Z"FF"
      IF (IDEV.NE.5) GO TO 820
      IF ((PL(7).EQ.1).OR.(PL(7).EQ.3)) PL(6) = 3HDTI 
      IF (PL(7).LE.1) PL(7) = 0 
      IF (PL(7).GE.2) PL(7) = 1 
  820 STATUS = SHIFT(PL(44),-8).AND.Z"FF" 
      IF (STATUS.EQ.0) PL(8) = 4H  ON 
      IF (STATUS.EQ.Z"40") PL(8) = 4HDIAG 
      IF (STATUS.EQ.Z"80") PL(8) = 4H OFF 
      PL(9) = ICODE 
      PL(10) = SUBCODE
      CALL PRINT37(9,10)
      DO 850  I = 1,4 
              J = 44+I*2
      IDEV = SHIFT(PL(J),-8).AND.Z"FF"
      IF (IDEV.EQ.Z"FF") GO TO 860
      PL(1) = IDEV43(IDEV+1)
      PL(2) = PL(J).AND.Z"FF" 
      IF (IDEV.NE.5) GO TO 840
      IF ((PL(2).EQ.1).OR.(PL(2).EQ.3)) PL(1) = 3HDTI 
      IF (PL(2).LE.1) PL(2) = 0 
      IF (PL(2).GE.2) PL(2) = 1 
  840 STATUS = SHIFT(PL(J+1),-8).AND.Z"FF"
      IF (STATUS.EQ.0) PL(3) = 4H  ON 
      IF (STATUS.EQ.Z"40") PL(3) = 4HDIAG 
      IF (STATUS.EQ.Z"80") PL(3) = 4H OFF 
      CALL PRINT37(10,3)
  850 CONTINUE
  860 IF (FLAGS(11).NE.2HON) RETURN 
      CALL PRINT37(200,42)
      IF (FLAGS(4) .NE. 3HOFF) CALL PLSEC (5) 
      RETURN
  
*      47 DEVICE DRIVER SOFTWARE ERROR, 61 SOFTWARE ERROR AND 
*      E1 ERROR LOG OVERFLOW
  900 CONTINUE
*      CSN
      DO 903,  I = 26,32
  903 IF (IFLD(I).NE.0) GO TO 906 
      ICSN = 10H
      GO TO 912 
  906 MNF = (SHIFT(IFLD(26),16).AND.Z"FFFF0000")
     .     .OR.(IFLD(27).AND.Z"FFFF") 
      MANUF = 2H
      IF (MNF.EQ.Z"C9C2D440") MANUF = 2HA-
      T2 = SHIFT(IFLD(29),8).OR.IFLD(30)
      K1 = SHIFT(IFLD(28),-8).AND.Z"F"
      K2 = SHIFT(T2,-8).AND.Z"F"
      K3 = SHIFT(IFLD(31),-8).AND.Z"F"
      K4 = SHIFT(IFLD(32),-8).AND.Z"F"
      ENCODE (10,609,ICSN) MANUF,K1,IFLD(28),K2,T2, 
     .       K3,IFLD(31),K4,IFLD(32)
  912 CONTINUE
      PL(2) = ICSN
      PL(6) = ICODE 
      PL(7) = 10H 
      IF (IFMT.NE.Z"E1") ENCODE (10,2005,PL(7)) SUBCODE 
      IF (IFMT.EQ.Z"E1") ENCODE (10,2003,PL(2)) SUBCODE 
      IF (IFMT.EQ.Z"61") GO TO 920
      CALL PRINT37(11,7)
      GO TO 940 
  920 PL(2) = 10H 
      CALL PRINT37(12,7)
  940 IF (FLAGS(11).NE.2HON) RETURN 
      IF (IFMT.EQ.Z"E1") RETURN 
      CALL PRINT37(200,42)
      IF (FLAGS(4) .NE. 3HOFF) CALL PLSEC (5) 
      RETURN
  
*      60 CPU/MEMORY ERROR
 1000 PL(2) = 10H 
      IF (ICODE.GE.Z"100") GO TO 1020 
*      MULTIBUS STATUS
      IBM = SHIFT(PL(57),-13).AND.7 
      IF (IBM.EQ.0) IBM = 8 
      IF ((SHIFT(PL(57),-12).AND.1).EQ.1) PL(14) = 10HMWTC/IOWC 
      IF ((SHIFT(PL(57),-11).AND.1).EQ.1) PL(14) = 10HHIGH DATA 
      IF (PL(14).EQ.10HHIGH DATA ) PL(15) = 2HPE
      IF ((SHIFT(PL(57),-10).AND.1).EQ.1) PL(14) = 10HLOW DATA P
      IF (PL(14).EQ.10HLOW DATA P) PL(15) = 2HE 
      HPB = SHIFT(PL(57),-7).AND.1
      LPB = SHIFT(PL(57),-6).AND.1
      IADDR = SHIFT(PL(57),-5).AND.1
      HAD = SHIFT(PL(57),-1).AND.Z"F" 
      MBAD = SHIFT(HAD,16) + PL(58) 
      CALL LOAPR(6,MSTRBUS(IBM),HPB,LPB,IADDR,MBAD,PL(59),ICODE,SUBCODE)
      CALL PRINT37(13,15) 
      IF (FLAGS(11).NE.2HON) RETURN 
      CALL PRINT37(200,42)
      IF (FLAGS(4) .NE. 3HOFF) CALL PLSEC (5) 
      RETURN
  
 1020 IF (ICODE.NE.Z"106") GO TO 1040 
*      BUFFER CONTROLLER STATUS 
      RW = 1HR
      IF ((SHIFT(PL(60),-15).AND.1).EQ.0) RW = 1HW
      MSB = SHIFT(PL(60),-14).AND.1 
      PB = SHIFT(PL(60),-13).AND.1
      LSB = SHIFT(PL(60),-12).AND.1 
      MSB = MSB.XOR.1 
      PB = PB.XOR.1 
      LSB= LSB.XOR.1
      MSEL = 4H 
      MSELBIT = SHIFT(PL(60),-8).AND.Z"F" 
      IF (MSELBIT.EQ.Z"E")  MSEL = 4HDTO0 
      IF (MSELBIT.EQ.Z"D")  MSEL = 4HDTI0 
      IF (MSELBIT.EQ.Z"B")  MSEL = 4HDTO1 
      IF (MSELBIT.EQ.Z"7")  MSEL = 4HDTI1 
      IF (MSELBIT.EQ.Z"F")  MSEL = 4HMBUS 
      IBUF = 9
      IBUFBIT = Z"80" 
      DO 1025  I = 1,8
      IF ((PL(60).AND.IBUFBIT).EQ.0) GO TO 1025 
      IBUF = I
      GO TO 1030
 1025 IBUFBIT = SHIFT(IBUFBIT,-1) 
 1030 XADDR = SHIFT(PL(61),1) + SHIFT(MSB,17) + LSB 
      CALL LOAPR (6,RW,MSEL,XADDR,PL(62),PL(63),PL(64),IFLD(21),
     .            IFLD(22)) 
      PL(14) = IFLD(23) 
      PL(15) = IBUFERR(IBUF,1)
      PL(16) = IBUFERR(IBUF,2)
      CALL PRINT37(105,16)
      RETURN
  
*      THE REST OF 60 CPU/MEMORY ERROR
 1040 PL(6) = ICODE 
      ENCODE (10,2005,PL(7)) SUBCODE
      CALL PRINT37 (12,7) 
      RETURN
  
*     63 VIRTUAL TAPE ERRORS
 1100 CONTINUE
      PL(2) = 10H 
*      CSN
      DO 1104 I = 45, 50
 1104 IF (PL(I) .NE. 0) GO TO 1106
      ICSN = 10H
      GO TO 1108
 1106 MNF = (SHIFT(PL(45),16) .AND. Z"FFFF0000") .OR. 
     .            (PL(46) .AND. Z"FFFF")
      MANUF = 2H
      IF (MNF .EQ. Z"C9C2D440") MANUF = 2HA-
      K1 = SHIFT(PL(47),-8).AND.Z"F"
      K2 = SHIFT(PL(48),-8).AND.Z"F"
      K3 = SHIFT(PL(49),-8).AND.Z"F"
      K4 = SHIFT(PL(50),-8).AND.Z"F"
      ENCODE (10,609,ICSN) MANUF,K1,PL(47),K2,PL(48),K3,PL(49),K4,PL(50)
 1108 CONTINUE
      PL(6) = ICSN
*      CIF/DRD
      PL(7) = SHIFT(PL(43),-8) .AND. Z"FF"
      PL(8) = PL(43) .AND. Z"FF"
*      VSN
      PL( 9) = PL(51) 
      PL(10) = PL(52) 
      PL(11) = PL(53) 
      PL(12) = PL(54) 
      PL(13) = ICODE
      PL(14) = SUBCODE
      CALL PRINT37 (15, 14) 
      IF (FLAGS(11) .NE. 2HON) RETURN 
      CALL PRINT37 (200, 42)
      IF (FLAGS(4) .NE. 3HOFF) CALL PLSEC (5) 
      RETURN
  
*     65 SMT OPERATION ERRORS 
 1200 CONTINUE
*      CSN
      DO 1204 I = 53, 58
 1204 IF (PL(I) .NE. 0) GO TO 1206
      ICSN = 10H
      GO TO 1208
 1206 MNF = (SHIFT(PL(53),16) .AND. Z"FFFF0000") .OR. 
     .            (PL(54) .AND. Z"FFFF")
      MANUF = 2H
      IF (MNF .EQ. Z"C9C2D440") MANUF = 2HA-
      K1 = SHIFT(PL(55),-8).AND.Z"F"
      K2 = SHIFT(PL(56),-8).AND.Z"F"
      K3 = SHIFT(PL(57),-8).AND.Z"F"
      K4 = SHIFT(PL(58),-8).AND.Z"F"
      ENCODE (10,609,ICSN) MANUF,K1,PL(55),K2,PL(56),K3,PL(57),K4,PL(58)
 1208 CONTINUE
      PL(6) = ICSN
*      CIF/DEVICE/PATH
      PL(7) = SHIFT(IFLD(28),-8) .AND. Z"FF"
      PL(8) = SHIFT(PL(47),-8) .AND. Z"FF"
      PL(9) = PL(47) .AND. Z"FF"
*      VSN
      PL(10) = PL(59) 
      PL(11) = PL(60) 
      PL(12) = PL(61) 
      PL(13) = PL(62) 
      PL(14) = ICODE
      PL(15) = SUBCODE
      CALL PRINT37 (16, 15) 
      IF (FLAGS(11) .NE. 2HON) RETURN 
      CALL PRINT37 (200, 42)
      IF (FLAGS(4) .NE. 3HOFF) CALL PLSEC (5) 
      RETURN
  
*     67 COPY VOLUME ERRORS 
 1300 CONTINUE
*      CSN - SOURCE 
      DO 1304 I = 49, 54
 1304 IF (PL(I) .NE. 0) GO TO 1306
      ICSN = 10H
      GO TO 1308
 1306 MNF = (SHIFT(PL(49),16) .AND. Z"FFFF0000") .OR. 
     .            (PL(50) .AND. Z"FFFF")
      MANUF = 2H
      IF (MNF .EQ. Z"C9C2D440") MANUF = 2HA-
      K1 = SHIFT(PL(51),-8).AND.Z"F"
      K2 = SHIFT(PL(52),-8).AND.Z"F"
      K3 = SHIFT(PL(53),-8).AND.Z"F"
      K4 = SHIFT(PL(54),-8).AND.Z"F"
      ENCODE (10,609,ICSN) MANUF,K1,PL(51),K2,PL(52),K3,PL(53),K4,PL(54)
 1308 CONTINUE
      PL(6) = ICSN
  
*      CSN - DESTINATION
      DO 1314 I = 55, 60
 1314 IF (PL(I) .NE. 0) GO TO 1316
      ICSN = 10H
      GO TO 1318
 1316 MNF = (SHIFT(PL(55),16) .AND. Z"FFFF0000") .OR. 
     .            (PL(56) .AND. Z"FFFF")
      MANUF = 2H
      IF (MNF .EQ. Z"C9C2D440") MANUF = 2HA-
      K1 = SHIFT(PL(57),-8).AND.Z"F"
      K2 = SHIFT(PL(58),-8).AND.Z"F"
      K3 = SHIFT(PL(59),-8).AND.Z"F"
      K4 = SHIFT(PL(60),-8).AND.Z"F"
      ENCODE (10,609,ICSN) MANUF,K1,PL(57),K2,PL(58),K3,PL(59),K4,PL(60)
 1318 CONTINUE
      PL(13) = ICSN 
  
*      CIF/DRD AND DESTINATION VSN AND DRD
      PL(7) = SHIFT(IFLD(32),-8) .AND. Z"FF"
      PL(8) = SHIFT(PL(44),-8) .AND. Z"FF"
      PL(9) = SHIFT(PL(45),16) .OR. PL(46)
      PL(10) = SHIFT(PL(47),16) .OR. PL(48) 
      PL(11) = ICODE
      PL(12) = SUBCODE
      PL(14) = PL(44) .AND. Z"FF" 
      CALL PRINT37 (17, 14) 
      IF (FLAGS(11) .NE. 2HON) RETURN 
      CALL PRINT37 (200, 42)
      IF (FLAGS(4) .NE. 3HOFF) CALL PLSEC (5) 
      RETURN
  
*     F0 DATA FROM A "WRITE ERROR LOG" SMT MESSAGE
 1400 CONTINUE
      PL(5) = SAVFMT
      IF (FLAGS(11) .EQ. 2HON) THEN 
         PL(6) = 10HSMT DEFINE
         PL(7) = 10HD DATA
      ENDIF 
      CALL PRINT37 (18, 7)
      IF (FLAGS(11) .NE. 2HON) RETURN 
      CALL LOAPR (1,IFLD(21),IFLD(22),IFLD(23),T1,IFLD(26),IFLD(27),
     .              IFLD(28),T2)
      PL(9) = IFLD(31)
      PL(10) = IFLD(32) 
      CALL PRINT37 (209, 64)
      IF (FLAGS(4) .NE. 3HOFF) CALL PLSEC (5) 
      RETURN
  
 2001 FORMAT (2(Z2,8X)) 
 2002 FORMAT (5(Z2,8X)) 
 2003 FORMAT (2X,I6,2X) 
 2005 FORMAT (Z4,6X)
  
      END 
      SUBROUTINE DL3USG7
* 
**     DESCRIPTION
*      -----------
*      DEVELOPS DETAIL USAGE REPORT FOR MASSTOR 7990. 
* 
*      ENTRY
*      ---- 
*      DATA IN IFLDS AND NFLDS
* 
*      DATA AREAS AND DEFINITIONS FOR 7990 USAGES MESSSAGES 
*      IFLD(21) + IFLD(22) + IFLD(23) + IFLD(24) = CSN
*      IFLD(26) + IFLD(27) = STRIPE WRITTEN 
*      IFLD(28) + T2 = STRIPE READ
*      IFLD(31) = WRITE CHECKS
*      IFLD(32) = DEMARK ATTEMPTS 
*      IFLD(33) = DEMARK CHECKS 
*      T3 = READ CHECKS 
*      IFLD(36) = UNRECOVERABLE READ ERRORS 
*      IFLD(37) = SERVO CHECKS
*      IFLD(38) = FORMAT CHECKS 
*      IFLD(39) = CALLS TO SEARCH ID
*      IFLD(40) = DUMMY DE-STAGE COMMANDS 
*      IFLD(41) = RE-THREAD COMMANDS
*      NFLD(21) + NFLD(22) + NFLD(23) + NFLD(24) = CSN
*      NFLD(26) = SEARCH COMMANDS 
*      NFLD(27) = OTHER WRITE CHECKS
*      NFLD(28) = OTHER READ CHECKS 
*      TN2 = CARTRIDGE LOADS
*      NFLD(31) = CARTRIDGE LOAD ERRORS 
*      NFLD(32) = CARTDRIGE UNLOADS 
*      NFLD(33) = CARTRIDGE UNLOAD ERRORS 
* 
*CALL,HPACOM1 
*CALL,HPACOM2 
      CALL UCHEK37
*      CSN
      T2 = SHIFT(IFLD(29),8).OR.IFLD(30)
      T3 = SHIFT(IFLD(34),12).OR.IFLD(35) 
      TN2 = SHIFT(NFLD(29),8).OR.NFLD(30) 
      ENCODE (10,100,ICSN) SEFREC(4)
  100 FORMAT (A10)
      IF((SEFREC(4).EQ.0).OR.(SEFREC(4).EQ.O"7777 7777 7777 7777 7777"))
     .    ICSN = 10H
      Y = IFLD(13)
      Z = IFLD(14)
      IF ((IFLD(FUN) .EQ. 0) .AND. (IFLD(4) .EQ. 0)) THEN 
         LSM = SHIFT(IFLD(42),-6) .AND. O"17" 
         LDRD = IFLD(42) .AND. O"17"
         ENCODE (10, 101, SM) LSM 
         ENCODE (10, 101, IDRD) LDRD
      ELSE
      ENCODE (10,101,SM) IFLD(FUN)
      ENCODE (10,101,IDRD) IFLD(4)
  101 FORMAT (I1,9X)
      ENDIF 
      STRPWR = SHIFT(IFLD(26),16) + IFLD(27)
      STRPRD = SHIFT(IFLD(28),16) + T2
      STRPDMK = IFLD(32) - IFLD(33) 
      CALL LOAPR(1,IFLD(20),ICSN,Y,Z,IFLD(FCHAN),MFID,SM,IDRD)
      IF (FROG(18).NE.3HYES) GO TO 200
      CALL LOAPR(9,STRPWR,IFLD(31),STRPDMK,STRPRD,T3,IFLD(36),
     .           IFLD(37),IFLD(38)) 
      CALL PRINT37(106,16)
      RETURN
  200 CALL LOAPR(9,IFLD(39),IFLD(40),IFLD(41),NFLD(26),STRPWR,IFLD(31), 
     .           IFLD(37),NFLD(27)) 
      CALL LOAPR(17,IFLD(32),IFLD(33),STRPRD,T3,IFLD(38), 
     .           NFLD(28),IFLD(36),TN2) 
      CALL LOAPR(25,NFLD(31),NFLD(32),NFLD(33),SP,SP,SP,SP,SP)
      CALL PRINT37(107,27)
      RETURN
      END 
      SUBROUTINE DL3CCC7
* 
**     DESCRIPTION
*      -----------
*      DEVELOPS 80 COLUMN AND 132 COLUMN DETAIL REPORTS FOR MASSTOR CCC.
* 
*      ENTRY
*      -----
*      DATA IN IFLDS
* 
*      DATA FIELDS AND DEFINITIONS
*      IFLD(21) = GENERAL STATUS 1
*      IFLD(22) = GENERAL STATUS 2
*      IFLD(23) = DETAIL STATUS 3 
*      IFLD(24) - IFLD(46) = SENSE BYTE(0) - SENSE BYTE(23) 
*      IFLD(47) = REVISION NUMBER  (5 BITS) 
*      IFLD(47) = FUNCTION  (7 BITS)
*      IFLD(48) = C170 DI STATUS
*      IFLD(49) = CCC DI STATUS 
*      IFLD(50) = COUPLER NUMBER  (12 BITS) 
*      IFLD(50) = CHANNEL NUMBER  (12 BITS) 
*      IFLD(50) = DIAGNOSTIC STATUS  (12 BITS)
* 
*CALL,HPACOM1 
      DIMENSION SUBERR(35,4)
  
      DATA(SUBERR(01,I),I=1,4) /  1,10HTAPE UNIT ,10HOFF-LINE/N,
     .                              10HO POWER   /
      DATA(SUBERR(02,I),I=1,4) /  2,10HTAPE UNIT ,10HBUSY (UNAV,
     .                              10HAILABLE)  /
      DATA(SUBERR(03,I),I=1,4) /  4,10HTAPE UNIT ,10HNOT READY ,
     .                              10H          /
      DATA(SUBERR(04,I),I=1,4) /  6,10HMISSING WR,10HITE RING  ,
     .                              10H          /
      DATA(SUBERR(05,I),I=1,4) / 10,10HI/O TIMEOU,10HT         ,
     .                              10H          /
      DATA(SUBERR(06,I),I=1,4) / 50,10HUNRECOGNIZ,10HABLE FUNCT,
     .                              10HION CODE  /
      DATA(SUBERR(07,I),I=1,4) / 51,10HNO TAPE UN,10HIT CONNECT,
     .                              10HED        /
      DATA(SUBERR(08,I),I=1,4) /111,10HCCC ABN EN,10HD LOAD XFE,
     .                              10HR REG SEQ /
      DATA(SUBERR(09,I),I=1,4) /112,10HCCC ABN EN,10HD READ XFE,
     .                              10HR REG SEQ /
      DATA(SUBERR(10,I),I=1,4) /113,10HCCC XFER R,10HEG DATA ER,
     .                              10HROR (W/R) /
      DATA(SUBERR(11,I),I=1,4) /114,10HCCC ABN EN,10HD DIAG. WR,
     .                              10HITE SEQ   /
      DATA(SUBERR(12,I),I=1,4) /117,10HFULL/EMPTY,10HCNTER ERR ,
     .                              10HAWR DIAGS /
      DATA(SUBERR(13,I),I=1,4) /120,10HCCC BUFR A,10HDD. INCOR ,
     .                              10HAWR DIAGS /
      DATA(SUBERR(14,I),I=1,4) /122,10HINCOR BLK ,10HID ON DIAG,
     .                              10H WRT (AWR)/
      DATA(SUBERR(15,I),I=1,4) /124,10HCCC ABN EN,10HD DIAG. RE,
     .                              10HAD SEQ    /
      DATA(SUBERR(16,I),I=1,4) /126,10HCCC DIAG R,10HEAD PATTN ,
     .                              10HERR (AWR) /
      DATA(SUBERR(17,I),I=1,4) /127,10HDATA ERR I,10HN RD XFER ,
     .                              10HREG (AWR) /
      DATA(SUBERR(18,I),I=1,4) /130,10HINCOR BLK ,10HID ON DIAG,
     .                              10H RD (AWR) /
      DATA(SUBERR(19,I),I=1,4) /131,10H799X MESSA,10HGE DEVICE ,
     .                              10HUNIT CHECK/
      DATA(SUBERR(20,I),I=1,4) /132,10H799X MSG D,10HEVICE UNIT,
     .                              10HEXCEPTION /
      DATA(SUBERR(21,I),I=1,4) /150,10HMSG CHKSUM,10H ERR DTC'D,
     .                              10H BY 799X  /
      DATA(SUBERR(22,I),I=1,4) /151,10HMSG CHKSUM,10H ERR BY CC,
     .                              10HC CTRLWARE/
      DATA(SUBERR(23,I),I=1,4) /155,10HTIMEOUT EX,10HPECTED CCC,
     .                              10H-DI RESP  /
      DATA(SUBERR(24,I),I=1,4) /156,10HTIMEOUT EX,10HPECTED C17,
     .                              10H0-DI RESP /
      DATA(SUBERR(25,I),I=1,4) /157,10HTIMEOUT EX,10HPECTED *RE,
     .                              10HQ IN*STA  /
      DATA(SUBERR(26,I),I=1,4) /160,10HCCC ABN ON,10H LOADING X,
     .                              10HFER REG   /
      DATA(SUBERR(27,I),I=1,4) /161,10HCCC ABN ON,10H READING C,
     .                              10HODE TABLES/
      DATA(SUBERR(28,I),I=1,4) /164,10HCCC ABN ON,10H SYS RESET,
     .                              10H COMMAND  /
      DATA(SUBERR(29,I),I=1,4) /165,10HCCC ABN EN,10HD STATUS S,
     .                              10HENSE COM'D/
      DATA(SUBERR(30,I),I=1,4) /170,10HCCC SEQUEN,10HCE ERROR  ,
     .                              10H          /
      DATA(SUBERR(31,I),I=1,4) /171,10HCCC INTERF,10HACE ERROR ,
     .                              10H          /
      DATA(SUBERR(32,I),I=1,4) /172,10HC170-DI CH,10HANNEL PARI,
     .                              10HTY ERROR  /
      DATA(SUBERR(33,I),I=1,4) /173,10HC170-DI ME,10HMORY PARIT,
     .                              10HY ERROR   /
      DATA(SUBERR(34,I),I=1,4) /174,10HC170-DI CO,10HNTROL PACK,
     .                              10HAGE PE    /
      DATA(SUBERR(35,I),I=1,4) /175,10HCCC DEADMA,10HN TIMER EX,
     .                              10HPIRED     /
  
      CALL UCHEK37
      ENCODE (10,101,SM) IFLD(FUN)
      ENCODE (10,101,IDRD) IFLD(4)
  101 FORMAT (I1,9X)
      IF (IFLD(FUN).EQ.O"77") SM = 10H
      IF (IFLD(4).EQ.O"7") IDRD = 10H 
      REVNUM = SHIFT(IFLD(47),-7).AND.O"37" 
      FUNC = IFLD(47).AND.O"177"
      NUMCPL = SHIFT(IFLD(50),-24).AND.O"1777"
      STADIAG = IFLD(50).AND.O"7777"
      CALL LOAPR(1,IFLD(20),IFLD(FCHAN),MFID,SM,IDRD,REVNUM,
     .           FUNC,NUMCPL) 
      SUBCODE = IFLD(23).AND.O"177" 
      DO 200  I = 1,35
      IF (SUBCODE.EQ.SUBERR(I,1)) GO TO 220 
  200 CONTINUE
      PL(9) = 10H 
      GO TO 240 
  220 ENCODE (10,221,PL(9)) SUBCODE 
  221 FORMAT (I3,7X)
      PL(10) = SUBERR(I,2)
      PL(11) = SUBERR(I,3)
      PL(12) = SUBERR(I,4)
  240 CONTINUE
      IF (FROG(18).NE.3HYES) GO TO 300
      CALL PRINT37(14,12) 
      CALL LOAPR(1,IFLD(21),IFLD(22),IFLD(23),IFLD(48),IFLD(49),
     .           STADIAG,SP,SP) 
      CALL PRINT37(207,6) 
      IF (FLAGS(11).EQ.2HON) GO TO 400
      IF (FLAGS(4).EQ.3HOFF) RETURN 
      PRINT 450 
      LINE = LINE + 1 
      RETURN
  300 CALL LOAPR(13,IFLD(21),IFLD(22),IFLD(23),IFLD(48),IFLD(49), 
     .           STADIAG,SP,SP) 
      CALL PRINT37(108,18)
      IF (FLAGS(11).NE.2HON) RETURN 
  400 CONTINUE
      T1 = SHIFT(IFLD(33),-4).AND.O"377"
      T2 = (SHIFT(IFLD(33),4).AND.O"360").OR. 
     .         (SHIFT(IFLD(34),-8).AND.O"17") 
      T3 = IFLD(34).AND.O"377"
      CALL LOAPR (1,IFLD(24),IFLD(25),IFLD(26),IFLD(27),IFLD(28), 
     .              IFLD(29),IFLD(30),IFLD(31)) 
      CALL LOAPR (9,IFLD(32),T1,T2,T3,IFLD(35), 
     .              IFLD(36),IFLD(37),IFLD(38)) 
      CALL LOAPR (17,IFLD(39),IFLD(40),IFLD(41),IFLD(42),IFLD(43),
     .              IFLD(44),IFLD(45),IFLD(46)) 
      CALL PRINT37(208,24)
      IF (FLAGS(4).EQ.3HOFF) RETURN 
      PRINT 450 
  450 FORMAT (10H          )
      LINE = LINE + 1 
  
      RETURN
      END 
      SUBROUTINE PHEAD37 (ST) 
* 
**     PHEAD37 PRINTS HEADINGS FOR REPORTS DEVELOPED
*      BY OVERLAY 3,5 ROUTINES. 
* 
*      ENTRY CONDITIONS 
*      -----------------
*      HCF(5) - ARRAY PRESET WITH POINTERS TO A SET OF HEADINGS 
*               THAT MAY BE PRINTED.  A NON-ZERO VALUE IN HCF(1)
*                  TO HCF(5) IS A POINTER TO A HEADING, AS USED IN
*                  COMPUTED GO-TO. HCF(1) TO (5) ARE SCANNED
*               SEQUENTIALLY AND SEVERAL SUBHEADERS MAY BE PRINTED. 
*          ST = CONTAINS POINTER TO WHERE ROUTINE WILL
*               START SCANN OF (HCF) FLAG.
* 
*       EXIT CONDITIONS 
*       ----------------
*          SUB-HEADER PRINT COMPLETED.
*              ENCOUNTER (HCF) FLAG CONTAINING ( 0 ). 
* 
*       DATA AREAS
*       --------------------
*        HCF(5) - FLAGS TO CONTROL SUB-HEADER PRINT 
*        HDATA(5) = 5 WORDS OF (A) FORMAT DATA USED IN PRINT. 
*        HDATA(3) = CURRENT DATE FOR PRINT
* 
*         CALLED BY 
*         --------- 
*         PRINT37 - AUTOMATICALLY, WHEN NEW PAGE IS INITIATED.
*         OVERLAY 3,7  ROUTINES THAT NEED TO CALL SUBHEADER.
* 
*CALL HPACOM1 
*CALL,HPACOM2 
  
*       TEST FOR PRINT FLAG OFF                                         000310
      IF (FLAGS(4) .EQ. 3HOFF) GO TO 1000                               000320
      P = ST
      GO TO 5 
    2 LINE = LINE + 1 
    5 LINE = LINE + 1 
  
      IF (P .GT. 5) GO TO 1000
  
    6 PTR = HCF(P)
      IF ((PTR .LE. 0) .OR. (PTR .GT. 30)) GO TO 1000 
      P = P + 1 
  
  
*        JUMP TO PRINT AS CALLED BY POINTER 
      GO TO( 10, 20, 30, 40, 50, 60, 70, 80, 90,100,110,120,130,140,150,
     .      160,170,180,190,200,210,220,230,240,250,260,270,280,290,300 
     . ) PTR
* 
   10 PRINT 11, TYPDT,TYPEST,TYPID
   11 FORMAT (' DEVICE/EST - ** ',R2,1X,O3,' **'
     .,4X,3H.. ,A10,'  DATA  ..') 
      GO TO 2 
  
*        MESSAGE TYPE HEADER
   20 CONTINUE
      IF (IFLD(FMTY).EQ.O"60") GO TO 25 
      IF (IFLD(FRTY).NE.O"66") GO TO 25 
      LINE = LINE + 3 
      PRINT 21, HX(1),HX(2),HX(3) 
   21 FORMAT (//,3X,12HERROR-TYPE  ,3A10) 
   25 PRINT 26, SEBUF(27),SEBUF(28),SEBUF(29) 
   26 FORMAT (/,18X,13HMSG-TYPE >>> ,2A10,A8,4H <<<,/)
      GO TO 2 
  
*        FORMAT FOR DETAILED USAGE MESSAGE - MSFS 
   30 CONTINUE
      PRINT 31
   31 FORMAT (T62,'HEAD',T87,'BLOC',/,1X,'DATE' 
     .,T21,'CART   MF',T40,'MSA CT CS CS CPL CART POS. TAPE BLOC' 
     .,T77,'BLOC PICK SIZE READ WRTE SELECT',/
     .,T4,'TIME     JOB     VSN    ID CH EQ UN  ID ID ID UN  UN'
     .,T57,'LOC  CHGS PASS READ WRTN /PUT /100 ERRS ERRS CNT')
      LINE = LINE + 2 
      GO TO 700 
  
*        FORMAT FOR DETAILED ERROR MESSAGE - MSFS 
   40 CONTINUE
      PRINT 41
   41 FORMAT(T44,'CT      R R R      CHAN'
     .,T88,'CTL',T103,'CTL  CPL  PRTY',/,1X,'DATE'
     .,T21,'CART   MF',T40,'MSA CS CPL  T / C CART PROG'
     .,T68,'BLOC STRM CPLR CPLR TAG  CTL  CTL  TAG  WORD ERR' 
     .,T119,'OUT   IN',/
     .,T4,'TIME     JOB     VSN    ID CH EQ UN  ID ID NUM  Y' 
     .,T54,'W V LOC  CODE  NUM  NUM  TAG STAT STAT STAT TAG'
     .,T103,'MOD  CTR  STAT  CTR  CTR') 
      LINE = LINE + 2 
      GO TO 800 
  
*          FORMAT FOR 80 COLUMN DETAILED USAGE MESSAGE
   50 CONTINUE
      PRINT 51
   51 FORMAT (T62,'HEAD',/,1X,'DATE'
     .,T21,'CART   MF',T40,'MSA CT CS CS CPL CART POS. TAPE BLOC BLOC',/
     .,T4,'TIME     JOB     VSN    ID CH EQ UN  ID ID ID UN  UN'
     .,T57,'LOC  CHGS PASS READ WRTN',/1X,7(10H----------),9H---------) 
      LINE = LINE + 2 
      GO TO 2 
  
*          FORMAT FOR 80 COLUMN DETAILED ERROR MESSAGE
   60 CONTINUE
      PRINT 61
   61 FORMAT (T44,'CT      R R R      CHAN',/,1X,'DATE' 
     .,T21,'CART   MF',T40,'MSA CS CPL  T / C CART PROG BLOC STRM',/
     .,T4,'TIME     JOB     VSN    ID CH EQ UN  ID ID NUM  Y' 
     .,' W V LOC  CODE  NUM  NUM',/,1X,7(10H----------),5H-----)
      LINE = LINE + 2 
      GO TO 2 
  
*        DATE CHANGE - DETAIL REPORT
   70 PRINT 71,SEBUF(23)
   71 FORMAT (1X,A8)
      GO TO 6 
  
*        SUBHEADER FOR RECOVERED ERRORS - UNIT ANALYSIS REPORT
   80 PRINT 81
   81 FORMAT (/,1X,39H*** VSNS WITH MOST RECOVERED ERRORS ***)
      GO TO 5 
  
*        SUBHEADER FOR RECOVERED VSN TOTAL - UNIT ANALYSIS REPORT 
   90 PRINT 91,HDATA(2) 
   91 FORMAT(/,1X,38H*** TOTAL VSNS WITH RECOVERED ERRORS =,I4,5H (MAX, 
     .9H 217) ***)
      GO TO 5 
  
*        SUBHEADER FOR UNRECOVERED ERRORS - UNIT ANALYSIS REPORT
  100 PRINT 101 
  101 FORMAT(/,1X,36H*** VSNS WITH UNRECOVERED ERRORS ***)
      GO TO 5 
  
*      SUBHEADER FOR MASSTOR 7990 USAGE 132 COLUMN REPORT 
  110 PRINT 111 
  111 FORMAT (T38,'D CALL DUMMY RE-',T75,'OTHR',T104,'OTHR UNRC',T119,
     .'CART',T129,'CART',/,T2,'DATE',T33,'MF S R SRCH D-STG THRD SRCH', 
     .'  STRPS  WR SRV  WR  DMRK DMK  STRPS  RD FMT  RD READ CART', 
     .' LOAD CART UNLD',/,T4,'TIME        CSN      Y/Z  CH ID M D   ID',
     .' COMND CMND CMND   WRTN CHK CHK CHK ATMPT CHK   READ CHK CHK', 
     .' CHK  ERR LOAD  ERR UNLD  ERR')
      GO TO 800 
  
*       SUBHEADER FOR MASSTOR 7990 TYPE 30 ERROR REPORT 
  120 PRINT 121 
  121 FORMAT (T22,'ERROR',T43,'7990  SUB-',/,T2,'DATE',T18,'MF  SEVER-' 
     .,T43,'ERR   ERR',/,T4,'TIME      CH  ID  ITY    CIF  DTI/DTO  ' 
     .,'CODE  CODE')
      GO TO 790 
  
*       SUBHEADER FOR MASSTOR 7990 TYPE 40 AND 44 ERROR REPORTS 
  130 PRINT 131 
  131 FORMAT (T34,'ERROR',T70,'7990  SUB-',/,T2,'DATE',T30,'MF  SEVER-' 
     .,T70,'ERR   ERR',/,T4,'TIME',T17,'CSN      CH  ID  ITY    DRD  ', 
     .'DRC  DIF  DTI/DTO  SMA  CODE  CODE') 
      GO TO 790 
  
*       SUBHEADER FOR MASSTOR 7990 TYPE 41 ERROR REPORT 
  140 PRINT 141 
  141 FORMAT (T34,'ERROR',T51,'7990  SUB-',/,T2,'DATE',T30, 
     .'MF  SEVER-',T51,'ERR   ERR',/,T4,'TIME',T17,'CSN      CH  ID ',
     .'  ITY   SMA  AIF  CODE  CODE') 
      GO TO 790 
  
*       SUBHEADER FOR MASSTOR 7990 TYPE 43 ERROR REPORT 
  150 PRINT 151 
  151 FORMAT (T22,'ERROR',T65,'7990  SUB-',/,T2,'DATE',T18,'MF  SEVER-' 
     .,T65,'ERR   ERR',/,T4,'TIME      CH  ID  ITY     DEVICE  STATUS  '
     .,'PATH  NUM  STATUS  CODE  CODE') 
      GO TO 790 
  
*       SUBHEADER FOR MASSTOR 7990 TYPE 47 AND E1 ERROR REPORTS 
  160 CONTINUE
      HDATA(1) = 10H      CSN 
      HDATA(2) = 10H
      IF (IFLD(FMTY).NE.O"5620") GO TO 165
      HDATA(1) = 10H# ENTRY MI
      HDATA(2) = 10HSSED
  165 PRINT 166, HDATA(1),HDATA(2)
  166 FORMAT (T34,'ERROR   7990  SUB-',/,T2,'DATE',T30,'MF  SEVER-',
     .'  ERR   ERR',/,T4,'TIME',T11,A10,A5,T26,'CH  ID  ITY     ',
     .'CODE  CODE') 
      GO TO 790 
  
*       SUBHEADER FOR MASSTOR 7990 TYPE 60 AND 61 ERROR REPORTS 
*       CHECK FOR SELECTED FMT 60 ERROR CODES 
  170 CONTINUE
      IF ((MTY .GE. O"5353") .AND. (MTY .LE. O"5376")) GO TO 180
      IF  (MTY .EQ. O"5405") GO TO 190
      PRINT 171 
  171 FORMAT (T22,'ERROR   7990  SUB-',/,T2,'DATE',T18,'MF  SEVER-',
     .'  ERR   ERR',/,T4,'TIME      CH  ID  ITY     CODE  CODE')
      GO TO 790 
  
*       SUBHEADER FOR MASSTOR 7990 TYPE 60, 00XX (MULTIBUS STATUS)
*       ERROR REPORT
  180 PRINT 181 
  181 FORMAT (T20,'ERROR  BUS  HI LO',T52,'7990 SUB-',/,T2,'DATE',
     .T17,'MF SEVER- MAS- D- D- AD MB    MB   ERR  ERR',/,T4,'TIME  ',
     .'    CH ID ITY    TER  PB PB PB ADDR  DATA CODE CODE  SEC. ', 
     .'ERROR MSG')
      GO TO 790 
  
*       SUBHEADER FOR MASSTOR 7990 TYPE 60, 0106 (BUFFER CONTROLLER 
*       STATUS) ERROR REPORT
  190 PRINT 191 
  191 FORMAT (T20,'ERROR  R',T56,'PROGRAM/',/,T2,'DATE',T17,'MF SEVER-' 
     .,' /',T42,'PARITY/DATA   BUFFER',/,T4,'TIME      CH ID ITY    W ',
     .'MSEL XADDR     BYTE 0-3     STATUS    SEC. ERR MSG') 
      GO TO 790 
  
*       SUBHEADER FOR MASSTOR 7990 WARNING ERRORS 
  200 PRINT 201 
  201 FORMAT (/,1X,37H*** CSNS WITH MOST WARNING ERRORS ***)
      GO TO 5 
  
*       SUBHEADER FOR MASSTOR 7990 WARNING ERROR CSN TOTAL
  210 PRINT 211,HDATA(2)
  211 FORMAT (/,1X,36H*** TOTAL CSNS WITH WARNING ERRORS =,I4,5H (MAX,
     .9H 217) ***)
  
      GO TO 5 
  
*       SUBHEADER FOR MASSTOR 7990 FATAL ERRORS 
  220 PRINT 221 
  221 FORMAT (/,1X,30H*** CSNS WITH FATAL ERRORS ***) 
  
      GO TO 5 
  
*       SUBHEADER FOR MASSTOR 7990 USAGE SUMMARY
  230 PRINT 231,PL(1),PL(63),PL(64),(PL(I),I=2,39)
  231 FORMAT(///,6X,'USAGE SUMMARY',//,1X,'SM',1X,I1,T34,'TOTAL FOR   ',
     .'TOTAL FOR',/,T37,'DRD',T49,'DRD',/,T38,I2,T50,I2,/,T34,'------'
     .,'---',T46,'---------',/,1X,'CALLS TO SEARCH$ID',T31,2(7X,I5),/,
     .1X,'DUMMY DE-STAGE COMMANDS',T31,2(7X,I5),/,
     .1X,'RE-THREAD COMMANDS',T31,2(7X,I5),/, 
     .1X,'SEARCH COMMANDS',T31,2(7X,I5),//, 
     .1X,'STRIPES WRITTEN',T31,2(4X,I8),/,
     .1X,'WRITE CHECKS',T31,2(7X,I5),/,1X,'SERVO CHECKS',T31,2(7X,I5),/,
     .1X,'OTHER WRITE CHECKS',T31,2(7X,I5),/, 
     .1X,'DEMARK ATTEMPTS',T31,2(7X,I5),/,
     .1X,'DEMARK CHECKS',T31,2(7X,I5),//, 
     .1X,'STRIPES READ',T31,2(4X,I8),/,1X,'READ CHECKS',T31,2(7X,I5),/, 
     .1X,'FORMAT CHECKS',T31,2(7X,I5),/,
     .1X,'OTHER READ CHECKS',T31,2(7X,I5),/,
     .1X,'HARD READ ERROR (UNREC.)',T31,2(7X,I5),//,
     .1X,'CARTRIDGE LOADS',T31,2(7X,I5),/,
     .1X,'CARTRIDGE LOAD ERRORS',T31,2(7X,I5),/,
     .1X,'CARTRIDGE UNLOADS',T31,2(7X,I5),/,
     .1X,'CARTRIDGE UNLOAD ERRORS',T31,2(7X,I5))
      GO TO 1000
  
*      SUBHEADER FOR CCC DETAIL REPORTS - 132 COLUMN
  240 PRINT 241 
  241 FORMAT (T4,'DATE',T17,'MF',T27,'REV',T36,'CPLR  SUB',T80,'GENERAL'
     .,'  DETAIL C170 DI CCC DI   DIAG',/,T6,'TIME    CH ID SM DRD NUM '
     .,'FUN   NUM CODE',T57,'MESSAGE',T81,'STATUS  STATUS  STATUS STAT' 
     .,'US STATUS') 
      LINE = LINE + 1 
      GO TO 800 
  
*      SUBHEADER FOR CCC DETAIL REPORTS - 80 COLUMN 
  250 PRINT 251 
  251 FORMAT (T4,'DATE',T17,'MF',T27,'REV',T36,'CPLR  SUB',/,T6,'TIME', 
     .'    CH ID SM DRD NUM FUN   NUM CODE',T57,'MESSAGE',/,1X, 
     .7(10H----------),9H---------) 
      LINE = LINE + 1 
      GO TO 2 
  
*      SUBHEADER FOR MASSTOR USAGE DETAIL REPORT - 80 COLUMN
  260 PRINT 261 
  261 FORMAT (T38,'D',/,T2,'DATE',T33,'MF S R  STRPS WR  STRPS  STRPS', 
     .'  RD UNRC SRV FMT',/,T4,'TIME        CSN      Y/Z  CH ID M', 
     .' D   WRTN CHK D-MRK   READ CHK READ CHK CHK',/,1X, 
     .7(10H----------),9H---------) 
      LINE = LINE + 2 
      GO TO 2 
  
*       SUBHEADER FOR MASSTOR 7990 TYPE 63 ERROR REPORT 
  270 PRINT 271 
  271 FORMAT (21X,'ERROR',44X,'7990  SUB-',/, 
     .1X,'DATE',12X,'MF  SEVER-',43X,'ERR   ERR',/, 
     .3X,'TIME      CH  ID  ITY       CSN       CIF DRD VSN          ', 
     .'        CODE  CODE') 
      GO TO 790 
  
*       SUBHEADER FOR MASSTOR 7990 TYPE 65 ERROR REPORT 
  280 PRINT 281 
  281 FORMAT (21X,'ERROR',44X,'7990  SUB-',/, 
     .1X,'DATE',12X,'MF  SEVER-',43X,'ERR   ERR',/, 
     .3X,'TIME      CH  ID  ITY      CSN       CIF DEVICE  VSN     ', 
     .'          CODE  CODE') 
      GO TO 790 
  
*       SUBHEADER FOR MASSTOR 7990 TYPE 67 ERROR REPORT 
  290 PRINT 291 
  291 FORMAT (21X,'ERROR',3X,'SOURCE',8X,'SOURCE',21X,'7990  SUB-',/, 
     .1X,'DATE',12X,'MF  SEVER-  /DEST.',8X,'/DEST.',21X,'ERR   ERR',/, 
     .3X,'TIME      CH  ID  ITY      CSN      CIF  DRD   VSN        ',
     .'         CODE  CODE')
      GO TO 790 
  
*       SUBHEADER FOR MASSTOR 7990 TYPE FX ERROR REPORT 
  300 PRINT 301 
  301 FORMAT (1X,'DATE',/,3X,'TIME      CH  MFID   FMT')
      GO TO 790 
  
  700 PRINT 701 
  701 FORMAT (1X,10(10H----------),6H------)
      GO TO 2 
  
  790 LINE = LINE + 2 
      PRINT 791 
  791 FORMAT (1X,7(10H----------),9H---------)
      GO TO 2 
  
  800 PRINT 801 
  801 FORMAT (1X,13(10H----------) )
      GO TO 2 
  
  900 CONTINUE
 1000 RETURN
      END 
      SUBROUTINE PRINT37 (LT,NW)
* 
**        DESCRIPTION 
*         ----------- 
*         SUBROUTINE PRINT37 PRINTS A LINE OF DATA IN VARIOUS REPORTS 
*         BY TRACKING LINE COUNTS AND STARTS NEW PAGE IF NEEDED.
* 
*         ENTRY CONDITIONS
*         ----------------
*         LT   - DEFINES THE FORMAT STATEMENT TO BE USED, 
*         NW   - DEFINES THE NUMBER OF WORDS TO BE PRINTED. 
* 
*         DATA AREAS SHARED - 
*         LINE, RCF, PL(32) 
* 
*         EXIT CONDITIONS 
*         --------------- 
*         DATA AREAS SHARED - 
*         LINE
* 
*         DATA AREAS
*         ----------
*         LINE   - (1)/COMMON BLOCK/NUMBER OF LINES PRINTED SO FAR
*                  IN A PAGE. 
*         IFORM  - (12,60)/COMMON BLOCK/AREA TO HOLD THE EXECUTION
*                  TIME FORMAT STATEMENTS FOR VARIOUS REPORTS.
*                  COLUMN NUMBER SELECTS A SET OF FORMAT STATEMENT
*                  AND THE MAXIMUN LENGTH OF ONE STATEMENT IS 12
*                  WORDS LONG.
*         PL - (32)/COMMON BLOCK/AREA TO HOLD A LIST OF PRINT 
*                  DATA LOADED BY THE CALLING ROUTINE.
*         CALLS 
*         ----- 
*         HEADER - INITIALIZE EACH PAGE OF VARIOUS REPORTS. 
*         PRHEAD - PRINT SUB-HEADER IN VARIOUS REPORT.
* 
*CALL,HPACOM1 
  
      DIMENSION IFORM(8, 18), FORM2(13, 8), FMT(13) 
* 
  
*     REPEATED ERROR FORMAT 
      DATA (IFORM(I,1), I=1,3,1) /
     .10H(5X,A3,2X,,10H2A10,3X,A6,10H,4X,A10)  /
  
*         TOTAL MOUNTS FORMAT 
      DATA (IFORM(I,2),I=1,3,1)/
     .10H(5X,I9,4X,,10H'TOTAL MOU,10HNTS')     /
  
  
  
*         EXTENDED DETAILED ERROR MESSAGE - MSFS
      DATA (IFORM(I,3),I=1,5,1)  /
     .10H(10X,19(Z2,10H,'/'),Z2,T,10H73,19(Z2,',10H/'),Z2)   ,10H 
     .   /
  
*         80 COLUMN EXTENDED DETAILED ERROR MESSAGE 
      DATA(IFORM(I,5),I=1,2,1)  / 
     .10H(10X,19(Z2,10H,'/'),Z2) /
  
*      MASSTOR 7990 TYPE 30 ERROR DETAIL REPORT 
      DATA (IFORM(I,6),I=1,5,1) / 
     .10H(3X,A8,A2,,10HO2,3X,R1,2,10HX,A6,2X,A2,10H,4X,A2,3X,,10H2(2X,Z4
     .)) /
  
*      MASSTOR 7990 TYPE 40 AND 44 ERROR DETAIL REPORT
      DATA(IFORM(I,7),I=1,7,1) /
     .10H(3X,A8,2X,,10HA10,2X,O2,,10H3X,R1,2X,A,10H6,2X,3(A2,,10H3X),1X,
     .A2,,10H6X,A2,2(2X,10H,Z4))     /
  
*      MASSTOR 7990 TYPE 41 ERROR DETAIL REPORT 
      DATA (IFORM(I,8),I=1,6,1) / 
     .10H(3X,A8,2X,,10HA10,2X,O2,,10H3X,R1,2X,A,10H6,2X,A2,3X,10H,A2,2(2
     .X,Z,10H4))       /
  
*      MASSTOR 7990 TYPE 43 ERROR DETAIL REPORT 
      DATA (IFORM(I,9),I=1,6,1) / 
     .10H(3X,A8,A2,,10HO2,3X,R1,2,10HX,A6,2X,A3,10H,1X,Z2,4X,,10HA4,21X,
     .Z4,,10H2X,Z4)    /
  
*      MASSTOR 7990 TYPE 43 ERROR DETAIL REPORT 
      DATA (IFORM(I,10),I=1,2,1) /
     .10H(46X,A3,3X,10H,Z2,3X,A4)/
  
*      MASSTOR 7990 TYPE 47 AND E1 ERROR DETAIL REPORT
      DATA (IFORM(I,11),I=1,5,1) /
     .10H(3X,A8,2X,,10HA10,2X,O2,,10H3X,R1,2X,A,10H6,2X,Z4,2X,10H,A4) 
     .   /
  
*      MASSTOR 7990 TYPE 60 AND 61 ERROR DETAIL REPORT
      DATA (IFORM(I,12),I=1,4,1) /
     .10H(3X,A8,A2,,10HO2,3X,R1,2,10HX,A6,2X,Z4,10H,2X,A4)   /
  
*      MASSTOR 7990 TYPE 60, 00XX ERROR DETAIL REPORT 
      DATA (IFORM(I,13),I=1,7,1) /
     .10H(3X,A8,A2,,10HO2,2X,R1,1,10HX,A6,1X,A4,10H,3(2X,I1.1,10H),1X,Z5
     .,3(,10H1X,Z4),2X,,10HA10,A2)   /
  
*      MASSTOR CCC ERROR DETAIL REPORT - 80 COLUMN
      DATA (IFORM(I,14),I=1,7,1) /
     .10H(3X,A8,2X,,10HO2,2X,R1,2,10HX,A1,3X,A1,10H,2X,I2,1X,,10HO3,2X,O
     .4,2,10HX,A3,2X,3A,10H10)       /
  
*       MASSTOR 7990 63 ERROR DETAIL REPORT 
      DATA (IFORM(I,15),I=1,7,1) /
     .10H(3X,A8,A2,,10HO2,2X,R1,3,10HX,A6,2X,A1,10H0,2(2X,Z2),
     .10H,2X,4(Z4),,10H3X,2(2X,Z4,10H))        /
  
*       MASSTOR 7990 65 ERROR DETAIL REPORT 
      DATA (IFORM(I,16),I=1,6,1) /
     .10H(3X,A8,A2,,10HO2,2X,R1,3,10HX,A6,1X,A1,10H0,3(2X,Z2),
     .10H,2X,4(Z4),,10H2(2X,Z4)) /
  
*       MASSTOR 7990 67 ERROR DETAIL REPORT 
      DATA (IFORM(I,17),I=1,8,1) /
     .10H(3X,A8,A2,,10HO2,2X,R1,3,10HX,A6,1X,A1,10H0,2(2X,Z2),
     .10H,4X,2(Z8),,10H2X,2(2X,Z4,10H),/,28X,A1,10H0,6X,Z2)  /
  
*       MASSTOR 7990 FX ERROR DETAIL REPORT 
      DATA (IFORM(I,18),I=1,4,1) /
     .10H(3X,A8,A2,,10HO2,3X,R1,6,10HX,Z2,20X,2,10HA10)      /
  
* 
*      *********************************************************
* 
*         START OF FORM2 ARRAYS FOR LARGE FORMATS 
*         THESE ARE CALLED WITH FORMAT PARAMETER(LT)
*         BIASED BY +100 IN PRINT CALL
* 
*      *********************************************************
  
*         DETAILED ERROR MESSAGE - MSFS 
      DATA (FORM2(I,1), I=1,9,1)  / 
     .10H(2X,A8,1X,,10HR8,1X,R6,2,10HX,R1,2(1X,,10HO2),1X,O3,,10H2(1X,O2
     .),2,10HX,O2,1X,O2,10H,2(1X,A1),,10H1X,I2,I2,1,10H3(1X,O4)) /
  
*         DETAILED USAGE MESSAGE
      DATA (FORM2(I,2),I=1,12,1)  / 
     .10H(2X,A8,1X,,10HR8,1X,R6,2,10HX,R1,2(1X,,10HO2),1X,O3,,10H4(1X,O2
     .),2,10HX,O2,     ,10H1X,I2,I2,1,10HX,O4,2X,O2,10H,2X,2(O4,1,10HX),
     .1X,O2,2,10HX,4(O4,1X),10H)         /
  
*         80 COLUMN DETAILED ERROR MESSAGE
      DATA(FORM2(I,3),I=1,11,1)   / 
     .10H(2X,A8,1X,,10HR8,1X,R6,2,10HX,R1,2(1X,,10HO2),1X,O3,,10H2(1X,O2
     .),2,10HX,O2,1X,  ,10HO2,2(1X,A1,10H),1X,I2,I2,10H,3(1X,O4)),10H 
     .       ,10H          /
  
*         80 COLUMN DETAILED USAGE MESSAGE
      DATA(FORM2(I,4),I=1,10,1)  /
     .10H(2X,A8,1X,,10HR8,1X,R6,2,10HX,R1,2(1X,,10HO2),1X,O3,,10H4(1X,O2
     .),2,10HX,O2,1X,  ,10HI2,I2,1X,O,10H4,2X,O2,2X,10H,O4,1X,O4),10H 
     .       /
  
*      MASSTOR 7990 TYPE 60, 0106 ERROR DETAIL REPORT 
      DATA (FORM2(I,5),I=1,9,1) / 
     .10H(3X,A8,A2,,10HO2,2X,R1,1,10HX,A6,1X,A1,10H,1X,A4,1X,,10HZ5,1X,3
     .(Z3,10H,1H/),Z3,1,10HX,Z4,1H/,Z,10H4,2X,A10,A,10H4)        /
  
*      MASSTOR 7990 USAGE DETAIL REPORT - 80 COLUMN 
      DATA (FORM2(I,6),I=1,10,1) /
     .10H(3X,A8,1X,,10HA10,1X,I2.,10H2,1H/,I2.2,10H,1X,O2,2X,,10HR1,2(1X
     .,A1,10H),1X,I6,1X,10H,I3,1X,I5,,10H1X,I6,1X,I,10H3,1X,3(1X,,10HI3)
     .)      /
  
*      MASSTOR 7990 USAGE DETAIL REPORT - 132 COLUMN
      DATA (FORM2(I,7),I=1,13,1) /
     .10H(3X,A8,1X,,10HA10,1X,I2.,10H2,1H/,I2.2,10H,1X,O2,2X,,10HR1,2(1X
     .,A1,10H),1X,I4,1X,10H,3(1X,I4),,10H1X,I6,3(1X,10H,I3),1X,I5,10H,1X
     .,I3,1X,,10HI6,3(1X,I3,10H),5(1X,I4),10H)         /
  
*      MASSTOR CCC ERROR DETAIL REPORT - 132 COLUMN 
      DATA (FORM2(I,8),I=1,10,1) /
     .10H(3X,A8,2X,,10HO2,2X,R1,2,10HX,A1,3X,A1,10H,2X,I2,1X,,10HO3,2X,O
     .4,2,10HX,A3,2X,3A,10H10,2X,O4,1,10HH/,O4,2X,O,10H4,2X,3(3X,,10HO4)
     .)      /
  
  
*      IF CURRENT DETAILS - NOT TO BE PRINTED - RETURN. 
      IF (FLAGS(4) .EQ. 3HOFF) GO TO 50 
  
      LINE=LINE+1 
      IF (LT .EQ. 17) LINE = LINE + 1 
  
*     SUPPRESS NEW PAGE FOR EXTENDED DETAIL MESSAGE 
      IF ((LT .EQ. 3) .OR. (LT .EQ. 5)) GO TO 5 
  
      HCF(4) = 7
      IF(LINE.GT.PLF) GO TO 70
    5 CONTINUE
      IF(LT.GE.100) GO TO 10
      DO 8 J = 1, 8 
       FMT(J)=IFORM(J,LT) 
  8   CONTINUE
         PRINT FMT, (PL(J),J=1,NW)
         GO TO 50 
*           PRINT WITH FORMAT 100 OR GREATER
   10 CONTINUE
      IF (LT.GE.200) GO TO 20 
      LFM = LT - 100
      DO 12  J = 1,13 
       FMT(J)=FORM2(J,LFM)
 12   CONTINUE
      PRINT FMT, (PL(J), J=1,NW)
* 
      GO TO 50
  
*      PRINT DETAIL EXTENDED REPORTS
   20 LFM = LT - 199
      GO TO (23,26,29,32,35,38,41,44,47,51) LFM 
  
   23 PRINT 24, (PL(I),I=16,42) 
   24 FORMAT (5X,'ACTIVE TASK POINT = ',Z4,/,5X,'DATA STACK = ',
     .12(Z4,1X),/,5X,'RTRN STACK = ',12(Z4,1X),/,18X,2(Z4,1X))
      LINE = LINE + 3 
      GO TO 50
  
   26 PRINT 27, (PL(I),I=1,4) 
   27 FORMAT (5X,'DTI/DTO SENSE BYTES  = ',4(Z4,1X))
      GO TO 50
  
   29 PRINT 30, (PL(I),I=1,8) 
   30 FORMAT (5X,'DRD SENSE BYTES      = ',8(Z4,1X))
      GO TO 50
  
   32 PRINT 33, (PL(I),I=1,9) 
   33 FORMAT (5X,'DRC SENSE BYTES      = ',9(Z4,1X))
      GO TO 50
  
   35 PRINT 36, PL(1),PL(2),PL(3) 
   36 FORMAT (5X,'DIF SENSE BYTES      = ',3(Z4,1X))
      GO TO 50
  
   38 PRINT 39, (PL(I),I=1,8) 
   39 FORMAT (5X,'SMA SENSE BYTES      = ',8(Z4,1X))
      GO TO 50
  
   41 PRINT 42, PL(1),PL(2),PL(3) 
   42 FORMAT (5X,'AIF SENSE BYTES      = ',3(Z4,1X))
      GO TO 50
  
   44 PRINT 45, (PL(I),I=1,6) 
   45 FORMAT (5X,'GENERAL/DETAIL, C170/CCC DI, DIAG STATUS  ',5(O4,'/'),
     .O4) 
      GO TO 50
  
   47 IF (FROG(18).EQ.3HYES) PRINT 48, (PL(I),I=1,24) 
      IF (FROG(18).NE.3HYES) PRINT 49, (PL(I),I=1,24) 
   48 FORMAT (28X,'SENSE BYTES  ',11(Z2,'/'),Z2,/,41X,11(Z2,'/'),Z2)
   49 FORMAT (67X,'SENSE BYTES  ',11(Z2,'/'),Z2,/,80X,11(Z2,'/'),Z2)
      LINE = LINE + 1 
      GO TO 50
  
*      EXTENDED FX FORMAT 
   51 PRINT 52,(PL(I),I=11,64),(PL(I),I=1,10) 
   52 FORMAT (4X,'HEXADECIMAL BYTES ',
     .    ' 0 - 11: ', 9(Z4,1X),/,22X,'12 - 23: ',9(Z4,1X),/, 
     .22X,'24 - 35: ', 9(Z4,1X),/,22X,'36 - 47: ',9(Z4,1X),/, 
     .22X,'48 - 59: ', 9(Z4,1X),/,22X,'5A - 6B: ',9(Z4,1X),/, 
     .22X,'6C - 7F: ',10(Z4,1X))
      LINE = LINE + 6 
  
   50 DO 60 K=1,NW
   60 PL(K) = 1H
* 
      GO TO 300 
   70 CONTINUE
      CALL HEADER 
      CALL PHEAD37 (1)
      GO TO 5 
  300 RETURN
      END 
      SUBROUTINE UCHEK37
**
*        UCHEK37  - BASIC ROUTINE USED BY DETAIL PROCESSORS, TO 
*                   TEST FOR CHANGES IN MESSAGE THAT WILL AFFECT
*                   SUBHEADER PRINT.  WHEN CHANGE OCCURS, MODIFY
*                   POINTERS AND CALL PHEAD37 FOR NEW HEADING 
*                   OF DEVICE AND MESSAGE TYPE. 
* 
*        ENTRY CONDITIONS 
*       ------------------- 
*       CURRENT MESSAGE IN PROCESS IS IN (IFLD) 
*     - FOR START OF REPORT, (SVEST) FLAG HAS BEEN PRESET,
*       BY ANALYZER ROUTINES, TO ( -1) TO INDICATE
*       ORIGINAL ENTRY. 
* 
*       EXIT CONDITIONS 
*       ----------------
*       CURRENT APPLICABLE SUB-HEADERS ARE PRINTED , AND FLAGS
*       FOR TEST CHANGES IN NEXT MESSAGE ARE SAVED. 
* 
*       DATA AREAS
*        -----------
*         SVEST - SAVE EST IN PROCESS 
*        SVMTY - SAVE MESSAGE TYPE IN PROCESS 
* 
* 
*CALL HPACOM1 
*CALL,HPACOM2 
  
      CALL DREPT3 
  
*       JUMP IF NOT INITIAL ENTRY FOR THIS UNIT 
      IF (FLAGS(12) .NE. 7HNEW-EST) GO TO 200 
      FLAGS(12) = 1H
      SVMTY = IFLD(FMTY)
      PDATE = SEBUF(21) 
      CALL HEADER 
      CALL FLIP3
      HCF(4) = 7
      CALL PHEAD37 (1)
      GO TO 500 
  
*         TEST CHANGE IN MESSAGE TYPE 
  200 IF (SVMTY .NE. MTY) GO TO 300 
*       TEST CHANGE OF DATE 
      IF (PDATE .EQ. SEBUF(23)) GO TO 500 
  
*        INSERT DATE CHANGE FOR SAME MESSAGE
      PDATE = SEBUF(23) 
      HDATA(3) = PDATE
      HCF(4) = 7
      IF ((LINE + 2) .GE. PLF) GO TO 400
      CALL PHEAD37(4) 
      GO TO 500 
  
*        CHANGE MESSAGE TYPE
  300 PDATE = SEBUF(23) 
      HDATA(3) = PDATE
      SVMTY = MTY 
*     SET SUBHEADER CONTROLS
      CALL FLIP3
      HCF(4) = 7
      IF ((LINE + 8) .GE. PLF) GO TO 400
      IF  ((IFLD(FRTY).EQ.O"66").AND.(MTY.NE.O"60").AND.
     .     ((LINE+11).GE.PLF)) GO TO 400
      CALL PHEAD37 (2)
      GO TO 500                                                         000980
                                                                        000990
  400 CONTINUE
      CALL HEADER                                                       001010
      CALL PHEAD37 (1)                                                  001020
  
  500 RETURN
      END 
          IDENT  INTEM37
          LCC OVCAP.
          ENTRY  INTEM37
OVLNO     SET    7
          USE    /LINK/ 
LINKET    BSS    1
LINKEM    BSS    1
          USE    *
  
INTEM37   BSS    1
          SX6    ET 
          SA6    LINKET 
          SX6    EC 
          SA6    LINKEM 
          JP     INTEM37
          EJECT 
*CALL COMHPAERT 
          END 
