Add first steps for VBR bootloader
This commit is contained in:
parent
414f35a1ce
commit
2229c319b6
9
Makefile
9
Makefile
@ -1,7 +1,14 @@
|
|||||||
default: kernel.com
|
default: kernel.com
|
||||||
|
|
||||||
kernel.com: kernel/*.asm
|
kernel.com: kernel/*.asm
|
||||||
nasm -s -o kernel.com -I kernel kernel/main.asm
|
nasm -s -o $@ -I kernel kernel/main.asm
|
||||||
|
|
||||||
|
vbr.bin: boot/vbr.asm
|
||||||
|
nasm -s -o $@ -I lib $<
|
||||||
|
|
||||||
|
fdimage.img: vbr.bin kernel.com
|
||||||
|
dd if=/dev/zero bs=512 count=720 of=$@
|
||||||
|
dd if=vbr.bin bs=512 count=1 conv=notrunc of=$@
|
||||||
|
|
||||||
clean:
|
clean:
|
||||||
rm -f *.com
|
rm -f *.com
|
||||||
|
49
boot/vbr.asm
Normal file
49
boot/vbr.asm
Normal file
@ -0,0 +1,49 @@
|
|||||||
|
org 0x7C00
|
||||||
|
|
||||||
|
bpb:
|
||||||
|
jmp _startup ; 2 bytes
|
||||||
|
nop ; 1 byte
|
||||||
|
.oem:
|
||||||
|
db "2A " ; OEM
|
||||||
|
.bps:
|
||||||
|
dw 0x200 ; bytes per sector
|
||||||
|
.spc:
|
||||||
|
db 1 ; sectors per cluster
|
||||||
|
.rsectors:
|
||||||
|
dw 2 ; number of reserved sectors
|
||||||
|
.fatcnt:
|
||||||
|
db 2 ; number of file allocation tables
|
||||||
|
.dirents:
|
||||||
|
dw 2 ; Number of directory entries
|
||||||
|
.seccnt:
|
||||||
|
dw 720 ; total number of sectors
|
||||||
|
.mtd: ; media descriptor type
|
||||||
|
db 0xFD ; 5.25-inch Double sided, 40 tracks per side, 9 sectors per track (360 KB)
|
||||||
|
.spfat: ; sectors per fat
|
||||||
|
dw 0
|
||||||
|
.spt:
|
||||||
|
dw 9 ; sectors per track
|
||||||
|
.headcnt:
|
||||||
|
dw 2 ; number of heads
|
||||||
|
.hidseccnt:
|
||||||
|
dd 0 ; number of hidden sectors
|
||||||
|
.lrgseccnt:
|
||||||
|
dd 0 ; large sector count
|
||||||
|
|
||||||
|
times (0x3E - ($-$$)) nop
|
||||||
|
|
||||||
|
_startup:
|
||||||
|
mov ah, 0x08
|
||||||
|
mov dl, 0x00
|
||||||
|
int 0x13
|
||||||
|
mov ax, cx
|
||||||
|
and ax, 0x003F
|
||||||
|
call print16
|
||||||
|
.end:
|
||||||
|
hlt
|
||||||
|
jmp .end
|
||||||
|
|
||||||
|
%include "print.asm"
|
||||||
|
|
||||||
|
times (0x1FE - ($-$$)) nop
|
||||||
|
dw 0xAA55
|
2
run-floppy.sh
Executable file
2
run-floppy.sh
Executable file
@ -0,0 +1,2 @@
|
|||||||
|
#!/bin/sh
|
||||||
|
exec qemu-system-x86_64 -fda fdimage.img
|
Loading…
Reference in New Issue
Block a user