标题: 新電腦的傳統記憶體不足
[打印本页]
作者: jonsun
时间: 2007-8-22 22:42
标题: 新電腦的傳統記憶體不足
本人公司用純DOS掛倚天(繁體)上NOVELL,用P300印表.
軟體須要500K傳統記憶體,
因新電腦BIOS佔用太多upper memory,因此傳統記憶體變少了.
我試了在 XP WIN2000,DOS視窗,或模擬器多上不NOVELL.
不知是否設定錯誤.煩請高人指點.
或者有更好的方法.
謝謝!
作者: DOSforever
时间: 2007-8-23 12:44
有个概念先要澄清一下,各种硬件的 BIOS 所占用的地址空间是在 Reserved Memory 中的,在 Reserved Memory 中未被占用的空间叫做 Upper Memory ,可以被用户程序所利用。由于 Upper Memory 不一定是连续的,每一个连续的空间叫做 Upper Memory Block ,简称 UMB 。你只要在 config.sys 和 autoexec.bat 中把设备驱动程序和 TSR 尽量加载到 Upper Memory 中去就能腾出更多的 Conventional Memory 。
作者: jonsun
时间: 2007-8-23 19:02
感謝DOSforever回應!
掛上
himem.sys
emm386.exe ,進入DOS後
mem
upper memory 只有 65K
倚天(繁體)大約有180k,加上驅動程式.
640+65-180-驅動程式=340K,軟體須要500K.
如何是好?
作者: DOSforever
时间: 2007-8-24 00:06
把你的 config.sys 、autoexec.bat 文件的内容以及 mem/c/a 、mem/f、mem/d/a 的内容贴上来,最好把 MSD 仅内存报告部分的内容也贴上来。
作者: jonsun
时间: 2007-8-25 23:01
這是 ASUS P5GC-MX 主機板 純DOS
CONFIG.SYS:
[menu]
menuitem=CD, Start computer with CD-ROM support.
menuitem=NOCD, Start computer without CD-ROM support.
menuitem=NOVELL, ON LINE NOVELL.
menudefault=NOVELL,10
menucolor=7,0
[NOCD]
dos=high,umb
devicehigh=c:\dos98\himem.sys /testmem:off
rem devicehigh=c:\dos98\emm386.exe noems x=a000-c9ff i=e000-efff
devicehigh=c:\dos98\emm386.exe noems
lastdrive=e
[CD]
INCLUDE NOCD
devicehigh=c:\dos98\teac_cdi.sys /D:TAC-CDI
lastdrive=f
[NOVELL]
INCLUDE NOCD
[COMMON]
files=10
buffers=10
devicehigh=c:\dos98\ramdrive.sys /E 1024
autoexec.bat:
@ECHO OFF
set EXPAND=YES
SET DIRCMD=/O:N
set LglDrv=16 * 15
set LglDrv=%LglDrv% O 14 N 13 M 12 L 11 K 10 J 9 I 8 H 7 G 6 F 5 E 4 D 3 C
cls
call c:\dos98\setramd.bat %LglDrv%
SET PROMPT=$p$g
path=c:\;c:\dos98\;%RAMD%:\;%CDROM%:\
copy c:\dos98\command.com %RAMD%:\ > NUL
set comspec=%RAMD%:\command.com
IF "%config%"=="NOCD" GOTO QUIT
GOTO %config%
:NOCD
:CD
LH c:\dos98\MSCDEX.EXE /D:TAC-CDI
GOTO QUIT
:NOVELL
call c:\et3\et3
CALL c:\NET\NET.BAT
set CDROM=
set LglDrv=
f:
login acc1
cd \acc\prog
:QUIT
set CDROM=
set LglDrv=
c:>mem /d
Conventional Memory Detail:
Segment Total Name Type
------- ---------------- ----------- --------
00000 1,024 (1K) Interrupt Vector
00040 256 (0K) ROM Communication Area
00050 512 (1K) DOS Communication Area
00070 1,424 (1K) IO System Data
CON System Device Driver
AUX System Device Driver
PRN System Device Driver
CLOCK$ System Device Driver
A: - C: System Device Driver
COM1 System Device Driver
LPT1 System Device Driver
LPT2 System Device Driver
LPT3 System Device Driver
CONFIG$ System Device Driver
COM2 System Device Driver
COM3 System Device Driver
COM4 System Device Driver
000C9 5,120 (5K) MSDOS System Data
00209 7,584 (7K) IO System Data
1,024 (1K) Relocated EBIOS data
1,104 (1K) XMSXXXX0 Installed Device=HIMEM
4,304 (4K) EMMQXXX0 Installed Device=EMM386
544 (1K) Sector buffer
512 (1K) BUFFERS=10
003E3 80 (0K) MSDOS System Program
003E8 160 (0K) MEM Environment
003F2 90,624 (89K) MEM Program
01A12 548,560 (536K) MSDOS -- Free --
Upper Memory Detail:
Segment Region Total Name Type
------- ------ ---------------- ----------- --------
0CC5C 1 6,096 (6K) IO System Data
1,440 (1K) D: Installed Device=RAMDRIVE
464 (0K) Block device tables
304 (0K) FILES=10
256 (0K) FCBS=4
448 (0K) LASTDRIVE=E
3,072 (3K) STACKS=9,256
0CDD9 1 5,728 (6K) COMMAND Program
0CF3F 1 80 (0K) MSDOS -- Free --
0CF44 1 1,440 (1K) COMMAND Environment
0CF9E 1 67,104 (66K) MSDOS -- Free --
Memory Summary:
Type of Memory Total Used Free
---------------- ----------- ----------- -----------
Conventional 655,360 16,176 639,184
Upper 80,464 13,280 67,184
Reserved 0 0 0
Extended (XMS) 526,960,048 1,811,888 525,148,160
---------------- ----------- ----------- -----------
Total memory 527,695,872 1,841,344 525,854,528
Total under 1 MB 735,824 29,456 706,368
Memory accessible using Int 15h 0 (0K)
Largest executable program size 639,168 (624K)
Largest free upper memory block 67,104 (66K)
MS-DOS is resident in the high memory area.
XMS version 3.00; driver version 3.95
附帶請教:
devicehigh=c:\dos98\emm386.exe noems x=a000-c9ff i=e000-efff
config.sys 如加上這行,就當機
貼上這麼多,希望對你的判斷有所幫助.
謝謝!
[
Last edited by jonsun on 2007-8-25 at 11:14 PM ]
作者: DOSforever
时间: 2007-8-26 05:45
从你的 config.sys 、autoexec.bat 以及 mem/d 的内容来看,基本的启动配置没占多少内存,看来也就是以后要加载的“倚天”汉字系统和其它的驱动程序所占的多。根据你的等式: 640+65-180-驅動程式=340K ,驱动程序要占用的内存应该是 640+65-340-180=185 (K) 。我的理解,你那65K空余的上位内存 Free Upper Memory 不需要算在其内,因为你需要的是更多的 Free Conventional Memory ,所以你只要计算 Conventional Memory 的使用量就可以了。按照前面的计算,你的“倚天”汉字系统和“其它驱动程序”相加就要占用365K的空间,即使是最理想的情况也开不出这么大的 Upper Memory 。“倚天”汉字系统我没用过,就我所用过的 SPDOS、UCDOS 来说它们都可以充分利用 XMS 或 EMS ,甚至较老方式通过 Int15h 来使用的 Extended Memeory ,我想“倚天”应该也可以,你看一下它的参数是否有这功能。UCDOS 可以自行判断是否有可利用的 EMS 或 XMS 从而节省 1M 一下内存的使用。你其它的“驱动程序”是什么?要占180K?!我在你的 config.sys 中看不出。就是要把这180K的驱动程序全都塞进 Upper Memory 也够呛的。
devicehigh=c:\dos98\emm386.exe noems x=a000-c9ff i=e000-efff
意思是排除 a000-c9ff 段作 Upper Memory ,把 e000-efff 段包括进来作 Upper Memory 。 x=a000-c9ff 我认为没什么问题,因为排除了嘛,总是比较保险的,最多就是排除部分过多了点,还可以减小些作 Upper Memory 用;问题很可能出在 i=e000-efff 上,可能这其中的某段地址已经被某个 BIOS 所占用,所以你把它拿进来作 Upper Memory 用就会引起死机。我不清楚你这段参数原来是怎么加上去的。