Aside from my view that it would be TOTAL exercise in mental masturbation, I'd have to agree that it's a bad idea. The simple use of wait-states won't work, at least by itself, if you stick in a daughterboard with a faster set of RAM, etc. The problem is that the fast CPU has to be synchronized with the APPLE-][ or //c video circuitry. It would be straightforward enough to generate circuitry to detect and store data to be written to the display memory until a blanking interval occurs, except for the fact that the necessary signals aren't trivially avaiable from the daughterboard. You'd have to route the blanking signal(s) to the daughterboard somehow, perhaps hooking it to an interrupt or something if you didn't sync the fast CPU with the video, so I think that's what you'd have to do.
I gave up on trying to get even one bit of useful work from the Apple-//c by the way, and have chucked it, leaving only a couple of the ][+ types lying about. I do, of course, have lots of other 6502 applications in house, most of them faster than the Apples.
The Apples were designed as video toys and are, as a result, tightly coupled with the oddities of the video circuitry's timing. If they'd wanted to make a more general circuit, and, considering their market, there was no reason for them to do so, they could have slaved the video timing to the CPU rather than the other way around.
What is decent enough about the Apple-][+, in terms of "roll-yer-own" if you've stomach for that, is that it's built with little customed hardware. That means that you can fix it if it breaks and copy it if you are a glutton for punishment. Aside for cassette I/O software, I doubt there's much (other than one of the serial I/O boards, that relies on CPU timing, so you could, conceivably, build a version that runs the CPU at speed, subsequently synchronizing, via hardware, to the video timing whenever a read or write of the video memory is needed. This has to be done with sync logic because the video refresh is synchronous. That means that if you tread on the video space while it's trying to refresh the display, you'll get hash on the screen. Having a shadow of the video contents would be both trivial and practical with a fast shadow ram in use anyway, thereby allowing you to sync only on writes to the video memory. It could get somewhat trickier with overlapping your fast RAM on the I/O region. Some devices clear status bits if you physically read their data register (e.g. MC6850) and would always have a set bit anyway unless you physically read them.
Since my interest in the Apple computers has waned considerably, I'll leave most of this as an exercise for the studen (of Appledom).
Uli
|
|