AT INTERFACE and ATA COMMANDS
WA31273A / WA32543A / WA33203A / WA32163A / WA31083A / WA32162A 6-35
6-4-22 Write Buffer (E8h)
This command enables the host to overwrite the contents of the drive's sector buffer
with any data pattern desired. See 6.6.2 for protocol.
The Read Buffer and Write Buffer commands shall be synchronized within the drive
such that sequential Write Buffer and Read Buffer commands access the same 512 bytes
within the buffer.
6-4-23 Write Multiple Command (C5h)
This command is similar to the Write Sectors command. The drive sets BSY within 400
nsec of accepting the command, and interrupts are not presented on each sector but on
the transfer of a block which contains the number of sectors defined by Set Multiple.
Command execution is identical to the Write Sectors operation except that the number
of sectors defined by the Set Multiple command are transferred without intervening
interrupts. DRQ qualification of the transfer is required only at the start of the data block,
not on each sector.
The block count of sectors to be transferred without intervening interrupts is
programmed by the Set Multiple Mode command, which shall be executed prior to the
Read Multiple command.
When the Write Multiple command is issued, the Sector Count Register contains the
number of sectors (not the number of blocks or the block count) requested.
If the number of requested sectors is not evenly divisible by the block count, as many
full blocks as possible are transferred, followed by a final, partial block transfer. The
partial block transfer is for n sectors, where
n = Remainder (Sector Count / Block Count)
If the Write Multiple command is attempted before the Set Multiple Mode command has
been executed or when Write Multiple commands are disabled, the Write Multiple
operation is rejected with an aborted command error.
Disk errors encountered during execution of Write Multiple commands are posted after
the attempted disk write of the block or partial block transferred. The Write Multiple
command ends with the sector in error, even if it was in the middle of a block.
Subsequent blocks are not transferred in the event of an error. Interrupts are generated
when DRQ is set at the beginning of each block or partial block.
The contents of the Command Block Registers following the transfer of a data block
which had a sector in error are undefined. The host should retry the transfer as
individual requests to obtain valid error information.