第1章 DOS系统服务 1
1.1 基本输入输出系统(BIOS) 1
目录 1
1.3 计算机内存的使用 2
1.2 DOS如何启动 2
1.4 段地址和偏移地址 5
1.4.2 理解远程地址 6
1.4.1 存取段寄存器值 6
1.5.2 通用寄存器 7
1.5.1 偏移地址寄存器 7
1.5 PC寄存器组 7
1.5.3 标志寄存器 8
1.6.1 在C语言中访问DOS服务 9
1.6 使用DOS系统服务 9
1.6.2 在Pascal语言中访问DOS服务 10
1.6.3 在Quick Basic语言中访问DOS服务 11
1.7 中断处理程序 13
1.7.1 在C和Pascal语言中调用中断处理程序 14
1.7.2 在中断中存取变量 18
1.7.3 链接中断 21
1.8 小结 22
1.9 关键术语 24
2.1 BIOS视频服务 25
第2章 BIOS服务 25
2.2 BIOS磁盘服务 32
2.3 串行通信服务 37
2.4 键盘服务 40
2.6 BIOS时钟服务 41
2.5 BIOS打印服务 41
2.7 其它BIOS服务 43
2.9 使用C语言访问BIOS服务 48
2.8 使用汇编语言访问BIOS服务 48
2.10 使用Turbo Pascal语言访问BIOS服务 49
2.12 小结 50
2.11 使用QuickBasic语言访问BIOS服务 50
2.13 关键术语 51
3.1 内存段地址和偏移地址 52
第3章 理解内存模式 52
3.2 微内存模式 53
3.1.1 选择内存模式 53
3.3 小内存模式 54
3.4 中内存模式 56
3.5 紧凑内存模式 58
3.6 大内存模式 61
3.8 新内容 63
3.7 巨内存模式 63
3.9 小结 65
3.10 关键术语 66
4.1.1 INT 20H调用 67
4.1 理解PSP字段 67
第4章 分析程序段前缀 67
4.1.4 DOS调度程序 68
4.1.3 保留域 68
4.1.2 下一段的段地址 68
4.1.8 环境块内存段 69
4.1.7 关键错误向量 69
4.1.5 中断向量 69
4.1.6 CTRL-C向量 69
4.1.9 文件控制块域 70
4.1.10 命令行 72
4.2 编程新技术 75
4.2.1 父程序PSP段 76
4.2.2 程序文件表 77
4.2.4 文件句柄 78
4.2.3 堆栈段和指针存储区域 78
4.2.5 文件表指针 79
4.2.6 SHARE前PSP域 80
4.4 关键术语 81
4.3 小结 81
4.2.7 DOS调用和远程返回 81
4.2.8 利用DEBUG检查PSP 81
5.3 DOS键盘服务 83
5.2 键盘如何工作 83
第5章 键盘操作 83
5.1 键盘类型 83
5.3.1 基于键盘的功能 87
5.3.2 CTRL-C处理 97
5.4 BIOS键盘服务 98
5.3.3 重定向键盘输入 98
5.4.2 读取键盘状态 99
5.4.1 读取键盘字符 99
5.4.3 获取键盘状态 100
5.4.4 设置键盘重复速率 101
5.4.5 增强型键盘服务 102
5.5 编程新技术 104
5.5.1 存取键盘缓冲区 107
5.5.2 改变键盘缓冲区 108
5.7 关键术语 110
5.6 小结 110
6.1 一次显示一个字符 111
第6章 DOS屏幕输出服务 111
6.1.1 使用DOS直接控制I/O功能 112
6.2 显示字符串 113
6.3 替代DOS输出功能 114
6.4 编程新技术 115
6.6 关键术语 120
6.5 小结 120
7.1 了解打印设备名称 121
第7章 DOS打印机操作 121
7.2 执行高级文件操作 122
7.4 DOS打印服务 124
7.3 使用文件句柄 124
7.5.1 检查打印机当前状态 126
7.5 使用BIOS打印操作 126
7.5.2 使用BIOS打印字符 127
7.5.5 检查队列状态 128
7.5.4 打印屏幕内容 128
7.5.3 初始化打印机 128
7.5.6 提交文件至打印队列 129
7.5.7 清除打印队列中的文件 130
7.6 检查打印队列内容 131
7.5.8 清除所有打印作业 131
7.8 小结 133
7.7 编程新技术 133
7.9 关键术语 134
8.1.1 检查鼠标驱动程序是否已安装 135
8.1 安装鼠标驱动程序 135
第8章 鼠标操作 135
8.2 显示鼠标光标 136
8.3 响应按动鼠标按扭 137
8.4 定位鼠标光标 141
8.5.1 定制文本方式下的鼠标光标 145
8.5 定制光标 145
8.5.2 定制图形方式下的鼠标光标 146
8.6 理解鼠标位移 151
8.7 控制鼠标速度和响应 153
8.8 保存鼠标驱动程序状态 157
8.9 定义定制事件处理程序 158
8.11 控制鼠标驱动程序 162
8.10 控制鼠标视频显示 162
8.12 小结 164
8.13 关键术语 165
9.1 调用子进程 166
第9章 创建子进程 166
9.2 替代父进程 169
9.3 使用INT 21H功能4BH 171
9.3.1 使用父进程环境 173
9.4 释放子程序内存 175
9.4.1 理解覆盖 177
9.5 编程新技术 180
9.6 小结 182
9.7 关键术语 183
10.1 三个关键标志 184
第10章 内存驻留程序 184
10.1.1 DOS闲置中断 187
10.3 内存驻留程序执行步骤 189
10.2 理解再进入问题 189
10.4.1 交换程序段前缀值 193
10.4 编程新技术 193
10.4.3 交换磁盘传送区域 194
10.4.2 保存视频属性 194
10.4.4 保存和恢复关键错误信息 195
10.6 关键术语 196
10.5 小结 196
11.1 CUP时钟 197
第11 日期和时间服务 197
11.2 使用实时时钟 198
11.2.1 访问CMOS时钟 199
11.3 计时器时钟 200
11.4 编程新技术 203
11.5 小结 204
11.6 关键术语 205
12.1.2 引导记录区 206
12.1.1 DOS加载程序 206
第12章 磁盘服务 206
12.1 DOS引导记录 206
12.2 磁盘分区和逻辑驱动器 210
12.1.3 磁盘结构 210
12.3 BIOS磁盘服务 211
12.4.1 获取或修改当前驱动器 212
12.4 DOS磁盘服务初述 212
12.4.3 磁盘容量信息 213
12.4.2 磁盘检验 213
12.4.4 替代磁盘读写操作 214
12.5.1 测试活动 218
12.5 DOS IOCTL服务 218
12.5.2 检查远程驱动器 219
12.5.3 获取设备定义 221
12.5.5 逻辑驱动器操作 226
12.5.4 指定设备特性设置 226
12.5.7 判别驱动程序支持IOCTL功能 227
12.5.6 IOCTL读写服务 227
12.6 编程新技术 228
12.7 小结 232
12.8 关键术语 233
13.1.1 建立目录 234
13.1 使用DOS目录服务 234
第13章 DOS目录服务 234
13.1.3 删除目录 235
13.1.2 选择当前目录 235
13.2 目录是文件名列表 236
13.1.4 确定当前目录 236
13.3 编程新技术 241
13.5 关键术语 244
13.4 小结 244
14.2 文件句柄 245
14.1 文件控制块与文件句柄 245
第14章 DOS文件服务 245
14.3.1 建立新文件 246
14.3 基本文件服务 246
14.3.2 打开现有文件 247
14.3.4 写文件 248
14.3.3 读打开文件 248
14.3.6 组合使用DOS文件服务 249
14.3.5 关闭文件 249
14.3.7 建立临时文件 251
14.4.2 文件更名 252
14.4.1 删除现有文件 252
14.4 文件管理服务 252
14.4.3 管理文件属性 253
14.4.4 设置文件日期及时间标记 255
14.5 文件查找操作 258
14.6 有特点的句柄服务 259
14.6.1 重定向至文件句柄 260
14.6.2 复制文件句柄 261
14.7 DOS如何跟踪文件 263
14.8 新内容 266
14.7.3 文件簇从簇2开始 266
14.7.1 文件分配表项 266
14.7.2 文件分配表项长度 266
14.9 小结 275
14.10 关键术语 276
15.1 理解I/O重定向 277
第15章 I/O重定向 277
15.1.1 写错误信息至stderr 278
15.2 组合使用I/O重定向和键盘I/O 280
15.3 新内容 281
15.5 关键术语 284
15.4 小结 284
16.1 理解Int 24H处理程序 285
第16章 关键错误处理 285
16.2 关键错误处理程序结构 287
16.3 编程新技术 299
16.4 小结 302
16.5 关键术语 303
17.1 获取指定国家的格式信息 304
第17章 国际DOS用户的程序设计 304
17.1.1 字符转换表 309
17.1.2 字符转换功能 312
17.2 控制代码页 314
17.3 控制键盘式样 315
17.3.1 用于单个设备的控制代码页 318
17.4 小结 324
17.5 关键术语 325
18.2 理解Escape序列 326
18.1 安装ANSI.SYS设备驱动程序 326
第18章 ANSI.SYS编程 326
18.2.2 光标位置 327
18.2.1 清屏或清当前行 327
18.2.3 显示文本属性 330
18.2.4 选择视频方式 332
18.2.5 定义键盘键 333
18.3 使用ANSI.SYS的利弊 335
18.4 编程新技术 337
18.6 关键术语 340
18.5 小结 340
19.1 内存布局 341
第19章 DOS内存分配 341
19.3 DOS内存分配服务 342
19.2 使用堆和远堆 342
19.3.1 从DOS分配内存 343
19.3.3 修改内存块 344
19.3.2 释放已分配内存 344
19.4 编程新技术 345
19.4.1 跟踪内存控制块 348
19.4.2 内存分配策略 353
19.5 小结 358
19.4.3 收集无用内存 358
19.6 关键术语 359
20.1 使用HIMEM.SYS 360
第20章 扩充内存 .. 360
20.2.1 扩充内存块 362
20.2 理解高内存块 362
20.1.1 加载DOS至高内存区 362
20.3.1 确定扩充内存支持是否可用 363
20.3 使用扩充内存服务 363
20.3.2 分配和释放高内存区 366
20.3.3 控制A20地址线 368
20.3.4 分配扩充内存 370
20.3.5 分配高内存块 383
20.4 小结 386
20.5 关键术语 387
21.1 扩展内存如何工作 388
第21章 扩展内存 388
21.1.1 LIM EMS 4.0版本和3.2版本的差异 389
21.2 使用扩展内存服务 390
21.2.1 EMS程序结构 391
21.2.2 EMS句柄服务 403
21.3 用于中断处理程序和内存驻留程序的EMS功能 414
21.5 替换页寄存器 420
21.4 扩展内存移动操作 420
21.6 EMS错误代码 422
21.8 关键术语 423
21.7 小结 423
22.1 理解环境块布局 424
第22章 DOS环境块 424
22.3 编程技术 426
22.2 在程序中存取环境 426
22.4 关键术语 439
22.3.2 存取程序的环境块拷贝 439
22.3.1 DOS环境块 439
23.2 DOS如何定位设备驱动程序 440
23.1 块设备和字符设备驱动程序 440
第23章 DOS设备驱动程序 440
23.3 设备驱动程序结构 443
23.4 设备驱动程序命令 444
23.4.1 驱动程序功能00H:初始化 445
23.4.3 驱动程序功能02H:建立BPB 446
23.4.2 驱动程序功能01H:介质检查 446
23.4.6 驱动程序功能05H:无破坏性读 447
23.4.5 驱动程序功能04H:读 447
23.4.4 驱动程序功能03H:IOCTL读 447
23.4.9 驱动程序功能08H:写 448
23.4.8 驱动程序功能07H:刷新输入缓冲区 448
23.4.7 驱动程序功能06H:输入状态 448
23.4.12 驱动程序功能0BH:刷新输出缓冲区 449
23.4.11 驱动程序功能0AH:输出状态 449
23.4.10 驱动程序功能09H:写同时校验 449
23.4.15 驱动程序功能0EH:关闭设备 450
23.4.14 驱动程序功能0DH:打开设备 450
23.4.13 驱动程序功能0CH:IOCTL写 450
23.4.18 驱动程序功能13H:类属IOCTL 451
23.4.17 驱动程序功能10H:输出直到忙 451
23.4.16 驱动程序功能0FH:判别可移动介质 451
23.4.21 驱动程序功能19H:查询IOCTL查找 452
23.4.20 驱动程序功能18H:设置逻辑设备 452
23.4.19 驱动程序功能17H:获得逻辑设备 452
23.5 建立设备驱动程序 453
23.7 关键术语 456
23.6 小结 456
24.1 访问内存变量列表 457
第24章 DOS内存变量列表 457
Int 21H:DOS系统服务 458
附录A DOS中断和系统服务 458
24.1.1 DOS 2的内存变量列表 458
Int 20H:终止程序 458
Int 21H服务00H:终止当前程序 458
Int 21H服务03H:从标准附属设备取字符 459
Int 21H服务01H:从标准输入设备字符 459
24.1.2 DOS 3的内存变量列表 459
Int 21H服务02H:在标准输出设备上显示字符 459
24.1.3 DOS 4和DOS 5的内存变量列表 465
24.3 关键术语 469
24.2 小结 469
第25章 DOS任务切换 470
25.1 检查任务切换器是否激活 470
25.2 客户程序结构 473
25.4 通知服务功能 479
25.4.1 通知功能00H:初始化切换器 479
25.3 任务切换程序结构 479
25.4.2 通知功能01H:查询挂起 480
25.4.3 通知功能02H:挂起对话 480
25.4.4 通知功能03H:激活对话 480
25.4.5 通知功能04H:对话活动通知 481
25.4.6 通知功能05H:建立对话 481
25.4.7 通知功能06H:解除对话 481
25.5.2 服务功能01H:测试内存区域 482
25.4.8 通知功能07H:切换器退出 482
25.5 服务功能 482
25.5.1 服务功能00H:获得版本号 482
25.5.5 服务功能04H:链接通知链 483
25.5.3 服务功能02H:挂起切换器 483
25.5.4 服务功能03H:恢复切换器 483
25.5.6 服务功能05H:释放通知链 484
25.5.7 服务功能06H:查询API支持 484
25.6.1 建立通知链 485
25.6.2 分配对话标识 485
25.6 DOS Int 2FH附加务功能 485
25.6.4 识别事例数据 486
25.6.3 释放对话标识 486
25.8 关键术语 487
25.7 小结 487
Int 21H服务06H:直接控制台I/O 490
Int 21H服务05H:写字符到标准打印设备 490
Int 21H服务04H:写字符到标准附属设备 490
Int 21H服务08H:无字符回显控制台输入 491
Int 21H服务07H:无字符回显控制台输入 491
Int 21H服务0BH:检查标准输入设备可用字符 492
Int 21H服务0AH:缓冲区键盘输入 492
Int 21H服务09H:在标准输出设备上显示字符串 492
Int 21H服务0EH:选择当前磁盘驱动器 493
Int 21H服务0DH:刷新磁盘缓冲区 493
Int 21H服务0CH:清除键盘缓存并调用键盘服务 493
Int 21H服务10H:通过文件控制块关闭打开的文件 494
Int 21H服务0FH:通过文件控制块打开文件 494
文件 495
Int 21H服务13H:通过文件控制块删除 495
Int 21H服务11H:通过文件控制块找到第一匹配目录项 495
Int 21H服务12H:通过文件控制块查找下一个匹配目录项 495
Int 21H服务15H:顺序文件写 496
Int 21H服务14H:顺序文件读 496
Int 21H服务19H:获取当前磁盘驱动器 497
Int 21H服务17H:通过文件控制块更名文件 497
Int 21H服务16H:通过文件控制块创建文件 497
Int 21H服务1CH:获取指定驱动器分配表信息 498
Int 21H服务1BH:获取当前磁盘信息 498
Int 21H服务1AH:设置磁盘传输区地址 498
Int 21H服务21H:文件控制块随机读 499
Int 21H服务1FH:获取缺省驱动器参数块 499
Int 21H服务23H:通过文件控制块获取文件大小 500
Int 21H服务22H:文件控制块随机写 500
Int 21H服务26H:创建新程序段前辍 501
Int 21H服务25H:设置中断向量 501
Int 21H服务24H:设置随机记录数域 501
Int 21H服务29H:分析文件名 502
Int 21H服务28H:通过文件控制块执行随机块写 502
Int 21H服务27H:通过文件控制块进行随机块读 502
Int 21H服务2AH:获取系统日期 503
Int 21H服务2DH:设置系统时间 504
Int 21H服务2CH:获取系统时间 504
Int 21H服务2BH:设置系统日期 504
Int 21H服务30H:获取DOS版本号 505
Int 21H服务2FH:获取磁盘传输地址 505
Int 21H服务2EH:设置磁盘校验ON/OFF 505
Int 21H服务32H:获取驱动器参数块 506
Int 21H服务31H:终止程序并保留驻留 506
Int 21H服务3306H:获取MS-DOS版本 507
Int 21H服务3305H:获取启动驱动器 507
Int 21H服务33H:获取/设置CTRL-BREAK处理状态 507
Int 21H服务36H:获取可用磁盘空间 508
Int 21H服务35H:获取中断向量 508
Int 21H服务34H:获取InDOS标志的地址 508
Int 21H服务38H:获取/设置与国家有关的信息 509
Int 21H服务3BH:修改DOS缺省子目录 510
Int 21H服务3AH:删除DOS子目录 510
Int 21H服务39H:创建DOS子目录 510
Int 21H服务3DH:通过DOS文件句柄打开文件 511
Int 2IH服务3CH:通过DOS文件句柄创建文件 511
Int 21H服务3EH:通过DOS文件句柄关闭文件 512
Int 21H服务3FH:从DOS文件句柄读 512
Int 21H服务42H:移动文件指针 513
Int 21H服务41H:删除文件 513
Int 21H服务40H:写至DOS文件句柄 513
Int 21H服务4400H:获取设备数据 514
Int 21H服务43H:改变或返回文件属性 514
Int 21H服务4401H:设置设备数据 515
Int 21H功能4403H:将控制数据写人字符设备 516
Int 21H功能4402H:从字符设备读控制数据 516
Int 21H服务4406H:检查设备输入状态 517
Int 21H功能4405H:将控制数据写入块设备 517
Int 21H功能4404H:从块设备读控制数据 517
Int 21H服务4409H:驱动器是远程(网络驱动器)的还是本地的 518
Int 21H服务4408H:设备是否使用可移动介质 518
Int 21H服务4407H:检查设备输出状态 518
Int 21H服务440AH:文件或设备是否远程的 519
Int 21H服务440CH子功能4AH:选择代码页 520
Int 21H服务440CH子功能45H:设置重复计数 520
Int 21H服务440BH:设置共享重试计数 520
Int 21H服务440CH子功能4DH:结束代码页准备 521
Int 21H服务440CH子功能4CH:启动代码页准备 521
Int 21H服务440CH子功能6AH:查询所选代码页 522
Int 21H服务440CH子功能65H:获取重复计数 522
Int 21H服务440CH子功能5FH:设置显示方式 522
Int 21H服务440CH子功能7FH:获取显示方式 523
Int 21H服务440CH子功能6BH:查询代码页准备列表 523
Int 21H服务440DH子功能41H:在逻辑驱动器上写磁道 524
Int 21H服务440DH子功能40H:设置设备参数 524
Int 21H服务440DH子功能46H:设置介质标志符 525
Int 21H服务440DH子功能42H:在逻辑驱动器上格式化磁道 525
Int 21H服务440DH子功能62H:在逻辑驱动器上检验磁道 526
Int 21H服务440DH子功能61H:在逻辑驱动器上读磁道 526
Int 21H服务440DH子功能60H:获取设备参数 526
Int 21H服务440DH子功能68H:检测介质类型 527
Int 21H服务440DH子功能66H:获取介质标识 527
Int 21H服务4410H:查询IOCTL句柄 528
Int 21H服务440FH:设置逻辑驱动器映象 528
Int 21H服务440EH:获取逻辑驱动器映象 528
Int 21H服务4411H:查询IOCTL设备 529
Int 21H服务47H:获取当前目录 530
Int 21H服务46H:强制句柄复制 530
Int 21H服务45H:复制文件句柄 530
Int 21H服务4AH:修改先前分配的内存 531
Int 21H服务49H:释放分配的内存段 531
Int 21H服务48H:分配内存段 531
Int 21H服务4CH:带状态的程序终止 532
Int 21H服务4BH:加载或执行第二个程序 532
Int 21H服务4EH:查找第一个匹配文件 533
Int 21H服务4DH:获取子进程出口代码 533
Int 21H服务51H:获取PSP地址 534
Int 21H服务50H:设置PSP地址 534
Int 21H服务4FH:查找下一个匹配文件 534
Int 21H服务57H:设置或获取文件日期/时间标记 535
Int 21H服务56H:命名文件 535
Int 21H服务54H:获取磁盘I/O校验状态 535
Int 21H服务5800H:获取内存分配策略 536
Int 21H服务5803H:设置高端内存块连接 537
Int 21H服务5802H:获取高端内存块连接 537
Int 21H服务5801H:设置内存分配策略 537
Int 21H服务59H:获取扩展错误信息 538
Int 21H服务5BH:创建新文件 540
Int 21H服务5AH:创建临时文件 540
Int 21H服务5D0AH:设置扩展名错误 541
Int 21H服务5CH:锁定或解锁文件块 541
Int 21H服务5E02H:设置打印机设定 542
Int 21H服务5E00H:获取计算机名称 542
Int 21H服务5F02H:获取赋值列表项 543
Int 21H服务5E03H:获取打印机设定 543
Int 21H服务5F04H:结束网络连接 544
Int 21H服务5F03H:进行网络联接 544
Int 21H服务6501H:获取扩展国家信息 545
Int 21H服务62H:获取PSP地址 545
Int 21H服务6F02H:获取大写字母表 546
Int 21H服务6504H:获取文件名大写字母表 547
Int 21H服务6505H:获取文件名字符表 548
Int 21H服务6506H:获取分类排序表 549
Int 21H服务6507H:获取双字节字符组 550
Int 21H服务6521H:转换字符串为大写字母 551
Int 21H服务6520H:转换字符为大写字母 551
Int 21H服务67H:设置文件句柄数 552
Int 21H服务66H:获取/设置全局代码页 552
Int 21H服务6522H:转换ASCIIZ字符串为大写字母 552
Int 21H服务6CH:扩展文件打开/创建 553
Int 21H服务68H:提交文件至磁盘 553
Int 23H:Ctrl-Break处理程序 554
Int 22H:终止地址 554
Int 24H:关键错误处理程序 555
Int 26H:绝对磁盘写 556
Int 25H:绝对磁盘读 556
Int 27H:终止驻留 557
Int 2FH服务01H子功能01H:提交文件至打印队列 558
Int 2FH服务01H子功能00H:获取PRINT安装状态 558
Int 28H:MS-DOS闲置中断 558
Int 2FH:多路中断 558
Int 2FH服务01H子功能04H:保持打印队列 559
Int 2FH服务01H子功能03H:取消打印队列中的所有文件 559
Int 2FH服务01H子功能02H:从打印队列中删除文件 559
Int 2FH服务1000H:获取SHARE安装状态 560
Int 2FH服务01H子功能06H:获取打印机设备头 560
Int 2FH服务01H子功能05H:恢复打印队列 560
Int 2FH服务1A00H:获取ANSI.SYS安装状态 561
Int 2FH服务1680H:调用MS-DOS闲置中断 561
Int 2FH服务1100H:获取网络安装状态 561
Int 2FH服务1400H:获取NLFUNC安装状态 561
Int 2FH服务4800H:获取DOSKEY安装状态 562
Int 2FH服务4310H:获取HIMEM.SYS入口点 562
Int 2FH服务4300H:获取HIMEM.SYS安装状态 562
Int 2FH服务4B02H:检查切换器 563
Int 2FH服务4B01H:建立通知链 563
Int 2FH服务4810H:读命令行 563
Int 2FH服务4B04H:释放任务切换器ID 564
Int 2FH服务4B03H:分配切换器ID 564
Int 2FH服务AD81H:设置KEYB激活代码页 565
Int 2FH服务4D80H:获取KEYB版本号 565
Int 2FH服务4B05H:标识事例数据 565
Int 2FH服务B700H:获取APPEND安装状态 566
Int 2FH服务B000H:获取GRAFTABL安装状态 566
Int 2FH服务AD82H:设置KEYB键盘模式 566
Int 2FH服务AD83H:获取KEYB键盘模式 566
Int 2FH服务B706H:获取APPEND方式 567
Int 2FH服务B704H:获取APPEND目录列表 567
Int 2FH服务B702H:获取APPEND版本 567
Int 2FH服务B711H:设置APPENH真名标志 568
Int 2FH服务B707H:设置APPEND方式 568
B.1 文件系统数据结构 569
附录B DOS数据结构 569
B.2 与磁盘有关的数据结构 573
B.3 ANSI服务 580
B.4 程序扩展名结构 581
B.5 国际用户数据结构 587
B.6 设备驱动程序结构 594
B.8 Task Switcher数据结构 604
B.7 PRINT数据结构 604
附录C ASCII和扩展ASCII字符集 607
附录D 推存阅读材料 610