{-------- Имитатор текстового файла ---------^

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; {Сегмент окна}