20070706

如何对DOS进行系统配置以获得更多常规内存

Author:  WinkCategories:  Windows
Tags:  , ,

忘了最初转于哪里了,作者多担待。在制作DOS启动盘的时候,经常苦恼很多程序出现内存不足的错误,所以需要解决常规内存占用浪费的问题。

DOS环境下的大部分程序都是在常规内存中运行,如果某个程序由于内存不够而运行失败,最常见的问题就是常规内存不足。先介绍几种常用的释放常规内存的方法:

一. 当系统配置有扩展内存时,可以将DOS的大部分代码和command.com的暂驻内存部分安装在高内存区(HMA)。

这要求在config.sys中包含有下述命令:

device=Himem.sys
dos=high

虽然himem.sys本身也要占用少量的常规内存,但是使用HMA将节省出更多的常规内存。

二. 精简config.sys和autoexec.bat文件的内容,不启动那些不必要的内存驻留程序,这些内存驻留程序往往占用很多常规内存。

如果config.sys文件中含有安装smartdrv.exe或ramdrive.sys的device命令,可以取消它们以节省常规内存。特别是smartdrv.exe要使用大量的常规内存。如果一定要使用ramdrive.sys,应保证RAM盘建在扩展内存中,而不是在常规内存中。

如果config.sys文件含有buffers命令,应减少buffers指定的磁盘缓冲区数目,每一个缓冲区会占用532个字节的常规内存。但是过多地减少盘缓冲区的个数会造成一些程序不能正常运行,一般buffers不宜小于15。

如果config.sys文件中包含lastdriver命令,取消该命令或将lastdriver设成J或K,而不要设成Z。因为DOS为每个允许访问的逻辑驱动器在内存中建立一个对应的管理块CDS,每个CDS大约占用80多个字节的常规内存。

config.sys文件中的device和devicehigh命令的次序是很重要的,它将影响内存的有效使用和config.sys启动时的一系列程序的正确运行。在config.sys文件中最好按以下次序安装设备驱动程序:

  1. himem.sys;
  2. 使用扩展内存的的设备驱动程序;
  3. emm386.exe,如果使用emm386仿真扩充内存并提供对高内存块(UMBs)的存取功能,那么EMM386命令行应包括RAM开关而不用NOEMS。NOEMS禁止emm386.exe仿真扩充内存,但是它为安装设备驱动程序和运行其它程序提供最大的可用高内存块;
  4. 使用扩充内存的的设备驱动程序;
  5. 使用高内存块(UMBs)的设备驱动程序。

对于autoexec.bat的建议是:去掉用户不需要的那些内存驻留程序;如果只在Windows中使用鼠标,不要安装任何鼠标设备驱动程序,比如mouse.com,因为Windows有一个内置的鼠标设备驱动程序。

三. 尽可能地在高端内存区(UMB)中安装设备驱动程序和运行其它的内存驻留程序。

现在看看如何进行系统配置:

由于软件的增多,而不同软件所需的系统配置并不相同,致使需要经常改变配置,如果每次都改写config.sys是相当麻烦的,于是DOS设计了菜单式多重任务选择的配置,就方便多了,比如有些游戏无需扩展内存,有些又必须有扩展内存,有些汉字系统还必须设置虚拟盘等,采用多重设置将是一劳永逸的事。

例如:

[menu]
menuitem=nomal,nomal configuration	;设置第一种配置
menuitem=myself,configuration for myself	;设置第二种配置
menudefault=nomal,5	;设置默认的配置和自动选择的时间
menucolor=15,1	;设置菜单的颜色

[nomal]	;此处为第一种配置,[]中的内容需与menuitem后的字符相同
files=30
buffers=30
device=c:\dos\hime.sys
device=c:\dos\emm386.exe ram
lastdrive=z

[myself]	;此处为第二种配置
files=35
buffers=20
device=c:\dos\hime.sys
device=c:\dos\emm386.exe noems

[common]	;[]中为common则表示此处为各种配置都使用到的配置项
dos=high,umb

其中[menu]区中为菜单的设计:menuitem表示设置对应的配置区,可以有多个配置区,逗号后是菜单上显示的内容;menudefault设置默认的菜单选项,逗号后是自动选择的时间;menucolor设置菜单颜色,逗号前为文字色,后为背景色。这样在电脑启动时,就会有菜单显示以供用户选择了。

对应地,在autoexec.bat中也可以进行多任务选择,比如:

@ECHO OFF

PROMPT $p$g
set blaster=a220 i5 d1	;此处为公用设置区
set temp=c:\dos\temp
goto %config%	;转至标号%config%,其中%config%的值是由选择某一菜单项时自动确定的

:nomal	;此处为对应的第一个设置,“:”后的字符需与config.sys中的配置区名相同
LH /L:0;1,45456 /S C:\DOS\SMARTDRV.EXE
PATH C:\WINDOWS;C:\DOS;C:\UCDOS;c:\tools;c:\tools\vpic
lh c:\mouse\amouse.com
goto end

:myself	;此处为对应的第二个设置
PATH C:\DOS;c:\tools
lh c:\mouse\amouse.com
goto end

:end

You can follow any responses to this entry through the RSS 2.0 feed. Both comments and pings are currently closed.

Comments are closed.

Back to Page Top