sburrow wrote:
So, I was thinking, if you remember:
viewtopic.php?f=4&t=7154With my last revision I had a flicker problem, but it would go away if I heated up the '161 clock divider. Then I swapped the '161 out with another and it seemed to work. A small update on that: Since winter is/was here, the board got cold and sure enough, the flicker came back ever so slightly. Hm! So that first '161 (the canary, as it was called) just had different margins I guess. It was either faster or slower, ever so much, that it caused the flicker. And then this newer one didn't flicker AS MUCH, but it still did in the end.
What if the timing on those shift registers was the real problem the whole time?! What if I had my /CLK hooked up to them and I should have had CLK instead? Then that original '161 might not have flickered at all! It was never the '161s fault, it was the shift register's fault. Just a hypothesis. Basically: Maybe my logic on using /CLK was wrong for the past 6 revisions, but it wasn't showing up much until I tightened my glue logic a lot. Hm.
Update:
Indeed! Thank you Jeff [ EDIT: it was Bill (plasmo), thank you Bill! But still thank you Jeff too! ] for telling me to save my "canary" 74HC161 many months ago! I pulled it out of the parts collection, plugged it into the old board, flicker-city. THEN I took the '166 shift register and changed /CLK to CLK and the flicker immediately disappeared! I tried the canary '161 in this new board and it worked immediately as well. So, now it is clear: I had my clock logic wrong from MANY boards ago. It just so happened to not be a issue until a more recent design. Fixed.
Secondly:
I was unofficially supporting the use of a 62256 32KB SRAM chip in place of the 128KB SRAM chip I'm currently using. But, even running the most basic and simple test programs all failed with it. So I set up to draw just a single byte on the screen, and sure enough trash started showing up on the screen, as if it were reading a floating databus. So, why was this happening here? It just so happens that my particular 62256 is also just a hair faster than the '1008 I was using, so it was writing twice per cycle, once garbage and the other was intended.
I had a spare 3x NAND gate after doing the last surgery, so I did a LOT of surgery and qualified the /WE pin to the second-half of PHI2-high. And sure enough, the 62256 works now, as well as the bigger '1008. The whole time, it was a FLUKE that my RAM was actually working!
Two flicker issues solved!
Now, my next issue is the auto-adjust on the screen. It seems my monitor "doesn't like" my new video ROM signals as much as previously. It is still running smoothly at 60 Hz, but I need to manually change the phase and horizontal position to get it to fit right.
Makes me wonder, should I add a border? The C64 and VIC-20 did that, a big fat border around the edges. Why? I suppose it's because older TV's were not as universal, and some edges could be clipped off? Anyways, if I added a small border around the edges of the screen, it would fit inside the monitor still, give me 38-column text, and I believe my living room TV with the VGA-to-HDMI adapter would display it better (it was clipping off the sides last time I tried).
Anyways, the adventure continues. Major victories today! Thanks everyone.
Chad