Тексты программ 25S

with Reg,Pages[ActirePage] do begin

AH := 1; {Управление курсором} СН := CLineUp; {Верхняя строка развертки} CL := CLineDown {Нижняя строка} end;

Intr($10,Reg) ;

Pages[ActivePage].CVisible := True end {CursorOn/ ;

^—————————————————_.

Procedure CursorOnOff(Page: Byte; Vis: Boolean);

{Устанавливает признак видимости курсора} begin

if Page<=MaxPage then if Page-ActivePage then case Vis of

True : Cursor-Off;

False: CursorOn end else

Pages[Page].CVisible := Vis end; (CursorOnOff} /————————„——————;

Procedure GetCursor (Page: Byte; var X,Y,Up,Down: Byte);

/'Возвращает координаты и размер курсора:

PAGE - номер страницы;

X, Y - координаты (отсчет от 1,1);

Up, Down - размер курсора} begin

if Page<=MaxPage then with Reg,Pages[Page] do begin

AH := 3; {Получаем положение курсора) ВН := Page; {Номер страницы} Intr($10,Reg) ;

Х := succ(DL); {Преобразуем координаты} Y := succ(DH); {к началу в 1,1} Up := CLineUp; (Верхняя строка развертки} Down := CLineDown (Нижняя строка} end end {GetCursor};

^———————————————;

Function GetCursorVisible (Page: Byte): Boolean;

{Возвращает признак видимости курсора} begin

GetCursorVisible := Pages[Page].CVisible end; (GetCursorVisible} ^———————————————;

Procedure PutCursor(Page,X,Y: Byte);

(Устанавливает требуемое положение курсора. PAGE - номер страницы;

X, Y - координаты курсора (отсчет от 1,1)} begin

{Проверяем параметры обращения} if (Page<=MaxPage)

and (X in [1..MaxChar])

and (Y in [1..MaxLine]) then wxth Reg do begin

AH := 2; {Установить курсор}

DH := pred(Y); {Преобразуем координаты}

DL := pred(X); {к началу в 0,0}