This message is from the T13 list server.
No written requirement, aye. Back in the real world ... On the device-side there is a community of people who use more or less of the ability of some AtapiPio engines to move x0001..FFFF bytes per INTRQ DRQ, rather living by the Ansi rules forbidding transfers of odd bytes before the end and xFFFF bytes always. Some of these people fell into this by way of coming from 8-bit Scsi, where such abilities can be taken for granted. On the host-side, I know Win95B couldn't transfer odd bytes in response to any INTRQ DRQ: to work there the device has to move even counts always. Also on the host-side I can easily imagine hosts that think they know how many bytes to move in response to an Atapi INTRQ DRQ ... can't you? I take as confirming evidence that now here I've heard someone actually speak up and say that the state diagram doesn't tell them any different, as indeed it doesn't. Pat LaVarre >>> [EMAIL PROTECTED] 12/13/01 01:11PM >>> This message is from the T13 list server. On Thu, 13 Dec 2001 10:33:26 -0800, Ooi, Thien Ern wrote: >Could you elaborate on your statement: >"Today in ATAPI/PIO the receiver in DATA IN gets the byte count explicitly >from the device in the form of register values. The receiver then uses that >to generate the correct number of PIO clocks. " The ATAPI PIO data transfer protocol allows a device to break a data transfer into multiple DRQ data blocks. There is *NO* requirment that the DRQ data blocks be the same size as a media data block. There are basically no restrictions on what a device is allowed to do other than: * All DRQ blocks, except the last, shall be a mulitple of 2 bytes. * A DRQ block can not be more than FFFEH bytes. * A DRQ block shall not be larger than the size set by the host in the Byte Count Limit (BCL) at the time the PACKET command was started (a host is allowed to set a BCL of 2, 4, 6, 8, ... FFFCH, FFFEH). Except when transferring the command packet, each time an ATAPI device has status of BSY=0 DRQ=1 the device shall have placed into the Byte Count (BC) registers (aka, Cyl Hi/Lo regs) the number of bytes the host shall transfer for the current DRQ block. Again this need not be the number of bytes in the device's media data block. *** Hale Landis *** [EMAIL PROTECTED] *** *** Niwot, CO USA *** www.ata-atapi.com *** Subscribe/Unsubscribe instructions can be found at www.t13.org. Subscribe/Unsubscribe instructions can be found at www.t13.org.
