Bochs VBE Extensions: Difference between revisions
Jump to navigation
Jump to search
[unchecked revision] | [unchecked revision] |
Content added Content deleted
No edit summary |
No edit summary |
||
Line 23: | Line 23: | ||
In order to change any of the registers (with the logical exception of VBE_DISPI_INDEX_ENABLE), the VBE extensions must be disabled first. To do so, write the value VBE_DISPI_DISABLED (0x00) to VBE_DISPI_INDEX_ENABLE (4). The changes are not visible until the VBE extensions are enabled again. To do so, write the value VBE_DISPI_ENABLED (0x01) to the same register (see also note below on enabling the LFB). |
In order to change any of the registers (with the logical exception of VBE_DISPI_INDEX_ENABLE), the VBE extensions must be disabled first. To do so, write the value VBE_DISPI_DISABLED (0x00) to VBE_DISPI_INDEX_ENABLE (4). The changes are not visible until the VBE extensions are enabled again. To do so, write the value VBE_DISPI_ENABLED (0x01) to the same register (see also note below on enabling the LFB). |
||
TODO: check whether we can read registers as well, and describe |
[TODO: check whether we can read registers as well, and describe] |
||
=== Setting display resolution and bit depth === |
=== Setting display resolution and bit depth === |
||
Most likely, setting the display resolution and bit depth is all you need. To do so, disable the VBE extensions (see above), write the X resolution, Y resolution and BPP to their respective |
Most likely, setting the display resolution and bit depth is all you need. To do so, disable the VBE extensions (see above), write the X resolution, Y resolution and BPP to their respective registers (VBE_DISPI_INDEX_XRES (1), VBE_DISPI_INDEX_YRES (2) and VBE_DISPI_INDEX_BPP (3)) and enable the VBE extensions. Since the BGA is not real hardware, X and Y resolutions can be set at will [TODO: check whether Bochs does a sanity check and describe]. The bit depth needs to be one of the following: |
||
* VBE_DISPI_BPP_4 (0x04) |
* VBE_DISPI_BPP_4 (0x04) |
||
* VBE_DISPI_BPP_8 (0x08) |
* VBE_DISPI_BPP_8 (0x08) |
||
Line 35: | Line 35: | ||
For 24 BPP, the order of the colour components is blue first, then green, then red. [TODO: check for other BPP and describe] |
For 24 BPP, the order of the colour components is blue first, then green, then red. [TODO: check for other BPP and describe] |
||
[TODO: some example code] |
|||
=== Using banked mode === |
|||
When using banked mode, the BGA uses a 64Kb bank size (VBE_DISPI_BANK_SIZE_KB) starting at address 0xA0000 (VBE_DISPI_BANK_ADDRESS). Banked mode is the default mode, so when enabling the VBE extensions without explicitly telling the BGA to use a linear frame buffer, the BGA enables banked mode. To set the bank to use, write the bank number to the bank register (VBE_DISPI_INDEX_BANK (5)). [TODO: check whether Bochs does a sanity check, or wrap-around, or whatever and describe] |
|||
=== Using a linear frame buffer (LFB) === |
|||
[[Category:Video]] |
[[Category:Video]] |