This message is from the T13 list server.
Ok Pat, you have forced me to look into Atapi transfers, i.e. read the spec and talk to Hale. There are no real ambiguities in the Atapi world either. The packet data from the Host tells the drive exactly how much data is to be transferred for all cases but one which turns out not to be amibiguous either. When there are read and write data transfers, the Host tells the drive and the DMA controller exactly how much data will be transferred. No more and no less data will be transferred than was specified in the packet count information unless there is an error. When either a Request Sense or Inquiry Command is issued, the device can send in an unknown (but only at the start and during the transfer) amount of data. But when the device is done sending in the data, it will send an interrupt to the Host to signal that the transfer is complete. The Host can then determine exactly how much data was transferred by parsing the actually returned data. In this case, the host DMA controller must be programmed to receive the maximum amount of data possible. There is no negotiation in this case. The drive knows precisely how much data it will transfer and tells the Host. When a mode select command is issued, the Host must tell the drive exactly how much data is to be transferred by the Host to the Device in the Packet. If the DMA controller, for whatever reason sends out more data, it will be ignored except that it will be run through the devices CRC checker as it waits for the CRC "state" to be entered. If this doesn't answer the doubts in your mind (I mean no offense by this), it would seem advisable to talk to someone either face to face or via phone so that the specific issues could be discussed back and forth to quickly bring the issue to a close. I would advise contacting Hale. Subscribe/Unsubscribe instructions can be found at www.t13.org.
