Hi Folks. Sorry for the delay, solid week at work and then away for a long weekend. I have converted my logic notes in to a diagram - see the attached mess which is realised by two 74XX00 NAND and one 74HCT04 (I have both LS and HCT NAND devices
)
I hope I have transcribed this correctly, as I know it works of course. I have included a couple of notes re the memory map and how many gates propagation delay to come up with the decode. The maximum is 4 gates of delay, which I guess could be in the order of 28-36ns. Also see that Phi2 is not used to qualify ROM or IO activation, only for RAM access.
I'm conscious that I haven't done an optimal job on this - I came up with this more than 3 years ago now (time flies) and it was my first go and more or less worked except I was using Phi2 for IO which I fixed after advice on this forum (only remembered now!).
The RAM device is a UM 621024 70ns device with the following control truth table (which I think is normal for many RAM chips):
/CE1 high or CE2 low is standby
/OE and /WE high is output disabled
/CE1 low, CE2 high, /OE low, /WE high is read
/CE1 low, CE2 high, /WE low is write (/OE don't care - in fact I have tied /OE low due to this)
The faster device is a UM 61512 15ns device, same truth table as above and same manufacturer (UMC). Did I mention that with the fast RAM, I can clock the 6502 at 5.38Mhz, 2.68Mhz or even 1.34Mhz and it is very glitchy. So this might be confirming theories that the RAM is too fast for a breadboard set up?
In addition: When the 3 enable lines to the 74xx138 select an IO device, Phi2 is then used for further qualification. For the 6551 and 2 times 6522, this is simply the same Phi2 as fed to the 6502. For the TMS9918, I have yet more logic to get a /CSR and /CSW signal.
In answer to a query about the clock frequencies - this has been dictated by my choice of using a TMS9918a which requires a 10.738Mhz clock. I have a 21.7727Mhz crystal and hence used this to divide by 2 for the TMS9918 and by 4 for the 6502.
I hate not being able to know definitively what is going on here - but maybe I have now given enough information for someone to work it out. However, if not, I will need to put it down to things like slew and breadboard noise - I need to move on with other things on my project!
As always, any views and advice welcome.