中国DOS联盟论坛

中国DOS联盟

-- 联合DOS 推动DOS 发展DOS --

联盟域名:www.cn-dos.net  论坛域名:www.cn-dos.net/forum
DOS,代表着自由开放与发展,我们努力起来,学习FreeDOS和Linux的自由开放与GNU精神,共同创造和发展美好的自由与GNU GPL世界吧!

游客:  注册 | 登录 | 命令行 | 会员 | 搜索 | 上传 | 帮助 »
作者:
标题: [求助]请问:有关内存配置 上一主题 | 下一主题
E140
初级用户




积分 133
发帖 12
注册 2003-8-9
状态 离线
『楼 主』:  [求助]请问:有关内存配置

device=himem.sys /testmemff
device=emm386.exe noems novcpi i=b000-b7ff

这两行后的这些参数是什么含意?
另外,在启动盘中在哪些情况下必须装载emm386.exe?不用它行吗?


[此贴子已经被作者于2003-10-2 18:43:08编辑过]




2003-10-2 00:00
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
iceboy
银牌会员




积分 1681
发帖 512
注册 2003-8-2
状态 离线
『第 2 楼』:  

HIMEM.SYS:

HIMEM 是一个扩展内存管理程序,该程序协调计算机扩展内存
(其中包括高端内存区HMA)的使用,使得在同一时间内没有
两个程序或设备驱动程序使用相同的内存。Windows 98 需要
Himem.sys 启动 Windows。如果没有显示 Config.sys 文件,
Himem.sys 将无提示加载该文件。Himem.sys 还提供对高端
内存的访问(大于 640 K)。

通过向 CONFIG.SYS 文件中添加一条有关 HIMEM.SYS 的 DEVICE
命令可以安装HIMEM。HIMEM.SYS 命令行必须位于启动使用扩展
内存的程序或设备驱动程序的任何命令之前。例如:HIMEM.SYS
命令行必须位于 EMM386.EXE 命令行之前。

语法

    DEVICE=[驱动器:][路径]HIMEM.SYS [/A20CONTROL:ON|OFF]
               [/CPUCLOCK:ON|OFF]
    [/EISA] [/HMAMIN=m] [/INT15=xxxx] [/MACHINE:xxxx]
               [/NOABOVE16] [/NOEISA]
    [/NUMHANDLES=n] [/SHADOWRAM:ON|OFF] [/TESTMEM:ON|OFF]
               [/VERBOSE] [/X]

在大多数情况下,您无需指定命令行选项,因为 HIMEM.SYS 的默
认值被设计为能在大多数硬件下工作。

参数

[驱动器:][路径]
    指定 HIMEM.SYS 文件的位置。HIMEM.SYS 通常应该与 MS-DOS
文件位于同一个盘中。如果 HIMEM.SYS 文件位于启动盘的根目录下,
则无需包含路径。但是,通常情况下,您必须包含完整的路径。

选项

/A20CONTROL:ON|OFF
    指定即使加载 HIMEM 时 A20 处于启用状态是否由 HIMEM
来控制 A20 地址线。A20 处理程序使计算机能够访问 HMA 。
如果指定 /A20CONTROL:OFF,则只有在加载HIMEM 且 A20 处于
关闭状态时,HIMEM 才能控制 A20 地址线,默认设置为
/A20CONTROL:ON。

/CPUCLOCK:ON|OFF
    指定 HIMEM 是否影响计算机的时钟速度。如果安装 HIMEM
时计算机的时钟速度改变,则指定 /CPUCLOCK:ON 可以解决该
问题。然而,这将减慢 HIMEM 的运行速度。默认设置为
/CPUCLOCK:OFF。

/EISA
    指定 HIMEM 应该分配所有可用的扩展内存。该选项只有在具有
16MB 以上内存的 EISA(扩展工业标准结构)计算机上才是必要的,
在其它计算机上,HIMEM 自动分配所有的可用扩展内存。

/HMAMIN=m
    指定程序必须要求 HIMEM 为该程序分配多少千字节的 HMA
内存使用。在某个时间内,只能有一个程序使用 HMA。HIMEM 将
HMA 分配给符合该选顶设置的内存使用要求的第一个程序。可以
为该选项指定 0 至 63 的值。

    将/HMAMIN 设置为使用大多数 HMA 内存的程序要求的内存数。

    /HMAMIN 选项是不必要的,其默认值为 1。忽略该选项
(或将其设置为 0)则表明 HIMEM将 HMA 分配给第一个要求
使用它的程序,而不管该程序将使用 HMA 的大小。

    在 386 增强模式下运行 Windows 时,/HMAMIN 选项将不起作用。


/INT15=xxxx
    为中断 15h 接口所保留的扩展内存数,以千字节为单位。
某些老的程序使用中断15h接口来分配扩展内存,而不使用 HIMEM
提供的 XMS(扩展内存规范)。如果您使用的是这些老程序,可
以将 xxxx 设置为 64KB。这个数大于程序对内存的要求可以保证
程序有足够的可用内存。

    可以指定 64 至 65535 之间的值,但此值不能超过系统可以
使用的内存。如果指定的值小于 64,则此值为 0,默认值为 0。

/MACHINE:xxxx
    指定正在使用的计算机类型。通常情况下,HIMEM 可以成功
地检测到您的计算机类型,但是,HIMEM 无法检测到某些计算机。
在这样的系统上,HIMEM 使用默认的系统类型(IBM AT 或其兼容
机型)。
    如果 HIMEM 不能检测到您的计算机的类型,或者您指定默
认的系统类型时,HIMEM 无法正常工作,则需要包含 /MACHINE 选项。

    目前,需要此选项的系统包括 Acer 1100,Wyse 和 IBM 7552。

    xxxx 的值可以是下表列出的任意一个代码或等价的数字。

代码         数字  计算机类型
-----------------------------------------------------

at           1       IBM AT 或完全兼容型计算机

ps2          2       IBM PS/2

ptlcascade   3       Phoenix Cascade BIOS

hpvectra     4       HP Vectra (A & A+)

att6300plus  5       AT&T 6300 Plus

acer1100     6       Acer 1100

toshiba      7       Toshiba 1600 & 1200XE

wyse         8       Wyse 12.5 Mhz 286

tulip        9       Tulip SX

zenith       10      Zenith ZBIOS

at1          11      IBM PC/AT(后续产品)

at2          12      IBM PC/AT(后续产品)

css          12      CSS Labs

at3          13      IBM PC/AT(后续产品)

philips      13      Philips

fasthp       14      HP Vectra

ibm7552      15      IBM 7552 工业用计算机

bullmicral   16      Bull Micral 60

dell         17      Dell XBIOS


/NOABOVE16
    指定不使用 INT 15h (AX=E801h) Compaq Bigmem 支持来扫
描扩展内存。

/NOEISA
    指定 HIMEM 对扩展内存不做 EISA 扫描。

/NUMHANDLES=n
    指定可以同时使用的扩展内存块 (EMB) 句柄的最大数目。
您可以指定 1 至 128之间的值,默认值为 32。每个附加的句
柄都要求额外的 6 字节内存。

    在 386 增强模式下运行 Windows 时,/NUMHANDLES 选项
不起作用。

/SHADOWRAM:ON|OFF
    指定是否禁用保护 RAM( SHADOWRAM: OFF) 或允许 ROM
代码从 RAM 开始运行(SHADOWRAM:ON)。

    某些计算机通过在 ROM 中进行“shadowing”而使 ROM
代码更快地运行,也就是说,在启动时将 ROM 代码复制到更
快的 RAM 内存中,但这将占用一些扩展内存。在那些使用保
护 RAM 并且 RAM 少于 2 MB 的计算机上,HIMEM 一般通过
禁用 Shadow RAM 来恢复附加的扩展内存以供 Windows 使用。
(HIMEM 只能在某些类型的系统上禁用 Shadow RAM)。当
HIMEM 禁用 Shadow RAM 时,ROM 代码将运行在较慢的 ROM 上,
而不是在 RAM 上,因此,计算机也许比以前运行稍慢一些。

/TESTMEM:ON|OFF
    确定在启动计算机时 HIMEM 是否执行内存测试。默认情况
下,每次计算机启动时,HIMEM 测试计算机扩展内存的可靠性。
该测试能识别不再可靠的内存。不可靠的内存能引起系统的不
稳定性或数据的丢失。HIMEM 的内存测试比大多数计算机上执
行的标准加电内存测试更完全彻底。要想使 HIMEM 不执行内存
测试,就指定/TESTMEM:OFF 。禁用内存测试将缩短启动过程。
(默认设置为/TESTMEM:ON)。

/VERBOSE
    在加载过程中使 HIMEM 显示状态和错误信息。默认时,
除非遇到错误,否则 HIMEM 不显示任何信息。/VERBOSE
可以缩写成/V。(要想在不添加 /VERBOSE 选项的情况下显示
状态信息,请在 HIMEM 启动和加载时始终按住 ALT 键。)

/X
    指定不使用 INT15h(ax=E820h),INT15h 是新的扩
展内存支持 API。



EMM386.EXE:

提供对上端内存区的访问,并用扩展内存模拟扩充内存。
该设备驱动程序必须由位于 CONFIG.SYS 文件中的 DEVICE
命令加载,而且只能在 80386 或更高级的处理器上使用。

EMM386 还能够将程序和设备驱动程序加载到上端内存块(UMB)。

语法

    DEVICE=[驱动器:][路径]EMM386.EXE [ON|OFF|AUTO] [内存] [MIN=大小]
    [W=ON|W=OFF] [Mx|FRAME=地址|/Pmmmm] [Pn=地址] [X=mmmm-nnnn]
    [I=mmmm-nnnn] [B=地址] [L=minXMS] [A=altregs] [H=handles] [D=nnn]
    [RAM=mmmm-nnnn] [NOEMS] [NOVCPI] [HIGHSCAN] [VERBOSE] [WIN=mmmm-nnnn]
    [NOHI] [ROM=mmmm-nnnn] [NOMOVEXBDA] [ALTBOOT] [NOBACKFILL]

参数

[驱动器:][路径]
    指定 EMM386.exe 文件的位置。

[ON|OFF|AUTO]
    激活 EMM386 设备驱动程序(若设置为 ON);或挂起
EMM386 设备驱动程序(若设置为OFF); 或将 EMM386 设
备驱动程序置为自动模式(若设置为 AUTO)。只有程序调
用上端内存时,自动模式才启用扩充内存支持和上端内存
支持。该参数的默认值为 ON,在 EMM386 启动后,可以
使用 EMM386 命令来改变该值的设置。

内存
    指定 EMM386 提供的作为扩充内存(EMS)或虚拟控制
程序接口内存(VCPI)的扩展内存的最大值(以千字节为
单位)。该值不包括 UMB 和 EMM386 本身使用的内存,
范围最小为 64,最大为 32768 与 EMM386 被加载后可
用扩展内存数目两者之间较小的那个,默认值为可用扩
展内存数,但是,当 NOEMS 选项被指定后,默认值为0。
EMM386 按最接近于 16 的倍数取值。

选项

MIN=大小
    指定 EMM386 提供的 EMS/VCPI 内存的最小值(以千字
节为单位),当然是在该值存在的前提下。当 EMM386 被位
于 CONFIG.SYS 文件中的 DEVICE=EMM386.EXE 命令加载后,
EMM386 将该数量的扩展内存留作 EMS/VCPI 内存使用。当
一个程序要求 EMS/ VCPI 内存时,如果有足够的 XMS 内存,
则 EMM386 也许能提供另外的EMS/VCPI 内存(最多到“内
存”参数指定的数量)。该最小值的范围为 0 至“内存”
参数指定的数值,默认值为 256。若指定 NOEMS 选项,则
默认值为 0。如果 MIN 指定的值大于“内存”指定的值,
则 EMM386 使用 MIN 指定的值。

W=ON|W=OFF
    启用或禁用对 Weitek 协处理器的支持。默认设置为 W=OFF。

Mx
    指定页框的地址。 x 的取值范围为 1 到 14 。下表
显示的是每个值及其相关基址,是以 16 进制表示的。

            1 => C000h     8 => DC00h
            2 => C400h     9 => E000h
            3 => C800h    10 => 8000h
            4 => CC00h    11 => 8400h
            5 => D000h    12 => 8800h
            6 => D400h    13 => 8C00h
            7 => D800h    14 => 9000h

    值 10 到 14 只能在具有 512K 内存的计算机上使用。

FRAME=地址
    直接指定页框段基址。要想为页框指定一个特定的段
基地址,请使用 FRAME 选项并指定所需的地址。地址
的有效值范围为 8000h 至 9000h 和 C000h 至 E000h,
增量为 400h。要提供扩充内存并禁用页框,可以指定
FRAME=NONE,但是,该设置也许会导致使用扩充内存
的某些程序不能正常工作。


/Pmmmm
    指定页框的地址。mmmm 的有效值范围为 8000h 至
9000h 和 C000h 至 E000h,增量为 400h。

Pn=地址
    指定一个特定页的段地址,其中:n 为被指定页的
页号,address 为所需的段地址,n 的有效值范围为 0
至 255;address 的有效值范围为 8000h 至 9C00h 和
C000h 至 EC00h,增量为 400h。为了与 3.2 版的
Lotus/Intel/Microsoft 扩充内存约定 (LIM EMS) 保持
兼容,第 0 至第 3 页的地址必须连续。如果使用了
Mx、FRAME 或 /Pmmmm 选项,则不能为 /Pmmmm 选项指
定第 0 至第 3 页的地址。

X=mmmm-nnnn
    对于 EMS 页或 UMB ,阻止 EMM386 使用一个特定
范围的段地址。mmmm 和 nnnn 的有效值范围为 A000h
至 FFFFh ,并向下舍取为能被 4 千字节整除的数。如
果 X 和 I选项两者的值有重叠,则 X 选项优先于 I 选
项。

I=mmmm-nnnn
    指定用于(包含在)EMS 页或 UMB 中的段地址范围。
mmmm 和 nnnn 的有效值范围为 A000h 至 FFFFh,并
向下舍取为能被 4 千字节整除的数。如果 X 选项和 I
选项两者有重叠,则 X 选项优于 I 选项。

B=地址
    指定 EMS“存储体”(16KB 页的交换体)可以使用
的最低段地址。有效值范围为 1000h 至 4000h ,默认
值为 4000h 。

l=minXMS
    确保在 EMM386 被加载后,被指定的扩展内存(以千
字节为单位)仍可用。默认值为 0。

A=altregs
    指定想分配给 EMM386 的快速交替寄存器组(用于多
任务)的数目。有效值范围为 0 至 254,默认值为 7。
每个交替注册集将增加大约 200 字节到 EMM386 的内存中。

H=handles
    指定 EMM386 能够使用的句柄数目。有效值范围为 2
至 255,默认值为 64。

D=nnn
    指定为缓存的直接内存访问 (DMA) 保留的内存数,以
千字节为单位。扣除软盘DMA,该值应该反应在 EMM386 处
于激活状态时传输的最大 DMA 数。nnn 的有效值范围为 16
至 256,默认值为 32。

RAM=mmmm-nnnn
    指定用于 UMB 的段地址范围,同时启用 EMS 支持。
如果不指定范围,386 将使用所有可用的适配器空间来创
建 UMB 和 EMS 使用的页框。

NOEMS
    提供对上端内存区的访问,但阻止对扩展内存的访问。

NOVCPI
    禁用对 VCPI 程序的支持。该选项必须与 NOEMS 选项一
起使用,如果指定了 NOVCPI选项而没有指定 NOEMS 选项,
则 EMM386 不禁用对 VCPI 的支持;如果指定两个选项,
则 EMM386 将忽略“内存”参数和 MIN 选项。禁用对 VCPI
程序的支持将降低被分配给扩展内存的数量。

HIGHSCAN
    指定 EMM386 使用一个附加的检查来确定作为 UMB 或
EMS 窗口使用的上端内存的可用性。在一些计算机上,此选
项可能不起作用,或者 EMM386 误认为不可用的上端内存都
可以使用,结果导致计算机停止响应。

VERBOSE
    在加载 EMM386 的过程中指示 EMM386 显示状态和错误
信息。按默认规定,EMM386 只有在遇到错误时才显示信息。
VERBOSE 可以被缩写成 V。(要不添加 VERBOSE 选项而显示
状态信息,请在 EMM386 启动和加载时,按下并保持 ALT 键)。

WIN=mmmm-nnnn
    为 Windows 而不是为 EMM386 保留一个段地址的指定范围。
mmmm 和 nnnn 的有效值范围为 A000h 至FFFFh。如果二者的有
效值范围重叠,则 X 选项优先于 WIN 选项,而WIN 选项优先
于 RAM、ROM 和 I 选项。

[NOHI]
    阻止 EMM386 加载到上端内存区。通常,EMM386 的一部分
被加载到上端内存,此选项的指定将降低可用的常规内存,并且
使 UMB 可使用的上端内存增加。

[ROM=mmmm-nnnn]
    指定 EMM386 使用的用于保护 RAM 的段地址范围。RAM 指的
是用于只读内存 (ROM) 的随机访问内存。mmmm 和 nnnn 的有效值
范围为 A000h 至 FFFFh,并向下舍取用最接近于 4 千字节整数倍
的数。如果系统没有保护 RAM,则该选项的指定将加速系统的运行。

[NOMOVEXBDA]
    阻止 EMM386 将扩展的 BIOS 数据从常规内存移至上端内存。

[ALTBOOT]
    当按下 CTRL+ALT+DEL 键时,指定 EMM386 使用替代的处理
程序来重新启动计算机。在加载 EMM386 的过程中,如果计算机
停止响应或显示其它异常性能,则使用该选项,并按下
CTRL+ALT+DEL 键。

[NOBACKFILL]
    将 EMM386 配置为提供上端内存块时(通过使用 NOEMS 或
RAM 选项来提供),EMM386 将自动回占少于 640K 的常规内存,
以便使整个常规内存达到 640K。然而,由于 Windows 不支持回
占的常规内存,因此,如果计算机的常规内存少于 640K,请使用
NOBACKFILL 选项。




Somehow somewhere I've got to choose.
No matter if it is win or lose.
2003-10-2 00:00
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
E140
初级用户




积分 133
发帖 12
注册 2003-8-9
状态 离线
『第 3 楼』:  

谢谢,虽然我不能完全明白.我还是要感谢你的回复.
我再问个直截一点,或者是更菜的一个问题:如我要将某个内存驻留程序加载到上位内存区,是不是就必须要用EMM386.EXE?

2003-10-2 00:00
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
iceboy
银牌会员




积分 1681
发帖 512
注册 2003-8-2
状态 离线
『第 4 楼』:  

只要有 UMB 驱动程序就行,如果不想用保护模式内存管理程序 (EMM),就用 UMBPCI 吧。



Somehow somewhere I've got to choose.
No matter if it is win or lose.
2003-10-5 00:00
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复

请注意:您目前尚未注册或登录,请您注册登录以使用论坛的各项功能,例如发表和回复帖子等。


可打印版本 | 推荐给朋友 | 订阅主题 | 收藏主题



论坛跳转: