diff options
author | Vegard Storheil Eriksen <zyp@jvnv.net> | 2009-12-23 22:26:43 +0100 |
---|---|---|
committer | Vegard Storheil Eriksen <zyp@jvnv.net> | 2009-12-23 22:31:02 +0100 |
commit | 864fb03a3305b65fedbe434ebb87510ac13fe865 (patch) | |
tree | 6b0b2b0dccf6fd1835a4e86ba808fbad2cba89cb /kernel/main.c |
Initial commit.
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++); + } +} |