Tuesday, 16 July 2019

Atari 400 Repair

This is an old post, preserved for reference.
The products and services mentioned within are no longer available.

Every now and then, I get a message along the line of 'I've just installed your upgrade in my broken computer and it is still broken' (also sometimes phrased as 'I just installed your upgrade in my untested machine and now it is broken'). I offer to help where I can. In this case, it was one of my Atari 400 48K RAM upgrades. The owner sent in the main board and CPU board from his 400, along with the 48K RAM upgrade board he had built from the kit.
Note that if you are shipping PCBs, polystyrene really not a good choice of packaging material, not only do the little bits get all over the place, it's also quite good at generating static when it moves around, which isn't good for vintage ICs.
The Atari 400 48K RAM has been assembled nicely, no obvious problems. The wire links were also installed correctly on the back.
To start off with, I tried it in my test system, and it ran fine, so there wasn't a problem with the RAM board. I then tried his CPU board in my test system, and it wouldn't boot.
It wasn't clear why it wasn't booting. The owner had said that this was a pre-existing problem, it wouldn't boot, but if you pressed the system reset button on the keyboard, it would usually startup.
The reset circuitry was on the mainboard, so I was expecting that to be the issue. I know the reset signal was OK on my test board, and the system reset button wasn't making a difference.
It's not the easiest thing to probe around these chips due to the way the 400 is laid out. After a process of elimination, it turned out to be the CPU that was causing the problem.
With the replacement CPU in place, it was booting properly, so I moved onto to testing with his mainboard. That went back to the white square and no activity, even with the new CPU, and also with my test CPU board. So there was a problem on the mainboard as well.
Pressing the system reset button did indeed get it to boot. I checked out the reset circuitry and there was a pulse, a short one, but a valid one. I tried extending that by stopping the capacitor in the RC circuit from charging for a few seconds, but it didn't make any difference. It seemed from what I could see that it was booting, getting so far through the initialisation code then locking up.
The system reset key isn't wired to the reset line, it is wired to the CTIA chip on the CPU board as a input, along with the other three function keys and the four trigger inputs from the joystick ports. That was presumably then going to an interrupt routine and then back into the main loop and bypassing the bit that wasn't working. I tried swapping out the ROM chips one by one, but it was still failing. Eventually it turned out to be the POKEY chip, some initialisation of that was failing and not progressing any further.
With a replacement POKEY, it booted up again, so this was now working on the owners board, with their CPU board and their 48K RAM board. BASIC was correctly identifying the 40K that was available, and showing 37902 bytes free after BASIC has taken it's share (it's not 48K as the 8K BASIC ROM blocks out the top 8K of this RAM).
I normally test with a large game such as Pole Position, as that needs the full 48K of RAM, it won't load if there is a cartridge in place. It has in the past been useful as if there is any instability with the RAM or timing issues, it can crash.
No, not like that, I mean the game can crash.
This one is working fine. I went back and rechecked, and both the CPU and the POKEY, and with either of them installed, it wasn't booting properly. I also tried removing the wire links and going back to an original 16K board, and was seeing similar problems.
With the wire links reinstalled, and both of those chips replaced, it's been running without a problem after several hours soak testing.
Footnote: The screen caps in this post are a bit fuzzy as I was using a composite video capture from the owners mainboard, which still had the audio subcarrier oscillator installed, so that was overlaid on the video signal tapped from the power board - see previous post on Atari 400 Composite Video mods for how to do it better.

2022 Update: This sort of thing happened a lot with the Atari 48K RAM board. In every case as far as I can see, it was the Atari that was faulty in one way or another, not the RAM board. After I refunded several rather rude customers I discontinued the product to avoid further issues. Sorry to all the nice people in the Atari community who missed out. Blame the less polite members of your community and their pre-broken machines.