      SUBROUTINE SPEAK(N)
C
C  PRINT THE MESSAGE IN RECORD N OF THE RANDOM ACCESS MESSAGE FILE.
C  PRECEDE IT WITH A BLANK LINE UNLESS BLKLIN IS FALSE.
C
      IMPLICIT INTEGER*4 (A-Z)
      LOGICAL BLKLIN,NOINPT
      INTEGER*4 LINES,EOF
      INTEGER*1 LINESX(72)
      EQUIVALENCE (LINES,LINESX)
      COMMON /TXTCOM/ RTEXT,LINES,ASCVAR
      COMMON /BLKCOM/ BLKLIN,NOINPT
      COMMON /BLANKS/ BLANK4,EOF
      DIMENSION RTEXT(205),LINES(18)
C
      IF(N.EQ.0)RETURN
      READ(4,REC=N) LOC,LINES
      CALL ENCRYPT(LINES,N)
      ASCVAR = N + 1
      IF(LINES(1).EQ.EOF)RETURN
      IF(BLKLIN.AND.NOINPT) WRITE(6,2)
      NOINPT=.TRUE.
    1 OLDLOC = LOC
      DO 3 J=1,18
      I=19-J
      L = I
      IF(LINES(I) .NE. BLANK4) GO TO 5
    3 CONTINUE
C
C OUTPUT HAS TRAILING BLANKS STRIPPED
C
    5 WRITE(6,2)(LINESX(I),I=1,LENB(LINESX,72))
    2 FORMAT(' ',72A1)
      READ(4,REC=ASCVAR) LOC,LINES
      CALL ENCRYPT(LINES,ASCVAR)
      ASCVAR = ASCVAR + 1
      IF(LOC .EQ. OLDLOC) GO TO 1
      RETURN
      END
