![](http://datasheet.mmic.net.cn/390000/SYM53C876_datasheet_16836340/SYM53C876_168.png)
5-6
SYM53C876/876E Data Manual
SCSI SCRIPTS Instruction Set
Block Move Instructions
Target Mode
1. The SYM53C876 verifies that it is connected
to the SCSI bus as a target before executing
this instruction.
2. The SYM53C876 asserts the SCSI phase
signals (SMSG/, SC_D/, and SI_O/) as
defined by the Phase Field bits in the
instruction.
3. If the instruction is for the command phase,
the SYM53C876 receives the first command
byte and decodes its SCSI Group Code.
a. If the SCSI Group Code is either Group
0, Group 1, Group 2, or Group 5, then
the SYM53C876 overwrites the DBC
register with the length of the Command
Descriptor Block: 6, 10, or 12 bytes.
b. If the Vendor Unique Enhancement 0
(VUE0) bit (SCNTL2, bit 1) is clear and
the SCSI group code is a vendor unique
code, the SYM53C876 overwrites the
DBC register with the length of the
Command Descriptor Block: 6, 10, or 12
bytes. If the VUE0 bit is set, the
SYM53C876 receives the number of bytes
in the byte count regardless of the group
code.
c.
If any other Group Code is received, the
DBC register is not modified and the
SYM53C876 requests the number of
bytes specified in the DBC register. If the
DBC register contains 000000h, an illegal
instruction interrupt is generated.
4. The SYM53C876 transfers the number of
bytes specified in the DBC register starting at
the address specified in the DNAD register. If
the Op Code bit is set and a data transfer ends
on an odd byte boundary, the SYM53C876
stores the last byte in the SCSI Wide Residue
Data Register during a receive operation. This
byte is combined with the first byte from the
subsequent transfer so that a wide transfer can
complete.
5. If the SATN/ signal is asserted by the initiator
or a parity error occurred during the transfer,
it is possible to halt the transfer and generate
an interrupt. The Disable Halt on Parity
Error or ATN bit in the SCNTL1 register
controls whether the SYM53C876 halts on
these conditions immediately, or waits until
completion of the current Move.
Initiator Mode
1. The SYM53C876 verifies that it is connected
to the SCSI bus as an initiator before
executing this instruction.
2. The SYM53C876 waits for an unserviced
phase to occur. An unserviced phase is
defined as any phase (with SREQ/ asserted)
for which the SYM53C876 has not yet
transferred data by responding with a SACK/.
3. The SYM53C876 compares the SCSI phase
bits in the DCMD register with the latched
SCSI phase lines stored in the SSTAT1
register. These phase lines are latched when
SREQ/ is asserted.
4. If the SCSI phase bits match the value stored
in the SSTAT1 register, the SYM53C876
transfers the number of bytes specified in the
DBC register starting at the address pointed
to by the DNAD register. If the op code bit is
cleared and a data transfer ends on an odd
byte boundary, the SYM53C876 stores the
last byte in the SCSI Wide Residue Data
Register during a receive operation, or in the
SCSI Output Data Latch Register during a
send operation. This byte is combined with
the first byte from the subsequent transfer so
that a wide transfer can complete.
OPC
Instruction Defined
0
1
MOVE
CHMOV
OPC
Instruction Defined
0
1
CHMOV
MOVE