A long time ago in an arcade far far away.....
18th June 2015...
In a scream and a panic (well, it was calmer than that), Singy1UK declared "Asteroids isn't working" at the arcade so I go scrambling behind a machine that's next to a doorway where some very comedic slapstick fun could have occurred with people walking in and out I check voltages and so on and put the game in test mode and I can see the test pattern and a beep repeating and then clearing..
Ah.... it's watchdogging!
Trying a different board that's apparently working didn't resolve the problem as that had issues as well.
So I bundle them up and bring them home to "the bench", they put another board in from another machine clean the edge connectors etc and its working again - hurrah.
A few things happen in between like NERG, other repairs, day job - you know, the boring stuff....
Fast forward to 24th July 2015 and I figure i've procrastinated enough and its time to pop my vector cherry.
The fault seems simple enough, I can see the full X and Y output of the test pattern so the analog circuit is likely ok and very likely the vector math and state machine side.
I start by building a loom - i'll get +5v from my SMPSU and i'll get 36vAC from this atari brick.... solder, strip wire, cut, solder, ....... check work...... power on.... ok, I see the test pattern momentarily then it dies and the beep fades away - boooooo!
I trace the 36v circuit through to the 22vDC side and i'm getting all sorts of weird voltages. One of the caps was leaking so I replaced both anyway but no change, i'm seeing 36v across the two bypass caps so wtf is going on here?
A bit of head scratching later I post a tech thread and RaveN and Mitchell Grant (and ColinD via offline message) give me some excellent schooling on power supplies - "James, you need the ground from the 36vAC on the brick as its a centre tap transformer" - ding! lightbulb goes on, many thanks are given for this, quick wire added and hey presto i'm where I should be - I can see the test pattern flicking on and off and the beep going in sync with it and the watchdog barking at the CPU.
I'm short on time and thankfully have a 6502 pod on loan for the Fluke and its the fastest way to at least see if the CPU can see the ROMs and RAM so in that goes.
First problem I had was that the usual place we all go to for the fluke signatures didn't have the asteroids ones listed.
Different approach - pull the ROMs, read them in on my eprom reader, verify them online to get the signatures of the revision 2 set and then use the fluke with the generated signatures to test if it can read the ROMs when in place. Make a mental note to email in the signatures and get them included in the tech notes for others.
Yes it can read all the ROMs and do a nice long-test on the RAM so i'm out of the woods here, the CPU should be running code properly right.
So it's not the address/data bus, lets look at the other signals around it.
NMI doesn't seem to be doing anything - that doesn't look right, looking at the circuit though, if the test mode is active it inhibits the NMI so I take it out of test and the NMI is pulsing nicely - ok no score here.
I tried disabling the watchdog but the game freezes, in test mode this causes a long continuous tone and the test pattern to be displayed for me.
Remembering some pearls of wisdom from LukeWells many years ago "make sure your watchdog circuit is running correctly" I decide to look there.
Trace the RESET line back into its counter, a 161 at C5 and visually inspecting the chip, pin 3 is broken off and pin 4 is hanging on by a thread, well in any case this can't be right so I replace this chip - it'll likely be getting floating values on its inputs which won't be helping but not exactly the cause.
Looking back one more step in that circuit, the /WDCLR line which the code will trip to keep the game running is in an LS00 at C6, I look at the /WDCLR signal at pin 4 which is changing as it should be, the RESET line is HI at pin 5 as should be but the output at pin 6 is only changing very infrequently - doesn't seem right.
On with the logic comparator and it says the chip is not right but not at pins 4,5,6 but at pin 3. Looking quickly around the schematic, I can't find what else uses C5 but if pin 3 isn't right i'm happy to change it.
Out it comes cleanly, test it on the hand held IC tester and it agrees the chip isn't right. Replaced with a new LS00 and the game now powers up and plays properly.
I did a video about it all but I go into more detail about the wiring cock up I made so take this as the short version but if you like the more pictoral version then watch the video below:
[tube]6iGSOQkUY_0[/tube]
18th June 2015...
In a scream and a panic (well, it was calmer than that), Singy1UK declared "Asteroids isn't working" at the arcade so I go scrambling behind a machine that's next to a doorway where some very comedic slapstick fun could have occurred with people walking in and out I check voltages and so on and put the game in test mode and I can see the test pattern and a beep repeating and then clearing..
Ah.... it's watchdogging!
Trying a different board that's apparently working didn't resolve the problem as that had issues as well.
So I bundle them up and bring them home to "the bench", they put another board in from another machine clean the edge connectors etc and its working again - hurrah.
A few things happen in between like NERG, other repairs, day job - you know, the boring stuff....
Fast forward to 24th July 2015 and I figure i've procrastinated enough and its time to pop my vector cherry.
The fault seems simple enough, I can see the full X and Y output of the test pattern so the analog circuit is likely ok and very likely the vector math and state machine side.
I start by building a loom - i'll get +5v from my SMPSU and i'll get 36vAC from this atari brick.... solder, strip wire, cut, solder, ....... check work...... power on.... ok, I see the test pattern momentarily then it dies and the beep fades away - boooooo!
I trace the 36v circuit through to the 22vDC side and i'm getting all sorts of weird voltages. One of the caps was leaking so I replaced both anyway but no change, i'm seeing 36v across the two bypass caps so wtf is going on here?
A bit of head scratching later I post a tech thread and RaveN and Mitchell Grant (and ColinD via offline message) give me some excellent schooling on power supplies - "James, you need the ground from the 36vAC on the brick as its a centre tap transformer" - ding! lightbulb goes on, many thanks are given for this, quick wire added and hey presto i'm where I should be - I can see the test pattern flicking on and off and the beep going in sync with it and the watchdog barking at the CPU.
I'm short on time and thankfully have a 6502 pod on loan for the Fluke and its the fastest way to at least see if the CPU can see the ROMs and RAM so in that goes.
First problem I had was that the usual place we all go to for the fluke signatures didn't have the asteroids ones listed.
Different approach - pull the ROMs, read them in on my eprom reader, verify them online to get the signatures of the revision 2 set and then use the fluke with the generated signatures to test if it can read the ROMs when in place. Make a mental note to email in the signatures and get them included in the tech notes for others.
Yes it can read all the ROMs and do a nice long-test on the RAM so i'm out of the woods here, the CPU should be running code properly right.
So it's not the address/data bus, lets look at the other signals around it.
NMI doesn't seem to be doing anything - that doesn't look right, looking at the circuit though, if the test mode is active it inhibits the NMI so I take it out of test and the NMI is pulsing nicely - ok no score here.
I tried disabling the watchdog but the game freezes, in test mode this causes a long continuous tone and the test pattern to be displayed for me.
Remembering some pearls of wisdom from LukeWells many years ago "make sure your watchdog circuit is running correctly" I decide to look there.
Trace the RESET line back into its counter, a 161 at C5 and visually inspecting the chip, pin 3 is broken off and pin 4 is hanging on by a thread, well in any case this can't be right so I replace this chip - it'll likely be getting floating values on its inputs which won't be helping but not exactly the cause.
Looking back one more step in that circuit, the /WDCLR line which the code will trip to keep the game running is in an LS00 at C6, I look at the /WDCLR signal at pin 4 which is changing as it should be, the RESET line is HI at pin 5 as should be but the output at pin 6 is only changing very infrequently - doesn't seem right.
On with the logic comparator and it says the chip is not right but not at pins 4,5,6 but at pin 3. Looking quickly around the schematic, I can't find what else uses C5 but if pin 3 isn't right i'm happy to change it.
Out it comes cleanly, test it on the hand held IC tester and it agrees the chip isn't right. Replaced with a new LS00 and the game now powers up and plays properly.
I did a video about it all but I go into more detail about the wiring cock up I made so take this as the short version but if you like the more pictoral version then watch the video below:
[tube]6iGSOQkUY_0[/tube]