diff --git a/kernel/kernel/kernel.c b/kernel/kernel/kernel.c index aac93e9..99f1bf3 100644 --- a/kernel/kernel/kernel.c +++ b/kernel/kernel/kernel.c @@ -10,6 +10,9 @@ void kernel_main(void) { printf("Hello from OrionOS!\n"); printf("Testing serial\n"); init_serial(); - write_serial('t'); + serial_print("Test is success!\n"); + serial_print("Newline test\n"); + serial_print("No newline test "); + serial_print("No newline test"); printf("Test finished success!\n"); } diff --git a/kernel/kernel/serial.h b/kernel/kernel/serial.h index 1e40274..0451afc 100644 --- a/kernel/kernel/serial.h +++ b/kernel/kernel/serial.h @@ -1,4 +1,5 @@ #include +#include #define PORT 0x3f8 // COM1 @@ -44,8 +45,16 @@ void write_serial(char a) { outb(PORT, a); } -void serial_printf() { - +void serial_print(const char* str, ...) { + size_t len = strlen(str); + for (size_t i=0; i < len; i++) { + if (str[i] == '\n') { + write_serial('\r'); + write_serial('\n'); + } else { + write_serial(str[i]); + } + } } inline void outb(uint16_t port, uint8_t val)