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