diff --git a/start32.asm b/start32.asm index 69e4087..24dad21 100644 --- a/start32.asm +++ b/start32.asm @@ -1,17 +1,27 @@ - format elf - use32 +format elf +use32 MULTIBOOT_PAGE_ALIGN equ (1 shl 0) MULTIBOOT_MEMORY_INFO equ (1 shl 1) +MULTIBOOT_VIDEO_REQUEST equ (0 shl 2) MULTIBOOT_AOUT_KLUDGE equ (1 shl 16) MULTIBOOT_HEADER_MAGIC equ 0x1BADB002 -MULTIBOOT_HEADER_FLAGS equ MULTIBOOT_PAGE_ALIGN or MULTIBOOT_MEMORY_INFO +MULTIBOOT_HEADER_FLAGS equ MULTIBOOT_PAGE_ALIGN or MULTIBOOT_MEMORY_INFO or MULTIBOOT_VIDEO_REQUEST MULTIBOOT_CHECKSUM equ -(MULTIBOOT_HEADER_MAGIC + MULTIBOOT_HEADER_FLAGS) .multiboot: align 4 dd MULTIBOOT_HEADER_MAGIC dd MULTIBOOT_HEADER_FLAGS dd MULTIBOOT_CHECKSUM +; dd 0 ; header address +; dd 0 ; load address +; dd 0 ; load end address +; dd 0 ; bss end address +; dd 0 ; entry address +; dd 0 ; video mode_type (0:fb, 1:txt) (set flags[2]!) +; dd 1024 ; video width +; dd 768 ; video height +; dd 32 ; video depth section '.bss' writable align 16 stack_bottom: @@ -26,15 +36,15 @@ disable_cursor: pushf push eax push edx - + mov dx, 0x3D4 mov al, 0xA ; low cursor shape register out dx, al - + inc dx mov al, 0x20 ; bits 6-7 unused, bit 5 disables the cursor, bits 0-4 control the cursor shape out dx, al - + pop edx pop eax popf @@ -42,14 +52,13 @@ disable_cursor: _start: ; Setup stack - ;mov esp, stack_top + mov esp, stack_top ; Call the main kernel function. call disable_cursor call kmain - @@: cli hlt