How Many Color Planes Does VGA Hardware Use?

The classic Video Graphics Array (VGA) hardware architecture uses 4 color planes (Planes 0 through 3) in its native physical memory arrangement. Introduced by IBM in 1987 with the PS/2 series, the standard 256 KB VGA frame buffer is structured as four parallel 64 KB memory banks. Understanding how these planes interact with display modes, CPU memory windows, and internal shift registers is central to grasping how legacy PC graphics functioned.

The Physical Architecture of VGA Memory

A standard VGA adapter contains 256 KB of video RAM. Rather than organizing this memory in a single flat, linear block—which would exceed the real-mode 64 KB or 128 KB memory windows accessible through the PC's memory map—IBM split the RAM across four 64 KB parallel planes:

Because all four planes occupy the exact same base address range in the host CPU address space (most commonly 0xA0000 to 0xAFFFF), specialized hardware registers—specifically the Sequencer and the Graphics Controller—determine how reads and writes route to and from the individual planes.

Planar Organization in 16-Color Graphics Modes

The four-plane design is most clearly visible in the standard 16-color graphics modes, such as Mode 12h (640×480 resolution, 16 colors) and Mode 0Eh (640×200 resolution, 16 colors).

In these modes, each pixel's color is represented by a 4-bit index into a palette register (\(2^4 = 16\) possible colors). Instead of packing these 4 bits together inside one byte of system memory, the bits are distributed across the four planes:

  1. Bit 0 of the pixel index resides in Plane 0.
  2. Bit 1 of the pixel index resides in Plane 1.
  3. Bit 2 of the pixel index resides in Plane 2.
  4. Bit 3 of the pixel index resides in Plane 3.

A single CPU byte write to address 0xA0000 can update a specific bit across eight contiguous horizontal pixels simultaneously, provided the Graphics Controller's write mask and plane enable registers are configured to allow it.

Internal Registers and Memory Access Modes

Because four bytes share a single memory address, the VGA Graphics Controller provides specific read and write modes to manipulate the planes without requiring four separate bus transactions:

Write Modes

Read Modes

How 256-Color Modes Use the Planes

In the famous Mode 13h (320×200 resolution, 256 colors), each pixel requires 8 bits (1 byte) to index into the 256-color DAC palette. While the programmer interacts with Mode 13h as if it were a linear array of bytes from 0xA0000 to 0xAFA00, the underlying hardware still contains only the four physical planes.

To accommodate this, the VGA hardware uses a mode known as "Chain-4":

While Chain-4 simplified programming by providing a linear memory abstraction, it wasted memory bandwidth and limited available video memory to 64 KB.

By disabling Chain-4, programmers unlocked "Mode X" (or unchained modes). In unchained 256-color modes, developers manually selected which plane to write to, allowing full access to all 256 KB of video memory for double buffering, page flipping, and hardware-accelerated planar operations.

Text Modes and Plane Allocation

The planar architecture also manages alphanumeric display modes, such as standard 80×25 text (Mode 03h):