{-------- Имитатор текстового файла ---------^
PEMSText ^TEMSText;
TEMSText ° object (TEMSType)
Procedure SetItem(S: String);
Function Getltem: String;
end;
{-————— копия экрана в EMS-памяти ————-} PEMSScreen =^TEMSScreen;
TEMSScreen = object (TEMSArea)
Mode: Byte; {Код режиыа)
Constructor Init;
Constructor Load(var P: File) ;
Procedure Store(var F: File); Virtual;
Procedure PutScreen;
Procedure GetScreen;
end;
var
EMSStatus: Byte; {Статус последней операции}
Function IsEMS: Boolean;
{Возвращает TRUE, если в ПК имеется EMS-память}
function GetEMMVersion: String;
{Возвращает номер версии EMM в формате 'Х.Х'}
Function EMSSeg: Word;
{Возвращает сегментную часть адреса окна EMS-памяти}
Procedure GetEMSInfo(var AllPage, Pages: Word);
{Возвращает полное количество (AllPages) и количество незанятых (Pages) страниц}
Procedure MewEMSHandle(var Handle: Word;Pages: Word);
{Открывает новый дескриптор Handle и связывает с ним Pages страниц EMS}
Procedure DisposeEMSHandle(var Handle: Word);
{Удаляет дескриптор Handle и освобождает связанную с ниш память}
Procedure MapEMSPage(Handle,Physic,Logic: Word);
{Картирует окно, связывая его Physic физическую страницу с
Logic логической страницей дискриптора Handle! const
EMSErrorFlag : Boolean =' False;
RegHeadIEMSArea : String [14]='F_EMS TEMSArea'
RegHeadTEMSVector: String [14]='F_EMS TEMSVect'
RegHeadTEMSMatrix: String [14]='F_EMS TEMSMatr'
RegHeadTEMSArray : String [14]='F_EMS TEMSArra
RegHeadTEMSType : String [14]-•F_EMS TEMSType'
RegHeadTEMSScreen: String [14]='F_EMS TEMSScre' /——-_———————_——————————————„————;
IMPLEMENTATION ,———————————————————————————————/
Uses DOS,Graph,F Text;
var
Reg: registers;
const
EMSVer : riord =0; {Версия iSMM; используется как флаг проверки наличия EMS) EMSS : Word =0; {Сегмент окна}