Make kernel and fat.bs use BPB struct

This commit is contained in:
Nero 2020-09-15 21:38:26 +02:00
parent 303b1756e0
commit 9cd4c04c42
3 changed files with 247 additions and 336 deletions

View file

@ -1,29 +1,17 @@
; DOS 3.31 Bios Parameter Block
bpb_ss: equ 0x00 ; WORD sector size
bpb_sc: equ 0x02 ; BYTE sector / cluster
bpb_rsc: equ 0x03 ; WORD reserved sector count
bpb_fn: equ 0x05 ; BYTE fat number
bpb_rde: equ 0x06 ; WORD root dir entries
bpb_ts: equ 0x08 ; WORD total sectors
bpb_md: equ 0x0A ; BYTE media descriptor
bpb_sf: equ 0x0B ; WORD sectors / fat
bpb_spt: equ 0x0D ; WORD sectors per track
bpb_nos: equ 0x0F ; WORD number of sides
bpb_po: equ 0x11 ; DWORD partition offset
bpb_lts: equ 0x15 ; DWORD large total sectors
; DOS 4.0 Extended Bios Parameter Block
bpb4_dn: equ 0x19 ; BYTE drive number
bpb4_sig: equ 0x1B ; BYTE 29h
bpb4_ser: equ 0x1C ; DWORD serial
; DOS 7.1 Extended Bios Parameter Block
bpb7_lsf: equ 0x19 ; DWORD large sectors / fat
bpb7_rdc: equ 0x21 ; DWORD root directory cluster
bpb7_fsc: equ 0x25 ; WORD fsinfo sector
bpb7_bsc: equ 0x27 ; WORD backup boot sector
bpb7_dn: equ 0x35 ; BYTE drive number
bpb7_sig: equ 0x37 ; BYTE 28h or 29h
bpb7_ser: equ 0x38 ; DWORD serial
bpb_len: equ 0x4F
struc bpb
.sectorsize: resw 1 ; WORD sector size
.clustersects: resb 1 ; BYTE sector / cluster
.reservedsects: resw 1 ; WORD reserved sector count
.fatnumber: resb 1 ; BYTE fat number
.direntries: resw 1 ; WORD root dir entries
.total: resw 1 ; WORD total sectors
.mediadesc: resb 1 ; BYTE media descriptor
.fatsectors: resw 1 ; WORD sectors / fat
.tracksectors: resw 1 ; WORD sectors per track
.heads: resw 1 ; WORD number of sides
.sectoroffset: resd 1 ; DWORD partition offset
.longtotal: resd 1 ; DWORD large total sectors
.drivenum: resb 1 ; BYTE drive number
.signature: resb 1 ; BYTE 28h
.serial: resd 1 ; DWORD serial
endstruc