aboutsummaryrefslogtreecommitdiff
path: root/kernel
diff options
context:
space:
mode:
Diffstat (limited to 'kernel')
-rw-r--r--kernel/io/vga/text_mode_diplay.h8
-rw-r--r--kernel/io/vga/text_mode_display.c10
-rw-r--r--kernel/kernel.c95
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();
}