Agrimensor wrote:
Hi,
I'm wondering what happens with W65C02 when BE is low.
Does the microprocessor preserve the status of its registers so that execution can be reasumed when BE is put back to HIGH ?
I have one W65C02 free spinning with data bus connected to NOP (EA) and a pushbutton to control the state of BE.
For what I have observed, it seems that the micro preserves its state if clock is stopped, but otherwise it keeps advancing the execution (but with the adress bus in high impedance) and reading NOP instructions in my setup.
In a realistic configuration, it would probably read random instructions from memory.
So, if I want to write on the memory with an external device and then reassume execution, I also have to stop the clock. Is it so ?
Thanks !!
Quite simply; when you pull BE low, it tristates all 16 address bus lines and all 8 data bus lines.
And that's all.
R/W is not tristated, so you may wish to isolate that somehow. The clock doesn't stop, Rdy stays as it is.
So all it does is tristate the buses - this means that unless you have stopped it (stopped the clock or pulled Rdy low) then the 65C02 will read garbage and likely crash.
I use BE in my 6502/65816 designs, so I can have a block of shared RAM with another processor, but I also stop the CPU with a WAI instruction.
-Gordon
_________________
--
Gordon Henderson.
See my
Ruby 6502 and 65816 SBC projects here:
https://projects.drogon.net/ruby/