From 6411dc0c9c7bb7662f30e0d7919784b405db1535 Mon Sep 17 00:00:00 2001 From: Ain <41307858+nero@users.noreply.github.com> Date: Tue, 24 Sep 2019 08:16:22 +0000 Subject: [PATCH] Turn CHS fields in drive table into words CHS arithmetic will be done on 32-bit integers, the operand for division of DX:AX is a word, so we save a conversion step. Additionally, i might reuse these fields for pointing to a SYS driver later. --- kernel/drive.asm | 18 +++++++++++------- 1 file changed, 11 insertions(+), 7 deletions(-) diff --git a/kernel/drive.asm b/kernel/drive.asm index 243b8e0..31efa81 100644 --- a/kernel/drive.asm +++ b/kernel/drive.asm @@ -1,11 +1,15 @@ ; 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 +%define drivetab_type 0x00 ; BYTE 0=unassigned, 1=BIOS/CHS, 2=BIOS/LBA +%define drivetab_num 0x01 ; BYTE DL number + +; CHS data for type=1 +; Might be reused for driver address +%define drivetab_heads 0x02 ; WORD CHS heads +%define drivetab_spt 0x04 ; WORD CHS sectors per track + +%define drivetab_sectors 0x06 ; DWORD total number of sectors +%define drivetab_offset 0x0A ; DWORD partition offset +%define drivetab_size 0x0E drive_table: dw 0