Next Previous Contents

2. Format of the table

The table is a series of 16-byte entries with the following structure.

struct hdtype {
        short cylinders;
        char heads;             /* XT: 1-8, AT: 1-16, ESDI: 1-32 */
        short reduced_write_current_starting_cyl;       /* XT only */
        short pre_compensation_starting_cyl;
        char max_ECC_data_burst_length;                 /* XT only */
        char control;                                   /* AT and later */
                /* bit 7: 1 - do not retry on access error
                   bit 6: 1 - do not retry on ECC error
                   bit 5: 1 - there is a bad block map past the last cylinder
                   bit 4: 0
                   bit 3: 1 - more than 8 heads on the drive
                   bit 2: 0 - no reset
                   bit 1: 0 - disable IRQ
                   bit 0: 0 */
        char normal_timeout;                            /* XT only */
        char formatting_timeout;                        /* XT only */
        char drive_check_timeout;                       /* XT only */
        short landing_zone;                             /* AT and later */
        char sectors_per_track;                         /* AT and later */
        char unused;
};

Unused fields are zero.

The pointer to the parameters for drive 0 is found at the location for interrupt 0x41, at 0x0104. The pointer to the parameters for drive 1 is found at the location for interrupt 0x46, at 0x0118.

SCSI and ESDI drives do not use this table, and have drive type 0.


Next Previous Contents