SUBROUTINE MAIN INTEGER N, I, FLAG, TYPE, X, JUNK INTEGER READF, WRITEF, TBLOOK LOGICAL*1 BUF(5000), NAME(20), Y, DEFN(10) LOGICAL*1 ST001Z(55) EQUIVALENCE (X,Y) 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)/98/,ST001Z(11)/106/,ST001Z(12)/102/,ST001Z(13)/105/ *,ST001Z(14)/120/,ST001Z(15)/32/,ST001Z(16)/60/,ST001Z(17)/105/,ST0 *01Z(18)/110/,ST001Z(19)/112/,ST001Z(20)/117/,ST001Z(21)/116/,ST001 *Z(22)/46/,ST001Z(23)/111/,ST001Z(24)/98/,ST001Z(25)/106/,ST001Z(26 *)/32/,ST001Z(27)/62/,ST001Z(28)/111/,ST001Z(29)/117/,ST001Z(30)/11 *6/,ST001Z(31)/112/,ST001Z(32)/117/,ST001Z(33)/116/,ST001Z(34)/46/, *ST001Z(35)/111/,ST001Z(36)/98/,ST001Z(37)/106/,ST001Z(38)/32/,ST00 *1Z(39)/91/,ST001Z(40)/112/,ST001Z(41)/115/,ST001Z(42)/101/,ST001Z( *43)/99/,ST001Z(44)/116/,ST001Z(45)/95/,ST001Z(46)/102/,ST001Z(47)/ *105/,ST001Z(48)/108/,ST001Z(49)/101/,ST001Z(50)/93/,ST001Z(51)/32/ *,ST001Z(52)/46/,ST001Z(53)/46/,ST001Z(54)/46/,ST001Z(55)/0/ CALL QUERY(ST001Z) CALL INIT N=READF(BUF, 5000, 1) 23000 IF (.NOT.(N .GE. 0))GOTO 23002 IF (.NOT.(N .GT. 0))GOTO 23003 IF (.NOT.(BUF(1) .EQ. 1))GOTO 23005 I=3 23007 IF (.NOT.(I .LT. N))GOTO 23009 FLAG = I + 4 TYPE = I + 5 IF (.NOT.(BUF(TYPE) .EQ. 5))GOTO 23010 CALL FMT(BUF(I), NAME) IF (.NOT.(TBLOOK(NAME, DEFN) .EQ. 1))GOTO 23012 X = 0 Y = BUF(FLAG) X = IOR(X, 16) BUF(FLAG) = Y 23012 CONTINUE CALL PUTLIN(NAME, 3) CALL PUTCH(32, 3) CALL PCHAR(BUF(FLAG), 3) CALL PUTCH(10, 3) 23010 CONTINUE 23008 I=I+8 GOTO 23007 23009 CONTINUE 23005 CONTINUE 23003 CONTINUE JUNK = WRITEF(BUF, N, 2) 23001 N=READF(BUF, 5000, 1) GOTO 23000 23002 CONTINUE RETURN END SUBROUTINE DOIT(I, ZERO, ONE, INT) INTEGER I, INT LOGICAL*1 ZERO(100), ONE(100) IF (.NOT.(MOD(I,2) .EQ. 0))GOTO 23014 CALL PUTLIN(ZERO, INT) GOTO 23015 23014 CONTINUE CALL PUTLIN(ONE, INT) 23015 CONTINUE I = I / 2 RETURN END SUBROUTINE FMT(BUF, STR) LOGICAL*1 STR(100), BUF(100) CALL R50ASC(6, BUF, STR) STR(7) = 0 CALL FOLD(STR) RETURN END SUBROUTINE PCHAR(N, INT) LOGICAL*1 N, X INTEGER I LOGICAL*1 ST002Z(5) LOGICAL*1 ST003Z(5) LOGICAL*1 ST004Z(4) LOGICAL*1 ST005Z(4) LOGICAL*1 ST006Z(5) LOGICAL*1 ST007Z(5) LOGICAL*1 ST008Z(5) LOGICAL*1 ST009Z(5) LOGICAL*1 ST00AZ(2) LOGICAL*1 ST00BZ(2) EQUIVALENCE (X, I) DATA ST002Z(1)/67/,ST002Z(2)/79/,ST002Z(3)/78/,ST002Z(4)/32/,ST002 *Z(5)/0/ DATA ST003Z(1)/79/,ST003Z(2)/86/,ST003Z(3)/82/,ST003Z(4)/32/,ST003 *Z(5)/0/ DATA ST004Z(1)/82/,ST004Z(2)/87/,ST004Z(3)/32/,ST004Z(4)/0/ DATA ST005Z(1)/82/,ST005Z(2)/79/,ST005Z(3)/32/,ST005Z(4)/0/ DATA ST006Z(1)/65/,ST006Z(2)/66/,ST006Z(3)/83/,ST006Z(4)/32/,ST006 *Z(5)/0/ DATA ST007Z(1)/82/,ST007Z(2)/69/,ST007Z(3)/76/,ST007Z(4)/32/,ST007 *Z(5)/0/ DATA ST008Z(1)/76/,ST008Z(2)/67/,ST008Z(3)/76/,ST008Z(4)/32/,ST008 *Z(5)/0/ DATA ST009Z(1)/71/,ST009Z(2)/66/,ST009Z(3)/76/,ST009Z(4)/32/,ST009 *Z(5)/0/ DATA ST00AZ(1)/73/,ST00AZ(2)/0/ DATA ST00BZ(1)/68/,ST00BZ(2)/0/ I = 0 X = N I = I / 4 CALL DOIT(I, ST002Z, ST003Z, INT) I = I / 2 CALL DOIT(I, ST004Z, ST005Z, INT) CALL DOIT(I, ST006Z, ST007Z, INT) CALL DOIT(I, ST008Z, ST009Z, INT) CALL DOIT(I, ST00AZ, ST00BZ, INT) RETURN END SUBROUTINE INIT LOGICAL*1 BUF(402) INTEGER I, N INTEGER GETARG, GETLIN, LENGTH INTEGER FD INTEGER OPEN INTEGER MEM(1000) LOGICAL*1 CMEM(2000) LOGICAL*1 NULL(1) COMMON /CDSMEM/ MEM EQUIVALENCE (CMEM(1),MEM(1)) DATA NULL(1)/0/ CALL TBINIT(1000) I=1 23016 IF (.NOT.(GETARG(I, BUF, 36) .NE. -1))GOTO 23018 FD = OPEN(BUF, 1) IF (.NOT.(FD .EQ. -3))GOTO 23019 CALL CANT(BUF) 23019 CONTINUE 23021 IF (.NOT.(GETLIN(BUF, FD) .NE. -1))GOTO 23022 N=LENGTH(BUF) 23023 IF (.NOT.(N .LE. 6))GOTO 23025 BUF(N) = 32 23024 N=N+1 GOTO 23023 23025 CONTINUE BUF(N) = 0 CALL FOLD(BUF) CALL TBINST(BUF, NULL) GOTO 23021 23022 CONTINUE CALL CLOSE(FD) 23017 I=I+1 GOTO 23016 23018 CONTINUE RETURN END