FTN77
      PROGRAM DESCR(3),DESCRIBE
C
C  RU,DESCR,<ADDR>,<UNIT>,<VOLUME>,<DOCICLEAR>
C
      INTEGER LU, ADDR, COMP (24), BUF (200), PARAM (5)
C
      CALL RMPAR (PARAM)
C
      LU = 21
      ADDR = PARAM (1)
C
      DO 10 I=1,24
10    COMP (I) = -1
C
C
      IF (PARAM (4).EQ.0) GO TO 15
C
      COMP (1) = 15
      CALL XCICL (LU, ADDR, COMP, BUF)
C
15    CONTINUE
C
      COMP (1) = PARAM (2)
      IF (COMP (1).NE.15) COMP (2) = PARAM (3)
C
      CALL XDESC (LU, ADDR, COMP, BUF)
C
      WRITE (1,20) ADDR, PARAM (2), PARAM (3)
20    FORMAT ("DESCRIBE ADDRESS ",I1," UNIT ",I2," VOLUME ",I1)
      WRITE (1,25) BUF (59), BUF (60)
25    FORMAT ("RAW DATA (",I2," BYTES) QSTAT ",I1)
C
      J = 60 + (BUF (59) + 1) / 2
C
      DO 40 I=61,J
      IF (BUF (59) .EQ. 1) THEN
      WRITE (1,30) I - 60, HEX (ISHFT (BUF (I), -8))
      ELSE
      WRITE (1,31) I - 60, HEX (ISHFT (BUF (I), -8)), HEX (BUF (I))
      ENDIF
30    FORMAT (I3, " - ", A2)
31    FORMAT (I3, " - ", A2, " ", A2)
      BUF (59) = BUF (59) - 2
40    CONTINUE
C
C
      END
      INTEGER FUNCTION HEX(VAL)
      INTEGER HI,LO,VAL
      HI = IAND (ISHFT (VAL, -4), 17B) + 60B
      LO = IAND (VAL, 17B) + 60B
      IF (HI.GT.71B) HI = HI + 7
      IF (LO.GT.71B) LO = LO + 7
      HEX = IOR (ISHFT (HI, 8), LO)
      RETURN
      END
      END$
