[org 0x7c00]

mov bp, 0x9000
mov sp, bp

mov bx, MSG_REAL_MODE
call writeLn

call switch_to_pm

jmp $

%include "./x16/print/print.asm"
%include "./x32/init/gdt.asm"
%include "./x32/print/print_string_pm.asm"
%include "./x32/init/switch_to_pm.asm"

[bits 32]

BEGIN_PM:
    mov ebx, MSG_PROT_MODE
    call print_string_pm

    jmp $


MSG_REAL_MODE: db "Starting OST OS in 16-bit Real Mode", 0
MSG_PROT_MODE: db "Successfully landed Obsidian Starlight in 32-bit Protected Mode", 0

times 510-($-$$) db 0
dw 0xaa55

;times 2097152 db 0 ; Only for VirtualBox