A system for accessing control and status registers for a device within a
computer system. These control and status registers are used to control
and configure the device and to read status information from the device.
The system operates by serially shifting an index into an index register
within the device. This index specifies a target register to be accessed
within the control and status registers. During a write operation to the
target register, the system serially shifts a data value into a data
register within the device, and then moves the data value from the data
register into the target register. During a read operation from the target
register, the system loads a value into the data register from the target
register, and serially shifts the value from the data register to a
location outside the device to complete the read operation.