From b50b32afa9db75287b641cf284f4212bddb5f863 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Thomas=20Lov=C3=A9n?= Date: Mon, 4 Dec 2017 12:25:04 +0100 Subject: [PATCH] Move VGA cursor when writing to screen --- src/kernel/drivers/vga.c | 10 ++++++++++ src/kernel/drivers/vga.tt | 3 +++ 2 files changed, 13 insertions(+) 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)