EttinOS/source/boot.asm

55 lines
1.0 KiB
NASM

[ORG 0x7c00]
jmp short start
nop
;Disk description table
db "EttinOS " ;Disk label
dw 0x200 ;Bytes per sector
db 0x1 ;Sectors per cluster
dw 0x1 ;Sectors reserved for the boot record
db 0x2 ;Number of copies of the FAT
dw 0xe0 ;Number of directory entries
dw 0xb40 ;Number of logical sectors
db 0xf0 ;Media descriptor type
dw 0x9 ;Sectors per FAT
dw 0x12 ;Sectors per track
dw 0x2 ;Number of heads
dd 0x0 ;Number of hidden sectors
dd 0x0 ;Number of LBA sectors
dw 0x0 ;Drive number
db 0x29 ;Drive signature
dd 0x0 ;Volume ID
db "EttinOS " ;Volume label
db "FAT12 " ;File system type
start:
;Initialise ds
mov ax, 0x0
mov ds, ax
;Load the system
;Set the source
mov dl, 0x0
mov dh, 0x0
mov ch, 0x0
mov cl, 0x2
;Set the destination
mov ax, 0x1000
mov es, ax
mov bx, 0
;Set the size
mov al, 0x20
;Load
mov ah, 0x2
int 0x13
;Boot the system
jmp 0x1000:0
;Padding
times 0x1fe-($-$$) db 0
;Boot signature
dw 0xaa55