aboutsummaryrefslogtreecommitdiffstats
path: root/src/boot/boot.stage2.pm.asm
diff options
context:
space:
mode:
Diffstat (limited to 'src/boot/boot.stage2.pm.asm')
-rw-r--r--src/boot/boot.stage2.pm.asm20
1 files changed, 18 insertions, 2 deletions
diff --git a/src/boot/boot.stage2.pm.asm b/src/boot/boot.stage2.pm.asm
index 77f5f61..8897be6 100644
--- a/src/boot/boot.stage2.pm.asm
+++ b/src/boot/boot.stage2.pm.asm
@@ -4,9 +4,25 @@
[bits 16]
%include "boot.stage2.gdt32.asm"
-_
+_enable_pm:
cli
lgdt [GDT32_ptr]
-
;; Enable Protected Mode
+ mov eax, cr0
+ or eax, 1
+ mov cr0, eax
+
+ jmp CODE_SEG32:_protected_mode
+
+[bits 32]
+_protected_mode:
+ mov ax, DATA_SEG32
+ mov ds, ax
+ mov ss, ax
+ mov es, ax
+ mov fs, ax
+ mov gs, ax
+
+ ret
+