Initial commit
diff --git a/src/boot.s b/src/boot.s
new file mode 100644
index 0000000..5c4381c
--- /dev/null
+++ b/src/boot.s
@@ -0,0 +1,37 @@
+;;; GRUB Multiboot header, calls main() in main.c
+
+MBOOT_PAGE_ALIGN equ 1<<0
+MBOOT_MEM_INFO equ 1<<1
+MBOOT_HEADER_MAGIC equ 0x1BADB002
+
+MBOOT_HEADER_FLAGS equ MBOOT_PAGE_ALIGN | MBOOT_MEM_INFO
+MBOOT_CHECKSUM equ -(MBOOT_HEADER_MAGIC + MBOOT_HEADER_FLAGS)
+
+
+ [bits 32]
+
+ [global mboot]
+ [extern code]
+ [extern bss]
+ [extern end]
+
+mboot:
+ dd MBOOT_HEADER_MAGIC ; This tells GRUB to start executing here:
+ dd MBOOT_HEADER_FLAGS
+ dd MBOOT_CHECKSUM
+
+ dd mboot ; Current location
+ dd code ; .text section
+ dd bss ; End of .data
+ dd end ; End of kernel
+ dd start
+
+ [global start]
+ [extern main] ; C code
+
+start:
+ push ebx ; Holds multiboot header location
+
+ cli
+ call main
+ jmp $