home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
ftp.barnyard.co.uk
/
2015.02.ftp.barnyard.co.uk.tar
/
ftp.barnyard.co.uk
/
cpm
/
walnut-creek-CDROM
/
MBUG
/
MBUG094.ARC
/
DUMP6416.I
< prev
next >
Wrap
Text File
|
1979-12-31
|
2KB
|
59 lines
{ Single height graphics screen dump procedure
Written by Daniel Prager 1986
Modified by R.K.Hallworth for
Premium Hires 64x16 screen }
Procedure Dump6416;
const
LessHeight = #27'1'; {Printer code to decrease line height}
Default = #27'2'; {Code to restore the default line height}
BIG = #27'K'#0#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]}
Attribute=144;
var
X, Y, TopLine : Integer;
PCG, Line, Echo, PCGBank : Byte;
Ch:Char;
Function GetPCGByte(Location:Integer):byte;
Var store:byte;
begin
inline( $3E/1/ {LD A,1}
$D3/11/ {OUT(11),A standard character set}
$2A/LOCATION/ {LD HL,(LOCATION)}
$7E/ {LD A,(HL)}
$32/STORE/ {LD (STORE),A}
$3E/0/ {LD A,0}
$D3/11); {OUT(11),A video ram}
GetPCGByte:=Store
end;
begin
Writeln(LST, LessHeight);
for X := 0 to 63 do
begin
Writeln(LST);
Write(LST, BIG);
for Y := 15 downto 0 do
begin
PCG := Mem[$F000 + Y * 64 + X];
TopLine := $F000 + PCG * 16;
Port[28]:=Attribute;
PCGbank:=Mem[$F000 + Y * 64 + X];
Port[28]:=128+PCGbank;
for Line := 15 downto 0 do
for Echo := 0 to 0 do
Write(LST, Chr(GetPCGByte(TopLine + Line)));
Port[28]:=128;
end
end;
Writeln(LST, Default)
end;