diff options
author | Kartik Agaram <vc@akkartik.com> | 2020-01-01 18:22:19 -0800 |
---|---|---|
committer | Kartik Agaram <vc@akkartik.com> | 2020-01-01 18:42:48 -0800 |
commit | 65409d2312e702a48d3cf5b32479d25266bda3c3 (patch) | |
tree | 62a7262fce61f2302109246da4536ce6f8e9ef80 /tools/iso/kernel.soso/boot.asm | |
parent | a6da50ad30d2e1825575ffef497ab450a8f26e94 (diff) | |
download | mu-65409d2312e702a48d3cf5b32479d25266bda3c3.tar.gz |
5858
Move script to create a Soso boot image into a sub-directory. I'm trying to streamline newcomer attention to just a couple of use cases.
Diffstat (limited to 'tools/iso/kernel.soso/boot.asm')
-rw-r--r-- | tools/iso/kernel.soso/boot.asm | 51 |
1 files changed, 51 insertions, 0 deletions
diff --git a/tools/iso/kernel.soso/boot.asm b/tools/iso/kernel.soso/boot.asm new file mode 100644 index 00000000..773dd0f3 --- /dev/null +++ b/tools/iso/kernel.soso/boot.asm @@ -0,0 +1,51 @@ +MBOOT_PAGE_ALIGN equ 1<<0 +MBOOT_MEM_INFO equ 1<<1 +MBOOT_USE_GFX equ 1<<2 +MBOOT_HEADER_MAGIC equ 0x1BADB002 +MBOOT_HEADER_FLAGS equ MBOOT_PAGE_ALIGN | MBOOT_MEM_INFO | MBOOT_USE_GFX +MBOOT_CHECKSUM equ -(MBOOT_HEADER_MAGIC + MBOOT_HEADER_FLAGS) + + +[BITS 32] + + +section .multiboot +align 4 + dd MBOOT_HEADER_MAGIC + dd MBOOT_HEADER_FLAGS + dd MBOOT_CHECKSUM + dd 0x00000000 ; header_addr + dd 0x00000000 ; load_addr + dd 0x00000000 ; load_end_addr + dd 0x00000000 ; bss_end_addr + dd 0x00000000 ; entry_addr + ; Graphics requests + dd 0x00000000 ; 0 = linear graphics + dd 1024 + dd 768 + dd 32 + +section .bss +align 16 +stack_bottom: +resb 16384 ; 16 KiB +stack_top: + +[GLOBAL _start] ; this is the entry point. we tell linker script to set start address of kernel elf file. +[EXTERN kmain] + +section .text + +_start: + mov esp, stack_top + + ; push multiboot parameter to kmain() + push ebx + + ; ...and run! + cli + call kmain + + ;never reach here + cli + hlt |