home *** CD-ROM | disk | FTP | other *** search
- {$B-}
- Program PrnFile(Input,Printer);
- Const
- max = 80;
-
- Type
- Today = array [1..3] of integer;
- Character = string[max];
- Name = string[12];
-
- Var
- Date: Today;
- X, Line, Number, Page: integer;
- DataLine: Character;
- FileName: Name;
- Infile: text;
-
- Procedure Header(Dat: Today; Prog: Name);
- Var
- X, Count: integer;
- begin
- for Count := 1 to 13 do
- writeln(lst);
- write(lst,' ');
- writeln(lst,'***********************************************');
- write(lst,' ');
- writeln(lst,'***********************************************');
- write(lst,' ');
- writeln(lst,'***********************************************');
- write(lst,' ');
- write(lst,'*** FILE NAME: ',Prog);
- if length(Prog) < 12 then
- for X := length(Prog) to 12 do
- write(lst,' ');
- writeln(lst,' ***');
- write(lst,' ');
- writeln(lst,'*** AUTHOR: Russell J. Friery ***');
- write(lst,' ');
- write(lst,'*** DATE: ',Date[1]:2,'/',Date[2]:2,'/');
- writeln(lst,Date[3]:2,' ***');
- write(lst,' ');
- writeln(lst,'*** COMPUTER: Osborne I Z80 Microprocessor ***');
- write(lst,' ');
- writeln(lst,'*** PRINTER: Sears Electronic Typewriter ***');
- write(lst,' ');
- writeln(lst,'*** COMMUNICATIONS: External Interface Unit ***');
- write(lst,' ');
- writeln(lst,'***********************************************');
- write(lst,' ');
- writeln(lst,'***********************************************');
- write(lst,' ');
- writeln(lst,'***********************************************');
- for Count := 1 to 41 do
- writeln(lst);
- end;
-
- Procedure PrintHeader(Dat: Today; Prog: Name; Page: integer);
- begin
- writeln(lst);
- writeln(lst);
- write(lst,'PROGRAM LISTER FILE: ',Prog);
- writeln(lst,' PAGE: ',Page);
- writeln(lst,'AUTHOR: Russell J. Friery');
- writeln(lst,'SOCIAL SECURITY NO: 029-50-9863');
- writeln(lst);
- writeln(lst);
- end;
-
- Procedure PrintLine;
- Var
- B: integer;
- begin
- if Number < 10 then
- writeln(lst,' ',Number,') ',DataLine)
- else
- if Number < 100 then
- writeln(lst,' ',Number,') ',DataLine)
- else
- if Number < 1000 then
- writeln(lst,' ',Number,') ',DataLine)
- else
- writeln(lst,Number,') ',DataLine);
- Line := Line + 1;
- Number := Number + 1;
- end;
-
- begin
- ClrScr;
- write(' ENTER DATE [MM DD YY]> ');
- read(Date[1],Date[2],Date[3]);
- readln;
- write(' ENTER FILE NAME> ');
- readln(FileName);
- assign(Infile,FileName);
- writeln;
- writeln;
- writeln('**** PROCESSING FILE ****');
- reset(Infile);
- Header(Date,FileName);
- Number := 1;
- Page := 1;
- while not EOF(Infile) do
- begin
- PrintHeader(Date,FileName,Page);
- Line := 8;
- Page := Page + 1;
- while (Line < 64) and (not EOF(Infile)) do
- begin
- readln(Infile,DataLine);
- if DataLine <> #138 then
- PrintLine;
- end;
- for X := 1 to 3 do
- writeln(lst);
- end;
- if Line > 60 then
- for Line := Line to 69 do
- writeln(lst);
- write(lst,'****************************************************');
- writeln(lst,'**************************************************');
- write(lst,'***** EOF DETECTED *********************************');
- writeln(lst,'**************************************************');
- write(lst,'****************************************************');
- writeln(lst,'**************************************************');
- Line := Line + 1;
- if Line < 66 then
- for Line := Line to 70 do
- writeln(lst)
- else
- for Line := Line to 136 do
- writeln(lst);
- ClrScr;
- end.