Jump to content
Main menu
Main menu
move to sidebar
hide
Navigation
Main page
Recent changes
Random page
Help about MediaWiki
Special pages
Niidae Wiki
Search
Search
Appearance
Create account
Log in
Personal tools
Create account
Log in
Pages for logged out editors
learn more
Contributions
Talk
Editing
Video Graphics Array
(section)
Page
Discussion
English
Read
Edit
View history
Tools
Tools
move to sidebar
hide
Actions
Read
Edit
View history
General
What links here
Related changes
Page information
Appearance
move to sidebar
hide
Warning:
You are not logged in. Your IP address will be publicly visible if you make any edits. If you
log in
or
create an account
, your edits will be attributed to your username, along with other benefits.
Anti-spam check. Do
not
fill this in!
==Use== The video memory of the VGA is mapped to the PC's memory via a window in the range between segments [[Hexadecimal|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: * 0xA0000 for EGA/VGA graphics modes (64 [[Kibibyte|KB]]) * 0xB0000 for monochrome text mode (32 KB) * 0xB8000 for color text mode and CGA-compatible graphics modes (32 KB) A typical VGA card is also provides this port-mapped I/O segment: * 0x3B0 to 0x3DF Due to the use of different address mappings for different modes, it is possible to have a monochrome adapter (i.e. MDA or [[Hercules Graphics Card|Hercules]]) and a color adapter such as the VGA, [[Enhanced Graphics Adapter|EGA]], or [[Color Graphics Adapter|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 (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 device drivers such as <code>ox.sys</code>, 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 command 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. A VGA-capable [[PCI bus|PCI]] / [[PCI Express|PCIe]] graphics card can provide legacy VGA registers in its [[PCI configuration space]], which may be remapped by [[BIOS]] or [[operating system]].<ref>{{Cite web |title=PCI BARs and other means of accessing the GPU β envytools git documentation |url=https://envytools.readthedocs.io/en/latest/hw/bus/bars.html |access-date=2024-07-29 |website=envytools.readthedocs.io}}</ref> === Programming === {{Unreferenced section|date=September 2024}} "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: *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. *The use of multiple video pages in hardware allowed [[double buffering]], [[triple buffering]] or split screens, which, while available in VGA's {{resx|320x200}} 16-color mode, was not possible using stock [[Mode 13h]]. *Most particularly, several higher, arbitrary-resolution display modes were possible, all the way up to the programmable limit of {{resx|800x600}} with 16 colors (or {{resx|400x600}} with 256 colors), as well as other custom modes using unusual combinations of horizontal and vertical pixel counts in either color mode. 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, {{resx|320x240}} was the best known and most frequently used, as it offered a standard 40-column resolution and 4:3 aspect ratio with square pixels. "{{resx|320x240}} Γ 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{{snd}}"multisync" monitors being, at the time, expensive rarities{{snd}}and so the vertical/frame (V-scan) [[refresh rate]] had to be reduced in order to accommodate them, which increased visible [[Flicker (screen)|flicker]] and thus [[eye strain]]. For example, the highest {{resx|800x600}} 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 {{resx|832x624}}, the theoretical maximum resolution achievable with 256 KB 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 {{resx|320x240}} (square pixels, three video pages, 60 Hz), {{resx|320x400}} (double resolution, two video pages, 70 Hz), and {{resx|360x480}} (highest resolution compatible with both standard VGA monitors and cards, one video page, 60 Hz) in 256 colors, or double the horizontal resolution in 16-color mode.
Summary:
Please note that all contributions to Niidae Wiki may be edited, altered, or removed by other contributors. If you do not want your writing to be edited mercilessly, then do not submit it here.
You are also promising us that you wrote this yourself, or copied it from a public domain or similar free resource (see
Encyclopedia:Copyrights
for details).
Do not submit copyrighted work without permission!
Cancel
Editing help
(opens in new window)
Search
Search
Editing
Video Graphics Array
(section)
Add topic