Science Fair Project Encyclopedia
Video Graphics Array
Video Graphics Array (VGA) is a computer display standard first marketed in 1987 by IBM. VGA belongs to a family of earlier IBM video standards and largely remains backward compatible with them. VGA can be seen as an enhancement of and successor to the previous EGA and CGA graphics adapters. MCGA, also produced by IBM, was similar except that it was a simpler version of the VGA hardware.
VGA is referred to as an "array" instead of an "adapter" because it was implemented from the start as a single chip (a gate array), replacing the Motorola 6845 and a full-length ISA board full of discrete components 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 PS/2 models were equipped with VGA on the motherboard. Since it wasn't restricted to being an add-on board, the name refers to the chip itself.
As with most IBM hardware the VGA was extensively cloned by other manufacturers. While the VGA has been obsolete in original form for some time it was the last IBM standard that the majority of PC clone manufacturers decided to follow, making it even today the only standard graphics interface that can be relied on to be present on the PC architecture. VGA was technically superseded by IBM's XGA standard, but in reality it was superseded by the numerous extensions to the VGA by clone manufactuers that came to be known as Super VGA.
VGA remains a relevant graphics standard. It forms the "lowest common denominator" that all PC graphics cards need to support prior to a device-specific driver being loaded. On Windows machines, 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 compared to following screens.
The VGA specifications are as follows:
- 256KByte Video RAM
- 16 colour and 256 colour modes
- 262144 (2^18: six bits [64 values] each for red, green, and blue) colour palette
- Selectable 25MHz or 28MHz master clock
- Maximum of 720 horizontal pixels
- Maximum of 480 lines
- Refresh rates at up to 70 Hz
- planar mode: up to 16 colours (4 bit planes)
- packed-pixel mode: 256 colours (Mode 13h)
- Hardware smooth scrolling support
- Some 'Raster Ops' support
- Barrel shifter
- Split screen support
- Soft fonts
The VGA supports both All Points Addressable graphics modes, and Alphanumeric Text modes. Standard graphics modes are:
The term "VGA" is also often used to refer to a resolution of 640×480, regardless of the hardware that produces the picture. For embedded devices, there now exist QVGA (320×240) and QQVGA (160×120) and 1/8 VGA (240×160). An XVGA display has 1024 by 768 pixels of 256 colours. IBM calls this mode "8514" after the model number of the first IBM monitor capable of displaying this resolution.
An undocumented, but popular 256 colour mode called Mode X was used to make available programming techniques and graphics resolutions not possible in the standard Mode 13h. This was a trade off for extra complexity and performance loss in some types of graphics operations. Several higher-resolution display modes were possible, but 320×240 was probably the best known and most-frequently used since it was a regular 4:3 resolution with square pixels. Another popular feature of Mode X was 'page-flipping', known in DirectX terminology as "double-buffering." Since the official Mode 13h was not capable of double-buffering, a double-buffered 256-color display could only be achieved through Mode X.
Through register-level manipulation, screen-resolutions as high as 800x600 (16-color) or 640x400 (256-color) can be displayed. However, non-standard resolutions may not display correctly on all (cloned) VGA-adapters. Furthermore, they may use a non-standard refresh-rate, which makes their use potentially particularly hazardous to older fixed-scan rate VGA monitors.
Standard alphanumeric text modes for the VGA are 80×25 and 40×25 text cells. Each cell may choose from one of 16 available colours for its foreground and 8 colours for the background. The character may also be made to blink, or at the expense of the blinking option, the background may be selected from 16 colours.
VGA adapters usually support both a monochrome and a color text mode, even 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.
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 bitfield used to select various video attributes such as color, blinking, character set, and so forth.
The video memory of the VGA is mapped to the PC's memory via a window in the range between 0xA000 and 0xBFFFF in the PC's real mode address space. Typically these are:
- 0xB000 for monochrome text mode
- 0xB800 for colour text mode and CGA-compatible graphics modes
- 0xA000 for EGA/VGA graphics modes
Due to the use of different address mappings for different modes it is possible to have an Monochrome Display Adapter and a colour adapter such as the VGA, EGA or CGA installed in one machine. At the beginning of the 1980s, this was used to eg. display Lotus 1-2-3 spreadsheets in high-resolution text on MDA and associated graphics on low-resolution CGA. Later, many programmers used such a setup, with the monochrome card displaying debugging information while a program ran in graphics mode on the other card. Notably, Microsoft's CodeView debugger could work in a dual monitor setup to debug Windows. There were also DOS device drivers, usually named ox.sys, which implemented a serial interface simulation over the MDA, and eg. allowing to get crash messages from debugging versions of Windows without using an actual serial terminal.
The contents of this article is licensed from www.wikipedia.org under the GNU Free Documentation License. Click here to see the transparent copy and copyright details