StupidOS/kernel/kernel.asm

68 lines
933 B
NASM
Raw Normal View History

2024-03-26 07:39:40 +00:00
;; File: kernel.asm
2024-07-05 12:23:58 +00:00
format binary
2024-03-26 07:39:40 +00:00
include 'const.inc'
2024-03-20 15:51:27 +00:00
2024-03-26 07:39:40 +00:00
org KBASE
use32
2024-03-20 15:51:27 +00:00
2024-05-28 04:54:10 +00:00
jmp short kmain
db 'STPDKRNL'
db 32 dup(0)
2024-03-20 15:51:27 +00:00
2024-04-28 06:41:36 +00:00
;; Function: kmain
;;
;; Parameters:
;;
;; EAX - Boot Magic
;; EBX - Boot structure address
;;
2024-03-20 15:51:27 +00:00
kmain:
xchg bx, bx
2024-07-05 12:23:58 +00:00
mov esp, stack_top
2024-05-02 11:34:27 +00:00
cmp eax, STPDBOOT_MAGIC
jne .error_magic
2024-05-02 11:34:27 +00:00
2024-07-05 12:23:58 +00:00
; init memory manager
; init idt, gdt
; copy boot structure
;call vga_console_clear
2024-07-05 12:23:58 +00:00
mov [0xC03B0000], dword 0x08740953
mov [0xC03B0004], dword 0x05700675
mov [0xC03B0008], dword 0x03640469
mov [0xC03B000C], dword 0x0153024F
2024-07-05 09:10:26 +00:00
;KLOG_INIT
2024-05-02 11:34:27 +00:00
2024-07-05 12:23:58 +00:00
mov esi, szMsgKernelAlive
call klog
2024-05-02 11:34:27 +00:00
.halt:
hlt
jmp $
.error_magic:
mov esi, szErrorBootProtocol
.error:
call klog
jmp .halt
2024-03-20 15:51:27 +00:00
2024-07-05 12:23:58 +00:00
include 'klog.inc'
include 'dev/vga_console.inc'
include 'mm/mm.inc'
szMsgKernelAlive db "Kernel is alive", 0
szErrorBootProtocol db "Error: wrong magic number", 0
2024-03-20 15:51:27 +00:00
2024-07-05 12:23:58 +00:00
align 4
stack_bottom:
2024-03-20 15:51:27 +00:00
rb 0x4000
2024-07-05 12:23:58 +00:00
stack_top:
2024-03-20 15:51:27 +00:00
_end:
2024-07-05 12:23:58 +00:00
dd 0x0