diff options
Diffstat (limited to 'kernel/main.c')
-rw-r--r-- | kernel/main.c | 26 |
1 files changed, 26 insertions, 0 deletions
diff --git a/kernel/main.c b/kernel/main.c new file mode 100644 index 0000000..513894b --- /dev/null +++ b/kernel/main.c @@ -0,0 +1,26 @@ + +void kernel_serial_out(char* str); + +void main() { + + kernel_serial_out("main()\n"); + + // TODO: GDT. + + asm volatile( + "cli\n" + "hlt\n" + ); + while(1); +} + +#define outb(port, value) asm volatile("out %b0,%w1" : : "a" (value), "d" (port)); + +void kernel_serial_out(char* str) { + while(*str) { + if(*str == '\n') { + outb(0x3f8, '\r'); + } + outb(0x3f8, *str++); + } +} |