summaryrefslogtreecommitdiff
path: root/terminal/vt52.c
diff options
context:
space:
mode:
Diffstat (limited to 'terminal/vt52.c')
-rw-r--r--terminal/vt52.c13
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);
}