Video Graphics Array

Video Graphics Array

The term Video Graphics Array (VGA) refers specifically to the display hardware first introduced with the IBM PS/2 line of computers in 1987 [cite web|title=Chronology of IBM Personal Computers|url=] , but through its widespread adoption has also come to mean either an analog computer display standard, the 15-pin D-subminiature VGA connector, or the 640×480 resolution itself. While this resolution has been superseded in the personal computer market, it is becoming a popular resolution on mobile devices [cite web|title=Windows Mobile 6 phone boasts VGA display |url=]

VGA was the last graphical standard introduced by IBM that the majority of PC clone manufacturers conformed to, making it today (as of 2008) the lowest common denominator that all PC graphics hardware supports before a device-specific driver is loaded into the computer. For example, the Microsoft Windows splash screen appears while the machine is still operating in VGA mode, which is the reason that this screen always appears in reduced resolution and color depth.

VGA was officially superseded by IBM's XGA standard, but in reality it was superseded by numerous slightly different extensions to VGA made by clone manufacturers that came to be known collectively as "Super VGA".

Technical details

VGA is referred to as an "array" instead of an "adapter" because it was implemented from the start as a single chip, replacing the Motorola 6845 and dozens of discrete logic chips covering a full-length ISA board that the MDA, CGA, and EGA used. This also allowed it to be placed directly on a PC's motherboard with a minimum of difficulty (it only required video memory, timing crystals and an external RAMDAC), and the first IBM PS/2 models were equipped with VGA on the motherboard.

The VGA specifications are as follows:

* 256 KB Video RAM
* 16-color and 256-color modes
* 262,144-value color palette (six bits each for red, green, and blue)
* Selectable 25.175 MHz [cite web|title=VGA 640x350 Signal timing|url=] or 28.322 MHz master clock
* Maximum of 720 horizontal pixels [PS/2 Video Subsystem Technical Reference Manual 1992]
* Maximum of 480 lines [PS/2 Video Subsystem Technical Reference Manual 1992]
* Refresh rates at up to 70 Hz [cite web|title=VGA Signal timings|url=]
* Vertical Blanking interrupt (Not all clone cards support this.)
* Planar mode: up to 16 colors (4 bit planes)
* Packed-pixel mode: 256 colors (Mode 13h)
* Hardware smooth scrolling support
* Some "Raster Ops" support
* Barrel shifter
* Split screen support
* 0.7 V peak-to-peak [cite web|title=VGA Electrical FAQ|url=]
* 75 ohm double-terminated impedance (18.7mA - 13mW)

The VGA supports both All Points Addressable graphics modes, and alphanumeric text modes. Standard graphics modes are

* 640×480 in 16 colors
* 640×350 in 16 colors
* 320×200 in 16 colors
* 320×200 in 256 colors (Mode 13h)

As well as the standard modes, VGA can be configured to emulate many of the modes of its predecessors (EGA, CGA, and MDA).

The pinout can be found in the VGA connector page.

tandard text modes

Standard alphanumeric text modes for the VGA use 80×25 or 40×25 text cells. Each cell may choose from one of 16 available colors for its foreground and 8 colors for the background; the 8 background colors allowed are the ones without the high-intensity bit set. Each character may also be made to blink; all that are set to blink will blink in unison. The blinking option for the entire screen can be exchanged for the ability to choose the background color for each cell from among all 16 colors. All of these options are the same as those on the CGA adapter as introduced by IBM.

Like EGA, VGA supports 512 simultaneous characters on screen by disabling one color bit. The glyphs on 80×25 mode are normally made of 9×16 pixels. Users may define their own character set by loading a custom font onto the card. As character data is 8-bit wide, some characters are normally made 9 bit wide by repeating the last vertical line, especially those defining horizontal IBM box drawing characters. [ [ VGA console basics and Linux console-tools, VGA-compatible text screen features and restrictions] ]

VGA adapters usually support both a monochrome and a color text mode, though the monochrome mode is almost never used. Black and white text on nearly all modern VGA adapters is drawn by using gray colored text on a black background in color mode. VGA monochrome monitors were sold (intended primarily for text applications), but most of them will work at least adequately with a VGA adapter in color mode. Occasionally a faulty connection between a modern monitor and video card will cause the VGA part of the card to detect the monitor as monochrome, and this will cause the BIOS and initial boot sequence to appear in greyscale. Usually once the video card's drivers are loaded (for example by continuing to boot into the operating system) they will override this detection and the monitor will return to color.

In color text mode, each screen character is actually represented by two bytes. The lower, or character byte is the actual character for the current character set, and the higher, or attribute byte is a bit field used to select various video attributes such as color, blinking, character set, and so forth. This byte-pair scheme is among the features that VGA inherited ultimately from CGA.

The VGA color palette

:"See also the List of monochrome and RGB palettes article — 18-bit RGB section, and the List of 16-bit computer hardware palettes article — MCGA and VGA section."

and Wilton, Richard (1988). "The new Peter Norton programmer's guide to the IBM PC and PS/2."]

In addition to the extended palette, each of the 256 entries could be assigned an arbitrary color value through the VGA DAC. The EGA BIOS only allowed 2 bits per channel to represent each entry, while VGA allowed 6 bits to represent the intensity of each of the three primaries (red, blue and green). This provided a total of 63 different intensity levels for red, green and blue, resulting in 262,144 possible colors, any 256 of which could be assigned to the palette (and in turn out of those 256, any 16 of them could be displayed in CGA video modes).

This method allowed new VGA colors to be used in EGA and CGA graphics modes, providing one remembered how the different palette systems are laid together. To set the text color to very dark red in text mode, for instance, it will need to be set to one of the CGA colors (for example, the default color, #7: light grey.) This color then maps to one in the EGA palette — in the case of CGA color 7, it maps to EGA palette entry 42. The VGA DAC must then be configured to change color 42 to dark red, and then immediately anything displayed on the screen in light-grey (CGA color 7) will become dark red. This feature was often used in 256-color VGA DOS games when they first loaded, by smoothly fading out the text screen to black.

While CGA and EGA-compatible modes only allowed 16 colors to be displayed at any one time, other VGA modes, such as the widely used mode 13h, allowed all 256 palette entries to be displayed on the screen at the same time, and so in these modes any 256 colors could be shown out of the 262,144 colors available.


thumb|320px|Examples_of_VGA_images_in_640x480x16_and_320x200x256_modes._Dithering is used to overcome the formats' color limitations.]

Addressing details

The video memory of the VGA is mapped to the PC's memory via a window in the range between segments 0xA0000 and 0xC0000 in the PC's real mode address space (A000:0000 and C000:0000 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)

Due to the use of different address mappings for different modes, it is possible to have a Monochrome Display Adapter 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 MDA 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 (by Alan J. Cox) 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 MDA 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 Display Adapter was not present it was possible to use the 0xB000 - 0xB7FF address space as additional memory for other programs (for example by adding the line "DEVICE=EMM386.EXE I=B000-B7FF" into config.sys, this memory would be made available to programs that can be "loaded high" - loaded into high memory.)

Programming tricks

An undocumented but popular technique nicknamed Mode X (first coined by Michael Abrash) or "tweaked VGA" was used to make programming techniques and graphics resolutions available that were not otherwise possible in the standard Mode 13h. This was done by "unchaining" the 256 KB VGA memory into four separate "planes", which would make all of VGA's 256 KB of RAM available in 256-color modes. There was a trade-off for extra complexity and performance loss in some types of graphics operations, but this was 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.
* Several higher-resolution display modes were possible: at 16 colors, 704×528, 736×552, 768×576, and even 800×600 were possible. Software such as Xlib (a VGA graphics library for C in the early 1990s) and ColoRIX (a 256-color graphics program), also supported tweaked 256-color modes using many combinations of columns of 256, 320, and 360 pixels, and rows of 200, 240, 256, 400, and 480 lines (the upper limit being 640×400 which used 250 KB of VGA's 256 KB video ram). However, 320×240 was the best known and most-frequently used since it was a typical 4:3 aspect ratio resolution with square pixels.
* The use of multiple video pages in hardware allowed the programmer to perform double buffering or triple buffering, which, while available in VGA's 320×200 16-color mode, was not possible using stock Mode 13h.

Sometimes the monitor refresh rate had to be reduced to accommodate these modes, increasing eye-strain. They were also incompatible with some older monitors, producing display problems such as picture detail disappearing into overscan, flickering, vertical roll, and lack of horizontal sync depending on the mode being attempted. Because of this, most VGA tweaks used in commercial products were limited to "monitor-safe" combinations, such as 320×240 (square pixels, three video pages), 320×400 (double resolution, two video pages), and 360×480 (highest resolution compatible with standard VGA monitors, one video page).Currently, the highest known tweaked VGA resolution is 400×600×256 (400×600 pixel × 256 colors). It is used in Fractint - a famous fractal generator.

Comparison chart

See also

* Digital Visual Interface (DVI), the digital equivalent
* List of display interfaces
* List of monochrome and RGB palettes — 18-bit RGB section
* List of 16-bit computer hardware palettes — MCGA and VGA section


Further reading


External links

* [ VGA pinout and signals descriptions]

Wikimedia Foundation. 2010.

Look at other dictionaries:

  • Video graphics array — Pour les articles homonymes, voir VGA. Prise femelle VGA …   Wikipédia en Français

  • Video Graphics Array — (kurz: VGA) ist ein Computergrafik Standard, der bestimmte Kombinationen von Bildauflösung und Farbanzahl (Farb Bit Tiefe) sowie Wiederholfrequenz definiert. VGA war, im Gegensatz zu seinen Vorgängern EGA und CGA, zu Anfang als Ein Zoll Prozessor …   Deutsch Wikipedia

  • Video Graphics Array — Video Graphics Array,   VGA …   Universal-Lexikon

  • video graphics array — UK US noun [S] IT ► VGA …   Financial and business terms

  • Video Graphics Array — Este artículo o sección necesita referencias que aparezcan en una publicación acreditada, como revistas especializadas, monografías, prensa diaria o páginas de Internet fidedignas. Puedes añadirlas así o avisar a …   Wikipedia Español

  • Video Graphics Array — VGA (англ. Video Graphics Array)  стандарт мониторов и видеоадаптеров. Выпущен 1987 году для компьютеров PS/2 Model 50 и более старших[1]. VGA являлся последним стандартом, которому следовало большинство производителей видеоадаптеров.… …   Википедия

  • Video Graphics Array — Pour les articles homonymes, voir VGA. Prise femelle VGA …   Wikipédia en Français

  • Video Graphics Array — old standard for display cards, VGA (Computers) …   English contemporary dictionary

  • Wide Super Video Graphics Array — Super Video Graphics Array, kurz SVGA (zurückgehend auf VGA), bezeichnet drei verschiedene Dinge: allgemein Grafikkarten, deren Leistung über den VGA Standard hinausgeht. In diesem Sinne war der Ausdruck SVGA bis Mitte/Ende der 1990er Jahre… …   Deutsch Wikipedia

  • Wide Video Graphics Array — 15 poliger VGA Anschluss VGA Anschlussstecker Video Graphics Array oder VGA bezeichnet einen Computergrafik Standard (EISA, 1987), der bestimmte Kombinationen von Bild …   Deutsch Wikipedia

Share the article and excerpts

Direct link
Do a right-click on the link above
and select “Copy Link”

We are using cookies for the best presentation of our site. Continuing to use this site, you agree with this.