Get Drive Parameters


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)