Specifications
5.4.4 Initialize Drive Parameters command
This command (command code 91
H
) sets the number of sectors per track
and the number of heads, minus 1, per cylinder for the translation mode
the host would like to use. Upon receipt of the command, the drive sets
BSY, saves the parameters, clears BSY, and generates an interrupt.
The only two register values used by this command are the Sector Count
register which specifies the number of sectors per track, and the
Drive/Head register which specifies the number of heads minus 1.
The sector count and head values are not checked for validity by this
command. If they are invalid, no error is posted until the host attempts a
data access command. All data access commands are rejected with an
error until a valid translation mode is established.
5.4.5 NOP command
This command (command code 00
H
) enables a host that can only
perform 16-bit register accesses to check drive status. The drive will
respond as it does to an unrecognized command by setting Abort in the
Error register, setting Error in the Status register, clearing Busy in the
Status register, and asserting INTRQ.
When a 16-bit host writes to the Drive Head register, one byte contains
the Command register, so the drive sees a new command when the
intended purpose is only to select a drive. Both drives may be busy but
not necessarily ready (for example, the master drive may be ready, but
the slave may not). To check this possibility, an 8-bit host uses the
following procedure:
1. Read the Status register (wait until Busy False)
2. Select the drive (write to the Drive Head register)
3. Read the Status register (wait until Busy False and Ready True)
4. Send the command (write to the Command register).
Since a 16-bit host executes steps 2 and 4 simultaneously, a problem
occurs if the drive being selected is not ready at the time the command
is issued.
46 ATA Interface Reference Manual, Rev. C










