MS-DOS для программиста


IBM PC/AT с процессорами i386, i486 и Pentium


Если ваш компьютер содержит процессор i386, i486 или Pentium, к перечисленным выше возможностям добавляется еще две:

  • вы можете разместить практически все используемые драйверы и резидентные программы в расширенной памяти. При этом объем памяти, доступной прикладным программам, составит 618 - 620 Кбайт;
  • вам становится доступна эмуляция дополнительной памяти с использованием расширенной памяти.
  • Остановимся подробнее на второй возможности.

    Обычно компьютеры с процессорами 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


    Содержание раздела