<< BACK | NEXT >>

Acorn BBC Micro model B (another fixer upper...)

27th April 2014

My forth BBC Micro has arrived from eBay and, as with the previous model B, is a sold-as-seen/fixer upper opportunity one. I.e. It hasn't been tested or has been tested and doesn't work.

Let's turn it on

Well, you never know: it might just work out of the box! Let's see *burrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrr............................*.
Yeah. It does exactly the same thing as the previous fixer upper and gives a single, continuous tone (and no display) instead of the nice burb-bip sound that a healthy machine gives. <expletive deleted>™!

Basic Diagnostics

First thing's first: we need to run through the standard diagnostics - quite a few provided by The Concise BBC Microcomputer Service Manual (which I purchased from RetroClinic). The information in the book is very useful and I can recommend it to anyone delving into BBC Micro models A, B, B+, and any in the Master series.

This is an issue 7 board (the last and most common revision made for the model B).

Here's a list of diagnostics that I've tried so far:

This is the kind of diagnostics that anyone can try and doesn't require any extra tools apart from perhaps a multimeter
* Tried a known-good keyboard and connecting cable (BBC's won't boot without a functioning keyboard)
* Checked for gross physical damage to the mainboard (topside and underside)
* Reseated all DIL socketed ICs. At the same time "cleaned" the legs with sandpaper to get rid of any oxidisation (prevents a good contact with the ICs).
* Checked the +5V and -5V power rails using a multimeter. The mainboard has three pairs of power cabling connecting to it from the PSU (1 red wire, 1 black in each pair) and one purple coloured one (-5V). Unplugged these, connected the multimeter probes and turned on the power supply. Each set of red & black cables give roughly 5V. As my multimeter is a an old analogue dial sort from Maplins back in 1999 it won't give me a minus voltage reading. The way around this was to connect the '+' multimeter probe to a black 0V cable from one of the pairs and then connected the '-' multimeter probe to the purple -5V wire. This reports +5V which in effect is -5V as I "reversed the polarity" :).
* Moved the S25 jumper to the SOUTH position. This has the effect of swapping the two 16K RAM banks around so that if the bank which covers the first 16K is faulty (causing the machine not to power on properly) then the machine will boot fine, but probably give a corrupted display (the screen memory by default is in the second bank of addresses) or just register 16K RAM total. Either way, this had no affect.
* Replaced both 6522 VIAs (ICs 69 and 3) with known good ones. Still the same. IC69 isn't a major problem for starting up if faulty, but IC3 is needed to talk to the system timer and the keyboard and the system won't power up if it cannot do that.
* Replaced CRT Controller (IC2) with known good one. Still the same. If this is faulty we're not getting a meaningful display.
* Replaced Video ULA (IC6) with known good one. Still the same. As with IC2, if this is faulty we're not getting a meaningful display.
* Replaced 6502 processor (IC1) with known good one. Still the same.
* Tried a known-good OS ROM in IC51 socket. Still the same. The OS ROM contains the instructions for the computer and if not present then the 6502 processor has no idea what to do.
* Tried a known-good BASIC ROM in the paged-rom sockets. Still the same. This one is unlikely to cause the issue I have as you'd normally get "Language?" when you boot up if this IC was faulty or missing. But if it's say shorting the bus lines or the power rail then it might well stop the machine from booting.
* Compared the positions of all the jumpers on the board to a known good board. All looked fine.
* Removed ICs 4 (ACIA), 7 (serial processor) and 73 (ADC) as these are not essential to the machine. makes no difference.

More advanced diagnostics

This will require the use of an oscilloscope. Lucky that I have one!
I'll admit now that I don't know how to fully use an oscilloscope yet. However, I'm familiar with most of the basics - which at this stage is all that's needed. The scope being used is an OWON PDS5022S (25MHz 100MS/s)

* 6502 CPU (IC1): On pins 3 & 39 (CLK out 1 & 2) the 2MHz clock signal looks fine (usual sharks fin looking signal that you normally see):

A500bad_chips
* 6502 CPU (IC1): Pin 40 (/RESET) is HIGH unless BREAK is pressed. Totally fine.
* 6502 CPU (IC1): Pin 4 (/IRQ) and pin 6 (/NMI) remain HIGH. Looks fine.
* 6502 CPU (IC1): Pin 2 (RDY) changes over time indicating the CPU is not locked. Totally fine.
* 6502 CPU (IC1): Address and data lines show clear (and normal wave form) activity.
* 6502 CPU (IC1): Pin 40 (/RESET) is HIGH unless BREAK is pressed. Totally fine.
* 6502 CPU (IC1): Pin 34 (R/W) changes over time and the wave form looks fine.
* Checked pins 39 and 40 on the CRT Controller. According to the Service Manual these should be giving the horizontal and vertical sync signals for the video. If they're stuck at a particular level then this indicates a fault or IC2 hasn't been programmed correctly. Pin 39 came up ok, but pin 40 was constantly high. I tried another known-good IC2 which also gave this. I then realised my mistake: I'd forgotten to put the OS ROM back in (I'd removed it for another test just before)! As soon as I did that both pins gave the correct signal output.

At this point in time the machine started to boot successfully once every so often and finally reliably all the time.
Being a suspicious kind of guy, left the machine off for about 10 minutes and tried again. Sure enough, it did boot, but with the second part of the burb-bip prolonged over about 2-3 seconds. Any subsequent attempts at booting were fine immediately after that.

I now unplugged the machine, rapidly flicked the power switch between on & off a few times, left it 30 mins the plugged it in.
Sure enough; I got the original problem until I tried a number of successive boots and then become ok.

I'm now trying another PSU as I have a feeling it's that causing the issue...
...That didn't help.

I was given a tip by duikkie on the stardot forums advising to change IC14. I've done this and voilĂ ! The machine boots fine every single time. If I put the old IC14 back in it exhibits the boot problem.

So... Let's look at what IC14 is and what it does.
The device itself is a Texas Instruments SN74LS245N which corresponds to a 3 state octal bus transceiver. So this probably sits on one of the buses...

...Yep, IC14 allows data to flow between the data bus and the RAM banks and also IC6 (Video ULA) and also prevents the CPU accessing the RAM when Video ULA is. This explains the lack of any display (rather than just artefacts on screen). As you can see from this picture:

A500bad_chips

I've just got to order another one of these from eBay, Mouser or Farnell and I've got another Beeb working again!

<< BACK | NEXT >>



Site Map | CSS Hover Menus by Css3Menu.com