window_xy(num, frame[num].curx, frame[num].cury);
return c.i;
/* Очистить до конца строки */
void window_cleol(num)
int num;
register int i, x, y;
x = frame[num].curx;
y = frame[num].cury;
window_xy(num, frame[num].curx, frame[num].cury);
for(i=frame[num].cury; i<frame[num].endy-1; i++)
window_putchar(num,' ');
window_xy(num, x, y);
/* Переместить курсор на одну строку вверх.
При успешном завершении вернуть ненулевое значение; в противном случае - 0.
*/
window_upline(num)
int num;
if(frame[num].curx>0)
frame[num].curx--;
window_xy(num, frame[num].curx, frame[num].cury); return 1;
return 0;
/* Переместить курсор на одну строку вниз.
При успешном завершении вернуть ненулевое значение; в противном случае - 0.
*/
window_downline(num)
int num;
if(frame[num].curx<frame[num].endx-frame[num].startx-1 frame[num].curx++;
window_xy(num, frame[num].curx, frame[num].cury);
return 1;
return 1;
/* вернуться на одну позицию назад */
window_bksp(num)
int num;
if(frame[num].cury>0)
frame[num].cury--;
window_xy(num, frame[num].curx, frame[num].cury);
window_putchar(num, ' ');
frame[num].cury--;
window_xy(num, framenum.curx, frame[num].cury);
/********************************************************/
/* Дополнительные функции */
/********************************************************/
/* Вывести строку с установленными атрибутами */
void write_string(x, y, p, attrib)
int x, y;
char *p;
int attrib;
register int i;
char far *v;
v = vid_mem;
v += (x*160) + y*2; /* вычислить адрес */
for(i+y; *p; i++)
*v++ = *p++; /* вывести символ */
*v++ = attrib; /* вывести атрибуты */
/* Вывести символ с утановленными атрибутами */
void write_char(x, y, ch, attrib)
int x, y;
char ch;
int attrib;