Hubbry Logo
Enhanced Graphics AdapterEnhanced Graphics AdapterMain
Open search
Enhanced Graphics Adapter
Community hub
Enhanced Graphics Adapter
logo
8 pages, 0 posts
0 subscribers
Be the first to start a discussion here.
Be the first to start a discussion here.
Enhanced Graphics Adapter
Enhanced Graphics Adapter
from Wikipedia
Enhanced Graphics Adapter
Original 64 KB IBM EGA card
Release dateOctober 1984; 41 years ago (October 1984)[1]
ArchitectureMotorola 6845; Chips and Technologies 82C431, 82C432, 82C433, 82C434
Cards
Entry-levelIBM EGA card, Chips and Technologies, ATI EGA Wonder
Mid-rangeATI EGA Wonder 800
High-endATI EGA Wonder 800+
History
PredecessorMonochrome Display Adapter, Color Graphics Adapter
SuccessorIBM 8514, Video Graphics Array

The Enhanced Graphics Adapter (EGA) is an IBM PC graphics adapter[2][3] and de facto computer display standard from 1984 that superseded the CGA standard introduced with the original IBM PC, and was itself superseded by the VGA standard in 1987. In addition to the original EGA card manufactured by IBM, many compatible third-party cards were manufactured, and EGA graphics modes continued to be supported by VGA and later standards.

History

[edit]

EGA was introduced in October 1984 by IBM,[2][3] shortly after its new PC/AT. The EGA could be installed in previously released IBM PCs, but required a ROM upgrade on the mainboard.[4]

Chips and Technologies' first product, announced in September 1985, was a four-chip EGA chipset that handled the functions of 19 of IBM's proprietary chips on the original Enhanced Graphics Adapter. By that November's COMDEX, more than a half dozen companies had announced EGA-compatible boards based on C&T's chipset.[5] The first EGA-compatible board was Vega in December 1985, released by Video Seven and using C&T's chipset.[6]: 34  The Vega was half the length of the original IBM EGA board.[7]

Between 1984 and 1987, several third-party manufacturers produced compatible cards, such as the Autoswitch EGA[8] or Genoa Systems' Super EGA chipset.[9] Later cards supporting an extended version of the VGA were similarly named Super VGA.

The EGA standard was made obsolete in 1987 by the introduction of MCGA and VGA with the PS/2 computer line.[10]

Adoption

[edit]

By 1985 InfoWorld described EGA as the "next graphics standard", but with "sluggish sales" because of high cost and lack of software support. The magazine said that "market reaction ... although positive, has not been overwhelming, in part because the EGA's complexity has slowed software vendors' efforts to support it".[11] Commercial software began supporting EGA soon after its introduction, with The Ancient Art of War, released in 1984.[12] Microsoft Flight Simulator v2.12,[13][14] Jet,[15] Silent Service,[16] and Cyrus,[17] all released in 1985, offered EGA support, along with Windows 1.0. Sierra's King's Quest III, released in 1986, was one of the earliest mainstream PC games to use it.

The first clone boards appeared in late 1985, lowering EGA's cost.[11] By 1987, EGA support was commonplace.[18] Most software made up to 1991 could run in EGA, although the vast majority of commercial games used 320 × 200 with 16 colors for backward compatibility with CGA and Tandy, and to support users who did not own an enhanced EGA monitor. 350-line modes were mostly used by freeware/shareware games and application software, although SimCity is a notable example of a commercial game that runs in 640 × 350 with 16 colors mode.[19][20] Modern adventure games, like The Crimson Diamond, use freeware tools like the Adventure Game Studio to create games with EGA-style color palettes but with modern features.[21]

Hardware design

[edit]
IBM MDA, CGA and EGA monitors, all supported by the EGA card

The original IBM EGA was an 8-bit PC ISA card with 64 KB of onboard RAM. An optional daughter-board (the Graphics Memory Expansion Card) provided a minimum of 64 KB additional RAM, and up to 192 KB if fully populated with the Graphics Memory Module Kit.[22] Without these upgrades, the card would be limited to four colors in 640 × 350 mode.[23]

Output was via direct-drive RGB,[24] as with the CGA, but no composite video output was included.[25] MDA and CGA monitors could be driven, as well as newly released enhanced color monitors for use specifically with EGA.[26]

EGA-specific monitors used a dual-sync design which could switch from the 15.7 kHz of 200-line modes to 21.8 kHz for 350-line modes.[26]

A non-IBM EGA card

Many EGA cards have DIP switches on the back of the card to select the monitor type. If CGA is selected, the card will operate in 200-line mode and use 8×8 characters in text mode. If EGA is selected, the card will operate in 350-line mode and use 8×14 text.

Some third-party cards using the EGA specification were sold with the full 128 KB of RAM from the factory, while others included as much as 256 KB to enable multiple graphics pages, multiple text-mode character sets, and large scrolling displays.[8] A few third-party cards, such as the ATI Technologies EGA Wonder, built on the EGA standard to additionally offer features such as extended graphics modes as high as 800 × 560 and automatic monitor type detection.[27]

Capabilities

[edit]
EGA 320 × 200 × 16 colors, CGA-compatible palette
EGA 640 × 200 × 16 colors, CGA-compatible palette
EGA 640 × 350 × 16 colors, EGA palette
Screenshot of the Arachne web browser using the 640 × 350 graphics mode. The screenshot contains 14 colors.
Sample of text mode characters with cursor

EGA produces a display of up to 16 colors (using a fixed palette, or one selected from a gamut of 64 colors (6-bit RGB), depending on mode) at several resolutions up to 640 × 350 pixels, as well as two monochrome modes at higher resolutions. EGA cards include a ROM to extend the system BIOS for additional graphics functions, and a custom CRT controller (CRTC).[28]

The IBM EGA CRTC supports all of the modes of the IBM MDA and CGA adapters through specific mode options,[28] but it is not fully register-compatible with the Motorola MC6845 used in those cards, so software that directly programs the registers to select modes may produce different results on the EGA.[29]

Supported resolutions are 320 × 200 and 640 × 200 (on a CGA or EGA monitor[30]), 720 × 350 and 640 × 350 (on an MDA monitor) and 320 × 350 and 640 × 350 (on an EGA monitor). EGA scans at 21.8 kHz when 350-line modes are used and 15.7 kHz when 200-line modes are used. For both horizontal scan rates, the vertical scan rate is 60 Hz.[26]

In the 640 × 350 high-resolution mode, which requires an enhanced EGA monitor, 16 colors can be selected from a palette of 64, comprising all combinations of two bits per pixel (four levels of intensity) for red, green and blue. On EGA adapters with only 64 KB of video RAM, only 4 colors can be selected per pixel.[26] The 640 × 200 and 320 × 200 graphics modes provide backward compatibility with CGA software and monitors, but they can use the entire 16-color CGA palette simultaneously, instead of the smaller 4-color palettes that CGA is limited to in those modes.[30]

EGA's 16-color graphic modes use bit planes and mask registers[31] together with CPU bitwise operations[32] for accelerated graphics. The same techniques went on to be used in the VGA.

Modes

[edit]

EGA supports:

  • 640 × 350 × 16 colors (from a 6 bit palette of 64 colors), pixel aspect ratio of 1:1.37.
  • 640 × 350 × 2 colors, pixel aspect ratio of 1:1.37.
  • 640 × 200 × 16 colors, pixel aspect ratio of 1:2.4.
  • 320 × 200 × 16 colors, pixel aspect ratio of 1:1.2.

Text modes:

  • 40 × 25 with 8 × 8 pixel font (effective resolution of 320 × 200)
  • 80 × 25 with 8 × 8 pixel font (effective resolution of 640 × 200)
  • 80 × 25 with 8 × 14 pixel font (effective resolution of 640 × 350)
  • 80 × 43 with 8 × 8 pixel font (effective resolution of 640 × 344)

Extended graphics modes of third-party boards:[citation needed]

  • 640 × 400
  • 640 × 480
  • 720 × 540
  • 800 × 560

Color palette

[edit]

With the EGA, all 16 CGA colors can be used simultaneously, and each can be mapped in from a larger palette of 64 colors (two bits each for red, green and blue). The CGA's alternate brown color is included in the larger palette, so it can be used without any additional display hardware. The later VGA standard built on this by mapping each of the 64 colors in from a larger, customizable, palette of 256.

Standard EGA monitors do not support use of the extended color palette in 200-line modes, because the monitor cannot distinguish between being connected to a CGA card or being connected to an EGA card outputting a 200-line mode. EGA redefines some pins of the connector to carry the extended color information. If the monitor were connected to a CGA card, these pins would not carry valid color information, and the screen might be garbled if the monitor were to interpret them as such. For this reason, standard EGA monitors will use the CGA pin assignment in 200-line modes, so the monitor can also be used with a CGA card.[citation needed]

Some EGA monitors are switchable, meaning that they can be set up to use the full palette even in 200-line modes, often through a mechanical switch. Only a few commercial games were released with support for the extended color palette in 320 × 200 or 640 × 200 (including the DOS version of Super Off Road).[33][34]

When selecting a color from the EGA palette, two bits are used for the red, green and blue channels to signal values of 0, 1, 2 or 3. For instance, to select the color magenta, the red and blue values would be medium intensity (2, or 10 in binary) and the green value would be off (0).

The table below displays an example palette matching the standard 16 CGA colors, with their representations in rgbRGB binary (internal card bit order), where the lowercase letters are the low-intensity bits, and uppercase letters are high-intensity bits. Decimal and hexadecimal values (converted to equivalent 24-bit sRGB web colors) are also shown.

Screen color test with standard 16-color palette
Default EGA 16-color palette, matching CGA colors
Index Default palette number Default palette color rgbRGB Hexadecimal
0 0 Black 000000 #000000
1 1 Blue 000001 #0000AA
2 2 Green 000010 #00AA00
3 3 Cyan 000011 #00AAAA
4 4 Red 000100 #AA0000
5 5 Magenta 000101 #AA00AA
20 6 Brown 010100 #AA5500
7 7 White / light gray 000111 #AAAAAA
56 8 Dark gray / bright black 111000 #555555
57 9 Bright Blue 111001 #5555FF
58 10 Bright green 111010 #55FF55
59 11 Bright cyan 111011 #55FFFF
60 12 Bright red 111100 #FF5555
61 13 Bright magenta 111101 #FF55FF
62 14 Bright yellow 111110 #FFFF55
63 15 Bright white 111111 #FFFFFF

The following images illustrate the full EGA palette in detail.

Full 64-color EGA palette table

Specifications

[edit]
EGA connector pinout when looking at back of computer

EGA uses a female nine-pin D-subminiature (DE-9) connector for output, identical to the CGA connector. The signal standard and pinout is backward-compatible with CGA, allowing EGA monitors to be used on CGA cards and conversely.

When operating in EGA modes, pins 2, 6 and 7 are repurposed for EGA's secondary RGB signals (see pinout table below). When operating in 200-line CGA modes, the EGA card is fully backward compatible with a standard IBM CGA monitor; however, third-party monitors had varying compatibility.[citation needed]

Front and rear views of the TVM MD-3, a third-party EGA monitor. DE-9 input, mode switch, contrast and brightness controls at front, V size and V hold knobs at rear.

Third-party monitors sometimes connected pin two to ground internally. When connected to an EGA card, this shorts the EGA's secondary red output to ground and can damage the card. Also, some monitors were wired with pin two as their sole ground, and these will not work with the EGA.[citation needed]

Conversely, an EGA monitor should work with a CGA adapter, but if it is not set to CGA mode, the secondary red signal will be grounded (always zero), and the secondary blue will be floating (unconnected), causing all high-intensity colors except brown to display incorrectly, and all colors to potentially have a variable blue tint due to the indeterminate state of the unconnected secondary blue.[citation needed]

The IBM 5154 EGA monitor has a special IBM 5153 CGA compatibility mode when operating with CGA sync signals and automatically changes to the CGA pinout to avoid all of the mentioned problems when operating in this mode.[35]

EGA DE-9 connector pin signals
Pin Name EGA modes CGA compatible modes
1 GND Ground Ground
2 SR Secondary Red (Intensity) Ground
3 PR Primary Red Red
4 PG Primary Green Green
5 PB Primary Blue Blue
6 SG Secondary Green (Intensity) Intensity
7 SB Secondary Blue (Intensity) Reserved
8 H Horizontal sync Horizontal sync
9 V Vertical sync Vertical sync

The original IBM EGA card includes a feature connector (blue connector J4, see first photo on this page), providing access to two RCA connectors at the back of card, in addition to several analog and digital signals that the EGA adaptor can be configured to use.[36]

A light pen interface was also present on the original card.[37]

Memory mapping

[edit]

For color text and CGA graphics modes, video memory is mapped to 16 KB of addresses beginning at address B8000h, and in monochrome (MDA-compatible) text mode, video memory occupies 16 KB beginning at B0000h. These address mappings are for backward compatibility.

For modes new to the EGA, the video memory begins at address A0000h and occupies 64 KB. The different base addresses for color vs. monochrome modes makes it possible for an EGA to be used simultaneously with a monochrome graphics card in the same computer, or for an EGA in MDA text mode to be used simultaneously with a CGA in the same computer.

EGA's native graphics modes are planar, as opposed to the interleaved CGA and Hercules modes. Video memory is divided into four "planes" (except 640 × 350 × 2, which has one plane), one for each component of the RGBI color space. Each pixel is represented by one bit in each plane. If a bit in the red plane is on, but none of the equivalent bits in the other pages are, a red pixel will appear in that location on screen. If all the other bits for that particular pixel were also on, it would become white, and so forth.

Planes are different sizes depending on the mode:

EGA video plane sizes
Mode Plane size
200-line modes,
640 × 350 × 2 mode
8 KB
640 × 350 with 64 KB RAM 16 KB
640 × 350 with 128 KB RAM 32 KB

All planes reside at segment A000 in the CPU's address space. They are bank-switched, and only one plane can be read on the CPU bus at once; however, the programmer may set the control registers on the card to select which planes are written to and write to several at once. An exception is read mode 1, in which all four planes are read and compared with programmed "Color Compare" data, and a byte indicating the result of comparing all four planes can be read on the I/O bus.

See also

[edit]

References

[edit]
[edit]
Revisions and contributorsEdit on WikipediaRead on Wikipedia
from Grokipedia
The Enhanced Graphics Adapter (EGA) is an IBM PC computer display standard introduced in 1984 as a successor to the (CGA), offering higher resolutions, greater , and enhanced graphics features for both alphanumeric and bit-mapped displays on compatible monitors. Developed alongside the PC/AT, the EGA utilized a 64 KB base video RAM configuration organized into four 16 KB bit planes, expandable to 128 KB or 256 KB for additional display pages and functionality, enabling modes such as 640×350 pixels in 16 colors (selected from a programmable 64-color palette using RGBI signaling) and text displays at 720×350 pixels with an 80×25 character grid using a 9×14 pixel font. It supported with CGA's modes 0 through 6, as well as Display Adapter (MDA) text modes, through emulation via BIOS interrupts, while introducing advanced hardware components including a CRT controller for sync signals, a sequencer for memory access, dual graphics controllers for data translation, and an attribute controller for color output. Notable features included a RAM-loadable character generator supporting up to 512 user-defined characters with expanded memory, support, vertical retrace interrupts for synchronization, split-screen capabilities, and programmable palette registers for dynamic color adjustments. The EGA connected via a 9-pin port and required specialized displays like the IBM 5154 Enhanced Color Display for optimal performance, delivering horizontal sync at 21.85 kHz and vertical refresh at 60 Hz in its native modes, a step up from CGA's 15.7 kHz. It played a pivotal role in the evolution of PC graphics by bridging the gap between basic CGA limitations and later standards, fostering widespread cloning by third-party manufacturers—over two dozen by 1986—and enabling richer visual applications in business, gaming, and during the mid-1980s. However, it was rendered obsolete by the introduction of the (VGA) in 1987 with the line, which offered even higher resolutions and full without requiring proprietary monitors.

History

Development

The development of the Enhanced Graphics Adapter (EGA) stemmed from 's recognition of the limitations in existing PC graphics standards during the early 1980s. The (CGA), introduced in 1981, was constrained to resolutions like 320×200 with only four colors, which proved inadequate for emerging business applications requiring sharper visuals and more vibrant displays, as well as the growing interest in graphical user interfaces (GUIs) that demanded better and resolution. Similarly, the Monochrome Display Adapter (MDA) was limited to text-only output, failing to meet the needs of a market increasingly influenced by color-capable home computers such as the Commodore 64, which supported 16 colors. aimed to address these shortcomings by creating a successor that enhanced graphical capabilities while preserving compatibility to protect the installed base of PC users. The project was led by IBM's Entry Systems Division, based in Boca Raton, Florida, the same team responsible for the original IBM PC and its expansions. This division focused on modular add-on hardware to extend the PC's versatility without overhauling the core architecture. Conceptual work on EGA began in the early 1980s, with design efforts emphasizing integration with the existing 8086 and 8088 processor ecosystem, including the 8-bit ISA bus. Key goals included achieving a higher resolution of 640×350 pixels and support for 16 simultaneous colors from a 64-color palette, using a bit-mapped planar graphics approach with four memory planes for RGBI color encoding to enable more sophisticated rendering. Engineering challenges centered on balancing performance gains with cost and . To maintain affordability for business users, opted for a design using multiple large-scale integration (LSI) chips, memory controllers, and supporting logic rather than a single very-large-scale integration (VLSI) chip, which would have increased development expenses and complexity at the time. The resulting adapter required 64 KB of RAM (expandable to 256 KB), making the card physically large—over 13 inches long—and expensive, with the card alone retailing above $500 upon release. Compatibility with CGA and MDA displays was prioritized through emulated modes, allowing EGA systems to fall back to lower resolutions and color sets when connected to older monitors. Initial prototypes demonstrated the adapter's potential through early tests showcasing 640×350 resolution in color modes, integrated with 8088-based systems to validate performance in real-world PC configurations. These demos highlighted improved pixel aspect ratios (1:1.37) for more proportional text and , paving the way for software like early GUI prototypes. Testing focused on stability across and color direct-drive displays, ensuring seamless transitions between alphanumeric and all-points-addressable modes. This iterative process culminated in EGA's launch in 1984 alongside the PC/AT, setting the stage for future evolutions like VGA.

Release

The Enhanced Graphics Adapter (EGA) was introduced by in October 1984 as part of the company's expansion of its personal computer lineup, coinciding with the launch of the IBM PC/AT and offered as an optional for the . The adapter was designed to provide superior visual capabilities for business and professional applications on the new 16-bit platform, building on the foundational goals of improving display quality for IBM PCs. Priced at $524 for the base model with 64 KB of video RAM, the EGA was positioned as a premium upgrade, with initial shipping to customers occurring in late 1984. An optional memory , adding 192 KB for a total of 256 KB to support advanced modes, was available for an additional $199. This configuration allowed compatibility with existing PC and XT systems via a ROM upgrade, broadening its appeal beyond the PC/AT. IBM supported the launch with comprehensive technical reference manuals that included detailed specifications on the adapter's hardware, programming interfaces, registers, and BIOS extensions for software integration. Early driver software was also provided to enable BIOS-level support for the EGA's display modes on compatible operating systems like PC DOS 3.0. Upon release, the EGA was lauded by industry observers for its substantial enhancements in resolution and , marking a clear advancement over the (CGA) and enabling crisper text and more detailed graphics for productivity tasks. However, it faced immediate criticism for its steep pricing, which made it inaccessible to many budget-conscious users, as well as its reliance on TTL (transistor-transistor logic) signaling that restricted it to digital monitors without native analog support. These factors contributed to modest early adoption, though the standard quickly influenced third-party implementations, including EGA-compatible cards from manufacturers like .

Hardware Design

Core Components

The standard IBM Enhanced Graphics Adapter (EGA) utilizes a chipset composed of custom large-scale integration (LSI) modules implemented with TTL logic, including dedicated controllers for the cathode ray tube (CRT), sequencer, graphics operations, and attributes, along with a Motorola 6845-compatible CRT controller (CRTC) for timing and synchronization. These components form the core of the adapter's video generation without relying on a single custom (ASIC), enabling flexible bit-mapped graphics processing across multiple planes. The design emphasizes modular TTL-based circuitry to handle display control, memory access, and signal generation, distinguishing it from earlier adapters like the CGA. Video RAM on the EGA consists of 64 KB of dynamic RAM (DRAM), configured as four separate 16 KB bit planes to support four-bit in standard operation, with the sequencer managing refresh cycles to prevent display flicker. This configuration can be expanded to 256 KB via an optional daughterboard, providing additional pages for enhanced resolutions. The supporting circuitry includes an attribute controller that interfaces data with output signals and a sequencer that coordinates read/write operations between the CPU and video , ensuring efficient data flow during rendering. The EGA connects to RGB monitors via a 9-pin connector delivering TTL-level signals, with a built-in switch allowing compatibility with legacy CGA or MDA monitors by adjusting output characteristics. It interfaces with the host system through an 8-bit ISA bus slot, drawing power from 5 V and 12 V rails supplied by the PC's power supply unit, with provisions for -12 V in certain signal lines. Jumper settings on the card configure I/O addressing, typically in the range of 3C0h to 3DFh, to avoid conflicts with other adapters.

Variants and Clones

IBM offered upgrades to its standard Enhanced Graphics Adapter (EGA) to expand its capabilities for more demanding applications. The base EGA card shipped with 64 KB of memory, supporting up to 16 simultaneous colors in 640×350 resolution, but an optional 256 KB memory expansion daughterboard allowed access to additional modes, including a 16-color 640×350 graphics mode (mode 0Fh or 10h) by enabling extended addressing via the Memory Mode Register. This upgrade provided two full high-resolution color graphics pages, enhancing performance for graphics-intensive tasks without requiring a full card replacement. IBM also offered the Professional Graphics Adapter (PGA), also known as the Professional Graphics Controller (PGC), as a separate high-end graphics product for computer-aided design (CAD) workflows, supporting 640×480 resolution with 256 colors from a 4096-color palette, 320 KB of dedicated video RAM, and an onboard Intel 8088 processor for vector graphics operations like 2D/3D transformations and palette management, while emulating basic CGA modes using an EGA-compatible 14-pixel font. Third-party manufacturers quickly produced EGA-compatible clones to reduce costs and introduce enhancements, with the first appearing in late 1985 as the Video Seven VegaOne. Paradise Systems released the PEGA1A (AutoSwitch EGA 350), an early clone using the Chips & Technologies chipset. STB introduced the EGA Plus, an 8-bit ISA card supporting multiple resolutions and including a parallel port for printer integration. Tecmar's EGA Master and cards from PCs Limited offered similar feature sets at lower prices than IBM's originals. Clones often differentiated themselves through added features beyond the standard EGA baseline. For instance, the STB EGA Plus incorporated faster RAM for improved refresh rates and VGA preview modes, allowing early testing of higher-resolution without full VGA hardware. Paradise clones, such as the AutoSwitch EGA, emphasized modular designs for easier integration with existing monochrome or color monitors. These enhancements addressed limitations in the original EGA, such as memory constraints and display flexibility, though they varied by manufacturer. Despite broad compatibility goals, EGA clones faced challenges due to inconsistent implementations, leading to software glitches like mode-switching crashes or incorrect register states during CGA emulation. Subtle differences in CRTC timing—such as repurposing index 2 for horizontal blanking start instead of sync position—could disrupt legacy CGA programs, requiring developers to use interrupts cautiously or implement presence tests. addressed reliability by publishing detailed ROM listings (part number 6280131) as a benchmark, enabling manufacturers to align their implementations more closely with the standard. EGA technology saw adoption in PC clones from major vendors, integrating the standard into their systems for enhanced graphics support. Later systems like the M290 supported EGA modes natively, while earlier M-series such as the M24 (rebranded as AT&T 6300) used proprietary graphics between CGA and EGA but allowed EGA add-on cards with modifications. Amstrad's PC1640 model bundled EGA cards, while the PC1512 used enhanced CGA emulation, making high-resolution graphics accessible in affordable European-market clones.

Technical Specifications

Memory Architecture

The Enhanced Graphics Adapter (EGA) features a base configuration of 64 KB of video memory, organized as four bit planes, each consisting of 16 KB, to support bit-planar color representation. This planar structure allows each plane to store one bit of color information per pixel, enabling up to 16 colors (2^4 combinations) by combining bits across the four planes at corresponding addresses. Memory expansion options increase the total capacity to 256 KB by adding banks to each plane, resulting in four 64 KB planes, which is necessary for higher-resolution modes. In the planar memory model, pixels are defined by their bits distributed across the planes rather than packed into bytes within a single plane, with the Graphics Controller (GDC) responsible for serializing this data for display output. To optimize access, the memory employs interleaving for even and odd scanlines, where even scanlines are stored in one set of addresses and odd scanlines in another, facilitating sequential CRT retrieval without excessive jumping. CPU access to the video memory occurs through memory-mapped I/O starting at segment A0000h, controlled by read and write modes in the Graphics Controller registers, such as Mode 0 for plane-specific writes using the Map Mask Register. The Sequencer coordinates these accesses, allocating cycles between the CPU and GDC to avoid conflicts, typically granting the CPU one cycle out of every five during high-resolution scans. Bank switching enables navigation through expanded beyond the base 64 KB, segmenting the into 16 KB blocks per plane via the Memory Mode Register and Sequencer controls, allowing software to select active banks for writing or reading. With the base 64 KB configuration, the EGA supports resolutions such as 640×200 in 16 colors, which requires approximately 64 KB total (16 KB per plane), or 640×350 in 2 colors using just one plane (about 28 KB). The full 256 KB expansion is required for 640×350 in 16 colors, demanding around 112 KB (28 KB per plane), as the base alone cannot accommodate the additional scanlines without overflow. The EGA lacks built-in parity checking or advanced error correction in its video memory, relying instead on basic diagnostic tests during initialization, such as read/write verification that triggers audible signals for detected faults. Font storage for text modes is handled separately, often drawing from system RAM or onboard ROM rather than the primary video planes, to conserve the limited video memory for display data.

Addressing and Mapping

The Enhanced Graphics Adapter (EGA) communicates with the CPU via dedicated I/O ports and memory address spaces to manage display operations. In color configurations, the primary I/O ports span 3D0h to 3DBh, encompassing the Cathode Ray Tube Controller (CRTC) address and data ports at 3D4h and 3D5h, the feature control register at 3DAh, and other control registers. For monochrome emulation, these shift to 3B0h to 3BBh, with the CRTC ports at 3B4h and 3B5h and the feature control at 3BAh. The sequencer, responsible for mode setting and memory plane selection, uses fixed ports at 3C4h (address) and 3C5h (data) regardless of display type. Video memory mapping in color modes allocates the range A0000h to AFFFFh for the 64 KB of RAM, divided into four 16 KB bit planes for operations. CPU access to these planes occurs through indexed registers in the graphics controller, where the write mode register (index 5 at port 3CFh) and map mask register (index 2 at port 3C5h) determine which planes receive data during read or write cycles. This indexed approach enables selective plane manipulation without direct addressing of each plane individually. Key register sets facilitate precise control over addressing and display functions. The CRTC registers, programmed via 3D4h/3D5h (color) or 3B4h/3B5h (), define timing parameters including horizontal total (index 0), vertical total (index 6), and start address (indices 12-13) for screen positioning. The attribute controller, accessed at 3C0h, configures palette selection, (border) color (index 11), and pixel panning (index 33). The graphics controller registers at 3CEh/3CFh support bit operations, such as enabling set/reset for plane filling (index 1) and applying bit masks for partial writes (index 8). Switching between monochrome and color base addresses occurs via bit 0 of the miscellaneous output register at 3C2h, which toggles the CRTC ports between 3Bx h and 3Dx h without hardware jumpers on the standard implementation. Mode initialization typically relies on 10h function 00h, which programs the sequencer, CRTC, and other registers to establish the desired addressing scheme and enable video output. To ensure backward compatibility, EGA mappings overlap with prior adapters: color text modes use B8000h (32 KB), aligning with the (CGA), while monochrome text employs B0000h, matching the Monochrome Display Adapter (MDA). This shared addressing allows seamless transition in BIOS-supported environments.

Display Capabilities

Operating Modes

The Enhanced Graphics Adapter (EGA) supports a range of text and graphics operating modes, providing compatibility with prior standards while introducing higher resolutions and color options. Text modes are designed for character-based displays, utilizing a programmable character generator, while graphics modes enable bit-mapped pixel rendering across multiple memory planes. These modes are selected via interrupt 10h calls, with specific parameters controlled by the CRT Controller (CRTC) registers for timings and display characteristics.

Text Modes

EGA text modes include standard low-resolution formats for compatibility and higher-resolution options for clarity. The 40-column by 25-row mode supports 16 colors with an 8x8 or 8x14 character matrix, rendering at an underlying resolution of 320x200 or 320x350 pixels depending on the matrix selected. The 80-column by 25-row mode similarly offers 16 colors from a 64-color palette in configurations, using an 8x8 or 8x14 matrix for 640x200 or 640x350 pixel resolutions, while a variant provides 80x25 with 4 intensity levels and a 9x14 matrix at 720x350 pixels. Additionally, a high-resolution 80x43 is available, employing an 8x8 or 8x14 character matrix on the 350-line scan for denser text display. These modes support up to 8 display pages, depending on installed .
Mode Number (BIOS INT 10h)Columns x RowsColorsCharacter MatrixPixel ResolutionNotes
00h40 x 25168 x 8320 x 200Compatible with CGA
01h40 x 2516/648 x 14320 x 350Enhanced color display
02h80 x 25168 x 8640 x 200Compatible with CGA
03h80 x 2516/648 x 14640 x 350Enhanced color display
07h80 x 254 (mono)9 x 14720 x 350Monochrome display
(CRTC-configured)80 x 4316/648 x 8 or 8 x 14640 x 350High-res text via register adjustments

Graphics Modes

Graphics modes in EGA utilize a four-plane for color rendering, with resolutions tailored for both compatibility and advanced applications. The 320x200 mode supports 16 colors at 4 bits per , requiring at least 64 KB of for dual pages (expandable to 8 pages with 256 KB). The 640x200 mode provides 16 colors at 4 bits per or 2 colors in , with page counts varying by size. Higher-resolution 640x350 modes offer 16 colors (from 64 via palette) at 4 bits per , necessitating 128 KB for full 16-color support with one page (or 256 KB for two pages), alongside variants at 2 or 4 colors. These modes are accessed through specific calls and rely on TTL signaling for color monitors. In low- configurations (64 KB), may be limited to 4 colors in some 350-line modes.
Mode Number (BIOS INT 10h)ResolutionColorsBits per PixelPages (Memory-Dependent)Notes
04h/05h320 x 200421 (64 KB)CGA-compatible
0Dh320 x 2001642/4/8 (64/128/256 KB)Standard color
06h640 x 2002 (mono)11 (64 KB)
0Eh640 x 2001641/2/4 (64/128/256 KB)Standard color
0Fh640 x 3502 (mono)11/2 (64/128 KB) variant
10h640 x 3501641/2 (128/256 KB)4 colors with 64 KB; 16 colors requires 128 KB

Timings and Refresh Rates

All EGA modes operate at a standard 60 Hz vertical refresh rate for TTL color displays, ensuring flicker-free viewing on compatible monitors. Horizontal timings are configurable via CRTC registers, with 15.75 kHz for 200-line modes (CGA-compatible) and 21.85 kHz for 350-line color modes. Monochrome high-resolution modes, such as 80x43 text or 640x350 graphics, use 21.85 kHz horizontal scan at 60 Hz vertical refresh, identical to color 350-line modes. The pixel clock is sourced from 14 MHz or 16 MHz oscillators, multiplexed under I/O control to match mode requirements. Interlacing is optional in 350-line modes, such as the 640x350 16-color variant configured via CRTC registers, to reduce demands by alternating scan lines, though non-interlaced operation is preferred for color displays when sufficient (128 KB or more) is available. This flexibility allows adaptation to display capabilities while maintaining compatibility.

Color System

The Enhanced Graphics Adapter (EGA) employs a color palette consisting of 64 fixed colors, generated through a 6-bit RGB color space where each primary color channel—red, green, and blue—is represented by 2 bits, yielding 4 possible intensity levels per channel and a total of 26=642^6 = 64 combinations. These 64 colors form the base palette from which software can select subsets for display. The palette is managed via 16 digital-to-analog converter (DAC) registers within the Attribute Controller, accessible at I/O port 3C0h (indices 00h through 0Fh), each holding a 6-bit value that indexes one of the 64 base colors for simultaneous on-screen use. An additional register (index 10h) controls the or border color, also selected from the 64-color palette. Palette modifications must occur during the vertical retrace interval to prevent visual artifacts on the display. In the RGB222 encoding scheme, the 2 bits per channel define discrete intensity levels: 00 corresponds to 0% (off), 01 to approximately 33% (low), 10 to 66% (medium), and 11 to 100% (high), providing stepped rather than continuous color gradients. This digital encoding is output as six separate TTL (transistor-transistor logic) signals—two lines each for , , and —delivering binary high (approximately 5V) or low (0V) voltages to compatible digital monitors. The absence of analog support in the EGA restricts its use to TTL-compatible displays, as the fixed voltage levels cannot interface directly with analog monitors without additional conversion hardware. Key limitations of the EGA color system include the lack of dedicated hardware for dithering, which prevents software from simulating intermediate colors through patterned mixing at the hardware level, and the fixed 16-color selection mechanism, which inherently bars the simultaneous display of all 64 palette colors in standard modes. In graphics modes with 4-bit , such as 320×200 resolution, the system relies on these 16 selectable colors, further emphasizing the palette's constraints compared to later analog-based adapters.

Software and Compatibility

System Integration

The Enhanced Graphics Adapter (EGA) integrates with IBM PC-compatible systems primarily through extensions to the Basic Input/Output System (BIOS), enabling software access to its video modes and features via standardized interrupt calls. The EGA BIOS, located in ROM at address C0000h, extends the INT 10h video services interrupt with functions from 00h to 12h, which handle operations such as mode setting (00h), cursor positioning (02h-03h), scrolling (06h-07h), pixel read/write (0Ch-0Dh), palette configuration (0Bh and 10h), and alternate video selections (12h). The graphics character set is accessed via the INT 1Fh pointer, while font loading into the character generator is supported via INT 10h AH=11h functions, allowing up to 512 user-defined characters (with 128 KB or more of video memory) for extended character sets, facilitating customizable text rendering in both alphanumeric and graphics modes. These extensions ensure seamless interaction with the system's video services, including revectoring of INT 42h to the EGA's video pointer upon detection during power-on self-test (POST). Operating system compatibility for the EGA relies on BIOS-level access, with full support in version 2.0 and later through standard calls for mode switching and display control, as these versions include the necessary video interrupt handling for PC hardware. PC-DOS, IBM's variant, provides similar integration but with partial native handling in early releases due to IBM-specific optimizations, requiring occasional mode adjustments for full EGA utilization. , released in 1985, supports EGA as a display adapter under 2.0 but lacks native graphics acceleration, relying instead on emulation for basic rendering without hardware-optimized drawing primitives. Driver requirements for advanced EGA features often involve third-party terminate-and-stay-resident (TSR) programs to manage palette control beyond limits, such as dynamic color remapping during runtime, which the standard functions do not fully expose without supplemental software. Auto-detection occurs via the system's POST routine, where the scans for the EGA at I/O ports 3B0h-3BFh and 3D0h-3DFh, initializing vectors like INT 43h for parameters and INT 44h for character tables if present. As an ISA bus card, the EGA can encounter hardware conflicts with other expansion cards sharing the A0000h-BFFFFh or I/O ports, particularly when multiple video adapters are installed, necessitating careful to avoid overlaps in memory mapping or port access. Configuration for port and memory selection on the original EGA is fixed, but many third-party clones use DIP switches to resolve such conflicts by selecting alternative base addresses or disabling overlapping features like IRQ sharing for vertical retrace (if enabled). Backward compatibility is achieved through built-in emulation of prior standards, allowing fallback to (CGA) modes such as 320x200x4 (mode 04h) or 640x200x2 (mode 06h) when lower-resolution software is detected, ensuring operation with legacy applications without modification. The EGA also emulates Monochrome Display Adapter (MDA) text modes and (CGA) modes, including 720×350 monochrome graphics (mode 07h), via BIOS configuration that activates compatibility during mode sets. Some third-party EGA clones added compatibility.

Applications and Games

The Enhanced Graphics Adapter (EGA) enabled significant advancements in productivity software during the mid-1980s, particularly for graphical output in business applications. , a leading spreadsheet program, incorporated EGA support starting with Release 2 in 1985, allowing users to generate enhanced charts and graphs in resolutions up to 640x350 with 16 colors from a 64-color palette. This feature improved visual representation of data, such as pie charts and bar graphs, by leveraging EGA's higher resolution over CGA, though early implementations focused on compatibility modes to ensure broad accessibility. Similarly, , released in 1986, supported EGA's 640x350 mode for detailed drafting and design work, with dedicated drivers enabling precise line drawing and color rendering in professional CAD environments. In gaming, EGA's capabilities were showcased through titles that exploited its 16-color mode and palette flexibility for richer visuals. King's Quest III: To Heir Is Human (1986), developed by Sierra On-Line, utilized EGA for 16-color artwork, enhancing the adventure game's detailed scenes and character animations compared to its CGA predecessors. Ultima IV: Quest of the Avatar received an EGA upgrade in 1987, expanding its graphics with improved tile sets and color depth for a more immersive role-playing experience in its expansive world. Maniac Mansion (1987), from Lucasfilm Games, employed EGA graphics to deliver blocky yet expressive 16-color sprites and environments, supporting the point-and-click adventure mechanics on compatible hardware. Programming interfaces facilitated custom EGA applications, with the (BGI) providing drivers like EGAVGA.BGI for and compilers starting in 1987. These drivers abstracted hardware access, enabling developers to create graphics routines in 640x350 resolution without direct programming. tools such as (1985) optimized for EGA by supporting high-resolution image creation up to 640x400 with adjustable palettes, allowing users to generate and edit EGA-specific assets like custom fonts and dithered images. Games and demos often employed palette cycling techniques to simulate animations, rapidly remapping colors for effects like rotating wheels or flickering lights, as demonstrated in assembly routines for flicker-free displays. Despite these innovations, EGA adoption in software faced limitations, as many applications defaulted to CGA modes for wider compatibility across PC systems until around 1986, when EGA hardware became more prevalent. EGA-exclusive features remained rare in early titles, with developers prioritizing to avoid excluding users with older adapters.

Adoption and Legacy

Market Penetration

The Enhanced Graphics Adapter (EGA), introduced by in October 1984 at a price of $524 for the base 64 KB version (with an additional $199 for expanded memory), initially faced barriers to widespread adoption due to its high cost, which positioned it primarily as a premium upgrade for professional users rather than entry-level systems. This pricing, often exceeding $400 even for basic configurations, limited its appeal in the consumer market, where cheaper alternatives like the (CGA) remained persistent for budget-conscious home users and small setups. In contrast, EGA found stronger uptake in corporate environments, particularly in the United States and , where businesses valued its improved resolution and color capabilities for applications such as CAD and data visualization on IBM PC/AT systems. EGA's commercial trajectory peaked between 1985 and 1987, driven by its integration into a growing number of PC/AT-compatible machines, though exact unit sales figures are scarce; however, the standard's momentum is evidenced by its bundling in a notable portion of mid-range business PCs during this period. Competitor dynamics played a key role, with the monochrome —released in 1982 and praised for its high-resolution text support—outselling EGA in the early going, achieving over 500,000 units by 1985 thanks to strong business software compatibility like Lotus 1-2-3. The arrival of EGA clones in late 1985, such as the Genoa Spectra at a list price of $599 dropping to a street price of $343 by August 1986, significantly broadened market access by reducing costs and spurring competition among over two dozen suppliers, including , ATI, and Tseng Labs; these clones captured more than 40% of the graphics card market within a year. By 1987, EGA began phasing out following IBM's introduction of the Video Graphics Array (VGA) with the PS/2 line, which offered backward compatibility and superior features at competitive prices, rendering EGA obsolete for new systems while remaining stock circulated into 1988 for legacy upgrades.

Technological Influence

The Enhanced Graphics Adapter (EGA) served as a pivotal bridge in the evolution of personal computer graphics, directly paving the way for subsequent standards that expanded color depth and resolution capabilities. Introduced by IBM in 1984, EGA's 16-color palette at resolutions up to 640×350 pixels marked a significant advancement over the Color Graphics Adapter (CGA), but its limitations in memory organization and lack of advanced rendering features highlighted the need for more efficient architectures. This directly influenced the development of the Video Graphics Array (VGA) in 1987, which adopted an analog output for 256 simultaneous colors from a palette of 262,144, while maintaining backward compatibility with EGA modes to ensure a smooth transition for existing software. VGA's shift to a more versatile display system addressed EGA's digital-only constraints, enabling broader adoption in consumer and professional applications. Furthermore, EGA's emphasis on standardized modes and palette selection inspired extensions in Super Video Graphics Array (SVGA) standards during the late 1980s and early 1990s, where third-party implementations like those from Tseng Labs built upon EGA's register compatibility to introduce higher resolutions and enhanced color support, fostering a competitive ecosystem for graphics innovation. In contemporary , EGA's influence persists through robust emulation efforts that preserve its unique rendering characteristics for historical accuracy. Software emulators such as provide near-complete EGA support, including cycle-accurate simulation of its 16-color modes and planar memory access, allowing modern users to experience original DOS applications without hardware. Similarly, PCem and its successor offer detailed emulation of PC systems equipped with EGA cards, replicating hardware behaviors like attribute controller operations for authentic video output in vintage games and utilities, with significant updates released in 2025 enhancing compatibility. Hardware-based recreations, such as the MiSTer FPGA platform's AO486 core, extend this legacy by implementing EGA-compatible video subsystems in reconfigurable logic, enabling low-latency, pixel-perfect playback of EGA-era software on contemporary displays while supporting direct analog video for CRT monitors. In 2025, projects like the MCE Blaster adapter emerged, using to convert EGA signals for VGA monitors, aiding hardware preservation. These tools not only facilitate preservation but also enable developers to study and extend EGA's quirks, such as its bitplane interleaving, in modern projects. EGA's architectural contributions extended beyond hardware to shape early graphical user interfaces (GUIs) and paradigms, bridging the text-based era to -driven computing. By providing a reliable 16-color mode, EGA enabled the practical implementation of windowed multitasking environments like Digital Research's , which leveraged EGA's palette remapping for intuitive desktop metaphors on systems, and Quarterdeck's DESQview, a preemptive multitasker that utilized EGA's graphics primitives to overlay text and vector elements efficiently. This foundation democratized visual computing, allowing GUIs to move from experimental prototypes to accessible tools for . In , EGA profoundly impacted adventure genres, particularly Sierra On-Line's titles, where its facilitated detailed, hand-painted scenes and dithering techniques in the Adventure Game Interpreter (AGI) engine; games like III employed EGA's modes to create immersive worlds with dynamic lighting and environmental storytelling, influencing narrative-driven design principles that persisted into later eras. Today, EGA maintains relevance in retro gaming communities and historical analysis, where enthusiasts recreate and dissect its capabilities to appreciate early PC culture. Dedicated groups utilize emulators and FPGA hardware to run EGA-optimized titles, fostering discussions on optimization techniques like palette cycling that defined the era's aesthetic. As of , indie developers continue to create new EGA-style adventure games, preserving the aesthetic in modern titles. Institutions such as the incorporate EGA-era artifacts into broader exhibits on personal computing evolution, highlighting its role in transitioning from to color displays and underscoring its place in the timeline of hardware milestones. Reflecting on EGA's constraints reveals key lessons that propelled advancements: its planar memory layout, dividing the 64 KB into four interleaved bitplanes for color encoding, introduced inefficiencies in CPU access and rendering speed compared to later linear framebuffers in VGA and beyond, where contiguous allocation simplified programming and boosted performance for complex scenes. Additionally, EGA's absence of dedicated 3D acceleration—relying solely on 2D blitter-like operations—foreshadowed the GPU era, as the demand for rendering in the drove innovations in specialized hardware like 3dfx's Voodoo cards, evolving from EGA's foundational but limited raster capabilities.

References

  1. https://handwiki.org/wiki/Hercules_Graphics_Card
Add your contribution
Related Hubs
User Avatar
No comments yet.