On Wed, 21 Apr 2021 09:19:42 +0200, Gerd Hoffmann wrote:
However, a tricky part is that the QEMU vga code does treat VGA_ATT_IW register always as "flip-flop"; the first write is for index and the second write is for the data like palette. Meanwhile, in the current bochs DRM driver, the flip-flop wasn't considered, and it calls only the register update once with the value 0x20.
Unless bochs does things very different, the index should first be reset by reading 0x3da. Then write the index, then the data.
https://web.stanford.edu/class/cs140/projects/pintos/specs/freevga/vga/vgare...
bochs should follow standard vga logic here. Also a bochs_set_blank(true/false) helper function probably makes sense.
OK, I factored it out to bochs_hw_blank() in v2 patch.
thanks,
Takashi