The Apple II is famously built around its video generator. Conveniently, addresses are generated which scan all of the video memory and somehow spits the contents onto the screen.
Its occurred to me though, that generation of successive values which are put onto the address bus is useful for much more, because a single address can point to many different things at once. It could read a byte from a bitmap, and at the same time read some other value from another bank of memory. This is how the Apple II does DRAM refresh for example.
But couldn't this also have easily been used for many other purposes?
- To scan the keyboard? For example, we could map each address to a single key. Then, when a key is pressed, the address is stored in the keyboard latch and the 6502 is interrupted. This could probably mean the design could do without the AY-5-3600 which scans the keyboard.
Other ideas, probably too much feature creep for an Apple II, but maybe for another, more business-oriented computer.
Serial port I/O? For as long as the serial port can supply us with bytes, just write them into some buffer to be read later by the CPU. Or write from the buffer to the port of course.
Multiple word arithmetic? Now this is something which is quite tedious for a 6502. To add two 48 bit values for example is quite a long program. But if those values are in an appropriate bank of memory, then with the addresses being generated sequentially, a 78LS181 will blithely do the job. I suppose this could accelerate some heavy arithmetic, integer or floating point.
So I've never seen a computer design which uses the video addresses as something else at the same time. Why is this? Didn't occur to anyone? Or is there a technical reason?