aboutsummaryrefslogtreecommitdiff
path: root/kernel/io
diff options
context:
space:
mode:
Diffstat (limited to 'kernel/io')
-rw-r--r--kernel/io/keyboard/keyboard_handler.c8
-rw-r--r--kernel/io/vga/colours.h16
-rw-r--r--kernel/io/vga/text_mode_display.c64
-rw-r--r--kernel/io/vga/text_mode_display.h7
4 files changed, 4 insertions, 91 deletions
diff --git a/kernel/io/keyboard/keyboard_handler.c b/kernel/io/keyboard/keyboard_handler.c
index 2578ebf..26b4586 100644
--- a/kernel/io/keyboard/keyboard_handler.c
+++ b/kernel/io/keyboard/keyboard_handler.c
@@ -1,5 +1,5 @@
#include "../../interrupt_descriptor_table.h"
-#include "../vga/text_mode_display.h"
+#include "../../gpu/text_mode/display.h"
#include "scancode_map.h"
extern void keyboard_handler(void);
@@ -70,13 +70,13 @@ void handle_keypress() {
switch(pressed_key)
{
case '\b':
- vga_backspace();
+ scrn_backspace();
break;
case '\n':
- vga_newline();
+ scrn_newline();
break;
default:
- vga_print_raw(pressed_key);
+ scrn_putchar(pressed_key);
}
}
diff --git a/kernel/io/vga/colours.h b/kernel/io/vga/colours.h
deleted file mode 100644
index a019fd3..0000000
--- a/kernel/io/vga/colours.h
+++ /dev/null
@@ -1,16 +0,0 @@
-#define COLOUR_BLACK 0x00
-#define COLOUR_BLUE 0x01
-#define COLOUR_GREEN 0x02
-#define COLOUR_CYAN 0x03
-#define COLOUR_RED 0x04
-#define COLOUR_PURPLE 0x05
-#define COLOUR_BROWN 0x06
-#define COLOUR_GRAY 0x07
-#define COLOUR_DARK_GREY 0x08
-#define COLOUR_LIGHT_BLUE 0x09
-#define COLOUR_LIGHT_GREEN 0x0A
-#define COLOUR_LIGHT_CYAN 0x0B
-#define COLOUR_LIGHT_RED 0x0C
-#define COLOUR_LIGHT_PURPLE 0x0D
-#define COLOUR_YELLOW 0x0E
-#define COLOUR_WHITE 0x0F \ No newline at end of file
diff --git a/kernel/io/vga/text_mode_display.c b/kernel/io/vga/text_mode_display.c
deleted file mode 100644
index db0e028..0000000
--- a/kernel/io/vga/text_mode_display.c
+++ /dev/null
@@ -1,64 +0,0 @@
-#include "colours.h"
-
-#define COLS (80 * 2) // 2 bytes per char
-#define ROWS 25
-#define FRAME_SIZE (ROWS * COLS)
-
-char *video_ram = (char *) 0xB8000;
-int cursor_pos = 0;
-int char_attribute_byte = 0x07;
-
-void vga_clear_screen()
-{
- for (int i = 0; i < FRAME_SIZE; i = i + 2)
- {
- video_ram[i] = ' ';
- video_ram[i + 1] = char_attribute_byte;
- };
- cursor_pos = 0;
-}
-
-void vga_print(char *msg)
-{
- int j = 0;
- while (msg[j] != '\0')
- {
- video_ram[cursor_pos++] = msg[j];
- video_ram[cursor_pos++] = char_attribute_byte;
- ++j;
- }
-}
-
-void vga_print_ln(char *msg)
-{
- vga_print(msg);
- int current_line = cursor_pos / COLS;
- cursor_pos = (current_line + 1) * COLS;
-}
-
-void vga_set_text_colour(int foreground, int background)
-{
- char_attribute_byte = (background << 4) | foreground;
-}
-
-void vga_print_raw(unsigned char byte)
-{
- video_ram[cursor_pos++] = byte;
- video_ram[cursor_pos++] = char_attribute_byte;
-}
-
-// TODO - jump cursor to prev non 0 text char rather than reversing through whole array
-void vga_backspace()
-{
- if (cursor_pos != 0)
- {
- video_ram[--cursor_pos] = char_attribute_byte;
- video_ram[--cursor_pos] = 0;
- }
-}
-
-void vga_newline()
-{
- int current_line = cursor_pos / COLS;
- cursor_pos = (current_line + 1) * COLS;
-} \ No newline at end of file
diff --git a/kernel/io/vga/text_mode_display.h b/kernel/io/vga/text_mode_display.h
deleted file mode 100644
index 6c46185..0000000
--- a/kernel/io/vga/text_mode_display.h
+++ /dev/null
@@ -1,7 +0,0 @@
-void vga_clear_screen();
-void vga_print(char *msg);
-void vga_print_ln(char *msg);
-void vga_set_text_colour(int foreground, int background);
-void vga_print_raw(unsigned char byte);
-void vga_backspace();
-void vga_newline(); \ No newline at end of file