From 8b90c1f407b4f4aa3802858e23aa90d7dfbe17ad Mon Sep 17 00:00:00 2001 From: Lizzy Fleckenstein Date: Thu, 11 Apr 2024 20:58:38 +0200 Subject: bootinfo struct --- stage2/main.asm | 27 +++++++++++++++++++++------ 1 file changed, 21 insertions(+), 6 deletions(-) (limited to 'stage2/main.asm') diff --git a/stage2/main.asm b/stage2/main.asm index fae8d5a..1964720 100644 --- a/stage2/main.asm +++ b/stage2/main.asm @@ -1,14 +1,12 @@ [org 0x7E00] %define PAGETABLE 0x1000 -%define VESAINFO 0x0500 -%define VESAMODE VESAINFO+512 -%define OWNMODE VESAMODE+256 -%define GFXINFO PAGETABLE-10 -;%define MEMMAPCNT GFXINFO-2 +%define VESAMODES 0x500 %define MEMMAP 0x500 setup: + mov [bootinfo.ksize], edi + ; print message mov ebx, .msg call print_str @@ -28,6 +26,15 @@ setup: .msg: db 10, 13, "cuddles stage2", 10, 13, 0 +bootinfo: + .ksize: dq 0 + .gfx_pitch: dw 0 + .gfx_width: dw 0 + .gfx_height: dw 0 + .gfx_framebuffer: dq 0 + .mmap_len: dq 0 + .mmap_ptr: dq 0 + %include "stage2/vesa.asm" %include "stage2/mmap.asm" %include "stage2/paging.asm" @@ -46,6 +53,14 @@ long_mode: mov gs, ax mov ss, ax - call load_kernel_elf + call load_kernel_elf ; returns entry point in rax + + ; more stack space + mov rsp, 0x80000 + xor rbp, rbp + + ; pass bootinfo as arg + mov rdi, bootinfo + call rax kernel_elf: -- cgit v1.2.3