Int 13h, 08h Get Current Drive Parameters fixed
Reports disk drive parameters, such as the number of heads,
tracks, and sectors per track.
Entry AH = 08h
DL = Drive number
Return CH = Maximum value for cylinder
(10-bit value; upper 2 bits in CL)
CL = Maximum value for sector
DH = Maximum value for heads
For fixed disks:
AH = Status of operation (See Service 01h)
DL = Number of fixed disks
CF Set if error; otherwise cleared
For diskettes:
AX = 0
BL = Bits 7 to 4 = 0
Bits 3 to 0 -- Valid drive type in CMOS
(See below)
BH = 0
DL = Number of diskettes
ES:DI = Pointer to 11-byte Diskette Drive Parameter
Table
──────────────────────────────────────────────────────────────────
This service is available for diskettes on PC Convertibles,
XT-286s, and ATs dated after 1/10/84. All machines support the
fixed disk mode of this service.
Values in DL less than 80h specify diskettes; values greater than
80h specify fixed disks. For example, 0 means the first diskette,
while 80h means the first fixed disk.
The cylinder number is a ten-bit quantity (0 through 1023). Its
most significant two bits are in bits 7 and 6 of CL; the remaining
eight bits are in CH. The starting sector number fits in the
low-order portion (lower 6 bits) of CL.
If the drive is a fixed disk and there is an error, the Carry Flag
will be set. If the drive number is invalid, AH will be equal to
7. And if no fixed disk drive is present or the fixed disk drive
adapter is not installed, AH will be equal to 1.
If the drive is a diskette and there is an error, then:
If the drive type is known but 1) the CMOS is invalid, not
present, 2) the battery is discharged, or 3) the CMOS checksum is
invalid, then all registers will contain valid information, but BL
will be 0.
If the drive type is not known or the requested drive is not
installed, then BX, CX, DH, ES, and DI will all be 0. DL will
contain the number of diskette drives.
Valid Diskette Drive Types in CMOS
BL (bits 3-0) Meaning
00h Unknown drive type
01h 360K, 5.25 inch, 40 track
02h 1.2M, 5.25 inch, 80 track
03h 720K, 3.5 inch, 80 track
04h 1.44MB, 3.5 inch, 80 track
For the AT, XT-286, and PC Convertible, the BIOS executes Int 15h,
Service 90h (Device Busy), for the diskette (Type = 01h) and the
fixed disk (Type = 00h) prior to waiting for the interrupt. Int
15h, Service 91h (Interrupt Complete), is executed upon
completion. Also diskette operations that require the diskette
motor to be on will call Int 15h, Service 90 (Device Busy), with
the type equal to "Diskette Drive Motor Start" (Type = FDh). This
allows the system to perform another task while the drive motor is
waiting to get up to speed.