diff --git a/kernel.c b/kernel.c index e41db163dd9d494ad441163a93a2a844897d8c57..088d1bd315acec3ca5df243084d5ffc288d4e1c0 100644 --- a/kernel.c +++ b/kernel.c @@ -85,7 +85,14 @@ void terminal_putentryat(char c, uint8_t color, size_t x, size_t y) { } void terminal_putchar(char c) { - terminal_putentryat(c, terminal_color, terminal_column, terminal_row); + if (c == '\n'){ + terminal_column = 0; + if (++terminal_row == VGA_HEIGHT){ + terminal_row = 0; +} + +}else{ + terminal_putentryat(c, terminal_color, terminal_column, terminal_row); if (++terminal_column == VGA_WIDTH) { terminal_column = 0; if (++terminal_row == VGA_HEIGHT) { @@ -93,6 +100,9 @@ void terminal_putchar(char c) { } } } + + +} void terminal_writestring(const char* data) { size_t datalen = strlen(data); @@ -111,5 +121,12 @@ void kernel_main() { * yet, '\n' will produce some VGA specific character instead. * This is normal. */ - terminal_writestring("Hello, kernel World!\n"); + +/*Output "Hello World" in blue */ +terminal_setcolor(make_color(COLOR_BLUE, COLOR_BLACK)); +terminal_writestring("Hello, kernel World!\n"); + +/*Output "Hello World" in red */ +terminal_setcolor(make_color(COLOR_RED, COLOR_BLACK)); +terminal_writestring("Hello, kernel World!\n"); }