Programmed IO

Programmed IO is used for the CPU to communicate with devices. The only instructions that could access the IO are IOX and IOXT. IOX uses the lower 11 bits in the instruction as address (0-3777 oct). IOXT uses the T register as address and could access the full IO address range (0-177777 oct). Both instructions transfer data to and from register A.

IO transfer direction
The lowest bit in the address decides the transfer direction. If the bit is zero then the direction is from the IO register into register A. If the bit is one then the contents in register A is written to the IO register.

IO memory map
Most Norsk Data devices reside in the area addressable from IOX. The lower half of that IO area is reserved for Norsk Data devices. The rest of that area is free for customer devices.

IO device address map for ND-100 (octal) 000000-001777 Norsk Data interfaces 002000-003777 Free for customer interfaces 004000-077777 Illegal 100000-100777 System control registers 101000-107777 Reserved 110000-137777 140000-177777 Norsk Data interfaces

System registers : Some system control registers are controlled via the IO bus, for example ECCR, Error Correction Control Register is located on the memory module so the microcode converts the TRR instruction to an IOXT 100115

ND IO interrupts
If the IO address is to a non-existing device the IO instruction will time out after 10 us and issue an IOX error interrupt if enabled.

ND IO device numbers
The device numbers are listed in appendix C of ND-100 functional description.