maxtherabbit
Veteran Member
I have recently acquired a very interesting 486 motherboard based on the Zymos POACH chipset. That's right, the 286 chipset. It has a crapload of PALs and glue logic to handle the 32bit DRAM and cache, resulting in a full AT footprint.
The 1990 AMI BIOS (pre color BIOS) only offers 2 extra options specific to this configuration, cache on/off and whether to enable a 128kB shadow RAM region. When you enable the shadow RAM, it shadows the system BIOS in the F segment as usual, but also copies the contents of the C segment to the E segment, and executes the VGA BIOS at E000. The original ROMs remain accessible at their original addresses in the C segment.
Where it gets strange is when I get into DOS and examine the IVT. Int 10h points to an entry point in the E segment as expected, but ints 1Dh and 6Dh both still point to the C segment. I can only speculate that either some code in the ROM itself has hard coded values since the VGA card has no ability to change the ROM address, OR DOS is doing something which expects VGA at C000.
I wrote a tiny little device driver to change the IVT values for 1D and 6D to the E segment, which works fine and all video functions are still good. However, when I try to use EMM386 to "take over" C000-CBFF for UMB use, the system hangs. Could there be some other value I need to change?
The 1990 AMI BIOS (pre color BIOS) only offers 2 extra options specific to this configuration, cache on/off and whether to enable a 128kB shadow RAM region. When you enable the shadow RAM, it shadows the system BIOS in the F segment as usual, but also copies the contents of the C segment to the E segment, and executes the VGA BIOS at E000. The original ROMs remain accessible at their original addresses in the C segment.
Where it gets strange is when I get into DOS and examine the IVT. Int 10h points to an entry point in the E segment as expected, but ints 1Dh and 6Dh both still point to the C segment. I can only speculate that either some code in the ROM itself has hard coded values since the VGA card has no ability to change the ROM address, OR DOS is doing something which expects VGA at C000.
I wrote a tiny little device driver to change the IVT values for 1D and 6D to the E segment, which works fine and all video functions are still good. However, when I try to use EMM386 to "take over" C000-CBFF for UMB use, the system hangs. Could there be some other value I need to change?