aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorMarvin Borner2019-09-16 19:20:24 +0200
committerMarvin Borner2019-09-16 19:20:24 +0200
commite7834a6bc1715faaca4b60e86609f8b62598814a (patch)
tree4bf78a4a85fcea3ccb4c36fa3f65900b47ee1adf /src
parent49e44e032d43d12dc3b8686d5993382fc2a96ca4 (diff)
Changed cursor shape
Diffstat (limited to 'src')
-rw-r--r--src/graphics/vga.c26
1 files changed, 17 insertions, 9 deletions
diff --git a/src/graphics/vga.c b/src/graphics/vga.c
index 22e1255..cf04027 100644
--- a/src/graphics/vga.c
+++ b/src/graphics/vga.c
@@ -54,7 +54,23 @@ void terminal_clear() {
}
}
+void terminal_enable_cursor(uint8_t cursor_start, uint8_t cursor_end) {
+ send(0x3D4, 0x0A);
+ send(0x3D5, (receive(0x3D5) & 0xC0) | cursor_start);
+ send(0x3D4, 0x0B);
+ send(0x3D5, (receive(0x3D5) & 0xE0) | cursor_end);
+}
+
+void terminal_update_cursor(void) {
+ unsigned temp = terminal_row * VGA_WIDTH + terminal_column;
+ send(0x3D4, 14);
+ send(0x3D5, temp >> 8);
+ send(0x3D4, 15);
+ send(0x3D5, temp);
+}
+
void terminal_initialize(void) {
+ terminal_enable_cursor(0, 15);
terminal_row = 0;
terminal_column = 0;
terminal_color = vga_entry_color(VGA_COLOR_LIGHT_GREY, VGA_COLOR_BLACK);
@@ -74,14 +90,6 @@ void terminal_scroll(void) {
}
}
-void terminal_update_cursor(void) {
- unsigned temp = terminal_row * VGA_WIDTH + terminal_column;
- send(0x3D4, 14);
- send(0x3D5, temp >> 8);
- send(0x3D4, 15);
- send(0x3D5, temp);
-}
-
void terminal_set_color(uint8_t color) {
terminal_color = color;
}
@@ -126,4 +134,4 @@ void terminal_write(const char *data, size_t size) {
void terminal_write_string(const char *data) {
terminal_write(data, strlen(data));
-} \ No newline at end of file
+}