{****************************************************************************** Quick and dirty pascal printer Accepts source files, pagenates and formats a listing. ******************************************************************************} program pl(source, output); const maxchr = 80; { maximum number of characters in output line } maxpag = 60; { maximum number of lines in output page } var linec: integer; { line counter } pagec: integer; { page counter } c: char; source: text; begin linec := 0; { start behind page } pagec := 1; { 1st page } reset(source); { open source file } repeat { printout } if linec < 1 then begin { output header } writeln(' ', ' Page ', pagec:1); writeln; pagec := succ(pagec); { increment page } linec := 3 { set line number (after header) } end; write(' '); { output left margin } while not eoln(source) do begin { write source line } read(source, c); { get next source character } if c = '\ff' then begin { form feed } writeln; { next line } page(output); { next page } linec := 0 { set next page } end else write(c) { output character } end; readln(source); { next source line } writeln; if linec <> 0 then linec := succ(linec); { increment line } if linec > maxpag then begin page(output); linec := 0 { set next page } end until eof(source) { end of file } end.