第一部分 1
第一章 DOS技术资料 1
1.1引言 1
1.2版本说明 1
1.3 DOS结构 2
1.引导程序 2
2.只读存贮器(ROM)BIOS接口 2
3.DOS程序文件 2
4.命令处理程序 3
1.4 DOS初始化 3
1.5可用的DOS功能 4
1.6磁盘传送区(DTA) 5
1.7错误陷井 5
第二章 可安置设备驱动程序 6
2.1引言 7
2.2版本说明 8
2.3设备驱动程序格式 8
2.4设备的类型 9
1.字符设备 9
2.块设备 9
2.5设备头 10
1.指向下一设备头字段指针 11
2.属性字段 11
3.策略和中断程序的指针 13
4.名字/单元字段 13
2.6建立设备驱动程序 13
2.7设备驱动程序 14
1.安置字符设备 15
2.安置块设备 15
2.8请求头 16
1.单元代码字段 16
2.命令码字段 16
3.状态字段 18
2.9设备驱动程序功能 19
1.初始化(INIT) 20
2.介质检测(MEDIA CHECK) 21
3.介质描述符字节(Media Descriptor Byte) 23
4.建立BPB (BUILD BPB) (BPB:BIOS参数块) 24
5.输入或输出(INPUT或OUTPUT) 26
6.无等待非破坏性输入(NONDESTRUCTIVE INPUT NO WAIT) 28
7.状态(STATUS) 28
8.清除(FLUSH) 29
9.打开或关闭(OPEN或CLOSE) (DOS3.00至3.30) 29
10.可移动介质(REMOVABLE MEDIA)(DOS3.00至3.30) 30
11.类属IOCTL请求(Generic IOCTL Request)(DOS3.00至3.30) 31
12.取逻辑设备(Get Logical Device)(DOS3.00至3.30) 32
13.设置逻辑设备(Set Logical Device)(DOS 3.00至3.30) 32
2.10时钟设备(The Clock$Device) 33
2.11设备驱动程序实例 33
第三章 使用扩充的屏幕和键盘功能 34
3.1引言 34
3.2控制序列 35
3.3控制序列句法 35
3.4光标控制序列 36
1.光标位置 36
2.光标上移 36
3.光标下移 36
4.光标前移 37
5.光标后移 37
6.水平和垂直位置 37
7.光标位置报告 37
8.设备状态报告 37
9.保存光标位置 38
10.恢复光标位置 39
3.5删除 39
1.显示删除 39
2.行删除 39
3.6操作方式 39
3.7键盘键重定义 41
第四章 文件管理要点 44
4.1引言 44
4.2版本说明 44
4.3文件管理功能 45
4.4 FCB功能调用 45
4.5文件编号功能调用 46
4.6特殊文件编号 47
4.7 ASCII方式和二进制方式 48
1.二进制方式的文件输入输出 49
2.ASCII方式的文件输入输出 49
4.8允许打开的文件数 50
4.9 FCB使用上的限制 50
4.10文件编号使用上的限制 51
4.11给文件分配空间 53
第五章 DOS磁盘分配 54
5.1引言 54
5.2版本说明 55
5.3 DOS区域 55
5.4引导程序 55
5.5文件分配表(FAT) 55
1.如何使用12位FAT表目文件分配表 57
2.如何使用16位FAT表目文件分配表 58
5.6 DOS磁盘目录 58
5.7数据区 61
第六章 DOS中断和功能调用 62
6.1引言 66
6.2版本说明 66
6.3 DOS寄存器 68
6.4扩展的ASCII代码 69
6.5中断 71
1.20H程序中止 71
2.21H功能请求 71
3.22H中止地址 71
4.23H Ctrl-Break出口地址 71
5.24H关键性错误处理程序向量 72
6.25H绝对磁盘读 77
7.26H绝对磁盘写 78
8.27H中止但保留驻存 78
9.28H-2EH DOS留用 79
10.2FH多重中断 79
11.30H-3FH DOS留用 84
6.6功能调用 84
1.功能调用清单 85
2.DOS 内部堆栈 88
3.出错返回信息 89
4.ASCIIZ字符串 95
5.网络路径 95
6.网络访问权限 96
7.文件编号 96
8.使用DOS功能 96
6.7 00H程序中止 97
6.8 01H键盘输入 98
6.9 02H显示输出 99
6.10 03H辅助输入 99
6.11 04H辅助输出 100
6.12 05H打印机输出 100
6.13 06H直接控制台I/O 101
6.14 07H无回送直接控制台输入 101
6.15 08H无回送控制台输入 102
6.16 09H打印字符串 102
6.17 0AH缓冲键盘输入 103
6.18 0BH检查标准输入状态 104
6.19 0CH清除键盘缓冲区并调用键盘功能 104
6.20 0DH磁盘复位 105
6.21 0EH选择磁盘 105
6.22 0FH打开文件 106
6.23 10H关闭文件 107
6.24 11H搜索第一个表目 107
6.25 12H搜索后继表目 108
6.26 13H删除文件 109
6.27 14H顺序读 110
6.28 15H顺序写 111
6.29 16H建立文件 111
6.30 17H文件更名 112
6.31 19H当前盘 113
6.32 1AH设置磁盘传送地址 113
6.33 1BH分配表信息 114
6.34 1CH指定设备分配表信息 114
6.35 21H随机读 115
6.36 22H随机写 116
6.37 23H文件大小 116
6.38 24H设置相对记录字段 117
6.39 25H设置中断向量 118
6.40 26H生成新的程序段 118
6.41 27H随机块读 119
6.42 28H随机块写 119
6.43 29H分析文件名 120
6.44 2AH取日期 122
6.45 2BH置日期 122
6.46 2CH取时间 123
6.47 2DH置时间 124
6.48 2EH置位/复位校验开关 124
6.49 2FH取磁盘传送地址(DTA) 125
6.50 30H取DOS版本号 126
6.51 31H中止处理和保留驻存 126
6.52 33H Ctrl-Break检查 127
6.53 35H取向量 128
6.54 36H取磁盘空余空间 129
6.55 38H (DOS2.10)返回国度有关信息 130
6.56 38H (DOS3.00至DOS3.30)取或设置国度有关信息 131
6.57 39H建立子目录(MKDIR) 134
6.58 3AH删除子目录(RMDIR) 135
6.59 3BH改变当前目录(CHDIR) 136
6.60 3CH建立文件(CREAT) 136
6.61 3DH (DOS2.10)打开文件 137
6.62 3DH (DOS3.00至DOS3.30)打开文件 138
6.63 3EH关闭文件编号 145
6.64 3FH从文件或设备读数据 145
6.65 40H写数据到文件或设备 147
6.66 41H从指定目录内删文件(UNLINK) 148
6.67 42H移动文件读写指针(LSEEK) 149
6.68 43H改变文件方式(CHMOD) 150
6.69 44H设备I/O控制(IOCTL) 151
6.70 45H复制文件编号(DUP) 174
6.71 46H强制复制文件编号(FORCDUP) 175
6.72 47H取当前目录 176
6.73 48H分配内存 176
6.74 49H释放已分配内存 177
6.75 4AH修改已分配内存块(SETBLOCK) 178
6.76 4BH装入或执行程序(EXEC) 179
6.77 4CH中止进程(EXIT) 182
6.78 4DH取子进程返回码(WAIT) 182
6.79 4EH寻找第一个匹配文件(FIND FIRST) 183
6.80 4FH寻找后继匹配文件(FIND NEXT) 184
6.81 54H取检验状态 185
6.82 56H文件更名 185
6.83 57H取/置文件日期和时间 186
6.84 59H (DOS 3.00至DOS3.30)取扩展的错误 187
6.85 5AH (DOS 3.00至DOS 3.30)建立唯一文件 189
6.86 5BH (DOS 3.00至DOS 3.30)建立新文件 190
6.87 5CH (DOS 3.00至DOS 3.30)锁定/开锁文件存取 191
6.88 5E00H (DOS 3.10至DOS 3.30)取机器名 193
6.89 5E02H (DOS 3.10至DOS 3.30)设定打印机设置 194
6.90 5E03H (DOS 3.10至DOS 3.30)取打印机设置 195
6.91 5F02H (DOS 3.10至DOS 3.30)取转向表项 196
6.92 5F03H (DOS 3.10至DOS 3.30)设备转向 197
6.93 5F04H (…DOS 3.10至DOS 3.30)取消转向 199
6.94 62H (DOS 3.00至DOS 3.30)取程序段前缀地址 200
6.95 65H (DOS 3.30)取扩展的国度信息 201
6.96 66H (DOS 3.30)取置全局代码页面 204
6.97 67H (DOS 3.30)设置文件编号计数值 205
6.98 68H (DOS 3.30)提交文件 206
第七章 DOS控制块和工作区 207
7.1引言 207
7.2 DOS内存图 207
7.3 DOS程序段 208
7.4程序段前缀 211
7.5文件控制块 213
1.标准文件控制块 213
2.扩展文件控制块 215
7.6字形文件 216
第八章 从应用程序里执行命令 219
8.1引言 219
8.2调用命令处理程序 219
第九章 硬盘有关资料 220
9.1引言 220
9.2硬盘结构 220
9.3系统初始化 221
9.4引导程序分区表 222
9.5硬盘技术资料 223
9.6扩展DOS分区 225
9.7扩展DOS分区结构 226
9.8扩展分区引导程序 226
9.9扩展分区引导程序的逻辑驱动器表 227
9.10决定硬盘的分配 229
第十章 .EXE文件的结果及装入 231
10.1引言 231
10.2 .EXE文件结构 231
10.3重定位表 232
第十一章 DOS存贮管理 234
11.1引言 234
11.2控制块 234
第二部分 237
第十二章 链接程序(LINK)和EXE2BIN程序 237
12.1引言 238
12.2文件 238
1.输入文件 238
2.输出文件 239
3.VM.TMP(临时文件) 239
12.3定义 239
1.段 239
2.组 240
3.类 240
12.4命令提示符 240
12.5命令提示符的详细说明 241
1.目标模块[.OBJ ] 241
2.运行文件[filename,EXE] 242
3.列表文件[NUL.MAP] 243
4.库文件[.LIB] 243
5.链接程序参数 244
12.6如何启动链接程序 247
1.启动之前 247
2.选择1—控制台回答 247
3.选择2—命令行 248
4.选择3—自动回答 249
12.7链接程序对话实例 250
如何确定一个段的绝对地址 253
12.8信息 254
12.9 EXE2BIN命令 254
第十三章 调试程序(DEBUG) 257
13.1引言 258
13.2如何启动DEBUG程序 258
13.3DEBUG参数 259
13.4 DEBUG命令 263
1.DEBUG命令的通用信息 263
2.汇编命令(A) 264
3.比较命令(C) 266
4.显示命令(D) 267
5.打入命令(E) 268
6.填写命令(E) 270
7.执行命令(G) 271
8.十六进制运算命令(H) 272
9.输入命令(I) 273
10.装入命令(L) 273
11.传送命令(M) 275
12.命名命令(N) 275
13.输出命令(O) 276
14.进程命令(P) 276
15.退出命令(Q) 277
16.寄存器命令(R) 277
17.检索命令(S) 281
18.跟踪命令(T) 282
19.反汇编命令(U) 283
20.写命令(W) 285
附录A使用库管理程序 288
库管理程序 288
1.命令行格式 288
2.操作符 290
3.应答文件 291
4.交叉-参考清单 291
5.库管理程序出错信息 292