VGA Memory Access Is Complicated
10 hours ago
- #Legacy Computing
- #Hardware Documentation
- #VGA Emulation
- Insufficient documentation is a major challenge for VGA hardware implementation and emulation.
- VGA consists of multiple separate components with complex interactions, increasing its difficulty.
- Most VGA documentation is targeted at users rather than developers, lacking detailed explanations of bit functionalities.
- Odd/Even control registers in VGA involve three 'OE' bits with distinct roles for writes, reads, and addressing.
- Compaq's documentation provides clearer explanations than IBM's, distinguishing between CPU write and read controls.
- Matrox documentation reveals that GR6[1] bit can replace A0 with A16 or MSR[5], depending on GR6[3:2] settings.
- MSR[5] bit polarity is poorly documented and varies across implementations.
- CRTC bits independently control display memory addressing, separate from CPU memory access controls.
- Combining bits incorrectly can lead to compatibility issues, as seen with Windows 9x boot splash problems in QEMU.
- The complexity arises from multiple independent bits for CPU memory operations and display, allowing many undocumented combinations.