reorganization
[eightysix] / kern / src / startup.asm
diff --git a/kern/src/startup.asm b/kern/src/startup.asm
new file mode 100644 (file)
index 0000000..c90cef6
--- /dev/null
@@ -0,0 +1,28 @@
+; second stage boot loader C startup
+       cpu 8086
+       bits 16
+       section .startup
+
+extern bootmain
+extern _stage2_start_seg
+extern _bss_start_off
+extern _bss_size
+
+global _start
+_start:
+       ; TODO floppy off if necessary
+
+       ; zero .bss
+       mov di, _bss_start_off
+       mov cx, _bss_size
+       shr cx, 1
+       rep stosw
+       xor ax, ax
+       mov es, ax
+
+       call bootmain
+
+hang:  hlt
+       jmp hang
+
+; vi:set ts=8 sts=8 sw=8 ft=nasm: