diff --git a/src/kernel/drivers/vga.c b/src/kernel/drivers/vga.c index c28e7ef..863f9ef 100644 --- a/src/kernel/drivers/vga.c +++ b/src/kernel/drivers/vga.c @@ -1,5 +1,6 @@ #include #include +#include void *vidmem; struct vga_cell{ @@ -20,6 +21,14 @@ void vga_init() format = 0x7; } +void movecursor() +{ + outb(0x3D4, 0x0F); + outb(0x3D5, (uint8_t)(cursor & 0xFF)); + outb(0x3D4, 0x0E); + outb(0x3D5, (uint8_t)((cursor >> 8) & 0xFF)); +} + void flush() { memcpy(vidmem, buffer, sizeof(buffer)); @@ -53,4 +62,5 @@ void vga_write(char c) } scroll(); flush(); + movecursor(); } diff --git a/src/kernel/drivers/vga.tt b/src/kernel/drivers/vga.tt index dab92f8..53bcced 100644 --- a/src/kernel/drivers/vga.tt +++ b/src/kernel/drivers/vga.tt @@ -1,6 +1,9 @@ // vim: ft=c #include +#include +#undef outb +#define outb(...) #include #undef VGA_MEMORY #define VGA_MEMORY calloc(80*24,3)