Seems really suspicious that it's saying it's writing the last value it saw that was being read. I suspect something with the Arduino code.
Suspicious, yes. But I don't think it is the Arduino showing wrong (or delayed) data. I did put in a 50ms delay in the Arduino code to have it read the lines 50ms after PHI2 goes high. And the results from my last test (a few posts up) shows that the program completely falls apart - that is not the Arduino simply being a bit late, it shows the CPU (for whatever reason) completely losing track of where it is.
If you have a scope check to see what the values actually are on the data lines; if you don't have a scope, try setting it up with single stepping mode and use a multi-meter to check the data lines.
I do have a scope, but it shows the same weird data.
Or it might be worth while putting a 6522 or some other very simple device on there and seeing what happens when you write to that.
Unless the data bus is behaving differently when another device is "listening", the fact I see wrong data on the bus will not make a 6522 fix things. But, being a newbie in this HW game (but with 40+ years of software development experience in networking, security, Linux kernel coding etc), I fully expect to have to put my foot in my mouth - I will try the 6522 option.
It should be noted that it doesn't take a very fast clock to vastly outpace what the Arduino can reasonably react to.
I would think the Arduino can keep up with a 1Hz clock though ...
Thanks for your post! More things to try...
-Niek.