Make drive table data offsets available via defines
This commit is contained in:
parent
d23bba5bdd
commit
93a9c3d5e9
@ -1,24 +1,23 @@
|
|||||||
%define drive_struct_len 0x0C
|
; drive table
|
||||||
|
%define drivetab_type 0x00 ; BYTE 0=unassigned, 1=BIOS/CHS, 2=BIOS/LBA
|
||||||
|
%define drivetab_num 0x01 ; BYTE DL number
|
||||||
|
%define drivetab_heads 0x02 ; CHS heads
|
||||||
|
%define drivetab_spt 0x03 ; CHS sectors per track
|
||||||
|
%define drivetab_sectors 0x04 ; total number of sectors
|
||||||
|
%define drivetab_offset 0x08 ; partition offset
|
||||||
|
%define drivetab_size 0x0C
|
||||||
|
|
||||||
drive_table:
|
drive_table:
|
||||||
dw 0
|
dw 0
|
||||||
.count:
|
.count:
|
||||||
dw 4
|
dw 4
|
||||||
|
|
||||||
; Drive table
|
|
||||||
; 00 BYTE DL number
|
|
||||||
; 01 BYTE file system type
|
|
||||||
; 02 BYTE CHS heads (ignored if LBA)
|
|
||||||
; 03 BYTE CHS sectors per track (ignored if LBA)
|
|
||||||
; 04 DWORD total number of sectors
|
|
||||||
; 08 DWORD partition offset
|
|
||||||
|
|
||||||
; DI is incremented for the space taken
|
; DI is incremented for the space taken
|
||||||
; IN ES:DI
|
; IN ES:DI
|
||||||
drive_setup:
|
drive_setup:
|
||||||
xor cx, cx
|
xor cx, cx
|
||||||
mov [drive_table], di
|
mov [drive_table], di
|
||||||
mov al, drive_struct_len
|
mov al, drivetab_size
|
||||||
mov ah, BYTE [drive_table.count]
|
mov ah, BYTE [drive_table.count]
|
||||||
mul ah
|
mul ah
|
||||||
xchg cx, ax
|
xchg cx, ax
|
||||||
@ -39,7 +38,7 @@ drive_load:
|
|||||||
mov si, [drive_table]
|
mov si, [drive_table]
|
||||||
|
|
||||||
push ax
|
push ax
|
||||||
mov al, drive_struct_len
|
mov al, drivetab_size
|
||||||
mul dl
|
mul dl
|
||||||
add si, ax
|
add si, ax
|
||||||
pop ax
|
pop ax
|
||||||
|
Loading…
Reference in New Issue
Block a user