Оперативная память
04d1509c

Менеджер расширенной памяти



Менеджер расширенной памяти

(Expanded Memory Manager или EMM) оформлен в виде драйвера, который располагается в оперативной памяти при загрузке DOS и остается резидентным до выключения ПК. Обычно его имя EMM386.EXE, оно обязательно указывается в файле config.sys, например, так:

DEVICE = C:\DOS\EMM386.EXE

В данном случае предполагается, что файл Еммзвб.ЕХЕ расположен на диске С, в каталоге DOS. Драйвер многофункциональный, поэтому после его имени в командной строке могут указываться параметры, которые используются при загрузке. Описание всех параметров вы найдете в файле HELP, входящем в комплект DOS

Важно
Важно
Один из параметров, а именно NOEMS запрещает поддержку описываемых ниже функций драйвера, поэтому его указание в командной строке недопустимо.

EMS 4.0 исполняет 30 различных функций, разделенных на три группы: стандартные (standard), расширенные (advanced) и для многозадачных режимов (os). Нас будут интересовать только стандартные функции, необходимые для работы с данными, расположенными в расширенной памяти, их всего 7. Описание остальных функций вы найдете в TECH HELP или в специальной литературе по работе с DOS.

Доступ к драйверу осуществляется через прерывание int 67h. Перед выдачей запроса код функции помещается в регистр ah (старший байт регистра ах). Регистр ai используется либо для уточнения запрашиваемой функции (для advanced и os), либо для указания параметров функции. В случае успешного исполнения запроса EMM возвращает в регистре ah 0, а случае неудачного — 1.

EMS 4.0 фиксирует 36 различных ошибок, им присваиваются коды от 80п до ОА4п включительно. Полный список ошибок содержится в TECH HELP, некоторые из них будут названы при описании функций. Ошибки возникают по разным причинам. На стадии отладки они, чаще всего, вызваны некорректностью программы. Если корректность программы не вызывает сомнений и задача неоднократно выполнялась успешно, то имеет смысл посмотреть, какие параметры EMM386 заданы в файле config.sys. Например, если указан параметр NOEMS, то при запросах памяти обязательно будет возникать "внутренняя ошибка EMM драйвера", имеющая код еоь.

Описание стандартных функций. К категории стандартных относятся следующие функции драйвера EMM.



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