home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
CP/M
/
CPM_CDROM.iso
/
mbug
/
mbug049.arc
/
SCRDMP11.I
< prev
next >
Wrap
Text File
|
1979-12-31
|
2KB
|
59 lines
SCRDMP11.I
By Rex Foord Jan '87
Thi≤á i≤á ß versioε oµ thσ Talkinτ Turb∩ screendum≡ routinσ tha⌠á wil∞ ì
worδá unde≥á Turb∩á Pasca∞ V│ Thσ versioε containeΣá iεá thσá Librar∙á filσ ì
TLKNGTRB.LB╥ wil∞ onl∙ worδ fo≥ T╨ V2.
I⌠á seem≤ tha⌠ T╨ V│ reset≤ thσ romlatcΦ afte≥ ß writσá statement¼á s∩ ì
thi≤á versioεá oµ thσ screendum≡ routinσ set≤ thσ romlatcΦ t∩ thσá standarΣ ì
characte≥ se⌠ withiε thσ loo≡ tha⌠ i≤ sendinτ character≤ t∩ thσ printer.
{ V1.0
8░ columε graphiπ screeε dum≡ procedurσ fo≥ paralle∞ Epsoε compatiblσ printer
Writteε b∙ Danie∞ Prage≥ 1986
V1.1
Slight modification so as able to run under Turbo Pascal V3
TP V3 resets the romlatch after a write or writeln
therefore romlatch needs to be reset to standard set before write statement
in loop Line:=10 downto 0
R.J. Foord Jan 87 }
procedure ScreenDump;
const
LessHeight = #27'1'; {Printer code to decrease line height}
Default = #27'2'; {Code to restore the default line height}
BIG = #27'K'#8#1; {Code to initialise Bit Image Graphics}
ROMLatch = 11; {Port Latch for screen RAM/Standard set ROM}
ScreenRAM = 0; {Screen RAM setting for Port[ROMLatch]}
StandardSet = 1; {Standard set value for Port[ROMLatch]}
var
X, Y, TopLine : Integer;
PCG, Line : Byte;
begin
Writeln(LST, LessHeight);
for X := 0 to 79 do
begin
Writeln(LST);
Write(LST,' ':23, BIG);
for Y := 23 downto 0 do
begin
PCG := Mem[$F000 + Y * 80 + X];
TopLine := $F000 + PCG * 16;
for Line := 10 downto 0 do
begin
Port[ROMLatch] := StandardSet;
Write(LST, Chr(Mem[TopLine + Line]));
end;
Port[ROMLatch] := ScreenRAM;
end
end;
Writeln(LST, Default)
end;