It was in the original spec, so don't blame the cards.
As 1024 IO addresses was WAY over the amount you really needed back in
the early eighties, this was an elegant solution. Nowadays you might
have 128 registers in a device (e.g. the CL-CD1865).
You could then document "you need 128 consecutive free adresses for
this card" in the documentation for a card like this. But this isn't
really feasable (find a computer where you can alot that many IO
addresses). So what you could do is to decode the top 6 address lines
besides what you normally do. So to get access to 128 addresses you
only need two ioaddresses in the 0-0x3ff range. So you decode A1-A9
as card-select, and use A15-A10 and A0 as the 7 address select lines.
IBM should've specified that you had to decode the TOP 10 address
lines, but that's no good because addresses below 0xff are "cheaper":
you don't have to load the "dx" register with the address before
accessing the IO location.
Roger.
-- ** R.E.Wolff@BitWizard.nl ** http://www.BitWizard.nl/ ** +31-15-2137555 ** *-- BitWizard writes Linux device drivers for any device you may have! --* * Never blow in a cat's ear because if you do, usually after three or * * four times, they will bite your lips! And they don't let go for at * * least a minute. -- Lisa Coburn, age 9- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majordomo@vger.rutgers.edu Please read the FAQ at http://www.tux.org/lkml/