Video Graphics Array

Last updated
Video Graphics Array
IBM VGA graphics card.jpg
Release date1987;34 years ago (1987)
Cards
Entry-level
Mid-range
High-end
History
Predecessor Enhanced Graphics Adapter
Successor

Video Graphics Array (VGA) is a video display controller and accompanying de facto graphics standard, first introduced with the IBM PS/2 line of computers in 1987, [1] [2] [3] which became ubiquitous in the PC industry within three years. [4] The term can now refer to the computer display standard, the 15-pin D-subminiature VGA connector, or the 640×480 resolution characteristic of the VGA hardware. [5]

Contents

VGA was the last IBM graphics standard to which the majority of PC clone manufacturers conformed, making it the lowest common denominator that virtually all post-1990 PC graphics hardware can be expected to implement. [6]

IBM intended to supersede VGA with the Extended Graphics Array (XGA) standard, but failed. [7] Instead, VGA was adapted into many extended forms by third parties, collectively known as Super VGA, [8] then gave way to custom graphics processing units which, in addition to their proprietary interfaces and capabilities, continue to implement common VGA graphics modes and interfaces to the present day.

The VGA analog interface standard has been extended to support resolutions of up to 2048x1536 and even higher in special applications. [9]

Hardware design

VGA section on the motherboard in IBM PS/55 IBM VGA 90X8941 on PS55.jpg
VGA section on the motherboard in IBM PS/55

Unlike the graphics adapters that preceded it (MDA, CGA, EGA and many third-party options) there was initially no discrete VGA card released by IBM. The first commercial implementation of VGA was a built-in component of the IBM PS/2, in which it was accompanied by 256KB of video RAM, and a new DE-15 connector replacing the DE-9 used by previous graphics adapters.

IBM later released the standalone IBM PS/2 Display Adapter, which utilized the VGA but could be added to machines that did not have it built in. [10] [11]

The VGA was a single chip implementing the entirety of a video display controller, rather than the many discrete components and ICs of the graphics adapters that had preceded it. The term "array" rather than "adapter" in the name denoted that it was not a complete independent expansion device, but a single component that could be integrated into a system. [11]

The VGA required only video memory, timing crystals and an external RAMDAC, [12] and its small part count allowed IBM to include it directly on the PS/2 motherboard, in contrast to prior IBM PC models  PC, PC/XT, and PC AT  which required a separate display adapter installed in a slot in order to connect a monitor.

Capabilities

Comparison of standard resolutions including VGA's 640x480 Vector Video Standards2.svg
Comparison of standard resolutions including VGA's 640x480

The VGA supports all graphics modes supported by the MDA, CGA and EGA cards, as well as multiple new modes.

Standard graphics modes

The 640×480 16-color and 320×200 256-color modes had fully redefinable palettes, with each entry selected from an 18-bit (262,144-color) gamut.

The other modes defaulted to standard EGA or CGA compatible palettes and instructions, but still permitted remapping of the palette with VGA-specific commands.

640x480 graphics mode

As the VGA began to be cloned in great quantities by manufacturers who added ever-increasing capabilities, its 640x480, 16-color mode became the de facto lowest common denominator of graphics cards. By the mid 90s, a 640x480x16 graphics mode using the VGA memory and register specifications was expected by operating systems such as Windows 95 and OS/2 Warp 3.0, which provided no support for lower resolutions or bit depths, or support for other memory or register layouts without additional drivers. Well into the 2000s, even after the VESA standard for graphics cards became commonplace, the "VGA" graphics mode remained a compatibility option for PC operating systems.

Other graphics modes

Nonstandard display modes can be implemented, with horizontal resolutions of:

  • 512 to 800 pixels wide, in 16 colors
  • 256 to 400 pixels wide, in 256 colors

And heights of:

  • 200, or 350 to 410 lines (including 400-line) at 70 Hz refresh rate, or
  • 224 to 256, or 448 to 512 lines (including 240 or 480-line) at 60 Hz refresh rate
  • 512 to 600 lines at reduced vertical refresh rates (down to 50 Hz, and including e.g. 528, 544, 552, 560, 576-line), depending on individual monitor compatibility.

For example, high resolution modes with square pixels are available at 768×576 or 704×528 in 16 colors, or medium-low resolution at 320×240 with 256 colors. Alternatively, extended resolution is available with "fat" pixels and 256 colors using, e.g. 400×600 (50 Hz) or 360×480 (60 Hz), and "thin" pixels, 16 colors and the 70 Hz refresh rate with e.g. 736×410 mode.

"Narrow" modes such as 256×224 tend to preserve the same pixel ratio as in e.g. 320×240 mode unless the monitor is adjusted to stretch the image out to fill the screen, as they are derived simply by masking down the wider mode instead of altering pixel or line timings, but can be useful for reducing memory requirements and pixel addressing calculations for arcade game conversions or console emulators.

Standard text modes

VGA also implements several text modes:

As with the pixel-based graphics modes, additional text modes are possible by programming the VGA correctly, with an overall maximum of about 100×80 cells and an active area spanning about 88×64 cells.

One variant that is sometimes seen is 80×30 or 80×60, using an 8×16 or 8×8 font and an effective 640×480 pixel display, which trades use of the more flickery 60 Hz mode for an additional 5 or 10 lines of text and square character blocks (or, at 80×30, square half-blocks).

Technical details

Unlike the cards that preceded it, which used binary TTL signals to interface with a monitor (or composite, in the case of the CGA), the VGA introduced a video interface using pure analog RGB signals, 0.7 volts peak-to-peak max. In conjunction with an 18-bit RAMDAC this produced a color gamut of 262,144 colors. This gamut has come to be well known as the SRGB colorspace (but it is most commonly divided into 16,777,216 colors using a 24-bit RAMDAC or 8-bits per primary color).

The original VGA specifications follow:

Signal timings

The intended standard value for the horizontal frequency of VGA's 640x480 mode is exactly double the value used in the NTSC-M video system, as this made it much easier to offer optional TV-out solutions or external VGA-to-TV converter boxes at the time of VGA's development. It is also at least nominally twice that of CGA, which also supported composite monitors.

All derived VGA timings (i.e. those which use the master 25.175 and 28.322 MHz crystals and, to a lesser extent, the nominal 31.469 kHz line rate) can be varied by software that bypasses the VGA firmware interface and communicates directly with the VGA hardware, as many MS-DOS based games did. However, only the standard modes, or modes that at least use almost exactly the same H-sync and V-sync timings as one of the standard modes, can be expected to work with the original late-1980s and early-1990s VGA monitors. The use of other timings may in fact damage such monitors and thus was usually avoided by software publishers.

Third-party "multisync" CRT monitors were more flexible, and in combination with "super EGA", VGA, and later SVGA graphics cards using extended modes, could display a much wider range of resolutions and refresh rates at arbitrary sync frequencies and pixel clock rates.

For the most common VGA mode (640×480, 60 Hz, non-interlaced), the horizontal timings can be found in the HP Super VGA Display Installation Guide and in other places. [19] [20]

Typical uses of selected modes

640×400 @ 70 Hz is traditionally the video mode used for booting VGA-compatible x86 personal computers [21] that show a graphical boot screen, while text-mode boot uses 720×400 @ 70 Hz.

This convention has been eroded in recent years, however, with POST and BIOS screens moving to higher resolutions, taking advantage of EDID data to match the resolution to a connected monitor.

640×480 @ 60 Hz is the default Windows graphics mode (usually with 16 colors), [21] up to Windows 2000. It remains an option in XP and later versions via the boot menu "low resolution video" option and per-application compatibility mode settings, despite Windows now defaulting to 1024x768 and generally not allowing any resolution below 800x600 to be set.

The need for such a low-quality, universally compatible fallback has diminished since the turn of the millennium, as VGA-signalling-standard screens or adaptors unable to show anything beyond the original resolutions have become increasingly rare.

320×200 at 70 Hz was the most common mode for VGA-era PC games.

Connector

A D-SUB connector (better known as VGA connector) Vga-cable.jpg
A D-SUB connector (better known as VGA connector)
VGA BNC connectors BNC connectors.jpg
VGA BNC connectors

The standard VGA monitor interface is a 15-pin D-subminiature connector in the "E" shell, variously referred to as "HD-15", "DE-15" and "DB-15."

Because VGA uses low-voltage analog signals, signal degradation becomes a factor with low-quality or overly long cables. Solutions include shielded cables, cables that include a separate internal coaxial cable for each color signal, and "broken out" cables utilizing a separate coaxial cable with a BNC connector for each color signal.

BNC breakout cables typically use five connectors, one each for Red, Green, Blue, Horizontal Sync, and Vertical Sync, and do not include the other signal lines of the VGA interface. With BNC, the coaxial wires are fully shielded end-to-end and through the interconnect so that no crosstalk or external interference is possible.

Color palette

VGA 256 default color palette VGA palette with black borders.svg
VGA 256 default color palette
Examples of VGA images in 640x480 with 16 colors and 320x200 with 256 colours (bottom). Dithering is used to mask color limitations. Torak.gif
Examples of VGA images in 640×480 with 16 colors and 320×200 with 256 colours (bottom). Dithering is used to mask color limitations.

The VGA color system uses register-based palettes to map colors in various bit depths to its 18-bit output gamut. It is backward compatible with the EGA and CGA adapters, but supports extra bit depth for the palette when in these modes.

For instance, when in EGA 16-color modes, VGA offers 16 palette registers, and in 256-color modes, it offers 256 registers. [22] Each palette register contain a 3×6 bit RGB value, selecting a color from the 18-bit gamut of the DAC.

These color registers are initialized to default values IBM expected to be most useful for each mode. For instance, EGA 16-color modes initialize to the default CGA 16-color palette, and the 256-color mode initializes to a palette consisting of 16 CGA colors, 16 grey shades, and then 216 colors chosen by IBM to fit expected use cases. [23] After initialization they can be redefined at any time without altering the contents of video RAM, permitting palette cycling.

In the 256-color modes, the DAC is set to combine four 2-bit color values, one from each plane, into an 8-bit-value representing an index into the 256-color palette. The CPU interface combines the 4 planes in the same way, a feature called "chain-4," so that each the pixel appears to the CPU as a packed 8-bit value representing the palette index. [24]

Use

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:

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 DOS 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 DOS 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.

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:

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, 320×240 was the best known and most frequently used, as it offered a standard 40-column resolution and 4:3 aspect ratio with square pixels. "320×240×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 exotica and 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 800×600 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 832×624, the theoretical maximum resolution achievable with 256kb 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 320×240 (square pixels, three video pages, 60 Hz), 320×400 (double resolution, two video pages, 70 Hz), and 360×480 (highest resolution compatible with both standard VGA monitors and cards, one video page, 60 Hz) in 256 colors, or double the H-rez in 16-color mode.

Hardware manufacturers

Several companies produced VGA compatible graphic board models. [25]

Successors

Super VGA (SVGA)

Super VGA (SVGA) is a display standard developed in 1988, when NEC Home Electronics announced its creation of the Video Electronics Standards Association (VESA). The development of SVGA was led by NEC, along with other VESA members including ATI Technologies and Western Digital. SVGA enabled graphics display resolutions up to 800×600 pixels, 36% more than VGA's maximum resolution of 640×480 pixels. [26]

Extended Graphics Array (XGA)

Extended Graphics Array (XGA) is an IBM display standard introduced in 1990. Later it became the most common appellation of the 1024 × 768 pixels display resolution.

See also

Related Research Articles

IBM 8514 IBM graphics computer display standard

IBM 8514 is an IBM graphics computer display standard supporting a display resolution of 1024x768 pixels with 256 colors at 43.5 Hz, or 640x480 at 60 Hz (non-interlaced). 8514 usually refers to the display controller hardware However, IBM sold the companion CRT monitor which carries the same designation, 8514.

Hercules Graphics Card

The Hercules Graphics Card (HGC) is a computer graphics controller made by Hercules Computer Technology, Inc. that combines IBM's text-only MDA display standard with a bitmapped graphics mode. This allows the HGC to offer both high-quality text and graphics from a single card.

Enhanced Graphics Adapter

The Enhanced Graphics Adapter (EGA) is an IBM PC graphics adapter 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.

IBM PS/2 Third generation of personal computers by IBM

The Personal System/2 or PS/2 is IBM's third generation of personal computers. Released in 1987, it officially replaced the IBM PC, XT, AT, and PC Convertible in IBM's lineup. Many of the PS/2's innovations, such as the 16550 UART, 1440 KB 3.5-inch floppy disk format, Model M keyboard layout, 72-pin SIMMs, the PS/2 port, and the VGA video standard, went on to become standards in the broader PC market.

Mode 13h

Mode 13h is the standard 256-color mode on VGA graphics hardware introduced in 1987 with the IBM PS/2. It has a resolution of 320×200 pixels. It was used extensively in computer games and art/animation software of the late 1980s and early to mid-1990s. "13h" refers to the number of the mode in the VGA BIOS. The "h" stands for hexadecimal.

A random-access memory digital-to-analog converter (RAMDAC) is a combination of three fast digital-to-analog converters (DACs) with a small static random-access memory (SRAM) used in computer graphics display controllers or video cards to store the color palette and to generate the analog signals to drive a color monitor. The logical color number from the display memory is fed into the address inputs of the SRAM to select a palette entry to appear on the data output of the SRAM. This entry is composed of three separate values corresponding to the three components of the desired physical color. Each component value is fed to a separate DAC, whose analog output goes to the monitor, and ultimately to one of its three electron guns.

Color Graphics Adapter

The Color Graphics Adapter (CGA), originally also called the Color/Graphics Adapter or IBM Color/Graphics Monitor Adapter, introduced in 1981, was IBM's first color graphics card for the IBM PC and established a de facto computer display standard.

The Multi-Color Graphics Array or MCGA is a video subsystem built into the motherboard of the IBM PS/2 Model 30, introduced on April 2, 1987, and Model 25, introduced later on August 11; no standalone MCGA cards were ever made.

IBM Monochrome Display Adapter

The Monochrome Display Adapter is IBM's standard video display card and computer display standard for the PC introduced in 1981. The MDA does not have any pixel-addressable graphics modes, only a single monochrome text mode which can display 80 columns by 25 lines of high resolution text characters or symbols useful for drawing forms.

Text mode is a computer display mode in which content is internally represented on a computer screen in terms of characters rather than individual pixels. Typically, the screen consists of a uniform rectangular grid of character cells, each of which contains one of the characters of a character set; at the same time, contrasted to all points addressable (APA) mode or other kinds of computer graphics modes.

Professional Graphics Controller

Professional Graphics Controller is a graphics card manufactured by IBM for PCs. It consists of three interconnected PCBs, and contains its own processor and memory. The PGC was, at the time of its release, the most advanced graphics card for the IBM XT and aimed for tasks such as CAD.

Plantronics Colorplus

The Plantronics Colorplus is a graphics card for IBM PC computers, first sold in 1982. It is a superset of the then-current CGA standard, using the same monitor standard and providing the same pixel resolutions. It was produced by Frederick Electronics, of Frederick, Maryland.

In computing, indexed color is a technique to manage digital images' colors in a limited fashion, in order to save computer memory and file storage, while speeding up display refresh and file transfers. It is a form of vector quantization compression.

VGA text mode

VGA text mode was introduced in 1987 by IBM as part of the VGA standard for its IBM PS/2 computers. Its use on IBM PC compatibles was widespread through the 1990s and persists today for some applications on modern computers. The main features of VGA text mode are colored characters and their background, blinking, various shapes of the cursor, and loadable fonts. The Linux console traditionally uses hardware VGA text modes, and the Win32 console environment has an ability to switch the screen to text mode for some text window sizes.

The ATI Wonder series represents some of the first graphics add on products for IBM PCs and compatibles introduced by ATI Technologies in the mid to late 1980s. These cards were unique at the time as they offered the end user a considerable amount of value by combining support for multiple graphics standards into a single card. The VGA Wonder series added additional value with the inclusion of a bus mouse port, which normally required the installation of a dedicated Microsoft Bus Mouse adapter.

Tandy Graphics Adapter Computer display standard for the Tandy 1000 series

Tandy Graphics Adapter is a computer display standard for the Tandy 1000 series of IBM PC compatibles, which has compatibility with the video subsystem of the IBM PCjr but became a standard in its own right.

Composite artifact colors

Composite artifact colors is a designation commonly used to address several graphic modes of some 1970s and 1980s home computers. With some machines, when connected to an NTSC TV or monitor over composite video outputs, the video signal encoding allowed for extra colors to be displayed, by manipulating the pixel position on screen, not being limited by each machine's hardware color palette.

References

  1. Petzold, Charles (July 1987). "Triple standard: three new video modes from IBM". PC Magazine. Ziff Davis. Retrieved 2020-04-13.
  2. Polsson, Ken. "Chronology of IBM Personal Computers". Archived from the original on 2015-02-21. Retrieved 2015-01-28.
  3. "What is VGA (Video Graphics Array)?" . Retrieved 2018-08-13.
  4. Enterprise, I. D. G. (1990-10-22). Computerworld. IDG Enterprise.
  5. "Drawing In Protected Mode - OSDev Wiki". wiki.osdev.org. Retrieved 2020-12-20.
  6. Dr. Jon Peddie. "Famous Graphics Chips: IBM's VGA. The VGA was the most popular graphics chip ever" . Retrieved 2020-04-13. It is said about airplanes that the DC3 and 737 are the most popular planes ever built, and the 737, in particular, the best-selling airplane ever. The same could be said for the ubiquitous VGA, and its big brother the XGA. The VGA, which can still be found buried in today’s modern GPUs and CPUs, set the foundation for a video standard, and an application programming standard.
  7. Inc, InfoWorld Media Group (1996-02-05). InfoWorld. InfoWorld Media Group, Inc. Discrete failures such as[...]XGA graphics
  8. Inc, InfoWorld Media Group (1991-04-15). InfoWorld. InfoWorld Media Group, Inc.
  9. Magazines, S. P. H. (April 2007). HWM. SPH Magazines.
  10. "THE IBM PERSONAL SYSTEM/2 (TM) DISPLAY ADAPTER, THE IBM PERSONAL SYSTEM/2 DISPLAY ADAPTER 8514/A AND". www-01.ibm.com. 1987-04-02. Retrieved 2020-08-16.
  11. 1 2 Inc, Ziff Davis (1987-12-22). PC Mag. Ziff Davis, Inc.
  12. Thompson, Stephen (1988). "VGA ‒ Design choices for a new video subsystem". IBM Systems Journal. IBM. 27 (2): 185‒197. doi:10.1147/sj.272.0185.
  13. Hinner, Martin. "VGA Timings". Archived from the original on 27 October 2012. Retrieved 7 November 2012.
  14. "Drawing In Protected Mode - OSDev Wiki". wiki.osdev.org. Retrieved 2020-12-20.
  15. Abrash, Michael. "How 360×480 in 256 color mode works". Graphics Programming Black Book. Archived from the original on 23 April 2012. Retrieved 7 November 2012.
  16. "VGA Signal 640 x 480 @ 60 Hz Industry standard timing".
  17. 1 2 PS/2 Video Subsystem Technical Reference Manual 1992
  18. "VGA Signal timings". Archived from the original on 2016-06-20.
  19. "Javier Valcarce VGA timings page". Archived from the original on 2015-01-02.
  20. HP D1194A Super VGA Display & HP D1195A Ergonomic Super VGA Display Installation Guide, Hewlett Packard
  21. 1 2 "ePanorama.net - Circuits". Archived from the original on 2009-02-27. 090425 epanorama.net
  22. "VGA/SVGA Video Programming--Color Regsters". www.scs.stanford.edu. Retrieved 2020-08-16.
  23. IBM PS/2 Hardware Interface Technical Reference Manual (PDF). pp. 13–18.
  24. Uphoff, Matthias (1990). Die Programmierung der EGA/VGA Grafikkarte; ISBN   3-89319-274-3; this whole section was learned from this book
  25. "The History of the Modern Graphics Processor". techspot.com. Archived from the original on 29 March 2016. Retrieved 6 May 2018.
  26. Brownstein, Mark (November 14, 1988). "NEC Forms Video Standards Group". InfoWorld . 10 (46). p. 3. ISSN   0199-6649 . Retrieved May 27, 2016.

Further reading