Sunday, 8 December 2024

VIC20 / VIC-1001 Repair

I had a request for help with a broken VIC20 from a friend in America. Seemed like a normal faulty VIC20 until he sent me a photo of the board.

Well now, that's not your average VIC20. That's a very early one with the same board* as the VIC-1001, the original Japanese version.

* well, almost the same, see next week's post for more information on the differences

Compare that to the usual 2 pin VIC20 board and you will see it is very different.

I like the VIC-1001 layout better, it seems a lot cleaner. I Presume the board was reworked by Commodore USA for FCC compliance reasons, see all the filtering added to the power input on the right, and the tin can for the VIC and the clock circuitry.

All the interesting stuff seems to be on the left hand side of the board.

The layout of the CPU, ROMs and IO chips in a row is reminiscent of the C64.

The right hand side is just the cartridge and side connectors, and the massive heatsinks for the 5V regulator and bridge rectifier. (the board uses about 1.5A in normal operation so it does get a bit warm).

The back of the board on the left is just as sparse, lovely track work though.

It is almost as if it was originally only going to be half as wide, maybe with the cartridge slot rotated 90 degrees and joystick port on the side. Not quite small enough for this mockup photo with a PET chicklet keyboard, but not far off.

This one was inside a normal breadbin case. An early one with a silver VIC20 label and a keyboard with PET style keycaps.

VIC20s of this era had a dangerously misleading sticker on the bottom.

Seems to imply it takes 117V AC directly in the side, not 9V AC via the AC transformer. Made worse by the 2 pin power connector being similar to that used for electric shavers at the time.

I hope no VIC20s got fried due to that.

The US 2 pin connector is different to that used on UK 2 pin VIC20s (even though both are 9VAC). I don't have one of those, so crocodile clips to the rescue.

Time to power it up.

What's wrong with it?

Well, it is showing a screen full of garbage characters and colours.

OK, not a bad start. The VIC chip is probably working, as is the 6502 and some of the RAM and ROM.

It is not like a PET where you will still get a screen of garbage if you remove all the system ROM and RAM and even the CPU.

Here it has got as far as initialising the VIC chip, but not as far as clearing the screen or putting up a READY prompt. Could be a bad BASIC ROM?

I am told the VIC has already been replaced, and probably several of the other chips as they are all showing 1982 date code, whereas the rest of the board (and the KERNAL ROM) are showing 1981. Matching the nice "Produced 7/81 sticker" on the heatsink.

The KERNAL ROM and several of the other 1981 chips have an unusual sticker on them.

I am told "保" means "Save" or "Protect". Not sure what that means in this context. The KERNAL ROM chip contents is binary identical to the normal NTSC VIC 20 KERNAL ROM.

I did try them out of a good VIC20 board, and they were all fine.

Time to get the Penultimate Cartridge out and fire up Dead Test.

If you hold down the reset button (on the right of the cartridge) at power on, it will jump straight into Dead Test. The design of the VIC20 means that the KERNAL ROM and the RAM at $0100-$01FF need to be at least partially working. If it does not start, check those.

It did start, so that's a good sign, and the ROMs all pass.

However, it seems to consistently show RAM faults in RAM 5, 6 and 7. It seems unlikely that all of that RAM would be bad, something like that would normally be an issue with address decoding / chip select lines, with those chips not being enabled when they should be, or something else being enabled at the same time and causing bus conflicts. The 74LS133 and particularly the 74LS138s are good at failing and causing that.

The bad section covers $1400 - $1FFF, six out of the ten 2114 RAM chips (eleven if you count the colour RAM).

That is the top six here. They do look a little crusty. Not sure what's happened there.

Oooh, nasty. Never seen a head gasket failure on a RAM chip before. These are Mitsubishi chips. I could understand if they were made by Rover ......

It is just as nasty on the scope.

It is never good to see signals that are not high or low, but somewhere in between.

This board follows a grid layout, like the PET and many others of the era.

Letters go across the board, numbers up the side. You can see some of them circled above. The RAM chips are UA2, UA3, up to UA6 and UB2 to UB6. The colour RAM is on it's own over at UD3, and there is a clear gap at UC5. I wonder if there was originally another 245 buffer in that location?

When they moved to later boards, they kept those designations, even though they didn't use the grid any more. And when they added new chips, they numbered them.

The RAM on the VIC20-CR still has UD2 and UE2 and UE1, but the new 6116 2Kx8 RAM chips are U14 and U15 (as I am reading this back, I realise these designators refer to the grid on the normal 2 pin VIC20, but you get the idea anyway)

I have traced back those signals to the 74LS138 at UC1 and the 74LS245 at UD3.

UC1 is used to generate eight chip select lines for eight 1K blocks in bank 0. $0000-$03FF, $0400-$07FF etc. up to $1C00-$1FFF.

Five of these feed pairs of 1K x 4bit SRAM chips, giving the 5K of internal RAM. Three of them go to the cartridge connector where the 3K expansion can be fitted to fill the gap at $0400-$0FFF.

Several of those chip select lines were showing this intermediate logic state, so bad 138?

Well yes, possibly, but also the inputs were doing similarly odd things.

I replaced the 245 at UD3 and that fixed the signals going into the 74LS138, but there were still issues with the chip select lines coming out of the 74LS138.

I replaced that, and it fixed the signal coming out of the chip.

Great, sorted?

Well, no, there were still RAM faults. The same RAM faults.

Six bad RAM chips.

Six bad RAM chips? Surely not.

I decided I needed to be sure, so I moved the 74LS138 to a breadboard.

Most of the pins were wired straight through, but I moved the five chips select inputs and the five chip select outputs to the left hand side.

From there I could swap them around.

I found wherever I put the bad RAM, it failed, and wherever I put the good RAM it passed.

Here you cannot see the results as the bad RAM is at $1000, and that is used for the screen. You can however see the red and green marks in the colour RAM that confirm the good RAM is working in positions 6 and 7.

Six bad RAM chips.

I was a little reluctant to desolder and replace the six bad 2114 RAM chips.

The board seems quite fragile. I unfortunately damaged one trace removing the 74LS138. I am very sorry about that, and disappointed in myself. I managed to reattach the trace under the IC socket, so no harm done, but I wish I had not done that.

Traces on the top of the board are always tricky and almost all the RAM signals are on the top side of the board.

I cannot use a ROM/RAM board here because that only provides replacement ROM and RAM to the CPU, and the base 5K RAM needs to be visible to the VIC and the CPU (and also it would probably not fit in the case)

I did work out an alternative RAM replacement board that would plug into the character ROM socket with a single 62256 RAM chip to replace all 10x 2114 RAM chips in the base RAM. It would need a wire to connect it to another board in the 138 socket, and another to pick up R/W somewhere. The existing RAM chips seem to behave when disabled, so the modern RAM chip would do everything but the colour RAM (which seems to be fine).

Whilst I was pondering that, Bill sent me something else to be repaired, and also six 2114 RAM chips.

RAM Replacement

OK, here we go.

It took me about two hours to remove that. I really struggled to get all the pins free at the same time, and in the end, I decided to do something I do not like to do, but it seemed the best option in this case.

I had proved as far as I could that the RAM chip was bad, and I really did not want to damage the board.

So I cut off the legs of the chip.

It felt really bad.

But, it finally allowed me to get all the legs out cleanly.

One socket fitted. One new RAM chip. Fingers crossed.

Well, would you look at that. It was a bad RAM chip. It is 1K by 4 bits, so it only fixed those 4 bits. The other four are in the chip next to it.

Oh well. Those of a nervous disposition, look away now.

In for a penny, in for a pound.

Don't look, it's awful.

Cutting the legs off is really only a last resort. I would have liked the save the originals, even if it is just to retest them to prove they are bad. The chances of damaging the board were high, and the likelihood the chips were bad was equally high, so this seemed the safest option. In this case preserving the board was far more valuable than the saving the ICs.

All the bad RAM removed with no track damage, which was quite a relief. Working with single legs at a time holding them with tweezers and heating with an iron the legs were easy enough to remove. But it took many passes with lots of flux and desolder braid and resorting to the desoldering gun and even resoldering some of the pads to try to make the solder flow. Not a pleasant job, but easier than trying to remove the ICs whole.

Five more sockets fitted.

And then six of Bills 2114 chips. Not all matching, but all tested and working.

They are in sockets, so they could swapped if better matched ones are found in future.

That is assuming it works.....

Phew, was I glad to see that.

Testing

I left that running for a while, no problems were found.

I also used the Penultimate Cartridge self test for the soak testing. Again, all was working fine.

I went through quite a few games and everything seems to be fixed now.

The ROM chips are running a bit warm, as they tend to in VIC20s. Probably worth fitting some EPROM replacements and preserving the originals whilst they are still working.

The VIC itself is not that warm, so no need for a heatsink at this point, but it wouldn't hurt to fit one if you wanted.

Further Testing

I switched to using a Penultimate +3 to do the next round of testing.

That allowed me to test the IEC bus.

No problems loading from disk.

One of the oldest VIC20s playing one of the newest VIC20 games.

And just because I could, one of the oldest VIC20s next to one of the newest VIC20s.

All tested and ready to go back.


Important note on International Shipping

Shipping to the EU is once again going to be a problem, this time due to new GPSR regulations which appear to require considerable paperwork for every product I sell, in the language of any country I want to sell to, and with a named representative located in each of those countries. That is way beyound the means of my one man business. Like many others in my position, I am not going to be able to comply with the requirements and do not want to incur the fines for failing to do so.

It seems legislation designed to stop cheap and potentially dangerous imports from the far east is also going to kill off cottage industries and small makers selling on Tindie, ebay and Etsy etc. Hopefully they will sort this out and add a waiver based on product value or business size, and I will be able to ship again.

Oh, and it looks like America is likely to be adding import duties from some time next year, so get prepared for massive price increases and massive delays to orders as they put systems in place.

In the next few days, I will be setting I have set the store to UK only, I hope to open it back up to the US and the rest of the world early next year, and we will see what happens with the EU.

Advertisements

The Penultimate +3 with a built in SD2IEC drive is available from TFW8b.


Minstrel 2 and 3 kits and many of my PET repair and upgrade products are available from my Tindie store.

I will slowly be moving things over there from my SellMyRetro store, so if there is anything that you want, let me know and I'll add it.

More info can be found here:

Bluesky

For those interested in such things, I can now be found on Bluesky, and I expect to be posting more there.

Patreon

You can support me via Patreon, and get access to advance previews of posts like this and behind the scenes updates. If you want to see part two of this post, that is up on Patreon already. Also includes access to my Patreon only Discord server for even more regular updates.

Sunday, 1 December 2024

Minstrel 3 Repair

As far as I am aware, the majority of the Minstrel kits that are built work first time, or are quickly fixed due to the wrong jumper settings, a missed solder joint or solder bridge, or misplaced component etc.

When there are problems, I try to troubleshoot via email, and usually get things working.

Every now and then, despite the best efforts of the builder, one doesn't work.

This is the case here, a Minstrel 3 was built (quite a while ago I think), and unfortunately didn't work.

They have now sent the Minstrel to me, along with something else for repair.

At first glace, all looks well.

I think this was sold as a Minstrel PCB only, the builder sourced their own parts. (Minstrel PCB only options now available on Tindie - https://www.tindie.com/products/tynemouth/minstrel-2-or-3-pcbs/)

It is good to see a nice set of Texas Instruments logic chips. Whenever I see a photo of a board with a random assortment of vintage logic chips, my heart sinks as I have seen too many times where one or more of those is broken or a fake, remarked etc, or is just old and tired and not running to spec any more.

For example this Minstrel 2 that came in for repair a while ago.

On that board, the 74LS08, 74LS10 and 74LS86 were all bad - http://blog.tynemouthsoftware.co.uk/2017/08/minstrel-zx80-clone-troubleshooting.html

I did note that on today's board, the three big chips, the Z80, RAM and ROM, were all vintage, so my suspicions will fall on those first.

A Z80 from 1983, a Sony CXK58257P RAM chip (from 2008?), an apparently pin compatible with the 62256 required, and finally an unknown EPROM, probably a 27C64, probably of similar vintage.

Before I do anything, I will fire it up and see what it does.

What lovely wallpaper.

Seems an appropriate point to mention if you ever see a screen like this:

This can be caused by the wrong ROM settings. This is what happens if you have the ZXpand ROM without the ZXpand connected. The ZXpand ROM has it's extra code in place of the character bitmaps, hence the display corruption.

You need to move the A15 jumper to the right (or the A13 on some older versions).

I did try a different ROM chip with the correct jumpers, but it made no difference, it is probably just a ZX81 ROM image on the EPROM.

I also looked at the Z80. I have seen quite a few vintage Z80s with bad M1 lines, almost entirely on Spectrums - http://blog.tynemouthsoftware.co.uk/2024/09/divmmc-troubleshooting.html

I have never seen one in a Minstrel, but unlike the ZX Spectrum, the ZX80/81 does need the M1 line to function properly.

The ZX80 based designs need the M1 line to know when to enable the NOP generator, so if you have a Z80 with a bad M1 line, you will get a white screen or just nothing. If you are using a vintage Z80, one good place to check is the Z80 M1 pin.

If it is just a flat line wiggling around ground, you need to get another Z80.

It should look like this, with a low pulse whenever the Z80 is reading an instruction.

This Z80's M1 line was fine.

I did try replacing all three big chips with known working versions, but it also made no difference.

I checked the usual culprits as well, power, clock, reset. All doing what they should be. Nice clean 3.25MHz clock, one of the benefits of 74HC series logic is you always get nice strong, clean traces like this.

I looked around address and data lines, and all seemed to be wiggling appropriately, no bus conflicts as far as I can see.

Hmm .... Scratches head.....

The design is such that pretty much everything needs to work to get a display, since that is mostly what it does.

I had an all socketed Minstrel 3 board on the bench, so I thought it would be a quick way to divide and conquer the problem if I took out all the chips and tried them in the known good board. I would then move onto trying a known good set of chips in the bad board and seeing where the problem was.

I removed all the chip and trued them on the known good board with, and it all worked fine, so the problem was on the board.

The builder was very critical of their soldering and suspected that. Before I put in a set of known working chips, I had a good look over the board and it all looked perfectly fine to me, I couldn't see any issues. They have done quite a neat job.

I probed around for a bit looking for shorts or other issues and then something caught my eye.

Hello, what's going on there.

Did you spot it?

Oooh nasty.

I thought I would dig out the USB microscope and get some closer shots for the blog post.

Definitely damage to the solder mask, the copper is showing through.

The tracks damage on the right doesn't seem to have actually broken any traces.

However on the left, it does look like a break in the middle of those five traces. The one highlighted in blue below.

I had to search around for the V3.5.2 PCB layout, that was quite a while ago.

That trace carries A14 from the diodes on the right to the 74HC251 on the left.

Or rather, it should. In this case there is no continuity there. The others test out fine, just that one trace.

Not the neatest bodge wire. I'll tidy that up later, just wanted to test it out.

And there we are,  K  prompt, ready to go.

I attached the owners keyboard to test it further (they didn't send the overlay PCBs).

They have the parts to build a Minstrel ZXpand, but have not built that yet, so I tested with one of mine to make sure everything was working.

All looks good. Rex says Hallo.

One final thing I had to do was swap out the 74HC04. For some reason (probably share holders and accountants), Texas Instruments make some ICs with a fraction of a gram less plastic, and they just don't look right. I have generally managed to avoid those, but I do have several tubes of 74HC02 and 74HC165s that I won't use in kits because they just look wrong).

Ah, that's better.

I also swapped out two of the 74HC257s for 74LS257s, as per the latest Minstrel 3 design, to improve loading from tape.

And that's all done, ready to go back.


Advertisements

Minstrel 2 and 3 kits are available from my Tindie store, with worldwide shipping and 5% off for the next month. Order soon to beat the usual postal slow downs in December, and avoid impacts of the GPSR regulations that come into force on the 13th December, and whatever happens in the USA when the new administration takes over.

Versions are available for ZX81 case:

Or standalone with keyboard:

And also Minstrel 3 with ZXpand microSD card interface:

I have listed the Minstrel 2 and Minstrel 3 PCBs with and without keyboards or overlays on Tindie. Just in case you want to source your own parts and don't like the ease and simplicity of having them all supplied in neat little bags and a foam pad with all the ICs in order.

I am in the process of moving things over there from my SellMyRetro store, so if there is anything that you want, let me know and I'll add it.

I have recently added lots of PET repair and upgrade parts, more to follow.

Bluesky

For those interested in such things, I can now be found on Bluesky. Almost at 500 followers, a fraction of what I had on Twitter, but a whole load more interaction and a nicer environment.

Patreon

You can support me via Patreon, and get access to advance previews of posts like this and behind the scenes updates. These are often in more detail than I can fit in here, and some of these posts contain bits from several Patreon posts. This also includes access to my Patreon only Discord server for even more regular updates.