Dos 7 кушает много памяти (Кушает - это мягко сказано.)

Поиск, обмен ссылками, вопросы по устаревшему программному обеспечению.
Arix
Advanced Member
Сообщения: 2411
Зарегистрирован: 18.07.2015,08:56
Откуда: Саратов

Dos 7 кушает много памяти

Сообщение Arix » 21.10.2016,00:04

Кушает - это мягко сказано.

Пытаюсь разобраться с потреблением памяти в DOS 7.x от Windows 95.
У меня загружаются драйверы сидюка, мыши, Drivespace (нужен), русификации. И после этого остается памяти всего 485 кб. Я в своё время с этим мучался, на 386-м у меня стоял ДОС от 95-й. Красиво, когда появляется заставка Windows 95, все сообщения системы на русском. Но многие программы не запускались, ругались на нехватку памяти. Набравшись немного опыта, я поставил 6,22, и проблемы исчезли. Но у меня есть компьютеры с 95-й виндой, там от седьмого ДОСа никуда не денешься.
Итак, вот конфиги:
CONFIG.SYS
[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
AUTOEXEC.BAT
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-й. Остальное примерно так же.

Аватара пользователя
zOrg
Почётный пользователь
Сообщения: 13897
Зарегистрирован: 09.01.2009,22:22
Откуда: Ленинградская область, пгт. Сиверский

Вклад в сообщество

Сообщение zOrg » 21.10.2016,00:53

Arix писал(а):Но у меня есть компьютеры с 95-й виндой, там от седьмого ДОСа никуда не денешься.
Это с чего это взяли. Ставите 6.22, а затем Win95. Будет полноценный DOS 6.22. Файлам autoexec, config, msdos которые после установки win95 станут *.old или *.dos вернуть старое расширение. Загрузка винды по команде win.
Flynn Lives / Кай жив / Tarus жив

Аватара пользователя
uav1606
Advanced Member
Сообщения: 5976
Зарегистрирован: 16.01.2008,22:04
Откуда: Енакиево
Контактная информация:

Вклад в сообщество

Сообщение uav1606 » 21.10.2016,01:19

Arix, Вы, видимо, перепутали таблички с результатами mem местами.

И я бы на Вашем месте использовал директиву DOS=NOAUTO (или DOS=NOAUTO,HIGH,UMB), потому как неизвестно, что оно там само в память пихает. Как минимум, тот же DRVSPACE может автоматом грузиться, я уже точно не помню.

Гость

Сообщение Гость » 21.10.2016,01:52

Arix, да всё у вас нормально, в соответствии в загруженным барахлом. SYSTEM примерно так и весит обычно, плюс-минус в зависимости от DOS=NOAUTO, поддерживаю uav1606 (без NOATO, вроде, может игнорироваться HIGH и UMB, не?) и от FCBS, FILES, BUFFERS, STACKS, LASTDRIVE и прочих внутренних служебных штук. FILES=150 - зачем так много? Плюс, в DOS 7.x, если не путаю, часть этих внутренних переменных тоже можно грузить вверх типа FILESHIGH, BUFFERSHIGH, FCBSHIGH?
Набор таких прожорливых дров специально подобран или по незнанию?
MSCDEX заменить SHSUCDX или чем-то подобным.
Драйвер CD-ROM заменить vide-cdd.sys (лучше) или на худой конец драйвером из комплекта UIDE J.R. Ellis'a (или как это теперь он обозвал, в очередной раз меняя название, и если эта говноподелка вообще у вас заработает так как надо).
Штатный русификатор заменить на S_FONT (лучше, если чипсет поддерживается) или на выбор - RKM, XGA, Keyrus, - с тонкой настройкой (есть у всех трёх).
Драйвер мыши на ctmouse.
Зачем грузить smartdrive постоянно в DOS, неважно, каком (6.x, 7.x)? Грузите под задачу - например, копирование/удаление/запаковка кучи мелких файлов ускоряет заметно, согласен. Но в основном то, толку немного. Поменять хард на флэшку - это вариант максималистский. Попробовать поменять smartdrive на тот же упомянутый UIDE, если, опять же, эта фигня у вас заработает как надо.
И руками поиграйтесь с теми же DEVICEHIGH и LH - некоторые резиденты у вас, как может оказаться, чуть-чуть не влезают в upmem, а грузить себя частью туда, а частью в conventional не умеют и потому целиком остаются в последней. Такое тоже бывает, надо руками туда-сюда погонять, подобрать оптимальное заполнение верхней.
В итоге вернёте те же 100-150 kb.
Как-то так.

Аватара пользователя
kiot
Advanced Member
Сообщения: 306
Зарегистрирован: 09.09.2013,09:26
Откуда: Великий Устюг

Сообщение kiot » 21.10.2016,07:26

aleksej, тогда уж лучше PC DOS 7, он хорошо умеет всё своё окружение перекидывать в UMB, для этого достаточно строчки в CONFIG.SYS: DOSDATA=UMB. К тому же его COMMAND.COM тоже умеет в верхнюю память: SHELL=C:\COMMAND.COM /P /H с помощью переключателя /H.

Для CMA получается где-то так:

Код: Выделить всё

Модули, использующие память ниже 1 Mбайта:

  Имя            Всего       =   Основная       +  Верхняя память
  --------  ----------------   ----------------   ----------------
  SYSTEM      16 240   (16K)      9 536    (9K)      6 704    (7K)
  HIMEM        1 104    (1K)      1 104    (1K)          0    (0K)
  EMM386       4 240    (4K)      4 240    (4K)          0    (0K)

P.S. Упс, про DriveSpace не приметил.

Кукша
Junior Member
Сообщения: 146
Зарегистрирован: 26.09.2016,00:26
Откуда: Москва

Сообщение Кукша » 21.10.2016,09:08

Не так давно ставил dos из Win98...
DriveSpace не использовал правда.

mouse.com упорно не грузился в верхнюю память. Минут десять уговаривал, потом заподозрил неладное, полазил у себя по сусекам и откопал второй mouse.com, более старый - он меньше размером. Вот он влетел в верхнюю память сразу же.

Для русификации в autoexec.bat загрузил rk (не помню - com он или exe) вместо микрософтовской обвески с DISPLAY, Country и прочего.
rk небольшой, хорошо грузится в верхнюю. И в этом случае KEYB не висит в обычной памяти занимая 7К, да и в верхней просторнее..
Правда, в rk что-то с раскладкой, наверное он под старые клавы: выдаёт Ъ вместо Ё и ] вместо Ъ. Пока мне это не особо важно - не разбирался, хотя отсутствие Ё немного напрягает...

HP Vectra 486/33VL, HP Vectra VLi8 (на P-III)
Моя кучка ЦПУ: http://www.phantom.sannata.ru/forum/index.php?t=22802

Anonymous1
Advanced Member
Сообщения: 2727
Зарегистрирован: 22.11.2011,09:41
Откуда: Москва(Россия)

Вклад в сообщество

Сообщение Anonymous1 » 21.10.2016,09:22

Кукша, в keyrus.com и rk.com раскладка подменяется, надо свой файл раскладки сделать и подсунуть руссификатору при загрузке его.
rk.com писал(а): Russian keyboard driver. Version 1.8 (C) 1988,1989 A.Strakhov, AcademySoft.
Valid options:
/F:[d:][path]file - load font from file,
/L:[d:][path]file - load keyboard layout from file,
/H - use ROM font for characters 0-127,
/B - use entire ROM font,
/W - write font and layout tables into files,
/E - force enhanced keyboard service,
/R:n - set RUS/LAT switch key combination [$] (0<n<F),
/I:n - set IBM/RUS switch key combination [$] (0<n<F),
/S - save changes in program file,
/K - uninstall driver.

Кукша
Junior Member
Сообщения: 146
Зарегистрирован: 26.09.2016,00:26
Откуда: Москва

Сообщение Кукша » 21.10.2016,10:44

Спасибо :)

keyrus.com:
он странный какой-то в последней версии (с old-dos.ru) - под ДОСом от Win98 не запустился - завис намертво при загрузке. В 6.22 эта же версия как-то запустилась, но потом всё равно не захотела работать - махнул рукой и выбросил. Может и стоило разобраться, не знаю, когда-то я им пользовался... там и редакторы и возможностей куча (по "ридми" я всё-же пробежался)... только смысла уже нет, если rk просто сразу работает без копания.

насчёт rk:
Раскладка наверное должна всё-же соответствовать клавиатуре...
Своих раскладок для DOS никогда не делал, не знаю как и чем.
Может в rk что-то готовое подсунуть можно? Под современные клавы, где "ё" крайняя клавиша слева. Где бы взять? (очень не хочется тратить время на изобретение велосипеда)
HP Vectra 486/33VL, HP Vectra VLi8 (на P-III)
Моя кучка ЦПУ: http://www.phantom.sannata.ru/forum/index.php?t=22802

Anonymous1
Advanced Member
Сообщения: 2727
Зарегистрирован: 22.11.2011,09:41
Откуда: Москва(Россия)

Вклад в сообщество

Сообщение Anonymous1 » 21.10.2016,10:59

Очевидно, что надо использовать ключ /W - write font and layout tables into files, затем отредактировать полученный файл раскладки и скормить его обратно, /L:[d:][path]file - load keyboard layout from file, если получилось годно под вашу клавиатуру - то с ключём /S - save changes in program file.

Arix
Advanced Member
Сообщения: 2411
Зарегистрирован: 18.07.2015,08:56
Откуда: Саратов

Сообщение Arix » 21.10.2016,12:25

zOrg писал(а):Это с чего это взяли. Ставите 6.22, а затем Win95.
И что, Win95 запускается из-под 6.22? У меня не запускалась. Был винт с 6.22, я туда закинул папку с Win95, попытался запустить, она написала что-то, что запуск из этой версии ДОСа невозможен, точно уже не помню.
aleksej писал(а):MSCDEX заменить SHSUCDX или чем-то подобным.
Драйвер CD-ROM заменить vide-cdd.sys (лучше)
Это уже сделано, просто таблички остались старые.
Я до этого поставил эти же драйверы CD-ROM на 386-й в DOS 6.22 и заметил глюк: если запущен Dos Navigator, всё время мигает индикатор жесткого диска. Я сначала испугался, что это вирус хозяйничает. Я же ничего не делаю, а что-то к диску лезет, для ДОСа это ненормально. Потом заметил закономерность. А потом этот глюк как-то пропал сам собой.
aleksej писал(а):Arix, да всё у вас нормально, в соответствии в загруженным барахлом.
С барахлом - может быть, но почему без барахла сама система начинает потреблять больше? Именно с DRVSPACE она потребляет гораздо меньше, а без него - очень много. И, как видно, с барахлом остается больше памяти.
Сейчас попробую написать NOAUTO
Русификация - раньше я использовал KEYRUS, но чем-то он мне не понравился. А Cyrillic, паразит, NumLock вырубает при загрузке. Какого фига он это делает, кто его просит? А Numlock=ON можно только в конфиге.сис прописать, иначе бы я это в конце автоекзека вписал.

Аватара пользователя
uav1606
Advanced Member
Сообщения: 5976
Зарегистрирован: 16.01.2008,22:04
Откуда: Енакиево
Контактная информация:

Вклад в сообщество

Сообщение uav1606 » 21.10.2016,12:57

Arix писал(а):Нет, не перепутал. Там же видно, где процессов больше.
Всё-таки перепутали.

Вы же пишете:
А вот, запуск почти голого ДОСа, без мыши, сюдюка, драйвспейса и т.д.
Но с HIMEM, EMM386 и DOS=HIGH,UMB
И сразу дальше:
--GMOUSE-------9984---(10K)------9728---(10K)--------256----(0K)
--OAKCDROM----36064---(35K)----------0----(0K)-----36064---(35K)
И наоборот.
Т.е. подписи не соответствуют отчётам mem.

Ответить