; 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 0x20000 LOWER_STACK_POINTER equ (UPPER_STACK_POINTER - STACK_SIZE) bits 16 org 0xa000 stage_2_setup_entry: mov ebx, LOWER_STACK_POINTER mov ss, ebx mov esp, STACK_SIZE mov ebp, STACK_SIZE push dx cli mov ah, 0x00 mov al, 0x03 ;0x13 int 0x10 .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: mov edi, ebp mov esi, esp push ebp mov ebp, esp ; push dword after_gdt_loaded call load_flat_gdt mov esp, ebp pop ebp cli hlt some_text: db "This is some text.", 0x00 ; Utilities ; Memory Management %include "memory/a20.asm" %include "memory/gdt.asm" bits 32 stage2_true_entry: mov [dword 0xb8000], byte 'X' mov [dword 0xb8000 + 1], byte 0x31 cli hlt %include "utility/math.asm" %include "utility/memory.asm" ; Driver Manager ; %include "drivers/manager.asm"