О — использовать' номера физических страниц;

1 — использовать сегменты страниц;

DX — дескриптор EMM;

DS:SI — адрес буфера запроса. Функции $55 и $56 используются при размещении в отображаемой памяти исполняемых программ. При обращении к функции $55 (картиро— вать и выполнить JUMP) в регистрах DS'.DI содержится адрес описателя запроса. Описатель должен иметь длину 9 байт и соответствовать следующей структуре: первые 4 байта содержат сегмент и смещение точки, куда передается управление по инструкции JUMP FAR, следующий за ними байт указывает количество N картируемых страниц, а остальные 4 байта определяют полный адрес (т.е. сегмент и смещение) массива, описывающего новую карту страниц. Этот массив должен состоять из N пар слов и содержать номер логической страницы (первое слово каждой пары) и номер (для подфункции AL^O) или сегмент (AL=l) физической страницы (второе слово), функция $55 сначала осуществляет нужное картирование, а затем реализует инструкцию JUMP FAR.

{Сортировать память и выполнить инструкцию CALL

Вход: АН = $56;

AL — номер подфункции:

О — использовать номера физических страниц;

1 — использовать сегменты страниц;

2 — получить требуемый размер стека;

DX — дескриптор EMM;

DS:SI — адрес буфера запроса. Выход: ВХ — размер стека (для подфункции 2).

Работает приблизительно так же, как функция $55, но после картирования реализует инструкцию вызова подпрограммы CALL. При обращении к подфункциям 0 и 1 в регистрах DS:SI указывается адрес 22— байтного описателя вызова. Первые 9 байт этого описателя аналогичны описателю для функции $55. За ними следует еще один байт длины и FAR— адрес той карты страниц, которую необходимо установить перед выходом из подпрограммы. Последние 8 байт описателя зарезервированы для использования в EMM. С помощью подфункции 2 программа может получить размер области стека, используемой при вызове подфункций 0 и 1 функции $56.

Переместить/обменять блок памяти

Вход: АН = $57

AL — номер одфункции:

О — переместить блок;

1 — обменять блок;

DS:SI = адрес буфера запроса.

С помощью функции $57 программа может перемещать большие блоки данных как внутри EMS— памяти, так и между отображаемой и стандартной памятью. Максимальная длина перемещаемого блока составляет 1