|
|
@ -9,9 +9,13 @@ |
|
|
|
mov sp, bp |
|
|
|
mov sp, bp |
|
|
|
|
|
|
|
|
|
|
|
; Load kernel into memory |
|
|
|
; Load kernel into memory |
|
|
|
|
|
|
|
mov bx, stat_kernel_load |
|
|
|
|
|
|
|
call println |
|
|
|
call load_kernel |
|
|
|
call load_kernel |
|
|
|
|
|
|
|
|
|
|
|
; Switching to PM |
|
|
|
; Switching to PM |
|
|
|
|
|
|
|
mov bx, stat_pm_init |
|
|
|
|
|
|
|
call println |
|
|
|
call pm_preinit |
|
|
|
call pm_preinit |
|
|
|
|
|
|
|
|
|
|
|
jmp $ ; inf loop |
|
|
|
jmp $ ; inf loop |
|
|
@ -21,13 +25,14 @@ |
|
|
|
%include "pm.asm" |
|
|
|
%include "pm.asm" |
|
|
|
|
|
|
|
|
|
|
|
BEGIN_PM: |
|
|
|
BEGIN_PM: |
|
|
|
mov ebx, welcome_string |
|
|
|
mov ebx, stat_pm_init |
|
|
|
call vga_print |
|
|
|
call vga_print |
|
|
|
|
|
|
|
|
|
|
|
jmp $ |
|
|
|
jmp $ |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
[bits 16] |
|
|
|
[bits 16] |
|
|
|
|
|
|
|
|
|
|
|
load_kernel: |
|
|
|
load_kernel: |
|
|
|
mov bx, KERNEL_OFFSET ; Load kernel at the kernel offset |
|
|
|
mov bx, KERNEL_OFFSET ; Load kernel at the kernel offset |
|
|
|
mov dh, 15 ; Read 15 sectors |
|
|
|
mov dh, 15 ; Read 15 sectors |
|
|
@ -36,12 +41,9 @@ load_kernel: |
|
|
|
|
|
|
|
|
|
|
|
ret |
|
|
|
ret |
|
|
|
|
|
|
|
|
|
|
|
welcome_string: db "e Operating-System (eOS): Version 2021 0.0", ASCII_END |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
stat_realmode: db "Entering 16bit Real Mode...", ASCII_END |
|
|
|
|
|
|
|
stat_pm_init: db "Entering 32bit Protected Mode...", ASCII_END |
|
|
|
stat_pm_init: db "Entering 32bit Protected Mode...", ASCII_END |
|
|
|
|
|
|
|
stat_kernel_load: db "Loading kernel into memory...", ASCII_END |
|
|
|
stat_success: db " [OK]", ASCII_CARRIAGE_RETURN, ASCII_NEWLINE, ASCII_END |
|
|
|
stat_boot_success: db "Booting complete!", ASCII_END |
|
|
|
|
|
|
|
|
|
|
|
BOOT_DRIVE: db 0 |
|
|
|
BOOT_DRIVE: db 0 |
|
|
|
|
|
|
|
|
|
|
|