; Boot loader entry point for CubeCactusOS
; Multiboot-compliant boot code (NASM syntax)

MAGIC    equ 0x1BADB002
FLAGS    equ (1<<0 | 1<<1)
CHECKSUM equ -(MAGIC + FLAGS)

section .multiboot
align 4
    dd MAGIC
    dd FLAGS
    dd CHECKSUM

section .bss
align 16
stack_bottom:
    resb 16384  ; 16 KiB stack
stack_top:

section .text
global _start
extern main

_start:
    ; Set up stack
    mov esp, stack_top
    
    ; Reset EFLAGS
    push 0
    popf
    
    ; Call kernel main
    call main
    
    ; Hang if kernel returns
    cli
.hang:
    hlt
    jmp .hang
