rdos/boot/kernel.asm

52 lines
684 B
NASM

cpu 8086
org 0x7C00
%include "inc/bpb.asm"
%include "inc/mbr.asm"
; kernel stack size in words
%define stacksize 512
jmp near init
db "LOVELAIN"
; mformat writes stuff until 0x3E
params: times ( 0x3E - ($-$$) ) nop
init: cli
xor ax, ax
mov ds, ax
mov es, ax
mov ss, ax
mov sp, ( stack+stacksize )
mov ax, [params+bpb.sectoroffset]
mov dx, [params+bpb.sectoroffset+2]
mov ax, 0x0201
mov cx, 0x0002
mov dh, 0
mov bx, 0x7E00
int 0x13
mov ax, [0x7E00]
mov cx, [0x7E02]
mov dx, [0x7E04]
int 3
hlt: hlt
jmp hlt
times (0x1FE - ($-$$)) db 0
dw 0xAA55
db "rdos kernel"
end: align 512
section .bss
stack: resb stacksize