summaryrefslogtreecommitdiff
path: root/src/bootloader.asm
diff options
context:
space:
mode:
Diffstat (limited to 'src/bootloader.asm')
-rw-r--r--src/bootloader.asm14
1 files changed, 9 insertions, 5 deletions
diff --git a/src/bootloader.asm b/src/bootloader.asm
index 08d1daf..583c169 100644
--- a/src/bootloader.asm
+++ b/src/bootloader.asm
@@ -24,7 +24,7 @@ fat_header:
.oem_name equ 0x7c03;mkfs.fat - ignored
.bytes_per_sector equ 0x7c0b;0x0200 - assumed
.sectors_per_cluster equ 0x7c0d;0x01 - assumed
-.reserved_sectors equ 0x7c0e;0x0004 - other values handled
+.reserved_sectors equ 0x7c0e;0x0002 - handled
.n_fats equ 0x7c10;0x01 - assumed
.root_dir_entries equ 0x7c11; -
.n_sectors equ 0x7c13;0x0b40 -
@@ -231,6 +231,12 @@ load_kernel:
mov word [dap.offset], bx
xor bx, bx
shr ebx, 4
+ jmp .over_sig
+
+times $$ + 0x01fe - $ db 0
+dw 0xaa55
+
+.over_sig:
test ebx, 0xffff_0000
jnz halt
mov word [dap.segment], bx
@@ -269,9 +275,7 @@ load_kernel:
mov ebx, dword [pointers.kernel]
- ;Parse kernel executable header,
- ;Go through relocation tables,
- ;Get kernel_start.
+ ;TODO
cli
@@ -292,7 +296,7 @@ dq 0x00c0_9200_8000_0ff7
dap:
dw 0x0010
-.length dw 0x0003
+.length dw 0x0001
.offset dw 0x7e00
.segment dw 0x0000
.start dd 0x0000_0001