SUBFILE: PLNFTM.FR @16:2 23-MAY-1979 <055> (1052) SUBROUTINE PLN (DUMMY) INTEGER INPTR INTEGER OUTPTR INTEGER INMAX INTEGER MAXTAB INTEGER MAXLIN INTEGER IFMAX INTEGER MAXLEV INTEGER LINENO INTEGER PAGE INTEGER CLINE INTEGER TLIMIT INTEGER LN INTEGER I, J, K INTEGER II, JJ, KK INTEGER LEXVAL INTEGER SLEN INTEGER LEVEL INTEGER LEN INTEGER INCHAN INTEGER OUTCHN INTEGER LPTCHN INTEGER TTICHN INTEGER TTOCHN INTEGER PROCCN INTEGER COMCHN INTEGER TABS (10) LOGICAL SKIPFL LOGICAL POFF LOGICAL FIRST INTEGER ISP INTEGER ICSTK (20) INTEGER IFSP INTEGER IFST (20) INTEGER LPSP INTEGER LPST (100) LOGICAL TSEEN INTEGER CHAR INTEGER CTEMP LOGICAL NEWFIL INTEGER COMPMS (11) INTEGER LSAVE (5) INTEGER PSAVE (5) INTEGER FFILE INTEGER EOF INTEGER LETTER INTEGER DIGIT INTEGER TAB INTEGER EOL INTEGER BLANK INTEGER QUOTE INTEGER GIZZY INTEGER LPAREN INTEGER RPAREN INTEGER AST INTEGER COMMA INTEGER PERIOD INTEGER SLASH INTEGER CHAR0 INTEGER CHAR1 INTEGER CHAR9 INTEGER SEMI INTEGER EQUAL INTEGER CHARA INTEGER CHARZ INTEGER BBLANK INTEGER UPAROW INTEGER DOOP INTEGER WHILE INTEGER ENDOP INTEGER FOR INTEGER DOLOOP INTEGER BREAK INTEGER NEXT INTEGER IFOP INTEGER ELSE INTEGER ENDIF INTEGER DEFINE INTEGER HEAD INTEGER EJECT INTEGER INCLUD INTEGER OUTFIL INTEGER IBUF (42) INTEGER PBUF (58) INTEGER HBUF (42) INTEGER OUTBUF (42) INTEGER BUF (58) INTEGER NAME (22) COMMON /STRN/ INPTR COMMON /STRN/ OUTPTR COMMON /STRN/ INMAX COMMON /STRN/ MAXTAB COMMON /STRN/ MAXLIN COMMON /STRN/ IFMAX COMMON /STRN/ MAXLEV COMMON /STRN/ LINENO COMMON /STRN/ PAGE COMMON /STRN/ CLINE COMMON /STRN/ TLIMIT COMMON /STRN/ LN COMMON /STRN/ I, J, K COMMON /STRN/ II, JJ, KK COMMON /STRN/ LEXVAL COMMON /STRN/ SLEN COMMON /STRN/ LEVEL COMMON /STRN/ LEN COMMON /STRN/ INCHAN COMMON /STRN/ OUTCHN COMMON /STRN/ LPTCHN COMMON /STRN/ TTICHN COMMON /STRN/ TTOCHN COMMON /STRN/ PROCCN COMMON /STRN/ COMCHN COMMON /STRN/ TABS COMMON /STRN/ SKIPFL COMMON /STRN/ POFF COMMON /STRN/ FIRST COMMON /STRN/ ISP COMMON /STRN/ ICSTK COMMON /STRN/ IFSP COMMON /STRN/ IFST COMMON /STRN/ LPSP COMMON /STRN/ LPST COMMON /STRN/ TSEEN COMMON /STRN/ CHAR COMMON /STRN/ CTEMP COMMON /STRN/ NEWFIL COMMON /STRN/ COMPMS COMMON /STRN/ LSAVE COMMON /STRN/ PSAVE COMMON /STRN/ FFILE COMMON /STRN/ EOF COMMON /STRN/ LETTER COMMON /STRN/ DIGIT COMMON /STRN/ TAB COMMON /STRN/ EOL COMMON /STRN/ BLANK COMMON /STRN/ QUOTE COMMON /STRN/ GIZZY COMMON /STRN/ LPAREN COMMON /STRN/ RPAREN COMMON /STRN/ AST COMMON /STRN/ COMMA COMMON /STRN/ PERIOD COMMON /STRN/ SLASH COMMON /STRN/ CHAR0 COMMON /STRN/ CHAR1 COMMON /STRN/ CHAR9 COMMON /STRN/ SEMI COMMON /STRN/ EQUAL COMMON /STRN/ CHARA COMMON /STRN/ CHARZ COMMON /STRN/ BBLANK COMMON /STRN/ UPAROW COMMON /STRN/ DOOP COMMON /STRN/ WHILE COMMON /STRN/ ENDOP COMMON /STRN/ FOR COMMON /STRN/ DOLOOP COMMON /STRN/ BREAK COMMON /STRN/ NEXT COMMON /STRN/ IFOP COMMON /STRN/ ELSE COMMON /STRN/ ENDIF COMMON /STRN/ DEFINE COMMON /STRN/ HEAD COMMON /STRN/ EJECT COMMON /STRN/ INCLUD COMMON /STRN/ OUTFIL COMMON /STRN/ IBUF COMMON /STRN/ PBUF COMMON /STRN/ HBUF COMMON /STRN/ OUTBUF COMMON /STRN/ BUF COMMON /STRN/ NAME INTEGER DUMMY, TS, GCHAR IF (OUTPTR .GT. 7) CALL PUTC (EOL) CALL SET (BBLANK, NAME, 3) CALL ESP (LN, NAME, 1, 5) DO 13020 TS = 1, 5 CALL PUTC (GCHAR (NAME, TS)) 13020 CONTINUE OUTPTR = 7 RETURN END \\\\\ SUBFILE: PSTRFT.FR @16:2 23-MAY-1979 <055> (1072) SUBROUTINE PSTR (STR) INTEGER INPTR INTEGER OUTPTR INTEGER INMAX INTEGER MAXTAB INTEGER MAXLIN INTEGER IFMAX INTEGER MAXLEV INTEGER LINENO INTEGER PAGE INTEGER CLINE INTEGER TLIMIT INTEGER LN INTEGER I, J, K INTEGER II, JJ, KK INTEGER LEXVAL INTEGER SLEN INTEGER LEVEL INTEGER LEN INTEGER INCHAN INTEGER OUTCHN INTEGER LPTCHN INTEGER TTICHN INTEGER TTOCHN INTEGER PROCCN INTEGER COMCHN INTEGER TABS (10) LOGICAL SKIPFL LOGICAL POFF LOGICAL FIRST INTEGER ISP INTEGER ICSTK (20) INTEGER IFSP INTEGER IFST (20) INTEGER LPSP INTEGER LPST (100) LOGICAL TSEEN INTEGER CHAR INTEGER CTEMP LOGICAL NEWFIL INTEGER COMPMS (11) INTEGER LSAVE (5) INTEGER PSAVE (5) INTEGER FFILE INTEGER EOF INTEGER LETTER INTEGER DIGIT INTEGER TAB INTEGER EOL INTEGER BLANK INTEGER QUOTE INTEGER GIZZY INTEGER LPAREN INTEGER RPAREN INTEGER AST INTEGER COMMA INTEGER PERIOD INTEGER SLASH INTEGER CHAR0 INTEGER CHAR1 INTEGER CHAR9 INTEGER SEMI INTEGER EQUAL INTEGER CHARA INTEGER CHARZ INTEGER BBLANK INTEGER UPAROW INTEGER DOOP INTEGER WHILE INTEGER ENDOP INTEGER FOR INTEGER DOLOOP INTEGER BREAK INTEGER NEXT INTEGER IFOP INTEGER ELSE INTEGER ENDIF INTEGER DEFINE INTEGER HEAD INTEGER EJECT INTEGER INCLUD INTEGER OUTFIL INTEGER IBUF (42) INTEGER PBUF (58) INTEGER HBUF (42) INTEGER OUTBUF (42) INTEGER BUF (58) INTEGER NAME (22) COMMON /STRN/ INPTR COMMON /STRN/ OUTPTR COMMON /STRN/ INMAX COMMON /STRN/ MAXTAB COMMON /STRN/ MAXLIN COMMON /STRN/ IFMAX COMMON /STRN/ MAXLEV COMMON /STRN/ LINENO COMMON /STRN/ PAGE COMMON /STRN/ CLINE COMMON /STRN/ TLIMIT COMMON /STRN/ LN COMMON /STRN/ I, J, K COMMON /STRN/ II, JJ, KK COMMON /STRN/ LEXVAL COMMON /STRN/ SLEN COMMON /STRN/ LEVEL COMMON /STRN/ LEN COMMON /STRN/ INCHAN COMMON /STRN/ OUTCHN COMMON /STRN/ LPTCHN COMMON /STRN/ TTICHN COMMON /STRN/ TTOCHN COMMON /STRN/ PROCCN COMMON /STRN/ COMCHN COMMON /STRN/ TABS COMMON /STRN/ SKIPFL COMMON /STRN/ POFF COMMON /STRN/ FIRST COMMON /STRN/ ISP COMMON /STRN/ ICSTK COMMON /STRN/ IFSP COMMON /STRN/ IFST COMMON /STRN/ LPSP COMMON /STRN/ LPST COMMON /STRN/ TSEEN COMMON /STRN/ CHAR COMMON /STRN/ CTEMP COMMON /STRN/ NEWFIL COMMON /STRN/ COMPMS COMMON /STRN/ LSAVE COMMON /STRN/ PSAVE COMMON /STRN/ FFILE COMMON /STRN/ EOF COMMON /STRN/ LETTER COMMON /STRN/ DIGIT COMMON /STRN/ TAB COMMON /STRN/ EOL COMMON /STRN/ BLANK COMMON /STRN/ QUOTE COMMON /STRN/ GIZZY COMMON /STRN/ LPAREN COMMON /STRN/ RPAREN COMMON /STRN/ AST COMMON /STRN/ COMMA COMMON /STRN/ PERIOD COMMON /STRN/ SLASH COMMON /STRN/ CHAR0 COMMON /STRN/ CHAR1 COMMON /STRN/ CHAR9 COMMON /STRN/ SEMI COMMON /STRN/ EQUAL COMMON /STRN/ CHARA COMMON /STRN/ CHARZ COMMON /STRN/ BBLANK COMMON /STRN/ UPAROW COMMON /STRN/ DOOP COMMON /STRN/ WHILE COMMON /STRN/ ENDOP COMMON /STRN/ FOR COMMON /STRN/ DOLOOP COMMON /STRN/ BREAK COMMON /STRN/ NEXT COMMON /STRN/ IFOP COMMON /STRN/ ELSE COMMON /STRN/ ENDIF COMMON /STRN/ DEFINE COMMON /STRN/ HEAD COMMON /STRN/ EJECT COMMON /STRN/ INCLUD COMMON /STRN/ OUTFIL COMMON /STRN/ IBUF COMMON /STRN/ PBUF COMMON /STRN/ HBUF COMMON /STRN/ OUTBUF COMMON /STRN/ BUF COMMON /STRN/ NAME INTEGER STR(80), III, GCHAR DO 13022 III = 1, 80 CHAR = GCHAR (STR, III) IF (.NOT. (CHAR .NE. SLASH))GO TO 13024 IF (.NOT. (CHAR .EQ. SEMI))GO TO 13026 CALL PUTC (EOL) GO TO 13027 13026 CONTINUE CALL PUTC (CHAR) 13027 CONTINUE 13022 CONTINUE 13024 CONTINUE RETURN END \\\\\ SUBFILE: GOLNFT.FR @16:2 23-MAY-1979 <055> (1060) SUBROUTINE GOLN (DUMMY) INTEGER INPTR INTEGER OUTPTR INTEGER INMAX INTEGER MAXTAB INTEGER MAXLIN INTEGER IFMAX INTEGER MAXLEV INTEGER LINENO INTEGER PAGE INTEGER CLINE INTEGER TLIMIT INTEGER LN INTEGER I, J, K INTEGER II, JJ, KK INTEGER LEXVAL INTEGER SLEN INTEGER LEVEL INTEGER LEN INTEGER INCHAN INTEGER OUTCHN INTEGER LPTCHN INTEGER TTICHN INTEGER TTOCHN INTEGER PROCCN INTEGER COMCHN INTEGER TABS (10) LOGICAL SKIPFL LOGICAL POFF LOGICAL FIRST INTEGER ISP INTEGER ICSTK (20) INTEGER IFSP INTEGER IFST (20) INTEGER LPSP INTEGER LPST (100) LOGICAL TSEEN INTEGER CHAR INTEGER CTEMP LOGICAL NEWFIL INTEGER COMPMS (11) INTEGER LSAVE (5) INTEGER PSAVE (5) INTEGER FFILE INTEGER EOF INTEGER LETTER INTEGER DIGIT INTEGER TAB INTEGER EOL INTEGER BLANK INTEGER QUOTE INTEGER GIZZY INTEGER LPAREN INTEGER RPAREN INTEGER AST INTEGER COMMA INTEGER PERIOD INTEGER SLASH INTEGER CHAR0 INTEGER CHAR1 INTEGER CHAR9 INTEGER SEMI INTEGER EQUAL INTEGER CHARA INTEGER CHARZ INTEGER BBLANK INTEGER UPAROW INTEGER DOOP INTEGER WHILE INTEGER ENDOP INTEGER FOR INTEGER DOLOOP INTEGER BREAK INTEGER NEXT INTEGER IFOP INTEGER ELSE INTEGER ENDIF INTEGER DEFINE INTEGER HEAD INTEGER EJECT INTEGER INCLUD INTEGER OUTFIL INTEGER IBUF (42) INTEGER PBUF (58) INTEGER HBUF (42) INTEGER OUTBUF (42) INTEGER BUF (58) INTEGER NAME (22) COMMON /STRN/ INPTR COMMON /STRN/ OUTPTR COMMON /STRN/ INMAX COMMON /STRN/ MAXTAB COMMON /STRN/ MAXLIN COMMON /STRN/ IFMAX COMMON /STRN/ MAXLEV COMMON /STRN/ LINENO COMMON /STRN/ PAGE COMMON /STRN/ CLINE COMMON /STRN/ TLIMIT COMMON /STRN/ LN COMMON /STRN/ I, J, K COMMON /STRN/ II, JJ, KK COMMON /STRN/ LEXVAL COMMON /STRN/ SLEN COMMON /STRN/ LEVEL COMMON /STRN/ LEN COMMON /STRN/ INCHAN COMMON /STRN/ OUTCHN COMMON /STRN/ LPTCHN COMMON /STRN/ TTICHN COMMON /STRN/ TTOCHN COMMON /STRN/ PROCCN COMMON /STRN/ COMCHN COMMON /STRN/ TABS COMMON /STRN/ SKIPFL COMMON /STRN/ POFF COMMON /STRN/ FIRST COMMON /STRN/ ISP COMMON /STRN/ ICSTK COMMON /STRN/ IFSP COMMON /STRN/ IFST COMMON /STRN/ LPSP COMMON /STRN/ LPST COMMON /STRN/ TSEEN COMMON /STRN/ CHAR COMMON /STRN/ CTEMP COMMON /STRN/ NEWFIL COMMON /STRN/ COMPMS COMMON /STRN/ LSAVE COMMON /STRN/ PSAVE COMMON /STRN/ FFILE COMMON /STRN/ EOF COMMON /STRN/ LETTER COMMON /STRN/ DIGIT COMMON /STRN/ TAB COMMON /STRN/ EOL COMMON /STRN/ BLANK COMMON /STRN/ QUOTE COMMON /STRN/ GIZZY COMMON /STRN/ LPAREN COMMON /STRN/ RPAREN COMMON /STRN/ AST COMMON /STRN/ COMMA COMMON /STRN/ PERIOD COMMON /STRN/ SLASH COMMON /STRN/ CHAR0 COMMON /STRN/ CHAR1 COMMON /STRN/ CHAR9 COMMON /STRN/ SEMI COMMON /STRN/ EQUAL COMMON /STRN/ CHARA COMMON /STRN/ CHARZ COMMON /STRN/ BBLANK COMMON /STRN/ UPAROW COMMON /STRN/ DOOP COMMON /STRN/ WHILE COMMON /STRN/ ENDOP COMMON /STRN/ FOR COMMON /STRN/ DOLOOP COMMON /STRN/ BREAK COMMON /STRN/ NEXT COMMON /STRN/ IFOP COMMON /STRN/ ELSE COMMON /STRN/ ENDIF COMMON /STRN/ DEFINE COMMON /STRN/ HEAD COMMON /STRN/ EJECT COMMON /STRN/ INCLUD COMMON /STRN/ OUTFIL COMMON /STRN/ IBUF COMMON /STRN/ PBUF COMMON /STRN/ HBUF COMMON /STRN/ OUTBUF COMMON /STRN/ BUF COMMON /STRN/ NAME INTEGER DUMMY, GOMSG (4), GCHAR DATA GOMSG /'GO',' T','O ','/'/ CALL PSTR (GOMSG) CALL SET (BBLANK, NAME, 3) CALL ESP (LN, NAME, 1, 5) DO 13028 II = 1, 5 CALL PUTC (GCHAR (NAME, II)) 13028 CONTINUE CALL PUTC (EOL) RETURN END \\\\\ SUBFILE: LNCONT.FR @16:2 23-MAY-1979 <055> (1017) SUBROUTINE LNCONT (DUMMY) INTEGER INPTR INTEGER OUTPTR INTEGER INMAX INTEGER MAXTAB INTEGER MAXLIN INTEGER IFMAX INTEGER MAXLEV INTEGER LINENO INTEGER PAGE INTEGER CLINE INTEGER TLIMIT INTEGER LN INTEGER I, J, K INTEGER II, JJ, KK INTEGER LEXVAL INTEGER SLEN INTEGER LEVEL INTEGER LEN INTEGER INCHAN INTEGER OUTCHN INTEGER LPTCHN INTEGER TTICHN INTEGER TTOCHN INTEGER PROCCN INTEGER COMCHN INTEGER TABS (10) LOGICAL SKIPFL LOGICAL POFF LOGICAL FIRST INTEGER ISP INTEGER ICSTK (20) INTEGER IFSP INTEGER IFST (20) INTEGER LPSP INTEGER LPST (100) LOGICAL TSEEN INTEGER CHAR INTEGER CTEMP LOGICAL NEWFIL INTEGER COMPMS (11) INTEGER LSAVE (5) INTEGER PSAVE (5) INTEGER FFILE INTEGER EOF INTEGER LETTER INTEGER DIGIT INTEGER TAB INTEGER EOL INTEGER BLANK INTEGER QUOTE INTEGER GIZZY INTEGER LPAREN INTEGER RPAREN INTEGER AST INTEGER COMMA INTEGER PERIOD INTEGER SLASH INTEGER CHAR0 INTEGER CHAR1 INTEGER CHAR9 INTEGER SEMI INTEGER EQUAL INTEGER CHARA INTEGER CHARZ INTEGER BBLANK INTEGER UPAROW INTEGER DOOP INTEGER WHILE INTEGER ENDOP INTEGER FOR INTEGER DOLOOP INTEGER BREAK INTEGER NEXT INTEGER IFOP INTEGER ELSE INTEGER ENDIF INTEGER DEFINE INTEGER HEAD INTEGER EJECT INTEGER INCLUD INTEGER OUTFIL INTEGER IBUF (42) INTEGER PBUF (58) INTEGER HBUF (42) INTEGER OUTBUF (42) INTEGER BUF (58) INTEGER NAME (22) COMMON /STRN/ INPTR COMMON /STRN/ OUTPTR COMMON /STRN/ INMAX COMMON /STRN/ MAXTAB COMMON /STRN/ MAXLIN COMMON /STRN/ IFMAX COMMON /STRN/ MAXLEV COMMON /STRN/ LINENO COMMON /STRN/ PAGE COMMON /STRN/ CLINE COMMON /STRN/ TLIMIT COMMON /STRN/ LN COMMON /STRN/ I, J, K COMMON /STRN/ II, JJ, KK COMMON /STRN/ LEXVAL COMMON /STRN/ SLEN COMMON /STRN/ LEVEL COMMON /STRN/ LEN COMMON /STRN/ INCHAN COMMON /STRN/ OUTCHN COMMON /STRN/ LPTCHN COMMON /STRN/ TTICHN COMMON /STRN/ TTOCHN COMMON /STRN/ PROCCN COMMON /STRN/ COMCHN COMMON /STRN/ TABS COMMON /STRN/ SKIPFL COMMON /STRN/ POFF COMMON /STRN/ FIRST COMMON /STRN/ ISP COMMON /STRN/ ICSTK COMMON /STRN/ IFSP COMMON /STRN/ IFST COMMON /STRN/ LPSP COMMON /STRN/ LPST COMMON /STRN/ TSEEN COMMON /STRN/ CHAR COMMON /STRN/ CTEMP COMMON /STRN/ NEWFIL COMMON /STRN/ COMPMS COMMON /STRN/ LSAVE COMMON /STRN/ PSAVE COMMON /STRN/ FFILE COMMON /STRN/ EOF COMMON /STRN/ LETTER COMMON /STRN/ DIGIT COMMON /STRN/ TAB COMMON /STRN/ EOL COMMON /STRN/ BLANK COMMON /STRN/ QUOTE COMMON /STRN/ GIZZY COMMON /STRN/ LPAREN COMMON /STRN/ RPAREN COMMON /STRN/ AST COMMON /STRN/ COMMA COMMON /STRN/ PERIOD COMMON /STRN/ SLASH COMMON /STRN/ CHAR0 COMMON /STRN/ CHAR1 COMMON /STRN/ CHAR9 COMMON /STRN/ SEMI COMMON /STRN/ EQUAL COMMON /STRN/ CHARA COMMON /STRN/ CHARZ COMMON /STRN/ BBLANK COMMON /STRN/ UPAROW COMMON /STRN/ DOOP COMMON /STRN/ WHILE COMMON /STRN/ ENDOP COMMON /STRN/ FOR COMMON /STRN/ DOLOOP COMMON /STRN/ BREAK COMMON /STRN/ NEXT COMMON /STRN/ IFOP COMMON /STRN/ ELSE COMMON /STRN/ ENDIF COMMON /STRN/ DEFINE COMMON /STRN/ HEAD COMMON /STRN/ EJECT COMMON /STRN/ INCLUD COMMON /STRN/ OUTFIL COMMON /STRN/ IBUF COMMON /STRN/ PBUF COMMON /STRN/ HBUF COMMON /STRN/ OUTBUF COMMON /STRN/ BUF COMMON /STRN/ NAME INTEGER DUMMY CALL PLN (LN) CALL PSTR ('CONTINUE;/') RETURN END \\\\\ SUBFILE: CPAREN.FR @16:2 23-MAY-1979 <055> (1228) SUBROUTINE CPAREN INTEGER INPTR INTEGER OUTPTR INTEGER INMAX INTEGER MAXTAB INTEGER MAXLIN INTEGER IFMAX INTEGER MAXLEV INTEGER LINENO INTEGER PAGE INTEGER CLINE INTEGER TLIMIT INTEGER LN INTEGER I, J, K INTEGER II, JJ, KK INTEGER LEXVAL INTEGER SLEN INTEGER LEVEL INTEGER LEN INTEGER INCHAN INTEGER OUTCHN INTEGER LPTCHN INTEGER TTICHN INTEGER TTOCHN INTEGER PROCCN INTEGER COMCHN INTEGER TABS (10) LOGICAL SKIPFL LOGICAL POFF LOGICAL FIRST INTEGER ISP INTEGER ICSTK (20) INTEGER IFSP INTEGER IFST (20) INTEGER LPSP INTEGER LPST (100) LOGICAL TSEEN INTEGER CHAR INTEGER CTEMP LOGICAL NEWFIL INTEGER COMPMS (11) INTEGER LSAVE (5) INTEGER PSAVE (5) INTEGER FFILE INTEGER EOF INTEGER LETTER INTEGER DIGIT INTEGER TAB INTEGER EOL INTEGER BLANK INTEGER QUOTE INTEGER GIZZY INTEGER LPAREN INTEGER RPAREN INTEGER AST INTEGER COMMA INTEGER PERIOD INTEGER SLASH INTEGER CHAR0 INTEGER CHAR1 INTEGER CHAR9 INTEGER SEMI INTEGER EQUAL INTEGER CHARA INTEGER CHARZ INTEGER BBLANK INTEGER UPAROW INTEGER DOOP INTEGER WHILE INTEGER ENDOP INTEGER FOR INTEGER DOLOOP INTEGER BREAK INTEGER NEXT INTEGER IFOP INTEGER ELSE INTEGER ENDIF INTEGER DEFINE INTEGER HEAD INTEGER EJECT INTEGER INCLUD INTEGER OUTFIL INTEGER IBUF (42) INTEGER PBUF (58) INTEGER HBUF (42) INTEGER OUTBUF (42) INTEGER BUF (58) INTEGER NAME (22) COMMON /STRN/ INPTR COMMON /STRN/ OUTPTR COMMON /STRN/ INMAX COMMON /STRN/ MAXTAB COMMON /STRN/ MAXLIN COMMON /STRN/ IFMAX COMMON /STRN/ MAXLEV COMMON /STRN/ LINENO COMMON /STRN/ PAGE COMMON /STRN/ CLINE COMMON /STRN/ TLIMIT COMMON /STRN/ LN COMMON /STRN/ I, J, K COMMON /STRN/ II, JJ, KK COMMON /STRN/ LEXVAL COMMON /STRN/ SLEN COMMON /STRN/ LEVEL COMMON /STRN/ LEN COMMON /STRN/ INCHAN COMMON /STRN/ OUTCHN COMMON /STRN/ LPTCHN COMMON /STRN/ TTICHN COMMON /STRN/ TTOCHN COMMON /STRN/ PROCCN COMMON /STRN/ COMCHN COMMON /STRN/ TABS COMMON /STRN/ SKIPFL COMMON /STRN/ POFF COMMON /STRN/ FIRST COMMON /STRN/ ISP COMMON /STRN/ ICSTK COMMON /STRN/ IFSP COMMON /STRN/ IFST COMMON /STRN/ LPSP COMMON /STRN/ LPST COMMON /STRN/ TSEEN COMMON /STRN/ CHAR COMMON /STRN/ CTEMP COMMON /STRN/ NEWFIL COMMON /STRN/ COMPMS COMMON /STRN/ LSAVE COMMON /STRN/ PSAVE COMMON /STRN/ FFILE COMMON /STRN/ EOF COMMON /STRN/ LETTER COMMON /STRN/ DIGIT COMMON /STRN/ TAB COMMON /STRN/ EOL COMMON /STRN/ BLANK COMMON /STRN/ QUOTE COMMON /STRN/ GIZZY COMMON /STRN/ LPAREN COMMON /STRN/ RPAREN COMMON /STRN/ AST COMMON /STRN/ COMMA COMMON /STRN/ PERIOD COMMON /STRN/ SLASH COMMON /STRN/ CHAR0 COMMON /STRN/ CHAR1 COMMON /STRN/ CHAR9 COMMON /STRN/ SEMI COMMON /STRN/ EQUAL COMMON /STRN/ CHARA COMMON /STRN/ CHARZ COMMON /STRN/ BBLANK COMMON /STRN/ UPAROW COMMON /STRN/ DOOP COMMON /STRN/ WHILE COMMON /STRN/ ENDOP COMMON /STRN/ FOR COMMON /STRN/ DOLOOP COMMON /STRN/ BREAK COMMON /STRN/ NEXT COMMON /STRN/ IFOP COMMON /STRN/ ELSE COMMON /STRN/ ENDIF COMMON /STRN/ DEFINE COMMON /STRN/ HEAD COMMON /STRN/ EJECT COMMON /STRN/ INCLUD COMMON /STRN/ OUTFIL COMMON /STRN/ IBUF COMMON /STRN/ PBUF COMMON /STRN/ HBUF COMMON /STRN/ OUTBUF COMMON /STRN/ BUF COMMON /STRN/ NAME INTEGER PCOUNT, GETC PCOUNT = 1 CONTINUE 13030 CONTINUE CHAR = GETC (CHAR) IF (.NOT.(CHAR .NE. LPAREN))GO TO 13031 IF (.NOT. (CHAR .EQ. EOL))GO TO 13032 CALL REMARK ('INVALID STRAN SYNTAX.') RETURN 13032 CONTINUE GO TO 13030 13031 CONTINUE CONTINUE 13034 CONTINUE CALL PUTC (CHAR) IF (.NOT.(PCOUNT .GT. 0))GO TO 13035 CHAR = GETC (CHAR) IF (.NOT. (CHAR .EQ. RPAREN))GO TO 13036 PCOUNT = PCOUNT - 1 GO TO 13037 13036 CONTINUE IF (.NOT. (CHAR .EQ. LPAREN))GO TO 13038 PCOUNT = PCOUNT + 1 GO TO 13039 13038 CONTINUE IF (.NOT. (CHAR .EQ. EOL))GO TO 13040 13044 IF (.NOT.(PCOUNT .GT. 0))GO TO 13043 CALL PUTC (RPAREN) PCOUNT = PCOUNT - 1 GO TO 13044 13043 CONTINUE CALL REMARK ('UNBALANCED PARENS.') CALL PUTBAK (EOL) RETURN 13040 CONTINUE 13039 CONTINUE 13037 CONTINUE GO TO 13034 13035 CONTINUE RETURN END \\\\\ SUBFILE: LABGEN.FR @16:2 23-MAY-1979 <055> (1024) INTEGER FUNCTION LABGEN (NUM) INTEGER INPTR INTEGER OUTPTR INTEGER INMAX INTEGER MAXTAB INTEGER MAXLIN INTEGER IFMAX INTEGER MAXLEV INTEGER LINENO INTEGER PAGE INTEGER CLINE INTEGER TLIMIT INTEGER LN INTEGER I, J, K INTEGER II, JJ, KK INTEGER LEXVAL INTEGER SLEN INTEGER LEVEL INTEGER LEN INTEGER INCHAN INTEGER OUTCHN INTEGER LPTCHN INTEGER TTICHN INTEGER TTOCHN INTEGER PROCCN INTEGER COMCHN INTEGER TABS (10) LOGICAL SKIPFL LOGICAL POFF LOGICAL FIRST INTEGER ISP INTEGER ICSTK (20) INTEGER IFSP INTEGER IFST (20) INTEGER LPSP INTEGER LPST (100) LOGICAL TSEEN INTEGER CHAR INTEGER CTEMP LOGICAL NEWFIL INTEGER COMPMS (11) INTEGER LSAVE (5) INTEGER PSAVE (5) INTEGER FFILE INTEGER EOF INTEGER LETTER INTEGER DIGIT INTEGER TAB INTEGER EOL INTEGER BLANK INTEGER QUOTE INTEGER GIZZY INTEGER LPAREN INTEGER RPAREN INTEGER AST INTEGER COMMA INTEGER PERIOD INTEGER SLASH INTEGER CHAR0 INTEGER CHAR1 INTEGER CHAR9 INTEGER SEMI INTEGER EQUAL INTEGER CHARA INTEGER CHARZ INTEGER BBLANK INTEGER UPAROW INTEGER DOOP INTEGER WHILE INTEGER ENDOP INTEGER FOR INTEGER DOLOOP INTEGER BREAK INTEGER NEXT INTEGER IFOP INTEGER ELSE INTEGER ENDIF INTEGER DEFINE INTEGER HEAD INTEGER EJECT INTEGER INCLUD INTEGER OUTFIL INTEGER IBUF (42) INTEGER PBUF (58) INTEGER HBUF (42) INTEGER OUTBUF (42) INTEGER BUF (58) INTEGER NAME (22) COMMON /STRN/ INPTR COMMON /STRN/ OUTPTR COMMON /STRN/ INMAX COMMON /STRN/ MAXTAB COMMON /STRN/ MAXLIN COMMON /STRN/ IFMAX COMMON /STRN/ MAXLEV COMMON /STRN/ LINENO COMMON /STRN/ PAGE COMMON /STRN/ CLINE COMMON /STRN/ TLIMIT COMMON /STRN/ LN COMMON /STRN/ I, J, K COMMON /STRN/ II, JJ, KK COMMON /STRN/ LEXVAL COMMON /STRN/ SLEN COMMON /STRN/ LEVEL COMMON /STRN/ LEN COMMON /STRN/ INCHAN COMMON /STRN/ OUTCHN COMMON /STRN/ LPTCHN COMMON /STRN/ TTICHN COMMON /STRN/ TTOCHN COMMON /STRN/ PROCCN COMMON /STRN/ COMCHN COMMON /STRN/ TABS COMMON /STRN/ SKIPFL COMMON /STRN/ POFF COMMON /STRN/ FIRST COMMON /STRN/ ISP COMMON /STRN/ ICSTK COMMON /STRN/ IFSP COMMON /STRN/ IFST COMMON /STRN/ LPSP COMMON /STRN/ LPST COMMON /STRN/ TSEEN COMMON /STRN/ CHAR COMMON /STRN/ CTEMP COMMON /STRN/ NEWFIL COMMON /STRN/ COMPMS COMMON /STRN/ LSAVE COMMON /STRN/ PSAVE COMMON /STRN/ FFILE COMMON /STRN/ EOF COMMON /STRN/ LETTER COMMON /STRN/ DIGIT COMMON /STRN/ TAB COMMON /STRN/ EOL COMMON /STRN/ BLANK COMMON /STRN/ QUOTE COMMON /STRN/ GIZZY COMMON /STRN/ LPAREN COMMON /STRN/ RPAREN COMMON /STRN/ AST COMMON /STRN/ COMMA COMMON /STRN/ PERIOD COMMON /STRN/ SLASH COMMON /STRN/ CHAR0 COMMON /STRN/ CHAR1 COMMON /STRN/ CHAR9 COMMON /STRN/ SEMI COMMON /STRN/ EQUAL COMMON /STRN/ CHARA COMMON /STRN/ CHARZ COMMON /STRN/ BBLANK COMMON /STRN/ UPAROW COMMON /STRN/ DOOP COMMON /STRN/ WHILE COMMON /STRN/ ENDOP COMMON /STRN/ FOR COMMON /STRN/ DOLOOP COMMON /STRN/ BREAK COMMON /STRN/ NEXT COMMON /STRN/ IFOP COMMON /STRN/ ELSE COMMON /STRN/ ENDIF COMMON /STRN/ DEFINE COMMON /STRN/ HEAD COMMON /STRN/ EJECT COMMON /STRN/ INCLUD COMMON /STRN/ OUTFIL COMMON /STRN/ IBUF COMMON /STRN/ PBUF COMMON /STRN/ HBUF COMMON /STRN/ OUTBUF COMMON /STRN/ BUF COMMON /STRN/ NAME INTEGER LABEL, NUM DATA LABEL /13000/ LABGEN = LABEL LABEL = LABEL + NUM RETURN END \\\\\ SUBFILE: PARSEF.FR @16:2 23-MAY-1979 <055> (3124) SUBROUTINE PARSE INTEGER INPTR INTEGER OUTPTR INTEGER INMAX INTEGER MAXTAB INTEGER MAXLIN INTEGER IFMAX INTEGER MAXLEV INTEGER LINENO INTEGER PAGE INTEGER CLINE INTEGER TLIMIT INTEGER LN INTEGER I, J, K INTEGER II, JJ, KK INTEGER LEXVAL INTEGER SLEN INTEGER LEVEL INTEGER LEN INTEGER INCHAN INTEGER OUTCHN INTEGER LPTCHN INTEGER TTICHN INTEGER TTOCHN INTEGER PROCCN INTEGER COMCHN INTEGER TABS (10) LOGICAL SKIPFL LOGICAL POFF LOGICAL FIRST INTEGER ISP INTEGER ICSTK (20) INTEGER IFSP INTEGER IFST (20) INTEGER LPSP INTEGER LPST (100) LOGICAL TSEEN INTEGER CHAR INTEGER CTEMP LOGICAL NEWFIL INTEGER COMPMS (11) INTEGER LSAVE (5) INTEGER PSAVE (5) INTEGER FFILE INTEGER EOF INTEGER LETTER INTEGER DIGIT INTEGER TAB INTEGER EOL INTEGER BLANK INTEGER QUOTE INTEGER GIZZY INTEGER LPAREN INTEGER RPAREN INTEGER AST INTEGER COMMA INTEGER PERIOD INTEGER SLASH INTEGER CHAR0 INTEGER CHAR1 INTEGER CHAR9 INTEGER SEMI INTEGER EQUAL INTEGER CHARA INTEGER CHARZ INTEGER BBLANK INTEGER UPAROW INTEGER DOOP INTEGER WHILE INTEGER ENDOP INTEGER FOR INTEGER DOLOOP INTEGER BREAK INTEGER NEXT INTEGER IFOP INTEGER ELSE INTEGER ENDIF INTEGER DEFINE INTEGER HEAD INTEGER EJECT INTEGER INCLUD INTEGER OUTFIL INTEGER IBUF (42) INTEGER PBUF (58) INTEGER HBUF (42) INTEGER OUTBUF (42) INTEGER BUF (58) INTEGER NAME (22) COMMON /STRN/ INPTR COMMON /STRN/ OUTPTR COMMON /STRN/ INMAX COMMON /STRN/ MAXTAB COMMON /STRN/ MAXLIN COMMON /STRN/ IFMAX COMMON /STRN/ MAXLEV COMMON /STRN/ LINENO COMMON /STRN/ PAGE COMMON /STRN/ CLINE COMMON /STRN/ TLIMIT COMMON /STRN/ LN COMMON /STRN/ I, J, K COMMON /STRN/ II, JJ, KK COMMON /STRN/ LEXVAL COMMON /STRN/ SLEN COMMON /STRN/ LEVEL COMMON /STRN/ LEN COMMON /STRN/ INCHAN COMMON /STRN/ OUTCHN COMMON /STRN/ LPTCHN COMMON /STRN/ TTICHN COMMON /STRN/ TTOCHN COMMON /STRN/ PROCCN COMMON /STRN/ COMCHN COMMON /STRN/ TABS COMMON /STRN/ SKIPFL COMMON /STRN/ POFF COMMON /STRN/ FIRST COMMON /STRN/ ISP COMMON /STRN/ ICSTK COMMON /STRN/ IFSP COMMON /STRN/ IFST COMMON /STRN/ LPSP COMMON /STRN/ LPST COMMON /STRN/ TSEEN COMMON /STRN/ CHAR COMMON /STRN/ CTEMP COMMON /STRN/ NEWFIL COMMON /STRN/ COMPMS COMMON /STRN/ LSAVE COMMON /STRN/ PSAVE COMMON /STRN/ FFILE COMMON /STRN/ EOF COMMON /STRN/ LETTER COMMON /STRN/ DIGIT COMMON /STRN/ TAB COMMON /STRN/ EOL COMMON /STRN/ BLANK COMMON /STRN/ QUOTE COMMON /STRN/ GIZZY COMMON /STRN/ LPAREN COMMON /STRN/ RPAREN COMMON /STRN/ AST COMMON /STRN/ COMMA COMMON /STRN/ PERIOD COMMON /STRN/ SLASH COMMON /STRN/ CHAR0 COMMON /STRN/ CHAR1 COMMON /STRN/ CHAR9 COMMON /STRN/ SEMI COMMON /STRN/ EQUAL COMMON /STRN/ CHARA COMMON /STRN/ CHARZ COMMON /STRN/ BBLANK COMMON /STRN/ UPAROW COMMON /STRN/ DOOP COMMON /STRN/ WHILE COMMON /STRN/ ENDOP COMMON /STRN/ FOR COMMON /STRN/ DOLOOP COMMON /STRN/ BREAK COMMON /STRN/ NEXT COMMON /STRN/ IFOP COMMON /STRN/ ELSE COMMON /STRN/ ENDIF COMMON /STRN/ DEFINE COMMON /STRN/ HEAD COMMON /STRN/ EJECT COMMON /STRN/ INCLUD COMMON /STRN/ OUTFIL COMMON /STRN/ IBUF COMMON /STRN/ PBUF COMMON /STRN/ HBUF COMMON /STRN/ OUTBUF COMMON /STRN/ BUF COMMON /STRN/ NAME INTEGER LEX, LEXTMP, LABGEN, INLEN INTEGER CHARC, CHARD, CHARP, CHARX, CHARN INTEGER GCHAR, GETC INTEGER EXTN (5) DATA CHARC /67/, CHARD /68/, CHARP /80/, CHARX /88/ DATA CHARN /78/ DATA EXTN /'.F','R/','NO','TR',' '/ IFSP = 1 LPSP = 1 10 CONTINUE 13045 CONTINUE LEXVAL = LEX (CHAR) IF (.NOT.(CHAR .NE. EOF))GO TO 13046 IF (.NOT. (CHAR .EQ. EOL))GO TO 13047 GO TO 13045 13047 CONTINUE IF (.NOT. (LEXVAL .EQ. LETTER))GO TO 13049 IF (.NOT. (INPTR .EQ. 2))GO TO 13051 IF (.NOT. (CHAR .EQ. CHARX .OR. CHAR .EQ. CHARD))GO TO 13053 CALL PUTC (CHARD) GO TO 13045 13053 CONTINUE IF (.NOT. (CHAR .EQ. CHARN))GO TO 13055 CALL IGNORE GO TO 13045 13055 CONTINUE IF (.NOT. (CHAR .EQ. CHARP))GO TO 13057 GO TO 13045 13057 CONTINUE 13051 CONTINUE CALL PUTBAK (CHAR) IF (.NOT. (CHAR .NE. CHARC .OR. INPTR .NE. 2))GO TO 13059 CALL LSTART CALL ENDLIN GO TO 13060 13059 CONTINUE CALL IGNORE 13060 CONTINUE GO TO 13045 13049 CONTINUE IF (.NOT. (LEXVAL .EQ. DIGIT))GO TO 13061 CALL COPYLN GO TO 13045 13061 CONTINUE LEXTMP = LEXVAL - 99 IF (.NOT. (LEXTMP .GT. 0 .AND. LEXTMP .LT. 16))GO TO 13063 GOTO (100, 100, 200, 100, 100, 300, 300, 400, 500, 600, 700, 800, 1900, 1000, 1100) LEXTMP GO TO 13064 13063 CONTINUE 700 CALL IGNORE 13064 CONTINUE GO TO 13045 13046 CONTINUE IF (LEVEL .NE. 1) GOTO 1050 IF (.NOT. (IFSP .NE. 1))GO TO 13065 CALL REMARK ('IF STACK NOT CLEARED.') 13065 CONTINUE IF (.NOT. (LPSP .NE. 1))GO TO 13067 CALL REMARK ('LOOP STACK NOT CLEARED.') 13067 CONTINUE IF (.NOT. (IAND (PAGE, 1) .NE. 0))GO TO 13069 CALL SET (BBLANK, IBUF, 40) CLINE = MAXLIN + 1 CALL PRINT 13069 CONTINUE RETURN 30 CALL ENDLIN GOTO 10 100 IF (.NOT. (LEXVAL .EQ. WHILE))GO TO 13071 IF (.NOT. (LPST (LPSP) .EQ. DOOP))GO TO 13073 CONTINUE 13075 CONTINUE CALL LSTART LPST (LPSP) = WHILE LPST (LPSP + 2) = 1 CALL PSTR ('IF (.NOT./') CALL CPAREN CALL PSTR (')/') LN = LPST (LPSP + 1) + 1 CALL GOLN (LN) GOTO 30 GO TO 13074 13073 CONTINUE CALL REMARK ('WHILE WITHOUT DO.') CALL LSTART LPSP = LPSP + 3 CALL PSTR ('CONTINUE;/') LN = LABGEN (2) CALL LNCONT (LN) LPST (LPSP + 1) = LN GO TO 13075 13074 CONTINUE 13071 CONTINUE LPSP = LPSP + 3 IF (.NOT. (LEXVAL .EQ. FOR))GO TO 13077 KK = 1 CALL COPYTO (NAME, KK, LPAREN) CALL SKIPBL CALL LSTART CALL COPYTO (OUTBUF, OUTPTR, SEMI) CALL PUTC (EOL) LN = LABGEN (3) + 2 CALL PLN (LN) CALL PSTR ('IF (.NOT.(/') CALL SKIPBL CALL COPYTO (OUTBUF, OUTPTR, SEMI) CALL PSTR ('))/') LN = LN - 1 CALL GOLN (LN) KK = LPSP*2 - 1 CALL SKIPBL CALL COPYTO (LPST, KK, RPAREN) LPSP = LPSP + (SLEN + 1)/2 LPST (LPSP) = SLEN LPSP = LPSP + 1 LN = LN - 1 GO TO 13078 13077 CONTINUE IF (.NOT. (LEXVAL .EQ. DOLOOP))GO TO 13079 LN = LABGEN (2) CALL LSTART CALL PSTR ('DO /') CALL ESP (LN, OUTBUF, OUTPTR, OUTPTR + 5) OUTPTR = OUTPTR + 6 GO TO 13080 13079 CONTINUE IF (.NOT. (LEXVAL .EQ. DOOP))GO TO 13081 CALL LSTART LN = LABGEN (2) CALL PSTR ('CONTINUE;/') CALL LNCONT (LN) 13081 CONTINUE 13080 CONTINUE 13078 CONTINUE LPST (LPSP) = LEXVAL LPST (LPSP + 1) = LN LPST (LPSP + 2) = 0 GOTO 30 200 IF (.NOT. (LPSP .EQ. 1))GO TO 13083 CALL REMARK ('MISPLACED END OF LOOP.') GOTO 30 13083 CONTINUE IF (.NOT. (LPST (LPSP) .EQ. DOOP .OR. LPST (LPSP) .EQ. WHILE))GO T 1O 13085 LN = LPST (LPSP + 1) CALL LSTART CALL GOLN (LN) IF (.NOT. (LPST (LPSP + 2) .NE. 0))GO TO 13087 LN = LN + 1 CALL LNCONT (LN) 13087 CONTINUE LPSP = LPSP - 3 GOTO 30 13085 CONTINUE IF (.NOT. (LPST (LPSP) .EQ. FOR))GO TO 13089 LN = LPST (LPSP + 1) IF (.NOT. (LPST (LPSP + 2) .EQ. 1))GO TO 13091 CALL PLN (LN) 13091 CONTINUE CALL LSTART SLEN = LPST (LPSP - 1) LPSP = LPSP - (SLEN + 1)/2 - 1 KK = LPSP*2 - 1 DO 13093 JJ = 1, SLEN II = GCHAR (LPST, KK) CALL PUTC (II) KK = KK + 1 13093 CONTINUE CALL PUTC (EOL) CALL LSTART LN = LN + 2 CALL GOLN (LN) LN = LN - 1 CALL LNCONT (LN) GO TO 13090 13089 CONTINUE LN = LPST (LPSP + 1) CALL LNCONT (LN) IF (.NOT. (LPST (LPSP + 2) .EQ. 1))GO TO 13095 LN = LN + 1 CALL LNCONT (LN) 13095 CONTINUE 13090 CONTINUE LPSP = LPSP - 3 IF (LEXVAL .NE. OUTFIL) GOTO 30 GOTO 1100 300 IF (.NOT. (LPSP .EQ. 1))GO TO 13097 CALL REMARK ('MISPLACED BREAK OR NEXT.') GOTO 30 13097 CONTINUE KK = LPSP + 1 LN = LPST (KK) IF (.NOT. (LEXVAL .EQ. BREAK))GO TO 13099 LN = LN + 1 IF (.NOT. (LPST (LPSP) .NE. FOR))GO TO 13101 KK = LPSP + 2 LPST (KK) = 1 13101 CONTINUE GO TO 13100 13099 CONTINUE IF (.NOT. (LPST (LPSP) .EQ. FOR))GO TO 13103 KK = LPSP + 2 LPST (KK) = 1 13103 CONTINUE 13100 CONTINUE CALL LSTART CALL GOLN (LN) GOTO 30 400 IF (.NOT. (IFSP .GE. IFMAX))GO TO 13105 CALL REMARK ('IF STACK OVERFLOW.') CALL IGNORE GOTO 10 13105 CONTINUE IFSP = IFSP + 1 IFST (IFSP) = IFOP IFSP = IFSP + 1 LN = LABGEN (2) IFST (IFSP) = LN CALL LSTART CALL PSTR ('IF (.NOT. /') CALL CPAREN CALL PSTR (')/') CALL GOLN (LN) GOTO 30 500 IF (.NOT. (IFSP .EQ. 1))GO TO 13107 510 CALL REMARK ('ELSE WITHOUT IF.') CALL IGNORE GOTO 10 13107 CONTINUE JJ = IFSP CONTINUE 13109 CONTINUE IF (.NOT.(JJ .GT. 1))GO TO 13110 KK = JJ - 1 IF (.NOT. (IFST (KK) .EQ. IFOP))GO TO 13111 IFST (KK) = ELSE LN = IFST (JJ) + 1 CALL LSTART CALL GOLN (LN) LN = LN - 1 CALL LNCONT (LN) GO TO 13112 13111 CONTINUE JJ = JJ - 2 GO TO 13109 13110 CONTINUE GOTO 510 13112 CONTINUE GOTO 30 600 IF (.NOT. (IFSP .EQ. 1))GO TO 13113 CALL REMARK ('ENDIF WITHOUT IF.') CALL IGNORE GOTO 10 13113 CONTINUE KK = IFSP - 1 IF (.NOT. (IFST (KK) .EQ. IFOP))GO TO 13115 LN = IFST (IFSP) GO TO 13116 13115 CONTINUE LN = IFST (IFSP) + 1 13116 CONTINUE CALL LNCONT (LN) IFSP = IFSP - 2 GOTO 30 800 CALL SKIPBL JJ = 1 CALL COPYTO (HBUF, JJ, EOL) DO 13117 II = JJ, 80 CALL PCHAR (HBUF, II, BLANK) 13117 CONTINUE FIRST = .FALSE. SKIPFL = .TRUE. CALL PUTBAK (EOL) GOTO 30 900 IF (POFF) GOTO 30 SKIPFL = .TRUE. CLINE = 1000 GOTO 30 1000 INCHAN = INCHAN - 1 LSAVE (LEVEL) = LINENO PSAVE (LEVEL) = POFF LEVEL = LEVEL + 1 CALL SKIPBL INLEN = 1 CALL SET (0, NAME, 22) CALL COPYTO (NAME, INLEN, COMMA) CALL PCHAR (NAME, INLEN, 0) CALL PRINT CHAR = GETC (CHAR) IF (.NOT. (CHAR .EQ. CHARP))GO TO 13119 SKIPFL = .TRUE. POFF = .FALSE. GO TO 13120 13119 CONTINUE POFF = .TRUE. 13120 CONTINUE IF (.NOT. (CHAR .NE. EOL))GO TO 13121 CALL COPYTO (NAME, INLEN, EOL) 13121 CONTINUE CALL PUTBAK (EOL) LINENO = 0 CALL OPENF (INCHAN, NAME, KK) IF (.NOT. (KK .NE. 1))GO TO 13123 CALL REMARK ('INCLUDE FILE OPEN ERROR.') CALL IGNORE GOTO 1050 13123 CONTINUE GOTO 30 1100 IF (.NOT. (OUTCHN .EQ. -1))GO TO 13125 OUTCHN = 1 GO TO 13126 13125 CONTINUE CONTINUE 13127 CONTINUE IF (.NOT.(IFSP .NE. 1))GO TO 13128 CALL REMARK ('MISSING ENDIF.') IFSP = IFSP - 2 GO TO 13127 13128 CONTINUE CONTINUE 13129 CONTINUE IF (.NOT.(LPSP .NE. 1))GO TO 13130 CALL REMARK ('MISSING LOOP END.') GOTO 200 GO TO 13129 13130 CONTINUE CALL CLOSF (OUTCHN, KK) 13126 CONTINUE CALL SKIPBL JJ = 1 CLINE = 1000 CALL SET (0, NAME, 22) CALL COPYTO (NAME, JJ, EOL) CALL PCHAR (NAME, SLEN + 1, 0) CALL OPENN (OUTCHN, NAME, KK) IF (.NOT. (KK .NE. 1))GO TO 13131 CALL REMARK ('FILE PROTECTED OR IN USE.') OUTCHN = -1 13131 CONTINUE IF (.NOT. (PROCCN .NE. -1))GO TO 13133 SLEN = SLEN - 3 CALL SET (BBLANK, BUF, 40) CALL EST (NAME, BUF, 1, SLEN) JJ = SLEN + 1 CALL PCHAR (BUF, JJ, COMMA) CALL EST (NAME, BUF, JJ+1, JJ + SLEN) JJ = JJ + SLEN + 1 CALL PCHAR (BUF, JJ, EQUAL) CALL EST (NAME, BUF, JJ+1, JJ + SLEN) JJ = JJ + SLEN + 1 CALL EST (EXTN, BUF, JJ, JJ+7) CALL PCHAR (BUF, JJ + SLEN + 1, BLANK) KK = JJ + 7 CALL WRLIN (PROCCN, BUF, KK) 13133 CONTINUE NEWFIL = .TRUE. CALL PUTBAK (EOL) GOTO 30 1050 CALL CLOSF (INCHAN, KK) LEVEL = LEVEL - 1 LINENO = LSAVE (LEVEL) POFF = PSAVE (LEVEL) INCHAN = INCHAN + 1 SKIPFL = .TRUE. GOTO 10 END \\\\\ SUBFILE: LEXFTM.FR @16:2 23-MAY-1979 <055> (1262) INTEGER FUNCTION LEX (ICHAR) INTEGER INPTR INTEGER OUTPTR INTEGER INMAX INTEGER MAXTAB INTEGER MAXLIN INTEGER IFMAX INTEGER MAXLEV INTEGER LINENO INTEGER PAGE INTEGER CLINE INTEGER TLIMIT INTEGER LN INTEGER I, J, K INTEGER II, JJ, KK INTEGER LEXVAL INTEGER SLEN INTEGER LEVEL INTEGER LEN INTEGER INCHAN INTEGER OUTCHN INTEGER LPTCHN INTEGER TTICHN INTEGER TTOCHN INTEGER PROCCN INTEGER COMCHN INTEGER TABS (10) LOGICAL SKIPFL LOGICAL POFF LOGICAL FIRST INTEGER ISP INTEGER ICSTK (20) INTEGER IFSP INTEGER IFST (20) INTEGER LPSP INTEGER LPST (100) LOGICAL TSEEN INTEGER CHAR INTEGER CTEMP LOGICAL NEWFIL INTEGER COMPMS (11) INTEGER LSAVE (5) INTEGER PSAVE (5) INTEGER FFILE INTEGER EOF INTEGER LETTER INTEGER DIGIT INTEGER TAB INTEGER EOL INTEGER BLANK INTEGER QUOTE INTEGER GIZZY INTEGER LPAREN INTEGER RPAREN INTEGER AST INTEGER COMMA INTEGER PERIOD INTEGER SLASH INTEGER CHAR0 INTEGER CHAR1 INTEGER CHAR9 INTEGER SEMI INTEGER EQUAL INTEGER CHARA INTEGER CHARZ INTEGER BBLANK INTEGER UPAROW INTEGER DOOP INTEGER WHILE INTEGER ENDOP INTEGER FOR INTEGER DOLOOP INTEGER BREAK INTEGER NEXT INTEGER IFOP INTEGER ELSE INTEGER ENDIF INTEGER DEFINE INTEGER HEAD INTEGER EJECT INTEGER INCLUD INTEGER OUTFIL INTEGER IBUF (42) INTEGER PBUF (58) INTEGER HBUF (42) INTEGER OUTBUF (42) INTEGER BUF (58) INTEGER NAME (22) COMMON /STRN/ INPTR COMMON /STRN/ OUTPTR COMMON /STRN/ INMAX COMMON /STRN/ MAXTAB COMMON /STRN/ MAXLIN COMMON /STRN/ IFMAX COMMON /STRN/ MAXLEV COMMON /STRN/ LINENO COMMON /STRN/ PAGE COMMON /STRN/ CLINE COMMON /STRN/ TLIMIT COMMON /STRN/ LN COMMON /STRN/ I, J, K COMMON /STRN/ II, JJ, KK COMMON /STRN/ LEXVAL COMMON /STRN/ SLEN COMMON /STRN/ LEVEL COMMON /STRN/ LEN COMMON /STRN/ INCHAN COMMON /STRN/ OUTCHN COMMON /STRN/ LPTCHN COMMON /STRN/ TTICHN COMMON /STRN/ TTOCHN COMMON /STRN/ PROCCN COMMON /STRN/ COMCHN COMMON /STRN/ TABS COMMON /STRN/ SKIPFL COMMON /STRN/ POFF COMMON /STRN/ FIRST COMMON /STRN/ ISP COMMON /STRN/ ICSTK COMMON /STRN/ IFSP COMMON /STRN/ IFST COMMON /STRN/ LPSP COMMON /STRN/ LPST COMMON /STRN/ TSEEN COMMON /STRN/ CHAR COMMON /STRN/ CTEMP COMMON /STRN/ NEWFIL COMMON /STRN/ COMPMS COMMON /STRN/ LSAVE COMMON /STRN/ PSAVE COMMON /STRN/ FFILE COMMON /STRN/ EOF COMMON /STRN/ LETTER COMMON /STRN/ DIGIT COMMON /STRN/ TAB COMMON /STRN/ EOL COMMON /STRN/ BLANK COMMON /STRN/ QUOTE COMMON /STRN/ GIZZY COMMON /STRN/ LPAREN COMMON /STRN/ RPAREN COMMON /STRN/ AST COMMON /STRN/ COMMA COMMON /STRN/ PERIOD COMMON /STRN/ SLASH COMMON /STRN/ CHAR0 COMMON /STRN/ CHAR1 COMMON /STRN/ CHAR9 COMMON /STRN/ SEMI COMMON /STRN/ EQUAL COMMON /STRN/ CHARA COMMON /STRN/ CHARZ COMMON /STRN/ BBLANK COMMON /STRN/ UPAROW COMMON /STRN/ DOOP COMMON /STRN/ WHILE COMMON /STRN/ ENDOP COMMON /STRN/ FOR COMMON /STRN/ DOLOOP COMMON /STRN/ BREAK COMMON /STRN/ NEXT COMMON /STRN/ IFOP COMMON /STRN/ ELSE COMMON /STRN/ ENDIF COMMON /STRN/ DEFINE COMMON /STRN/ HEAD COMMON /STRN/ EJECT COMMON /STRN/ INCLUD COMMON /STRN/ OUTFIL COMMON /STRN/ IBUF COMMON /STRN/ PBUF COMMON /STRN/ HBUF COMMON /STRN/ OUTBUF COMMON /STRN/ BUF COMMON /STRN/ NAME INTEGER ICHAR, CTYPE, GETC, GCHAR, GETWRD INTEGER FPTR, FLIST (70) DATA FLIST / 2, 'IF', 107, 4, 'EL','SE', 108, 5, 'EN','DI' 1,'F', 109, 2, 'DO', 100, 5, 'WH','IL','E', 101, 3, 'EN','D', 1 102, 3, 'FO','R', 103, 6, 'DO','LO','OP',104, 5, 'BR','EA' 1,'K', 105, 4, 'NE','XT', 106, 6, 'DE','FI','NE',110, 7, 'IN',' 1CL','UD','E', 113, 4, 'HE','AD', 111, 5, 'EJ','EC','T', 112, 7, 1 'OU','TF','IL','E', 114, 0, 0/ CALL SKIPBL CHAR = GETC (CHAR) LEXVAL = CTYPE (CHAR) IF (.NOT. (LEXVAL .NE. GIZZY))GO TO 13135 LEX = LEXVAL RETURN 13135 CONTINUE SLEN = GETWRD (IBUF, INPTR, INMAX, NAME) FPTR = 1 CONTINUE 13137 CONTINUE IF (.NOT.(FLIST (FPTR) .NE. 0))GO TO 13138 IF (.NOT. (FLIST (FPTR) .EQ. SLEN))GO TO 13139 KK = FPTR*2 + 1 DO 13141 JJ = 1, SLEN IF (.NOT. (GCHAR (FLIST, KK) .EQ. GCHAR (NAME, JJ)))GO TO 13143 KK = KK + 1 13141 CONTINUE FPTR = KK/2+1 LEX = FLIST (FPTR) RETURN 13143 CONTINUE 13139 CONTINUE FPTR = FPTR + (FLIST (FPTR) + 5)/2 GO TO 13137 13138 CONTINUE LEX = 0 RETURN END \\\\\ SUBFILE: ENDLIN.FR @16:2 23-MAY-1979 <055> (1279) SUBROUTINE ENDLIN INTEGER INPTR INTEGER OUTPTR INTEGER INMAX INTEGER MAXTAB INTEGER MAXLIN INTEGER IFMAX INTEGER MAXLEV INTEGER LINENO INTEGER PAGE INTEGER CLINE INTEGER TLIMIT INTEGER LN INTEGER I, J, K INTEGER II, JJ, KK INTEGER LEXVAL INTEGER SLEN INTEGER LEVEL INTEGER LEN INTEGER INCHAN INTEGER OUTCHN INTEGER LPTCHN INTEGER TTICHN INTEGER TTOCHN INTEGER PROCCN INTEGER COMCHN INTEGER TABS (10) LOGICAL SKIPFL LOGICAL POFF LOGICAL FIRST INTEGER ISP INTEGER ICSTK (20) INTEGER IFSP INTEGER IFST (20) INTEGER LPSP INTEGER LPST (100) LOGICAL TSEEN INTEGER CHAR INTEGER CTEMP LOGICAL NEWFIL INTEGER COMPMS (11) INTEGER LSAVE (5) INTEGER PSAVE (5) INTEGER FFILE INTEGER EOF INTEGER LETTER INTEGER DIGIT INTEGER TAB INTEGER EOL INTEGER BLANK INTEGER QUOTE INTEGER GIZZY INTEGER LPAREN INTEGER RPAREN INTEGER AST INTEGER COMMA INTEGER PERIOD INTEGER SLASH INTEGER CHAR0 INTEGER CHAR1 INTEGER CHAR9 INTEGER SEMI INTEGER EQUAL INTEGER CHARA INTEGER CHARZ INTEGER BBLANK INTEGER UPAROW INTEGER DOOP INTEGER WHILE INTEGER ENDOP INTEGER FOR INTEGER DOLOOP INTEGER BREAK INTEGER NEXT INTEGER IFOP INTEGER ELSE INTEGER ENDIF INTEGER DEFINE INTEGER HEAD INTEGER EJECT INTEGER INCLUD INTEGER OUTFIL INTEGER IBUF (42) INTEGER PBUF (58) INTEGER HBUF (42) INTEGER OUTBUF (42) INTEGER BUF (58) INTEGER NAME (22) COMMON /STRN/ INPTR COMMON /STRN/ OUTPTR COMMON /STRN/ INMAX COMMON /STRN/ MAXTAB COMMON /STRN/ MAXLIN COMMON /STRN/ IFMAX COMMON /STRN/ MAXLEV COMMON /STRN/ LINENO COMMON /STRN/ PAGE COMMON /STRN/ CLINE COMMON /STRN/ TLIMIT COMMON /STRN/ LN COMMON /STRN/ I, J, K COMMON /STRN/ II, JJ, KK COMMON /STRN/ LEXVAL COMMON /STRN/ SLEN COMMON /STRN/ LEVEL COMMON /STRN/ LEN COMMON /STRN/ INCHAN COMMON /STRN/ OUTCHN COMMON /STRN/ LPTCHN COMMON /STRN/ TTICHN COMMON /STRN/ TTOCHN COMMON /STRN/ PROCCN COMMON /STRN/ COMCHN COMMON /STRN/ TABS COMMON /STRN/ SKIPFL COMMON /STRN/ POFF COMMON /STRN/ FIRST COMMON /STRN/ ISP COMMON /STRN/ ICSTK COMMON /STRN/ IFSP COMMON /STRN/ IFST COMMON /STRN/ LPSP COMMON /STRN/ LPST COMMON /STRN/ TSEEN COMMON /STRN/ CHAR COMMON /STRN/ CTEMP COMMON /STRN/ NEWFIL COMMON /STRN/ COMPMS COMMON /STRN/ LSAVE COMMON /STRN/ PSAVE COMMON /STRN/ FFILE COMMON /STRN/ EOF COMMON /STRN/ LETTER COMMON /STRN/ DIGIT COMMON /STRN/ TAB COMMON /STRN/ EOL COMMON /STRN/ BLANK COMMON /STRN/ QUOTE COMMON /STRN/ GIZZY COMMON /STRN/ LPAREN COMMON /STRN/ RPAREN COMMON /STRN/ AST COMMON /STRN/ COMMA COMMON /STRN/ PERIOD COMMON /STRN/ SLASH COMMON /STRN/ CHAR0 COMMON /STRN/ CHAR1 COMMON /STRN/ CHAR9 COMMON /STRN/ SEMI COMMON /STRN/ EQUAL COMMON /STRN/ CHARA COMMON /STRN/ CHARZ COMMON /STRN/ BBLANK COMMON /STRN/ UPAROW COMMON /STRN/ DOOP COMMON /STRN/ WHILE COMMON /STRN/ ENDOP COMMON /STRN/ FOR COMMON /STRN/ DOLOOP COMMON /STRN/ BREAK COMMON /STRN/ NEXT COMMON /STRN/ IFOP COMMON /STRN/ ELSE COMMON /STRN/ ENDIF COMMON /STRN/ DEFINE COMMON /STRN/ HEAD COMMON /STRN/ EJECT COMMON /STRN/ INCLUD COMMON /STRN/ OUTFIL COMMON /STRN/ IBUF COMMON /STRN/ PBUF COMMON /STRN/ HBUF COMMON /STRN/ OUTBUF COMMON /STRN/ BUF COMMON /STRN/ NAME INTEGER GETC, GCHAR, QCOUNT, CHARD, CHART, ICHAR LOGICAL QSEEN, QALLOW DATA CHARD /68/ , CHART /84/ QALLOW = .FALSE. QSEEN = .FALSE. CONTINUE 13145 CONTINUE CHAR = GETC (CHAR) IF (.NOT.(CHAR .NE. EOL))GO TO 13146 IF (.NOT. (CHAR .EQ. CHARD))GO TO 13147 IF (.NOT. (GCHAR (IBUF, INPTR) .EQ. CHARA .AND. GCHAR (IBUF, INPTR 1+1) .EQ. CHART .AND. GCHAR (IBUF, INPTR+2) .EQ. CHARA))GO TO 13149 QALLOW = .TRUE. 13149 CONTINUE 13147 CONTINUE IF (.NOT. (QALLOW))GO TO 13151 IF (.NOT. (CHAR .EQ. GIZZY))GO TO 13153 QCOUNT = -2 QSEEN = NOT (QSEEN) GO TO 13154 13153 CONTINUE IF (.NOT. (QSEEN))GO TO 13155 QCOUNT = QCOUNT + 1 IF (.NOT. (QCOUNT .EQ. 0))GO TO 13157 QCOUNT = -1 CALL PUTC (CHAR) CHAR = GETC (CHAR) IF (.NOT. (CHAR .NE. GIZZY))GO TO 13159 ICHAR = CHAR CALL PUTC (GIZZY) CALL PUTC (COMMA) CALL PUTC (GIZZY) CHAR = ICHAR GO TO 13160 13159 CONTINUE QSEEN = NOT (QSEEN) 13160 CONTINUE 13157 CONTINUE 13155 CONTINUE 13154 CONTINUE 13151 CONTINUE CALL PUTC (CHAR) GO TO 13145 13146 CONTINUE CALL PUTC (EOL) RETURN END \\\\\ SUBFILE: REMARK.FR @16:2 23-MAY-1979 <055> (1088) SUBROUTINE REMARK (STRING) INTEGER INPTR INTEGER OUTPTR INTEGER INMAX INTEGER MAXTAB INTEGER MAXLIN INTEGER IFMAX INTEGER MAXLEV INTEGER LINENO INTEGER PAGE INTEGER CLINE INTEGER TLIMIT INTEGER LN INTEGER I, J, K INTEGER II, JJ, KK INTEGER LEXVAL INTEGER SLEN INTEGER LEVEL INTEGER LEN INTEGER INCHAN INTEGER OUTCHN INTEGER LPTCHN INTEGER TTICHN INTEGER TTOCHN INTEGER PROCCN INTEGER COMCHN INTEGER TABS (10) LOGICAL SKIPFL LOGICAL POFF LOGICAL FIRST INTEGER ISP INTEGER ICSTK (20) INTEGER IFSP INTEGER IFST (20) INTEGER LPSP INTEGER LPST (100) LOGICAL TSEEN INTEGER CHAR INTEGER CTEMP LOGICAL NEWFIL INTEGER COMPMS (11) INTEGER LSAVE (5) INTEGER PSAVE (5) INTEGER FFILE INTEGER EOF INTEGER LETTER INTEGER DIGIT INTEGER TAB INTEGER EOL INTEGER BLANK INTEGER QUOTE INTEGER GIZZY INTEGER LPAREN INTEGER RPAREN INTEGER AST INTEGER COMMA INTEGER PERIOD INTEGER SLASH INTEGER CHAR0 INTEGER CHAR1 INTEGER CHAR9 INTEGER SEMI INTEGER EQUAL INTEGER CHARA INTEGER CHARZ INTEGER BBLANK INTEGER UPAROW INTEGER DOOP INTEGER WHILE INTEGER ENDOP INTEGER FOR INTEGER DOLOOP INTEGER BREAK INTEGER NEXT INTEGER IFOP INTEGER ELSE INTEGER ENDIF INTEGER DEFINE INTEGER HEAD INTEGER EJECT INTEGER INCLUD INTEGER OUTFIL INTEGER IBUF (42) INTEGER PBUF (58) INTEGER HBUF (42) INTEGER OUTBUF (42) INTEGER BUF (58) INTEGER NAME (22) COMMON /STRN/ INPTR COMMON /STRN/ OUTPTR COMMON /STRN/ INMAX COMMON /STRN/ MAXTAB COMMON /STRN/ MAXLIN COMMON /STRN/ IFMAX COMMON /STRN/ MAXLEV COMMON /STRN/ LINENO COMMON /STRN/ PAGE COMMON /STRN/ CLINE COMMON /STRN/ TLIMIT COMMON /STRN/ LN COMMON /STRN/ I, J, K COMMON /STRN/ II, JJ, KK COMMON /STRN/ LEXVAL COMMON /STRN/ SLEN COMMON /STRN/ LEVEL COMMON /STRN/ LEN COMMON /STRN/ INCHAN COMMON /STRN/ OUTCHN COMMON /STRN/ LPTCHN COMMON /STRN/ TTICHN COMMON /STRN/ TTOCHN COMMON /STRN/ PROCCN COMMON /STRN/ COMCHN COMMON /STRN/ TABS COMMON /STRN/ SKIPFL COMMON /STRN/ POFF COMMON /STRN/ FIRST COMMON /STRN/ ISP COMMON /STRN/ ICSTK COMMON /STRN/ IFSP COMMON /STRN/ IFST COMMON /STRN/ LPSP COMMON /STRN/ LPST COMMON /STRN/ TSEEN COMMON /STRN/ CHAR COMMON /STRN/ CTEMP COMMON /STRN/ NEWFIL COMMON /STRN/ COMPMS COMMON /STRN/ LSAVE COMMON /STRN/ PSAVE COMMON /STRN/ FFILE COMMON /STRN/ EOF COMMON /STRN/ LETTER COMMON /STRN/ DIGIT COMMON /STRN/ TAB COMMON /STRN/ EOL COMMON /STRN/ BLANK COMMON /STRN/ QUOTE COMMON /STRN/ GIZZY COMMON /STRN/ LPAREN COMMON /STRN/ RPAREN COMMON /STRN/ AST COMMON /STRN/ COMMA COMMON /STRN/ PERIOD COMMON /STRN/ SLASH COMMON /STRN/ CHAR0 COMMON /STRN/ CHAR1 COMMON /STRN/ CHAR9 COMMON /STRN/ SEMI COMMON /STRN/ EQUAL COMMON /STRN/ CHARA COMMON /STRN/ CHARZ COMMON /STRN/ BBLANK COMMON /STRN/ UPAROW COMMON /STRN/ DOOP COMMON /STRN/ WHILE COMMON /STRN/ ENDOP COMMON /STRN/ FOR COMMON /STRN/ DOLOOP COMMON /STRN/ BREAK COMMON /STRN/ NEXT COMMON /STRN/ IFOP COMMON /STRN/ ELSE COMMON /STRN/ ENDIF COMMON /STRN/ DEFINE COMMON /STRN/ HEAD COMMON /STRN/ EJECT COMMON /STRN/ INCLUD COMMON /STRN/ OUTFIL COMMON /STRN/ IBUF COMMON /STRN/ PBUF COMMON /STRN/ HBUF COMMON /STRN/ OUTBUF COMMON /STRN/ BUF COMMON /STRN/ NAME INTEGER STRING (66) INTEGER TS, GCHAR DO 13161 I = 1, 4 CALL PCHAR (BUF, I, AST) 13161 CONTINUE DO 13163 I = 5, 80 TS = GCHAR (STRING, I-4) IF (.NOT. (TS .NE. PERIOD))GO TO 13165 CALL PCHAR (BUF, I, TS) 13163 CONTINUE 13165 CONTINUE CALL PCHAR (BUF, I, EOL) CALL WRLIN (TTOCHN, BUF, I) CALL WRLIN (LPTCHN, BUF, I) RETURN END \\\\\ SUBFILE: GETWRD.FR @16:2 23-MAY-1979 <055> (1121) INTEGER FUNCTION GETWRD (BUFIN, INX, MAXIN, BUFOUT) INTEGER INPTR INTEGER OUTPTR INTEGER INMAX INTEGER MAXTAB INTEGER MAXLIN INTEGER IFMAX INTEGER MAXLEV INTEGER LINENO INTEGER PAGE INTEGER CLINE INTEGER TLIMIT INTEGER LN INTEGER I, J, K INTEGER II, JJ, KK INTEGER LEXVAL INTEGER SLEN INTEGER LEVEL INTEGER LEN INTEGER INCHAN INTEGER OUTCHN INTEGER LPTCHN INTEGER TTICHN INTEGER TTOCHN INTEGER PROCCN INTEGER COMCHN INTEGER TABS (10) LOGICAL SKIPFL LOGICAL POFF LOGICAL FIRST INTEGER ISP INTEGER ICSTK (20) INTEGER IFSP INTEGER IFST (20) INTEGER LPSP INTEGER LPST (100) LOGICAL TSEEN INTEGER CHAR INTEGER CTEMP LOGICAL NEWFIL INTEGER COMPMS (11) INTEGER LSAVE (5) INTEGER PSAVE (5) INTEGER FFILE INTEGER EOF INTEGER LETTER INTEGER DIGIT INTEGER TAB INTEGER EOL INTEGER BLANK INTEGER QUOTE INTEGER GIZZY INTEGER LPAREN INTEGER RPAREN INTEGER AST INTEGER COMMA INTEGER PERIOD INTEGER SLASH INTEGER CHAR0 INTEGER CHAR1 INTEGER CHAR9 INTEGER SEMI INTEGER EQUAL INTEGER CHARA INTEGER CHARZ INTEGER BBLANK INTEGER UPAROW INTEGER DOOP INTEGER WHILE INTEGER ENDOP INTEGER FOR INTEGER DOLOOP INTEGER BREAK INTEGER NEXT INTEGER IFOP INTEGER ELSE INTEGER ENDIF INTEGER DEFINE INTEGER HEAD INTEGER EJECT INTEGER INCLUD INTEGER OUTFIL INTEGER IBUF (42) INTEGER PBUF (58) INTEGER HBUF (42) INTEGER OUTBUF (42) INTEGER BUF (58) INTEGER NAME (22) COMMON /STRN/ INPTR COMMON /STRN/ OUTPTR COMMON /STRN/ INMAX COMMON /STRN/ MAXTAB COMMON /STRN/ MAXLIN COMMON /STRN/ IFMAX COMMON /STRN/ MAXLEV COMMON /STRN/ LINENO COMMON /STRN/ PAGE COMMON /STRN/ CLINE COMMON /STRN/ TLIMIT COMMON /STRN/ LN COMMON /STRN/ I, J, K COMMON /STRN/ II, JJ, KK COMMON /STRN/ LEXVAL COMMON /STRN/ SLEN COMMON /STRN/ LEVEL COMMON /STRN/ LEN COMMON /STRN/ INCHAN COMMON /STRN/ OUTCHN COMMON /STRN/ LPTCHN COMMON /STRN/ TTICHN COMMON /STRN/ TTOCHN COMMON /STRN/ PROCCN COMMON /STRN/ COMCHN COMMON /STRN/ TABS COMMON /STRN/ SKIPFL COMMON /STRN/ POFF COMMON /STRN/ FIRST COMMON /STRN/ ISP COMMON /STRN/ ICSTK COMMON /STRN/ IFSP COMMON /STRN/ IFST COMMON /STRN/ LPSP COMMON /STRN/ LPST COMMON /STRN/ TSEEN COMMON /STRN/ CHAR COMMON /STRN/ CTEMP COMMON /STRN/ NEWFIL COMMON /STRN/ COMPMS COMMON /STRN/ LSAVE COMMON /STRN/ PSAVE COMMON /STRN/ FFILE COMMON /STRN/ EOF COMMON /STRN/ LETTER COMMON /STRN/ DIGIT COMMON /STRN/ TAB COMMON /STRN/ EOL COMMON /STRN/ BLANK COMMON /STRN/ QUOTE COMMON /STRN/ GIZZY COMMON /STRN/ LPAREN COMMON /STRN/ RPAREN COMMON /STRN/ AST COMMON /STRN/ COMMA COMMON /STRN/ PERIOD COMMON /STRN/ SLASH COMMON /STRN/ CHAR0 COMMON /STRN/ CHAR1 COMMON /STRN/ CHAR9 COMMON /STRN/ SEMI COMMON /STRN/ EQUAL COMMON /STRN/ CHARA COMMON /STRN/ CHARZ COMMON /STRN/ BBLANK COMMON /STRN/ UPAROW COMMON /STRN/ DOOP COMMON /STRN/ WHILE COMMON /STRN/ ENDOP COMMON /STRN/ FOR COMMON /STRN/ DOLOOP COMMON /STRN/ BREAK COMMON /STRN/ NEXT COMMON /STRN/ IFOP COMMON /STRN/ ELSE COMMON /STRN/ ENDIF COMMON /STRN/ DEFINE COMMON /STRN/ HEAD COMMON /STRN/ EJECT COMMON /STRN/ INCLUD COMMON /STRN/ OUTFIL COMMON /STRN/ IBUF COMMON /STRN/ PBUF COMMON /STRN/ HBUF COMMON /STRN/ OUTBUF COMMON /STRN/ BUF COMMON /STRN/ NAME INTEGER GCHAR, BUFIN, INX, MAXIN, BUFOUT INTEGER TS GETWRD = 1 CONTINUE 13167 CONTINUE IF (.NOT.(INX .LE. MAXIN))GO TO 13168 TS = GCHAR (BUFIN, INX) INX = INX + 1 IF (.NOT. (TS .EQ. BLANK .OR. TS .EQ. TAB .OR. TS .EQ. GIZZY .OR. 1TS .EQ. 0))GO TO 13169 GO TO 13168 13169 CONTINUE CALL PCHAR (BUFOUT, GETWRD, TS) GETWRD = GETWRD + 1 GO TO 13167 13168 CONTINUE CALL PCHAR (BUFOUT, GETWRD, BLANK) GETWRD = GETWRD - 1 RETURN END \\\\\ SUBFILE: GETLIN.FR @16:2 23-MAY-1979 <055> (1171) INTEGER FUNCTION GETLIN (BUFFER, CHAN) INTEGER INPTR INTEGER OUTPTR INTEGER INMAX INTEGER MAXTAB INTEGER MAXLIN INTEGER IFMAX INTEGER MAXLEV INTEGER LINENO INTEGER PAGE INTEGER CLINE INTEGER TLIMIT INTEGER LN INTEGER I, J, K INTEGER II, JJ, KK INTEGER LEXVAL INTEGER SLEN INTEGER LEVEL INTEGER LEN INTEGER INCHAN INTEGER OUTCHN INTEGER LPTCHN INTEGER TTICHN INTEGER TTOCHN INTEGER PROCCN INTEGER COMCHN INTEGER TABS (10) LOGICAL SKIPFL LOGICAL POFF LOGICAL FIRST INTEGER ISP INTEGER ICSTK (20) INTEGER IFSP INTEGER IFST (20) INTEGER LPSP INTEGER LPST (100) LOGICAL TSEEN INTEGER CHAR INTEGER CTEMP LOGICAL NEWFIL INTEGER COMPMS (11) INTEGER LSAVE (5) INTEGER PSAVE (5) INTEGER FFILE INTEGER EOF INTEGER LETTER INTEGER DIGIT INTEGER TAB INTEGER EOL INTEGER BLANK INTEGER QUOTE INTEGER GIZZY INTEGER LPAREN INTEGER RPAREN INTEGER AST INTEGER COMMA INTEGER PERIOD INTEGER SLASH INTEGER CHAR0 INTEGER CHAR1 INTEGER CHAR9 INTEGER SEMI INTEGER EQUAL INTEGER CHARA INTEGER CHARZ INTEGER BBLANK INTEGER UPAROW INTEGER DOOP INTEGER WHILE INTEGER ENDOP INTEGER FOR INTEGER DOLOOP INTEGER BREAK INTEGER NEXT INTEGER IFOP INTEGER ELSE INTEGER ENDIF INTEGER DEFINE INTEGER HEAD INTEGER EJECT INTEGER INCLUD INTEGER OUTFIL INTEGER IBUF (42) INTEGER PBUF (58) INTEGER HBUF (42) INTEGER OUTBUF (42) INTEGER BUF (58) INTEGER NAME (22) COMMON /STRN/ INPTR COMMON /STRN/ OUTPTR COMMON /STRN/ INMAX COMMON /STRN/ MAXTAB COMMON /STRN/ MAXLIN COMMON /STRN/ IFMAX COMMON /STRN/ MAXLEV COMMON /STRN/ LINENO COMMON /STRN/ PAGE COMMON /STRN/ CLINE COMMON /STRN/ TLIMIT COMMON /STRN/ LN COMMON /STRN/ I, J, K COMMON /STRN/ II, JJ, KK COMMON /STRN/ LEXVAL COMMON /STRN/ SLEN COMMON /STRN/ LEVEL COMMON /STRN/ LEN COMMON /STRN/ INCHAN COMMON /STRN/ OUTCHN COMMON /STRN/ LPTCHN COMMON /STRN/ TTICHN COMMON /STRN/ TTOCHN COMMON /STRN/ PROCCN COMMON /STRN/ COMCHN COMMON /STRN/ TABS COMMON /STRN/ SKIPFL COMMON /STRN/ POFF COMMON /STRN/ FIRST COMMON /STRN/ ISP COMMON /STRN/ ICSTK COMMON /STRN/ IFSP COMMON /STRN/ IFST COMMON /STRN/ LPSP COMMON /STRN/ LPST COMMON /STRN/ TSEEN COMMON /STRN/ CHAR COMMON /STRN/ CTEMP COMMON /STRN/ NEWFIL COMMON /STRN/ COMPMS COMMON /STRN/ LSAVE COMMON /STRN/ PSAVE COMMON /STRN/ FFILE COMMON /STRN/ EOF COMMON /STRN/ LETTER COMMON /STRN/ DIGIT COMMON /STRN/ TAB COMMON /STRN/ EOL COMMON /STRN/ BLANK COMMON /STRN/ QUOTE COMMON /STRN/ GIZZY COMMON /STRN/ LPAREN COMMON /STRN/ RPAREN COMMON /STRN/ AST COMMON /STRN/ COMMA COMMON /STRN/ PERIOD COMMON /STRN/ SLASH COMMON /STRN/ CHAR0 COMMON /STRN/ CHAR1 COMMON /STRN/ CHAR9 COMMON /STRN/ SEMI COMMON /STRN/ EQUAL COMMON /STRN/ CHARA COMMON /STRN/ CHARZ COMMON /STRN/ BBLANK COMMON /STRN/ UPAROW COMMON /STRN/ DOOP COMMON /STRN/ WHILE COMMON /STRN/ ENDOP COMMON /STRN/ FOR COMMON /STRN/ DOLOOP COMMON /STRN/ BREAK COMMON /STRN/ NEXT COMMON /STRN/ IFOP COMMON /STRN/ ELSE COMMON /STRN/ ENDIF COMMON /STRN/ DEFINE COMMON /STRN/ HEAD COMMON /STRN/ EJECT COMMON /STRN/ INCLUD COMMON /STRN/ OUTFIL COMMON /STRN/ IBUF COMMON /STRN/ PBUF COMMON /STRN/ HBUF COMMON /STRN/ OUTBUF COMMON /STRN/ BUF COMMON /STRN/ NAME INTEGER GCHAR, BUFFER (40), CHAN INTEGER TS, ERROR GETLIN = -1 CALL SET (BBLANK, BUFFER, 40) TS = 80 CALL RDLIN (CHAN, BUFFER, TS, ERROR) IF (ERROR .EQ. 9) RETURN GETLIN = 36 13173 IF (.NOT.(GETLIN .GE. 1))GO TO 13172 IF (.NOT. (BUFFER (GETLIN) .EQ. BBLANK))GO TO 13174 GETLIN = GETLIN - 1 GO TO 13173 13172 CONTINUE 13174 CONTINUE GETLIN = GETLIN * 2 CONTINUE 13176 CONTINUE IF (.NOT.(GETLIN .GE. 1))GO TO 13177 TS = GCHAR (BUFFER, GETLIN) IF (.NOT. (TS .EQ. BLANK .OR. TS .EQ. TAB))GO TO 13178 GETLIN = GETLIN - 1 GO TO 13176 13177 CONTINUE 13178 CONTINUE GETLIN = GETLIN + 1 CALL PCHAR (BUFFER, GETLIN, EOL) RETURN END \\\\\ SUBFILE: PUTBAK.FR @16:2 23-MAY-1979 <055> (1016) SUBROUTINE PUTBAK (ICHAR) INTEGER INPTR INTEGER OUTPTR INTEGER INMAX INTEGER MAXTAB INTEGER MAXLIN INTEGER IFMAX INTEGER MAXLEV INTEGER LINENO INTEGER PAGE INTEGER CLINE INTEGER TLIMIT INTEGER LN INTEGER I, J, K INTEGER II, JJ, KK INTEGER LEXVAL INTEGER SLEN INTEGER LEVEL INTEGER LEN INTEGER INCHAN INTEGER OUTCHN INTEGER LPTCHN INTEGER TTICHN INTEGER TTOCHN INTEGER PROCCN INTEGER COMCHN INTEGER TABS (10) LOGICAL SKIPFL LOGICAL POFF LOGICAL FIRST INTEGER ISP INTEGER ICSTK (20) INTEGER IFSP INTEGER IFST (20) INTEGER LPSP INTEGER LPST (100) LOGICAL TSEEN INTEGER CHAR INTEGER CTEMP LOGICAL NEWFIL INTEGER COMPMS (11) INTEGER LSAVE (5) INTEGER PSAVE (5) INTEGER FFILE INTEGER EOF INTEGER LETTER INTEGER DIGIT INTEGER TAB INTEGER EOL INTEGER BLANK INTEGER QUOTE INTEGER GIZZY INTEGER LPAREN INTEGER RPAREN INTEGER AST INTEGER COMMA INTEGER PERIOD INTEGER SLASH INTEGER CHAR0 INTEGER CHAR1 INTEGER CHAR9 INTEGER SEMI INTEGER EQUAL INTEGER CHARA INTEGER CHARZ INTEGER BBLANK INTEGER UPAROW INTEGER DOOP INTEGER WHILE INTEGER ENDOP INTEGER FOR INTEGER DOLOOP INTEGER BREAK INTEGER NEXT INTEGER IFOP INTEGER ELSE INTEGER ENDIF INTEGER DEFINE INTEGER HEAD INTEGER EJECT INTEGER INCLUD INTEGER OUTFIL INTEGER IBUF (42) INTEGER PBUF (58) INTEGER HBUF (42) INTEGER OUTBUF (42) INTEGER BUF (58) INTEGER NAME (22) COMMON /STRN/ INPTR COMMON /STRN/ OUTPTR COMMON /STRN/ INMAX COMMON /STRN/ MAXTAB COMMON /STRN/ MAXLIN COMMON /STRN/ IFMAX COMMON /STRN/ MAXLEV COMMON /STRN/ LINENO COMMON /STRN/ PAGE COMMON /STRN/ CLINE COMMON /STRN/ TLIMIT COMMON /STRN/ LN COMMON /STRN/ I, J, K COMMON /STRN/ II, JJ, KK COMMON /STRN/ LEXVAL COMMON /STRN/ SLEN COMMON /STRN/ LEVEL COMMON /STRN/ LEN COMMON /STRN/ INCHAN COMMON /STRN/ OUTCHN COMMON /STRN/ LPTCHN COMMON /STRN/ TTICHN COMMON /STRN/ TTOCHN COMMON /STRN/ PROCCN COMMON /STRN/ COMCHN COMMON /STRN/ TABS COMMON /STRN/ SKIPFL COMMON /STRN/ POFF COMMON /STRN/ FIRST COMMON /STRN/ ISP COMMON /STRN/ ICSTK COMMON /STRN/ IFSP COMMON /STRN/ IFST COMMON /STRN/ LPSP COMMON /STRN/ LPST COMMON /STRN/ TSEEN COMMON /STRN/ CHAR COMMON /STRN/ CTEMP COMMON /STRN/ NEWFIL COMMON /STRN/ COMPMS COMMON /STRN/ LSAVE COMMON /STRN/ PSAVE COMMON /STRN/ FFILE COMMON /STRN/ EOF COMMON /STRN/ LETTER COMMON /STRN/ DIGIT COMMON /STRN/ TAB COMMON /STRN/ EOL COMMON /STRN/ BLANK COMMON /STRN/ QUOTE COMMON /STRN/ GIZZY COMMON /STRN/ LPAREN COMMON /STRN/ RPAREN COMMON /STRN/ AST COMMON /STRN/ COMMA COMMON /STRN/ PERIOD COMMON /STRN/ SLASH COMMON /STRN/ CHAR0 COMMON /STRN/ CHAR1 COMMON /STRN/ CHAR9 COMMON /STRN/ SEMI COMMON /STRN/ EQUAL COMMON /STRN/ CHARA COMMON /STRN/ CHARZ COMMON /STRN/ BBLANK COMMON /STRN/ UPAROW COMMON /STRN/ DOOP COMMON /STRN/ WHILE COMMON /STRN/ ENDOP COMMON /STRN/ FOR COMMON /STRN/ DOLOOP COMMON /STRN/ BREAK COMMON /STRN/ NEXT COMMON /STRN/ IFOP COMMON /STRN/ ELSE COMMON /STRN/ ENDIF COMMON /STRN/ DEFINE COMMON /STRN/ HEAD COMMON /STRN/ EJECT COMMON /STRN/ INCLUD COMMON /STRN/ OUTFIL COMMON /STRN/ IBUF COMMON /STRN/ PBUF COMMON /STRN/ HBUF COMMON /STRN/ OUTBUF COMMON /STRN/ BUF COMMON /STRN/ NAME INTEGER ICHAR ISP = ISP + 1 ICSTK (ISP) = ICHAR RETURN END \\\\\ SUBFILE: SKIPBL.FR @16:2 23-MAY-1979 <055> (1046) SUBROUTINE SKIPBL INTEGER INPTR INTEGER OUTPTR INTEGER INMAX INTEGER MAXTAB INTEGER MAXLIN INTEGER IFMAX INTEGER MAXLEV INTEGER LINENO INTEGER PAGE INTEGER CLINE INTEGER TLIMIT INTEGER LN INTEGER I, J, K INTEGER II, JJ, KK INTEGER LEXVAL INTEGER SLEN INTEGER LEVEL INTEGER LEN INTEGER INCHAN INTEGER OUTCHN INTEGER LPTCHN INTEGER TTICHN INTEGER TTOCHN INTEGER PROCCN INTEGER COMCHN INTEGER TABS (10) LOGICAL SKIPFL LOGICAL POFF LOGICAL FIRST INTEGER ISP INTEGER ICSTK (20) INTEGER IFSP INTEGER IFST (20) INTEGER LPSP INTEGER LPST (100) LOGICAL TSEEN INTEGER CHAR INTEGER CTEMP LOGICAL NEWFIL INTEGER COMPMS (11) INTEGER LSAVE (5) INTEGER PSAVE (5) INTEGER FFILE INTEGER EOF INTEGER LETTER INTEGER DIGIT INTEGER TAB INTEGER EOL INTEGER BLANK INTEGER QUOTE INTEGER GIZZY INTEGER LPAREN INTEGER RPAREN INTEGER AST INTEGER COMMA INTEGER PERIOD INTEGER SLASH INTEGER CHAR0 INTEGER CHAR1 INTEGER CHAR9 INTEGER SEMI INTEGER EQUAL INTEGER CHARA INTEGER CHARZ INTEGER BBLANK INTEGER UPAROW INTEGER DOOP INTEGER WHILE INTEGER ENDOP INTEGER FOR INTEGER DOLOOP INTEGER BREAK INTEGER NEXT INTEGER IFOP INTEGER ELSE INTEGER ENDIF INTEGER DEFINE INTEGER HEAD INTEGER EJECT INTEGER INCLUD INTEGER OUTFIL INTEGER IBUF (42) INTEGER PBUF (58) INTEGER HBUF (42) INTEGER OUTBUF (42) INTEGER BUF (58) INTEGER NAME (22) COMMON /STRN/ INPTR COMMON /STRN/ OUTPTR COMMON /STRN/ INMAX COMMON /STRN/ MAXTAB COMMON /STRN/ MAXLIN COMMON /STRN/ IFMAX COMMON /STRN/ MAXLEV COMMON /STRN/ LINENO COMMON /STRN/ PAGE COMMON /STRN/ CLINE COMMON /STRN/ TLIMIT COMMON /STRN/ LN COMMON /STRN/ I, J, K COMMON /STRN/ II, JJ, KK COMMON /STRN/ LEXVAL COMMON /STRN/ SLEN COMMON /STRN/ LEVEL COMMON /STRN/ LEN COMMON /STRN/ INCHAN COMMON /STRN/ OUTCHN COMMON /STRN/ LPTCHN COMMON /STRN/ TTICHN COMMON /STRN/ TTOCHN COMMON /STRN/ PROCCN COMMON /STRN/ COMCHN COMMON /STRN/ TABS COMMON /STRN/ SKIPFL COMMON /STRN/ POFF COMMON /STRN/ FIRST COMMON /STRN/ ISP COMMON /STRN/ ICSTK COMMON /STRN/ IFSP COMMON /STRN/ IFST COMMON /STRN/ LPSP COMMON /STRN/ LPST COMMON /STRN/ TSEEN COMMON /STRN/ CHAR COMMON /STRN/ CTEMP COMMON /STRN/ NEWFIL COMMON /STRN/ COMPMS COMMON /STRN/ LSAVE COMMON /STRN/ PSAVE COMMON /STRN/ FFILE COMMON /STRN/ EOF COMMON /STRN/ LETTER COMMON /STRN/ DIGIT COMMON /STRN/ TAB COMMON /STRN/ EOL COMMON /STRN/ BLANK COMMON /STRN/ QUOTE COMMON /STRN/ GIZZY COMMON /STRN/ LPAREN COMMON /STRN/ RPAREN COMMON /STRN/ AST COMMON /STRN/ COMMA COMMON /STRN/ PERIOD COMMON /STRN/ SLASH COMMON /STRN/ CHAR0 COMMON /STRN/ CHAR1 COMMON /STRN/ CHAR9 COMMON /STRN/ SEMI COMMON /STRN/ EQUAL COMMON /STRN/ CHARA COMMON /STRN/ CHARZ COMMON /STRN/ BBLANK COMMON /STRN/ UPAROW COMMON /STRN/ DOOP COMMON /STRN/ WHILE COMMON /STRN/ ENDOP COMMON /STRN/ FOR COMMON /STRN/ DOLOOP COMMON /STRN/ BREAK COMMON /STRN/ NEXT COMMON /STRN/ IFOP COMMON /STRN/ ELSE COMMON /STRN/ ENDIF COMMON /STRN/ DEFINE COMMON /STRN/ HEAD COMMON /STRN/ EJECT COMMON /STRN/ INCLUD COMMON /STRN/ OUTFIL COMMON /STRN/ IBUF COMMON /STRN/ PBUF COMMON /STRN/ HBUF COMMON /STRN/ OUTBUF COMMON /STRN/ BUF COMMON /STRN/ NAME INTEGER GETC CONTINUE 13180 CONTINUE CHAR = GETC (CHAR) IF (.NOT.(CHAR .EQ. BLANK .OR. CHAR .EQ. TAB))GO TO 13181 GO TO 13180 13181 CONTINUE CALL PUTBAK (CHAR) RETURN END \\\\\ SUBFILE: IGNORE.FR @16:2 23-MAY-1979 <055> (1042) SUBROUTINE IGNORE INTEGER INPTR INTEGER OUTPTR INTEGER INMAX INTEGER MAXTAB INTEGER MAXLIN INTEGER IFMAX INTEGER MAXLEV INTEGER LINENO INTEGER PAGE INTEGER CLINE INTEGER TLIMIT INTEGER LN INTEGER I, J, K INTEGER II, JJ, KK INTEGER LEXVAL INTEGER SLEN INTEGER LEVEL INTEGER LEN INTEGER INCHAN INTEGER OUTCHN INTEGER LPTCHN INTEGER TTICHN INTEGER TTOCHN INTEGER PROCCN INTEGER COMCHN INTEGER TABS (10) LOGICAL SKIPFL LOGICAL POFF LOGICAL FIRST INTEGER ISP INTEGER ICSTK (20) INTEGER IFSP INTEGER IFST (20) INTEGER LPSP INTEGER LPST (100) LOGICAL TSEEN INTEGER CHAR INTEGER CTEMP LOGICAL NEWFIL INTEGER COMPMS (11) INTEGER LSAVE (5) INTEGER PSAVE (5) INTEGER FFILE INTEGER EOF INTEGER LETTER INTEGER DIGIT INTEGER TAB INTEGER EOL INTEGER BLANK INTEGER QUOTE INTEGER GIZZY INTEGER LPAREN INTEGER RPAREN INTEGER AST INTEGER COMMA INTEGER PERIOD INTEGER SLASH INTEGER CHAR0 INTEGER CHAR1 INTEGER CHAR9 INTEGER SEMI INTEGER EQUAL INTEGER CHARA INTEGER CHARZ INTEGER BBLANK INTEGER UPAROW INTEGER DOOP INTEGER WHILE INTEGER ENDOP INTEGER FOR INTEGER DOLOOP INTEGER BREAK INTEGER NEXT INTEGER IFOP INTEGER ELSE INTEGER ENDIF INTEGER DEFINE INTEGER HEAD INTEGER EJECT INTEGER INCLUD INTEGER OUTFIL INTEGER IBUF (42) INTEGER PBUF (58) INTEGER HBUF (42) INTEGER OUTBUF (42) INTEGER BUF (58) INTEGER NAME (22) COMMON /STRN/ INPTR COMMON /STRN/ OUTPTR COMMON /STRN/ INMAX COMMON /STRN/ MAXTAB COMMON /STRN/ MAXLIN COMMON /STRN/ IFMAX COMMON /STRN/ MAXLEV COMMON /STRN/ LINENO COMMON /STRN/ PAGE COMMON /STRN/ CLINE COMMON /STRN/ TLIMIT COMMON /STRN/ LN COMMON /STRN/ I, J, K COMMON /STRN/ II, JJ, KK COMMON /STRN/ LEXVAL COMMON /STRN/ SLEN COMMON /STRN/ LEVEL COMMON /STRN/ LEN COMMON /STRN/ INCHAN COMMON /STRN/ OUTCHN COMMON /STRN/ LPTCHN COMMON /STRN/ TTICHN COMMON /STRN/ TTOCHN COMMON /STRN/ PROCCN COMMON /STRN/ COMCHN COMMON /STRN/ TABS COMMON /STRN/ SKIPFL COMMON /STRN/ POFF COMMON /STRN/ FIRST COMMON /STRN/ ISP COMMON /STRN/ ICSTK COMMON /STRN/ IFSP COMMON /STRN/ IFST COMMON /STRN/ LPSP COMMON /STRN/ LPST COMMON /STRN/ TSEEN COMMON /STRN/ CHAR COMMON /STRN/ CTEMP COMMON /STRN/ NEWFIL COMMON /STRN/ COMPMS COMMON /STRN/ LSAVE COMMON /STRN/ PSAVE COMMON /STRN/ FFILE COMMON /STRN/ EOF COMMON /STRN/ LETTER COMMON /STRN/ DIGIT COMMON /STRN/ TAB COMMON /STRN/ EOL COMMON /STRN/ BLANK COMMON /STRN/ QUOTE COMMON /STRN/ GIZZY COMMON /STRN/ LPAREN COMMON /STRN/ RPAREN COMMON /STRN/ AST COMMON /STRN/ COMMA COMMON /STRN/ PERIOD COMMON /STRN/ SLASH COMMON /STRN/ CHAR0 COMMON /STRN/ CHAR1 COMMON /STRN/ CHAR9 COMMON /STRN/ SEMI COMMON /STRN/ EQUAL COMMON /STRN/ CHARA COMMON /STRN/ CHARZ COMMON /STRN/ BBLANK COMMON /STRN/ UPAROW COMMON /STRN/ DOOP COMMON /STRN/ WHILE COMMON /STRN/ ENDOP COMMON /STRN/ FOR COMMON /STRN/ DOLOOP COMMON /STRN/ BREAK COMMON /STRN/ NEXT COMMON /STRN/ IFOP COMMON /STRN/ ELSE COMMON /STRN/ ENDIF COMMON /STRN/ DEFINE COMMON /STRN/ HEAD COMMON /STRN/ EJECT COMMON /STRN/ INCLUD COMMON /STRN/ OUTFIL COMMON /STRN/ IBUF COMMON /STRN/ PBUF COMMON /STRN/ HBUF COMMON /STRN/ OUTBUF COMMON /STRN/ BUF COMMON /STRN/ NAME INTEGER GETC CONTINUE 13182 CONTINUE CHAR = GETC (CHAR) IF (.NOT.(CHAR .NE. EOL))GO TO 13183 GO TO 13182 13183 CONTINUE CALL PUTBAK (CHAR) RETURN END \\\\\ SUBFILE: GETNUM.FR @16:2 23-MAY-1979 <055> (1066) INTEGER FUNCTION GETNUM (DUMMY) INTEGER INPTR INTEGER OUTPTR INTEGER INMAX INTEGER MAXTAB INTEGER MAXLIN INTEGER IFMAX INTEGER MAXLEV INTEGER LINENO INTEGER PAGE INTEGER CLINE INTEGER TLIMIT INTEGER LN INTEGER I, J, K INTEGER II, JJ, KK INTEGER LEXVAL INTEGER SLEN INTEGER LEVEL INTEGER LEN INTEGER INCHAN INTEGER OUTCHN INTEGER LPTCHN INTEGER TTICHN INTEGER TTOCHN INTEGER PROCCN INTEGER COMCHN INTEGER TABS (10) LOGICAL SKIPFL LOGICAL POFF LOGICAL FIRST INTEGER ISP INTEGER ICSTK (20) INTEGER IFSP INTEGER IFST (20) INTEGER LPSP INTEGER LPST (100) LOGICAL TSEEN INTEGER CHAR INTEGER CTEMP LOGICAL NEWFIL INTEGER COMPMS (11) INTEGER LSAVE (5) INTEGER PSAVE (5) INTEGER FFILE INTEGER EOF INTEGER LETTER INTEGER DIGIT INTEGER TAB INTEGER EOL INTEGER BLANK INTEGER QUOTE INTEGER GIZZY INTEGER LPAREN INTEGER RPAREN INTEGER AST INTEGER COMMA INTEGER PERIOD INTEGER SLASH INTEGER CHAR0 INTEGER CHAR1 INTEGER CHAR9 INTEGER SEMI INTEGER EQUAL INTEGER CHARA INTEGER CHARZ INTEGER BBLANK INTEGER UPAROW INTEGER DOOP INTEGER WHILE INTEGER ENDOP INTEGER FOR INTEGER DOLOOP INTEGER BREAK INTEGER NEXT INTEGER IFOP INTEGER ELSE INTEGER ENDIF INTEGER DEFINE INTEGER HEAD INTEGER EJECT INTEGER INCLUD INTEGER OUTFIL INTEGER IBUF (42) INTEGER PBUF (58) INTEGER HBUF (42) INTEGER OUTBUF (42) INTEGER BUF (58) INTEGER NAME (22) COMMON /STRN/ INPTR COMMON /STRN/ OUTPTR COMMON /STRN/ INMAX COMMON /STRN/ MAXTAB COMMON /STRN/ MAXLIN COMMON /STRN/ IFMAX COMMON /STRN/ MAXLEV COMMON /STRN/ LINENO COMMON /STRN/ PAGE COMMON /STRN/ CLINE COMMON /STRN/ TLIMIT COMMON /STRN/ LN COMMON /STRN/ I, J, K COMMON /STRN/ II, JJ, KK COMMON /STRN/ LEXVAL COMMON /STRN/ SLEN COMMON /STRN/ LEVEL COMMON /STRN/ LEN COMMON /STRN/ INCHAN COMMON /STRN/ OUTCHN COMMON /STRN/ LPTCHN COMMON /STRN/ TTICHN COMMON /STRN/ TTOCHN COMMON /STRN/ PROCCN COMMON /STRN/ COMCHN COMMON /STRN/ TABS COMMON /STRN/ SKIPFL COMMON /STRN/ POFF COMMON /STRN/ FIRST COMMON /STRN/ ISP COMMON /STRN/ ICSTK COMMON /STRN/ IFSP COMMON /STRN/ IFST COMMON /STRN/ LPSP COMMON /STRN/ LPST COMMON /STRN/ TSEEN COMMON /STRN/ CHAR COMMON /STRN/ CTEMP COMMON /STRN/ NEWFIL COMMON /STRN/ COMPMS COMMON /STRN/ LSAVE COMMON /STRN/ PSAVE COMMON /STRN/ FFILE COMMON /STRN/ EOF COMMON /STRN/ LETTER COMMON /STRN/ DIGIT COMMON /STRN/ TAB COMMON /STRN/ EOL COMMON /STRN/ BLANK COMMON /STRN/ QUOTE COMMON /STRN/ GIZZY COMMON /STRN/ LPAREN COMMON /STRN/ RPAREN COMMON /STRN/ AST COMMON /STRN/ COMMA COMMON /STRN/ PERIOD COMMON /STRN/ SLASH COMMON /STRN/ CHAR0 COMMON /STRN/ CHAR1 COMMON /STRN/ CHAR9 COMMON /STRN/ SEMI COMMON /STRN/ EQUAL COMMON /STRN/ CHARA COMMON /STRN/ CHARZ COMMON /STRN/ BBLANK COMMON /STRN/ UPAROW COMMON /STRN/ DOOP COMMON /STRN/ WHILE COMMON /STRN/ ENDOP COMMON /STRN/ FOR COMMON /STRN/ DOLOOP COMMON /STRN/ BREAK COMMON /STRN/ NEXT COMMON /STRN/ IFOP COMMON /STRN/ ELSE COMMON /STRN/ ENDIF COMMON /STRN/ DEFINE COMMON /STRN/ HEAD COMMON /STRN/ EJECT COMMON /STRN/ INCLUD COMMON /STRN/ OUTFIL COMMON /STRN/ IBUF COMMON /STRN/ PBUF COMMON /STRN/ HBUF COMMON /STRN/ OUTBUF COMMON /STRN/ BUF COMMON /STRN/ NAME INTEGER DUMMY INTEGER CTYPE, GETC GETNUM = 0 CONTINUE 13184 CONTINUE IF (.NOT.(LEXVAL .EQ. DIGIT))GO TO 13185 GETNUM = GETNUM * 10 + CHAR - CHAR0 LEXVAL = CTYPE (GETC (CHAR)) GO TO 13184 13185 CONTINUE CALL PUTBAK (CHAR) RETURN END \\\\\ SUBFILE: COPYLN.FR @16:2 23-MAY-1979 <055> (1015) SUBROUTINE COPYLN INTEGER INPTR INTEGER OUTPTR INTEGER INMAX INTEGER MAXTAB INTEGER MAXLIN INTEGER IFMAX INTEGER MAXLEV INTEGER LINENO INTEGER PAGE INTEGER CLINE INTEGER TLIMIT INTEGER LN INTEGER I, J, K INTEGER II, JJ, KK INTEGER LEXVAL INTEGER SLEN INTEGER LEVEL INTEGER LEN INTEGER INCHAN INTEGER OUTCHN INTEGER LPTCHN INTEGER TTICHN INTEGER TTOCHN INTEGER PROCCN INTEGER COMCHN INTEGER TABS (10) LOGICAL SKIPFL LOGICAL POFF LOGICAL FIRST INTEGER ISP INTEGER ICSTK (20) INTEGER IFSP INTEGER IFST (20) INTEGER LPSP INTEGER LPST (100) LOGICAL TSEEN INTEGER CHAR INTEGER CTEMP LOGICAL NEWFIL INTEGER COMPMS (11) INTEGER LSAVE (5) INTEGER PSAVE (5) INTEGER FFILE INTEGER EOF INTEGER LETTER INTEGER DIGIT INTEGER TAB INTEGER EOL INTEGER BLANK INTEGER QUOTE INTEGER GIZZY INTEGER LPAREN INTEGER RPAREN INTEGER AST INTEGER COMMA INTEGER PERIOD INTEGER SLASH INTEGER CHAR0 INTEGER CHAR1 INTEGER CHAR9 INTEGER SEMI INTEGER EQUAL INTEGER CHARA INTEGER CHARZ INTEGER BBLANK INTEGER UPAROW INTEGER DOOP INTEGER WHILE INTEGER ENDOP INTEGER FOR INTEGER DOLOOP INTEGER BREAK INTEGER NEXT INTEGER IFOP INTEGER ELSE INTEGER ENDIF INTEGER DEFINE INTEGER HEAD INTEGER EJECT INTEGER INCLUD INTEGER OUTFIL INTEGER IBUF (42) INTEGER PBUF (58) INTEGER HBUF (42) INTEGER OUTBUF (42) INTEGER BUF (58) INTEGER NAME (22) COMMON /STRN/ INPTR COMMON /STRN/ OUTPTR COMMON /STRN/ INMAX COMMON /STRN/ MAXTAB COMMON /STRN/ MAXLIN COMMON /STRN/ IFMAX COMMON /STRN/ MAXLEV COMMON /STRN/ LINENO COMMON /STRN/ PAGE COMMON /STRN/ CLINE COMMON /STRN/ TLIMIT COMMON /STRN/ LN COMMON /STRN/ I, J, K COMMON /STRN/ II, JJ, KK COMMON /STRN/ LEXVAL COMMON /STRN/ SLEN COMMON /STRN/ LEVEL COMMON /STRN/ LEN COMMON /STRN/ INCHAN COMMON /STRN/ OUTCHN COMMON /STRN/ LPTCHN COMMON /STRN/ TTICHN COMMON /STRN/ TTOCHN COMMON /STRN/ PROCCN COMMON /STRN/ COMCHN COMMON /STRN/ TABS COMMON /STRN/ SKIPFL COMMON /STRN/ POFF COMMON /STRN/ FIRST COMMON /STRN/ ISP COMMON /STRN/ ICSTK COMMON /STRN/ IFSP COMMON /STRN/ IFST COMMON /STRN/ LPSP COMMON /STRN/ LPST COMMON /STRN/ TSEEN COMMON /STRN/ CHAR COMMON /STRN/ CTEMP COMMON /STRN/ NEWFIL COMMON /STRN/ COMPMS COMMON /STRN/ LSAVE COMMON /STRN/ PSAVE COMMON /STRN/ FFILE COMMON /STRN/ EOF COMMON /STRN/ LETTER COMMON /STRN/ DIGIT COMMON /STRN/ TAB COMMON /STRN/ EOL COMMON /STRN/ BLANK COMMON /STRN/ QUOTE COMMON /STRN/ GIZZY COMMON /STRN/ LPAREN COMMON /STRN/ RPAREN COMMON /STRN/ AST COMMON /STRN/ COMMA COMMON /STRN/ PERIOD COMMON /STRN/ SLASH COMMON /STRN/ CHAR0 COMMON /STRN/ CHAR1 COMMON /STRN/ CHAR9 COMMON /STRN/ SEMI COMMON /STRN/ EQUAL COMMON /STRN/ CHARA COMMON /STRN/ CHARZ COMMON /STRN/ BBLANK COMMON /STRN/ UPAROW COMMON /STRN/ DOOP COMMON /STRN/ WHILE COMMON /STRN/ ENDOP COMMON /STRN/ FOR COMMON /STRN/ DOLOOP COMMON /STRN/ BREAK COMMON /STRN/ NEXT COMMON /STRN/ IFOP COMMON /STRN/ ELSE COMMON /STRN/ ENDIF COMMON /STRN/ DEFINE COMMON /STRN/ HEAD COMMON /STRN/ EJECT COMMON /STRN/ INCLUD COMMON /STRN/ OUTFIL COMMON /STRN/ IBUF COMMON /STRN/ PBUF COMMON /STRN/ HBUF COMMON /STRN/ OUTBUF COMMON /STRN/ BUF COMMON /STRN/ NAME INTEGER GETNUM LN = GETNUM (CHAR) CALL PLN (LN) RETURN END \\\\\ SUBFILE: COPYTO.FR @16:2 23-MAY-1979 <055> (1092) SUBROUTINE COPYTO (BUFOUT, OUTX, ICHAR) INTEGER INPTR INTEGER OUTPTR INTEGER INMAX INTEGER MAXTAB INTEGER MAXLIN INTEGER IFMAX INTEGER MAXLEV INTEGER LINENO INTEGER PAGE INTEGER CLINE INTEGER TLIMIT INTEGER LN INTEGER I, J, K INTEGER II, JJ, KK INTEGER LEXVAL INTEGER SLEN INTEGER LEVEL INTEGER LEN INTEGER INCHAN INTEGER OUTCHN INTEGER LPTCHN INTEGER TTICHN INTEGER TTOCHN INTEGER PROCCN INTEGER COMCHN INTEGER TABS (10) LOGICAL SKIPFL LOGICAL POFF LOGICAL FIRST INTEGER ISP INTEGER ICSTK (20) INTEGER IFSP INTEGER IFST (20) INTEGER LPSP INTEGER LPST (100) LOGICAL TSEEN INTEGER CHAR INTEGER CTEMP LOGICAL NEWFIL INTEGER COMPMS (11) INTEGER LSAVE (5) INTEGER PSAVE (5) INTEGER FFILE INTEGER EOF INTEGER LETTER INTEGER DIGIT INTEGER TAB INTEGER EOL INTEGER BLANK INTEGER QUOTE INTEGER GIZZY INTEGER LPAREN INTEGER RPAREN INTEGER AST INTEGER COMMA INTEGER PERIOD INTEGER SLASH INTEGER CHAR0 INTEGER CHAR1 INTEGER CHAR9 INTEGER SEMI INTEGER EQUAL INTEGER CHARA INTEGER CHARZ INTEGER BBLANK INTEGER UPAROW INTEGER DOOP INTEGER WHILE INTEGER ENDOP INTEGER FOR INTEGER DOLOOP INTEGER BREAK INTEGER NEXT INTEGER IFOP INTEGER ELSE INTEGER ENDIF INTEGER DEFINE INTEGER HEAD INTEGER EJECT INTEGER INCLUD INTEGER OUTFIL INTEGER IBUF (42) INTEGER PBUF (58) INTEGER HBUF (42) INTEGER OUTBUF (42) INTEGER BUF (58) INTEGER NAME (22) COMMON /STRN/ INPTR COMMON /STRN/ OUTPTR COMMON /STRN/ INMAX COMMON /STRN/ MAXTAB COMMON /STRN/ MAXLIN COMMON /STRN/ IFMAX COMMON /STRN/ MAXLEV COMMON /STRN/ LINENO COMMON /STRN/ PAGE COMMON /STRN/ CLINE COMMON /STRN/ TLIMIT COMMON /STRN/ LN COMMON /STRN/ I, J, K COMMON /STRN/ II, JJ, KK COMMON /STRN/ LEXVAL COMMON /STRN/ SLEN COMMON /STRN/ LEVEL COMMON /STRN/ LEN COMMON /STRN/ INCHAN COMMON /STRN/ OUTCHN COMMON /STRN/ LPTCHN COMMON /STRN/ TTICHN COMMON /STRN/ TTOCHN COMMON /STRN/ PROCCN COMMON /STRN/ COMCHN COMMON /STRN/ TABS COMMON /STRN/ SKIPFL COMMON /STRN/ POFF COMMON /STRN/ FIRST COMMON /STRN/ ISP COMMON /STRN/ ICSTK COMMON /STRN/ IFSP COMMON /STRN/ IFST COMMON /STRN/ LPSP COMMON /STRN/ LPST COMMON /STRN/ TSEEN COMMON /STRN/ CHAR COMMON /STRN/ CTEMP COMMON /STRN/ NEWFIL COMMON /STRN/ COMPMS COMMON /STRN/ LSAVE COMMON /STRN/ PSAVE COMMON /STRN/ FFILE COMMON /STRN/ EOF COMMON /STRN/ LETTER COMMON /STRN/ DIGIT COMMON /STRN/ TAB COMMON /STRN/ EOL COMMON /STRN/ BLANK COMMON /STRN/ QUOTE COMMON /STRN/ GIZZY COMMON /STRN/ LPAREN COMMON /STRN/ RPAREN COMMON /STRN/ AST COMMON /STRN/ COMMA COMMON /STRN/ PERIOD COMMON /STRN/ SLASH COMMON /STRN/ CHAR0 COMMON /STRN/ CHAR1 COMMON /STRN/ CHAR9 COMMON /STRN/ SEMI COMMON /STRN/ EQUAL COMMON /STRN/ CHARA COMMON /STRN/ CHARZ COMMON /STRN/ BBLANK COMMON /STRN/ UPAROW COMMON /STRN/ DOOP COMMON /STRN/ WHILE COMMON /STRN/ ENDOP COMMON /STRN/ FOR COMMON /STRN/ DOLOOP COMMON /STRN/ BREAK COMMON /STRN/ NEXT COMMON /STRN/ IFOP COMMON /STRN/ ELSE COMMON /STRN/ ENDIF COMMON /STRN/ DEFINE COMMON /STRN/ HEAD COMMON /STRN/ EJECT COMMON /STRN/ INCLUD COMMON /STRN/ OUTFIL COMMON /STRN/ IBUF COMMON /STRN/ PBUF COMMON /STRN/ HBUF COMMON /STRN/ OUTBUF COMMON /STRN/ BUF COMMON /STRN/ NAME INTEGER TS, GETC, BUFOUT, OUTX, ICHAR SLEN = 0 CONTINUE 13186 CONTINUE TS = GETC (CHAR) IF (.NOT.(TS .NE. ICHAR))GO TO 13187 IF (.NOT. (TS .EQ. EOL))GO TO 13188 CALL REMARK ('MISSING DELIMITER.') RETURN 13188 CONTINUE CALL PCHAR (BUFOUT, OUTX, TS) OUTX = OUTX + 1 SLEN = SLEN + 1 GO TO 13186 13187 CONTINUE RETURN END \\\\\ SUBFILE: GETC.FR @16:2 23-MAY-1979 <055> (1304) INTEGER FUNCTION GETC (DUMMY) INTEGER INPTR INTEGER OUTPTR INTEGER INMAX INTEGER MAXTAB INTEGER MAXLIN INTEGER IFMAX INTEGER MAXLEV INTEGER LINENO INTEGER PAGE INTEGER CLINE INTEGER TLIMIT INTEGER LN INTEGER I, J, K INTEGER II, JJ, KK INTEGER LEXVAL INTEGER SLEN INTEGER LEVEL INTEGER LEN INTEGER INCHAN INTEGER OUTCHN INTEGER LPTCHN INTEGER TTICHN INTEGER TTOCHN INTEGER PROCCN INTEGER COMCHN INTEGER TABS (10) LOGICAL SKIPFL LOGICAL POFF LOGICAL FIRST INTEGER ISP INTEGER ICSTK (20) INTEGER IFSP INTEGER IFST (20) INTEGER LPSP INTEGER LPST (100) LOGICAL TSEEN INTEGER CHAR INTEGER CTEMP LOGICAL NEWFIL INTEGER COMPMS (11) INTEGER LSAVE (5) INTEGER PSAVE (5) INTEGER FFILE INTEGER EOF INTEGER LETTER INTEGER DIGIT INTEGER TAB INTEGER EOL INTEGER BLANK INTEGER QUOTE INTEGER GIZZY INTEGER LPAREN INTEGER RPAREN INTEGER AST INTEGER COMMA INTEGER PERIOD INTEGER SLASH INTEGER CHAR0 INTEGER CHAR1 INTEGER CHAR9 INTEGER SEMI INTEGER EQUAL INTEGER CHARA INTEGER CHARZ INTEGER BBLANK INTEGER UPAROW INTEGER DOOP INTEGER WHILE INTEGER ENDOP INTEGER FOR INTEGER DOLOOP INTEGER BREAK INTEGER NEXT INTEGER IFOP INTEGER ELSE INTEGER ENDIF INTEGER DEFINE INTEGER HEAD INTEGER EJECT INTEGER INCLUD INTEGER OUTFIL INTEGER IBUF (42) INTEGER PBUF (58) INTEGER HBUF (42) INTEGER OUTBUF (42) INTEGER BUF (58) INTEGER NAME (22) COMMON /STRN/ INPTR COMMON /STRN/ OUTPTR COMMON /STRN/ INMAX COMMON /STRN/ MAXTAB COMMON /STRN/ MAXLIN COMMON /STRN/ IFMAX COMMON /STRN/ MAXLEV COMMON /STRN/ LINENO COMMON /STRN/ PAGE COMMON /STRN/ CLINE COMMON /STRN/ TLIMIT COMMON /STRN/ LN COMMON /STRN/ I, J, K COMMON /STRN/ II, JJ, KK COMMON /STRN/ LEXVAL COMMON /STRN/ SLEN COMMON /STRN/ LEVEL COMMON /STRN/ LEN COMMON /STRN/ INCHAN COMMON /STRN/ OUTCHN COMMON /STRN/ LPTCHN COMMON /STRN/ TTICHN COMMON /STRN/ TTOCHN COMMON /STRN/ PROCCN COMMON /STRN/ COMCHN COMMON /STRN/ TABS COMMON /STRN/ SKIPFL COMMON /STRN/ POFF COMMON /STRN/ FIRST COMMON /STRN/ ISP COMMON /STRN/ ICSTK COMMON /STRN/ IFSP COMMON /STRN/ IFST COMMON /STRN/ LPSP COMMON /STRN/ LPST COMMON /STRN/ TSEEN COMMON /STRN/ CHAR COMMON /STRN/ CTEMP COMMON /STRN/ NEWFIL COMMON /STRN/ COMPMS COMMON /STRN/ LSAVE COMMON /STRN/ PSAVE COMMON /STRN/ FFILE COMMON /STRN/ EOF COMMON /STRN/ LETTER COMMON /STRN/ DIGIT COMMON /STRN/ TAB COMMON /STRN/ EOL COMMON /STRN/ BLANK COMMON /STRN/ QUOTE COMMON /STRN/ GIZZY COMMON /STRN/ LPAREN COMMON /STRN/ RPAREN COMMON /STRN/ AST COMMON /STRN/ COMMA COMMON /STRN/ PERIOD COMMON /STRN/ SLASH COMMON /STRN/ CHAR0 COMMON /STRN/ CHAR1 COMMON /STRN/ CHAR9 COMMON /STRN/ SEMI COMMON /STRN/ EQUAL COMMON /STRN/ CHARA COMMON /STRN/ CHARZ COMMON /STRN/ BBLANK COMMON /STRN/ UPAROW COMMON /STRN/ DOOP COMMON /STRN/ WHILE COMMON /STRN/ ENDOP COMMON /STRN/ FOR COMMON /STRN/ DOLOOP COMMON /STRN/ BREAK COMMON /STRN/ NEXT COMMON /STRN/ IFOP COMMON /STRN/ ELSE COMMON /STRN/ ENDIF COMMON /STRN/ DEFINE COMMON /STRN/ HEAD COMMON /STRN/ EJECT COMMON /STRN/ INCLUD COMMON /STRN/ OUTFIL COMMON /STRN/ IBUF COMMON /STRN/ PBUF COMMON /STRN/ HBUF COMMON /STRN/ OUTBUF COMMON /STRN/ BUF COMMON /STRN/ NAME INTEGER DUMMY, TS, GCHAR, GETLIN IF (.NOT. (ISP .GT. 1))GO TO 13190 CHAR = ICSTK (ISP) ISP = ISP - 1 GOTO 10 13190 CONTINUE IF (.NOT. (INPTR .EQ. INMAX))GO TO 13192 CHAR = EOL INPTR = INPTR + 1 10 GETC = CHAR RETURN 13192 CONTINUE CONTINUE 13194 CONTINUE IF (.NOT. (INPTR .LT. INMAX))GO TO 13196 CHAR = GCHAR (IBUF, INPTR) INPTR = INPTR + 1 IF (.NOT. (CHAR .EQ. TAB))GO TO 13198 TSEEN = .TRUE. CHAR = BLANK GOTO 10 13198 CONTINUE IF (.NOT. (CHAR .EQ. SLASH))GO TO 13200 IF (.NOT. (GCHAR (IBUF, INPTR) .EQ. SLASH))GO TO 13202 INPTR = INMAX + 1 CHAR = EOL GOTO 10 13202 CONTINUE 13200 CONTINUE CTEMP = CHAR IF (CTEMP .NE. UPAROW .AND. INPTR .LE. INMAX) GOTO 10 13196 CONTINUE CALL PRINT LINENO = LINENO + 1 INMAX = GETLIN (IBUF, INCHAN) INPTR = 1 IF (.NOT. (CTEMP .EQ. UPAROW))GO TO 13204 CONTINUE 13206 CONTINUE TS = GCHAR (IBUF, INPTR) IF (.NOT.(TS .EQ. BLANK .OR. TS .EQ. TAB))GO TO 13207 INPTR = INPTR + 1 GO TO 13206 13207 CONTINUE 13204 CONTINUE IF (.NOT.(INMAX .NE. EOF))GO TO 13195 GO TO 13194 13195 CONTINUE CHAR = EOF INPTR = INMAX + 1 SKIPFL = .TRUE. GOTO 10 END \\\\\ SUBFILE: PUTCFT.FR @16:2 23-MAY-1979 <055> (1210) SUBROUTINE PUTC (ICHAR) INTEGER INPTR INTEGER OUTPTR INTEGER INMAX INTEGER MAXTAB INTEGER MAXLIN INTEGER IFMAX INTEGER MAXLEV INTEGER LINENO INTEGER PAGE INTEGER CLINE INTEGER TLIMIT INTEGER LN INTEGER I, J, K INTEGER II, JJ, KK INTEGER LEXVAL INTEGER SLEN INTEGER LEVEL INTEGER LEN INTEGER INCHAN INTEGER OUTCHN INTEGER LPTCHN INTEGER TTICHN INTEGER TTOCHN INTEGER PROCCN INTEGER COMCHN INTEGER TABS (10) LOGICAL SKIPFL LOGICAL POFF LOGICAL FIRST INTEGER ISP INTEGER ICSTK (20) INTEGER IFSP INTEGER IFST (20) INTEGER LPSP INTEGER LPST (100) LOGICAL TSEEN INTEGER CHAR INTEGER CTEMP LOGICAL NEWFIL INTEGER COMPMS (11) INTEGER LSAVE (5) INTEGER PSAVE (5) INTEGER FFILE INTEGER EOF INTEGER LETTER INTEGER DIGIT INTEGER TAB INTEGER EOL INTEGER BLANK INTEGER QUOTE INTEGER GIZZY INTEGER LPAREN INTEGER RPAREN INTEGER AST INTEGER COMMA INTEGER PERIOD INTEGER SLASH INTEGER CHAR0 INTEGER CHAR1 INTEGER CHAR9 INTEGER SEMI INTEGER EQUAL INTEGER CHARA INTEGER CHARZ INTEGER BBLANK INTEGER UPAROW INTEGER DOOP INTEGER WHILE INTEGER ENDOP INTEGER FOR INTEGER DOLOOP INTEGER BREAK INTEGER NEXT INTEGER IFOP INTEGER ELSE INTEGER ENDIF INTEGER DEFINE INTEGER HEAD INTEGER EJECT INTEGER INCLUD INTEGER OUTFIL INTEGER IBUF (42) INTEGER PBUF (58) INTEGER HBUF (42) INTEGER OUTBUF (42) INTEGER BUF (58) INTEGER NAME (22) COMMON /STRN/ INPTR COMMON /STRN/ OUTPTR COMMON /STRN/ INMAX COMMON /STRN/ MAXTAB COMMON /STRN/ MAXLIN COMMON /STRN/ IFMAX COMMON /STRN/ MAXLEV COMMON /STRN/ LINENO COMMON /STRN/ PAGE COMMON /STRN/ CLINE COMMON /STRN/ TLIMIT COMMON /STRN/ LN COMMON /STRN/ I, J, K COMMON /STRN/ II, JJ, KK COMMON /STRN/ LEXVAL COMMON /STRN/ SLEN COMMON /STRN/ LEVEL COMMON /STRN/ LEN COMMON /STRN/ INCHAN COMMON /STRN/ OUTCHN COMMON /STRN/ LPTCHN COMMON /STRN/ TTICHN COMMON /STRN/ TTOCHN COMMON /STRN/ PROCCN COMMON /STRN/ COMCHN COMMON /STRN/ TABS COMMON /STRN/ SKIPFL COMMON /STRN/ POFF COMMON /STRN/ FIRST COMMON /STRN/ ISP COMMON /STRN/ ICSTK COMMON /STRN/ IFSP COMMON /STRN/ IFST COMMON /STRN/ LPSP COMMON /STRN/ LPST COMMON /STRN/ TSEEN COMMON /STRN/ CHAR COMMON /STRN/ CTEMP COMMON /STRN/ NEWFIL COMMON /STRN/ COMPMS COMMON /STRN/ LSAVE COMMON /STRN/ PSAVE COMMON /STRN/ FFILE COMMON /STRN/ EOF COMMON /STRN/ LETTER COMMON /STRN/ DIGIT COMMON /STRN/ TAB COMMON /STRN/ EOL COMMON /STRN/ BLANK COMMON /STRN/ QUOTE COMMON /STRN/ GIZZY COMMON /STRN/ LPAREN COMMON /STRN/ RPAREN COMMON /STRN/ AST COMMON /STRN/ COMMA COMMON /STRN/ PERIOD COMMON /STRN/ SLASH COMMON /STRN/ CHAR0 COMMON /STRN/ CHAR1 COMMON /STRN/ CHAR9 COMMON /STRN/ SEMI COMMON /STRN/ EQUAL COMMON /STRN/ CHARA COMMON /STRN/ CHARZ COMMON /STRN/ BBLANK COMMON /STRN/ UPAROW COMMON /STRN/ DOOP COMMON /STRN/ WHILE COMMON /STRN/ ENDOP COMMON /STRN/ FOR COMMON /STRN/ DOLOOP COMMON /STRN/ BREAK COMMON /STRN/ NEXT COMMON /STRN/ IFOP COMMON /STRN/ ELSE COMMON /STRN/ ENDIF COMMON /STRN/ DEFINE COMMON /STRN/ HEAD COMMON /STRN/ EJECT COMMON /STRN/ INCLUD COMMON /STRN/ OUTFIL COMMON /STRN/ IBUF COMMON /STRN/ PBUF COMMON /STRN/ HBUF COMMON /STRN/ OUTBUF COMMON /STRN/ BUF COMMON /STRN/ NAME INTEGER CONTL INTEGER ICHAR, TS IF (.NOT. (OUTCHN .NE. -1))GO TO 13208 IF (.NOT. (ICHAR .EQ. EOL))GO TO 13210 IF (.NOT. (NEWFIL))GO TO 13212 NEWFIL = .FALSE. 13212 CONTINUE CALL PCHAR (OUTBUF, OUTPTR, BLANK) TS = 72 OUTPTR = OUTPTR + 1 CALL WRLIN (OUTCHN, OUTBUF, TS) CALL INITOB CONTL = 0 RETURN 13210 CONTINUE IF (.NOT. (OUTPTR .LE. 72))GO TO 13214 CALL PCHAR (OUTBUF, OUTPTR, ICHAR) OUTPTR = OUTPTR + 1 RETURN 13214 CONTINUE CALL PCHAR (OUTBUF, 73, BLANK) TS = 72 CALL WRLIN (OUTCHN, OUTBUF, TS) CALL INITOB CALL PCHAR (OUTBUF, 6, CHAR1) CALL LSTART CALL PCHAR (OUTBUF, 7, ICHAR) OUTPTR = OUTPTR + 1 CALL SKIPBL CONTL = CONTL + 1 IF (.NOT. (CONTL .EQ. 20))GO TO 13216 CALL REMARK ('TOO MANY CONTINUATION LINES.') 13216 CONTINUE 13208 CONTINUE RETURN END \\\\\ SUBFILE: PRINTF.FR @16:2 23-MAY-1979 <055> (1468) SUBROUTINE PRINT INTEGER INPTR INTEGER OUTPTR INTEGER INMAX INTEGER MAXTAB INTEGER MAXLIN INTEGER IFMAX INTEGER MAXLEV INTEGER LINENO INTEGER PAGE INTEGER CLINE INTEGER TLIMIT INTEGER LN INTEGER I, J, K INTEGER II, JJ, KK INTEGER LEXVAL INTEGER SLEN INTEGER LEVEL INTEGER LEN INTEGER INCHAN INTEGER OUTCHN INTEGER LPTCHN INTEGER TTICHN INTEGER TTOCHN INTEGER PROCCN INTEGER COMCHN INTEGER TABS (10) LOGICAL SKIPFL LOGICAL POFF LOGICAL FIRST INTEGER ISP INTEGER ICSTK (20) INTEGER IFSP INTEGER IFST (20) INTEGER LPSP INTEGER LPST (100) LOGICAL TSEEN INTEGER CHAR INTEGER CTEMP LOGICAL NEWFIL INTEGER COMPMS (11) INTEGER LSAVE (5) INTEGER PSAVE (5) INTEGER FFILE INTEGER EOF INTEGER LETTER INTEGER DIGIT INTEGER TAB INTEGER EOL INTEGER BLANK INTEGER QUOTE INTEGER GIZZY INTEGER LPAREN INTEGER RPAREN INTEGER AST INTEGER COMMA INTEGER PERIOD INTEGER SLASH INTEGER CHAR0 INTEGER CHAR1 INTEGER CHAR9 INTEGER SEMI INTEGER EQUAL INTEGER CHARA INTEGER CHARZ INTEGER BBLANK INTEGER UPAROW INTEGER DOOP INTEGER WHILE INTEGER ENDOP INTEGER FOR INTEGER DOLOOP INTEGER BREAK INTEGER NEXT INTEGER IFOP INTEGER ELSE INTEGER ENDIF INTEGER DEFINE INTEGER HEAD INTEGER EJECT INTEGER INCLUD INTEGER OUTFIL INTEGER IBUF (42) INTEGER PBUF (58) INTEGER HBUF (42) INTEGER OUTBUF (42) INTEGER BUF (58) INTEGER NAME (22) COMMON /STRN/ INPTR COMMON /STRN/ OUTPTR COMMON /STRN/ INMAX COMMON /STRN/ MAXTAB COMMON /STRN/ MAXLIN COMMON /STRN/ IFMAX COMMON /STRN/ MAXLEV COMMON /STRN/ LINENO COMMON /STRN/ PAGE COMMON /STRN/ CLINE COMMON /STRN/ TLIMIT COMMON /STRN/ LN COMMON /STRN/ I, J, K COMMON /STRN/ II, JJ, KK COMMON /STRN/ LEXVAL COMMON /STRN/ SLEN COMMON /STRN/ LEVEL COMMON /STRN/ LEN COMMON /STRN/ INCHAN COMMON /STRN/ OUTCHN COMMON /STRN/ LPTCHN COMMON /STRN/ TTICHN COMMON /STRN/ TTOCHN COMMON /STRN/ PROCCN COMMON /STRN/ COMCHN COMMON /STRN/ TABS COMMON /STRN/ SKIPFL COMMON /STRN/ POFF COMMON /STRN/ FIRST COMMON /STRN/ ISP COMMON /STRN/ ICSTK COMMON /STRN/ IFSP COMMON /STRN/ IFST COMMON /STRN/ LPSP COMMON /STRN/ LPST COMMON /STRN/ TSEEN COMMON /STRN/ CHAR COMMON /STRN/ CTEMP COMMON /STRN/ NEWFIL COMMON /STRN/ COMPMS COMMON /STRN/ LSAVE COMMON /STRN/ PSAVE COMMON /STRN/ FFILE COMMON /STRN/ EOF COMMON /STRN/ LETTER COMMON /STRN/ DIGIT COMMON /STRN/ TAB COMMON /STRN/ EOL COMMON /STRN/ BLANK COMMON /STRN/ QUOTE COMMON /STRN/ GIZZY COMMON /STRN/ LPAREN COMMON /STRN/ RPAREN COMMON /STRN/ AST COMMON /STRN/ COMMA COMMON /STRN/ PERIOD COMMON /STRN/ SLASH COMMON /STRN/ CHAR0 COMMON /STRN/ CHAR1 COMMON /STRN/ CHAR9 COMMON /STRN/ SEMI COMMON /STRN/ EQUAL COMMON /STRN/ CHARA COMMON /STRN/ CHARZ COMMON /STRN/ BBLANK COMMON /STRN/ UPAROW COMMON /STRN/ DOOP COMMON /STRN/ WHILE COMMON /STRN/ ENDOP COMMON /STRN/ FOR COMMON /STRN/ DOLOOP COMMON /STRN/ BREAK COMMON /STRN/ NEXT COMMON /STRN/ IFOP COMMON /STRN/ ELSE COMMON /STRN/ ENDIF COMMON /STRN/ DEFINE COMMON /STRN/ HEAD COMMON /STRN/ EJECT COMMON /STRN/ INCLUD COMMON /STRN/ OUTFIL COMMON /STRN/ IBUF COMMON /STRN/ PBUF COMMON /STRN/ HBUF COMMON /STRN/ OUTBUF COMMON /STRN/ BUF COMMON /STRN/ NAME INTEGER GCHAR, FORMF DATA FORMF /3084/ IF (.NOT. ((.NOT. POFF) .AND. LPTCHN .GE. 0))GO TO 13218 IF (.NOT. (.NOT. SKIPFL))GO TO 13220 IF (.NOT. (TSEEN))GO TO 13222 DO 13224 II = 1, 56 PBUF (II) = BBLANK 13224 CONTINUE II = 1 JJ = 1 CONTINUE 13226 CONTINUE IF (.NOT.(II .LT. INMAX))GO TO 13227 CHAR = GCHAR (IBUF, II) IF (.NOT. (CHAR .NE. TAB))GO TO 13228 CALL PCHAR (PBUF, JJ, CHAR) JJ = JJ + 1 GO TO 13226 13228 CONTINUE DO 13230 K = 1, MAXTAB IF (.NOT. (JJ .GE. TABS (K)))GO TO 13232 13230 CONTINUE CALL PCHAR (PBUF, JJ, CHAR) JJ = JJ + 1 GO TO 13226 13232 CONTINUE TLIMIT = TABS (K) DO 13234 JJ = JJ, TLIMIT CALL PCHAR (PBUF, JJ, BLANK) 13234 CONTINUE GO TO 13226 13227 CONTINUE 13222 CONTINUE IF (.NOT. (CLINE .GE. MAXLIN))GO TO 13236 IF (.NOT. (FIRST))GO TO 13238 FIRST = .FALSE. DO 13240 K = 1, 40 HBUF (K) = BBLANK 13240 CONTINUE 13238 CONTINUE PAGE = PAGE + 1 CALL SET (BBLANK, BUF, 60) CALL EST ('PAGE ', BUF, 1, 5) CALL ESP (PAGE, BUF, 6, 9) CALL EST (' ', BUF, 10, 13) CALL EST (HBUF, BUF, 14, 64) KK = 1 CALL WRLIN (LPTCHN, FORMF, KK) CALL PCHAR (BUF, 65, EOL) KK = 64 CALL WRLIN (LPTCHN, BUF, KK) BUF (1) = BBLANK KK = 1 CALL WRLIN (LPTCHN, BUF, KK) CLINE = 0 13236 CONTINUE GO TO 13221 13220 CONTINUE SKIPFL = .FALSE. RETURN 13221 CONTINUE IF (.NOT. (LINENO .NE. 0))GO TO 13242 CALL SET (BBLANK, BUF, 5) CALL ESP (LINENO, BUF, 1, 4) IF (.NOT. (TSEEN))GO TO 13244 TSEEN = .FALSE. CALL EST (PBUF, BUF, 9, 120) CALL PCHAR (BUF, 121, EOL) KK = 120 GO TO 13245 13244 CONTINUE CALL EST (IBUF, BUF, 9, 88) CALL PCHAR (BUF, 89, EOL) KK = 88 13245 CONTINUE CALL WRLIN (LPTCHN, BUF, KK) 13242 CONTINUE CLINE = CLINE + 1 13218 CONTINUE RETURN END \\\\\ SUBFILE: GCHAR.FR @16:2 23-MAY-1979 <055> (68) INTEGER FUNCTION GCHAR (BUF, INDEX) INTEGER BUF (66), I, INDEX I = ISHFT (INDEX+1, -1) IF (.NOT. (IAND (INDEX, 1) .EQ. 0))GO TO 13246 GCHAR = ISHFT (BUF (I), -8) GO TO 13247 13246 CONTINUE GCHAR = IAND (BUF (I), 255) 13247 CONTINUE RETURN END \\\\\ SUBFILE: PCHAR.FR @16:2 23-MAY-1979 <055> (81) SUBROUTINE PCHAR (BUF, INDEX, CHAR) INTEGER BUF (66), INDEX, CHAR INTEGER I I = ISHFT (INDEX+1, -1) IF (.NOT. (IAND (INDEX, 1) .EQ. 0))GO TO 13248 BUF (I) = IAND (BUF (I), 255) + ISHFT (CHAR, 8) GO TO 13249 13248 CONTINUE BUF (I) = IAND (BUF (I), -256) + IAND (CHAR, 255) 13249 CONTINUE RETURN END \\\\\ SUBFILE: SET.FR @16:2 23-MAY-1979 <055> (42) SUBROUTINE SET (VALUE, BUFFER, COUNT) INTEGER VALUE, COUNT, BUFFER (COUNT), I DO 13250 I = 1, COUNT BUFFER (I) = VALUE 13250 CONTINUE RETURN END \\\\\ SUBFILE: MOVE.FR @16:2 23-MAY-1979 <055> (44) SUBROUTINE MOVE (FROMB, TOB, COUNT) INTEGER COUNT, FROMB (COUNT), TOB (COUNT), I DO 13252 I = 1, COUNT TOB (I) = FROMB (I) 13252 CONTINUE RETURN END \\\\\ SUBFILE: ESPJHP.FR @16:3 23-MAY-1979 <055> (176) SUBROUTINE ESP (WORD, BUF, LEFT, RIGHT) INTEGER WORD, BUF, LEFT, RIGHT INTEGER CHAR, MFLAG, WORK, XMINUS, XZERO, COL DATA XMINUS / 45 / DATA XZERO / 48 / IF (.NOT. (WORD .LT. 0))GO TO 13254 WORK = - WORD MFLAG = 1 GO TO 13255 13254 CONTINUE WORK = WORD MFLAG = 0 13255 CONTINUE COL = RIGHT CONTINUE 13256 CONTINUE IF (.NOT.(COL .GE. LEFT))GO TO 13257 CHAR = MOD (WORK, 10) + XZERO WORK = WORK / 10 CALL PCHAR (BUF, COL, CHAR) COL = COL - 1 IF (.NOT. (WORK .LE. 0))GO TO 13258 GO TO 13257 13258 CONTINUE GO TO 13256 13257 CONTINUE IF (MFLAG .NE. 0 .AND. COL .GE. LEFT) CALL PCHAR (BUF, COL, XMINUS 1) RETURN END \\\\\ SUBFILE: ESTJHP.FR @16:3 23-MAY-1979 <055> (88) SUBROUTINE EST (STR, BUF, LEFT, RIGHT) INTEGER STR, BUF, LEFT, RIGHT INTEGER GETX, PUTX INTEGER GCHAR GETX = 1 PUTX = LEFT CONTINUE 13260 CONTINUE IF (.NOT.(PUTX .LE. RIGHT))GO TO 13261 CALL PCHAR (BUF, PUTX, GCHAR (STR, GETX)) GETX = GETX + 1 PUTX = PUTX + 1 GO TO 13260 13261 CONTINUE RETURN END \\\\\ SUBFILE: EHXJHP.FR @16:3 23-MAY-1979 <055> (148) SUBROUTINE EHX (WORD, BUF, LEFT, RIGHT) INTEGER WORD, BUF, LEFT, RIGHT INTEGER WORK, CHAR, COL, XZERO, XLETA, MASK, BIAS DATA XZERO / 48 / DATA XLETA / 55 / DATA MASK / 15 / COL = RIGHT WORK = WORD CONTINUE 13262 CONTINUE IF (.NOT.(COL .GE. LEFT))GO TO 13263 CHAR = IAND (WORK, MASK) IF (.NOT. (CHAR .GE. 10))GO TO 13264 BIAS = XLETA GO TO 13265 13264 CONTINUE BIAS = XZERO 13265 CONTINUE CALL PCHAR (BUF, COL, CHAR + BIAS) WORK = ISHFT (WORK, -4) COL = COL - 1 GO TO 13262 13263 CONTINUE RETURN END \\\\\ SUBFILE: SORTAJ.FR @16:3 23-MAY-1979 <055> (248) SUBROUTINE SORT (LIST, COUNT, ARRAY, COMP) INTEGER COUNT, LIST (COUNT), ARRAY (COUNT) INTEGER CT, STEP, COMP INTEGER I, J, K, L, M, N K = COUNT IF (K .LE. 1) RETURN CT = K STEP = 1 CONTINUE 13266 CONTINUE K = ISHFT (K, -1) IF (.NOT.(K .NE. 0))GO TO 13267 STEP = STEP + STEP GO TO 13266 13267 CONTINUE STEP = STEP - 1 CONTINUE 13268 CONTINUE K = 1 CONTINUE 13270 CONTINUE L = K I = L + STEP J = I N = LIST (I) CONTINUE 13272 CONTINUE M = LIST (L) IF (.NOT. (COMP (ARRAY (N), ARRAY (M)) .LT. 0))GO TO 13274 LIST (J) = M J = L L = J - STEP IF (.NOT. (L .GE. 1))GO TO 13276 GO TO 13272 13276 CONTINUE 13274 CONTINUE LIST (J) = N K = K + 1 IF (.NOT.(K + STEP .LE. CT))GO TO 13271 GO TO 13270 13271 CONTINUE STEP = ISHFT (STEP, -1) IF (.NOT.(STEP .NE. 0))GO TO 13269 GO TO 13268 13269 CONTINUE RETURN END \\\\\ SUBFILE: RSXINT.FR @16:3 23-MAY-1979 <055> (428) SUBROUTINE OPENF (CHAN, FILE, ERROR) INTEGER CHAN, FILE (15), ERROR OPEN (UNIT = CHAN, NAME = FILE, SHARED, TYPE = 'OLD', ERR = 100) ERROR = 1 RETURN 100 ERROR = -1 RETURN END SUBROUTINE OPENN (CHAN, FILE, ERROR) INTEGER CHAN, FILE (15), ERROR OPEN (UNIT = CHAN, NAME = FILE, TYPE = 'NEW', ERR = 100) ERROR = 1 RETURN 100 ERROR = -1 RETURN END SUBROUTINE CLOSF (CHAN, ERROR) INTEGER CHAN, ERROR CLOSE (UNIT = CHAN, ERR = 100) ERROR = 1 RETURN 100 ERROR = -1 RETURN END SUBROUTINE DELETE (CHAN, FILE) INTEGER CHAN, FILE (15) CLOSE (UNIT = CHAN, DISP = 'DELETE') RETURN END SUBROUTINE REW (CHAN, FILE) INTEGER CHAN, FILE (15) REWIND CHAN RETURN END SUBROUTINE RDLIN (CHAN, BUFFER, MAX, ERROR) INTEGER CHAN, BUFFER (40), MAX, ERROR INTEGER WORDS WORDS = (MAX + 1)/2 READ (CHAN, 1000, END = 100) (BUFFER (I), I = 1, WORDS) ERROR = 1 RETURN 100 ERROR = 9 RETURN 1000 FORMAT (40A2) END SUBROUTINE WRLIN (CHAN, BUFFER, CHARS) INTEGER CHAN, BUFFER (66), CHARS INTEGER WORDS WORDS = (CHARS + 1)/2 WRITE (CHAN, 1000) (BUFFER (I), I = 1, WORDS) RETURN 1000 FORMAT (1X, 66A2) END SUBROUTINE RDSEQ (CHAN, BUFFER, COUNT, ERROR) INTEGER CHAN, COUNT, BUFFER (COUNT), ERROR INTEGER WORDS WORDS = (COUNT + 1)/2 READ (CHAN, 1000, END = 100) (BUFFER (I), I = 1, WORDS) ERROR = 1 RETURN 100 ERROR = 9 RETURN 1000 FORMAT (1A2) END SUBROUTINE WRSEQ (CHAN, BUFFER, COUNT) INTEGER CHAN, COUNT, BUFFER (COUNT) INTEGER WORDS WORDS = (COUNT + 1)/2 WRITE (CHAN, 1000) (BUFFER (I), I = 1, WORDS) RETURN 1000 FORMAT (1A2) END \\\\\