diff options
Diffstat (limited to 'kernel')
| -rw-r--r-- | kernel/gpu/text_mode/colours.h (renamed from kernel/io/vga/colours.h) | 0 | ||||
| -rw-r--r-- | kernel/gpu/text_mode/display.c (renamed from kernel/io/vga/text_mode_display.c) | 16 | ||||
| -rw-r--r-- | kernel/gpu/text_mode/display.h | 7 | ||||
| -rw-r--r-- | kernel/io/keyboard/keyboard_handler.c | 8 | ||||
| -rw-r--r-- | kernel/io/vga/text_mode_display.h | 7 | ||||
| -rw-r--r-- | kernel/kernel.c | 167 |
6 files changed, 103 insertions, 102 deletions
diff --git a/kernel/io/vga/colours.h b/kernel/gpu/text_mode/colours.h index a019fd3..a019fd3 100644 --- a/kernel/io/vga/colours.h +++ b/kernel/gpu/text_mode/colours.h diff --git a/kernel/io/vga/text_mode_display.c b/kernel/gpu/text_mode/display.c index db0e028..3659e60 100644 --- a/kernel/io/vga/text_mode_display.c +++ b/kernel/gpu/text_mode/display.c @@ -8,7 +8,7 @@ char *video_ram = (char *) 0xB8000; int cursor_pos = 0; int char_attribute_byte = 0x07; -void vga_clear_screen() +void scrn_clear() { for (int i = 0; i < FRAME_SIZE; i = i + 2) { @@ -18,7 +18,7 @@ void vga_clear_screen() cursor_pos = 0; } -void vga_print(char *msg) +void scrn_print(char *msg) { int j = 0; while (msg[j] != '\0') @@ -29,26 +29,26 @@ void vga_print(char *msg) } } -void vga_print_ln(char *msg) +void scrn_println(char *msg) { - vga_print(msg); + scrn_print(msg); int current_line = cursor_pos / COLS; cursor_pos = (current_line + 1) * COLS; } -void vga_set_text_colour(int foreground, int background) +void scrn_set_text_colour(int foreground, int background) { char_attribute_byte = (background << 4) | foreground; } -void vga_print_raw(unsigned char byte) +void scrn_putchar(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() +void scrn_backspace() { if (cursor_pos != 0) { @@ -57,7 +57,7 @@ void vga_backspace() } } -void vga_newline() +void scrn_newline() { int current_line = cursor_pos / COLS; cursor_pos = (current_line + 1) * COLS; diff --git a/kernel/gpu/text_mode/display.h b/kernel/gpu/text_mode/display.h new file mode 100644 index 0000000..f4f3724 --- /dev/null +++ b/kernel/gpu/text_mode/display.h @@ -0,0 +1,7 @@ +void scrn_clear(); +void scrn_print(char *msg); +void scrn_println(char *msg); +void scrn_set_text_colour(int foreground, int background); +void scrn_putchar(unsigned char byte); +void scrn_backspace(); +void scrn_newline();
\ No newline at end of file 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/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 diff --git a/kernel/kernel.c b/kernel/kernel.c index fbef9d4..80f110d 100644 --- a/kernel/kernel.c +++ b/kernel/kernel.c @@ -1,96 +1,97 @@ -#include "./io/vga/text_mode_display.h" -#include "./io/vga/colours.h" +#include "./gpu/text_mode/display.h" +#include "./gpu/text_mode/colours.h" #include "./io/keyboard/keyboard_handler.h" #include "global_descriptor_table.h" void run_kern_demo() { - vga_set_text_colour(COLOUR_LIGHT_GREEN, COLOUR_BLACK); - vga_clear_screen(); + scrn_set_text_colour(COLOUR_LIGHT_GREEN, COLOUR_BLACK); + scrn_clear(); - vga_print_ln(" _ _ ____ _____ "); - vga_print_ln(" | | (_) / __ \\ / ____|"); - vga_print_ln(" | |_ _ _ __ _ _| | | | (___ "); - vga_print_ln(" | __| | '_ \\| | | | | | |\\___ \\ "); - vga_print_ln(" | |_| | | | | |_| | |__| |____) |"); - vga_print_ln(" \\__|_|_| |_|\\__, |\\____/|_____/ "); - vga_print_ln(" __/ | "); - vga_print_ln(" |___/ "); + scrn_println(" _ _ ____ _____ "); + scrn_println(" | | (_) / __ \\ / ____|"); + scrn_println(" | |_ _ _ __ _ _| | | | (___ "); + scrn_println(" | __| | '_ \\| | | | | | |\\___ \\ "); + scrn_println(" | |_| | | | | |_| | |__| |____) |"); + scrn_println(" \\__|_|_| |_|\\__, |\\____/|_____/ "); + scrn_println(" __/ | "); + scrn_println(" |___/ "); - vga_print_ln(""); - vga_print_ln("Supported colours"); - vga_set_text_colour(COLOUR_BLUE, COLOUR_BLACK); - vga_print("blue "); - vga_set_text_colour(COLOUR_GREEN, COLOUR_BLACK); - vga_print("green "); - vga_set_text_colour(COLOUR_CYAN, COLOUR_BLACK); - vga_print("cyan "); - vga_set_text_colour(COLOUR_RED, COLOUR_BLACK); - vga_print("red "); - vga_set_text_colour(COLOUR_PURPLE, COLOUR_BLACK); - vga_print("purple "); - vga_set_text_colour(COLOUR_BROWN, COLOUR_BLACK); - vga_print("brown "); - vga_set_text_colour(COLOUR_GRAY, COLOUR_BLACK); - vga_print_ln("gray "); - vga_set_text_colour(COLOUR_DARK_GREY, COLOUR_BLACK); - vga_print("dark gray "); - vga_set_text_colour(COLOUR_LIGHT_BLUE, COLOUR_BLACK); - vga_print("light blue "); - vga_set_text_colour(COLOUR_LIGHT_GREEN, COLOUR_BLACK); - vga_print("light green "); - vga_set_text_colour(COLOUR_LIGHT_CYAN, COLOUR_BLACK); - vga_print_ln("light cyan"); - vga_set_text_colour(COLOUR_LIGHT_RED, COLOUR_BLACK); - vga_print("light red "); - vga_set_text_colour(COLOUR_LIGHT_PURPLE, COLOUR_BLACK); - vga_print("light purple "); - vga_set_text_colour(COLOUR_YELLOW, COLOUR_BLACK); - vga_print("yellow "); - vga_set_text_colour(COLOUR_WHITE, COLOUR_BLACK); - vga_print_ln("white "); + scrn_println(""); + scrn_println("Supported colours"); + scrn_set_text_colour(COLOUR_BLUE, COLOUR_BLACK); + scrn_print("blue "); + scrn_set_text_colour(COLOUR_GREEN, COLOUR_BLACK); + scrn_print("green "); + scrn_set_text_colour(COLOUR_CYAN, COLOUR_BLACK); + scrn_print("cyan "); + scrn_set_text_colour(COLOUR_RED, COLOUR_BLACK); + scrn_print("red "); + scrn_set_text_colour(COLOUR_PURPLE, COLOUR_BLACK); + scrn_print("purple "); + scrn_set_text_colour(COLOUR_BROWN, COLOUR_BLACK); + scrn_print("brown "); + scrn_set_text_colour(COLOUR_GRAY, COLOUR_BLACK); + scrn_println("gray "); + scrn_set_text_colour(COLOUR_DARK_GREY, COLOUR_BLACK); + scrn_print("dark gray "); + scrn_set_text_colour(COLOUR_LIGHT_BLUE, COLOUR_BLACK); + scrn_print("light blue "); + scrn_set_text_colour(COLOUR_LIGHT_GREEN, COLOUR_BLACK); + scrn_print("light green "); + scrn_set_text_colour(COLOUR_LIGHT_CYAN, COLOUR_BLACK); + scrn_println("light cyan"); + scrn_set_text_colour(COLOUR_LIGHT_RED, COLOUR_BLACK); + scrn_print("light red "); + scrn_set_text_colour(COLOUR_LIGHT_PURPLE, COLOUR_BLACK); + scrn_print("light purple "); + scrn_set_text_colour(COLOUR_YELLOW, COLOUR_BLACK); + scrn_print("yellow "); + scrn_set_text_colour(COLOUR_WHITE, COLOUR_BLACK); + scrn_println("white "); - vga_set_text_colour(COLOUR_BLACK, COLOUR_WHITE); - vga_print("B"); - vga_set_text_colour(COLOUR_WHITE, COLOUR_BLUE); - vga_print("A"); - vga_set_text_colour(COLOUR_WHITE, COLOUR_GREEN); - vga_print("C"); - vga_set_text_colour(COLOUR_WHITE, COLOUR_CYAN); - vga_print("K"); - vga_set_text_colour(COLOUR_WHITE, COLOUR_RED); - vga_print("G"); - vga_set_text_colour(COLOUR_WHITE, COLOUR_PURPLE); - vga_print("R"); - vga_set_text_colour(COLOUR_WHITE, COLOUR_BROWN); - vga_print("O"); - vga_set_text_colour(COLOUR_WHITE, COLOUR_GRAY); - vga_print("U"); - vga_set_text_colour(COLOUR_WHITE, COLOUR_LIGHT_BLUE); - vga_print("N"); - vga_set_text_colour(COLOUR_BLACK, COLOUR_YELLOW); - vga_print("D"); - vga_set_text_colour(COLOUR_BLACK, COLOUR_LIGHT_GREEN); - vga_print(" "); + scrn_set_text_colour(COLOUR_BLACK, COLOUR_WHITE); + scrn_print("B"); + scrn_set_text_colour(COLOUR_WHITE, COLOUR_BLUE); + scrn_print("A"); + scrn_set_text_colour(COLOUR_WHITE, COLOUR_GREEN); + scrn_print("C"); + scrn_set_text_colour(COLOUR_WHITE, COLOUR_CYAN); + scrn_print("K"); + scrn_set_text_colour(COLOUR_WHITE, COLOUR_RED); + scrn_print("G"); + scrn_set_text_colour(COLOUR_WHITE, COLOUR_PURPLE); + scrn_print("R"); + scrn_set_text_colour(COLOUR_WHITE, COLOUR_BROWN); + scrn_print("O"); + scrn_set_text_colour(COLOUR_WHITE, COLOUR_GRAY); + scrn_print("U"); + scrn_set_text_colour(COLOUR_WHITE, COLOUR_LIGHT_BLUE); + scrn_print("N"); + scrn_set_text_colour(COLOUR_BLACK, COLOUR_YELLOW); + scrn_print("D"); + scrn_set_text_colour(COLOUR_BLACK, COLOUR_LIGHT_GREEN); + scrn_print(" "); - vga_set_text_colour(COLOUR_BLACK, COLOUR_LIGHT_CYAN); - vga_print("C"); - vga_set_text_colour(COLOUR_WHITE, COLOUR_LIGHT_RED); - vga_print("O"); - vga_set_text_colour(COLOUR_WHITE, COLOUR_LIGHT_PURPLE); - vga_print("L"); - vga_set_text_colour(COLOUR_BLACK, COLOUR_WHITE); - vga_print("O"); - vga_set_text_colour(COLOUR_WHITE, COLOUR_RED); - vga_print("U"); - vga_set_text_colour(COLOUR_WHITE, COLOUR_PURPLE); - vga_print("R"); - vga_set_text_colour(COLOUR_WHITE, COLOUR_BROWN); - vga_print("S"); - vga_set_text_colour(COLOUR_WHITE, COLOUR_GRAY); - vga_print("!"); + scrn_set_text_colour(COLOUR_BLACK, COLOUR_LIGHT_CYAN); + scrn_print("C"); + scrn_set_text_colour(COLOUR_WHITE, COLOUR_LIGHT_RED); + scrn_print("O"); + scrn_set_text_colour(COLOUR_WHITE, COLOUR_LIGHT_PURPLE); + scrn_print("L"); + scrn_set_text_colour(COLOUR_BLACK, COLOUR_WHITE); + scrn_print("O"); + scrn_set_text_colour(COLOUR_WHITE, COLOUR_RED); + scrn_print("U"); + scrn_set_text_colour(COLOUR_WHITE, COLOUR_PURPLE); + scrn_print("R"); + scrn_set_text_colour(COLOUR_WHITE, COLOUR_BROWN); + scrn_print("S"); + scrn_set_text_colour(COLOUR_WHITE, COLOUR_GRAY); + scrn_print("!"); - vga_set_text_colour(COLOUR_WHITE, COLOUR_BLACK); + scrn_set_text_colour(COLOUR_WHITE, COLOUR_BLACK); + scrn_newline(); } |