Sunday, 13 September 2026

ZX81 Repairs and Upgrades - Board 2

In the previous post, I was trying to get one good ZX81 out of one tatty ZX81 case and three broken boards.

I repaired some damage to the first board, fitted new sockets and a new regulator and composite mod, that is now working well as a test board.

Using that, I was able to test out the remaining chips and get a set of working chips to test the other two boards.

Even with known working chips, I couldn't get anything out of either of them. It was the same issue, missing or intermittent contact on some of the pins. I could get continuity between the pins on the back of the board, the traces were fine, but between some of the IC pins it was failing.

I expect that up until I bought these about 10 years ago, they had spent most of the preceding 30 years in someone's damp garage or shed.

Board #2

This board had socketed ULA, ROM and Z80, and a soldered RAM chip.

  • Feranti ULA 2C210E 8240 (the later ULA with back porch on the video)
  • Sinclair Research ROM 8228
  • NEC D780 Z80 clone 8213
  • Mostek MK4118 8212 (not to be confused with MOS, or 4116)
  • UM1233 Modulator 8215

Those all seem to be point to a mid 1982 board. The later ULA is mostly found in issue three boards.

The 7805 looked like the output leg had been cut and resoldered. Sometimes a way to check for a short on the 5V rail.

I powered that up, there was no overcurrent and the 5V rail was OK. There was no video output via the RF modulator, or on the intermediate video signal.

The original ULA was bad, but the ROM and Z80 were fine. I was using a known good ULA.

It was possibly bad RAM since that was soldered, or purely the bad contacts again.

Looking at the state of the sockets, I decided not to waste any more time and went straight to the desoldering station.

That went very smoothly, no issues, no damaged traces or lifted pads.

All it takes is a decent desoldering station which is regularly cleaned, lots of flux and practice and patience. It also helps if you lock any potential levering tools in another room so you are not tempted to force the chips out before they fall out by themselves nice and cleanly.

I removed the modulator so that I could remove the internal PCB, ready to fit a better composite mod at some point. For now, I went with a very simple transistor buffer. Not ideal, particularly with the old ULA, but it will do the job for the time being.

I fitted four new sockets.

And four tested chips.

The ROM is as supplied, but I have replaced the ULA, which was faulty. The Z80 is a modern one, actually 2016, but it was one that I had in my box of ZX81 spares.

The RAM is a 6116, a 2K chip, because I fitted link 2 as I will need that later.

I replaced the 7805 with a switching regulator replacement. This time a horizontal 2A device I normally use on Spectrum upgrades.

This is slightly lower profile than the normal switching regulator, so better suits boards destined to go back into a ZX81 case.

I tried it for size, and you can just see there is a gap between the regulator and the case.

Testing

I tested using a Minstrel Expansion Bus powered backplane to get the power in and a new ZX81 membrane. Before I started, I also stuck a heatsink onto the ULA to stop it overheating.

That fired up first time with a nice fast K cursor waiting.

I loaded a few programs to test, although I was limited to 2K at this point.

OK, that's all looking good.

Time for some upgrades.

RAM Upgrade

I have fitted internal RAM upgrades to ZX81s many times before, this version from 2014 involved current a couple of traces.

Most of the time, I used the alternative I demonstrated in a later post from 2017.

It is rather appropriate that the post about a 16K upgrade has had 16K views.

I am doing the same sort of thing here, but this is an issue 1 board, so the diodes are not the best pickup points for the missing address lines.

As explained in the previous post, the socket had address lines A0 through to A9. By fitting link L2, we get A10.

To get 16K RAM, we need to wire up address lines A11, A12 and A13. The order of the address lines is not important on a RAM chip.

The chip I use is a 62256, a 32K RAM chip, although only 16K will be used here.

It is not possible to get 32K by just adding A14, it requires some extra decoding as the RAM needs to go from 8K-40K in the memory map. That would mean wiring in an extra logic chip somewhere, so I do not usually bother.

Of the four spare address lines, pin 2 is connected to 5V in the socket, so I will leave that as is. The other address lines need to be connected to pins 1, 26 and 23.

I bent up the legs that needed to be connected to the higher address lines.

The three address lines, are most easily found on the issue 1 board on the three marked vias directly above the chip.

ROM Replacement

This is not really an upgrade (unless you are fitting a different ROM), but more a sort of future proofing.

Like the RAM, there is a 28 pin outline in the location the 24 pin ROM chips lives.

I am not aware of any chips which directly fit this pinout. Three of the extra four pins (pins 1, 27 and 28) and connected to 5V, and pin 2 is wired to A12, which is already connected to pin 21 of the 24 pin chip.

I plan to replace the vintage 24 pin mask ROM with a modern 27C256 one-time-programmable EPROM.

I happened to find one I had programmed something else into the bottom half of, so I was able to burn the ZX81 ROM to the top 8K of the 32K chip. The extra three address lines are the ones on the extra pins, and they are all tied to 5V, so the top 8K will always be selected.

As with the RAM, the pinout is mostly right, but here there are two pins that need to be changed, so I have bent those two out.

Pin 20 in the socket is A11, but the chip need that to be /CE. Pin 22 is /OE, and so pin 20 can be lifted and wired to pin 22, /OE and /CE are then activated at the same time by the same signal.

Pin 23 on the socket is A12, which is also on pin 2 where it is needed. Here it needs to be bent out and connected to A11. There is a handy via where that can be connected just to the side of the chip, here marked with a blue dot.

The replacement chips should be lower power and hopefully should last longer than the vintage chips, the RAM also provides a handy upgrade to 16K.

With all those changes made, the board is ready to be retested.

Testing the Upgrades

That also fired up, with the K cursor being notable slower to appear. That is actually a good sign, it means it is testing the full 16K of RAM, which takes longer than it did with 1K or 2K.

A quick check (this is the short method, PEEK 16388 is usually zero, so you can skip that part if you have already typed it lots of times in the last week whilst you have been repairing several ZX81s and writing up a blog post about it)

32768 is the number we want, that means the first byte that isn't RAM is at the 32K mark, so there is 16K of good RAM between the 16K mark and the 32K mark.

I tried various tests and all seemed to be working nicely, the ROM and RAM appearing where they should in the memory map.

Time for the Minstrel ZXpand II.

Well, what did you expect me to load first?

And there we go.

Yes, I am here.

Let's hope Rex plays nicely this time...

Oh dear, deaded again.

I was interested to try the 25th Anniversary demo, as I know that pushes the limits a bit.

Ah, that's good, that bit is working, as it says, it needs at least 16 kilobytes of RAM, it also needs the ROM overlay disable to be working correctly, which it is.

What does that say at the bottom? "To see all next parts, HRG capabilities are required".

Oh yes, now I remember.

The rest of the graphics demos fail because there is no RAM from 8K to 16K. I am so used to running this on a Minstrel 3 which has that (and the necessary pullup resistor on the /WR pin)

At least it runs at 100% of the speed of a ZX81.

And Perilous Swamp works, complete with the clunky screen clear you get on a real ZX81 due to the way you end up with a partially expanded display file when scroll is used.

Next Time

The case I found with these boards was not pretty.

The top was had shinny patches in places and the red had mostly rubbed off the ZX81 lettering.

They keyboard was also covered in sellotape.

In the next post, I will do my best to tidy up the case and repair or replace the membrane.


All items are still available, and I can ship worldwide.

Including the Minstrel 2 and 3 which are available in versions which will fit in a ZX81 case as a drop in replacement for the ZX81.

The Minstrel 2 is ZX80 level, no NMI compute and display (slow) mode, but 16K of RAM.

The Minstrel 3 is ZX81 compatible, with slow mode and 32K of RAM to allow high resolution graphics.

The Minstrel 2, 3 and Minstrel 4th (Jupiter Ace / ZX80 / ZX81 / Lambda 8300 / RC2014,) are available with built in keyboards

All versions are available in kit form, or pre-built, and optionally the new Minstrel ZXpand II SD card and joystick interface.

International shipping is a bit complicated at the moment, so if you want to order from outside the UK, please contact me using the contact link at the top of this page.

See here for more information:

Sorry to have to do this, and I know this is going to affect sales, but please understand it is the only option I have right now.


Patreon

If you enjoy posts like this, you can support me via Patreon, and get access to advance previews of blog posts, and exclusive posts. Paid Patreon supports will be getting the third part shortly, and maybe a forth part three will follow if there is any interest

You also get progress updates on new projects and other behind the scenes updates, as well as access to my Patreon only Discord server for even more regular updates, and to discuss your own projects.