3 ms·
Another not quite that interesting approach (more of an I/O coprocessor) was used when you put a Z80 CP/M "Softcard" into a (6502-based) Apple II. Steve Woznia
by johndoe0815 3y ago
Another not quite that interesting approach (more of an I/O coprocessor) was used when you put a Z80 CP/M "Softcard" into a (6502-based) Apple II.
Steve Wozniak's floppy controller was very simple on the hardware side (more or less only a state machine implemented in a PROM), so most of the data serializing/deserializing and GCR de/encoding was done in software on the 6502. This was very timing-critical, so implementing this in Z80 code for CP/M instead would have been a challenge.
Instead, the Z80 on the Softcard called 6502 routines to handle disk (and other) I/O. Usually, the 6502 is stopped when running Z80 code, but it had to be woken up frequently not only for I/O accesses, but also to ensure that the 6502 did not lose its register values, which are stored in dynamic memory cells in the (non-CMOS) 6502.