目 录 1
第一章系统资源 1
第一节确定系统资源状况 1
1.1.1 访问8255外设接口 1
1.1.2 找出IBM微机之类型 5
1.1.3 判定PC—DOS版本 6
1.1.4 找出图形适配卡的数目及类型 6
1.1.5 找出磁盘驱动器的数目及类型 8
1.1.6 找出外部设备的数目及类型 9
1.1.7 确定RAM量 11
1.2.1 8259中断控制器编程 14
第二节 中断管理 14
1.2.2 允许/禁止特定的硬件中断 16
1.2.3 编制自己的中断 17
1.2.4 完善现有中断 19
第三节程序管理 21
1.3.1 分配/撤销分配存储器 22
1.3.2 运行嵌套程序 24
1.3.3 在一个程序内使用DOS用户接口指令 26
1.3.4 程序执行完后常驻存储器 27
1.3.5 调入并运行程序覆盖 29
1.3.6 将程序由EXE型转换为COM型 32
2.1.1 8253/8254定时器编程 37
第二章定时器与发声 37
第一节定时器的置数和读数 37
2.1.2 置/读时间 40
2.1.3 置/读日期 42
2.1.4 置/读实时时钟 43
2.1.5 延时操作编程 44
2.1.6 定时操作编程 45
1.7 实时控制操作编程 47
1.8 用定时器芯片产生随机数 51
第二节 发声 53
2.2.1 76496发声器的编程方法(仅PCjr) 53
2.2.2 演奏 54
2.2.3 与其它操作同时进行的演奏 57
2.2.4 报警 58
2.2.5 演奏音符串 59
2.2.6 在进行其它操作的同时演奏音符串 63
2.2.7 产生滑音音调 66
2.2.8 产生音响效果 67
2.2.9 同时发声 69
第三章键盘 71
第一节键盘控制 71
3.1.1 清除键盘缓冲区 72
3.1.2 检查缓冲区中的键入字符 74
3.1.3 等待键入字符但不在屏幕上显示 75
3.1.4 等待键入字符并把它送向屏幕 77
3.1.5 立即获取字符 78
3.1.6 获取键入字符串 79
3.1.7 检查/设置双态键和换档键的状态 81
3.1.8 编写通用键盘输入例程 82
3.1.9 重编键盘中断 86
第二节 存取特殊键 91
3.2.1 Backspace, Enter, Escape和Tab键的使用 91
3.2.2 组合键的使用:Shift键,Ctrl键和Alt键 91
3.2.3 双态键的使用: NumLock, CapLock, Ins和ScrollLock 92
3.2.4 数字副键盘和光标键的使用 93
3.2.6 重编单个键 94
3.2.5 功能键的使用 94
3.2.7 对单个键分配键盘宏功能 96
3.2.8 建立Ctrl-Break例程 97
3.2.9 Prtsc键的重定义 98
第三节 各种键盘的编码及应用 100
3.3.1 各种键的使用 100
3.3.2 扫描码 101
3.3.3 ASCII码 101
3.3.4 框图编码 101
3.3.5 扩充码 101
第一节视频显示控制 107
第四章视频显示 107
4.1.1 6845视频控制器的编程 108
4.1.2 设置/检验屏幕显示模式 110
4.1.3 设置字符属性/颜色 114
4.1.4 设置屏幕边界颜色 121
4.1.5 清除全部/部分屏幕内容 122
4.1.6 视颇适配器之间的转换 124
第二节光标控制 126
4.2.1 设置光标于绝对位置 126
4.2.2 设置光标于相对位置 129
4.2.3 打开/关闭光标 130
4.2.4 改变光标形状 131
4.2.5 读/存恢复光标位置 132
4.2.6 产生交替光标类型 134
第三节屏幕字符显示 136
4.3.1 在屏幕上“写”单个字符 136
4.3.2 在屏幕上“写”一串字符 142
4.3.3 读给定位置的字符及属性 144
4.3.4 建立特殊字符 145
4.3.5 查询块字符所需数据 149
第四节描述点状图形 153
4.4.1 设置点阵图形三彩色 155
4.4.2 在屏幕上描绘点阵(对于单色卡、彩色卡、PCjr) 159
4.4.3 在屏幕上描绘点阵(对于EGA) 162
4.4.4 确定屏幕上一点的彩色 171
4.4.5 在屏幕上画线 175
4.4.6 屏幕区域填充 179
4.4.7 用块字符描绘图形 183
第五节 应用滚动(SCROLLiNG)及分页技术 185
4.5.1 文本屏幕垂直滚动 185
4.5.2 文本屏幕水平滚动 187
4.5.3 切换文本页 188
4.5.4 文本页间滚动 192
5.1.1 读文件分配表 194
第一节监视磁盘分配 194
第五章磁盘驱动器 194
5.1.2 确定可用磁盘空间 198
5.1.3 获取/设置文件长度 199
5.1.4 恢复盘空间不足错误 200
第二节磁盘目录操作 202
5.2.1 读/改根目录 203
5.2.2 创立/删除子目录 206
5.2.3 读/改子目录 207
5.2.4 获取/设置当前目录 208
5.2.5 获取/设置文件的时间和日期 209
5.2.6 写保护或隐藏文件 210
5.2.7 读/改文卷标号 212
第三节准备进行文件操作 215
5.3.1 设置/检查缺省驱动器 217
5.3.2 建立/删除文件 217
5.3.3 打开/关闭文件 220
5.3.4重新命名文件/移动文件的目录位置 224
5.3.5 准备进行文件操作 226
5.3.6 分析来自命令行的信息 229
第四节读写文件 231
5.4.1 对765软盘控制器和8237DMA芯片进行编程 232
5.4.2 读/写特定扇区 241
5.4.3 写到顺序文件 244
5.4.4 读顺序文件 250
5.4.5 写到随机文件 255
5.4.6 读随机文件 259
5.4.7 在读/写操作之后验证数据 262
5.4.8 确定/恢复磁盘错误 262
第六章打印机 265
第一节控制打印机操作 265
6.1.1 初始化打印口和再初始化打印机 266
6.1.2 测试打印机是否联机 267
6.1.3 解释和排除打印机的错误 269
6.1.4 两个或多个打印机间的切换 270
6.2.1 设定文本和图形打印方式 272
第二节设置打印参数 272
6.2.2 控制行距 274
6.2.3 控制走纸 275
6.2.4 控制打印头的位置 275
6.2.5 设置表格位置 276
6.2.6 改变打印字形 276
6.2.7 IBM各种打印机性能比较 277
第三节向打印机发送数据 280
6.3.1 输出文本或图形数据 281
6.3.2 文本的右对齐 284
6.3.3 均衡间隙的文本打印 287
6.3.4 打印特殊字符 288
6.3.5 屏幕拷贝 291
第七章输入输出 295
第一节访问串行端口 295
7.1.1 8250UART芯片编程 295
7.1.2 串行口初始化 296
7.1.3 设置当前通信端口 301
7.1.4 监视串行端口状态 302
7.1.5 初始化并监视调制解调器 304
7.1.6 数据发送 308
7.1.7 接收数据 311
7.1.8 用通信中断发送 接收数据 315
7.1.9 查找通信控制码 318
第二节 建立设备驱动程序 320
7.2.1 建立设备首部 321
7.2.2 建立设备策略 322
7.2.3建立设备中断句柄 323
7.2.4 访问设备驱动程序 327
7.2.5检查/分析设备错误 328
第三节 使用串行I/O设备 332
7.3.1 读/写磁带录音机 332
7.3.2 读光笔位置 333
7.3.3 从游戏端口取模拟输入值 336
7.3.4 从游戏口取数字输入值 338
二进制数 342
附 录 342
附录A:二进制、十六进制及内存寻址 342
十六进制数 343
内存地址和端口地址 344
附录B:BASIC语言的位操作 345
附录C:汇编语言基础知识 349
附录D:将汇编例程组合成BASIC程序 355
附录E:应用ANSI.SYS设备驱动程序 357
附录F:8088指令集 358
附录G:80286指令集 364
附录H:IBM PC名词一览表 369