The video memory of the VGA is mapped to the PC's memory via a window in the range between segments
0xA0000 and 0xBFFFF in the PC's
real mode address space (A000:0000 and B000:FFFF in segment:offset notation). Typically, these starting segments are: • 0xA0000 for EGA/VGA graphics modes (64
KB) • 0xB0000 for monochrome text mode (32 KB) • 0xB8000 for color text mode and CGA-compatible graphics modes (32 KB) A typical VGA card also provides this port-mapped I/O segment: • 0x3B0 to 0x3DF Due to the use of different address mappings for different modes, it is possible to have a monochrome adapter (i.e., MDA or
Hercules) and a color adapter such as the VGA,
EGA, or
CGA installed in the same machine. At the beginning of the 1980s, this was typically used to display
Lotus 1-2-3 spreadsheets in high-resolution text on a monochrome display and associated graphics on a low-resolution CGA display simultaneously. Many programmers also used such a setup with the monochrome card displaying debugging information while a program ran in graphics mode on the other card. Several debuggers, like Borland's
Turbo Debugger,
D86 and Microsoft's
CodeView could work in a dual monitor setup. Either Turbo Debugger or CodeView could be used to debug Windows. There were also device drivers such as ox.sys, which implemented a serial interface simulation on the monochrome display and, for example, allowed the user to receive crash messages from debugging versions of Windows without using an actual serial terminal. It is also possible to use the "MODE MONO" command at the command prompt to redirect the output to the monochrome display. When a monochrome adapter was not present, it was possible to use the 0xB000–0xB7FF address space as additional memory for other programs. A VGA-capable
PCI /
PCIe graphics card can provide legacy VGA registers in its
PCI configuration space, which may be remapped by
BIOS or
operating system.
Programming "Unchaining" the 256 KB VGA memory into four separate "planes" makes VGA's 256 KB of RAM available in 256-color modes. There is a trade-off for extra complexity and performance loss in some types of graphics operations, but this is mitigated by other operations becoming faster in certain situations: • Single-color polygon filling could be accelerated due to the ability to set four pixels with a single write to the hardware. • The video adapter could assist in copying video RAM regions, which was sometimes faster than doing this with the relatively slow CPU-to-VGA interface. • The use of multiple video pages in hardware allowed
double buffering,
triple buffering or split screens, which, while available in VGA's 16-color mode, was not possible using stock
Mode 13h. • Most particularly, several higher, arbitrary-resolution display modes were possible, all the way up to the programmable limit of with 16 colors (or with 256 colors), as well as other custom modes using unusual combinations of horizontal and vertical pixel counts in either color mode. Software such as
Fractint,
Xlib and ColoRIX also supported tweaked 256-color modes on standard adaptors using freely-combinable widths of 256, 320, and 360 pixels and heights of 200, 240 and 256 (or 400, 480 and 512) lines, extending still further to 384 or 400 pixel columns and 576 or 600 (or 288, 300). However, was the best known and most frequently used, as it offered a standard 40-column resolution and 4:3 aspect ratio with square pixels. " × 8" resolution was commonly called
Mode X, the name used by
Michael Abrash when he presented the resolution in
Dr. Dobb's Journal. The highest resolution modes were only used in special, opt-in cases rather than as standard, especially where high line counts were involved. Standard VGA monitors had a fixed line scan (H-scan) rate"multisync" monitors being, at the time, expensive raritiesand so the vertical/frame (V-scan)
refresh rate had to be reduced in order to accommodate them, which increased visible
flicker and thus
eye strain. For example, the highest mode, being otherwise based on the matching SVGA resolution (with 628 total lines), reduced the refresh rate from 60 Hz to about 50 Hz (and , the theoretical maximum resolution achievable with 256 KB at 16 colors, would have reduced it to about 48 Hz, barely higher than the rate at which XGA monitors employed a double-frequency interlacing technique to mitigate full-frame flicker). These modes were also outright incompatible with some monitors, producing display problems such as picture detail disappearing into
overscan (especially in the horizontal dimension), vertical roll, poor
horizontal sync or even a complete lack of picture depending on the exact mode attempted. Due to these potential issues, most VGA tweaks used in commercial products were limited to more standards-compliant, "monitor-safe" combinations, such as (square pixels, three video pages, 60 Hz), (double resolution, two video pages, 70 Hz), and (highest resolution compatible with both standard VGA monitors and cards, one video page, 60 Hz) in 256 colors, or double the horizontal resolution in 16-color mode. ==Hardware manufacturers==