Пытаюсь разобраться с потреблением памяти в DOS 7.x от Windows 95.
У меня загружаются драйверы сидюка, мыши, Drivespace (нужен), русификации. И после этого остается памяти всего 485 кб. Я в своё время с этим мучался, на 386-м у меня стоял ДОС от 95-й. Красиво, когда появляется заставка Windows 95, все сообщения системы на русском. Но многие программы не запускались, ругались на нехватку памяти. Набравшись немного опыта, я поставил 6,22, и проблемы исчезли. Но у меня есть компьютеры с 95-й виндой, там от седьмого ДОСа никуда не денешься.
Итак, вот конфиги:
CONFIG.SYS
AUTOEXEC.BAT[menu]
menuitem=WIN95, Start Windows 95.
menuitem=DOS, Start MS-DOS.
menudefault=WIN95,5
menucolor=7,1
[WIN95]
[DOS]
device=c:\dos\himem.sys /testmem:off
DEVICE=C:\DOS\EMM386.EXE NOEMS
DOS=HIGH,UMB
files=150
buffers=40,0
FCBS=1,0
SWITCHES=/F
STACKS=9,256
lastdrive=z
rem SHELL=C:\COMMAND.COM C:\ /E:512 /P
device=C:\WINDOWS\Ifshlp.sys
devicehigh=c:\dos\oakcdrom.sys /D:mscd001
[COMMON]
DEVICEHIGH=C:\WINDOWS\COMMAND\DRVSPACE.SYS /MOVE
devicehigh=C:\WINDOWS\COMMAND\display.sys con=(ega,,1)
Country=007,866,C:\WINDOWS\COMMAND\country.sys
А вот мемы:IF "%config%"=="WIN95" mode con codepage prepare=((866) C:\WINDOWS\COMMAND\ega3.cpi)
IF "%config%"=="WIN95" mode con codepage select=866
IF "%config%"=="WIN95" keyb ru,,C:\WINDOWS\COMMAND\keybrd3.sys
IF "%config%"=="WIN95" C:\WINDOWS\WIN.COM
IF "%config%"=="WIN95" GOTO QUIT
PATH=C:\WINDOWS;C:\WINDOWS\COMMAND;C:\DN;C:\ARX;C:\DOS;C:\NC;C:\NU
mode con codepage prepare=((866) C:\WINDOWS\COMMAND\ega3.cpi)
mode con codepage select=866
keyb ru,,C:\WINDOWS\COMMAND\keybrd3.sys
lh c:\windows\smartdrv.exe a- 256 256 /E:8192 /B:8192
LH C:\WINDOWS\COMMAND\MSCDEX.EXE /S /D:mscd001 /L:D
LH C:\dos\keyb uk,,c:\dos\keyboard.sys
LH c:\dos\gmouse
rem C:\DN\DN.COM
mem
Запуск почти голого ДОСа, без мыши, сидюка, драйвспейса и т.д.
Но с HIMEM, EMM386 и DOS=HIGH,UMB
Запуск в полной кофигурации (в соответствии с приведенными конфигами):Модули, использующие адреса памяти ниже 1 Мбайт:
--Имя------------Размер---------Обычная-память-----Верхняя-память
------------------------------------------------------------------
--SYSTEM-----157184--(154K)----121104--(118K)-----36080---(35K)
--HIMEM-------33744---(33K)-----33744---(33K)----------0----(0K)
--EMM386-------4256----(4K)------4256----(4K)----------0----(0K)
--KEYB---------6944----(7K)------6944----(7K)----------0----(0K)
--DISPLAY------8304----(8K)----------0----(0K)------8304----(8K)
--IFSHLP-------2864----(3K)----------0----(0K)------2864----(3K)
--SETVER---------832----(1K)----------0----(0K)--------832----(1K)
--COMMAND-----10064---(10K)---------0----(0K)-----10064---(10K)
--Свободно---589184--(575K)----489072--(478K)----100112---(98K)
Сведения о памяти:
--Тип памяти-----------Размер--------Занято------Свободно
-----------------------------------------------------------
--Обычная---------------655360-------166288-------489072
--Верхняя---------------158256--------58144-------100112
--Зарезервировано-------393216-------393216-------------0
--Память-XMS---------32347600-------280016----32067584
-----------------------------------------------------------
--Всего памяти:------33554432-------897664----32656768
--Ниже 1 Мбайт:---------813616-------224432-------589184
--Максимально допустимый размер программы:----------488944---(477K)
--Наибольший свободный блок верхней памяти:----------99840----(98K)
--Резидентная часть MS-DOS загружена в сегмент HMA.
Пришлось везде дефисы ставить, а то форум съедает пробелы, получается каша.Модули, использующие адреса памяти ниже 1 Мбайт:
--Имя------------Размер---------Обычная-память-----Верхняя-память
------------------------------------------------------------------
--SYSTEM------46608---(46K)-----35104---(34K)-----11504---(11K)
--HIMEM-------33744---(33K)-----33744---(33K)----------0----(0K)
--EMM386-------4256----(4K)------4256----(4K)----------0----(0K)
--IFSHLP-------2864----(3K)------2864----(3K)----------0----(0K)
--DISPLAY------8304----(8K)------8304----(8K)----------0----(0K)
--SETVER---------832----(1K)--------832----(1K)----------0----(0K)
--COMMAND-----10240---(10K)-----10240---(10K)----------0----(0K)
--KEYB---------6944----(7K)------6944----(7K)----------0----(0K)
--SMARTDRV----18240---(18K)-----18240---(18K)----------0----(0K)
--MSCDEX------28400---(28K)-----28400---(28K)----------0----(0K)
--GMOUSE-------9984---(10K)------9728---(10K)--------256----(0K)
--OAKCDROM----36064---(35K)----------0----(0K)-----36064---(35K)
--DRVSPACE---110176--(108K)----------0----(0K)----110176--(108K)
--Свободно---496752--(485K)----496512--(485K)--------240----(0K)
Сведения о памяти:
--Тип памяти-----------Размер--------Занято------Свободно
-----------------------------------------------------------
--Обычная---------------655360-------158848-------496512
--Верхняя---------------158240-------158000-----------240
--Зарезервировано-------393216-------393-216-----------0
--Память-XMS---------32347616-------542176----31805440
-----------------------------------------------------------
--Всего памяти:------33554432-----1252240----32302192
--Ниже 1 Мбайт:---------813600-------316848-------496752
--Максимально допустимый размер программы:----------496384---(485K)
--Наибольший свободный блок верхней-памяти:-------------240-----(0K)
--Резидентная часть MS-DOS загружена в сегмент HMA.
Что-то странное получается. При запуске в минимальной конфигурации сама система жрёт аж 154 кб, наверх лезет очень неохотно, всего 35 кб. Львиная доля верхней памяти остается неиспользованной. В полном же комплекте сама система вдруг худеет до 46 кб, памяти остается чуть больше. Много жрёт DRVSPACE, но если я его убираю, сама система опять полнеет до 154 кб, и памяти больше не становится. Почему так происходит? Можно ли как-то уменьшить её аппетит?
Для сравнения, DOS 6.22: MSDOS - 24 k. HIMEM - всего 1к против 33 у 95-й. Остальное примерно так же.