Tuesday, 16 July 2019

Atari 400 Repair

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.

If you want to support this blog, you can donate via Patreon or Paypal, or buy something from my store.

Sunday, 7 July 2019

BBC Micro B+ 64K and 128K

Continuing the look at the BBC Micro series of machines, next we have the often overlooked BBC B+. This was a stepping stone between the model B and the Master, looks very much like the B, but with many of the features of the Master.
Outside the only obvious difference are the stickers. I've seen B+'s with different style labels, and my 64K doesn't have any markings, but my 128K has three of them.
Inside, the same power supply (see the BBC Model B repair post for important information on those), the same keyboard, but the main PCB layout has been rearranged.
The case has all the same connectors as the original, in all the same positions, even including the hole for the reset switch, although without a footprint for it. The Econet components are again optional.
With the keyboard and power supply removed, you can see the full BBC B+ board. This is the B+ 64K version.
The ROMs are now in the top left so you can access them without the need to remove the keyboard. There are now six ROM sockets (the two below are for the speech processor which was still hanging around from the B). The OS has been upgraded to 2.0, and combined with the BASIC ROM, so there are five available expansion ROM sockets for 32K ROMs, rather than the three spare 16K sockets on the model B. The original design of a 16 slot paged ROM proved a very good one, and was common to all the machines from the model A to the Master, more on that in a future blog post.
The CPU had been upgraded to the 6512, essentially the same as the 6502 but with some changes to the clock circuitry. Still running at 2MHz. Both 6522s are installed by default, there wasn't a BBC model A+ (the VLSI part looks like a later replacement).
The disk controller has been upgraded to allow a WD1770 to be fitted, which was a common upgrade for the earlier machines, although I think the B+ places it at a different address. It looks like there is an alternate footprint below for the original 8271 style disk controller, although I've never seen one fitted.
The big change was the RAM. The B+ 64K had 32K as the original model B, but with an additional 32K. 20K of that was used as shadow screen RAM, which would allow specially written software to make use of up to 20K of main RAM that would normally be needed for the screen. The last 12K was available as sideways RAM.
There was also a 128K version that had a further 64K as four 16K sideways RAM banks. The board has a pinout at the side for the extra 64K module, however for some reason, this is not sufficient, and the actual 128K module has ten extra wires that connect all over the board.
I can understand the commercial reasons why they wouldn't just fit empty sockets for two 41464 RAM chips, people would just buy the cheaper version and upgrade themselves (as happened with the 16K model As).
Those extra wires make the 128K implementation look rather messy, with several soldered directly to IC pins, the whole thing looks a bit like an afterthought. More like an aftermarket upgrade such as the Solidisk 32K sideways RAM upgrade for the BBC B which required similar wires all over the place.
These days with the availability of fast and cheap 32K RAM chips, you can convert a B+ 64K to 128K in a much neater way by using a stack of 62256 chips in a spare ROM socket, with only a couple of wires coming off them. A lot neater than the official Acorn version.
Of course, I'm here to test this with the new SD2BBC from The Future Was 8 bit. This is a user port based SD card drive for the whole BBC ragne™ of machines.
The Smart SPI ROM is installed in a spare socket. The one between the standard DFS and the OS ROM is higher priority than DFS, so will startup with Smart SPI selected. The drive is plugged into the userport, and all works as expected.
The photos on these blog posts have so far shown the prototype units, the production ones come in a beige case, with an owl (but not a pen).
These are available to order now and will be shipping next week.

If you want to support this blog, you can donate via Patreon or Paypal, or buy something from my store.