diff options
Diffstat (limited to 'kernel/io')
| -rw-r--r-- | kernel/io/keyboard/keyboard_handler.c | 8 | ||||
| -rw-r--r-- | kernel/io/vga/colours.h | 16 | ||||
| -rw-r--r-- | kernel/io/vga/text_mode_display.c | 64 | ||||
| -rw-r--r-- | kernel/io/vga/text_mode_display.h | 7 |
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 |