第一章 DOS技术 1
1.1 介绍 1
1.2 版本描述 1
1.3 DOS结构 1
1.3.1 引导记录 1
1.3.2 只读存贮器(ROM)BIOS接口 2
1.3.3 DOS程序文件 2
1.3.4 命令处理程序 2
1.4 DOS初始化 3
1.5 DOS实用功能 3
1.6 磁盘传送区(DTA) 4
1.7 出错处理 4
第二章 设备驱动程序 5
2.1 介绍 5
2.2 版本描述 5
2.3 设备驱动程序的格式 6
2.4 设备类型 6
2.4.1 字符设备 6
2.4.2 块设备 6
2.5 设备描述头 7
2.5.1 指向下一个设备描述头的指针字段 7
2.5.2 属性字段 7
2.5.3 访问策略和中断程序指针 9
2.5.4 名字/单元字段 9
2.6 创建一个设备驱动程序 9
2.7 装载设备驱动程序 10
2.7.1 装载字符设备 10
2.7 2 装载块设备 11
2.8 需求描述头 11
2.8.1 单元码字段 12
2.8.2 命令码字段 12
2.8.3 状态字字段 12
2.9 设备驱动程序的功能 14
2 9.1 INIT 14
2.9.2 MEDIA CHECK 15
2.9.3 介质描述字节 16
2.9.4 BUILD BPB(BIOS参数块) 18
2.9.5 INPUT或OUTPUT 19
2.9.6 NONDESTRUCTIVE INPUT NO WAIT 21
2.9.7 STATUS 21
2.9.8 FLUSH 22
2.9.9 OPEN或CLOSE(DOS3.00和3.10版本) 22
2.9.10 REMOVABLE MEDIA(DOS 3.00和3.10版本) 23
2.10 CLOCK$设备 24
2.11 采样设备驱动程序 24
第三章 使用扩充的屏幕和键盘控制 25
3.1 介绍 25
3.2 控制指令序列 25
3.3 控制指令序列的格式 25
3.4 光标控制指令序列 26
3.4.1 光标位置 26
3.4.2 光标上移 27
3.4.3 光标下移 27
3.4.4 光标右移 27
3.4.5 光标左移 28
3.4.6 水平位置及垂直位置 28
3.4.7 光标位置报告 28
3.4.8 设备状态报告 28
3.4.9 存贮光标位置 29
3.4.10 恢复光标位置 30
3.5 清屏 30
3.5.1 屏幕清除 30
3.5.2 行清除 30
3.6 操作模式 30
3.7 键盘的再定义 32
第四章 文件管理注释 35
4.1 介绍 35
4.2 版本描述 35
4.3 文件管理功能 35
4.4 FCB功能调用 36
4.5 控制功能调用 36
4.6 专门的文件控制 37
4.7 ASCII模式和二进制模式 38
4.7.1 二进制模式的文件I/O 38
4.7.2 ASCII模式的文件I/O 39
4.8 允许打开的文件个数 40
4.9 FCB使用的限制 40
4.10 文件控制使用的限制 40
4.11 为文件分配空间 40
第五章 DOS磁盘的分配 43
5.1 介绍 43
5.2 版本描述 43
5.3 DOS的区域 43
5.4 引导记录 44
5.5 DOS文件分配表(FAT) 44
5.5.1 如何用12位的FAT表项 45
5.5.2 如何用16位的FAT表项 46
5.6 DOS磁盘目录 46
5.6.1 目录表项 46
5.7 数据区 48
第六章 DOS的中断和功能调用 51
6.1 介绍 51
6.2 版本描述 51
6.3 DOS的寄存器 52
6.4 扩充ASCII码 53
6.5 中断 54
6.5.1 20H 程序终结 54
6.5.2 21H 功能需求 55
6.5.3 22H 终结地址 55
6.5.4 23H Ctrl-Break退出地址 55
6.5.5 24H 严重出错处理程序向量 55
6.5.6 25H 绝对磁盘读 59
6.5.7 26H 绝对磁盘写 60
6.5.8 27H 终结但仍然常驻 60
6.5.9 28H-2EH 为DOS保留 61
6.5.10 2FH 多重中断 61
6.5.11 30H-3FH 为DOS保留 64
6.6 功能调用 64
6.6.1 功能调用列表 65
6.6.2 DOS内部的栈 66
6.6.3 出错返回信息 66
6.6.4 ASCIIZ字符串 70
6.6.5 网络路径 71
6.6.6 网络访问权 71
6.6.7 文件控制 71
6.6.8 使用DOS功能 71
6.6.8.1 00H 程序终结 73
6.6.8.2 01H 键盘输入 73
6.6.8.3 02H 显示输出 74
6.6.8.4 03H 附加输入 74
6.6.8.5 04H 附加输出 74
6.6.8.6 05H 打印机输出 75
6.6.8.7 06H 控制台直接I/O 75
6.6.8.8 07H 控制台直接无回显输入 76
6.6.8.9 08H 控制台无回显输入 76
6.6.8.10 09H 打印字符串 76
6.6.8.11 0AH 带缓冲区的键盘输入 77
6.6.8.12 0BH 检查标准输入状态 77
6.6.8.13 0CH 清键盘缓冲区并调用一个键盘功能 78
6.6.8.14 0DH 磁盘重置 78
6.6.8.15 0EH 选择磁盘 79
6.6.8.16 0FH 打开文件 79
6.6.8.17 10H 关闭文件 80
6.6.8.18 11H 找第一个表项 80
6.6.8.19 12H 找下一个表项 81
6.6.8.20 13H 删除文件 82
6.6.8.21 14H 顺序读 82
6.6.8.22 15H 顺序写 83
6.6.8.23 16H 创建文件 83
6.6.8.24 17H 重命名文件 84
6.6.8.25 19H 当前磁盘 84
6.6.8.26 1AH 置磁盘传送地址 85
6.6.8.27 1BH 分配表信息 85
6.6.8.28 1CH 指定设备的分配表信息 86
6.6.8.29 21H 随机读 86
6.6.8.30 22H 随机写 87
6.6.8.31 23H 文件大小 87
6.6.8.32 24H 置相对记录字段 88
6.6.8.33 25H 置中断向量 88
6.6.8.34 26H 创建新程序段 89
6.6.8.35 27H 随机块读出 89
6.6.8.36 28H 随机块写入 90
6.6.8.37 29H 解析文件名 91
6.6.8.38 2AH 获取日期 92
6.6.8.39 2BH 置日期 92
6.6.8.40 2CH 获取时间 93
6.6.8.41 2DH 置时间 93
6.6.8.42 2EH 置或重置确认开关 94
6.6.8.43 2FH 获取磁盘传送地址(DTA) 95
6.6.8.44 30H 获取DOS版本号 95
6.6.8.45 31H 终结进程但仍常驻 95
6.6.8.46 33H Ctrl-Break检查 96
6.6.8.47 35H 获取向量 97
6.6.8.48 36H 获取磁盘未用空间 97
6.6.8.49 38H (DOS2.10)返回有关国家的信息 98
6.6.8.50 38H (DOS3.00和3.10)置或获取有关国家的信息 98
6.6.8.51 39H 创建子目录(MKDIR) 101
6.6.8.52 3AH 删除子目录(RMDIR) 102
6.6.8.53 3BH 改变当前目录(CHDIR) 103
6.6.8.54 3CH 创建文件(CREAT) 103
6.6.8.55 3DH (DOS2.10)打开文件 104
6.6.8.56 3DH (DOS3.00和3.10)打开文件 104
6.6.8.57 3EH 关闭文件控制 110
6.6.8.58 3FH 从文件或设备读 111
6.6.8.59 40H 写到文件或设备 111
6.6.8.60 41H 从指定目录删除文件(UNLINK) 112
6.6.8.61 42H 移动文件读写指针(LSEEK) 113
6.6.8.62 43H 改变文件模式(CHMOD) 114
6.6.8.63 44H 设备的I/O控制(IOCTL) 115
6.6.8.64 45H 复制文件控制(DUP) 118
6.6.8.65 46H 强迫复制文件控制(FORCDUP) 119
6.6.8.66 47H 获取当前目录 119
6.6.8.67 48H 分配内存 120
6.6.8.68 49H 释放已分配的内存 121
6.6.8.69 4AH 修改分配的内存块(SETBLOCK) 121
6.6.8.70 4BH 装入或执行程序(EXEC) 122
6.6.8.71 4CH 终止进程(EXIT) 124
6.6.8.72 4DH 获取子进程的返回码(WAIT) 124
6.6.8.73 4EH 找第一个匹配文件(FIND FIRST) 125
6.6.8.74 4FH 找下一个匹配文件(FIND NEXT) 126
6.6.8.75 54H 获取确认开关 126
6.6.8.76 56H 重命名文件 127
6.6.8.77 57H 获取或置文件的日期和时间 127
6.6.8.78 59H (DOS3.00和3.10)获取扩充错 128
6.6.8.79 5AH (DOS3.00和3.10)创建唯一性文件 129
6.6.8.80 5BH (DOS3.00和3.1 0)创建新文件 130
6.6.8.81 5CH (D0S3.00和3.10)文件访问的封锁与解锁 131
6.6.8.82 5E00H (DOS3.10)获取机器名 132
6.6.8.83 5E02H (DOS3.10)置打印机参数 133
6.6.8.84 5E03H (DOS3.10)获取打印机参数 134
6.6.8.85 5F02H (DOS3.10)获取重定向表表项 134
6.6.8.86 5F03H (DOS3.10)设备重定向 135
6.6.8.87 5F04H (DOS3.10)中止重定向 137
6.6.8.88 62H (DOS3.00和3.10)获取程序段前缀地址 138
第七章 DOS的控制块和工作区 139
7.1 介绍 139
7.2 DOS内存映象图 139
7.3 DOS程序段 140
7.4 程序段前缀 142
7.5 文件控制块 144
7.5.1 标准的文件控制块 144
7.5.2 扩充的文件控制块 145
第八章 在应用程序中执行命令 147
8.1 介绍 147
8.2 调用命令处理程序 147
第九章 硬盘信息 149
9.1 介绍 149
9.2 硬盘结构 149
9.3 系统初始化 149
9.4 引导记录和部分表 150
9.5 硬盘技术信息 151
9.6 决定硬盘的分配 153
第十章 EXE文件结构和装入 155
10.1 介绍 155
10.2 EXE文件结构 155
10.3 重定位表 156
第十一章 DOS存贮管理 159
11.1 介绍 159
11.2 控制块 159