We’ve recently acquired a pair of non-functioning Commodore VIC-20 and are looking at fixing them. We got the power stage checked and are now looking at some signals.
To get a CPU running – a 6502 in this case – you need a few things.
- power (VCC near 5VDC)
- Reset circuitry (reset at first, then not reset)
- Clock (1Mhz)
We already tested the VCC to look good, at least without the chips. It will have to be re-tested every time we add or remove chips to make sure all is good. If we had another working VIC-20 we could test the chips on the known working unit – but this is not the case here. Something may have to be done about this.
Reset Circuit
While we have the chips removed, we can test the reset circuit. It is meant to be kept low when we power the unit, and go high only after the system has stabilize, to enable the CPU to begin its work. On the 6502, Notice the line on top of RES – the pin is active low – reset when low, not reset when the pin is high. There is a NE555 (UB6) on the VIC-20 motherboard that holds the RESET low for about 4 seconds, and then brings it high.
It is possible to poke the voltage at this pin with a voltmeter or oscilloscope to see the behavior while we apply power to the board. This does not show well on picture, but it is low at first, then high after a short while – not officially timed, but 4 seconds sounds right. If the CPU was present, it would know to follow a reset sequence that should end up booting the machine.
We did test this on both PCBs. Both VIC20#1 and VIC20#2 behave accordingly, which is good news.
Clock
The clock circuitry is a bit more complex. It helps to look at the schematics. They are available on zimmers.net. the PCBs are both marked 324003 and reading online we are told the correct schematics would be the 324991-2 available in 3 GIF files on zimmers.net. The first part of the schematics is of interest as we follow the pin labelled Φ0 which is the clock input and is pin 37 of the 6502. Tracing this input signal, we see that it comes from the VIC – similarly to the Commodore 64 with the VIC-2 chip, the VIC chip handles the CPU clock. There is minor circuitry, but the signal will come from VIC’s pin 35 – PΦ1.
Still, the clock needs to enter the VIC for the VIC to feed a correct clock to the CPU, and this happens on pins Φ1 and Φ2 on pins 38-39. This clock should be visible without the VIC chip socketed, so let’s give it a look.
VIC20#2 was on the bench so we connected power and put the scope between the VIC shield (ground) and VIC socket pin 38, then 39, to see what is going on. We but clearly see there is a clock input of some sort. It is outside of the scope’s tracking capability but the oscillation is clearly visible.
The same test was performed on VIC20#1, but the results differed quite a bit. There is no signal (see below).
Looking at the schematics, we see there is an 7402 IC chip at UB9 that connects the crystal to the VIC chip. The combination of the 7402 chip and crystal makes the input clocks for the VIC, which in turn will divide this to generate a proper CPU clock.
Reading online, it appear this chip is often a problem on these old VIC-20s. If there is not a valid clock going into the VIC chip, there sure won’t be any sort of valid clock going out, to the CPU.
Another suspect is the crystal Y1 and the few other components, the variable potentiometer at C35 that could have gone off.
Let’s begin by looking at UB9 pins 2-3 and 5-6 where the crystal enters the 7402.
Testing on VIC20#2 to have a comparable, we clearly see activities on 7402 pins 5-6 and on pins 2-3, but the same test on VIC20#1 only shows a rather flat line on pins 5-6 very similar to what goes to its VIC 6560.
At this point, the suspects are the Crystal and/or circuitry bad, or a dead 7402 pulling the input signals low and causing this reading – some investigation is to be done on the clock circuit of VIC20#1.
If the 7402 is bad, it will need to be removed. If it is not, socketing it won’t hurt, but clearly will help trying to understand what is going on. We used the desoldering gun, and removed the chip. Same position tested without the 7402 in place.
It made absolutely no change. Perhaps the 7402 is not dead afterall. Testing in the chip programmer proved it is considered as good.
Trying to visually inspect the crystal, variable capacitor and surrounding circuitry, something very odd became apparent. The crystal is not held in place as tightly as it should, and certainly more loose than on the VIC20#2. Now these have 2 pins, plus are held in place by the ground connection soldered at the top.
Not being sure it was still working as expected and wanting to investigate, we started to look at removing it – and sure enough, it was broken – physically. One leg completely broken at the base. Perhaps that is why this motherboard has the mention “BAD VIC”??
Luckily the spare parts bin had a 14.318 Mhz crystal of similar size which was put in place. Apparently 14.31818 being 4x the color burst frequency of NTSC makes is rather common in parts bins. Who would have known?
It happens to also be the base clock crystal used on the Commodore 64 NTSC variants; likely for the same reasons.
With it in place, activity was present at the 7402 input pins; and putting the 7402 in place brings a signal to the 6560. Tweaking the variable cap may be required in the future to fine-tune the signal, but for now we can continue testing the clock signal.
Dead component score:
VIC20#1 : 1 broken crystal
VIC20#2 : 0
While searching online for information about the VIC-20 clock circuit this thread on 6502.org popped out. While we didn’t have to replace the 7402 on this one, we wondered if it could be swapped by an easier to find 74LS02. Apparently the timings are a little different, which is bad in a clock circuit, and a 74LS02 would not be a good candidate for replacing the UB9 7402 chip. Nor would have a 74HCT02. Suggestion is to find a 7402 or 74F02 replacement.
Good to know.
Let’s write it in the repair log as a reminder for future references. ✓
VIC’s Output clock
Now that both clocks going to their respective VIC chips are working, is time to put them VICs in their sockets and see if the VICs process the clock signal properly.
Adding the chip to its socket for some testing – starting with VIC20#2 and its VICchip#2 we can check the output signals, those sent to the CPU – PΦ1 and PΦ2 at pins 35-36
The clock signal is clearly visible and regular. Same test can be done directly at pin 37 of the CPU socket to ensure the signal out of the VIC chip reaches the CPU.
Sadly, testing the same thing on VIC20#1 with VICchip#1 leads to a rather flat line
In order to be certain about the state of VICchip#1, we swapped chips between VIC20#1 and VIC20#2 – the VICchip#2 leads a good clock to the CPU socket on VIC20#1; and VICchip#1 leads nothing on both motherboards.
Sadly, VICchip#1 is non-functional. This is sad because the VIC chip is the only chip of the VIC-20 that is not replaceable by modern components; this means it can only be replaced by a VIC chip from a donor board, or a NOS chip, until a modern chip is made.
Dead component score:
VIC20#1 : 1 dead chip + 1 broken crystal
VIC20#2 : 0
At this point, we have all that we need for a CPU to operate – Correct power; Reset signal and Clock. We can begin to plan looking at the CPU.
Stay tuned