My guess is that your VGA monitor is reporting itself as a mono monitor to the VGA card. This may be caused by the monitor being too modern for your Compaq: The VGA card expects the monitor to report its capabilities using three pins from the VGA connector, but modern monitors use I2C to report EDID information on those pins. If the impedance at some of these pins is too low or too high, they may be read as N/C or GND.
Quoting http://pinouts.ru/Video/Vga15_pinout.shtml
ID pins set-up
4 11 12
ID2 ID0 ID1
n/c n/c n/c no monitor
n/c n/c GND Mono monitor which does not support 1024x768
n/c GND n/c Color monitor which does not support 1024x768
GND GND n/c Color monitor which supports 1024x768
GND means connected to ground
n/c means that the pin is not connected anywhere
If this is happening, the VGA BIOS will reprogram the internal palette to show gray shades instead of colors. To find out if this is so, you can test this:
Without starting Windows (that is, in "pure" DOS mode), execute debug
C:\>debug
And enter these commands at the debug
command prompt (a dash):
-o 3c7,0
This is to select DAC palette registers for read. Now, repeat the following command three times to get the R,G and B information for each palette entry.
-i 3c9
After entering the i command, debug will return the byte at that I/O port address, as in this example.
-i 3c9
00
-i 3c9
00
-i 3c9
00
My first palette entry is therefore RGB(0,0,0). Do it a second time
-i 3c9
00
-i 3c9
00
-i 3c9
2A
My second palette entry is RGB(0,0,2A), which gives me a dark blue.
If you continue doing this, you will get the RGB values associated to each palette entry. A VGA card programmed with a grayscale palette will show identical values in R,G and B for each non-black color. For example, the second palette entry may show like this in a B/W setup:
-i 3c9
05
-i 3c9
05
-i 3c9
05
Which is roughly the grayscale shade equivalent to the original dark blue color.
To quit debug, just enter q
at the debug command prompt.
If with this test you conclude that your monitor is reporting itself as a B/W monitor to your VGA, a solution would be to take a VGA extension cable and wire it so pins 4 and 11 at the VGA card side go to GND, and pin 12 is left unconnected. On the VGA monitor side, these pins may be unconnected.