IOXT: Difference between revisions
(added Direction of transfer section) |
m (→Se also: corrected spelling) |
||
Line 14: | Line 14: | ||
This means that all I/O device registers which need to be loaded from the CPU A register are assigned and odd device register address. Similarly I/O device input registers are assigned even addresses. | This means that all I/O device registers which need to be loaded from the CPU A register are assigned and odd device register address. Similarly I/O device input registers are assigned even addresses. | ||
== | == See also == | ||
*[[Programmed IO]] | *[[Programmed IO]] | ||
*[[IOX]] | *[[IOX]] |
Revision as of 22:16, 20 December 2011
IOXT instruction is used for programmed IO. IOXT is a privileged instruction in normal cases but if there is no OS running and the paging system is turned off then IOXT is an unprivileged instruction.
IOX and IOXT are the only instructions used to communicate with external devices.
IOXT transfers data between a device I/O register and the CPU's A register.
The T register is used as IO address. If bit 0 of the T register is zero then IOXT reads the value from the IO register into register A. If bit 0 is one then IOXT writes the contents of register A to the IO register.
Addressing of a non existing device results in a IOX error.
Direction of transfer
The actual transfer direction of the IOX and IOXT instructions is decoded from the device-register address, based on the following convention: the transfer direction is input (from device to CPU) if the device-register address is even.
This means that all I/O device registers which need to be loaded from the CPU A register are assigned and odd device register address. Similarly I/O device input registers are assigned even addresses.
See also
References
- Norsk Data Document ND–06.015 ND-100 FUNCTIONAL DESCRIPTION (Programmed I/O, chapter 6.3)
- Norsk Data Document ND–06.026.1 ND-110 Functional Description (The Input/Output Instructions IOX and IOXT, page 141)