From 05295faee701148e2b4fcb6ebde09826d32bab05 Mon Sep 17 00:00:00 2001 From: James Barnett Date: Tue, 28 Aug 2018 19:01:50 +0100 Subject: Demo colours --- kernel/io/vga/text_mode_diplay.h | 8 ++-- kernel/io/vga/text_mode_display.c | 10 ++--- kernel/kernel.c | 95 ++++++++++++++++++++++++++++++++++----- 3 files changed, 93 insertions(+), 20 deletions(-) (limited to 'kernel') diff --git a/kernel/io/vga/text_mode_diplay.h b/kernel/io/vga/text_mode_diplay.h index 269a6ce..9441925 100644 --- a/kernel/io/vga/text_mode_diplay.h +++ b/kernel/io/vga/text_mode_diplay.h @@ -1,4 +1,4 @@ -void clear_screen(); -void print(char *msg); -void print_ln(char *msg); -void set_text_colour(int foreground, int background); \ No newline at end of file +void vga_clear_screen(); +void vga_print(char *msg); +void vga_print_ln(char *msg); +void vga_set_text_colour(int foreground, int background); \ No newline at end of file diff --git a/kernel/io/vga/text_mode_display.c b/kernel/io/vga/text_mode_display.c index 958eb87..4844524 100644 --- a/kernel/io/vga/text_mode_display.c +++ b/kernel/io/vga/text_mode_display.c @@ -8,7 +8,7 @@ char *video_ram = (char *)0xB8000; int cursor_pos = 0; int char_attribute_byte = 0x07; -void clear_screen() +void vga_clear_screen() { for (int i = 0; i < FRAME_SIZE; i = i + 2) { @@ -18,7 +18,7 @@ void clear_screen() cursor_pos = 0; } -void print(char *msg) +void vga_print(char *msg) { int j = 0; while (msg[j] != '\0') @@ -29,14 +29,14 @@ void print(char *msg) } } -void print_ln(char *msg) +void vga_print_ln(char *msg) { - print(msg); + vga_print(msg); int current_line = cursor_pos / COLS; cursor_pos = (current_line + 1) * COLS; } -void set_text_colour(int foreground, int background) +void vga_set_text_colour(int foreground, int background) { char_attribute_byte = (background << 4) | foreground; } \ No newline at end of file diff --git a/kernel/kernel.c b/kernel/kernel.c index d10060a..fa659dc 100644 --- a/kernel/kernel.c +++ b/kernel/kernel.c @@ -1,23 +1,96 @@ #include "./io/vga/text_mode_diplay.h" #include "./io/vga/colours.h" -void run_kern() +void run_kern_demo() { - clear_screen(); + vga_set_text_colour(COLOUR_LIGHT_GREEN, COLOUR_BLACK); + vga_clear_screen(); - print_ln("I am a kernel!"); - set_text_colour(COLOUR_WHITE, COLOUR_GREEN); - print("I am on a new line"); - print_ln(" - I am not"); + vga_print_ln(" _ _ ____ _____ "); + vga_print_ln(" | | (_) / __ \\ / ____|"); + vga_print_ln(" | |_ _ _ __ _ _| | | | (___ "); + vga_print_ln(" | __| | '_ \\| | | | | | |\\___ \\ "); + vga_print_ln(" | |_| | | | | |_| | |__| |____) |"); + vga_print_ln(" \\__|_|_| |_|\\__, |\\____/|_____/ "); + vga_print_ln(" __/ | "); + vga_print_ln(" |___/ "); - set_text_colour(COLOUR_RED, COLOUR_WHITE); - print_ln("red on white"); + 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 "); - set_text_colour(COLOUR_WHITE, COLOUR_BLUE); - print_ln("white on blue"); + 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(" "); + + 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); } + + void kernel_entrypoint() { - run_kern(); + run_kern_demo(); } -- cgit v1.2.3