ФуНКЦИЯ 43h Allocate Memory and Open EMM handle
ФуНКЦИЯ 43h Allocate Memory and Open EMM handle
запрашивается для выделения требуемого пространства расширенной памяти. Входным параметром является необходимое количество страниц, указываемое в регистре bx. При успешном выполнении функции в регистре dx возвращается EMM Handle — идентификатор выделенного блока, который используется при запросах других функций драйвера. Его обязательно надо сохранить.
Два специальных кода ошибок означают, что запрошено слишком много страниц. Код 87h выдается, если общее пространство expanded memory меньше запрошенного размера, а код 88h означает, что недостаточно свободного пространства памяти. Если вы предварительно проверяли свободную память с помощью функции 42h, то эти две ошибки не должны возникать, в противном случае надо прекратить выполнение задачи.
Выделенное пространство закреплено за задачей, но перед записью или чтением данных надо отображать его конкретную часть на рабочий сегмент, значение которого возвращает функция 4ih. Как уже говорилось ранее, в этом сегменте размещается 4 страницы. Для отображения 16 Кбайт ОЗУ на одну из этих страниц предназначена функция 44h.