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 адаптера и режима его работы. Содержимое экрана не меняется)