diff options
| author | James Barnett <noreply@jamesbarnett.xyz> | 2018-08-28 19:01:50 +0100 |
|---|---|---|
| committer | James Barnett <noreply@jamesbarnett.xyz> | 2018-08-28 19:01:50 +0100 |
| commit | 05295faee701148e2b4fcb6ebde09826d32bab05 (patch) | |
| tree | 0b9a3a4816539416d7d1fa8a25a934f2bd1206fe | |
| parent | 326526206eface026e6ec291d75cd037dbec6609 (diff) | |
| download | tinyOS-05295faee701148e2b4fcb6ebde09826d32bab05.tar.xz tinyOS-05295faee701148e2b4fcb6ebde09826d32bab05.zip | |
Demo colours
| -rw-r--r-- | kernel/io/vga/text_mode_diplay.h | 8 | ||||
| -rw-r--r-- | kernel/io/vga/text_mode_display.c | 10 | ||||
| -rw-r--r-- | kernel/kernel.c | 95 |
3 files changed, 93 insertions, 20 deletions
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(); } |