When designing an XVD driver you usually run into a BIG problem:

VGA mode 13h supports only a single page and is "activated"
in an "emulated vga" configuration.

If you just call bios and set mode13h, on some vga cards
some supervga capabilities are "shut down" and other are managed
in a strange way.

Usually looking into the vgadoc vga info file collection
(look for vgadoc3.zip or successive releases into x2ftp.oulu.fi
 or in other ftp sites packed with informations about pc-compatibles)
you can know what "extended vga" registers need to be set
to get full access to video page mapping and full display start addressing.

Sometimes some things cannot be found into vgadoc
( because of missing information or because of informations the chipset
  maker thinks are not useful to you )
so i included a simple program called vgareg.asm, look into it,
set the BIOS graphics mode numbers to test, change the port numbers
and the "internal register ranges" to check what's inside
your card and then let it "run&peek" into your card's registers.
Then use a text editor and look into the resulting vgareg.tbl file.

For example the bios of my vga card enabled just 256k access when
using mode 13h or mode 640x400x256, and some settings under mode 13h
scrambled the paging conventions.
Looking in the vga docs, using vgareg and then looking back in the docs
what was the meaning of the different values between a mode and another
(ignoring of course the CRTC video timings, just looking on the
 "vga functionality" bits) i got some hints of what to do, then i
 tested various settings and at last i found the correct setting.
That's how now my chips450.xvd driver can use all ram on video card
and cross bank boundaries under all video modes.

Some boards do not allow you to "stretch" 'em as long as you want,
if you have such card, simply include code to take care of limits
(i.e. by changing the available video pages after a "restricted" mode
      is set, so there won't be page crossings).

