目录 1
第一部分 操作要旨 1
导言 1
本书的组成 1
第一章 基础知识 3
序言 3
1.1 显示选择 3
1.1.2 彩色显示 5
1.1.1 单色显示 5
1.1.3 增强彩色显示 6
1.1.4 VGA显示 6
1.2 部分存储器配置 7
1.3 标准EGA操作模式 7
1.3.1 模式0与1(彩色文本) 8
两次扫描 9
1.3.2 模式0*和1*(彩色文本) 9
1.3.4 模式2*和3*(彩色文本) 10
1.3.3 模式2和3(彩色文本) 10
1.3.5 模式4和5(四色320×200图形) 11
1.3.6 模式6(二色640×200图形) 11
1.3.7 模式7(单色文本) 12
1.3.8 模式D(16色320×200图形) 12
1.3.9 模式E(16色640×200图形) 13
1.3.10 模式F(单色640×350图形) 13
1.3.11 模式10(增强彩色640×350图形) 14
1.4 附加的VGA模式 15
1.4.1 模式0+,1+(彩色文本) 15
1.4.2 模式2+,3+(彩色文本) 15
1.4.3 模式7+(单色文本) 15
1.4.4 模式11(二色640×480图形) 15
1.4.5 模式12(16色640×480图形) 15
1.4.6 模式13(256色320×200图形) 15
1.5 EGA在高分辨率条件下 15
1.6 兼容模式 16
1.7 双显示系统 17
1.8 EGA的装配 18
第二章 EGA/VGA的体系结构 20
2.1 概述 20
2.1.1 压缩象素与彩色页面的比较 20
2.1.2 文本模式与图形模式的比较 20
2.1.3 EGA和VGA的体系结构 21
2.2 CRT显示器操作 22
2.3 显示存储器 24
2.3.1 文本模式中的显示存储器 25
字符发生器 26
文本属性 28
标准彩色文本属性 28
单色文本属性 29
常规文本属性 29
2.3.2 图形模式中的显示存储器 30
模式6(CGA二色图形) 30
模式4和5(CGA四色图形) 31
模式10Hex—增强彩色图形 32
模式F—单色图形 32
模式D和E(16色图形) 33
模式11Hex—二色图形 33
模式12Hex—16色图形 34
模式13Hex—256色图形 34
2.3.3 大力神(Hercules)单色图形 34
2.4 图形控制器 35
2.4.1 处理机读锁存器 36
2.4.2 逻辑单元 36
2.4.3 彩色比较 37
2.4.4 数据串行发生器 37
2.5 属性控制器 37
2.6 CRT控制器 38
2.7 定序器 39
第三章 EGA寄存器 41
3.1 概述 41
3.2 外部寄存器 42
3.2.1 混合输出寄存器(地址3C2) 43
3.2.3 输入状态寄存器0(I/O地址3C2) 44
3.2.2 特征控制寄存器(仅对EGA,地址3BA/3DA) 44
3.2.4 输入状态寄存器1(I/O地址3BA/3DA) 45
3.2.5 VGA允许寄存器(I/O地址3C3) 46
3.3 CRT控制器 46
3.3.1 概述 46
3.3.2 CRT时序寄存器 48
结束水平空白(变址3) 49
结束水平回扫(变址5) 49
开始水平回扫(变址4) 49
水平显示允许终止(变址1) 49
开始水平空白(变址2) 49
水平总计(变址0) 49
垂直总计(变址6) 50
溢出寄存器(变址7) 50
垂直回扫开始(变址10H) 50
结束垂直空白(变址16H) 51
开始垂直空白(变址15H) 51
垂直显示允许结束(变址12H) 51
垂直回扫结束(变址11H) 51
模式控制寄存器(变址17H) 52
3.3.3 显示配置寄存器 53
预置行扫描(变址8) 53
最大扫描线/文本字符高度(变址9) 54
光标开始(变址0AH) 54
光标结束(变址0BH) 55
开始地址(高字节)(变址0CH) 55
开始地址(低字节)(变址0DH) 55
光标定位(高字节)(变址0EH) 56
光标定位(低字节)(变址0FH) 56
光笔寄存器(高字节)(变址10H) 56
光笔寄存器(低字节)(变址11H) 56
位移/逻辑屏幕宽度(变址13H) 57
下划线位置寄存器(变址14H) 57
3.4.1 概述 58
行比较寄存器(变址18H) 58
3.4 定序器 58
3.4.2 重置寄存器(变址0) 59
3.4.3 时钟模式寄存器(变址1) 59
3.4.4 彩色页面写允许寄存器(变址2) 60
3.4.5 字符发生器选择寄存器(变址3) 60
3.4.6 存储模式寄存器(变址4) 61
3.5 图形控制器 62
3.5.1 概述 62
3.5.2 设置/重置寄存器(变址0) 63
3.5.3 设置/重置允许重置(变址1) 64
3.5.4 颜色比较寄存器(变址2) 64
3.5.5 数据移位/功能选择寄存器(变址3) 65
3.5.6 读页面选择寄存器(变址4) 67
3.5.7 模式寄存器(变址5) 67
3.5.8 混合寄存器(变址6) 69
3.5.10 位屏蔽寄存器(变址8) 70
3.5.9 颜色忽略寄存器(变址7) 70
3.6 属性控制器与视频DAC 71
3.6.1 概述 71
3.6.2 属性控制器 71
变址寄存器 71
调色板寄存器(变址0到F) 72
模式控制寄存器(变址10H) 74
水平平扫寄存器(变址13H) 75
彩色选择寄存器(变址14H) 75
彩色页面允许寄存器(变址12H) 75
屏幕边框颜色(变址11H) 75
3.6.3 VGA视频DAC(I/O地址3C6,3C7,3C8和3C9) 76
第四章 ROM BIOS 78
4.1 什么是BIOS? 78
4.2 组合文本与图形 78
4.3 单个BIOS功能 79
4.3.1 模式选择—0 79
4.3.2 置光标尺寸—1 79
4.3.3 置光标位置—2 80
4.3.5 取光笔位置—4 81
4.3.4 读光标尺寸与位置—3 81
4.3.6 选择活动页—5 82
4.3.7 文本窗口上卷(或空白窗口)—6 82
4.3.8 文本窗口下卷(或空白窗口)—7 84
4.3.9 在光标位置读字符和属性—8 85
4.3.10 在光标位置写字符和属性—9 85
4.3.11 在光标位置只写字符—10(0A hex) 86
4.3.12 置CGA彩色调色板(模式4,5,6)—11(0B hex) 86
4.3.13 写图形象素—12(0C hex) 87
4.3.14 读图形象素—13(0D hex) 88
4.3.15 写字符和推进光标—14(0E hex) 89
4.3.16 取当前显示模式—15(0F hex) 89
4.3.17 置EGA调色板寄存器—16(10 hex) 89
置边框彩色—1 90
置全部调色板寄存器—2 90
置单个调色板寄存器—0 90
闪烁/亮度属性控制—3 91
读单个调色板寄存器—7 91
读边框颜色寄存器—8 91
读全部调色板寄存器—9 92
置单个DAC寄存器—10H 92
置DAC块寄存器—12H 92
读单个DAC寄存器—15H 93
选择彩色子集—13H 93
读DAC块寄存器—17H 94
读子集状态—1AH 94
转换DAC寄存器到灰度—1BH 94
4.3.18 装入字符发生器—17(11 hex) 94
装入常规字符发生器—0 95
装入单色字符集—1 96
装入CGA字符集—2 96
选择活动字符集—3 96
置图形模式为显示常规字符集—21H 97
初始化INT 1FH向量(模式4,5和6)—20H 97
装入VGA 16线字符集—4 97
置图形模式为显示增强文本—22H 98
初始化图形模式为显示标准CGA文本—23H 98
初始化图形模式为显示VGA文本—24H 99
返回有关当前字符集的信息—30H 99
4.3.19 取EGA状态(置交替打印屏幕)—18(12 hex) 100
关于当前EGA/VGA配置的返回信息—10H 100
关于模式选择的允许/禁止调色板的装入—31H 101
置文本模式扫描线—30H 101
选择交替打印屏幕程序—20H 101
允许/禁止VGA适配器—32H 102
允许/禁止灰度转换—33H 102
允许/禁止CGA光标仿真—34H 102
转换显示—35H 103
显示开/关—36H 104
4.3.20 写文本字符串—19(13 hex) 104
读显示配置代码—0 105
4.3.21 读或写配置—26(1A hex) 105
写显示配置代码—1 106
4.3.22 返回VGA状态信息—27(1B hex) 106
4.3.23 保存/恢复显示适配器状态—28(1Chex) 108
返回所需的缓冲区大小—0 108
保存显示适配器状态—1 108
恢复显示适配器状态—2 109
4.4 BIOS数据区 109
4.4.1 内存低地址的变量 109
4.4.2 环境表 110
参数表 111
文本模式辅助字符集表 113
图形模式辅助字符集表 114
第二部分 程序设计的例子 115
导言 115
怎样阅读这些例子 115
使用库内子程序 116
使用单个的编程例子 116
软盘片上有些什么? 116
用Microsoft C建立—个图形程序库 118
用Turbo Pascal建立一个图形程序库 118
第五章 寄存器操作 119
5.1 写寄存器 119
5.2 写寄存器组 123
5.3 读寄存器 131
5.4 写调色板 136
5.5 垂直回扫 139
5.6 平移与滚动 141
5.7 清屏 150
5.8 置模式 154
5.9 BIOS接口 155
第六章 取信息 158
6.1 取显示模式 158
6.2 取文本分辨率 160
6.3 取光标尺寸大小 162
6.4 取页面尺寸 165
6.5 取显示类型 167
6.6 取扫描线 170
6.7 取存储器容量大小 172
6.8 取主显示适配器型号 174
6.9 取适配器计数 177
第七章 文本操作 180
7.1 置光标位置 180
7.2 取光标位置 183
7.3 置光标尺寸 186
7.4 取光标尺寸 189
7.5 滚动文本窗口 189
7.6 滚动文本页 195
7.7 平滑滚动 199
7.8 写字符 204
7.9 写属性 209
7.10 读字符 212
7.11 读字符属性 215
7.12 文本闪烁 218
7.13 写字符串 221
7.14 读字符发生器 225
7.15 写字符发生器 230
7.16 512字符集 235
7.17 43行文本显示方式 241
7.18 屏幕分割 245
7.19 线型图形 252
第八章 图形模式的例子 255
8.1 写象素点 256
8.2 读象素 267
8.3 扫描线填充 272
8.4 实心矩形填充 281
8.5 画线 288
8.6 造型线 300
8.7 画弧 307
8.8 块传送(BITBLT) 312
8.9 显示光标 326
8.10 屏幕转储 339
8.11 装入屏幕 344
附录A 功能摘要 347
A-1 BIOS功能摘要 347
A-2 C库函数功能摘要 348
A-3 PASCAL程序库功能摘要 352
附录B 一些有用的表 356
B-1 ASCII代码表 356
B-2 EGA/VGA内存映象表 356
B-3 控制寄存器摘要 357
B-4 寄存器默认值 364
B-5 配置开关 367
B-6 标准模式 367
附录C 编程须知 368
C-1 汇编语言编程 368
C-2 与高级语言接口 370
C-3 行嵌入式汇编代码的编译 372
C-4 视频软件的调试 372
词汇表 373