var

i : Integer;

begin

{Проверяем параметры обращения) if not ((Page>MaxPage) or (X1<1) or (X2<=X1) or (Y1<1) or (Y2<-Y1) or (X2>MaxChar) or (Y2>MaxLine) or (Bord>2)) then begin

WnteCharXY(Page,Xl,Yl,BorderChar[Bord,l]) ;

for i := 1 to X2-X1-1 do {Верхняя рамка} WriteCharXY(Page,Xl+i,Yl,BorderChar[Bord,2]);

WnteCharXY(Page,X2,yi,BorderChar[Bord,3]) ;

for i := 1 to Y2-Y1-1 do {Боковые стороны} begin

WriteCharXY(Page,Xl,Yl+i,BorderChar[Bord,4]) ;

WriteCharXY(Page,X2,Yl+i,BorderChar[Bord,4]) end;

WnteCharXY(Page,Xl,Y2,BorderChar[Bord,5]);

for i := 1 to x2-xl-l do {Нижняя рамка} WriteCharXY(Page,Xl+i,Y2,BorderChar[Bord,2]) ;

WriteCharXY(Page,X2,Y2,BorderChar[Bord,6]) end end {Border};

{— —.—————-.————————;

Procedure CopyChar(Page:Byte; Cr:Char;Attr:Byte; Count:Word);

{Выводит несколько копий символа} begin

if (Count>0) and (Page<=MaxPage) then with Reg do begin

AH :== 9; (Вывод символа} AL := ord(Cr); {Код символа} BL := Attr; {Атрибут} BH := Page; {Страница} СХ := Count; (Количество копий} Intr($lO,Reg) end end /CopyChar};

^—————————————————J

Procedure GetChar (Page: Byte; var Cr: Char; var Attr; Byte);

{Читает символ, на который указывает курсор, и его атрибуты) begin

if Page<=MaxPage then with Reg do begin

AH := 8; {Читать символ) ' BH := Page; {Страница) Intr($10,Reg) ;

Cr := chr(AL); {Символ} Attr := АН {Его атрибут) end

else {Неверная страница) begin

Cr :» chr(O);

Attr := 0 end end {GetChar);

Procedure InitText;

{Переопределяет константы, зависящие or адаптера и режима его работы. Содержимое экрана не меняется)