Programmed IO

From NDWiki
Jump to navigation Jump to search

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
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 register standard

ND IO device numbers

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