
2-6
Functional Description
Step 2.
To determine if any bytes are left in the SCSI Input Data Latch
(SIDL) register, read bit 7 in the SSTAT0 and SSTAT2 register.
If bit 7 is set in the SSTAT0 or SSTAT2, then the least signicant
byte or the most signicant byte is full.
Step 3.
To determine whether a byte is left in the SCSI Wide Residue
(SWIDE) register, read the Wide SCSI Receive bit (SCSI
Control Two (SCNTL2), bit 0) Synchronous SCSI Receive.
This applies toward any wide transfers that have been
performed using the Chained Move instruction,
Follow these steps for synchronous SCSI receive:
Step 1.
To calculate DMA FIFO size:
If the DMA FIFO size is set to 112 bytes, subtract the seven
least signicant bits of the DMA Byte Counter (DBC) register
from the 7-bit value of the DMA FIFO (DFIFO) register. AND the
result with 0x7F for a byte count between 0 and 112.
If the DMA FIFO size is set to 816 bytes (using bit 5 of the Chip
Test Five (CTEST5 register), subtract the 10 least signicant
bits of the DBC register from the 10-bit value of the DMA FIFO
Byte Offset Counter, which consists of bits 1-0 in the CTEST5
register and bits [7:0] of the DMA FIFO register. AND the result
with 0x3FF for a byte count between 0 and 816.
Step 2.
Read bits [7:4] of the SCSI Status One (SSTAT1) register and
bit 4 of the SCSI Status Two (SSTAT2) register, the binary
representation of the number of valid bytes in the SCSI FIFO,
to determine if any bytes are left in the SCSI FIFO.
Step 3.
To determine whether a byte is left in the SCSI Wide Residue
(SWIDE) register, read the Wide SCSI Receive bit (SCSI
Control Two (SCNTL2, bit 0) SYM53C895 Host Interface Data
Paths.
This applies toward any wide transfers that have been
performed using the Chained Move instruction.