diff options
| author | Michal Idziorek <m.i@gmx.at> | 2015-05-18 09:20:01 +0200 |
|---|---|---|
| committer | Michal Idziorek <m.i@gmx.at> | 2015-05-18 09:20:01 +0200 |
| commit | a6184be79e3918764d5e683796afbd8e8ccba018 (patch) | |
| tree | 870a5506efad410c89524bbeb740fb44974bf1da /terminal | |
| parent | fe79552d9fcfd60d8c2bb828c6b93cf471ef7b75 (diff) | |
fifo through ringbuffer(stdin) and vt52(stdout) finally working!
Diffstat (limited to 'terminal')
| -rw-r--r-- | terminal/vt52.c | 13 |
1 files changed, 7 insertions, 6 deletions
diff --git a/terminal/vt52.c b/terminal/vt52.c index 66fd5f1..9197347 100644 --- a/terminal/vt52.c +++ b/terminal/vt52.c @@ -6,8 +6,8 @@ #include "vt52.h" #include "kernel/kmalloc.h" -#define VT52_WIDTH 80 -#define VT52_HEIGHT 25 +#define VT52_WIDTH 75 +#define VT52_HEIGHT 24 #define VT52_ESC_1 0x1b //ESC @@ -130,7 +130,7 @@ bool vt52_put(vt52_tty *tty, uint8_t c) case VT52_ERASE_SCR: for(uint32_t y=tty->y+1;y<tty->height;y++) { - for(uint32_t x=0;x<tty->width-1;x++) + for(uint32_t x=0;x<tty->width;x++) { uint32_t c=tty->data[index(tty,x,y+1)]; tty->data[index(tty,x,y)] = c; @@ -139,7 +139,7 @@ bool vt52_put(vt52_tty *tty, uint8_t c) } case VT52_ERASE_LINE: - for(uint32_t x=tty->x;x<tty->width-1;x++) + for(uint32_t x=tty->x;x<tty->width;x++) { uint32_t c=tty->data[index(tty,x,tty->y)]; tty->data[index(tty,x,tty->y)] = c; @@ -165,7 +165,7 @@ bool vt52_put(vt52_tty *tty, uint8_t c) else { tty->y++; - tty->x=0; + tty->x=-1; } tty->x++; @@ -182,9 +182,10 @@ bool vt52_put(vt52_tty *tty, uint8_t c) tty->y--; for(uint32_t y=0;y<tty->height;y++) { - for(uint32_t x=0;x<tty->width-1;x++) + for(uint32_t x=0;x<tty->width;x++) { uint32_t c=tty->data[index(tty,x,y+1)]; + if(y==tty->height-1)c=' '; tty->data[index(tty,x,y)] = c; tty->screen->put_char(c,0xf,x,y); } |
