From 987d6c6e5e931f349a3f48b890a2ab9ee0c430b4 Mon Sep 17 00:00:00 2001 From: Aleksa Vučković Date: Wed, 29 Jun 2022 17:23:50 +0200 Subject: disabled cursor --- src/c/cursor.c | 27 +++++++++++++++++++++++++++ src/c/kernel.c | 2 ++ 2 files changed, 29 insertions(+) create mode 100644 src/c/cursor.c (limited to 'src/c') diff --git a/src/c/cursor.c b/src/c/cursor.c new file mode 100644 index 0000000..328b424 --- /dev/null +++ b/src/c/cursor.c @@ -0,0 +1,27 @@ +#include +#include + +void enable_cursor(uint32_t cursor_start, uint32_t cursor_end) +{ + ioport_out(0x3D4, 0x0A); + ioport_out(0x3D5, (ioport_in(0x3D5) & 0xC0) | cursor_start); + + ioport_out(0x3D4, 0x0B); + ioport_out(0x3D5, (ioport_in(0x3D5) & 0xE0) | cursor_end); +} + +void disable_cursor() +{ + ioport_out(0x3D4, 0x0A); + ioport_out(0x3D5, 0x20); +} + +uint16_t get_cursor_position(void) +{ + uint16_t pos = 0; + ioport_out(0x3D4, 0x0F); + pos |= (uint16_t)ioport_in(0x3D5); + ioport_out(0x3D4, 0x0E); + pos |= (uint16_t)(ioport_in(0x3D5) << 8); + return pos; +} diff --git a/src/c/kernel.c b/src/c/kernel.c index 9692b32..5851f49 100644 --- a/src/c/kernel.c +++ b/src/c/kernel.c @@ -6,6 +6,7 @@ #include #include #include +#include void kernel_main(void) { @@ -18,6 +19,7 @@ void kernel_main(void) terminal_initialize(); prompt(); + disable_cursor(); while(1) __asm__("hlt\n\t"); } -- cgit v1.2.3