Function 1Ch Get Drive Data

mov dl, DriveNum ;drive (0 = default, 1 = A, 2 = B, etc.)

mov ah, 1Ch ;Get Drive Data

int 21h

cmp al, 0FFh ;0FFh means error

jz error_handler

mov SecPerCluster, al ;sectors per cluster

mov BytesPerSector, cx ;bytes per sector

mov NumClusters, dx ;number of clusters

mov al, byte ptr [bx] ;ds:bx points to media descriptor

mov MediaDesc, al

Get Drive Data (Function 1Ch) retrieves information about the disk in the specified drive.

This function has been superseded by Get Disk Free Space (Function 36h).

Parameter

DriveNum

Specifies the number of the drive to return information for (0 = default, 1 = A, 2 = B, and so on).

Return Values

If the function is successful, the AL, CX, DX, and DS:BX registers contain the following information:

Register Contents

AL Number of sectors in a cluster.
CX Number of bytes in a sector.
DX Number of clusters on the disk.
DS:BX Points to the media descriptor.

Otherwise, the AL register contains 0FFh.

Comments

If Get Drive Data fails, the default drive was invalid or a disk error occurred. A program must check the return values from this function to determine whether it has valid disk information.

Following are the most commonly used media descriptors and their corresponding media:

Value Type of medium

0F0h 3.5-inch, 2 sides, 18 sectors/track (1.44 MB); 3.5-inch, 2 sides, 36 sectors/track (2.88 MB); 5.25-inch, 2 sides, 15 sectors/track (1.2 MB). This value is also used to describe other media types.
0F8h Hard disk, any capacity.
0F9h 3.5-inch, 2 sides, 9 sectors/track, 80 tracks/side (720K); 5.25-inch, 2 sides, 15 sectors/track, 40 tracks/side (1.2 MB).
0FAh 5.25-inch, 1 side, 8 sectors/track, (320K).
0FBh 3.5-inch, 2 sides, 8 sectors/track (640K).
0FCh 5.25-inch, 1 side, 9 sectors/track, 40 tracks/side (180K).
0FDh 5.25-inch, 2 sides, 9 sectors/track, 40 tracks/side (360K). This value is also used for 8-inch disks.
0FEh 5.25-inch, 1 side, 8 sectors/track, 40 tracks/side (160K). This value is also used for 8-inch disks.
0FFh 5.25-inch, 2 sides, 8 sectors/track, 40 tracks/side (320K).

Get Drive Data modifies the DS register. A program should save the contents of the register before calling this function and restore the contents of the register after retrieving the media descriptor.

See Also

Function 1Bh Get Default Drive Data
Function 36h Get Disk Free Space