tran@peora.sdc.ccur.com (Nhan Tran) (01/26/91)
I want to dump a graphic screen to a file and read the file back for
quick graphic display.
The graphic mode I used (Turbo Pascal) is EGAHi (for EGA) or VGAMed (for VGA)
(graphic mode 0x10). The resolution of this mode is 640 x 350, 16 colors.
The memory of graphic pages starts at 0xA000. Since this graphic mode uses
4 bit planes, I thought that I just dump out the 4 bit planes memory to file
and read them back in order and got back the orginal image.
var bitplane0 : byte absolute $A000:000;
bitplane1 : byte absolute $A001:000;
bitplane2 : byte absolute $A800:000;
bitplane3 : byte absolute $A800:000;
{ each bit plane in this mode takes 28,000 bytes }
Dump out the graphic screen:
assign(f, file_name);
rewrite(f, 1);
blockwrite(f, bitplane0, 28000);
blockwrite(f, bitplane1, 28000);
blockwrite(f, bitplane2, 28000);
blockwrite(f, bitplane3, 28000);
Retrieve the image:
assign(f, file_name);
reset(f, 1);
blockread(f, bitplane0, 28000);
blockread(f, bitplane1, 28000);
blockread(f, bitplane2, 28000);
blockread(f, bitplane3, 28000);
The problem is when I retrieve the image, the shape of the image (ex: a
bunch of color filled circles) is still there, but all color are
converted to either black or white.
I suspect that my declaration of bitplane address is not correct or
something else I don't know about. Please help!!
Nhan Tran
Email: tran@peora.sdc.ccur.com