Тексты программ 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}