Retro video games delivered to your door every month!
Click above to get retro games delivered to your door ever month!
X-Hacker.org- Programmers Reference 0.02b - <b>int 13h, 08h (8) get current drive parameters fixed</b> http://www.X-Hacker.org [<<Previous Entry] [^^Up^^] [Next Entry>>] [Menu] [About The Guide]
INT 13h,  08h (8)        Get Current Drive Parameters                   fixed

    Reports disk drive parameters, such as the number of heads, tracks,
    and sectors per track.

       On entry:      AH         08h
                      DL         Drive number

       Returns:       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.

  --------------------------------------------------------------------------

       Notes:         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.44M, 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.

Online resources provided by: http://www.X-Hacker.org --- NG 2 HTML conversion by Dave Pearson