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 /12/ IF(POFF.OR.LPTCHN.LT.0)GOTO 13218 IF(SKIPFL)GOTO 13220 IF (.NOT. (TSEEN))GO TO 13222 CALL SET(BBLANK,PBUF,56) 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. CALL SET(BBLANK,HBUF,40) 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) CALL SET(BBLANK,BUF,2) 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) KK = 88 13245 CONTINUE CALL WRLIN (LPTCHN, BUF, KK) 13242 CONTINUE CLINE = CLINE + 1 13218 CONTINUE RETURN END