1024MAK wrote:
The 6502 only puts a valid address on the address bus when Phi2 is high.
Not so. For best performance, device selection in a 65C02 system should not be qualified by the clock.
Attachment:
File comment: 65C02 Address Setup Timing
65c02_timing01.gif [ 27.68 KiB | Viewed 5660 times ]
If you examine the 65C02 timing diagram and AC characteristics, you'd see that the address bus will become valid
tADS nanoseconds after the
fall of Ø2.
tADS varies to some extent with operating voltage and the Ø2 clock rate, decreasing to a guaranteed value of 30ns at 14 MHz—that is, A0-A15 will be valid no less than 5ns before the rise of Ø2 in a 14 MHz system on five volts.
What should be qualified by Ø2 is read/write access to any non-65xx peripheral hardware, achievable with a circuit similar to the following.
Attachment:
File comment: Qualified Read/Write Generation
read_write_qualify_alt.gif [ 46.98 KiB | Viewed 5660 times ]
In the above circuit,
/RD (read) and
/WD (write) will not be asserted unless Ø2 is high, which is when the contents of
D0-D7 are guaranteed to be valid.
65xx peripheral hardware, such as the 65C22 and 65C51, "knows" about the 65C02 bus cycle and thus accesses to such hardware should not be qualified by anything. All setup for such devices must be completed by the rise of Ø2. Otherwise as Garth noted, it will not work.