bits 16
cpu 686
-org 0x1800
+section .text
%include "../fat32/fat32-structs.s"
%macro print 1
pop si
%endmacro
+extern __STACK_BOTTOM__
+
+global _start
_start:
+ mov sp, __STACK_BOTTOM__
mov [BOOT_DRIVE], dl
call enable_unreal
print begin
call read_clus_chain_unreal ; load kernel
print kernel_loaded
+ call get_e820_map
+
cli
lgdt [gdt]
mov eax, cr0
pop esi
ret
-
%include "unreal.s"
%include "a20.s"
%include "../fat32/fat32.s"
%include "gdt.s"
%include "print.s"
+%include "e820.s"
-in_protected:
bits 32
+section .text
+in_protected:
mov ax, 0x10
mov ds, ax
mov es, ax
mov ss, ax
mov fs, ax
mov gs, ax
- call 0x100000
- hlt
- jmp $-1
+
+ call load_paging_structs
+ call enable_paging
+
+ jmp 0x8:0xc0000000
+ nop
+
+%include "paging.s"
+
+section .rodata
kernel_name: db "KERNEL BIN"
begin: db "Nameless Bootloader revision ", GIT_REVISION, 0xd, 0xa, 0