rdos/boot/kernel.asm

63 lines
865 B
NASM

cpu 8086
org 0x7C00
%include "inc/bpb.asm"
%include "inc/mbr.asm"
%include "inc/fcb.asm"
%include "inc/dpt.asm"
; kernel stack size in words
%define stacksize 512
init: cli
xor ax, ax
mov ds, ax
mov es, ax
mov ss, ax
mov sp, ax
call printf
%defstr VERSIONSTR VERSION
db "RDOS ", VERSIONSTR, 0x0A, 0x0D, 0
push dx
call dinit
pop dx
cmp dl, 0x80
jc .k
sub dl, (0x80-2)
.k: mov [defdrv], dl
call logdrv
mov word [0x21*4], int21
mov word [0x21*4+2], cs
mov word [curpsp], 0x1000
mov dl, 0x37
mov ah, 2
int 0x21
int 0x21
restart:
hlt: hlt
jmp hlt
%include "kernel/syscall.asm"
%include "kernel/char.asm"
%include "kernel/fcb.asm"
%include "kernel/drive.asm"
%include "kernel/printf.asm"
section .data
testfcb: db 0
db "HELLO ", "COM"
times 30 db 0
section .bss
alignb 2
stack: resb stacksize