X-Git-Url: https://git.ucc.asn.au/?a=blobdiff_plain;f=Kernel%2Farch%2Fx86%2Fstart.asm;h=4be41301ee9536f098da859a7350c7d1c16183d9;hb=046980a1afd982af07dc97aaadb186e31eebb340;hp=d161e69953a5b405e3398d5ca94f4fe5f5b2724a;hpb=901bf4bada7bbba17bc8f1dcf36334a5b615e62f;p=tpg%2Facess2.git diff --git a/Kernel/arch/x86/start.asm b/Kernel/arch/x86/start.asm index d161e699..4be41301 100644 --- a/Kernel/arch/x86/start.asm +++ b/Kernel/arch/x86/start.asm @@ -59,6 +59,8 @@ mboot: [extern kmain] [global start] start: + ; Just show we're here + mov WORD [0xB8000], 0x0741 ; 'A' ; Set up stack mov esp, Kernel_Stack_Top @@ -71,13 +73,20 @@ start: or ecx, 0x80010000 ; PG and WP mov cr0, ecx + mov WORD [0xB8002], 0x0763 ; 'c' + mov WORD [0xB8004], 0x0765 ; 'e' + lea ecx, [.higherHalf] jmp ecx .higherHalf: + + mov WORD [0xB8006], 0x0773 ; 's' + mov WORD [0xB8008], 0x0773 ; 's' ; Call the kernel push ebx ; Multiboot Info push eax ; Multiboot Magic Value + mov WORD [0xB800A], 0x0732 ; '2' call kmain ; Halt the Machine @@ -118,8 +127,8 @@ APStartup: mov ds, ax lgdt [DWORD ds:lGDTPtr-KERNEL_BASE-0xFFFF0] mov eax, cr0 - or al, 1 - mov cr0, eax + or al, 1 + mov cr0, eax jmp 08h:DWORD .ProtectedMode-KERNEL_BASE [bits 32] .ProtectedMode: @@ -134,7 +143,7 @@ APStartup: mov eax, gaInitPageDir - KERNEL_BASE mov cr3, eax mov eax, cr0 - or eax, 0x80010000 ; PG and WP + or eax, 0x80010000 ; PG and WP mov cr0, eax ; Jump to higher half lea eax, [.higherHalf] @@ -221,10 +230,12 @@ CallWithArgArray: [global gaInitPageTable] align 0x1000 gaInitPageDir: - dd gaInitPageTable-KERNEL_BASE+3 ; 0x00 - times 1024-256-1 dd 0 - dd gaInitPageTable-KERNEL_BASE+3 ; 0xC0 - times 256-1 dd 0 + dd gaInitPageTable-KERNEL_BASE+3 ; 0x000 - Low kernel + times 0x300-0x000-1 dd 0 + dd gaInitPageTable-KERNEL_BASE+3 ; 0xC00 - High kernel + times 0x3F0-0x300-1 dd 0 + dd gaInitPageDir-KERNEL_BASE+3 ; 0xFC0 - Fractal + times 0x400-0x3F0-1 dd 0 align 0x1000 gaInitPageTable: %assign i 0