目录 1
第一章 系统资源 1
第一节 确定系统资源状况 1
1.1.1 访问8255外设接口 1
1.1.2 找出IBM微机的类型 7
1.1.3 判定PC-DOS版本 8
1.1.4 找出图形适配卡的数目及类型 9
1.1.5 找出磁盘驱动器的数目及种类 12
1.1.6 找出外部设备的数目及类型 14
1.1.7 确定RAM量 17
第二节 中断管理 22
1.2.1 8259中断控制器的编程 23
1.2.2 允许/禁止特定的硬件中断 25
1.2.3 编制自用的中断 26
1.2.4 完善现有中断 30
第三节 程序管理 32
1.3.1 分配/撤销存储器 34
1.3.2 运行嵌套程序 38
1.3.3 程序中使用DOS用户接口指令 43
1.3.4 程序执行完后常驻内存 44
1.3.5 调入并运行程序覆盖 48
1.3.6 将程序由·EXE型转换为·COM型 52
第一节 定时器的置数和读数 58
第二章 定时器与发声 58
2.1.1 8253/8254定时编程 59
2.1.2 置/读时间 64
2.1.3 置/读日期 66
2.1.4 置/读实时时钟 68
2.1.5 延时操作编程 71
2.1.6 定时操作编程 73
2.1.7 实时控制操作编程 76
2.1.8 用定时器芯片产生随机数 81
第二节 发声 83
2.2.1 76496发声器的编程方法(仅对PCjr) 84
2.2.2 演奏 86
2.2.3 与其它操作同时进行的演奏 89
2.2.4 报警 92
2.2.5 演奏音符串 94
2.2.6 在进行其它操作的同时演奏音符串 99
2.2.7 产生滑音音调 105
2.2.8 产生音响效果 107
2.2.9 同时发声 110
第三章 键盘 112
第一节 键盘监控 112
3.1.1 清除键盘缓冲区 114
3.1.2 检查缓冲区中的键入字符 117
3.1.3 等待键入字符但不在屏幕上显示 119
3.1.4 等待键入字符并把它送向屏幕 122
3.1.5 立即获取字符 125
3.1.6 获取键入字符串 126
3.1.7 检查/设置双态键和组合键的状态 129
3.1.8 编写通用键盘输入例程 132
3.1.9 重编键盘中断 137
第二节 存取特殊键 143
3.2.1 Backspace,Enter,Escape和Tab键的使用 144
3.2.2 组合键的使用:Shift键,Ctrl键和Ait键 145
3.2.3 双态键的使用:Numlock,CapsLock,Ins和ScrollLock 146
3.2.4 数字副键盘和光标键的使用 147
3.2.5 功能键的使用 149
3.2.6 重编单个键 150
3.2.7 对单个键定义键盘宏功能 153
3.2.8 建立Ctrl-Break例程 155
3.2.9 PrtSc键的重定义 157
第三节 各种键盘编码及应用 159
3.3.1 各种键的使用 160
3.3.2 扫描码 161
3.3.3 ASCII码 161
3.3.4 框图编码 164
3.3.5 扩充码 165
第四章 视频显示 166
第一节 视频显示控制 166
4.1.1 6845视频控制器编程 168
4.1.2 设置/检验屏幕显示模式 172
4.1.3 设置字符属性/颜色 179
4.1.4 设置屏幕边界颜色 191
4.1.5 清除全部/部分屏幕内容 193
4.1.6 视频适配器之间的转换 196
第二节 光标控制 199
4.2.1 在绝对位置处设置光标 200
4.2.2 设置光标于相关位置 204
4.2.3 打开/关闭光标 206
4.2.4 改变光标形状 208
4.2.5 读/存/恢复光标位置 210
4.2.6 生交替光标类型 213
第三节 屏幕字符显示 215
4.3.1 在屏幕上“写”单个字符 215
4.3.2 在屏幕上“写”一串字符 225
4.3.3 读给定位置的字符及属性 229
4.3.4 建立特殊字符 231
4.3.5 查询块字符所需数据 236
第四节 描绘点阵图形 240
4.4.1 设置点阵图形的彩色 243
4.4.2 在屏幕上描绘点阵(对于单色卡、彩色卡、PCjr) 250
4.4.3 在屏幕上描绘点阵(对于EGA) 256
4.4.4 确定屏幕上一点的颜色 268
4.4.5 在屏幕上画线 273
4.4.6 屏幕区域填充 281
4.4.7 用块字符描绘图形 288
第五节 应用卷轴及分页技术 291
4.5.1 文本屏幕垂直卷轴 291
4.5.2 文本屏幕水平卷轴 295
4.5.3 切换文本页 297
4.5.4 文本页间卷轴 303
第五章 磁盘驱动器 306
第一节 监视磁盘分配 306
5.1.1 读文件分配表 308
5.1.2 确定可使用磁盘空间 314
5.1.3 获取/设置文件长度 315
5.1.4 恢复盘空间不足的错误 318
第二节 磁盘目录操作 320
5.2.1 读/改根目录 322
5.2.2 创立/删除子目录 327
5.2.3 读/改子目录 329
5.2.4 获取/设置当前目录 332
5.2.5 获取/设置文件的时间和日期 334
5.2.6 写保护或隐藏文件 335
5.2.7 读/改文卷标号 338
第三节 准备进行文件操作 343
5.3.1 设置/检查缺省驱动器 345
5.3.2 建立/删除文件 347
5.3.3 打开/关闭文件 353
5.3.4 重新命名文件/移动文件目录的位置 360
5.3.5 准备进行文件操作 363
5.3.6 分析来自命令行的信息 370
第四节 读写文件 372
5.4.1 对765软盘控制器和8237DMA芯片进行编程 374
5.4.2 读/写特定扇区 388
5.4.3 写到顺序文件 393
5.4.4 读顺序文件 403
5.4.5 写到随机文件 411
5.4.6 读随机文件 418
5.4.7 在读、写操作之后验证数据 424
5.4.8 确定/排除磁盘错误 425
第六章 打印机 429
第一节 控制打印机操作 429
6.1.1 初始化打印口和再次初始化打印机 431
6.1.2 测试打印机是否联机 433
6.1.3 解释和排除打印机的错误 436
6.1.4 两台或多台打印机的切换 440
第二节 设置打印参数 442
6.2.1 设定文本和图形打印方式 443
6.2.2 控制行距 446
6.2.3 控制走纸 448
6.2.4 控制打印头的位置 449
6.2.5 设置表格位置 450
6.2.6 改变打印字形 451
6.2.7 IBM各种打印机性能的比较 453
第三节 向打印机发送数据 460
6.3.1 输出文本或图形数据 461
6.3.2 文本的右对齐 467
6.3.3 均衡间隙的文本打印 471
6.3.4 打印特殊字符 474
6.3.5 屏幕拷贝 479
第七章 输入/输出 485
第一节 访问串行端口 485
7.1.1 8250 UART芯片编程 486
7.1.2 串行口初始化 488
7.1.3 设置当前通信端口 494
7.1.4 监视串行端口状态 495
7.1.5 初始化并监视调制解调器 497
7.1.6 数据发送 502
7.1.7 数据接收 506
7.1.8 用通信中断发送/接收数据 512
7.1.9 查找通信控制码 516
第二节 建立设备驱动程序 517
7.2.1 建立设备首标 519
7.2.2 建立设备策略 521
7.2.3 建立设备中断句柄 522
7.2.4 访问设备驱动程序 529
7.2.5 检查/分析设备错误 531
第三节 使用串行I/O设备 537
7.3.1 读/写磁带录音机 538
7.3.2 读光笔位置 539
7.3.3 从游戏端口取模拟输入值 543
7.3.4 从游戏端口取数字输入值 547
附录A 二进制、十六进制及内存寻址 551
附录B BASIC语言的位操作 556
附录C 汇编语言基础知识 562
附录D 将汇编例程组合成BASIC程序 568
附录E 应用ANSI.SYS设备驱动程序 571
附录F 8088指令系统 572
附录G 80286指令系统 579
附录H IBM微型机词汇表 585