如何通过以下设置获得更多低内存:

如何通过以下设置获得更多低内存:
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 驱动程序 (DISPLAYKEYBNSLFUNC) 对我来说至关重要。


感谢@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 版本捆绑在一起。

][Cyber​​Pillar][: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 中的命令支持此功能。(请参阅“菜单”命令的帮助。)

相关内容