<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
	<id>https://pickwiki.org/index.php?action=history&amp;feed=atom&amp;title=LFormat</id>
	<title>LFormat - Revision history</title>
	<link rel="self" type="application/atom+xml" href="https://pickwiki.org/index.php?action=history&amp;feed=atom&amp;title=LFormat"/>
	<link rel="alternate" type="text/html" href="https://pickwiki.org/index.php?title=LFormat&amp;action=history"/>
	<updated>2026-04-28T22:11:43Z</updated>
	<subtitle>Revision history for this page on the wiki</subtitle>
	<generator>MediaWiki 1.43.0</generator>
	<entry>
		<id>https://pickwiki.org/index.php?title=LFormat&amp;diff=2001&amp;oldid=prev</id>
		<title>Conversion script: link fix</title>
		<link rel="alternate" type="text/html" href="https://pickwiki.org/index.php?title=LFormat&amp;diff=2001&amp;oldid=prev"/>
		<updated>2015-02-26T23:48:55Z</updated>

		<summary type="html">&lt;p&gt;link fix&lt;/p&gt;
&lt;p&gt;&lt;b&gt;New page&lt;/b&gt;&lt;/p&gt;&lt;div&gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
* A utility to print source code to an HP laser printer with various&lt;br /&gt;
* output options. Written by Adrian Matthews in 1994&lt;br /&gt;
&lt;br /&gt;
$OPTIONS SMA.HEADING&lt;br /&gt;
      PROMPT &amp;#039;&amp;#039;&lt;br /&gt;
&lt;br /&gt;
	       DEFAULT.PRINTER = &amp;#039;\\PRINTSERV\[[Development_HP8150]]&amp;#039;&lt;br /&gt;
      DEFAULT.PRINT = DQUOTE(DEFAULT.PRINTER)&lt;br /&gt;
      ESC = CHAR(27)&lt;br /&gt;
      READLIST PASSED.RECORDS ELSE PASSED.RECORDS = &amp;#039;&amp;#039;&lt;br /&gt;
      COND = ESC:&amp;quot;(10U&amp;quot;:ESC:&amp;#039;(s0P&amp;#039;:ESC:&amp;#039;&amp;amp;k2S&amp;#039;&lt;br /&gt;
      SENTENCE = CONVERT(&amp;#039; &amp;#039;,@FM,FIELD(@SENTENCE,&amp;#039;-&amp;#039;,1))&lt;br /&gt;
      OPTIONS = FIELD(@SENTENCE,&amp;#039;-&amp;#039;,2,999)&lt;br /&gt;
      CONVERT &amp;#039; &amp;#039; TO &amp;#039;&amp;#039; IN OPTIONS&lt;br /&gt;
      CONVERT &amp;#039;-&amp;#039; TO @FM IN OPTIONS&lt;br /&gt;
      NO.NUM.OPTIONS = CONVERT(&amp;#039;0123456789&amp;#039;,&amp;#039;&amp;#039;,OPTIONS)&lt;br /&gt;
      OPT.STRING = &amp;#039;&amp;#039;&lt;br /&gt;
      LOCATE &amp;#039;S&amp;#039; IN NO.NUM.OPTIONS&amp;lt;1&amp;gt; SETTING POS THEN&lt;br /&gt;
         START.LINE = TRIM(CONVERT(&amp;#039;S&amp;#039;,&amp;#039;&amp;#039;,OPTIONS&amp;lt;POS&amp;gt;))&lt;br /&gt;
         IF NOT(NUM(START.LINE)) THEN&lt;br /&gt;
            ERR= &amp;#039;-S must be followed by a number&amp;#039;&lt;br /&gt;
            GOSUB ERR.HANDLER&lt;br /&gt;
            STOP&lt;br /&gt;
         END&lt;br /&gt;
         OPT.STRING = &amp;#039;From line - &amp;#039; : START.LINE&lt;br /&gt;
      END ELSE&lt;br /&gt;
         START.LINE = 1&lt;br /&gt;
      END&lt;br /&gt;
      LOCATE &amp;#039;E&amp;#039; IN NO.NUM.OPTIONS&amp;lt;1&amp;gt; SETTING POS THEN&lt;br /&gt;
         END.LINE = TRIM(CONVERT(&amp;#039;E&amp;#039;,&amp;#039;&amp;#039;,OPTIONS&amp;lt;POS&amp;gt;))&lt;br /&gt;
         IF NOT(NUM(END.LINE)) THEN&lt;br /&gt;
            ERR = &amp;#039;-E must be followed by a number&amp;#039;&lt;br /&gt;
            GOSUB ERR.HANDLER&lt;br /&gt;
            STOP&lt;br /&gt;
         END&lt;br /&gt;
         OPT.STRING := &amp;#039; to line &amp;#039;:END.LINE&lt;br /&gt;
      END ELSE&lt;br /&gt;
         END.LINE = 999999&lt;br /&gt;
      END&lt;br /&gt;
      LOCATE &amp;#039;EXPAND&amp;#039; IN OPTIONS&amp;lt;1&amp;gt; SETTING POS THEN&lt;br /&gt;
         OPT.STRING&amp;lt;-1&amp;gt; = &amp;quot;INCLUDEs will not be expanded&amp;quot;&lt;br /&gt;
         MODE = &amp;#039;&amp;#039;&lt;br /&gt;
      END ELSE&lt;br /&gt;
         MODE = &amp;#039;EXPAND&amp;#039;&lt;br /&gt;
         OPT.STRING&amp;lt;-1&amp;gt; = &amp;quot;INCLUDEs will be expanded&amp;quot;&lt;br /&gt;
      END&lt;br /&gt;
      LOCATE &amp;#039;P&amp;#039; IN OPTIONS&amp;lt;1&amp;gt; SETTING POS THEN&lt;br /&gt;
         LANDSCAPE = @FALSE&lt;br /&gt;
         OPT.STRING&amp;lt;-1&amp;gt; = &amp;#039;Output in portrait format&amp;#039;&lt;br /&gt;
      END ELSE&lt;br /&gt;
         LANDSCAPE = @TRUE&lt;br /&gt;
         OPT.STRING&amp;lt;-1&amp;gt; = &amp;quot;Output in landscape format&amp;quot;&lt;br /&gt;
      END&lt;br /&gt;
      LOCATE &amp;#039;LPI&amp;#039; IN NO.NUM.OPTIONS&amp;lt;1&amp;gt; SETTING POS THEN&lt;br /&gt;
         LPI = TRIM(CONVERT(&amp;#039;LPI&amp;#039;,&amp;#039;&amp;#039;,OPTIONS&amp;lt;POS&amp;gt;))&lt;br /&gt;
      END ELSE&lt;br /&gt;
         LPI = 8&lt;br /&gt;
      END&lt;br /&gt;
      BEGIN CASE&lt;br /&gt;
         CASE LPI = 8&lt;br /&gt;
            LPI = ESC:&amp;#039;&amp;amp;l8D&amp;#039;&lt;br /&gt;
            LINES.PER.COL = 54&lt;br /&gt;
            PORT.LINES = 80&lt;br /&gt;
            OPT.STRING := &amp;#039; at eight lines per inch&amp;#039;&lt;br /&gt;
         CASE LPI = 12&lt;br /&gt;
            LPI = ESC:&amp;#039;&amp;amp;l10D&amp;#039;&lt;br /&gt;
            LINES.PER.COL=86&lt;br /&gt;
            PORT.LINES = 126&lt;br /&gt;
            OPT.STRING := &amp;#039; at twelve lines per inch&amp;#039;&lt;br /&gt;
         CASE 1&lt;br /&gt;
            ERR = &amp;#039;Lines per inch must be 8 or 12&amp;#039;&lt;br /&gt;
            GOSUB ERR.HANDLER&lt;br /&gt;
            STOP&lt;br /&gt;
      END CASE&lt;br /&gt;
      LOCATE &amp;#039;NOLINES&amp;#039; IN OPTIONS&amp;lt;1&amp;gt; SETTING POS THEN&lt;br /&gt;
         NOLINES = @TRUE&lt;br /&gt;
         OPT.STRING&amp;lt;-1&amp;gt; = &amp;#039;Line-up bars will not be printed&amp;#039;&lt;br /&gt;
      END ELSE&lt;br /&gt;
         OPT.STRING&amp;lt;-1&amp;gt; = &amp;#039;Line-up bars will be printed&amp;#039;&lt;br /&gt;
         NOLINES = @FALSE&lt;br /&gt;
      END&lt;br /&gt;
      FILE.NAME = SENTENCE&amp;lt;2&amp;gt;&lt;br /&gt;
      RECORD.ID = SENTENCE&amp;lt;3&amp;gt;&lt;br /&gt;
      IF FILE.NAME = &amp;#039;&amp;#039; AND RECORD.ID = &amp;#039;&amp;#039; AND OPTIONS = &amp;#039;&amp;#039; THEN&lt;br /&gt;
         CRT @SYS.BELL&lt;br /&gt;
         STOP&lt;br /&gt;
      END&lt;br /&gt;
      LINES.PER.PAGE = LINES.PER.COL * 2&lt;br /&gt;
      IF MODE = &amp;#039;EXPAND&amp;#039; THEN ANS= &amp;#039;Y&amp;#039; ELSE ANS = &amp;#039;S&amp;#039;&lt;br /&gt;
      PASSED.RECORDS&amp;lt;-1&amp;gt; = RECORD.ID&lt;br /&gt;
            PERFORM &amp;#039;SETPTR 0,80,63,0,0,1,AT &amp;#039;:DEFAULT.PRINTER&lt;br /&gt;
      IF LANDSCAPE THEN&lt;br /&gt;
        OPEN &amp;#039;&amp;amp;HOLD&amp;amp;&amp;#039; TO F.HOLD ELSE STOP &amp;#039;Cannot open the &amp;amp;HOLD&amp;amp; file&amp;#039;&lt;br /&gt;
      END&lt;br /&gt;
      ERR.FLAG = 0&lt;br /&gt;
      TERM.WIDTH = 0&lt;br /&gt;
      DIM REC(99) ; MAT REC = &amp;#039;&amp;#039;&lt;br /&gt;
      DIM SAVE.INDENT(99) ; MAT SAVE.INDENT = &amp;#039;&amp;#039;&lt;br /&gt;
      DIM AMT(99) ; MAT AMT = &amp;#039;&amp;#039;&lt;br /&gt;
      DIM SAVE.CNT(99) ; MAT SAVE.CNT = &amp;#039;&amp;#039;&lt;br /&gt;
      DIM SAVE.MORE(99) ; MAT SAVE.MORE = &amp;#039;&amp;#039;&lt;br /&gt;
      VINCLUDE = 0&lt;br /&gt;
      CALL !GETPU(2,0,TERM.WIDTH,ERR.FLAG)&lt;br /&gt;
      IF NOLINES THEN&lt;br /&gt;
         MASK = SPACE(200)&lt;br /&gt;
      END ELSE&lt;br /&gt;
         MASK = &amp;quot;      &amp;quot;:CHAR(179):&amp;quot;  &amp;quot;:CHAR(179):&amp;quot;  &amp;quot;:CHAR(179):&amp;quot;  &amp;quot;:CHAR(179):&amp;quot;  &amp;quot;:CHAR(179):&amp;quot;  &amp;quot;:CHAR(179):&amp;quot;  &amp;quot;:CHAR(179):&amp;quot;  &amp;quot;:CHAR(179):&amp;quot;  &amp;quot;:CHAR(179):&amp;quot;  &amp;quot;:CHAR(179):&amp;quot;  &amp;quot;:CHAR(179):&amp;quot;  &amp;quot;:CHAR(179):&amp;quot;  &amp;quot;:CHAR(179):&amp;quot;  &amp;quot;:CHAR(179):&amp;quot;  &amp;quot;:CHAR(179):&amp;quot;  &amp;quot;:CHAR(179):&amp;quot;  &amp;quot;:CHAR(179):&amp;quot;  &amp;quot;:CHAR(179):&amp;quot;  &amp;quot;:CHAR(179):&amp;quot;  &amp;quot;:CHAR(179):&amp;quot;  &amp;quot;:CHAR(179):&amp;quot;  &amp;quot;:CHAR(179):&amp;quot;  &amp;quot;:CHAR(179):&amp;quot;  &amp;quot;:CHAR(179):&amp;quot;  &amp;quot;:CHAR(179):&amp;quot;  &amp;quot;:CHAR(179):&amp;quot;  &amp;quot;:CHAR(179):&amp;quot;  &amp;quot;:CHAR(179):&amp;quot;  &amp;quot;:CHAR(179):&amp;quot;  &amp;quot;:CHAR(179):&amp;quot;  &amp;quot;:CHAR(179):&amp;quot;  &amp;quot;:CHAR(179):&amp;quot;  &amp;quot;:CHAR(179):&amp;quot;  &amp;quot;:CHAR(179):&amp;quot;  &amp;quot;:CHAR(179):&amp;quot;  &amp;quot;:CHAR(179):&amp;quot;  &amp;quot;:CHAR(179):&amp;quot;  &amp;quot;:CHAR(179):&amp;quot;  &amp;quot;:CHAR(179):&amp;quot;  &amp;quot;:CHAR(179):&amp;quot;  &amp;quot;:CHAR(179):&amp;quot;  &amp;quot;:CHAR(179):&amp;quot;  &amp;quot;:CHAR(179):&amp;quot;  &amp;quot;:CHAR(179):&amp;quot;  &amp;quot;:CHAR(179):&amp;quot;  &amp;quot;:CHAR(179):&amp;quot;  &amp;quot;:CHAR(179):&amp;quot;  &amp;quot;:CHAR(179):&amp;quot;  &amp;quot;:CHAR(179):&amp;quot;  &amp;quot;:CHAR(179):&amp;quot;  &amp;quot;:CHAR(179):&amp;quot;  &amp;quot;:CHAR(179):&amp;quot;  &amp;quot;:CHAR(179):&amp;quot;  &amp;quot;:CHAR(179):&amp;quot;  &amp;quot;:CHAR(179):&amp;quot;  &amp;quot;:CHAR(179):&amp;quot;  &amp;quot;:CHAR(179):&amp;quot;  &amp;quot;:CHAR(179):&amp;quot;  &amp;quot;:CHAR(179):&amp;quot;  &amp;quot;:CHAR(179):&amp;quot;  &amp;quot;:CHAR(179)&lt;br /&gt;
      END&lt;br /&gt;
      LOOP&lt;br /&gt;
         REMOVE RECORD.ID FROM PASSED.RECORDS SETTING MORE.IDS&lt;br /&gt;
         FIELD.NO = 1&lt;br /&gt;
         LOOP&lt;br /&gt;
            BEGIN CASE&lt;br /&gt;
               CASE FIELD.NO = 1&lt;br /&gt;
                  LOOP&lt;br /&gt;
                     ERR = &amp;#039;&amp;#039;&lt;br /&gt;
                     IF NOT(FILE.NAME) THEN&lt;br /&gt;
                        CRT&lt;br /&gt;
                        CRT &amp;#039;Enter file name : &amp;#039;: ; INPUT FILE.NAME&lt;br /&gt;
                     END&lt;br /&gt;
                     IF FILE.NAME THEN&lt;br /&gt;
                        OPEN FILE.NAME TO F.FILE ELSE&lt;br /&gt;
                           ERR = FILE.NAME:&amp;#039; is not a valid file name&amp;#039;&lt;br /&gt;
                           GOSUB ERR.HANDLER&lt;br /&gt;
                           FILE.NAME = &amp;#039;&amp;#039;&lt;br /&gt;
                        END&lt;br /&gt;
                     END ELSE&lt;br /&gt;
                        FIELD.NO = 99&lt;br /&gt;
                        EXIT&lt;br /&gt;
                     END&lt;br /&gt;
                     FIELD.NO += (NOT(ERR))&lt;br /&gt;
                  UNTIL NOT(ERR) REPEAT&lt;br /&gt;
               CASE FIELD.NO = 2&lt;br /&gt;
                  LOOP&lt;br /&gt;
                     ERR = &amp;#039;&amp;#039;&lt;br /&gt;
                     IF NOT(RECORD.ID) THEN&lt;br /&gt;
                        CRT&lt;br /&gt;
                        CRT &amp;#039;Enter record ID : &amp;#039;: ; INPUT RECORD.ID&lt;br /&gt;
                     END&lt;br /&gt;
                     IF RECORD.ID THEN&lt;br /&gt;
                        READV RECV FROM F.FILE,RECORD.ID,0 ELSE&lt;br /&gt;
                           ERR = RECORD.ID:&amp;#039; does not exist on &amp;#039;:FILE.NAME&lt;br /&gt;
                           GOSUB ERR.HANDLER&lt;br /&gt;
                           RECORD.ID = &amp;#039;&amp;#039;&lt;br /&gt;
                        END&lt;br /&gt;
                     END ELSE&lt;br /&gt;
                        FIELD.NO = 1&lt;br /&gt;
                        FILE.NAME = &amp;#039;&amp;#039;&lt;br /&gt;
                        EXIT&lt;br /&gt;
                     END&lt;br /&gt;
                     FIELD.NO += (NOT(ERR))&lt;br /&gt;
                  UNTIL NOT(ERR) REPEAT&lt;br /&gt;
               CASE FIELD.NO = 3&lt;br /&gt;
                  CRT&lt;br /&gt;
                  CRT&lt;br /&gt;
                  CRT &amp;#039;[LFORMAT V1.0]&amp;#039;&lt;br /&gt;
                  CRT&lt;br /&gt;
                  LOOP&lt;br /&gt;
                     REMOVE STRING FROM OPT.STRING SETTING MORE&lt;br /&gt;
                     IF STRING THEN CRT STRING&lt;br /&gt;
                  WHILE MORE REPEAT&lt;br /&gt;
                  CRT&lt;br /&gt;
                  PERFORM &amp;#039;FORMAT &amp;#039;:FILE.NAME:&amp;#039; &amp;#039;:RECORD.ID&lt;br /&gt;
                  READ RECV FROM F.FILE,RECORD.ID THEN NULL&lt;br /&gt;
                  MAX.LINES = DCOUNT(RECV,@FM)&lt;br /&gt;
                  REC(VINCLUDE) = RECV&lt;br /&gt;
                  PTR.WIDTH = &amp;#039;&amp;#039;&lt;br /&gt;
                  PTR.LENGTH = &amp;#039;&amp;#039;&lt;br /&gt;
                  PTR.TOP.MAR = &amp;#039;&amp;#039;&lt;br /&gt;
                  PTR.BOT.MAR = &amp;#039;&amp;#039;&lt;br /&gt;
                  PTR.MODE = &amp;#039;&amp;#039;&lt;br /&gt;
                  PTR.OPTIONS = &amp;#039;&amp;#039;&lt;br /&gt;
                  CALL !SET.PTR(-1,PTR.WIDTH,PTR.LENGTH,PTR.TOP.MAR,PTR.BOT.MAR,PTR.MODE,PTR.OPTIONS)&lt;br /&gt;
                  IF LANDSCAPE THEN&lt;br /&gt;
                     CALL !SET.PTR(0,92,99,0,0,3,&amp;#039;BANNER &amp;#039;:RECORD.ID:@USERNO:&amp;#039;,NHEAD&amp;#039;)&lt;br /&gt;
                     PRINTER.WIDTH = 92-9&lt;br /&gt;
                  END ELSE&lt;br /&gt;
                     CALL !SET.PTR(0,129,PORT.LINES,0,0,PTR.MODE,PTR.OPTIONS)&lt;br /&gt;
                     PRINTER.WIDTH = 129 - 9&lt;br /&gt;
                  END&lt;br /&gt;
                  PRINTER ON&lt;br /&gt;
                  IF NOT(LANDSCAPE) THEN&lt;br /&gt;
                     PRINT ESC:&amp;#039;&amp;amp;l0O&amp;#039;:COND:LPI&lt;br /&gt;
                     HEADING &amp;quot;File, Record = &amp;quot;:FILE.NAME:&amp;quot;, &amp;quot;:RECORD.ID:&amp;quot;&amp;#039;G&amp;#039;Acc. - &amp;quot;:@WHO:&amp;quot;&amp;#039;GTG&amp;#039;Dev. - &amp;quot;:FIELD(@LOGNAME,&amp;#039;\&amp;#039;,2):&amp;quot;&amp;#039;G&amp;#039;Page &amp;#039;SL&amp;#039;&amp;quot;:STR(CHAR(205),129)&lt;br /&gt;
                  END&lt;br /&gt;
                  INDENT = 0&lt;br /&gt;
                  CNT = 0&lt;br /&gt;
                  AMT(VINCLUDE) = MAX.LINES&lt;br /&gt;
                  GRAND.TOT = AMT(VINCLUDE)&lt;br /&gt;
                  CRT STR(@(-10),INT(((AMT(VINCLUDE)/10)[[/TERM]].WIDTH) + 1) + 2):@(-4):&amp;#039;Performing a Lineup Format ...&amp;#039;:@(-3)&lt;br /&gt;
                  GOSUB PROCESS.REC&lt;br /&gt;
                  IF LANDSCAPE THEN&lt;br /&gt;
                     FIELD.NO = 4&lt;br /&gt;
                  END ELSE&lt;br /&gt;
                     FIELD.NO = 5&lt;br /&gt;
                  END&lt;br /&gt;
               CASE FIELD.NO = 4&lt;br /&gt;
                  PRINTER CLOSE&lt;br /&gt;
                  PRINTER OFF&lt;br /&gt;
                  CALL !SET.PTR(0,188,LINES.PER.COL + 2,0,0,PTR.MODE,PTR.OPTIONS)&lt;br /&gt;
                  PRINTER ON&lt;br /&gt;
                  PRINT ESC:&amp;#039;&amp;amp;l1O&amp;#039;:COND:LPI&lt;br /&gt;
                  HEADING &amp;quot;File Name - &amp;quot;:FILE.NAME:&amp;quot;&amp;#039;G&amp;#039;Record Name - &amp;quot;:RECORD.ID:&amp;quot;&amp;#039;G&amp;#039;Account - &amp;quot;:@WHO:&amp;quot;&amp;#039;G&amp;#039;Date and Time - &amp;#039;TG&amp;#039;Developer - &amp;quot;:FIELD(@LOGNAME,&amp;#039;\&amp;#039;,2):&amp;quot;&amp;#039;G&amp;#039;Page &amp;#039;SL&amp;#039;&amp;quot;:STR(CHAR(205),188)&lt;br /&gt;
                  READ HOLD.REC FROM F.HOLD,RECORD.ID:@USERNO THEN&lt;br /&gt;
*                     DELETE F.HOLD,RECORD.ID:@USERNO&lt;br /&gt;
                     HOLD.TOT = DCOUNT(HOLD.REC,@FM)&lt;br /&gt;
                     FOR CNT = 1 TO HOLD.TOT STEP LINES.PER.PAGE&lt;br /&gt;
                        FOR X = CNT TO CNT+(LINES.PER.COL-1)&lt;br /&gt;
                           PRINT FMT(HOLD.REC&amp;lt;X&amp;gt;,&amp;#039;92L&amp;#039;):&amp;#039; &amp;#039;:CHAR(221):&amp;#039; &amp;#039;:FMT(HOLD.REC&amp;lt;X+LINES.PER.COL&amp;gt;,&amp;#039;92L&amp;#039;)&lt;br /&gt;
                        NEXT X&lt;br /&gt;
                     NEXT CNT&lt;br /&gt;
                  END ELSE&lt;br /&gt;
                     PRINT &amp;quot;Couldn&amp;#039;t read &amp;quot;:RECORD.ID:@USERNO:&amp;quot; from &amp;amp;HOLD&amp;amp;&amp;quot;&lt;br /&gt;
                  END&lt;br /&gt;
                  FIELD.NO = 5&lt;br /&gt;
               CASE FIELD.NO = 5&lt;br /&gt;
                  PRINTER CLOSE&lt;br /&gt;
                  PRINTER OFF&lt;br /&gt;
                  CRT&lt;br /&gt;
                  IF START.LINE AND END.LINE NE 999999 THEN&lt;br /&gt;
                     CRT &amp;#039;Lines &amp;#039;:START.LINE:&amp;#039; to &amp;#039;:END.LINE:&amp;#039; printed to unit 0&amp;#039;&lt;br /&gt;
                  END ELSE&lt;br /&gt;
                     CRT GRAND.TOT:&amp;#039; lines printed to unit 0&amp;#039;&lt;br /&gt;
                  END&lt;br /&gt;
                  CALL !SET.PTR(0,PTR.WIDTH,PTR.LENGTH,PTR.TOP.MAR,PTR.BOT.MAR,PTR.MODE,PTR.OPTIONS)&lt;br /&gt;
                  FIELD.NO = 99&lt;br /&gt;
            END CASE&lt;br /&gt;
         UNTIL FIELD.NO = 99 REPEAT&lt;br /&gt;
      WHILE MORE.IDS REPEAT&lt;br /&gt;
      CRT&lt;br /&gt;
      STOP&lt;br /&gt;
PROCESS.REC:&lt;br /&gt;
      LOOP&lt;br /&gt;
         CNT += 1&lt;br /&gt;
         IF NOT(MOD(CNT,10)) THEN&lt;br /&gt;
            CRT &amp;quot;&amp;gt;&amp;quot;:&lt;br /&gt;
         END&lt;br /&gt;
         REMOVE LINE FROM REC(VINCLUDE) SETTING MORE&lt;br /&gt;
         IF NOT(VINCLUDE) THEN&lt;br /&gt;
            IF CNT LT START.LINE OR CNT GT END.LINE THEN&lt;br /&gt;
               IF NOT(MORE) THEN EXIT ELSE CONTINUE&lt;br /&gt;
            END&lt;br /&gt;
         END&lt;br /&gt;
         LINE.NO = FMT(CNT,&amp;quot;4&amp;#039;0&amp;#039;R&amp;quot;):(IF VINCLUDE THEN &amp;quot;$:&amp;quot; ELSE &amp;quot;: &amp;quot;):&amp;quot; &amp;quot;&lt;br /&gt;
         TEST = TRIM(LINE)&lt;br /&gt;
         FLINE = TRIMF(LINE)&lt;br /&gt;
         LINE.LEN = LEN(LINE)&lt;br /&gt;
         IF LEN(TEST) = 0 THEN&lt;br /&gt;
            PRINT LINE.NO:MASK[1,INDENT]&lt;br /&gt;
         END ELSE&lt;br /&gt;
            INDENT = LINE.LEN - LEN(FLINE)&lt;br /&gt;
            LINE = MASK[1, INDENT]:FLINE&lt;br /&gt;
            FOR XX = 1 TO LINE.LEN STEP PRINTER.WIDTH&lt;br /&gt;
               PRINT (IF XX = 1 THEN LINE.NO ELSE SPACE(7)):LINE[XX,PRINTER.WIDTH]&lt;br /&gt;
            NEXT XX&lt;br /&gt;
         END&lt;br /&gt;
         IF LINE[1,8] = &amp;quot;$INCLUDE&amp;quot; AND ANS NE &amp;quot;S&amp;quot; THEN&lt;br /&gt;
            IF ANS NE &amp;quot;E&amp;quot; THEN&lt;br /&gt;
               CRT&lt;br /&gt;
               LOOP&lt;br /&gt;
                  CRT &amp;#039;Expand &amp;#039;:LINE&lt;br /&gt;
                  PREV.ANS = ANS&lt;br /&gt;
                  CRT &amp;#039;(Y)es, (N)o, (E)xpand all, (S)kip all : &amp;#039;:ANS:@(-9): ; INPUT ANS,1&lt;br /&gt;
                  IF ANS = &amp;#039;&amp;#039; THEN ANS = PREV.ANS&lt;br /&gt;
                  ANS = UPCASE(ANS)&lt;br /&gt;
               UNTIL ANS MATCHES &amp;#039;Y&amp;#039;:@VM:&amp;#039;N&amp;#039;:@VM:&amp;#039;E&amp;#039;:@VM:&amp;#039;S&amp;#039; DO&lt;br /&gt;
                  CRT @SYS.BELL:&lt;br /&gt;
               REPEAT&lt;br /&gt;
            END&lt;br /&gt;
            IF ANS = &amp;#039;Y&amp;#039; OR ANS = &amp;#039;E&amp;#039; THEN&lt;br /&gt;
               SAVE.CNT(VINCLUDE) = CNT&lt;br /&gt;
               SAVE.MORE(VINCLUDE) = MORE&lt;br /&gt;
               SAVE.INDENT(VINCLUDE) = INDENT&lt;br /&gt;
               CNT = 0&lt;br /&gt;
               RECORD.ID = FIELD(LINE,&amp;#039; &amp;#039;,3)&lt;br /&gt;
               IF RECORD.ID = &amp;#039;&amp;#039; THEN&lt;br /&gt;
                  RECORD.ID = FIELD(LINE,&amp;#039; &amp;#039;,2)&lt;br /&gt;
               END ELSE&lt;br /&gt;
                  FILE.NAME = FIELD(LINE,&amp;#039; &amp;#039;,2)&lt;br /&gt;
               END&lt;br /&gt;
               HUSH ON ; PRINTER OFF&lt;br /&gt;
               PERFORM &amp;#039;FORMAT &amp;#039; : FILE.NAME:&amp;#039; &amp;#039;:RECORD.ID&lt;br /&gt;
               PRINTER ON ; HUSH OFF&lt;br /&gt;
               RECV = TRANS(FILE.NAME,RECORD.ID,-1,&amp;#039;X&amp;#039;)&lt;br /&gt;
               VINCLUDE += 1&lt;br /&gt;
               REC(VINCLUDE) = RECV&lt;br /&gt;
               AMT(VINCLUDE) = DCOUNT(REC(VINCLUDE),@FM)&lt;br /&gt;
               INDENT = 0&lt;br /&gt;
               GRAND.TOT += AMT(VINCLUDE)&lt;br /&gt;
               GOSUB PROCESS.REC&lt;br /&gt;
               VINCLUDE -= 1&lt;br /&gt;
               CNT = SAVE.CNT(VINCLUDE)&lt;br /&gt;
               MORE = SAVE.MORE(VINCLUDE)&lt;br /&gt;
               INDENT = SAVE.INDENT(VINCLUDE)&lt;br /&gt;
            END&lt;br /&gt;
         END&lt;br /&gt;
      WHILE MORE REPEAT&lt;br /&gt;
      RETURN&lt;br /&gt;
ERR.HANDLER:&lt;br /&gt;
      CRT&lt;br /&gt;
      CRT @SYS.BELL:&amp;#039;LFORMAT&amp;gt; &amp;#039;:ERR&lt;br /&gt;
      CRT&lt;br /&gt;
      RETURN&lt;br /&gt;
   END&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;/div&gt;</summary>
		<author><name>Conversion script</name></author>
	</entry>
</feed>