第一章 内存结构与优化 1
1.1 PC机内存结构分析 1
1.1.1 存储器的分类 1
1.1.2 CPU的寻址能力 2
1.1.3 各种内存 3
1.1.4 内存地址空间和物理内存 9
1.1.5 虚拟内存 10
1.2 内存管理 11
1.2.1 内存控制块MCB的结构 11
1.2.2 内存分配策略 12
1.2.3 内存块的分配、释放与修改 13
1.2.4 COM文件和.EXE文件的结构 13
1.2.5 程序段前缀 16
1.2.6 环境块 17
1.2.7 应用程序的内存分配 19
1.3 内存管理驱动程序 20
1.3.1 HIMEM.SYS 20
1.3.2 EMM386.EXE 22
1.4 扩展内存和扩充内存的使用 24
1.4.1 有关的DOS命令 24
1.4.2 扩展内存和扩充内存的应用 29
1.4.3 系统配置文件设计示例 30
1.4.4 多路配置 30
1.4.5 简化CONFIG.SYS和AUTOEXEC.BAT的原则 32
1.4.6 适当选择参数扩展内存 32
1.4.7 内存使用情况的显示 33
1.5 常用内存管理工具 35
1.5.1 QEMM 35
1.5.3 内存增容工具SOFTRAM 95 37
1.5.2 内存管理工具LAYER.COM 37
1.5.4 TSR装卸工具MARK 38
1.6 扩展内存的配置 39
1.6.1 内存条的种类 39
1.6.2 内存条的选择 39
1.6.3 内存条的识别 40
1.6.4 根据不同需求确定扩展内存的大小 41
1.6.5 内存条的安装 41
1.7 内存技术的发展 41
1.7.1 多级Cache技术 42
1.7.2 FPM、EDORAM和突发式RAM 42
1.7.3 同步RAM和Cache RAM 43
1.7.4 Flash Memory和铁电体RAM(FRAM) 43
1.7.6 图形和视频用RAM 44
1.7.5 智能RAM 44
1.7.7 不断发展的RAM技术 45
第二章 缓冲存储区 47
2.1 磁盘缓冲区 47
2.1.1 缓冲区概述 47
2.1.2 BUFFERS命令 49
2.1.3 磁盘缓冲区的结构 49
2.1.4 磁盘缓冲区链 51
2.1.5 缓冲区个数的最佳设置 52
2.1.6 读写缓冲区及关闭文件的重要性 53
2.1.7 随机/顺序应用程序缓冲区的分配 54
2.2 高速缓冲存储器Cache 54
2.2.1 高速缓冲存储器Cache的工作原理 54
2.2.2 PC机的Cache存储器 56
2.2.3 Cache的检测 57
2.2.4 磁盘高速缓冲存储器 58
2.3.1 键盘缓冲区的概念 59
2.3 键盘缓冲区 59
2.3.2 键盘缓冲区的工作原理 60
2.3.3 键盘缓冲区应用示例 60
2.4 其它缓冲区 64
2.4.1 打印机缓冲区 64
2.4.2 硬盘缓冲存储器 66
第三章 显示存储器 69
3.1 屏幕与显示适配器概述 70
3.1.1 单色显示适配器 70
3.1.2 CGA卡 70
3.1.3 EGA卡 70
3.1.4 VGA卡 71
3.1.5 Super VGA图形适配器 72
3.1.6 XGA卡 73
3.1.7 图形加速卡 74
3.2.1 显示卡 75
3.2 显示卡和显示器的有关指标 75
3.2.2 显示器 77
3.3 PC机的显示缓冲存储器和显示方式 79
3.3.1 PC机字符显示方式 79
3.3.2 PC机图形显示方式 82
3.3.3 VGA在不同显示模式下显示缓冲区的使用 82
3.4 TVGA图像模式及应用 84
3.4.1 图像模式及视频存储器 84
3.4.2 图像模式下显示存储器的结构 85
3.4.3 TVGA中DAC寄存器 86
3.4.4 对TVGA卡编程 87
3.4.5 检测TVGA卡的视频存储器容量 87
3.4.6 VGA两种特殊模式的应用 89
3.5 VESA标准 93
3.5.2 VESA的BIOS功能 94
3.5.1 VESA的显示模式和特点 94
3.5.3 VESA的分页映射机制 96
3.6 直接写屏 96
3.6.1 SVGA的256色屏幕读写技术 97
3.6.2 汉字系统的直接写屏 99
第四章 扩展内存和扩充内存的应用 101
4.1 有关扩展内存XMS的功能调用 101
4.1.1 XMS功能调用概述 101
4.1.2 XMS错误代码综述 102
4.1.3 XMS功能调用详解 102
4.2 有关扩充内存EMS的功能调用 107
4.2.1 EMS功能调用概述 107
4.2.2 EMS错误代码综述 109
4.2.3 EMS功能调用详解 109
4.3 基于扩展内存和扩充内存的编程实例 129
4.4 UMB在应用程序中的使用 139
第五章 设备驱动程序 145
5.1 设备驱动程序概述 145
5.1.1 DOS设备驱动程序的功能 145
5.1.2 DOS设备驱动程序的分类 146
5.2 设备驱动程序结构分析 147
5.2.1 设备头 147
5.2.2 策略过程 150
5.2.3 中断过程 151
5.3 DOS对设备驱动程序的管理 152
5.3.1 常驻设备驱动程序链 152
5.3.2 DOS对可安装设备驱动程序的管理 152
5.3.3 块设备参数块及链表 153
5.3.4 设备驱动程序链的作用 155
5.3.5 DOS对设备驱动程序的加载和调用 155
5.3.6 不启动安装设备驱动程序 156
5.4.1 编写DOS设备驱动程序的有关约定 157
5.4 设备驱动程序的设计 157
5.4.2 设备驱动程序设计实例 158
5.5 查询内存中的设备驱动程序 161
第六章 驻留内存程序TSR 163
6.1 驻留内存程序TSR的设计思想 163
6.1.1 TSR程序概述 163
6.1.2 TSR程序与几个重要中断的关系 164
6.1.3 使程序结束并驻留内存的两个DOS功能 166
6.1.4 TSR驻留程序设计要点 167
6.1.5 一个TSR程序实例 169
6.2 TSR程序安全运行的策略 171
6.2.1 DOS的不可重入性 171
6.2.2 在TSR程序中解决DOS重入问题的方法 171
6.2.3 数据现场的保护 172
6.3 程序驻留内存的方法 173
6.4 TSR程序设计的技巧 176
6.4.1 查询内存驻留程序 176
6.4.2 TSR的隐蔽驻留 179
6.4.3 自身具有撤离功能的TSR程序设计 181
6.4.4 避免TSR重复驻留 184
6.5 TSR对其它软件的影响 188
6.6 TSR程序的撤离 190
6.6.1 动态释放SPDOS 5.10占用的内存 190
6.6.2 动态释放TSR 192
第七章 常用软件环境的内存需求 209
7.1 WINDOWS运行对内存的需求 209
7.1.1 WINDOWS中的虚拟内存 209
7.1.2 结合调整内存和磁盘优化系统 210
7.1.3 实用的配置文件和自动批处理文件 210
7.1.4 充分利用系统资源提高WINDOWS的稳定性 212
7.1.5 WINDOWS 95需要多少内存 214
7.1.6 WINDOWS 95系统的设置和优化 215
7.2 UCDOS的内存需求与优化 216
7.2.1 系统设置与优化 216
7.2.2 系统基本操作 217
7.2.3 UCDOS 6.0的内存管理新技术 218
7.3 SPDOS下内存的合理使用 220
7.3.1 SPDOS 5.10占用内存情况 220
7.3.2 SPDOS 5.10对内存的最低要求 220
7.3.3 提高SPDOS 5.10的运行效率的途径 221
7.3.4 不同内存配置下SPDOS 5.10系统的安装 221
7.4 NetWare 386内存管理技术 223
7.4.1 NetWare存储器类型 223
7.4.2 NetWare对内存容量的需求 224
7.4.3 NetWare的内存使用优化 225
7.5 汇编语言程序的动态分配内存 226
7.6 C语言程序环境的内存使用 231
7.6.1 内存模式 231
7.6.2 动态内存管理 232
7.7 关系数据库FoxBASE环境的内存配置 235
7.7.1 FoxBASE的内存需求 235
7.7.2 FoxBASE环境的内存设置 235
7.7.3 小内存微机运行FoxBASE 237
7.7.4 内存变量 238
7.8 关系数据库FoxPro环境的内存配置 239
7.8.1 FoxPro环境的内存需求 239
7.8.2 FoxPro 2.5 For DOS的内存需求 239
7.8.3 FoxPro 2.5 For WINDOWS的内存需求与使用 241
7.8.4 CONFIG.FP中关于内存配置的命令 243
7.8.5 FoxPro下内存不足故障的处理 244
8.1.1 ROM BIOS和CMOS RAM芯片 247
8.1 基本概念 247
第八章 CMOS参数设置及应用 247
8.1.2 IRQ和DMA 249
8.2 AMIBIOS CMOS数据分析 250
8.2.1 CMOS的SETUP 251
8.2.2 标准CMOS设置 251
8.2.3 高级CMOS设置 252
8.2.4 CMOS数据各字节含义 252
8.3 AMI图形界面WinBIOS的参数设置 257
8.3.1 启动WinBIOS设置程序 257
8.3.2 Setup(系统设置) 258
8.3.3 UTILITY SETUP(实用设置) 265
8.3.4 SECURITY(安全设置) 265
8.4.1 AWARDBIOS设置程序主菜单 266
8.4 AWORDBIOS设置及分析 266
8.3.6 退出WinBIOS系统设置程序 266
8.3.5 DEFAULT(缺省值设置) 266
8.4.2 STANDARD CMOS SETUP(标准设置) 268
8.4.3 BIOS FEATURES SETUP(BIOS特性设置) 270
8.4.4 CHIPSET FEATURES SETUP(芯片特性设置) 271
8.4.5 POWER MANAGEMENT SETUP(电源管理设置) 273
8.4.6 PCI CONFIGURATION SETUP(PCI配置设置) 274
8.4.7 PNP CONFIGURATION SETUP(PNP配置设置) 274
8.4.8 口令设置 275
8.5 CMOS的维护和应用 276
8.5.1 CMOS的应用 276
8.5.2 CMOS数据的读取和恢复 277
第九章 内存管理技巧及内存故障的排除 283
9.1 有关内存故障的排除 283
9.1.1 CMOS的设置应与内存条一致 283
9.1.4 高速缓存的设置 284
9.1.3 设置影子内存,提高输出速度 284
9.1.2 非硬件原因引起的内存丢失 284
9.1.5 用“REM”解决执行MEMMAKER引起的死机 285
9.1.6 内存故障引起的死机现象 285
9.1.7 扩展内存使用不当而引起的故障 286
9.1.8 用替换法检修Cache 287
9.1.9 并非由病毒引起的内存减少 287
9.1.10 调换键盘出现的故障 288
9.1.11 EMM386与网卡冲突故障 288
9.1.12 “Packed file corrupt”故障 289
9.1.13 由VRAM引起的故障 290
9.1.14 由HIMEM.SYS设置引起的故障 290
9.1.15 处理内存冲突故障的一般方法 291
9.1.16 WINDOWS环境的内存管理冲突故障 293
9.2 根据需求优化内存 296
9.2.1 内存1MB的286或386SX 296
9.2.2 2MB到4MB内存的386和486 297
9.2.3 8MB以上内存 299
9.3 内存覆盖技术 299
9.3.1 内存覆盖技术简介 299
9.3.2 如何编写覆盖程序 300
9.3.3 覆盖程序的加载 300
9.3.4 覆盖程序的执行 301
9.4 其它技巧 303
9.4.1 充分利用HMA 303
9.4.2 键的软修复 305
9.4.3 在热启动中彻底清除内存 306
9.4.4 不增加硬件扩充PC机内存的方法 308
9.4.5 恢复内存中的文本文件 310
9.4.6 压缩的虚拟磁盘 313
附录一 BIOS数据区 315
附录二 DEBUG命令一览表 321