110 I/O operations which previously required large amounts of CPU supervision and therefore limited its data processing time can now be independently managed and maintained by an I/O processor like 8089.
The 8089 and its host processor communicate through messages placed in blocks of shared memory. The host processor sets up these communication blocks and supplies their addresses to the 8089. There are two such blocks: the Channel Control Block and the Command Parameter Block.
The 8089 has two independent I/O channels that operate concurrently. Each channel has a separate set of registers and individual external interrupt, DMA request and external terminate pins.
If any I/O operation does not complete successfully, the channel takes corrective action, signaling the host processor when the 110 operation is completed or error correction routines have finished executing.
A task block program, written in 8089 Assembly Language, is executed for each channel (see Figure 7). Task block programs manage and control the 110 operations performed by a 110 channel. The 8089 Assembly Language instruction set contains specialized 110 and general-purpose data processing instructions for simple and efficient control of 110 operations:
i. Bit manipulation and test instructions.
ii. Memory-to-memory, peripheral-to-memory, and peripheral-to-peripheral data transfer operations.
iii. Simple arithmetic and logical operation instructions.
iv. Conditional, unconditional, and bit test control transfer instructions.
v. Special instructions for interrupt control, DMA initialization, and a semaphore test and set mechanism.
6.Task block programs vary in size and complexity, depending on I/O system design and the 110 operations being conducted. There is a great deal of flexibility in the use of task block programs to manage and control 110 operations. A modular technique may be employed, using a number of simple, well-defined task block programs, linked in sequence, to perform 110 operations.