第一部分 DOS 2.0 3.0 3.1 3.2 3.3系统调用 1
第一章 MS-DOS系统调用的用法 2
首先说明系统调用的步骤与种类 2
分别说明本书使用的四个头文件 2
1.1何谓系统调用(功能调用) 2
1.2系统调用的种类 3
1.3用COM模式开发程序 6
①COM模式的程序格式 6
②宏定义与头文件 7
③COM模式的编译/连接的批处理 8
1.4本书使用的头文件 8
①STDIO.H(标准I/O头文件) 8
③FILEH.H(文件句柄头) 14
④MEMORY.H(内存头) 16
第二章 MS_DOS上的重要概念 18
2.1 PSP(Program Segment Prefix) 18
①PSP的结构 18
②命令行的参数 19
2.2使用FCB的文件处理 19
①FCB与DTA 19
②顺序文件与随机文件 20
③文件属性 21
④日期/时间的格式 22
2.3使用文件句柄的文件处理 22
①文件句柄 22
②标准文件句柄 23
2.4磁盘的结构 23
①磁盘的分配 23
②目录 25
2.5内存管理 26
①段与偏移量 26
②内存分配 26
2.6进程 27
第三章 MS—DOS的隐含中断 29
中断类型20H 29
中断类型21H 29
中断类型22H 30
中断类型23H 32
中断类型24H 34
中断类型25H、26H 37
中断类型27H 40
第四章 系统调用的详细说明 42
①标准输入输出 42
②文件管理(利用文件句柄) 43
③目录管理 43
④磁盘管理 43
⑤进程管理 44
⑥内存管理 44
⑦设备管理/MS-Networks管理 45
⑧其他 45
⑨版本2.0以前的系统调用 45
功能00H 46
功能01H 47
功能02H 48
功能03H 49
功能04H 52
功能05H 53
功能06H 54
功能07H 56
功能08H 58
功能09H 60
功能0AH 61
功能0BH 63
功能0CH 64
功能0DH 65
功能0FH 68
功能10H 70
功能11H 72
功能12H 74
功能13H 75
功能14H 76
功能15H 78
功能16H 80
功能17H 81
功能19H 83
功能1AH 84
功能1BH 86
功能1CH 88
功能21H 90
功能22H 93
功能23H 96
功能24H 97
功能25H 98
功能26H 101
功能27H 102
功能28H 104
功能29H 106
功能2AH 110
功能2BH 111
功能2CH 112
功能2DH 113
功能2EH 114
功能2FH 116
功能30H 117
功能31H 118
功能33H 120
功能35H 121
功能36H 123
功能38H 124
功能39H 127
功能3AH 129
功能3BH 131
功能3CH 133
功能3D 135
功能3EH 137
功能3FH 139
功能40H 141
功能41H 143
功能42H 144
功能43H 147
功能44H,子功能00H, 01H 149
功能44H,子功能02H—05 152
功能44H,子功能06H, 07H 153
功能44H,子功能08H 155
功能44H,子功能09H, 0AH 156
功能44H,子功能0BH 157
功能45H 159
功能46H 160
功能47H 162
功能48H 164
功能49H 167
功能4AH 169
功能4BH,子功能00H 172
功能4CH,子功能03H 175
功能4CH 178
功能4DH 180
功能4EH 182
功能4FH 184
功能54H 186
功能56H 187
功能57H 189
功能58H 190
功能59H 192
功能5AH 196
功能5BH 198
功能5CH 200
功能5EH,子功能00H 204
功能5EH,子功能02 205
功能5FH,子功能02H 206
功能5FH,子功能03H 207
功能5FH,子功能04H 208
功能62H 209
第五章 DOS调用研读资料 211
第二部分 DOS 4.00 4.01系统调用 268
第六章 DOS4.0 4.01功能调用 269
6.1 DOS INT 21H功能总结 269
6.2 DOS INT 21H扩展错误代码一览 273
6.3 DOS INT 21H扩展错误类型一览 275
6.4 DOS INT 21H扩展错误处理一览 275
6.5 DOS INT 21H扩展错误位置一览 276
6.6常用功能使用建议 276
00H——程序终止 276
01H——带回显的控制台输入 277
02H——显示输出 277
03H——辅助输入 277
04H——辅助输出 278
05H——打印机输出 278
06H——直接控制台I/O 278
07H——无回显,直接控制台输入 279
07H——无回显,直接控制台输入 279
08H——无回显、控制台输入 279
09H——显示字符串 279
0AH——缓冲键盘输入 280
0BH——检查标准输入状态 280
0CH——清键盘缓冲区、调用键盘功能 281
0DH——磁盘复位 281
0EH——选择磁盘 281
0FH—— FCB打开文件 282
10H—— FCB关闭文件 283
11H—— FCB查找第一目录项 283
12H—— FCB查找下一项 284
13H—— FCB删除文件 285
14H—— FCB顺序读 285
15H—— FCB顺序写 286
16H—— FCB创建文件 287
17H——FCB重命名文件 288
19H——当前磁盘 288
1AH——置磁盘传送地址 289
1BH——分配表信息 289
1CH——给定设备的分配表信息 290
1FH——取缺省设备参数块 290
21H—— FCB随机读 291
22H——FCB随机写 291
23H——FCB文件尺寸 292
24H——设置相对记录域 293
25H——置中断向量 294
26H——创建新程序段前缀 294
27H—— FCB随机决读 295
28H——FCB随机块写 295
29H——分析文件名 296
2AH——取日期 297
2BH——置日期 297
2CH——取时间 298
2DH——置时间 298
2E00H复位确认状态 299
2E01H——置确认状态 299
2FH——取盘传送区地址 299
30H——取DOS版本号 299
31H——结束并驻留 300
32H——取设备参数块 301
3300H——取Break状态 301
3301H——置Break状态 301
3305H——取引导驱动器 301
34H——取DOS内部标志地址 302
35H——取中断向量 302
36H——取磁盘自由空间 302
3700H——取开关字符 303
3701H——设置开关字符 303
38H——取/置国家信息 304
39H——创建子目录 305
3AH——删除子目录 305
3BH——改变目录 306
3CH——创建一个文件 306
3DH——打开文件 306
3EH——关闭文件句柄 308
3FH——读文件或设备 308
40H——写文件或设备 308
41H——删除一个文件 309
42H——移动文件读/写指针 309
4300H——取文件属性 310
4301H——置文件属性 310
4400H(IOCTL)——取设备状态 310
4401H(IOCTL)——置设备状态 311
4402H/4403H (IOCTL)——读/写字符设备 312
4404H/4405H(IOCTL)——读/写块设备 312
4406H/4407H(IOCTL)——取I/O状态 312
440AH (IOCTL)——测试句柄为本/远地 313
440BH (IOCTL)——设置共享重入重试计数 314
440CH/440DH(IOCTL)——句柄/块设备通用IOCTL请求 314
440EH/440FH (IOCTL)——取/置逻辑驱动器 315
45H——复制文件句柄 315
46H——强迫复制文件句柄 316
48H——分配内存块 316
49H——释放内存块 317
4AH——修改分配的内存块 317
4B00H——执行程序(EXEC) 317
4B01H——装入程序 318
4B03H——装入覆盖 319
4CH——终止进程(Exit) 319
4DH——取子进程的返回码 320
4EH——查找第一个匹配文件 320
4FH——查找下一个匹配文件 321
50H——设置活动进程数据块 321
51H——取活动进程数据块 322
52H——取DOS内部值 322
54H——取验证状态 323
55H——复制PDB 323
56H——重命名/移动文件(重命名目录) 324
5700H——取文件日期和时间 324
5800H——取分配策略 324
5801H——设置分配策略 325
59H——取扩展错误信息 325
5AH——以唯一名创建文件 326
5BH——创建新文件 326
5C00H——锁定文件存取 327
5C01H——打开文件锁定 327
5D00H—— DOS调用服务器 328
5D01H——提交所有文件 329
5D02H——以名字关闭文件 329
5D03H——关闭特定计算机的所有文件 329
5D04H——关闭特定进程的所有文件 330
5D05H——取打开文件列表项 330
5D06H和5D0BH——取DOS数据区地址 330
5D07H——取打印流状态 331
5D08H——设置打印流状态 332
5D09H——截断打印流 332
5D0AH——设置扩展错误信息 332
5E00H——取机器名字 333
5E01H——设置机器名 333
5E02H——置打印机设置(Set up) 333
50E03 H——取打印机设置 334
5E04H——设置打印机模式 334
5E05H——取打印机模式 335
5F00H——取重定向模式 335
5F01H——置重定向模式 335
5F02H——取重定向列表项 336
5F03H——重定向设备 336
5F04H——取消重定向 337
5F05H——取扩展的重定向列表项 337
60H——翻译文件规范 338
62H——取PSP地址 338
6300H——取DBCS前景字节 表 339
6301H——置/复位Hongeul模式 339
6302H——取Hongeul模式 339
6501H——取扩展国家信息 340
6502H/6504H—取文本/文件大写(UpperCase)表地址 341
6506H——取对照表地址 342
6507H——取DBCS向量 342
6520H/6521 H/6522H——大写映射功能 343
6523H—— YES/NO检查 343
6600H——取全局(Global)代码页 344
6601H——设置全局代码页 344
67H——设置句柄计数 344
68H——提交文件 345
6900H——取介质1D 345
6901 H——置介质1D 345
6CH——扩展打开/创建文件 346
第七章 DOS 4.00功能调用实例 348
第八章 设备的输入/输出控制(IOCTL)编程实例 415
第三部分 BIOSOS扩充扩展内存中断调用 433
附录A IBM ROM BIOS所提供的服务 434
INT 05II (5)打印屏幕 434
INT 10H (16)视频显示 434
AH=00H (0)设置视频显示方式 435
AH=01H (1)设置光标大小 436
AH=02H (2)设置光标位置 436
AH=03H (3)读取光标位置 437
AH=04H (4)读取光笔位置 437
AH=05H(5)设置工作显示页 437
AH=06H (6)窗口向上卷动 438
AH=07H (7)窗口向下卷动 438
AH=08H (8)读取字符和特性 439
AH=09H (9)写出字符和特性 439
AH=0AH (10)写出字符 439
AH=0BH (11)设置彩色调色板 440
AH=0CH (12)显示一个像素 441
AH=0DH (13)读取像素 441
AH=0EH (14)以TTY方式写出字符 441
AH=0FH (15)获得当前显示方式 442
INT 11H (17)仪器 442
INT 12H (18)内存大小 443
INT 13H(19)磁盘 443
AH=00H (0)重设磁盘系统 444
AH=01H (1)取得磁盘状态 444
AH=02H (2)读取磁盘扇区 445
AH=03H (3)写入磁盘扇区 445
AH=04H (4)验证磁盘扇区 446
AH=05H (5)格式化磁盘磁道 447
INT 14H (24)通讯 447
AH =00H(0)设置串行口的起始值 448
AH=01H (1)送出一个字符 449
AH=02H (2)接收一个字符 449
AH=03H (3)获得串行口状态 450
INT 15H (21)录音机 450
AH =00H (0)开启录音机马达 451
AH=01H关闭录音机马达 451
AH=02H (2)读数据段 451
AH=03H写数据区段 452
INT 16H (22)键盘 452
AH =00H (0)读取下一个键盘字符 452
AH=01H (1)检查字符是否准备好了 452
AH=02H (2)获得功能转换状态 453
NT 17H打印机 453
AH=00H (0)输出字符到打印机 454
AH=01H (1)启动打印机 454
AH = 02H (2)取得打印机状态 454
INT 18H (24) BASIC 455
INT 19H (25)重新启动 455
INT 1AH (26)时钟 455
AH=00H读取目前计时器数值 456
AH=01H (1)设置目前计时器数值 456
附录B 扩展内存规范参考 458
B.1 EMS功能一览表 458
B.2 EMS错误信息一览表 469
B.2.1检测EMS支持 470
B.2.2 EMS编程注意点 471
附录C扩充内存规范参考 472
C.1 XMS功能一览表 472
C.2 XMS错误码一览表 476
C2.1测试XMS支持 477
C2.2 XMS编程建议 478
附录D硬件中断 479
INT 00H(0)除以零 479
INT 01H(1)单步执行 479
INT 02H (2) NMI 479
INT 03H (3)断点 479
INT 04H (4)溢出 479
INT 08H (8)计时器脉冲 480
INT 09H (9)按下键盘 480
INT 0BH (11)串行口1 480
INT 0CH (12)串行口0 480
INT 0DH (13)硬盘驱动器 480
INT 0EH (14)软盘驱动器 480
INT 0FH (15)打印机 481
INT 1DH (29)显示起始表 481
INT 1EH (30)磁盘驱动器参数表 481
INT 1FH (31)图形表格 481