Entry:
AH = 48h
DL = Drive number
DS:SI = address of result buffer.
Exit:
carry clear
AH = 0
DS:SI = result buffer, filled in with the following structure:
info_size dw 26 ; size of information buffer
flags dw ? ; information flags
cylinders dd ? ; number of cylinders on disk
heads dd ? ; number of heads on disk
sec_per_track dd ? ; number of sectors per track
sectors dq ? ; number of sectors on requested disk
sector_size dw ? ; number of bytes per sector
carry set
AH = error code
This function returns physical characteristics of a specified drive
The info_size fields contains the size in bytes of the buffer passed in and returned, including this field. It must be set by the caller before invoking this function, indicating the size of the buffer passed in. It will also be filled in on return, indicating the size of the buffer returned. The returned size cannot be larger than the passed-in size. This mechanism allows the returned values of this function to be extended in the future with a minimum of compatibility problems.
The flags field is used to return additional information about the disk characteristics. Currently bits 0-6 are defined. The others are reserved and must be set to 0 by the implementor.
Bit 0 has the following meaning:
0 = DMA boundary errors may occur
1 = DMA boundary errors will be handled transparently
If this bit set, it indicates that the ROM BIOS will handle DMA boundary error conditions automatically, and DMA boundary errors (error code 09h) will never be returned to the caller.
Bit 1 has the following meaning:
0 = Cylinder/head/sector-per-track info not supplied
1 = Cylinder/head/sector-per-track info valid
Bit 1 will be clear for block devices for which traditional geometry descriptions are inappropriate.
Bit 2 has the following meaning:
0 = Drive is not removable
1 = Drive is removable
Bit 3 has the following meaning:
0 = Drive does not support write with verify
1 = Drive supports write with verify
Bit 3 indicates whether the Write with Verify (4301h) is supported on this drive.
Bit 4 has the following meaning:
0 = Drive does not have change line support
1 = Drive has change line support
Bit 4 must be set for removable drives accessed via drive numbers 80h and above, as well as appropriate drives numbered 0-7Fh.
Bit 5 has the following meaning:
0 = Drive is not lockable
1 = Drive is lockable
Bit 5 must be set for removable drives accessed via drive numbers 80h and above, as well as appropriate drives numbered 0-7Fh.
Bit 6 has the following meaning:
0 = CHS values are for the media that is currently in the drive (removable media only); values must be returned for the media if the media is in the drive.
1 = CHS values are maximum supported by the drive (when there is no media in the drive)