Repairing Sinclair ZX81 16K RAM Expansion Packs
Posted: Mon Mar 23, 2015 1:43 pm
Hi all,
Someone asked for this in another thread. I think it should have its own.
I've had 5 or 6 of the little 16K ZX81 (or Timex 1016) RAM packs in my possession at one time or another, mainly because I didn't know how to repair them. Across the years would simply buy another as one of them failed. This frustrated me, as I would much rather expand my electronic skills to the digital realm and repair what's broken.
My tenacity (a nice word for stubbornness) and the great advice of the kind folks on SinclairZXWorld eventually won out, and I have successfully repaired 4 or 5 different packs now. I humbly offer the following consolidation of some of the advice I've received, as the starting point for the "guide" I always wished I'd had:
Step 0
Step 0 is re-seat the pack. It's "Step 0" not only because computer geeks love to start at zero when we count, but also because it's safe to assume you've already done it! Sinclair folk all know about the spookiness of their machines,...
More advanced things to try in this vein could be running a little sand paper against the fingers of the pack, or tinning the pads of the motherboard edge connector with a thin layer of solder, or both.
Step 1
Okay, the problem is real. Time to open it up. Check the stiff ribbon connector for connectivity between the two circuit boards. As you work through the other suggestions, you may have to come back to this step at some point, because bending the ribbon to work on the board stresses the connected ends. (I've got 3 packs where I've had to replace the ribbon wholesale with wires, a rather laborious detour.)
Step 2
A non-booting pack's problems can be divided into 3 categories:
In case you missed it, that was the "good news". The "bad news" is that IF you have the first problem, chances are good you also have the second problem as well. The 4116 is very easy to kill with bad voltages.
So the first thing to do is check the supply voltages to the 4116's. With respect to the ground pin 16, they should be:
Pin 1, -5V
Pin 8, +12V
Pin 9, +5V
All good? Congratulations. Skip to Step 4.
Step 3
Oh bad luck. It's pins 1 and 8, right? (+5 on pin 9 is the supply voltage from the 7805 on the mother--if you've got problems there go back to Step 0!)
Test and/or replace components of the supply voltages section with the following suggested order:
1) The transistor. Don't worry about an exact replacement for the hard-to-find ZTX750. You need a PNP power transistor. In a pinch you can use just about any PNP transistor experimentally--just don't expect it to last. (A good friend of mine suggested I socket the 3 holes so I could swap it out at will. Thanks Ed in S.Dak.)
2) The electrolytic capacitors. We all know about these caps over time.
3) The larger blocking diodes. The fancy bulbous BA221 may look esoteric but it can be replaced with a common diode like another IN4002 or whatever you have in your junk tray.
4) The zener diodes.
5) The 4148 diodes.
If all of that fails you may have a short somewhere. Check your work. All good? Maybe the short is in one of the 4116's. Fall thru to Step 4, and test voltages again after removing every RAM chip.
Step 4
Chances are wonderful you have one or more bad 4116's. Replacements are drying up but are still available. A great many computers of the day used these chips, so if you have a scrapped TI-99/4A or Apple II lying about, you can harvest a ready supply. Shame about the dead Apple, but hey, we're Sinclair right?
Okay this is the tedious part. Unsolder the 8 chips one at a time and pry them out as gently as possible. It may well be that 7 of them are still good.
IF--and only if--your voltages are good, you can process chips one at a time as follows:
Either way, check your work for broken traces or shorts. It is easy to create either one while un-soldering the stubborn chips and prying them out.
Your pack should be working by the time you've replaced all 8 chips.
Other notes:
I have had a ULA fail in the following manner: It works fine on a 2K Timex motherboard, but fails to boot when asked to work with any working 16K pack. (I can't tell you how long it took me to figure THAT one out,...)
I have had cobbled-together mixtures of different "sets" of 4116's work fine, usually in fact, but also experienced scenarios where a particular combination of 8 "good" chips refuse to work with each other. Go figure.
Be sure to use sockets--they're cheap. Once repaired with even a single socketed chip, that RAM pack becomes a "4116 Chip Tester". Handy to have.
Finally, if the problem you have is intermittent, i.e. your RAM pack boots but you subsequently experience pesky errors that seem to be bad memory, try the following little program (attached):
10 FAST
20 LET F=40
30 LET LO=0
40 LET HI=255
50 FOR I=1 TO 20
60 FOR J=(PEEK 16412+256*PEEK 16413+F) TO (PEEK 16388+256*PEEK 16389-F)
70 POKE J,LO
80 LET TLO=PEEK J
90 POKE J,HI
100 LET THI=PEEK J
110 IF TLO=LO AND THI=HI THEN GOTO 130
120 PRINT J;TAB 10;LO;TAB 15;TLO;TAB 20;HI;TAB 25;THI
130 NEXT J
140 PRINT "PASS ";I
150 NEXT I
This may produce results in pairs like 8 instead of 0, and/or 247 instead of 255. That combination would indicate that the D3 chip is the one losing its marbles.
Each 16K x 1 bit chip in the set of 8 is responsible for 1 bit of every byte in the system. The example error is 8 either way, and since 2**3=8, "Data 3" is the chip in error.
Now just use the following map to replace ONLY the chip causing the trouble!
Cheers,
TMA-1
Someone asked for this in another thread. I think it should have its own.
I've had 5 or 6 of the little 16K ZX81 (or Timex 1016) RAM packs in my possession at one time or another, mainly because I didn't know how to repair them. Across the years would simply buy another as one of them failed. This frustrated me, as I would much rather expand my electronic skills to the digital realm and repair what's broken.
My tenacity (a nice word for stubbornness) and the great advice of the kind folks on SinclairZXWorld eventually won out, and I have successfully repaired 4 or 5 different packs now. I humbly offer the following consolidation of some of the advice I've received, as the starting point for the "guide" I always wished I'd had:
Step 0
Step 0 is re-seat the pack. It's "Step 0" not only because computer geeks love to start at zero when we count, but also because it's safe to assume you've already done it! Sinclair folk all know about the spookiness of their machines,...
More advanced things to try in this vein could be running a little sand paper against the fingers of the pack, or tinning the pads of the motherboard edge connector with a thin layer of solder, or both.
Step 1
Okay, the problem is real. Time to open it up. Check the stiff ribbon connector for connectivity between the two circuit boards. As you work through the other suggestions, you may have to come back to this step at some point, because bending the ribbon to work on the board stresses the connected ends. (I've got 3 packs where I've had to replace the ribbon wholesale with wires, a rather laborious detour.)
Step 2
A non-booting pack's problems can be divided into 3 categories:
- - a failure in the voltage section
- a failure of one or more of the 4116 (or equivalent) RAM chips
- a failure in the logic section
In case you missed it, that was the "good news". The "bad news" is that IF you have the first problem, chances are good you also have the second problem as well. The 4116 is very easy to kill with bad voltages.
So the first thing to do is check the supply voltages to the 4116's. With respect to the ground pin 16, they should be:
Pin 1, -5V
Pin 8, +12V
Pin 9, +5V
All good? Congratulations. Skip to Step 4.
Step 3
Oh bad luck. It's pins 1 and 8, right? (+5 on pin 9 is the supply voltage from the 7805 on the mother--if you've got problems there go back to Step 0!)
Test and/or replace components of the supply voltages section with the following suggested order:
1) The transistor. Don't worry about an exact replacement for the hard-to-find ZTX750. You need a PNP power transistor. In a pinch you can use just about any PNP transistor experimentally--just don't expect it to last. (A good friend of mine suggested I socket the 3 holes so I could swap it out at will. Thanks Ed in S.Dak.)
2) The electrolytic capacitors. We all know about these caps over time.
3) The larger blocking diodes. The fancy bulbous BA221 may look esoteric but it can be replaced with a common diode like another IN4002 or whatever you have in your junk tray.
4) The zener diodes.
5) The 4148 diodes.
If all of that fails you may have a short somewhere. Check your work. All good? Maybe the short is in one of the 4116's. Fall thru to Step 4, and test voltages again after removing every RAM chip.
Step 4
Chances are wonderful you have one or more bad 4116's. Replacements are drying up but are still available. A great many computers of the day used these chips, so if you have a scrapped TI-99/4A or Apple II lying about, you can harvest a ready supply. Shame about the dead Apple, but hey, we're Sinclair right?
Okay this is the tedious part. Unsolder the 8 chips one at a time and pry them out as gently as possible. It may well be that 7 of them are still good.
IF--and only if--your voltages are good, you can process chips one at a time as follows:
- - extract a chip
- install a socket
- place a known good 4116 in the socket
- test the pack function again
Either way, check your work for broken traces or shorts. It is easy to create either one while un-soldering the stubborn chips and prying them out.
Your pack should be working by the time you've replaced all 8 chips.
Other notes:
I have had a ULA fail in the following manner: It works fine on a 2K Timex motherboard, but fails to boot when asked to work with any working 16K pack. (I can't tell you how long it took me to figure THAT one out,...)
I have had cobbled-together mixtures of different "sets" of 4116's work fine, usually in fact, but also experienced scenarios where a particular combination of 8 "good" chips refuse to work with each other. Go figure.
Be sure to use sockets--they're cheap. Once repaired with even a single socketed chip, that RAM pack becomes a "4116 Chip Tester". Handy to have.
Finally, if the problem you have is intermittent, i.e. your RAM pack boots but you subsequently experience pesky errors that seem to be bad memory, try the following little program (attached):
10 FAST
20 LET F=40
30 LET LO=0
40 LET HI=255
50 FOR I=1 TO 20
60 FOR J=(PEEK 16412+256*PEEK 16413+F) TO (PEEK 16388+256*PEEK 16389-F)
70 POKE J,LO
80 LET TLO=PEEK J
90 POKE J,HI
100 LET THI=PEEK J
110 IF TLO=LO AND THI=HI THEN GOTO 130
120 PRINT J;TAB 10;LO;TAB 15;TLO;TAB 20;HI;TAB 25;THI
130 NEXT J
140 PRINT "PASS ";I
150 NEXT I
This may produce results in pairs like 8 instead of 0, and/or 247 instead of 255. That combination would indicate that the D3 chip is the one losing its marbles.
Each 16K x 1 bit chip in the set of 8 is responsible for 1 bit of every byte in the system. The example error is 8 either way, and since 2**3=8, "Data 3" is the chip in error.
Now just use the following map to replace ONLY the chip causing the trouble!
Cheers,
TMA-1