The 4-byte pointer at 0040:00a8 has been named SAVE_PTR by an imaginative
programmer. It points to a table of EGA/VGA data block pointers. You can
change this address to point to a different data area in which you define
your own fonts and other options.
To make a change, copy the current table and then modify the copy. You
can use TSR techniques to make your customized table resident in memory to
enable it with each mode change.
+14H 8 res reserved (two far pointers)
28 size of an EgaSavePtrRec structure
pfrVidParms This MUST exist. It is initially set to point to a table in
ROM. The table should be 1472 bytes long, with 64 bytes for
each of 23 (17H) different video modes. In this parameter
table: Modes 0-10H are the modes listed in Video Modes for 64K
EGAs. Modes 11H-12H are for 350-line graphics with 128K+ RAM
on board. Modes 13H-17H are the 350-line versions of text
modes 0-3 when used with the Enhanced Color Display.
pfrDynParms Initially 0000:0000 (not used). When present, this points to
VGA palettes. This is updated when the BIOS updates the
pfrTxtAuxFnt Initially 0000:0000 (not used). When present, this points to
font definition for specified text modes; the font will be
loaded to the character generator when selected text modes are
initialized. You can use this vector to setup unusual and
exotic fonts or to override just a few characters for national
On VGAs, an additional character set may be set up for
pfrGfxAuxFnt Initially 0000:0000 (not used). When present, this points to
to generate characters is specified graphics modes.
pfrSavePtr2 This field contains an address on VGAs only. It points to a