Board logo

标题: 使用umb时一小段保留内存无法使用的问题 [打印本页]

作者: shooter     时间: 2007-12-25 15:58    标题: 使用umb时一小段保留内存无法使用的问题

1.
下面是我的config.sys
DEVICE=A:\HIMEM.SYS /TESTMEM:OFF /Q
DEVICE=A:\EMM386.EXE RAM M9 RAM=C800-DFFF I=B000-B7FF
DEVICEHIGH=A:\VIDE-CDD.SYS /D:MSCD001
DOS=HIGH,UMB,AUTO
FILESHIGH=30
BUFFERSHIGH=30,0
STACKSHIGH=9,256
LASTDRIVEHIGH=F

理论上应该获得128k的UMB,但实际只有122k,我用ProView看了一下内存的使用情况,发现B000-B15A这段是unused,5.4k的样子,但我明明指定了I=B000-B7FF(单色显示器的缓冲区),为什么只有这样一小段没有能使用呢?

2.
现在emm386启动要按一下任意键才能继续下去,怎么让他不提示,就像himem加/q参数一样?

[ Last edited by shooter on 2007-12-25 at 03:59 PM ]
作者: DOSforever     时间: 2007-12-25 23:31
两个问题很可能就是一个问题。EMM386 不会随意让你按一下任意键才能继续下去,肯定是你用了不该用的地方,它警告你一下:你要是还是使用,出了事我可不管。你把给你的提示抄上来。
EMM386.EXE 自己要占用一部份 UMB 空间,也就是几K。ProView 没怎么用过,你用 MSD 查看一下,是不是这段空间也是显示为 unused ?
作者: shooter     时间: 2007-12-26 16:37
这两个的确不是同一个问题,但都涉及到emm386

1.用msd,这一小段显示为RAM,B000-B8FF也是RAM(这段应该是彩显缓冲,没有问题),就这两段是RAM。你要这么一说,就有可能是这种情况了,emm自己占用的一小部分umb空间,大小是5.4k。我原先以为它就存在于基本内存里呢。

2.我的可以运行下去,并没有出错,只是有个提示让我按任意键而已,我只是试图让其使用ems的情况下获得尽量大的umb。这样我可以装载很多tsr到里面去,况且我也有很多程序需要用到ems,所以用noems的方法虽然可以获得更多umb,但不适用于我的情况。如果单单指定RAM一个参数,那么是没有任何提示运行下去的。我只是重新指定了ems在1024k里的段区的位置而已,反正只要连续的64k空间即可,这样umb就可以有一大段是连续的了。





[ Last edited by shooter on 2007-12-26 at 04:43 PM ]
作者: DOSforever     时间: 2007-12-26 21:25
它的提示已经明白无误的告诉你了

  Quote:
WARNING: Option ROM or RAM detected within page frame.

警告你并不是马上会出错,而是提醒你如果按照这样的配置会有错误产生,一旦 TSR 和 page frame 发生冲突就会死机。看来你不能使用M9参数,能够用什么,你还是用 MSD 检测一下 ,在 DOS 的缺省配置下,看看从 E000 起始的这段地址有没有被什么硬件占用。

另外,能够用文字说明的就不要上传图片。
作者: shooter     时间: 2007-12-27 10:02
图片是外链,没有上传,没有占用论坛的太多资源,有什么关系~

连续的64k空间只有两段,E000-EFFF和CC00-DBFF,默认是后者,前者的区段里后半段标示为possibly available,但用I=参数指定umb的时候会无法启动,用ram=指定可以用,只是有提示而已

目前的情况就是E000-EFFF这段如果不是指定umb的segment,就无法使用,虽然msd中显示的是possibly available
---------------------------
呵呵,搞定了,指定frame=none即可,还是大脑不灵光啦~

多谢二楼的朋友~

[ Last edited by shooter on 2007-12-27 at 06:37 PM ]