IBM PC/AT с процессорами i386, i486 и Pentium
Если ваш компьютер содержит процессор i386, i486 или Pentium, к перечисленным выше возможностям добавляется еще две:
Остановимся подробнее на второй возможности.
Обычно компьютеры с процессорами i386, i486 или Pentium оснащены расширенной памятью объемом от 2 до 16 Мбайт (вам могут встретиться компьютеры с еще большим объемом расширенной памяти). Однако все еще встречаются программы рассчитаны на использование дополнительной памяти.
Получается, что у вас есть очень много расширенной памяти, но вам-то нужна дополнительная! Как быть в этом случае? Не покупать же еще и плату дополнительной памяти!
В этом случае необходимо воспользоваться драйвером emm386.exe , входящим в состав MS-DOS. Этот драйвер использует часть расширенной памяти для эмуляции в ней дополнительной памяти. То есть у вас становится меньше расширенной памяти, но появляется дополнительная.
Если вы - обладатель компьютера с процессором 80386 или 80486, вам доступна возможность переноса драйверов и резидентных программ в расширенную память, а также эмуляция дополнительной памяти с использованием расширенной памяти.
Для реализации этих возможностей подключите драйвер emm386.exe :
device=c:\dos\emm386.exe [параметры]
Эта строка должна располагаться в файле config.sys после строки, подключающей драйвер himem.sys .
В качестве параметра вы можете указать размер эмулируемой дополнительной памяти в Кбайтах. Например, если вам нужна дополнительная память размером 1 Мбайт, используйте следующую строку:
device=c:\dos\emm386.exe 1024
Если вы не укажите размер эмулируемой дополнительной памяти, будет использовано значение по умолчанию - 256 Кбайт.
Для того, чтобы полностью отключить эмуляцию дополнительной памяти, задайте параметр NOEMS:
В состав MS-DOS входит программа mem.exe , предназначенная для исследования оперативной памяти. Запустив ее с параметром /f, вы увидите на экране примерно следующее:
Free Conventional Memory:
Segment Total ------- ----------------- 033F9 224 (0K) 03407 88 992 (87K) 049C1 353 248 (345K)
Total Free: 442 464 (432K)
Free Upper Memory:
Region Largest Free Total Free Total Size ------ -------------- -------------- -------------- 1 0 (0K) 0 (0K) 125 808 (123K) 2 0 (0K) 0 (0K) 8 192 (8K)
Программа отображает объемы свободных блоков стандартной памяти и блоков верхней памяти.
Обратите внимание, что область верхних блоков памяти фрагментирована. В ней выделяются области с номерами 1 и 2.
При загрузке драйверов и резидентных программ в верхнюю область памяти можно указать параметр /L, указав в нем номер используемой для загрузки области:
DEVICEHIGH /L:1=C:\DOS\SETVER.EXE LH /L:1 C:\DOS\MSCDEX.EXE /S /D:MITSUMI LH /L:2 SWAKEYB
Зная объем оперативной памяти, необходимый для драйверов и резидентных программ, вы можете расположить их в верхних блоках памяти оптимальным образом, указав для каждого драйвера или резидентной программы нужную область. Для определения объема резидентной части драйверов и резидентных программ вы можете использовать все ту же программу mem.exe , запустив ее с параметром /D.
Если имеется несколько свободных блоков верхней памяти и десяток драйверов, а также резидентных программ, "ручное" их размещение в областях верхней памяти может отнять много времени. К счастью, в состав MS-DOS входит программа memmaker.exe , выполняющая такое размещение в автоматическом режиме. Иногда после автоматической оптимизации бывает полезно выполнить "ручную доводку", перемести некоторые резидентные программы в другие области верхней памяти.
Детальное обсуждение программы memmaker.exe вы сможете найти во втором томе нашей серии книг "Персональный компьютер - шаг за шагом", который называется "Операционная система Microsoft Windows . Руководство пользователя". Заметим только, что программа memmaker.exe добавляет к номеру области еще и размер резидентной части драйвера или программы:
DEVICEHIGH /L:1,12048 =C:\DOS\SETVER.EXE LH /L:1,28288 C:\DOS\MSCDEX.EXE /S /D:MITSUMI LH /L:2,1520 SWAKEYB