Int 13 Fn 48 - Ibm/ms Int 13 Extensions - Get Drive Parameters [d]

AH = 48h
DL = drive (80h-FFh)
DS:SI -> buffer for drive parameters (see #0205)

Return: CF clear if successful
AH = 00h
DS:SI buffer filled
CF set on error
AH = error code (see #0166)

See Also: AH=08h,AH=41h,AH=49h

Format of IBM/MS INT 13 Extensions drive parameters:
Offset Size Description (Table 0205)
00h WORD (call) size of buffer (001Ah for v1.x, 001Eh for v2.x)
(ret) size of returned data
02h WORD information flags (see #0206)
04h DWORD number of physical cylinders on drive
08h DWORD number of physical heads on drive
0Ch DWORD number of physical sectors per track
10h QWORD total number of sectors on drive
18h WORD bytes per sector
---v2.0+ ---
1Ah DWORD -> EDD configuration parameters (see #0208)
FFFFh:FFFFh if not available

Note: if the size is less than 30 on call, the final DWORD will not be
returned by a v2.x implementation

See Also: #0207,#2867

Bitfields for IBM/MS INT 13 Extensions information flags:
Bit(s) Description (Table 0206)
0 DMA boundary errors handled transparently
1 cylinder/head/sectors-per-track information is valid
2 removable drive
3 write with verify supported
4 drive has change-line support (required if drive >= 80h is removable)
5 drive can be locked (required if drive >= 80h is removable)
6 CHS information set to maximum supported values, not current media
15-7 reserved (0)

See Also: #0205

Format of Phoenix Enhanced Disk Drive Spec translated drive parameter table:
Offset Size Description (Table 0207)
00h WORD number of cylinders
02h BYTE number of heads
03h BYTE A0h (signature indicating translated table)
04h BYTE number of physical sectors per track
05h WORD starting write precompensation cylinder number
07h BYTE reserved
08h BYTE control byte (see #2869 at INT 41"DISK 0")
09h WORD number of physical cylinders
0Bh BYTE number of physical heads
0Ch WORD cylinder number of landing zone
0Eh BYTE number of logical sectors per track
0Fh BYTE checksum
Program: the Phoenix Enhanced Disk Drive Specification is an addition to the
IBM/MS INT 13 extensions

See Also: #0208,#2867

Format of Phoenix Enhanced Disk Drive Spec Fixed Disk Parameter Table:
Offset Size Description (Table 0208)
00h WORD physical I/O port base address
02h WORD disk-drive control port address
04h BYTE drive flags (see #0209)
05h BYTE proprietary information
bits 7-4 reserved (0)
bits 3-0: Phoenix proprietary (used by BIOS)
06h BYTE IRQ (bits 3-0; bits 7-4 reserved and must be 0)
07h BYTE sector count for multi-sector transfers
08h BYTE DMA control
bits 7-4: DMA type (0-2) as per ATA-2 specification
bits 3-0: DMA channel
09h BYTE programmed I/O control
bits 7-4: reserved (0)
bits 3-0: PIO type (1-4) as per ATA-2 specification
0Ah WORD drive options (see #0210)
0Ch 2 BYTEs reserved (0)
0Eh BYTE extension revision level (high nybble=major, low nybble=minor)
(currently 10h for v1.0 and 11h for v1.1)
0Fh BYTE 2's complement checksum of bytes 00h-0Eh
8-bit sum of all bytes 00h-0Fh should equal 00h

See Also: #0207

Bitfields for Phoenix Enhanced Disk Drive Spec drive flags:
Bit(s) Description (Table 0209)
7 reserved (1)
6 LBA enabled
5 reserved (1)
4 drive is slave
3-0 reserved (0)

See Also: #0208,#0210

Bitfields for Phoenix Enhanced Disk Drive Spec drive options:
Bit(s) Description (Table 0210)
0 fast PIO enabled
1 fast DMA access enabled
2 block PIO (multi-sector transfers) enabled
3 CHS translation enabled
4 LBA translation enabled
5 removable media
6 ATAPI device (CD-ROM)
7 32-bit transfer mode
---v1.1---
8 ATAPI device uses DRQ to signal readiness for packet command
(must be 0 if bit 6 is 0)
10-9 translation type (must be 00 if bit 3 is 0)
00 Phoenix bit-shifting translation
01 LBA-assisted translation
10 reserved
11 proprietary translation
15-8 reserved

See Also: #0208,#0209