Modules using memory below 1 MB:
Name Total = Conventional + Upper Memory
-------- ---------------- ---------------- ----------------
MSDOS 14 317 (14K) 14 317 (14K) 0 (0K)
HIMEM 1 120 (1K) 1 120 (1K) 0 (0K)
EMM386 3 120 (3K) 3 120 (3K) 0 (0K)
OAKCDROM 36 064 (35K) 36 064 (35K) 0 (0K)
POWER 80 (0K) 80 (0K) 0 (0K)
NLSFUNC 2 784 (3K) 2 784 (3K) 0 (0K)
COMMAND 2 928 (3K) 2 928 (3K) 0 (0K)
MSCDEX 15 712 (15K) 15 712 (15K) 0 (0K)
SMARTDRV 30 384 (30K) 13 984 (14K) 16 400 (16K)
KEYB 6 752 (7K) 6 752 (7K) 0 (0K)
MOUSE 17 296 (17K) 17 296 (17K) 0 (0K)
DISPLAY 8 336 (8K) 0 (0K) 8 336 (8K)
SETVER 512 (1K) 0 (0K) 512 (1K)
DOSKEY 4 144 (4K) 0 (0K) 4 144 (4K)
POWER 4 672 (5K) 0 (0K) 4 672 (5K)
Free 552 944 (540K) 539 088 (526K) 13 856 (14K)
Memory Summary:
Type of Memory Total = Used + Free
---------------- ---------- ---------- ----------
Conventional 653 312 114 224 539 088
Upper 47 920 34 064 13 856
Reserved 0 0 0
Extended (XMS)* 64 898 256 2 671 824 62 226 432
---------------- ---------- ---------- ----------
Total memory 65 599 488 2 820 112 62 779 376
Total under 1 MB 701 232 148 288 552 944
Total Expanded (EMS) 33 947 648 (33 152K
Free Expanded (EMS)* 33 538 048 (32 752K
* EMM386 is using XMS memory to simulate EMS memory as needed.
Free EMS memory may change as free XMS memory changes.
Largest executable program size 538 976 (526K)
Largest free upper memory block 7 488 (7K)
MS-DOS is resident in the high memory area.
我在 VMWare 虚拟硬件上运行 MS-DOS 6.22。这是MEMMAKER
通过,所以我正在寻找超越的优化MEMMAKER
。
注意:NLS 驱动程序 (DISPLAY
,KEYB
,NSLFUNC
) 对我来说至关重要。
感谢@mtone 的宝贵提醒MSCDEX /E
这导致我内存不足 16KiB(请参阅差异)!
答案1
DEVICE=
尝试用 替换 CONFIG.SYS 中的任何行DEVICEHIGH=
。
我认为这DOS=HIGH,UMB
有点帮助,但我忘了它具体做了什么。我认为如果可能的话,它会将 DOS 本身移动到上部区域。
您还LOADHIGH
可以使用命令MSCDEX
和其他 TSR 的 IIRC。
以上内容可能不正确。我已经至少 10 年没有认真使用过 DOS 了,但我希望这些内容能有所帮助。
另外,如果您没有需要的程序,您可以将其删除。如果您不需要其命令行增强功能,SETVER
也可以考虑删除。DOSKEY
最后,如果您释放了太多常规内存并在启动程序时收到某种类型的损坏错误消息,请使用LOADFIX
。
答案2
除非您需要继续使用 Microsoft 的驱动程序,否则我建议使用更灵活且内存占用更小的 FreeDOS 替代品来替换它们。
- ctmouse 替代鼠标
- uide 取代 oakcdrom 和 smartdrv
- shsucdx 替换 mscdex
如果对 MS DOS 没有特殊要求,那么简单地使用 Ignacio Vazquez-Abrams 所建议的 FreeDOS 将是最简单的解决方案。
答案3
同意使用更好的驱动程序。我看到 OAKCDROM.SYS 后立即想到了替代方案。多年前研究这个问题时,我并不知道 UIDE。但我仍然找到了比 OAKCDROM.SYS 更好的替代方案:参见TOOGAM 的软件档案:CD-ROM 驱动程序。CuteMouse 也是一个很好的推荐。它们可以为您提供更多可用内存,而且确实没有任何缺点。它只是更新更好的代码。
SHSUCDX 可以节省内存,尽管在 CD 音频方面可能存在一些问题(至少我记得 2.20b 版本存在问题)。如果 CD 音频在 SHSUCDX 上工作正常,或者不存在这个问题,那么就使用它。
我也同意使用 DOS=HIGH,UMB 并尝试使用 DEVICEHIGH。但使用 DEVICEHIGH 可能会占用少量上部内存,然后您可能就没有足够的上部内存来容纳更大的内存了。因此,可能需要仔细观察才能获得理想的设置。在知道您想要什么驱动程序之前,不要为此烦恼。
然后,LH 可用于命令行中的任何内容,包括从 AUTOEXEC.BAT 加载的任何内容。
摆脱 DOSKey:改用 4DOS 来替代 Command.Com。4DOS 曾经是共享软件,但现在有了免费软件版本,后来源代码也可用了。我确实认为 4DOS 倾向于使用较少的传统内存,或者至少可以配置成这样。要使用 4DOS,请获取该软件,然后让 CONFIG.SYS 通过 SHELL 引用它,例如:
SHELL=C:\4DOS\4DOS.Com
还设置了 COMSPEC:
设置 COMSPEC=C:\4DOS\4DOS.Com
Comspec 可以是 CONFIG.SYS 或 AutoExec.bat
可能要去掉 SETVER:通常完全没必要。它只是让一些软件工作,而不是软件无用地抱怨软件版本。但软件通常不会这样做,除非它与另一个(商业?)DOS 版本捆绑在一起。
][CyberPillar][:DOS 内存列出了一些其他选项,例如替换内存管理器。例如:如果您有时间真正地玩弄一些东西,请查看 UMBPCI 是否在您的系统上运行。如果可以,请尽情使用它而不是 EMM386。
否则,EMM386(我想,可能是 HIMEM,但我认为是 EMM)有一些参数(如果我没记错的话是 HIGHSCAN)可以生成更多内存,但会冻结一小部分系统。查看在线帮助以了解此类参数;它可能会导致找到并使用更多内存。
好吧,无论如何,遵循所有这些提示将是一个很好的开始。
我知道您在问题中提到了这一点,但由于那一行很容易被忽略,我很快指出,除非您尝试支持非美国代码页,否则 NLSFunc(国家键盘语言功能)和 DISPLAY.SYS(加载到 CONFIG.SYS 中)可能是不必要的。KEYB 也类似。我不知道 POWER 有多好。
不要对 MemMaker 抱有太大的信心。它可以提供帮助。但它也可能使情况变得更糟。如果使用未优化的系统,它通常会有所帮助。也许在进行所有其他建议的更改后再试一次,包括在让 MemMaker 查看系统之前备份您的 CONFIG.SYS 和 AUTOEXEC.BAT。
如果您需要内存来运行特定应用程序,您可以创建一个引导菜单,让您选择要加载的驱动程序。MS-DOS 6.x 通过使用 CONFIG.SYS 中的命令支持此功能。(请参阅“菜单”命令的帮助。)