приведет к возникновению ошибки $8D, а повторный вызов $48 без вызова $47 — ошибки $8Е.

Дать количество активных дескрипторов

Вход: АН == $4 в. Выход: ВХ — количество дескрипторов.

Функция $4 В возвращает в регистре ВХ количество активных в данный момент дескрипторов, а функция $4 С — количество связанных с дескриптором логических страниц (см. замечание к функции $4 С).

Дать количество связанных с дескриптором страниц

Вход: АН = $4 С;

DX = дескриптор. Выход: ВХ = количество страниц.

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

При выполнении следующей программы на экран выводится общее количество дескрипторов и свободная EMS— память к моменту начала работы программы, затем создается новый дескриптор и ему передается вся доступная память. В заключение вновь выводится общее количество дескрипторов и количество страниц, которыми владеет вновь созданный дескриптор, после чего дескриптор уничтожается.

Uses DOS;

var

Reg: Registers;

Procedure Intr67;

{Выполняет прерывание $67 с регистрами, заданными значениями переменной Reg} begin

Intr($67,Reg) ;

if Reg.ahoO then begin

WriteLn('Ошибка ',Reg.ah);

Halt end end;

va-

Handle: Word;

begin

with Reg do

begin

^Определяем общее количество дескрипторов} ah := $4В;

Intr67;

WriteLn('Используется',bx:3,' дескрипторов');

{Определяем объем всей и доступной EMS-памяти}