Re: ISA I/O port programming question...

David Woodhouse (dwmw2@cam.ac.uk)
Mon, 13 Jan 1997 03:17:52 +0000 (GMT)


On Sun, 12 Jan 1997, Robert Erlich wrote:

> What is the magic of I/O ports below 0x3FF on the ISA buss? Some texts I
> have read state that only the first 10 bits of the I/O address are decoded
> onto the ISA buss. Is this true?

AFAIK, the only reason you shouldn't use I/O addresses above 0x3FF is that
the original ISA spec didn't allow it, so you may find old ISA cards only
decoding the low 10 address lines so, for example, you may find a parallel
port at 0x378 also appears at 0x778, 0xB78, 0xF78...
I don't know if more recent cards bother to decode more than these lines.
You may find that a fairly new machine will let you get away with putting
I/O devices above 0x3FF, if you're lucky.

If you're after a lot of I/O addresses, but without disrupting the
existing map too much, how about shifting the significance of the address
lines? Pick a single I/O address in the proper region, like 0x3f7, and
make your device use the other ten address lines, but only when the bottom
ten address lines read 0x3f7. That way, you get 0x400 addresses for your
device to play with, but only take up one byte in the I/O map.

---- ------------------------------------------------ ----
David Woodhouse, WWW: http://dwmw2.robinson.cam.ac.uk
Robinson College, Email: dwmw2@cam.ac.uk
Cambridge, Tel: +44 (0) 976 658355
CB3 9AN, (n)talk: dwmw2@dwmw2.robinson.cam.ac.uk
England. PGP KEY: finger pgp@dwmw2.robinson.cam.ac.uk
---- ------------------------------------------------ ----