Функция: Хранит статус завершения (код возврата) предыдущего обращения к функциям EMM. Смысл различных значений этой переменной указан в табл.15.
Функция CctEMMVersion Объявление: Function FetEMMVersion: String;
Функция: Возвращает номер версии EMM в формате Х.Х. Например, для EMM версии 4.0 возвращается строка «4.0».
Процедура GetEMSInfo Объявление: Procedure GetEMSInfo(var AllPage, Pages: Word);
Функция: Возвращает в переменной AllPage общее число EMS— страниц, а в Pages количество свободных страниц (т.е. не связанных ни с одним дескриптором).
Функция IsEMS. Объявление: Function IsEMS: Boolean;
Функция: Определяет наличие в компьютере EMS— памяти и возвращает True, если память обнаружена. В электронном справочнике «Не1р\» фирмы Flambeaux Software, Inc. для проверки факта подключения драйвера EMS— памяти рекомендуется прочитать имя драйвера — строку «ЕММХХХХО», содержащуюся в его заголовке (со смещением 10 от начала заголовка); вектор прерывания $67 всегда содержит адрес заголовка, поэтому следующая подпрограмма может определить, загружен ли EMM:
Function IsEMM: Boolean;
type
THead = record
Beg: array [1..10] of Byte;
Head: array [1..8] of Char
end;
var
PHead:"Thead;
P: Pointer absolute PHead;
begin
GetIntVec($67,P) ;
IsEMM := PHead".Head»'ЕММХХХХО' end;
Однако па практике эта проверка не всегда дает правильный результат, так как вектор $67 может быть подменен другими резидентными программами, активно использующими EMS— память. После такой подмены этот вектор будет указывать на новый обработчик прерывания, в котором осуществляется контроль за использованием EMS— памяти и который вовсе не обязан содержать заголовок драйвера со смещением 10 байт от точки входа. В функции IsEMS используется более аккуратный прием, также рекомендуемый в справочнике «Help!»: в рамках MS-DOS драйвер EMM объявляется как внешний файл с именем «ЕММХХХХО»; функция создает дескриптор файла с этим именем с помощью вызова функции $3D MS-DOS и открывает его для чтения, после чего с помощью вызова IOCTL (функция $44 MS-DOS) проверяется статус файла. Если файл существует и его статус не равен нулю (что означает — устройство готово, нет конца файла), считается, что драйвер EMM подключен и