SUBROUTINE MAIN LOGICAL*1 BUF(402) INTEGER GETARG, OPEN, ASSNGI INTEGER I LOGICAL*1 ST001Z(22) LOGICAL*1 ST002Z(55) DATA ST001Z(1)/117/,ST001Z(2)/115/,ST001Z(3)/97/,ST001Z(4)/103/,ST *001Z(5)/101/,ST001Z(6)/58/,ST001Z(7)/32/,ST001Z(8)/32/,ST001Z(9)/1 *11/,ST001Z(10)/115/,ST001Z(11)/32/,ST001Z(12)/91/,ST001Z(13)/102/, *ST001Z(14)/105/,ST001Z(15)/108/,ST001Z(16)/101/,ST001Z(17)/93/,ST0 *01Z(18)/32/,ST001Z(19)/46/,ST001Z(20)/46/,ST001Z(21)/46/,ST001Z(22 *)/0/ DATA ST002Z(1)/67/,ST002Z(2)/97/,ST002Z(3)/110/,ST002Z(4)/110/,ST0 *02Z(5)/111/,ST002Z(6)/116/,ST002Z(7)/32/,ST002Z(8)/114/,ST002Z(9)/ *101/,ST002Z(10)/115/,ST002Z(11)/101/,ST002Z(12)/116/,ST002Z(13)/32 */,ST002Z(14)/115/,ST002Z(15)/116/,ST002Z(16)/97/,ST002Z(17)/110/,S *T002Z(18)/100/,ST002Z(19)/97/,ST002Z(20)/114/,ST002Z(21)/100/,ST00 *2Z(22)/32/,ST002Z(23)/111/,ST002Z(24)/117/,ST002Z(25)/116/,ST002Z( *26)/112/,ST002Z(27)/117/,ST002Z(28)/116/,ST002Z(29)/32/,ST002Z(30) */116/,ST002Z(31)/111/,ST002Z(32)/32/,ST002Z(33)/80/,ST002Z(34)/82/ *,ST002Z(35)/73/,ST002Z(36)/78/,ST002Z(37)/84/,ST002Z(38)/32/,ST002 *Z(39)/99/,ST002Z(40)/97/,ST002Z(41)/114/,ST002Z(42)/114/,ST002Z(43 *)/105/,ST002Z(44)/97/,ST002Z(45)/103/,ST002Z(46)/101/,ST002Z(47)/3 *2/,ST002Z(48)/99/,ST002Z(49)/111/,ST002Z(50)/110/,ST002Z(51)/116/, *ST002Z(52)/114/,ST002Z(53)/111/,ST002Z(54)/108/,ST002Z(55)/0/ CALL QUERY(ST001Z) CALL FILNFO(2, BUF, I) IF (.NOT.(ASSNGI(BUF, 5, 2) .EQ. -3))GOTO 23000 CALL ERROR(ST002Z) 23000 CONTINUE I=1 23002 CONTINUE IF (.NOT.(GETARG(I,BUF,402) .EQ. -1))GOTO 23005 IF (.NOT.(I .NE. 1))GOTO 23007 GOTO 23004 23007 CONTINUE INT = 1 GOTO 23006 23005 CONTINUE IF (.NOT.(BUF(1) .EQ. 45 .AND. BUF(2) .EQ. 0))GOTO 23009 INT = 1 GOTO 23010 23009 CONTINUE INT = OPEN(BUF,1) IF (.NOT.(INT .EQ. -3))GOTO 23011 CALL CANT(BUF) 23011 CONTINUE 23010 CONTINUE 23006 CONTINUE CALL OVERS (INT, 2) IF (.NOT.(INT .NE. 1))GOTO 23013 CALL CLOSE(INT) 23013 CONTINUE 23003 I=I+1 GOTO 23002 23004 CONTINUE RETURN END SUBROUTINE OVERS(IFD, OFD) INTEGER IFD, OFD LOGICAL*1 BUF(402), OUTBUF(402, 6) INTEGER COL, I INTEGER GETLIN 23015 IF (.NOT.(GETLIN(BUF, IFD) .NE. -1))GOTO 23016 CALL INITBL(OUTBUF) IF (.NOT.(BUF(1) .EQ. 12))GOTO 23017 OUTBUF(1,1) = 49 CALL SCOPY(BUF, 2, BUF, 1) GOTO 23018 23017 CONTINUE OUTBUF(1,1) = 32 23018 CONTINUE CALL EXPTAB(BUF) COL = 0 I = 1 23019 IF (.NOT.(BUF(I) .NE. 10))GOTO 23021 IF (.NOT.(BUF(I) .EQ. 13))GOTO 23022 COL = 0 GOTO 23023 23022 CONTINUE IF (.NOT.(BUF(I) .EQ. 8))GOTO 23024 COL = COL - 1 COL = MAX0(COL, 0) GOTO 23025 23024 CONTINUE COL = COL + 1 CALL PACKIT(BUF(I), OUTBUF, COL) 23025 CONTINUE 23023 CONTINUE 23020 I = I + 1 GOTO 23019 23021 CONTINUE CALL DUMPBL(OUTBUF, OFD) GOTO 23015 23016 CONTINUE RETURN END INTEGER FUNCTION LENG(OUTBUF, I) LOGICAL*1 OUTBUF(402, 6) INTEGER I, J J = 402 23026 IF (.NOT.(J .GT. 1))GOTO 23028 IF (.NOT.(OUTBUF(J,I) .NE. 32))GOTO 23029 GOTO 23028 23029 CONTINUE 23027 J = J - 1 GOTO 23026 23028 CONTINUE LENG=(J) RETURN END SUBROUTINE PRNT(OUTBUF, I, N, FD) LOGICAL*1 OUTBUF(402, 6) INTEGER I, N, J INTEGER FD J = 1 23031 IF (.NOT.(J .LE. N))GOTO 23033 CALL PUTCH(OUTBUF(J,I), FD) 23032 J = J + 1 GOTO 23031 23033 CONTINUE CALL PUTCH(10, FD) RETURN END SUBROUTINE DUMPBL(OUTBUF, FD) LOGICAL*1 OUTBUF(402, 6) INTEGER N, I INTEGER LENG INTEGER FD N = LENG(OUTBUF, 1) CALL PRNT(OUTBUF, 1, N, FD) I = 2 23034 IF (.NOT.(I .LE. 6))GOTO 23036 N = LENG(OUTBUF, I) IF (.NOT.(N .LE. 1))GOTO 23037 GOTO 23036 23037 CONTINUE CALL PRNT(OUTBUF, I, N, FD) 23035 I = I + 1 GOTO 23034 23036 CONTINUE RETURN END SUBROUTINE PACKIT(C, OUTBUF, COL) LOGICAL*1 C, OUTBUF(402, 6) INTEGER COL, I, J J = COL + 1 I = 1 23039 IF (.NOT.(I .LE. 6))GOTO 23041 IF (.NOT.(OUTBUF(J,I) .EQ. 32))GOTO 23042 OUTBUF(J,I) = C GOTO 23041 23042 CONTINUE 23040 I = I + 1 GOTO 23039 23041 CONTINUE RETURN END SUBROUTINE INITBL(OUTBUF) LOGICAL*1 OUTBUF(402, 6) INTEGER I, J I = 1 23044 IF (.NOT.(I .LE. 6))GOTO 23046 OUTBUF(1,I) = 43 J = 2 23047 IF (.NOT.(J .LE. 402))GOTO 23049 OUTBUF(J,I) = 32 23048 J = J + 1 GOTO 23047 23049 CONTINUE 23045 I = I + 1 GOTO 23044 23046 CONTINUE RETURN END SUBROUTINE EXPTAB(BUF) LOGICAL*1 BUF(402), TEMP(402) INTEGER I, J I=1 J=1 23050 IF (.NOT.(BUF(I) .NE. 0))GOTO 23052 IF (.NOT.(BUF(I) .EQ. 9))GOTO 23053 23055 CONTINUE TEMP(J) = 32 J = J + 1 23056 IF (.NOT.(MOD(J,8) .EQ. 1))GOTO 23055 23057 CONTINUE GOTO 23054 23053 CONTINUE TEMP(J) = BUF(I) J = J + 1 23054 CONTINUE 23051 I = I + 1 GOTO 23050 23052 CONTINUE TEMP(J) = 0 CALL STRCPY(TEMP, BUF) RETURN END