
Instruction Set of the I/O Processor
Block Move Instructions
6-4
SYM53C810A Data Manual
Block Move Instructions
T he Block Move SCRIPT S instruction is used to
move data between the SCSI bus and memory. For
a Block Move instruction, the SYM53C810A
operates much like a chaining DMA device with a
SCSI controller attached. Figure 6-2 illustrates the
register bit values that represent a Block Move
instruction. In Block Move instructions, bits 5 and
4 (SIOM and DIOM) in the DMODE register
determine whether the source/destination address
resides in memory or I/O space. When data is
being moved onto the SCSI bus, SIOM controls
whether that data comes from I/O or memory
space. When data is being moved off of the SCSI
bus, DIOM controls whether that data goes to I/O
or memory space.
First Dword
Bits 31-30 Instruction Type-Block Move
Bit 29
Indirect Addressing
When this bit is cleared, user data is moved to
or from the 32-bit data start address for the
Block Move instruction. T he value is loaded
into the chip’s address register and incre-
mented as data is transferred. T he address of
data to be moved is in the second dword of this
instruction.
When set, the 32-bit user data start address for
the Block Move is the address of a pointer to
the actual data buffer address. T he value at the
32-bit start address is loaded into the chip’s
DNAD register via a third dword fetch (4-byte
transfer across the host computer bus).
Direct
T he byte count and absolute address are as
follows.
Command
Byte Count
Address of Data
Indirect
Use the fetched byte count, but fetch the data
address from the address in the instruction.
Once the data pointer address is loaded, it is
executed as when the chip operates in the
direct mode. T his indirect feature allows a
table of data buffer addresses to be specified.
Using the SCSI SCRIPT S assembler, the table
offset is placed in the SCRIPT S file when the
program is assembled. T hen at the actual data
transfer time, the offsets are added to the base
address of the data address table by the exter-
nal processor. T he logical I/O driver builds a
structure of addresses for an I/O rather than
treating each address individually. T his feature
makes it possible to locate SCSI SCRIPT S in a
PROM.
Note: indirect and table indirect addressing
cannot be used simultaneously; only one
addressing method can be used at a time.
Bit 28
Table Indirect
When this bit is set, the 24-bit signed value in
the start address of the move is treated as a rel-
ative displacement from the value in the DSA
register. Both the transfer count and the
source/destination address are fetched from
this address.
Use the signed integer offset in bits 23-0 of the
second four bytes of the instruction, added to
the value in the DSA register, to fetch first the
byte count and then the data address. T he
signed value is combined with the data struc-
ture base address to generate the physical
address used to fetch values from the data
structure. Sign-extended values of all ones for
negative values are allowed, but bits 31-24 are
ignored.
Command
Byte Count
Address of Pointer to Data
Command
Not Used
Don’t Care
Table Offset