加载中…
个人资料
我为卿狂
我为卿狂
  • 博客等级:
  • 博客积分:0
  • 博客访问:19,822
  • 关注人气:12
  • 获赠金笔:0支
  • 赠出金笔:0支
  • 荣誉徽章:
相关博文
推荐博文
谁看过这篇博文
加载中…
正文 字体大小:

计算机显示技术(第五节3)

(2011-11-07 10:56:42)
标签:

杂谈

分类: 系统开发
三、定序器寄存器(5个)
定序器控制着所有
VGA操作的总体时序,它还完成一些显示存储器的控制。它包含5个寄存器,通过两个I/0地址来访问,其索引端口地址为3C4h,其数据端口地址为3C5h。其映象屏蔽寄存器是与16色模式下显示存储器操作密切相关的一个寄存器。
1.重置寄存器(索引值0)
位:0 异步重置
1 同步重置
27 保留
2.时钟模式寄存器(索引值1)
位:0 8/9点字符
1 频宽(EGA)
2
移位装载
3 点时钟二分频
4 32位锁存
5 关闭显示
此位为1,停止显示刷新,屏幕全黑,使CPU对显示存储器的访问最大化。
67 保留
3.映象屏蔽寄存器(索引值2)
位:0 位面0写允许
1 位面1写允许
2 位面2写允许
3 位面3写允许
47 末用
该寄存器用于在16色模式下,允许和禁止写入视频地址空间的数据被写到某一或某些位面上,1为允许,0为禁止。该寄存器对16色模式下的所有写方式(见图形控制器模式寄存器)产生影响。
4.字符发生器选择寄存器(索引值3)
位:01 字符发生器选择A
23 字符发生器选择B
4 字符发生器选择B高位
5 字符发生器选择A高位
67 保留
5.存储模式寄存器(索引值4)
位:0 字符模式(EGA)

1 扩展存储器(超过64K)
2 /偶模式
3 链接4
47 未用

四、图形控制器寄存器(9个)
这是与
16色模式下显示存储器操作密切相关的一组寄存器,它控制着对显示存储器每个位面及一个字节中每一位的访问,并对数据的逻辑运算提供了硬件支持。它包含9个寄存器。其索引端口地址为3CEh,数据端口地址为3CFh
1.设置重置寄存器(索引值0)
位:0 写入位面0的数据

1 写入位面1的数据
2 写入位面2的数据
3 写入位面3的数据
47 保留

在写方式0(见模式寄存器位0、位1)下,当某个位面为设置重置允许(见设置重置允许寄存器)时,在CPU写显示存储器时,将用该寄存器相应位面的数据填充到显示存储器的相应位面中,而在该位面上忽略CPU所写入的数据,那些末被设置重置允许的寄存器仍然接收CPU写入的数据。
在写方式
3下,将用该寄存器的值与位屏蔽寄存器的值相与,写入到每个位面中,这时完全忽略CPU所写入的数据,并且不需要设置重置允许。
设置重置寄存器可用来以某种预先定义的颜色向显示存储器作快速填充。
2.设置重置允许寄存器(索引值1)
位:0 位面0设置重置允许

1 位面1设置重置允许
2 位面2设置重置允许
3 位面3设置重置允许
47 保留

当某个位面所对应的值为l时,在写方式0下,将用设置重置寄存器相应位面的值来写入显示存储器,而在该位面上忽略CPU所写的数据。
3.颜色比较寄存器(索引值2)
位:03 4位颜色值

47 末用

在读方式1(见模式寄存器位3)下,用该寄存器的值与所读的象素点的4位颜色值相比较,若相等,返回给CPU的数据的相应位置1,否则置0。比较结果要受颜色忽略寄存器的影响。
4.数据循环移位寄存器(索引值3)
位:02 向右循环移动的位数

34 逻辑功能选择
00b 直接写入数据
01b 写入数据与锁存器内容AND
10b 写入数据与锁存器内容OR
11b
写入数据与锁存器内容XOR
5
7 保留

VGA上,对应于16色模式下的每一个位面,存在48位的锁存器,锁存器中存放着CPU最近一次读操作所读出的各个位面的数据。
循环移位对写方式
0和写方式3有效,逻辑功能对写方式0和写方式2有效。这两个功能都只对来自CPU的数据产生影响。如果同时进行两种操作,那么循环移位将在逻辑运算之前进行。
5.读位面选择寄存器(索引值4)
位:01 要读出的位面(0-3)

确定读方式0所要读的位面。
27 保留

6.模式寄存器(索引值5)
位:01 写方式(0123)

2 保留
3 读方式(01)
4 /偶模式(用于字符模式及仿真CGA)
5 移位寄存器方式(仿真CGA)
6 256种颜色模式
象素在每个位面中占2位,形成256色模式,而非通常的256色模式。
7 保留

16色模式下,VGA提供了4种写显示存储器的方式和两种读显示存储器的方式:
写方式
0 定序器中的映象屏蔽寄存器使写入的数据对各位面有效或无效;位屏蔽寄存器使写入的1个字节的各位有效或无效;设置重置允许寄存器确定了那些有效位面及有效位的数据是来自于CPU还是来自于设置重置寄存器;当循环移位寄存器被置位时,来自CPU的数据将执行循环移位或逻辑运算。这是一种最灵活的写方式,但在很多情况下它的速度不如其它方式。
写方式
1 将锁存器的内容写入显示存储器,来自CPU的数据被完全忽略。除映象屏蔽寄存器外其它的寄存器都对该方式没有影响。这种方式主要用于屏幕图象拷贝。
写方式
2 写入数据的低4位被分别写到4个位面中,且同时对地址字节的8位发生作用,位屏蔽寄存器可使写入的数据对地址字节的各位有效或无效,映象屏蔽寄存器可使写入的数据对各位面有效或无效。对一般的写点操作,这是一种最快的写方式。
写方式
3 写入的数据经循环移位后与位屏蔽寄存器的值相与,结果作为位屏蔽码,设置重置寄存器的值再与该屏蔽码相与写入显示存储器,这时无条件地使用设置重置,各位面不需要设置重置允许。这种方式主要用于区域填充。在EGA上无此方式。
读方式
0 一次读出一个位面的一个字节,即连续8个象素点在一个位面中的值。通过读位面选择寄存器确定所要读的位面。读一个象素点需进行4次读操作。通常的读点都采用此方式实现。
读方式
1 将所读象素的颜色值与颜色比较寄存器的值相比较,若相等,返回数据的相应位置1,否则置0。这时CPU所读出的不是象素点的颜色值,而是地址字节中的8个象素点的颜色是否与颜色比较寄存器相同的标志。颜色比较的结果受颜色忽略寄存器的影响。用这种方式读一个象素点的颜色值平均需进行8次操作,所以通常情况下不采用这种读方式。这种方式主要用于任意区域填充时,确定区域边界。
7.混合寄存器(索引值6)
位:0 图形方式 1表示VGA处于图形显示模式,0表示处于字符显示模式。

1 /偶允许(用于字符模式)
2
3 存储器映射
确定视频地址空间的位置和大小
00b A0000h/128K
01b A0000h/64K
10b B0000h/32K
11b b8000h/32K
4
7 末用

8.颜色忽略寄存器(索引值7)
位:0 忽略位面0

1 忽略位面1
2 忽略位面2
3 忽略位面3
47 保留

在读方式1进行颜色比较时,该寄存器可使4位颜色值的某些位在比较中被忽略,置0的位面将被忽略。
9.位屏蔽寄存器(索引值8)
CPU按字节寻址写数据时,所写入的数据会同时对1个字节中的8位生效,即一次写操作会影响到8个象素点,该寄存器可对那些不希望被改变的位进行屏蔽。当该寄存器的某位置1时,地址字节中相应位就将接受所写入的数据,当置0时,则不接受所写入的数据,但实际上VGA并没有进行真正的屏蔽,它只是用锁存器中的数据来填充那些被屏蔽了的位。因此要想得到正确的屏蔽结果,就必须在写操作之前对同一地址进行一次读操作。
五、属性控制器寄存器(20个)
属性控制器中存在一个色彩查找表,其称为调色板,它用于将
16色模式下的4位颜色索引值转换成8位的颜色索引值,然后输出到VGA的数模转换器,象素的真实颜色值最终将由数模转换器来确定。在16色以上的色彩模式中,属性控制器不起作用。
属性控制器包含
20个数据寄存器,它只使用了一个1/0地址3C0h,写入操作在索引寄存器和数据寄存器之间自动交替进行。可通过向I/0地址3DAh进行一次读写操作来进行初始化,初始化之后,对端口3C0h的第一次写操作将指向索引寄存器。
1.索引寄存器
位:
04 数据寄存器索引值

5 调色板地址源 0调色板可以修改,清除屏幕 1调色板不能修改
67 末用

2.调色板寄存器(16个,索引值00h0Fh)
位:05 颜色值

67 保留

EGA上,低6位的颜色值被作为最终的颜色输出到显示器。在VGA上,则用颜色选择寄存器的位2、位3补足其高两位后输出到数模转换器。这16个调色板寄存器维持着一个1664(256)的色彩查找表,属性控制器还以另外一种方式提供了二个色彩查找表。对调色板寄存器的设置必须在垂直回扫期间进行。
3.模式控制寄存器(索引值10h)
位:0 图形/字符方式

1 单色/彩色
2 允许线形图形字符
3 设置背景亮度。
4 保留
5 水平移动兼容
6 象素宽度
7 P4P5源选择

P4P5源选择置0时,采用16个调色板寄存器所维持的色彩查找表。该位置1时,将忽略调色板寄存器,而将颜色选择寄存器的4位颜色值作为高位,补到象素颜色值上形成8位的颜色索引值输出到数模转换器,由此提供了另一个色彩查找表。
4.过扫描颜色寄存器(索引值11h)
位:07 8位颜色索引值
为了保持屏幕对中,
VGA水平和垂直扫描的范围都大于屏幕图象的宽度和高度,超出的部分称为过扫描。过扫描会在正常的屏幕图象周围形成一个边框,该边框通常为黑色,所以不被察觉,此寄存器可以改变该边框的颜色。
5.彩色位面允许寄存器(索引值12h)
位:0 允许输出位面0

1 允许输出位面I
2 允许输出位面2
3 允许输出位面3
45 视频状态多路转换(EGA)
67 保留

该寄存器可在屏幕图象输出时屏蔽某些位面的数据。
6.水平移动寄存器(索引值13h)
位:03 水平移动象素数

47 保留

该寄存器可使屏幕图象以单个象素为单位进行水平移动,但其只能向左移动,且最多只能移动8个象素。该寄存器器可以作为对CRT控制器中开始位置寄存器的补充,以实现更细致的水平移动。
7.颜色选择寄存器(索引值14h)
位:0 颜色4

1 颜色5
2 颜色6
3 颜色7
47 保留

颜色6和颜色7用作输出到DAC8位颜色索引值的高2位。在调色板寄存器被忽略时,颜色4和颜色5用作8位颜色索引值的位4和位5
六、数模转换器寄存器(4个)
数模转换器中存在一个色彩查找表,它用于将
8位的颜色索引值转换为18位的真实颜色值,DAC还负责将真实颜色值转换为三个模拟电信号输出到显示器。通过DAC寄存器可以修改其颜色查找表,从而实现对间接色彩模式下象素的颜色的设置和修改,通过这项操作可简便地实现淡入淡出、动画等一些特殊的显示效果。
lDAC状态寄存器(只读寄存器)
端口地址:3C7h
位:0l DAC状态

11b DAC处于写状态,这时CPU可对查找表数据寄存器进行写操作
00b DAC处于读状态,这时CPU可对查找表数据寄存器进行读操作
27 保留

2.查找表读索引寄存器(只写寄存器)
端口地址:3C7h
位:07 要读的查找表数据寄存器索引值(0255)

向该寄存器进行一次写操作后,DAC即处于读状态,这时可连续对所选的查找表数据寄存器进行三次读操作,读出的三个数据分别为红绿蓝三色的亮度值。

3.查找表写索引寄存器
端口地址:
3C8h
位:07 要写的查找表数据寄存器索引值(0255)

向该寄存器进行一次写操作后,DAC即处于写状态,这时可对I/0地址3C9h进行三次写操作,依次将一个真实颜色值的红绿蓝三基色的亮度值写入所选的查找表数据寄存器。

4.查找表数据寄存器
端口地址:
3C9h
共有256个查找表数据寄存器,它们与8位颜色索引值的256个取值状态一一对应。通过向查找表读索引寄存器或查找表写索引寄存器写入一个8位的索引值,即可对相应的某个查找表数据寄存器进行读或写操作。对一个查找表数据寄存器的读或写必须连续进行3次,依次对应于红绿蓝三基色的亮度值,每次读或写的数据仅低6位有效。当对某个查找表数据寄存器进行完3次操作后,将自动转到对下一个查找表数据寄存器进行操作,而不必再次设置索引值。


0

阅读 评论 收藏 转载 喜欢 打印举报/Report
  • 评论加载中,请稍候...
发评论

    发评论

    以上网友发言只代表其个人观点,不代表新浪网的观点或立场。

      

    新浪BLOG意见反馈留言板 电话:4000520066 提示音后按1键(按当地市话标准计费) 欢迎批评指正

    新浪简介 | About Sina | 广告服务 | 联系我们 | 招聘信息 | 网站律师 | SINA English | 会员注册 | 产品答疑

    新浪公司 版权所有