第一章 MS-DOS4.0编程环境 1
1.1 引言 1
1.2 必要的条件 1
1.3 8086结构上的限制 1
1.4 定义 1
1.5 DOS接口 2
1.6 设备驱动程序 3
1.6.1 多任务设备驱动程序 3
1.6.2 控制台驱动程序 3
1.7 键盘中止 3
1.8 内部结构 4
1.9 硬件条件 4
1.10上托包(POPUP package) 4
1.10.1 概述 4
1.10.2 使用注意事项 6
第二章 MS-DOS4.0新的系统调用 7
2.1 进程控制 7
2.2 并行支持 7
2.3 内部进程并行性 8
2.4 进程间通讯 9
2.5 上托包 10
2.6 调度程序 10
2.7 存储管理 12
2.8 信号 13
2.9 文件系统 14
第三章 MS-DOS4.0系统调用 16
3.1 引言 16
3.1.1 约定 16
3.1.2 定义 16
3.2 进程控制调用 16
3.2.1 EXEC——启动一个新的进程 17
3.2.2 AEXEC——启动异步进程 18
3.2.3 WAIT——回送同步子终止码 18
3.2.4 CWAIT——等待子进程终止 18
3.2.5 FREEZE——停止一个进程 19
3.2.6 RESUME——恢复一个进程 19
3.2.7 SLEEP——延迟进程的执行 20
3.2.8 KILL——终止一个进程 20
3.2.9 CRITERR——使硬件出错处理可行 21
3.3 上托包 21
3.3.1 CHECKPU——检查上托包的安装 21
3.3.2 POSTPU——开启/关闭一个上托屏幕 22
3.3.3 SAVEPU——保存屏幕 23
3.3.4 RESTOREPU——恢复屏幕 23
3.4 进程信息 24
3.4.1 GETPID——送回进程ID(即PID) 24
3.4.2 SETPRI——取得/设置进程的优先级 24
3.5 存储管理调用 25
3.5.1 PARTITION——取得或设置前台存储区大小 25
3.6 内部进程并行操作调用 26
3.6.1 CRITENTER和CRITLEAVE——在RAM信号上封锁进程 26
3.6.2 PBLOCK——封锁一个进程 27
3.6.3 PRUN——在存储单元释放进程 28
3.7 进程间通讯调用 28
3.7.1 PIPE——建立一个新的管道 28
3.7.2 CREATMEM——建立一个共享存储区 29
3.7.3 GETMEM——实现对共享存储区的访问 29
3.7.4 RELEASEMEM——释放对共享存储区的访问 30
3.8 信号调用 30
3.8.1 SET—SIGNAL—HANDLER——设置信号处理程序 31
3.8.2 SEND—SIGNAL——发出信号 31
3.8.3 信号处理程序 32
3.9 文件管理调用 32
3.9.1 SETFILETABLE——安装一个新的文件句柄表 32
3.10 类IOCTL调用 33
3.10.1 类IOCTL调用 33
3.10.2 在逻辑驱动器上读/写/格式化/检验磁道的支持 34
3.10.3 Get Logical Drive Map——读取逻辑驱动器映象 38
3.11 辅助调用 38
3.11.1 GETEXTENDEDERROR——送回扩展的DOS出错码 38
第四章 设备驱动程序 40
4.1 引言 40
4.1.1 概述 40
4.1.2 新的特点 40
4.2 新的驱动程序结构 41
4.2.1 设备驱动程序方式 41
4.2.2 MS—DOS提供的服务 41
4.2.3 I/O处理 43
4.2.4 处理多重I/O请求 43
4.3 设备标题 45
4.3.1 标志字 45
4. I/O请求数据包 46
4.4.1 请求标题 46
4.4.2 状态字 46
4.4.3 新的命令 46
4.4.4 修改的请求 49
4.5 操作 50
4.5.1 内部排队 50
4.5.2 请求完成通讯 51
4.5.3 嵌套中断 52
4.5.4 初始化 52
4.5.5 非中断驱动设备 52
4.6 控制台设备 53
4.6.1 错误处理 53
4.6.2 键盘中断 54
4.6.3 ROM仿真 54
4.7 设备辅助功能详述 54
4.7.1 请求队列管理程序 55
4.7.2 进程同步程序 57
4.7.3 控制台及时钟驱动器的特殊程序 58
4.7.4 字符排序程序 59
4.7.5 其它程序 59
4.7.6 临界区程序 60
4.8 IOCTL功能详述 61
4.9 信号程序 62
第五章 可执行文件格式 66
5.1 新的可执行文件格式 66
5.2 可执行文件启动条件 66
5.3 新的.EXE格式图 67
5.3.1 状态位和标题信息 68
5.3.2 新的.EXE标题 68
5.3.3 段表 69
5.3.4 资源表 70
5.3.5 模块参数表 70
5.3.6 入口表(1—based) 70
5.3.7 常驻或非常驻名称表入口(3+n字节) 71
5.3.8 输入名称表入口(1+n字节) 71
5.3.9 单位段数据(per—segment data) 71
第六章 80286与8086的兼容性 73
6.1 引言 73
6.2 286兼容性 73
6.2.1 在8086方式下的兼容性 74
6.2.2 在286保护方式下的兼容性 76
6.3 什么是存储管理? 77
6.3.1 8086存储模型研讨 77
6.3.2 286存储再定位 79
6.3.3 什么是“段”(Segment)? 79
6.3.4 使程序兼容 80
6.4 286保护特点 81
6.4.1 段尺寸 81
6.4.2 不纯代码段 82
6.4.3 特权指令 82
第七章 文件和目录 83
7.1 概述 83
7.2 多级目录 84
7.3 路径和路径名 86
7.4 通配符 86
7.5 目录使用 87
第八章 有关命令的一些说明 90
8.1 MS—DOS命令类型 90
8.2 改变标准I/O命令 91
8.3 过滤器和管道 92
第九章 MS—DOS命令 94
9.1 命令选择项 94
9.2 关于选择项的进一步说明 95
9.3 MS—DOS命令 95
第十章 多任务的使用 134
10.1 概述 134
10.2 MS—DOS上托包 135
10.3 MS—DOS进程调度 135
10.4 MS—DOS存储管理 136
10.5 MS—DOS 4.0的通讯 136
10.6 一个上托应用程序是怎样工作的 137
10.7 MS—DOS上托包工作限制 137
第十一章 批处理 139
11.1 批处理的介绍 139
11.2 批处理命令 144
第十二章 MS—DOS行编辑 150
12.1 MS—DOS编辑和功能键 150
12.1.1 MS—DOS特殊编辑键 150
12.1.2 MS—DOS怎样使用模板 150
12.1.3 MS—DOS编辑键 150
12.1.4 怎样使用MS—DOS模板 151
12.1.5 MS—DOS控制符的使用 152
12.2 行编辑 152
12.2.1 关于行编辑程序(Edlin) 153
12.2.2 Edlin怎样工件 153
12.2.3 怎样起动Edlin 153
12.2.4 怎样退出Edlin 154
12.2.5 在Edlin下使用特殊编辑键 154
12.3 行编辑命令 159
12.3.1 使用Edlin命令应注意的一些事项 159
12.3.2 Edlin命令参数 160
12.3.3 行编命令 161
第十三章 连接目标文件——Link4 176
13.1 引言 176
13.2 怎样起动Link4 176
13.2.1 方法1:应用提示来指定Link4文件 177
13.2.2 方法2:用命令行指定Link4文件 178
13.2.3 方法3:用应答文件指定Link4文件 179
13.3 映象文件 181
13.4 库文件 182
13.5 模块定义文件 182
13.6 Link4的有关参量 184
13.6.1 观察参量清单 185
13.6.2 暂停连接以更换磁盘 185
13.6.3 生成一个公共符号映象 186
13.6.4 将行号复制到映象文件 186
13.6.5 禁止远程调用转换 187
13.6.6 保护小写字母 187
13.6.7 忽略缺省库文件检索 187
13.6.8 设置堆栈的大小 187
13.6.9 设置最大段数 188
13.6.10 设置段区定位因数 188
13.6.11 组装代码段 189
13.7 Link4怎样工件 189
13.7.1 暂时磁盘文件 189
13.7.2 可执行文件起动条件 189
13.7.3 各段的定位 190
13.7.4 段序 190
13.7.5 段的组合 191
13.7.6 组 191
13.7.7 装配 191
13.7.8 段组装 192
第十四章 调试(DEBUG)程序 193
14.1 引言 193
14.2 如何启动DEBUG程序 193
14.3 DEBUG命令信息 194
14.4 DEBUG命令参数 195
14.5 DEBUG命令 196
14.5.1 Assemble(汇编) 196
14.5.2 Compare(比较) 197
14.5.3 Dump(卸出) 198
14.5.4 Enter(打入) 198
14.5.5 Fill(填充) 199
14.5.6 Go(转移) 199
14.5.7 Hex(十六进制运算) 200
14.5.8 Input(输入) 200
14.5.9 Load(装入) 200
14.5.10 Move(传送) 201
14.5.11 Name(命名) 202
14.5.12 Output(输出) 203
14.5.13 Quit(退出) 203
14.5.14 Register(寄存器) 203
14.5.15 Search (检索) 204
14.5.16 Trace(跟踪) 205
14.5.17 Unassemble(反汇编) 205
14.5.18 Write(写) 206
14.6 DEBUG出错信息 207
附录A 单软盘驱动器系统的用户命令 208
附录B 如何配置你的系统 208
附录C 可安装的设备驱动程序 213
附录D 磁盘和设备出错信息 218
附录E MS—DOS信息目录 220
附录F 配置你的硬盘(Fdisk) 252