第一章绪论 1
本书的组织 1
新的DOS 4.00服务 1
目录 1
实用程序盘 2
最少硬件配置 2
第一部分编写程序 3
引导记录 4
文件分配表(FAT) 4
磁盘格式 4
第二章访问磁盘 4
磁盘目录 5
数据区 6
访问磁盘 6
直接读写磁盘数据 6
请求驱动器和磁盘信息 6
文件把柄 7
第三章用文件把柄访问文件 7
文件名 7
专用文件把柄 8
读写文件数据 8
请求和指定文件属性 9
访问子目录 9
访问目录 11
查找目录中文件 11
请求和指定国家语言支持(NLS) 11
控制网络操作 12
第四章用文件控制块访问文件 13
文件控制块(FCB) 13
扩充的FCB 15
磁盘传输区(DTA) 16
访问文件 16
访问随机记录 17
查找目录中文件 17
访问顺序记录 17
第五章管理设备的输入/输出 19
管理显示输入/输出 19
管理键盘输入/输出 19
管理其它设备输入/输出 20
管理文件的系统动作 20
访问系统设备驱动程序的控制通道 21
读写二进制和ASCII方式的数据 21
第六章控制进程 23
分配内存 23
DOS 4.00内存管理 23
DOS 4.00内存分配图 24
在装入时标识程序 25
程序段 25
装入并执行复盖 27
参数块 27
装入复盖但不执行 28
终止程序/子程序 28
调用命令处理程序 29
对错误的反应 29
回答Ctrl-Break动作 30
请求和指定系统日期和时间 30
请求和指定中断向量 30
第二部分使用程序设计的实用程序 33
启动LIB.EXE实用程序 34
IBM库管理程序/2 34
第七章建立目标代码库 34
在命令行上键入输入信息 37
使用回答文件 39
建立和维护库 40
建立库文件 40
修改库文件 40
对库进行组合 41
建立交叉引用清单 41
库管理程序错误信息 42
执行一致性检查 42
设置库页大小 42
第八章建立可执行文件 46
IBM连接程序/2 46
启动LINK.EXE程序 46
在命令行上键入LINK的输入 49
使用回答文件提供LINK输入 51
使用连接程序选项 53
为CodeView准备文件/CODEVIEW 54
保留节(Paragraph)空间/CPARMAXALLOC 54
段排序/DOSSEG 55
控制数据装入/DSALLOCATE 55
压紧可执行文件/EXEPACK 55
观察选项清单/HELP 56
控制运行文件装入/HIGH 56
把行号复制到映射文件/LINENUMBERS 57
产生公共符号映射/MAP 57
显示连接时信息/INFORMATION 57
忽略缺省库/NODEFAULTLIBRARYSEARCH 58
保持兼容性/NOGROUPASSOCIATION 58
保持小写/NOIGNORECASE 59
设置复盖中断/OVERLAYINTERRUPT 59
换盘暂停/PAUSE 60
设置最大段数/SEGMENTS 60
设置栈尺寸/STACK 61
阅读映射文件 62
建立程序的复盖版本 63
向LINK提供复盖结构 63
LINK怎样格式化EXE文件 64
段排序 64
段组合类型 64
组 65
指令和数据引用错 65
连接程序错误信息 66
连接程序的限制 73
第九章转换文件格式 74
EXE2BIN.EXE实用程序 74
键入EXE2BIN的输入部分 74
两种转换类型 75
设备驱动程序 75
标准COM文件 75
第十章调试程序 77
DEBUG(调试)实用程序 77
启动DEBUG.COM程序 77
在DEBUG提示处键入命令 77
BEBUG命令一览表 78
DEBUG工作空间 79
A(汇编)命令 80
C(比较)命令 82
D(转储)命令 83
E(写入)命令 84
F(填写)命令 86
G(执行)命令 87
H(16进制算术运算)命令 89
I(输入)命令 89
L(装入)命令 89
M(传送)命令 91
N(命名)命令 92
O(输出)命令 92
P(进行)命令 93
Q(退出)命令 93
R(寄存器)命令 94
S(检索)命令 96
T(追踪)命令 97
U(反汇编)命令 98
W(写)命令 100
XA(EMS分配)命令 102
XD(EMS释放分配)命令 102
XS(EMS状态)命令 103
XM(EMS映射)命令 103
DEBUG错误信息 104
第十一章编写可安装的设备驱动程序 106
设备驱动程序的类型 106
字符设备驱动程序 106
块设备驱动程序 106
DOS 4.00怎样安装设备驱动程序 107
设备驱动程序的基本部分 107
设备驱动程序标题 108
策略程序 110
中断程序 110
DOS 4.00怎样传递请求 110
回答请求 112
初始化请求 113
介质检查请求 114
建立BPB请求 116
输入或输出请求 119
不等待的无破坏性的输入请求 120
字符输入和输出状态请求 121
字符输入和输出清洗请求 122
打开和关闭请求 122
可装卸介质请求 123
一般IOCTL请求 123
取逻辑设备请求 124
设置逻辑设备请求 124
时钟$(CLOCK$)设备驱动程序实例 124
第三部分附录 125
附录A DOS 4.00中断 126
20H程序终止 126
21H功能请求 126
22H终止地址 126
23HCtrl-Break出口地址 126
24H紧急错误处理程序向量 127
25H/26H绝对磁盘读/写 130
28H—2EH由DOS 4.00保留 132
2FH多路中断 132
27H终止但保持常驻 132
30H—3FH由DOS 4.00保留 137
附录B DOS 4.00功能调用 138
使用DOS 4.00功能调用 141
程序代码段 141
COM程序 141
DOS 4.00寄存器 141
对错误的反应 142
扩充错误码 143
00H—程序终止 146
01H—带响应的控制台输入 147
02H—显示输出 147
04H—辅助设备输出 148
05H—打印输出 148
03H—辅助设备输入 148
06H—直接控制台I/O 149
07H—无响应的直接控制台输入 150
08H—无响应的控制台输入 150
09H—显示字符串 151
0AH—带缓冲的键盘输入 151
0CH—清除键盘缓冲区并调用键盘功能 152
0DH—磁盘复位 152
0BH—检测标准输入状态 152
0EH—选择磁盘 153
0FH—打开文件 153
10H—关闭文件 154
11H—搜索第一个目录项 154
12H—搜索下一个目录项 156
13H—删除文件 157
14H—顺序读 157
15H—顺序写 158
16H—建立文件 159
19H—当前磁盘 160
17H—文件换名 160
1AH—设置磁盘传输地址 161
1BH—分配表信息 161
1CH—指定设备的分配表信息 162
21H—随机读 162
22H—随机写 163
23H—文件大小 164
24H—设置相对记录字段 165
25H—设置中断向量 165
26H—建立新程序段 166
27H—随机块读 166
28H—随机块写 167
29H—解析文件名 168
2AH—取日期 169
2BH—设置日期 170
2CH—取时间 170
2DH—设置时间 171
2EH—设置/复位检验开关 172
2FH—取磁盘传输地址(DTA) 172
30H—取DOS版本号 172
31H—终止进程并保持常驻 173
33H—读取/设置系统值 174
35H—取中断向量 174
36H—取磁盘自由空间 175
38H—读取/设置国别信息 176
39H—建立子目录(MKDIR) 178
3AH—取消子目录 179
3BH—改变当前目录(CHDIR) 179
3CH—建立文件(CREAT) 180
3DH—打开文件 180
3EH—关闭文件把柄 185
3FH—从文件或设备读入 185
40H—写到文件或设备 186
41H—从指定目录删除文件(UNLINK) 187
42H—移动文件读/写指针(LSEEK) 188
43H—改变文件模式(CHMOD) 189
44H—设备输入/输出控制 190
45H—复制文件把柄(DUP) 190
46H—强行复制文件把柄(FORCDUP) 190
47H—取当前目录 191
48H—分配内存 191
49H—释放已分配的内存 192
4BH—装入或执行程序(EXEC) 193
4AH—修改已分配的内存块(SETBLOCK) 193
4CH—终止进程(EXIT) 196
4DH—取子进程的返回代码(WAIT) 196
4EH—查找第一个相符的文件(FIND FIRST) 197
4FH—查找下一个相符的文件(FIND NEXT) 198
54H—取检验开关设定值 199
56H—文件换名 199
57H—读取/设置文件的日期和时间 200
59H—取扩充错误 201
5AH—建立临时文件 202
5BH—建立新文件 203
5CH—锁定/开锁文件访问 204
5E00H—取机器名 205
5E02H—设置打印机的配置 206
5E03H—取打印机的配置 206
5F02H—取重定向表项 207
5F03H—重定向设备 209
5F04H—取消重定向 210
65H—取扩充的国别信息 211
62H—取程序段前缀地址 211
66H—读取/设置全局代码页 213
67H—设置把柄计数 214
68H—提交文件 215
6CH—扩充的打开/建立 215
附录C设备的输入/输出控制(IOCtl) 218
44H—设备的输入/输出控制(IOCtl) 218
附录D扩展内存支持 238