diff options
Diffstat (limited to 'terminal/vt52.c')
| -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); } |
