I think I understand what is happening. First, an extract from: https://www.phatcode.net/res/224/files/html/ch34/34-05.html
The DAC Mask "There’s one register in the DAC that I haven’t mentioned yet, the DAC Mask register at 03C6H. The operation of this register is simple but powerful; it can mask off any or all of the 8 bits of pixel information coming into the DAC from the VGA. Whenever a bit of the DAC Mask register is 1, the corresponding bit of pixel information is passed along to the DAC to be used in looking up the RGB triplet to be sent to the screen. Whenever a bit of the DAC Mask register is 0, the corresponding pixel bit is ignored, and a 0 is used for that bit position in all look-ups of RGB triplets. At the extreme, a DAC Mask setting of 0 causes all 8 bits of pixel information to be ignored, so DAC location 0 is looked up for every pixel, and the entire screen displays the color stored in DAC location 0. This makes setting the DAC Mask register to 0 a quick and easy way to blank the screen." So, I believe the DAC MASK is the thing that allows you to programmatically choose if the colors are 6 bits or 8 bits, if the controller report capabilities D0=1. We know, VBOX and DOSEMU2 both support 8 bits colors, while QEMU only supports 6 bit colors. If I output 3c6,0: QEMU: no change VBOX: no change DOSEMU2: clear screen For QEMU, it is not dramatic, because it is limited to 6 bit colors. [still not ideal] DOSEMU2: do the right thing. VBOX: should handle the mask, because this is the way the 8 bit colors can be set. [it is unclear what is the default value of the mask] That said, I did not try more, to change colors. _______________________________________________ Freedos-devel mailing list Freedos-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/freedos-devel