Talk:Bochs VBE Extensions

From OSDev Wiki
Jump to navigation Jump to search

Ok, since this topic keeps coming up on the forum, I decided to make a Wiki page for the subject. There's still a lot of TODOs, but mainly on how Bochs treats out of bound values, and some miscellaneous stuff that's probably not used that much. Jal 05:44, 5 March 2008 (CST)

I made some additions with the knowledge I gained during my experiments with BGA in both Bochs and QEMU. I hope you like it. Actually in some cases they behave very differently even if they implement the same protocol. I'm still making some experiments, so at some point I might add more. --Walling 06:40, 26 October 2008 (UTC)

I tried to follow this document. It seems there might be a problem with the section Using a linear frame buffer. With version 2.4.1 of bochs, I do an Output Word on the Index IO Port with VBE_DISPI_INDEX_ENABLE and then Output Word on the data port VBE_DISPI_ENABLED | VBE_DISPI_LFB_ENABLED. In the document, it specifies that VBE_DISPI_INDEX_ENABLE | VBE_DISPI_LFB_ENABLED should be sent to the index and then VBE_DISPI_ENABLED on the data port. Can someone confirm this? --Threesevenths 16:59, 6 August 2009 (UTC)

You are right, that was a stupid typo. It should read VBE_DISP_ENABLED instead of VBE_DISPO_INDEX_ENABLE. Thanks for noticing it (you can see the code example does it right). Jal 09:17, 21 October 2009 (UTC)

Writing 0x20 to VGA_ATT_W

For a custom QEMU BIOS I found that it is necessary to write the value 0x20 to the VGA_ATT_W register (0x3c0, or the first register in the VGA section of the MMIO region). I don't understand what it does however, as I just copied it from EDK2. Perhaps this article could clarify what it does and why it is necessary?

I've skimmed VGA Hardware but it does not seem to contain information about this particular value.

Demindiro (talk) 16:57, 15 October 2025 (UTC)