
Section 2. The PCPIC I/O Map
The I/O Pointer Scheme
There is a serious shortage of I/O space in most PCs. This can be a
real limitation if I/O boards have lots of functions and hence lots of
registers, like the PCPIC. The I/O pointer scheme used on the
PCPIC and other Arcom PCbus boards solves this problem.
In outline, to access a register on the PCPIC you must first set up a
pointer to it by writing a byte to the 'base address' of the PCPIC.
After that, you can read from and write to the register that is pointed
to, by accessing the byte at the base address + 1. The base address is
set up on the address Links LKA1 - LKA9.
Given that the pointer value is a byte, there are 256 possible registers
on a PCPIC. Obviously, not all of them are actually used. In fact, on
most boards very few of them are used, but the possibilities for
expansion are there.
In order to allow standardisation of software some register addresses
have been defined for all Arcom PCbus I/O boards. In particular, the
top half of the 256 byte space has been defined as 'special function'
register space, and the bottom half as 'I/O' register space. The special
function registers are mostly devoted to self-test, checking, security
and diagnostics. The I/O registers are the ones which the board is
there for: in this case input/output and interrupt functions.
The next two sub-sections describe the register allocations in detail.
How the PCPIC Appears in PCbus I/O Space
The PCPIC occupies two bytes in PCbus I/O space. They start on an
even byte boundary. The lower byte contains the register pointer
value and can only be written to. The upper byte contains the data
register and can be read from or written to.
The address Links LKA1 - LKA9 define where these two bytes are in
PCbus I/O space. The links set the address of the lower of the two
bytes (the base address); the upper byte address is one up from the
base address. Another way of saying this is that the board can only
be addressed at even byte boundaries and takes two consecutive
bytes of I/O space.
The address lines are designated A0 to A9 with A0 being the least
significant and A9 being the most significant. The address links
LKA1 to LKA9 are associated to address lines A1 to A9 respectively.
To decode a valid board address a comparison is made between A1
- A9 and LKA1 - LKA9.
J230 PCPIC
Page 9
2192-09155-000-000
A9
0
LKA9 LKA8 LKA7 LKA6 LKA5 LKA4 LKA3 LKA2 LKA1
A8
A7
A6
A5
1
1
0
0
0
0
0
0
0
A4
A3
A2
LKA1
A0