*DECK     PRNTMIO 
      SUBROUTINE PRNTMIO(LAB,INDX,OBIT,LBIT,OBST,LBST,OBLK,LBLK,RL,MPW) 
      IMPLICIT INTEGER (A-Z)
      DIMENSION OBLK(LBLK),OBIT(LBIT),OBST(LBST),CTR(5) 
      COMMON/LINE/LINECM(2) 
      DATA BLANK/10H          /,TEST/0/ 
      DATA NRL/1/ 
  
*         FIELD DEFINITIONS 
  
      FIELD(X,P,L) = SHIFT(X,60-P).A. .N. MASK(60-L)
  
*         RANDOM INDEX WORD 
  
      RIC(X) = FIELD(X,59,1)
      RAT(X) = FIELD(X,58,1)
      ROFS(X) = FIELD(X,30,9) 
      RLEN(X) = FIELD(X,39,18)
      RRA(X) = FIELD(X,0,30)
      RFWA(X) = FIELD(X,18,18)
      RLCM(X) = FIELD(X,0,18) 
  
*         BLOCK ADDRESS WORD
  
      ABLK(X) = FIELD(X,59,1) 
      APRI(X) = FIELD(X,58,1) 
      AHB(X) = FIELD(X,57,1)
      AFW(X) = FIELD(X,56,1)
      ABI(X) = FIELD(X,36,18) 
      ALEN(X) = FIELD(X,18,18)
      AFWA(X) = FIELD(X,0,18) 
  
*         BLOCK HEADER WORD 
  
      HAV(X) = FIELD(X,59,1)
      HPRI(X) = FIELD(X,58,1) 
      HHB(X) = FIELD(X,57,1)
      HFW(X) = FIELD(X,56,1)
      HBI(X) = FIELD(X,36,18) 
      HBST(X) = FIELD(X,18,18)
      HLEN(X) = FIELD(X,0,18) 
  
*         BLOCK TRAILER WORD
  
      TAV(X) = FIELD(X,59,1)
      TLKF(X) = FIELD(X,18,18)
      TLKB(X) = FIELD(X,36,18)
      TLEN(X) = FIELD(X,0,18) 
  
*         MISC. FIELD DEFS
  
      ZA(X) = FIELD(X,54,6) 
      ZB(X) = FIELD(X,36,18)
      ZC(X) = FIELD(X,18,18)
      ZD(X) = FIELD(X,0,18) 
  
*         FORMAT SPECIFICATIONS 
  
10    FORMAT(/) 
20    FORMAT(A6)
30    FORMAT(*--RI WORD--   IC  AT     LEN     OFS              RA     F
     XWA*)
40    FORMAT(*--BA WORD--  BLK PRI  HB  FW      BI     LEN     FWA*)
50    FORMAT(*--BH WORD--   AV PRI  HB  FW      BI     BST     LEN*)
60    FORMAT(*--BT WORD--   AV         LKF     LKB     LEN*/) 
70    FORMAT(*--BLOCK INFORMATION TABLE--*/)
80    FORMAT(*--BLOCK STATUS TABLE--*/) 
90    FORMAT(*--CONTENTS OF BLK--*/)
100   FORMAT(1H ,7X,Z7,3X)
110   FORMAT(2I4,2Z8,6X,Z10,Z8) 
120   FORMAT(4I4,3Z8) 
130   FORMAT(I4,4X,3Z8) 
140   FORMAT(8X)
150   FORMAT(10X,Z2,3Z7)
160   FORMAT(10X) 
165   FORMAT(16X) 
170   FORMAT(10X,*--BIW--*/)
180   FORMAT(10X,*--BSW--*/)
  
      LINECM(1) = LINECM(2) 
      IF(TEST.EQ.LAB) GO TO 300 
      TEST = LAB
      PRINT 20, LAB 
      GO TO 500 
300   PRINT 20, BLANK 
  
500   INDXX = INDX.AND.77B
      GO TO(1000,2000,3000,4000,5000,6000,7000),INDXX 
  
*         PRINT RANDOM INDEX WORD 
  
1000  CONTINUE
      PRINT 30
      PRINT 10
      MPL = MPW 
      ICX = RIC(MPL)
      ATX = RAT(MPL)
      LENX = RLEN(MPL)
      OFSX = ROFS(MPL)
      RAX = RRA(MPL)
      FWAX = RFWA(MPL)
      LCMX = RLCM(MPL)
      IF(ICX.EQ.0) GO TO 1100 
      OFSX = 0
      RAX = LCMX
      GO TO 1200
1100  FWAX = 0
      IF(ATX.EQ.1) RAX = LCMX 
1200  PRINT 100,RL
      PRINT 110, ICX,ATX,LENX,OFSX,RAX,FWAX 
      PRINT 10
      GO TO 9000
  
*         PRINT BLOCK ADDRESS WORD
  
2000  CONTINUE
      PRINT 40
      PRINT 10
      MPL = MPW 
      BLKX = ABLK(MPL)
      PRIX = APRI(MPL)
      HBX = AHB(MPL)
      FWX = AFW(MPL)
      BIX = ABI(MPL)
      LENX = ALEN(MPL)
      FWAX = AFWA(MPL)
      PRINT 100, RL 
      PRINT 120, BLKX,PRIX,HBX,FWX,BIX,LENX,FWAX
      PRINT 10
      GO TO 9000
  
*         PRINT BLOCK HEADER WORD 
  
3000  CONTINUE
      PRINT 50
      PRINT 10
      MPL = MPW 
      AVX = HAV(MPL)
      PRIX = HPRI(MPL)
      HBX = HHB(MPL)
      FWX = HFW(MPL)
      BIX = HBI(MPL)
      BSTX = HBST(MPL)
      LENX = HLEN(MPL)
      PRINT 100, RL 
      PRINT 120, AVX,PRIX,HBX,FWX,BIX,BSTX,LENX 
      PRINT 10
      GO TO 9000
  
*         PRINT BLOCK TRAILER WORD
  
4000  CONTINUE
      PRINT 60
      MPL = MPW 
      AVX = TAV(MPL)
      LKFX = TLKF(MPL)
      LKBX = TLKB(MPL)
      LENX = TLEN(MPL)
      PRINT 100, RL 
      PRINT 130, AVX,LKFX,LKBX,LENX 
      PRINT 10
      GO TO 9000
  
*         PRINT BIT TABLE 
  
5000  CONTINUE
      PRINT 10
      PRINT 20, BLANK 
      PRINT 70
      PRINT 20, BLANK 
      PRINT 30
      PRINT 170 
      DO 5500 I = 1,LBIT,2
      MPZ = OBIT(I) 
      ZAX = ZA(MPZ) 
      ZBX = ZB(MPZ) 
      ZCX = ZC(MPZ) 
      ZDX = ZD(MPZ) 
      MPL = OBIT(I+1) 
      MPLX = I-1
      ICX = RIC(MPL)
      ATX = RAT(MPL)
      LENX = RLEN(MPL)
      OFSX = ROFS(MPL)
      RAX = RRA(MPL)
      FWAX = RFWA(MPL)
      LCMX = RLCM(MPL)
      IF(ICX.EQ.0) GO TO 5100 
      OFSX = 0
      RAX = LCMX
      GO TO 5200
5100  FWAX = 0
      IF(ATX.EQ.1) RAX = LCMX 
5200  PRINT 100, MPLX 
      PRINT 110, ICX,ATX,LENX,OFSX,RAX,FWAX 
      PRINT 150, ZAX,ZBX,ZCX,ZDX
      PRINT 10
5500  CONTINUE
      GO TO 9000
  
*         PRINT BST TABLE 
  
6000  CONTINUE
      PRINT 10
      PRINT 20, BLANK 
      PRINT 80
      PRINT 20, BLANK 
      PRINT 40
      PRINT 180 
      DO 6500 I = 1,LBST,2
      MPL = OBST(I) 
      MPLX = I-1
      BLKX = ABLK(MPL)
      PRIX = APRI(MPL)
      HBX = AHB(MPL)
      FWX = AFW(MPL)
      BIX = ABI(MPL)
      LENX = ALEN(MPL)
      FWAX = AFWA(MPL)
      PRINT 100, MPLX 
      PRINT 120, BLKX,PRIX,HBX,FWX,BIX,LENX,FWAX
      MPZ = OBST(I+1) 
      ZAX = ZA(MPZ) 
      ZBX = ZB(MPZ) 
      ZCX = ZC(MPZ) 
      ZDX = ZD(MPZ) 
      PRINT 140 
      PRINT 150, ZAX,ZBX,ZCX,ZDX
      PRINT 10
6500  CONTINUE
      GO TO 9000
  
*         PRINT CONTENTS OF BLK 
  
7000  CONTINUE
      PRINT 10
      PRINT 20, BLANK 
      PRINT 90
      I = 1 
7100  I = I+1 
      MPL = OBLK(I) 
      IF(MPL.EQ.0) GO TO 9000 
      PRINT 20, BLANK 
      PRINT 50
      PRINT 165 
      PRINT 60
      MPLX = LOCF(OBLK(I))
      AVX = HAV(MPL)
      PRIX = HPRI(MPL)
      HBX = HHB(MPL)
      FWX = HFW(MPL)
      BIX = HBI(MPL)
      BSTX = HBST(MPL)
      LENX = HLEN(MPL)
      PRINT 100, MPLX 
      PRINT 120, AVX,PRIX,HBX,FWX,BIX,BSTX,LENX 
      PRINT 160 
      K = I+1 
      I = I+LENX-1
      MPL = OBLK(I) 
      MPLX = LOCF(OBLK(I))
      AVX = TAV(MPL)
      LKFX = TLKF(MPL)
      LKBX = TLKB(MPL)
      LENX = TLEN(MPL)
      PRINT 100, MPLX 
      PRINT 130, AVX,LKFX,LKBX,LENX 
      PRINT 10
      IF(AVX.EQ.1) GO TO 7100 
      IF(FWX.EQ.1) GO TO 7100 
      IF(NRL.EQ.1) GO TO 7100 
      LTXT = LENX-2 
      CTR(1) = 0
      CTR(2) = 10HPRNTBLK 
      CTR(3) = 1
      CTR(4) = 2
      CTR(5) = 1
      CALL DMPRLST(CTR,OBLK(K),LTXT)
      LINECM(1) = LINECM(2) 
      GO TO 7100
  
*         END PROCESSING
  
9000  LINECM(1) = 0 
      RETURN
      END 
