{Выводим фон) mov al,es:[bx] mov al,BCol

mov es:[bx],al {Устанавливаем все биты} @0:

end;

end end end; {WriteChar} /———————————————;

Function GraphRead(var F: TextRec): Integer; Far;

(Осуществляет ввод текста для процедур Read/ReadLn} var

XOt : Byte; {Начальное положение курсора}

YUp,YDn: Integer; {Размер курсора}

InsFlag: Boolean; {Флаг режима вставки}

Cur : Pointer; (Изображение курсора}

Back : Pointer; {Фон курсора}

S : String; {Строка ввода}

С '. Char; {Очередной символ} const

CSize: Word =• 0;

Procedure SetCursor;

{Устанавливает форму курсора} var

Filllnfo: FillSettingsType;

begin

if CSizeOO then begin

FreeMem(Back,CSize) ;

FreeMem(Cur,CSize) end;

YDn :== Yg+YF-1;

if InsFlag then YUp := YDn - 2

else

YUp :- Yg;

CSize := ImageSize(Xg,YUp,Xg+XF-l,YDn) ;

GetMem(Back,CSize) ;

Getlmage (XgiYUp^g+XF-l^YDr^Back^) ;

GetFillSettings(Filllnfo) ;

SetFillStyle(SolidFill,TCol) ;

Bar(Xg,YUp,Xg+XF-l,YDn) ;

with Filllnfo do

SetFillStyle(Pattern,Color) ;

GetMem(Cur,CSize) ;

Getlmage(Xg,YUp,Xg+XF-1,YDn,Cur^) ;

PutImage (XgyYUptBack^NormalPut) ;

end; {SetCursor} {——————}

Procedure Cursor;

{Создает изображение мигающего курсора} var

k: Integer;

const

D = 10;

begin

Getlmage(Xg,YUp,Xg+XF-1,YDn,Bac^) ;

while not KeyPressed do begin