>>1309796
write_char(frame[num].startx, frame[num].starty, 218, NORM_VID);
write_char(frame[num].startx, frame[num].endy, 191, NORM_VID);
write_char(frame[num].endx, frame[num].starty, 192, NORM_VID);
write_char(frame[num].endx, frame[num].endy, 217, NORM_VID);
}
/*************************************************************/
/* Оконные функции ввода/вывода */
/*************************************************************/
/* Вывести строку начиная с текущей позиции
в созданном окне.
Возвратить 0, если окно не активное,
и 1 - в противном случае.
*/
window_puts(num, str)
int num;
char *str;
{
/* убедитесь, что окно активное */
if(!frame[num].active) return 0;
for( ; *str; str++)
window_putchar(num, *str);
return 1;
}
/* Вывести символ в текущую позицию курсора
в созданном окне
Возвратить 0, если окно не активное,
и 1 - в противном случае.
*/
window_putchar(num, ch)
int num;
char ch;
{
register int x, y;
char far *v;
/* убедитесь, что окно активное */
if(!frame[num].active) return 0;
x = frame[num].curx + frame[num].startx + 1;
y = frame[num].cury + frame[num].starty + 1;
v = vid_mem;
v += (x*160) + y*2; /* вычислить адрес */
if(y>=frame[num].endy) {
return 1;
}
if(x>=frame[num].endx) {
return 1;
}