252________________________________________________Приложение

(Сохраняет текущее состояние страницы PAGE в буфере BOF} ^——————————————————————————————»

I Подпрограммы управления окнами I *—————————————.————————————————*;

Procedure ChangeWindAttribute(Page,01dAtt,NewAtt: Byte);

{Заменяет в окне PAGE атрибут OLDATT на значение МЕИАТТ}

Procedure CopyWind(Page,X,Y: Byte; var Buf; LX,LY: Byte);

(Переносит копию окна из памяти на страницу}

Procedure GetWindow (Pac-e: Byte);

(Восстанавливает состояние экрана, бывшее перед обращением к процедуре PUTWINDOff: PAGE - номер страницы, куда была скопирована активная}

Procedure PutWindow(Xl,Yl,X2,Y2,Text,Back,Bord,Page: Byte;

Header: String;Clip,Build,Play: Boolean);

(Сохраняет активную страницу в заданной текстовой странице, создает в активной странице окно с заданными атрибутами, очищает его и обводит рамкой:

XI...Y2 - координаты окна; TEXT - цвет символов; BACK - цвет фона;

BORD - константа, указывающая тип рамки; PAGE - номер 0. .Ma.xPa.ge страницы, куда будет скопирована активная страница; HEADER - заголовок окна;

CLIP - признак границ (TRUE - исключая XI...Y2, FALSE - включая границы XI...Y2); BUILD- признак развертывания окна; PLAY - надо ли сопровождать звуком}

Procedure SaveWind(Page: Byte; var Buf; var LX,LY: Byte);

(Сохраняет копию окна в буфере BUF}

Procedure SetPageWindow (Page,XI,Y1,X2,Y2,Bord: Byte;

Header: String; Clip: Boolean);

(Создает окно в странице PAGE и обводит его рамкой: PAGE - номер страницы;

XI...Y2 - координаты окна; BORD - константа, указывающая тип рамки;

HEADER - заголовок окна; CLIP - признак границ (TRUE - внутри XI...Y2, FALSE - включая границы XI...Y2). Символы рамки выводятся с текущими атрибутами, окно очищается}

Procedure SetWindAttribute(Page,Attr: Byte);

(Устанавливает новый атрибут окна}

Procedure SetWindow (Xl,Yl,X2,Y2,Bord: Byte; Header: String; Clip,Build,Play:

Boolean);

{Создает окно в активной странице и обводит его рамкой: XI...Y2 - координаты окна; BORD - константа, указывающая тип рамки; HEADER - заголовок окна;

CLIP - признак границ (TRUE - внутри XI...Y2, FALSE - включая границы XI...Y2); BUILD- признак развертывания окна; PLAY - надо ли сопровождать звуком. Символы рамки выводятся с текущими атрибутами, окно очищается}

Procedure WindMoveTo(Page,X,Y: Byte; var Buf; ClipW: Boolean);

(Перемещает окно в новое положение: PAGE - номер страницы; X,Y - новые координаты левого верхнего угла; BUF - вид экрана без окна; CLIPW- признак отсечки изображения}

Procedure WindMoveRel(Page: Byte; DX,DY: Integer; var Buf; ClipW: Boolean);

(Смещает окно относительно прежнего положения: PAGE - номер страницы;

DX,DY- приращения координат левого верхнего угла; BUF - вид экрана без окна;

CLIPW- признак отсечки изображения/

Function WindSize(Page: Byte): Word;

(Возвращает размер буфера для сохранения окна}