Specifications

In contrast, the table below illustrates a PIO write command with an error
indicated on the first block.
Step Event Process BSY DRQ INTRQ
1 Setup BSY=0
2 Issue command BSY=0
3 BSY=1
4
Transfer
first
block
Transfer data BSY=0 DRQ=1
5 BSY=1
6 BSY=0 DRQ=1 Assert
7 Read status BSY=0 DRQ=1 Negate
5.2.3 DMA data transfer commands
The DMA data transfer commands are Read DMA and Write DMA. Data
transfers using DMA commands differ from PIO transfers in two ways:
1) data transfers are performed using the slave-DMA channel; and 2) a
single interrupt is generated by the drive at the completion of the
command.
Initiation of the DMA transfer commands is identical to the Read Sectors
or Write Sectors commands except that the host initializes the slave-DMA
channel prior to issuing the command.
The host interrupt handler for DMA transfers is different from PIO
transfers in that: 1) no intermediate sector interrupts are issued on
multisector commands; and 2) the host resets the DMA channel prior to
reading status from the drive.
The host and drive follow these steps to execute the DMA Read or DMA
Write commands:
1. The host initializes the slave-DMA channel.
2. The host writes any required parameters to the Features, Sector
Count, Sector Number, Cylinder and Drive/Head registers.
3. The host writes the command code to the Command register.
4. The drive sets BSY.
5. The host and the drive transfer the data through the slave-DMA chan-
nel. A DMA transfer command with an error may transfer none, some,
30 ATA Interface Reference Manual, Rev. C