; entry.asm: Entrypoint for the loader partition of the Nightloader. ; WARNING: Never import at the top of this file! ; If something has to be included, include it at the bottom! STACK_SIZE equ 32768 UPPER_STACK_POINTER equ 0x100000 LOWER_STACK_POINTER equ (UPPER_STACK_POINTER - STACK_SIZE) bits 16 org 0x0000 entry: mov ebx, LOWER_STACK_POINTER mov ss, ebx mov esp, STACK_SIZE mov ebp, STACK_SIZE push dx cli .check_a20: push ebp mov ebp, esp call check_a20_wraparound mov esp, ebp pop ebp cmp eax, 1 je .a20_is_enabled hlt .a20_is_enabled: ; Reset Display mov ah, 0x00 mov al, 0x03 int 0x10 mov ah, 0x0b mov bh, 0x00 mov bl, 0 int 0x10 mov edi, ebp mov esi, esp push ebp mov ebp, esp push .flat_gdt_loaded call load_flat_gdt mov esp, ebp pop ebp .flat_gdt_loaded: mov ebp, edi mov esp, esi ; push ebp ; mov ebp, esp ; call setup_drivers ; mov esp, ebp ; pop ebp cli hlt some_text: db "This is some text.", 0x00 ; Utilities %include "utility/math.asm" %include "utility/memory.asm" ; Memory Management %include "memory/a20.asm" %include "memory/gdt.asm" ; Driver Manager ; %include "drivers/manager.asm"