9 #define TEXTBUF_SIZE 256
11 static char textbuf[TEXTBUF_SIZE][NCOLS];
12 static int tbuf_first, tbuf_last;
14 static int curx, cury, scroll;
17 static void newline(void);
29 curx = cury = scroll = 0;
30 tbuf_first = tbuf_last = 0;
31 memset(textbuf[0], 0, sizeof textbuf[0]);
34 void con_putchar(int c)
38 curx = (curx + 8) & 0xfffffff8;
54 textbuf[tbuf_last][--curx] = 0;
55 vga_drawchar(curx, cury, 0);
60 textbuf[tbuf_last][curx] = c;
61 vga_drawchar(curx, cury, c);
71 vga_clearline(NROWS - 1);
74 vga_setcursor(curx, cury);
77 static void newline(void)
84 num = (tbuf_last + 1) & (TEXTBUF_SIZE - 1);
86 if(tbuf_last == tbuf_first) {