How to do an I/O bus?

How hard would it be to configure the I/O pins to act as a data/addressing bus to allow multiple shields to be stacked? Similar to ISA architecture; would allow several shields to be plugged together in parallel, and the arduino could address/talk to whichever shield was needed.

(Is this already being done and I'm missing something?)


It would be quite easy, but all the shields in question would have to have appropriate hardware and at present none do.


OneWire, I2C and SPI are already busses... (OK SPI needs an enable signal per slave, but the 3 other signals are bussed).