diff options
Diffstat (limited to 'src/main.zig')
| -rw-r--r-- | src/main.zig | 22 |
1 files changed, 7 insertions, 15 deletions
diff --git a/src/main.zig b/src/main.zig index 30c21a4..c506192 100644 --- a/src/main.zig +++ b/src/main.zig @@ -1,4 +1,3 @@ -const console = @import("console.zig"); const debug = @import("debugcon.zig"); const ALIGN = 1 << 0; @@ -21,28 +20,21 @@ export const multiboot align(4) linksection(".multiboot") = MultibootHeader{ export var stack: [16 * 1024]u8 align(16) linksection(".bss") = undefined; const stack_bytes_slice = stack[0..]; -export fn _start() callconv(.C) noreturn { - debug.write("test\n"); - debug.outb(0xe9, 'H'); - debug.outb(0xe9, 'i'); - debug.outb(0xe9, '!'); - debug.outb(0xe9, '\n'); - +export fn _start() callconv(.Naked) noreturn { asm volatile ( \\ mov %[stk], %rsp \\ mov %rsp, %rbp : : [stk] "{rcx}" (@intFromPtr(&stack) + @sizeOf(@TypeOf(stack))), ); - asm volatile ("call kmain"); - - while (true) {} + asm volatile ("jmp kmain"); } export fn kmain() void { - debug.outb(0xe9, '^'); - console.initialize(); - console.puts("Hello world!"); - debug.outb(0xe9, '$'); + debug.outb(0xe9, 'H'); + debug.outb(0xe9, 'i'); + debug.outb(0xe9, '!'); debug.outb(0xe9, '\n'); + + while (true) {} } |
