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:
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]
[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-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