Как я могу получить больше памяти с помощью следующей настройки:

3712
user539484
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. 

Я использую MS-DOS 6.22 на виртуальном оборудовании VMWare. Это состояние памяти после MEMMAKERпрохода, поэтому я ищу оптимизацию дальше MEMMAKER.

Примечание: драйверы NLS ( DISPLAY, KEYB, NSLFUNC) имеют важное значение для меня.


Спасибо @mtone за ценное напоминание о том, MSCDEX /Eчто мне дали 16 КБ нехватки памяти (см. Diff )!

7
Что это, 1994? Вам нужен дисковод компакт-дисков - если не отключить oakcdrom & mscdex, это поможет, в противном случае, если я правильно помню, mscdex можно переместить в верхнюю папку с помощью переключателя командной строки. mtone 11 лет назад 9
Рассматривали ли вы FreeDOS, который обычно лучше помещает вещи в верхнюю память? Ignacio Vazquez-Abrams 11 лет назад 1
@mtone, ну да и нет, я не могу получить доступ к виртуальному CD-ROM без набора драйверов. Но, конечно, я могу использовать загрузочное меню MS-DOS для создания конфигурации «NOCD». MSCDEX отказывается перемещаться в верхнюю память, но ключ / E заставляет его использовать EMS для буферизации. Спасибо! user539484 11 лет назад 3
Просто любопытно, что именно вы делаете с дос в условиях плохой памяти? Journeyman Geek 11 лет назад 0
@ Journeyman Гик, бедный? 64 МБ ОЗУ для средней машины с DOS скорее всего * чертовски много * :-) Но здесь печально известен «640 КБ, достаточный для всех». То есть, обычным программам DOS требуется мало памяти, поэтому эта проблема является общей для всех установок DOS. Кстати, не удаляйте `[dos]`, по крайней мере, пока единственная инициатива Денниса против этих тегов не принесет заметного улучшения. user539484 11 лет назад 2
Нет единственной инициативы - мы определяем амбициозные теги, даем им разумное количество времени и работаем над удалением тега, чтобы он умер естественной смертью. Это часть более широкого процесса ведения домашнего хозяйства на сайте. До сих пор у нас было три разных пользователя, которые убрали этот тег, я сам включен в историю изменений. Journeyman Geek 11 лет назад 0

3 ответа на вопрос

8
LawrenceC

Попробуйте заменить любые DEVICE=строки в вашем файле CONFIG.SYS на DEVICEHIGH=.

Я думаю, что DOS=HIGH,UMBпомогает как-то, но я забыл, что именно он делает. Я думаю, что это перемещает саму DOS в верхнюю область, если это возможно.

Есть также LOADHIGHкоманда, которую вы можете использовать, MSCDEXи другие IIR TSR.

Выше может быть неправильно. Прошло не менее 10 лет с тех пор, как я серьезно испортил DOS, но я надеюсь, что это поможет.

Также, если у вас нет нужной программы, SETVERвы можете от нее избавиться. Также подумайте о том, чтобы избавиться от них, DOSKEYесли вам не нужны улучшения в командной строке.

Наконец, если вы освобождаете слишком много обычной памяти и получаете сообщение об ошибке какого-либо типа при запуске программ, используйте LOADFIX.

Поскольку я уже запустил автоматическую оптимизацию, DOS уже был загружен (последняя строка из вывода MEM). Но кажется, что нет доступного UMB, достаточно большого, чтобы вместить один из больших драйверов, так как предложенное DEVICEHIGH / LOADHIGH не имело никакого эффекта. user539484 11 лет назад 0
Вам нужен SMARTDRV (разве это не ОЗУ) Mark 11 лет назад 0
@ Марк, нет, это VMWare. user539484 11 лет назад 0
@ user539484 - http://en.wikipedia.org/wiki/SmartDrive Mark 11 лет назад 0
@ Марк, да, я знаю это. До сих пор не знаю, как это связано с замечанием вашего ОЗУ. user539484 11 лет назад 0
2
Gurken Papst

Если вам не нужно оставаться с драйверами Microsoft, я предлагаю заменить их альтернативами FreeDOS, которые более гибки и занимают меньше места в памяти.

  • ctmouse заменяет мышь
  • uide заменяет oakcdrom и smartdrv
  • shsucdx заменяет mscdex

Если для MS DOS нет особых требований, простое решение - просто использовать FreeDOS, как уже было предложено Игнасио Васкесом-Абрамсом.

Да, я выбрал OAKCDROM после Microsoft, он славится отличной совместимостью с многочисленными драйверами и хорошей стабильностью, но, очевидно, большим объемом памяти. Так как в VMWare мне не нужна совместимость, я попробовал драйвер Benq (VIDE-CDD). [Это сообщение] (http://web.archive.org/web/20070815060722/http://johnson.tmfc.net/freedos/shsucdx.html) отпугнуло меня от использования программного обеспечения Джека Эллиса. В настоящее время я тоже пробую CuteMouse, спасибо. user539484 11 лет назад 0
многочисленные драйвера = многочисленные диски, извините. user539484 11 лет назад 0
Между тем, CuteMouse продемонстрировал некорректное поведение в приложении графического режима (какой-то джиттер ускорения) user539484 11 лет назад 0
0
TOOGAM

Agreed with using better drivers. I saw OAKCDROM.SYS and instantly thought of alternatives. I didn't know about UIDE when I researched this many years ago. But I still found better alternatives than OAKCDROM.SYS : See TOOGAM's Software Archive: CD-ROM drivers. CuteMouse is also a great recommendation. These can provide you with more free memory and really no downsides. It's just newer and better code.

SHSUCDX can save memory, although may have some issues with CD Audio (at least with version 2.20b, as I recall). If CD audio works fine with it, or if that is a non-issue, then use it.

I also agree with using DOS=HIGH,UMB and trying to use DEVICEHIGH. But using DEVICEHIGH might use up a tiny bit of upper memory, and then you might have just barely not enough upper memory for something bigger. So watching things carefully may be needed to get the ideal setup. Don't even bother with that until after you know what drivers you want.

Then, LH can be used for anything from the command line, including anything loaded from the AUTOEXEC.BAT.

Get rid of DOSKey: Instead, use 4DOS to replace Command.Com. 4DOS used to be shareware but there is now a Freeware version, and then later source code became available. I do believe that 4DOS tends to use less conventional memory, or at least can be configured to do so. To use 4DOS, obtain the software and then have the CONFIG.SYS refer to it via SHELL, e.g.:

SHELL=C:\4DOS\4DOS.Com

Also set the COMSPEC:

SET COMSPEC=C:\4DOS\4DOS.Com

Comspec can be CONFIG.SYS or AutoExec.bat

Probably get rid of SETVER: It is usually completely unnecessary. It simply makes some software work, instead of the software complaining uselessly about software versions. But software typically doesn't do that unless it was bundled with another (commercial?) DOS version.

][CyberPillar][: DOS Memory lists some other options, like replacing the memory managers. e.g.: If you have the time to really play with stuff, see if UMBPCI works on your system. If so, enjoy using that instead of EMM386.

Otherwise, EMM386 (I think, maybe HIMEM, but I think EMM) has some parameter (HIGHSCAN if I remember right) that can generate more memory, but freezes up a small percentage of systems. Check the online help for such a parameter; it might cause more memory to be found and be used.

Well, following all of those tips will be a pretty good start anyway.

I know you addressed this in your question, but since that line ay be easy to miss, I'll quickly point out that NLSFunc (National Keyboard Language Functionality) and DISPLAY.SYS (loaded in CONFIG.SYS) may be unnecessary unless you are trying to support non-American code pages. Similar for KEYB. I don't know how well POWER is.

Don't have much faith in MemMaker. It can help. It can make things worse. Usually it helps, a bit, if using an unoptimized system. Maybe try it again after making all other recommended changes, including backing up your CONFIG.SYS and AUTOEXEC.BAT before letting MemMaker look at the system.

If you need memory for a specific application, you might be able to create a boot menu that lets you choose what drivers to load. MS-DOS 6.x supported this by using commands in a CONFIG.SYS. (See HELP for "menu" commands.)

Похожие вопросы