{
char lu[5]={ 0x20,0xDA,0хС9,0xD6,0xD5 };
char ld[5]={ 0x20,0xC0,0xC8,0xD3,0xD4 };
char ru[5]={ 0x20,0xBF,0xBB,0xB7,0xB8 };
char rd[5]={ 0x20,0xD9,0xBC,0xBD,0xBE };
char horiz[5]=( 0x20,0xC4,0xCD,0xC4,0xCD };
char vert[5] ={ 0x20,0хВЗ,0хВА,0хВА,0хВЗ };
int rpth,rptv,attr;
rptv=co12-coll-l;
//длина вертикали
if(rptv <= 0) rptv=l;
rpth=row2-rowl;
//длина горизонтали
if{rpth <= 0) rpth=l;
//анализ на допустимость параметров окна
if(shade == 1 && coll+rptv >= 79) goto ml;
if(shade ==-1 && coll==l) goto ml;
if(shade != 0 && rowl+rpth >= 25) goto ml;
if(rowl+rpth > 25 || coll+rptv+1 > 80) goto ml;
xy_s_out(rowl,coll,lu[bord]);
//верхний левый угол
s_out_h(horiz[bord],rptv);
//верхняя горизонталь
s_out_h(ru[bord],1);
//верхний правый угол
set_cur(rowl+1,coll);
//курсор в начало левой вертикали
s_out_v(vert[bord],rpth);
//левая вертикаль
set_cur(rowl+1,co!2);
//курсор в начало правой вертикали
s_out_v(vert[bord],rpth);
//правая вертикаль
//роспись внутренности пробелами
sbox_rel(rowl+1,coll+1,rpth,rptv, 32) ;
xy__s_out(row2,coll,Idfbord]);
//левый нижний угол
s_out_h(horiz[bord],rptv);
//нижняя горизонталь
s_out_h(rd[bord],1);
//правый нижний угол
if(shade == 0) goto m;
//обход, если нет тени
attr=_ATTR;
//запоминание атрибутов цвета
set_attr(7,0,0,0);
//серый цвет для тени,
if(shade == -1)
//если тень слева
{
set_cur(rowl+1,coll-1); //установка курсора левее и ниже
s_out_v{219,rpth+1); //вертикаль тени
s_out_h(219,rptv+1); //горизонталь тени, }
else //если тень справа {
set_cur(rowl+1,col2+l); //курсор правее и ниже
s_out_v(219,rpth+1); //вертикаль тени
set_cur(row2+l,coll+1); //курсор в начало горизонтали
s_out_h(219,rptv+1); //горизонталь тени }
_ATTR=attr; //восстановление атрибутов цвета
m: set_cur (rowl+1, coll+1) ; //курсор в начало окна
return;
ml:err_out("Ошибка при вызове box... "); }
Программа bох_rе1 — построение прямоугольника с рамкой и тенью