Programmed IO

From NDWiki
Revision as of 00:00, 18 January 2009 by Mike (talk | contribs) (Change the way references where displayed)
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 is 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 transfers 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 recides in the area adressable 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 Correctio Control Register is located on the memory module so the micro code 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 timeout 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 the appendix C of ND-100 functional description.

References