      SUBROUTINE MAIN
      LOGICAL*1 BUF(512)
      INTEGER N
      INTEGER GETLIN, GETARG
      CALL QUERY(24Husage:  banner [string].)
      CALL LODCHR
      IF (.NOT.(GETARG(1, BUF, 512) .NE. -1))GOTO 23000
      CALL BIGOUT(BUF, 2)
      GOTO 23001
23000 CONTINUE
      N=GETLIN(BUF, 1)
23002 IF (.NOT.(N .NE. -1))GOTO 23004
      BUF(N) = 0
      CALL BIGOUT(BUF, 2)
23003 N=GETLIN(BUF, 1)
      GOTO 23002
23004 CONTINUE
23001 CONTINUE
      RETURN
      END
      SUBROUTINE BIGOUT(BUF, OUT)
      LOGICAL*1 BUF(100)
      LOGICAL*1 CUPPER
      INTEGER OUT
      INTEGER N, I, J, K
      INTEGER INDEXC, LENGTH
      COMMON / CBANNR / LCHARS(133), ALPHA(6, 133, 5)
      LOGICAL*1 LCHARS
      LOGICAL*1 ALPHA
      N = LENGTH(BUF)
      IF (.NOT.(N .GT. 18))GOTO 23005
      N = 18
23005 CONTINUE
      CALL PUTCH(10, OUT)
      I=1
23007 IF (.NOT.(I .LE. 5))GOTO 23009
      J=1
23010 IF (.NOT.(J .LE. N))GOTO 23012
      K = INDEXC(LCHARS, CUPPER(BUF(J)))
      IF (.NOT.(K .EQ. 0))GOTO 23013
      K = INDEXC(LCHARS, 32)
23013 CONTINUE
      IF (.NOT.(J .GT. 1))GOTO 23015
      CALL PUTCH(32, OUT)
      CALL PUTCH(32, OUT)
23015 CONTINUE
      CALL PUTLIN(ALPHA(1, K, I), OUT)
23011 J=J+1
      GOTO 23010
23012 CONTINUE
      CALL PUTCH(10, OUT)
23008 I=I+1
      GOTO 23007
23009 CONTINUE
      CALL PUTCH(10, OUT)
      RETURN
      END
      SUBROUTINE LODCHR
      LOGICAL*1 FILE(40), BUF(512), PATH(120)
      INTEGER INT, N, I, IND SUB, J
      INTEGER OPEN, GETLIN, LOCCOM
      COMMON / CBANNR / LCHARS(133), ALPHA(6, 133, 5)
      LOGICAL*1 LCHARS
      LOGICAL*1 ALPHA
      LOGICAL*1 CHRSET(8)
      LOGICAL*1 SUFFIX(3)
      DATA CHRSET(1)/98/,CHRSET(2)/105/,CHRSET(3)/103/,CHRSET(4)/99/,CHR
     *SET(5)/104/,CHRSET(6)/97/,CHRSET(7)/114/,CHRSET(8)/0/
      DATA SUFFIX(1)/0/,SUFFIX(2)/10/,SUFFIX(3)/0/
      CALL IMPATH(PATH)
      IF (.NOT.(LOCCOM(CHRSET, PATH, SUFFIX, FILE) .NE. 12))GOTO 23017
      CALL ERROR(37HCannot locate big character set file.)
23017 CONTINUE
      INT = OPEN(FILE, 1)
      IF (.NOT.(INT .EQ. -3))GOTO 23019
      CALL CANT(FILE)
23019 CONTINUE
      N = GETLIN(BUF, INT)
      IF (.NOT.(N .GE. 133))GOTO 23021
      N = 133
23021 CONTINUE
      BUF(N) = 0
      CALL SCOPY(BUF, 1, LCHARS, 1)
      I = 0
      N=GETLIN(BUF,INT)
23023 IF (.NOT.(N .NE. -1))GOTO 23025
      IND = I / 5 + 1
      IF (.NOT.(IND .GT. 133))GOTO 23026
      GOTO 23025
23026 CONTINUE
      SUB = MOD (I, 5) + 1
      I = I + 1
      J = N
23028 IF (.NOT.(J .LE. 5))GOTO 23030
      BUF(J) = 32
23029 J=J+1
      GOTO 23028
23030 CONTINUE
      J=1
23031 IF (.NOT.(J .LE. 5))GOTO 23033
      ALPHA(J, IND, SUB) = BUF(J)
23032 J=J+1
      GOTO 23031
23033 CONTINUE
      ALPHA(J, IND, SUB) = 0
23024 N = GETLIN(BUF,INT)
      GOTO 23023
23025 CONTINUE
      CALL CLOSE(INT)
      RETURN
      END
