IOXT: Difference between revisions

From NDWiki
Jump to navigation Jump to search
(→‎References: added another reference)
(added Direction of transfer section)
Line 9: Line 9:
Addressing of a non existing device results in a [[IOX error]].
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.


== Se also ==
== Se also ==

Revision as of 22:15, 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.

Se also

References