So where were we? Oh yeah, I've got a shiny new logic analyzer that is really cool, and a prototype of the Liber809 that doesn't do a thing when plugged into the 6502 socket of my Atari XEGS. Time to put these two things together.
The logic analyzer quickly showed the problem: the Q clock, which was being generated by delaying the E clock using the resistor/capacitor (which itself was generated from the PHI0 clock coming from the Atari), wasn't properly formed. Essentially, Q was falling at the same time that E was.
Now you might be wondering what the hell I just said. Well, I'm using the 6809E, not the 6809. There's a difference... the 6809E requires not one, but two clock inputs: E and Q. Both clocks rise and fall, but E rises 1/4 in time AFTER Q does. This timing is critical. If it isn't right, the 6809E doesn't work.
(Aside: so why did I choose the 6809E instead of the 6809? Because I have a few laying around, and that's the same chip the CoCo takes.)
Ok, so I now had a timing diagram from the logic analyzer that I could take to Gary and say "here... look at this." It runs out that the RC timing constant that Gary used to delay the Q clock was not sufficient. We needed a way to "shift" the Q clock by a full 90 degrees, but it also needed to stay up after the E clock fell.
Again, the helpful guys on the AtariAge.com forums came to our aid. One of them suggested we look into the Maxim DS1100Z which takes an input signal and outputs that same signal shifted some amount of time. I did some calculations... the 6502C on the Atari XEGS runs at 1.789MHz. Shifting E for one quarter of a clock cycle turned out to be a 139.6ns delay. And what do you know, Maxim had the DS1100Z-175+ which had a delay of 140ns on one of its taps. Excellent!
Time to go on the Maxim website and get a few free samples. They eventually came in and man were they small!
In the mean time, Gary adjusted the schematic to eliminate the resistor/capacitor and use the DS1100Z. I carefully soldered the wires, being careful not to create any shorts. Once that was done, I hooked up the Liber809 prototype to the Atari XEGS, loaded up the Ostrich II with the 6809 test code, and fired things up. This time I got a screen full of colorful garbage! Something was alive!
Awesome! Does this mean that when you have fully succeeded, you would be able to transfer this to say a C64? Or would that require an equal amount of custom adapting?
ReplyDeleteYes. That is the plan. Right now my focus is on the Atari 8-bit systems, but I intend to turn my attention to the C64 and its 6510 processor. I've already acquired several C64s for the task.
ReplyDelete