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

Reply via email to