OutFilt v1.0 by Robert Rothenburg Walking-Owl, 1994 Public Domain
==========================================================================
This unit allows you to "invisibly" output to the screen, with an option
to enable screen pausing or to "tee" the output to a file.
To use, change all references to Write and WriteLn to fWrite and fWriteLn,
repectively. Note that fWrite and fWriteLn only accept strings, so numbers
will have to be changed to strings beforehand.
If the PauseBetweenScreens variable is set to "True", an automatic pause
will occur every 24 lines.
OutFilt seems to work correctly for screen pauses for line-wraps as well as
for newlines, and should correctly determine the number of columns for the
given graphics mode: however this version always assumes a page to have 25
lines.
-----
If you want to duplicate the output to a file, do the following:
Assign(DuplicateFile, FileName );
{$I-}
ReSet(DuplicateFile,1);
if IoResult<>0 { if file doesn't exit, create it }
then ReWrite(DuplicateFile,1);
Seek(DuplicateFile,FileSize(DuplicateFile));
{$I+}
CopyOutputToFile := True;
And remember at the end of your program to close DuplicateFile.
-----
If you want to use an imbedded help-screen, use the following:
program ImbedDemo(input,output);
uses OutFilt;
function ImbeddedText: Pointer; assembler;
asm
mov dx, cs
mov ax, offset @Text
jmp @Exit
@Text:
db 'Imbedded Text Message ... as much text as you want!',13,10
db '(well, about 64k of text,',13,10
db ' but that is A LOT for a help screen!)',13,10
db 0 { end of text marker }
@Exit:
end;
procedure WriteImbeddedText;
var p: ^Char;
begin
PauseBetweenScreens := True;
p := ImbeddedText;
repeat
fWrite(p^);
I
|