Тексты программ__________________________ _____________ __345
dx := ofs(MouseHandler);
Intr($33,Reg);
OldMask := ex end
end; {ChangeMouseHandler! ^————————.———————;
Procedure ClearMouseHandler;
(Удаляет обработчик событий} begin
if IsMouse then with Reg do begin
ax := $OC;
ex := 0;
es :=• 0;
dx := 0;
Intr($33,Reg) end;
end; {ClearMouseHandler} ^==»-====»»==; end. {F_Mouse} {—»—==——=-===}
П6. МОДУЛЬ F EMS ДЛЯ РАБОТЫ С ОТОБРАЖАЕМОЙ ПАМЯТЬЮ
Описание модуля см. п.5.3.
(»=========»===-; Unit F_EMS; f-—==—=-»-«-===/
^—————————————————————————————+
I Этот модуль содержит объекты и подпрограммы f I для работы с EMS-паыятью 1 +——————.———_——————————————————+/
{$X+,N1-,E+)
INTERFACE
^———————————————————————————————;
type
/——----— Базовый объект иерархии -—-————} PEMSArea =ATEMSArea,• TEMSArea " Object
Handle: Word; {Дескриптор}
MaxPag: Word; (Количество страниц}
Size: LongInt; (Длина используемой памяти}
Constructor Init(ASize: LongInt);
Constructor Load(var F: File);
Destructor Done; Virtual;
Peocedure EMSError(NError: Byte); Virtual;
Procedure Store(var F: File); Virtual;
Procedure WriteEMS(var Source; Dest,Sz: LongInt); Virtual;
Procedure ReadEMS(Source: LongInt; var Dest; Sz: LongInt); Virtual;
/———————; private (——————)
Function ReadFilefvar F: File; var Dest; Sz: Word): Boolean; Virtual;
Function WriteFile(var F: file; var Source; Sz: Word): Boolean; Virtual;
end;
{—————— Одномерный массив a EMS ——————}
PEMSVector -"TEMSVector;
TEMSVector - object (TEMSArea)
ItemS : LongInt; {Длина элемента массива)
Minind; LongInt; {Минимальный индекс}
Maxind: LongInt; {Максимальный индекс}
Constructor Init(ASize,Min,Max: LongInt);
Constructor Load(var F: File);