6-6 Instruction Set of the I/O Processor
6.3.1 First Dword
IT[1:0] Instruction Type - Block Move [31:30]
IA Indirect Addressing 29
When this bit is cleared, user data is moved to or from
the 32-bit data start address for the Block Move
instruction. The value is loaded into the chip’s address
register and incremented as data is transferred. The
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. The value at the 32-bit start address is loaded
into the chip’s DMA Next Address (DNAD) register using
a third Dword fetch (4-byte transfer across the host
computer bus).
Direct Addressing
The byte count and absolute address are:
Indirect Addressing
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. This
indirect feature allows a table of data buffer addresses to
be specified. Using the SCSI SCRIPTS assembler, the
table offset is placed in the SCRIPTS file when the
program is assembled. Then at the actual data transfer
time, the offsets are added to the base address of the
data address table by the external processor. The logical
I/O driver builds a structure of addresses for an I/O rather
than treating each address individually. This feature
makes it possible to locate SCSI SCRIPTS in a PROM.
Command Byte Count
Address of Data
Command Byte Count
Address of Pointer to Data