Hi Guys!
I have started playing around with the W65C02 at a low clock speed and a basic circuit consisting of essentially the CPU rom and clock (just 1 Hz). All is going well so far, with just a simple routine of reset vector pointing to $C000 and a jump command looping back to $C000. Monitoring it with a logic analyser shows that it's doing what it should.
I am now attempting to run the circuit by having the BE pin go high on the positive phase of the clock, making the CPU go into high Z on the negative phase (so I can make another circuit use the RAM/ROM on the low phase - like what the C64 did with the VIC2 chip).
I can see that it is going through the reset sequence correctly and can see that the ROM has $00 $C0 at the reset vector, but right after that it goes straight to address $0000 and not $C000. If I tie the BE pin high, then reset, it works correctly.
I read in the timing that it needs 30nS for things to become valid on the W65C02, so I added an inverter and cascaded the inverters to give a ~54ns delay.
Here the 1Hz clock is being fed to BE and tapped from there through the inverter chain and fed in to PHI2 on the W65C02, in an effort to keep the timing happy, but the problem still remains, the addresses the CPU requests are inconsistent (after the reset process settles down).
Again, I can tie BE high, reset the CPU and all is happy.
Are you not able to use BE in this manner? I know the CPU starts setting up the address in the low cycle and was hoping it would merely keep the address lines in high-z. Or does BE low also stop the CPU for doing things internally?
I can look at adding a few buffer chips if needed between the CPU and address bus if this method won't work.
Love to hear your thoughts. Many thanks in advance.