VGA
·VGA简介 | Top |
VGA这个术语常常不论其图形装置,而直接用于指称640×480的分辨率。VGA装置可以同时储存4个完整的EGA色版,并且它们之间可以快速转换,在画面上看起来就像是即时的变色。[1]
除了扩充为256色的EGA式色版,这256种色彩其实可以透过 VGA DAC(Digital-to-analog converter),任意的指定为任何一种颜色。这就程度上改变了原本EGA的色版规则,因为原本在EGA上,这只是一个让程式可以在每个频道(即红绿蓝)在2 bit以下选择最多种颜色的方式。但在VGA下它只是简单的64种颜色一组的表格,每一种都可以单独改变——例如EGA颜色的首两个bit代表红色的数量,在VGA中就不一定如此了。
VGA在指定色版颜色时,一个颜色频道有6个bit,红、绿、蓝各有64种不同的变化,因此总共有 262,144 种颜色。在这其中的任何 256 种颜色可以被选为色版颜色(而这 256 种的任何 16 种可以用来显示 CGA 模式的色彩)。
这个方法最终仍然使了VGA模式在显示EGA和CGA模式时,能够使用前所未有的色彩,因为VGA是使用模拟的方式来绘出EGA和CGA画面。提供一个色版转换的例子:要把文字模式的字符颜色设定为暗红色,暗红色就必须是 CGA 16 色集合中的一种颜色(譬如说,取代 CGA 默认的 7 号灰色),这个 7 号位置将被指定为 EGA 色版中的 42 号,然后 VGA DAC 将 EGA #42 指定为暗红色。则画面上的原本的 CGA 七号灰色,都会变成暗红色。这个技巧在 256 色的 VGA DOS 游戏中,常常被用来表示加载游戏的淡入淡出画面。
总结来说,CGA 和 EGA 同时只能显示 16 种色彩,而 VGA 因为使用了 Mode 13h 而可以一次显示 256 色版中的所有色彩,而这 256 种颜色又是从 262,144 种颜色中挑出的。
·VGA内存寻址 | Top |
* 0xA000 使用于 EGA/VGA 图型模式(64 KiB)
* 0xB000 单色文字模式(32 KiB)
* 0xB800 彩色文字模式和 CGA 相容模式(32 KiB)
由于使用的区段皆不相同,在同一部机器上装置一个单色显卡(MDA)和另一个彩色显卡(VGA、EGA或CGA)是不冲突的。在 1980 年代初,这种典型的搭配方式用于 Lotus 1-2-3 试算表上,一部高解析单色屏幕用来显示文字,而另一部低解析的 CGA 屏幕用来显示图表。许多程式设计师也用这种配置来开发软件,一部屏幕显示 debug 细节,另一部屏幕则显示真正的软件运行画面。许多商业的除臭虫软件都支援这种配置,例如 Borland 的 Turbo Debugger、由 Alan J. Cox 开发的 D86、微软的 CodeView 等,Turbo Debugger 和 CodeView 可以甚至可拿来 debug 微软的 Windows 软件。也有 DOS 驱动程式如ox.sys模拟一个终端机来接受 Windows 的 debug 讯息,而不用真正接上另一个终端机。在 DOS 底下使用“单色模式”指令,使其输出转向单色也是可能的。另外,假如电脑上并无单色显卡,那么可以使用 EMM386.EXE 程序让其他程式可以使用 B000-B7FF 这一段内存。(于 config.sys 档案中加入 "DEVICE=EMM386.EXE I=B000-B7FF")
·VGA程序技巧 | Top |
* 单色的多边形填色增快,因为一次写入可以设定四个像素。
* VGA 可以用来协助视讯内存之间的拷贝,有些时候会比使用 8088 或 80286 等慢速 CPU 更快。
* 提供更高的分辨率:16 色可使用 704×528、736×552、768×576、甚至 800×600。诸如 Xlib(1990 年代早期的 C 图形函式库)和 ColoRIX(256 色的图形程式)支援 256 色下的各种分辨率调和:直行 256、320 和 360 个像素,以及水平行 200、240、256、400 和 480 个像素的组合(上限的 640×400 几乎用掉 256 KiB 中每一个 byte)。不过,320×240仍然是最常被使用的,因它为典型的4:3比例,为方形像素。
* multiple video pages 让程序员能够使用双重缓冲(所有的 16 色模式都可),这在 Mode 13h 无法办到。
有时候,显示器必须降低更新频率来满足这些模式,这会造成眼睛的疲劳这样的低分辨率虽然在PC市场早已淡出,但在Pocket PC和PDA市场,它正逐渐成为标准。它也常被用来指称15针的D型接头,这种接头仍然用来传输各式各样分辨率的类比讯号。
VGA曾经被IBM官方宣布使用XGA标准所取代,但在历史上,它其实是被其他的OEM制造商用所谓的SVGA标准所取代。
·VGA技术性细节 | Top |
VGA的规格表如下:
* 256 KiB 的 Video RAM
* 16 色和 256 色模式
* 总共 262144 种颜色的色版(红、绿、蓝三色各 6 bit,总共 (26)3 种)
* 选择性的 25.2 MHz 或 28.3 MHz 处理频率
* 最多 720 个水平像素
* 最多 480 条线
* 最高 70 Hz 的更新频率
* Vertical Blanking interrupt(不是所有卡都支援)
* 平面模式:最多 16 色(4 bit 面板)
* Packed-pixel 模式:256 色(Mode 13h)
* 顺畅卷动画面的能力
* Some "Raster Ops" support
* Barrel shifter
* 支援分割画面
VGA支援可单独操控像素的APA(All Points Addressable)模式,也支援字母与数字的文字模式。标准的图形模式如下:
* 640×480×16色
* 640×350×16色
* 320×200×16色
* 320×200×256色(Mode 13h)
它也支援用模拟的方式画出以往规格的分辨率:EGA、CGA和MDA。
·标准VGA文字模式 | Top |
VGA虽然支援黑白和彩色的文字模式,但黑白模式很少使用。大多的VGA在显示黑白模式时使用彩色模式,即是将灰色字画在黑色背景上。而使用VGA 的单色显示器也能很好的支援这样的彩色模式。现代显示器和显卡若连接不当,偶尔会导致显卡的VGA部份侦测显示器为单色的,而这将使BIOS开机显示为黑白模式。通常在加载操作系统和适当的驱动程式以后,显卡的设定被覆盖,显示器就会变回彩色。
在彩色的文字模式中,每个字符其实由两个byte代表。较低的一个byte用来显示字符,而较高的byte就用来代表彩色、闪烁等等属性。这种成对的byte模式是从CGA就一直传续下来的。
·VGA色版 | Top |