Thanks for all the replies. Responding in no particular order:
BigEd, I hadn't looked in detail at what Acorn did with their 65C02 in the Master range. I wonder if they switched to using the RDY signal because they no longer had the NMOS limitation of RDY only kicking in during read operations?
As for video memory, I'd plan to put it on the same expansion card as the 6845, so it'd be off on the expansion bus. The 32K SRAM chip I have planned the lower half of the memory map (located on the main board) will need some holes for I/O space, so I can add holes for off-board video RAM easily. I'll leave paging for when I eventually make my own design from scratch. I'm undecided whether to operate dual-port video RAM at the CPU clock speed (and only have the 6845's registers accessed at 2MHz like the rest of the expansion bus) or to slow down all video writes to 2MHz.
Garth, your primer pages are, as ever, a good read. My current 6502 machine uses a calculator LED display, and I'm currently working on wiring up a teletext-based VDU for it (following the Acorn System replica theme). At some point in the future, when I design a full 6502 machine from scratch, I'll probably be opting for an LCD-based approach. But for the time being I'm sticking to tweaking and updating a historical design.
drogon, a reservation I have with the 6522 approach is how I'd deal with the handshaking. At the moment I'm planning on using the existing System OS largely as-is, but the handshaking would presumably need some software modifications.
BDD, the approach you describe appears similar to the method Acorn used on this 6502A board, using their /MemoryReady input. Here's an extract of the diagram and a description:
Attachment:
File comment: Extract of Acorn 6502A Processor Card circuit diagram
Acorn_6502A_clock.png [ 82.09 KiB | Viewed 1752 times ]
A 24MHz crystal is seen at the bottom of the diagram, and three 74S163 counters divide this to create the various clock signals sent to the backplane on the right. LK1-3 selects one of the 1-3MHz clock signals to feed the circuit at the left of the diagram. The selected clock signal is used to clock the /MemoryReady signal through a 74ls74. The output of this 74ls74 is normally low (when the /MemoryReady signal is inactive high), and is updated only at clock transitions. It is ORed with the clock signal (74ls32), and its output is used as the Phi 0 input to the 6502A CPU.
The net result is that the presence of the active low /MemoryReady signal causes the output of the OR gate to remain high, and thus halts CPU execution until /MemoryReady returns high. (As it is an NMOS CPU, it has to be halted in the high-phase of the clock cycle.)
Going with this approach would need two further steps that I can see: identifying when the expansion bus is accessed (already done by the gate logic for the buffer for the data bus on the expansion bus) and determining how long the /MemoryReady signal should be held low.
I've since stumbled across Dr Jeffyll's
design for a 74xx163 clock-stretching circuit, which definitely warrants more thought. At first I was thinking I could use it to generate the /MemoryReady input (with its stretched PHI2 output), but then it occurred to me that it could replace the original clock latching circuit (74ls74 and 74ls32) as well!