As the supply of genuine retrocomputers dwindles and their prices skyrocket, enthusiasts are turning their eyes in other directions to satisfy their need for 8-bit pixelated goodness. Some take the emulation route, but others demand a solution that’s closer to the original hardware. Following the latter path, [iNimbleSloth] is answering the question as to whether it’s possible to build a Sinclair ZX81 from all-new parts in 2022.
The ZX81 was Sir Clive’s second Z80-based computer, and its low price made it an instant success which paved the way for the legendary ZX Spectrum. From here in 2022 the original Ferranti ULA chip that contained all the logic is unobtainable except by raiding another ’81, so he’s using a design that has the same functionality in 74 series logic. The PCB is the same size as the original, and he’s paired it with a keyboard PCB using tactile switches. The video below the break is the first of what is to be a series, and he will be looking at a readily available 3D printed ZX81 case and the re-manufactured membrane keyboard.
For those of us who first learned to code in its meager 1k of memory the ’81 will always be a special computer. Sure it had many faults, but simply having an affordable real computer at all in 1981 was special. To see one being made from scratch is special then, and it would be nice to think that a few other people might learn how a computer works the Sinclair way.
That takes me back. I remember building the ZX81 when it came out. It was fun until my employer bought us all Ferguson Big Boards to assemble / play with.
Yes, the kit was $99. I ended spending just as much to add a Memopak 32k memory.
The best RAM packs! I had a 16K one. Contoured to fit perfectly on the back of the ZX81, which let it support a thoroughly hi-tech solution to RAM pack wobble: the included strip of Velcro. (I mean, it worked…)
A mechanical keyboard for this ZX81 clone – https://youtu.be/c1G5rX_YvCA
Yes, you can, that’s the beauty of it, and yes I built that same release in 2020. But impressive is the amount of work that happened since I had my TK-85 when I was a kid.
A ZX Spectrum, like the Harlequin, can be also built using TTL logic, and some eol’d RGB to Composite chip.
I’d love a kit of this, along with a cost estimate/ballpark. I never played with this computer – my school had TRS-80s and a couple Apple ][, and I had an OSI Superboard at home, but if I could build a true clone (not an Arduino running an emulator) I’d do it in a heartbeat.
The OSI Superboard wss cloned in the UK, the UK-101. I think it was originally a project in a magazine.
Of course, no unique parts in the Superboard. Just ttl, RAM and some I/O.
Errr, the story is about a guy that implemented what another guy made available on github… ? Hardly a ‘hack’, is it ?
Honestly, I kind of like coverage like this specifically because it validates what someone else did and made available.
There’s nothing like trying to use a tool someone has posted and finding out it’s missing the last little bit to make it functional.
I understand. I also value peer-reviewing and repeatability. But the article presented it like if it was an original work.
Then I can post the original thread (in mikrocontroller.net) where we, in 2020, did the build communicated with the author, found some bugs and got nicely working machines: https://www.mikrocontroller.net/topic/503174
The problem with the ZX81 is that the CPU-driven video doesn’t turn out to save that much circuitry. Consider the Jupiter Ace, which has a parts count not all that different from the ZX81 or Galaksija (a couple of dozen chips from the 74 & 4000 series), but generates video without involving the Z80 – which consequently gets to run at full speed.
I always thought it was pretty clever. It’s not just that the ZX81 generates a display partly in software, but that the design allows for a variable-sized display (character 118, a Z80 HALT instruction) ends each line.
And surely it does use significantly less hardware? It’s based on Don Lancaster’s TV Typewriter concept. All the video hardware has to do is check that an instruction is being executed above address 0x8000 and it reads the instruction; substitutes a NOP (0x00); then when the Z80 generates the refresh cycle; inserts the read byte into bits 3..10 of the address.
At the end of a row, the Z80 reads a 118 instruction which the ULA doesn’t translate and simply generates an interrupt at the next front porch.
That’s about right isn’t it? That’s a lot simpler than maintaining all the logic for counting scans isn’t it? And it meant that ZX81 programmers were able to generate pseudo high resolution graphics for it!
Looking at the board above, I count 25 chips; Grant Searle lists 30 chips in the original Jupiter Ace (https://www.jupiter-ace.co.uk/hardware_diy_ace.html), but suggests modern constructors swap in larger RAMs and ROMs instead of the 2532s and 2114s in the original plans – which reduces the chip count to 26. Considering that three of those will be RAM chips, rather than just one for the ZX81, one may conclude that the straightforward video generation circuitry of the Ace requires *fewer* 74LS chips than the CPU-tricking and NMI-generating ZX81 circuitry.
Not really: remember that the only objective when creating the original ZX80 (the one with standard 74LS chips) was a reduced price, so reducing the number of chips from 30 to 25 was more important than to offer full-speed CPU processing power.
I agree; the ZX80 circuit is pretty darned clever; a truly mad-genius design. Not only is the chip count pretty low, but they also did a lot more with those chips than you’d expect.
For instance, the system ROM and character generator were the same part. During video, the address supplied by the Z80 went to the RAM (to provide the character), and then to the ROM (to look up the bit pattern for that character), and then to the video shift register (to serialize it into video).
Another trick to minimize memory was that there was only 1K of RAM. The tokenized BASIC program in memory was displayed directly, without *any* video RAM. Character 118 both ended each BASIC line, and caused the Z80 to stop outputting video for the rest of that line.
Later computers like the Jupiter ACE and Galaksija did similar things, but needed more chips and more memory to do it. Memory was expensive in those days, so that mattered.
I don’t know where you went to school, but in 1981 I was programming computers, not “coding” them.
In 1981 programmers got pantsed in school. In 2022 everyone in school is a coder because it seems that most kids play Minecraft and mod it heavily.
Here’s a story about “real” programmers.
http://catb.org/jargon/html/story-of-mel.html
I built a ZX81+38. Working great. I had just one hitch with using the wrong type of inverter for the clock circuit.
About the costs: actually, I wouldn’t be able to tell anyone. I used 90% of components that I already had on the shelf, and most of them from the 80’s themselves. :P Including the PCB, I don’t think I payed more than $50. Mostly the connectors, some passives and a few ic’s that I had in 74LSxx but not in 74HCxx. To be honest, I could have also used 74xx logic, but the power usage would increase a lot, I guess.
I posted a pic of my board and keyboard on the ZX81plus38 forum:
https://forums.raspberrypi.com/viewtopic.php?t=254492&sid=7e2caf7a44092b5993fe2c08c674847b&start=100#p2010849
There’s not a MASSIVE difference between the zx81 and it’s predecessor the ZX80, which was all in discrete logic, and the few hardware differences are relatively easy to add to the zx80 design.
In fact, there was an upgrade kit to make the ZX80 almost ZX81 compatible.
Many programs for the ZX81 did run with it.
https://sinclairzxworld.com/viewtopic.php?t=1390
Don’t get me wrong, the ZX80 was neat as a prototype, but it has a limited software library. So a ZX81 upgrade made a lot of sense back in the day.
All the unofficial ZX81 clones do have more applications than the ZX80, IMHO.
Like the VTech Laser 200 or VZ200 with its hi-res graphics.
https://retroordenadoresorty.blogspot.com/2020/04/ordenador-vtech-laser-200-1983-secam.html?m=1
Also, there’s AX81 project. A ZX81 emulation on a single chip. Not the real thing, ofc. It’s still fun, though. And it has a 16KB RAM option with an external SRAM chip.
https://www.jcwolfram.de/projekte/avr/ax81/main.php
Personally, I think that a real ZX81 must be capable of running ‘3D Monster Maze’, at least. Just like an IBM PC compatible had to be able to run MS Flight Simulator back then. If it does, it qualifies as a ZX81. ;)
My ZX81+38 DOES run monster maze, and many other games, including ones that use pseudo highness graphics, with the canonical example of manic miner for the ZX-81.
Also the estimated price for building my clone is $50
It was my (from employer) computer, on that thing i (later we) did develope a user interface for the first fruitgrader what resulted in a user interface what was (later) used on a DOS based system that was in production from 1986 to 2015, there are stil around a thousant of them running at the moment.
Programming in BASIC saving on / loading from audio tape was waayyy better than the retyping of hexcode on the first production production machines (a 8086 PLC converted back to a computer).
It all started at the end of 1981, first proction machine in 1983 wholy done in hex, in 1985 converted from machine code to ASM (that was a big hassel as we used the 0xD4 0x10 intruction to pack 4 digits in a word.
While in ASM there was DAA (Decimal Ascii Adjust) which translated to 0xD4 0x0A so we did expand the MacroAssembler with DAH (0xD4 0x10) at that time there was only 2k x 16 RAM available.
The ZX81 was SINCLAIR’s THIRD COMPUTER. Sinclair’s first computer was the MK14, see links below.
https://en.wikipedia.org/wiki/MK14
http://81.174.146.201/acorn/Acorn%20System%20Computers/MK14/mk14.html
http://www.computinghistory.org.uk/det/8095/Science-of-Cambridge-MK14/
https://www.youtube.com/watch?v=U8n474FfH2Y
https://www.eevblog.com/forum/projects/science-of-cambridge-(sinclair)-mk14-restoration/
don’t understand, why waste perfectly good chips making something that runs at a few Mhz, and is basically useless.
Why not just emulate it?
Dump the cartridges, archive them, and be done with it.
Because you said that 640 k ought to be enough for everyone.
Why do you build it? Because it isn’t there.
Because 100MHz scopes are expensive, while you can pick up a 10MHz scope for $25 and find out how computers work for hardly any money at all. :)
The Z80 was so beautifully simple that you needed barely any external logic to build a system. I actually put a product together with no RAM – just a Z80, an EPROM, a tri-state buffer for a few inputs and a latch for outputs. The lack of RAM was a little tricky because it removed the ability to have a stack (and so no subroutine calls), but I could still use vectored interrupts with a bit of ingenuity. The video modulator and cassette interface on the ZX81 would be unnecessary today and all that stuff shrinks to nothing in board real estate when you go surface mount (which none of the Sinclair products did).
Loved that little processor.
why not put a fastes ram, replace rom (user can replace) and add peripheliars. if fuzix can run on it i bout it ;)
+1
Programming through the use of a stack/the registers instead of RAM is an almost forgotten craftsmanship, IMHO. Diagnostic EPROMs for PCs used this to work around faulty RAM, for example. You can’t properly test for faulty RAM after all, if the program testing it must run itself in faulty RAM.
Built one of these just for the fun of it – don’t regret a thing ;)
In many respects it shows how pioneering the ZX81’s ULA was in that all the logic chips were squeezed into one ASIC at a time when all the competitors had to use TTL chips. It also illustrates how far we’ve fallen, because if there were fully open-source CPLDs and / or FPGAs available today; even those that could substitute for the few hundred gates that the ZX81 ULA did, it would be trivial to produce an even more authentic ZX81.
Instead we’ve wasted decades on proprietary programmable logic architectures backed by proprietary tools :-( .
What about a Lattice iCE40 with the open source toolchain? I bet that would consolidate many of the TTL chips here.
Some people did it (I found 2). Apparently both implementations still have a few issues to iron out. But also seem to not be maintained anymore.
1. https://github.com/lawrie/blackicemx_zx81
2. https://github.com/nihirash/Ice81
I am bittersweet about this, I like the idea of the TS-1000 reborn with current components, but I wish it allowed a USB or PS/2 keyboard (even if it required another processor e.g. Arduino, Blue Pill). You know, a real keyboard.
Depending on the size of the kid you could build it into a proper keyboard.
I also designed a real keyboard, with real tactile buttons, to replace the horrid membrane keyboard you might remember. I also made a keyboard overlay with all the instructions etc on it which you can put over this keyboard. But there are also plenty of people designing their own keyboard with even better keys, like cherry MX keys.
How about an upgrade with a second Z80 to handle the video so the main Z80 can always run software at full speed?
A dual-Z80 system? Sounds cool! π I wonder if it’s possible to use its arch rival, the i8085, as a slave or video “co-processor”, also. An Z80/i8085 or Z80/i8080 pairing would be cool, albeit pointless maybe. But still kind of cool.. π
I hate membrane keyboard. it was unusefull.
That is why I also designed a keyboard with real tactical keys (keys you can feel when you push them down) and a keyboard overlay with all texts, you can glue on top, or punch holes for the key-stems to push through.
Hmm, funny, @hackaday. Why did you black out all the labels of the chips in the image?
I don’t think they did. It looks like a screengrab from 12:23 in the video where the board is a bit small in the frame and the video isn’t perfectly clear so the labels are there but just too blurry to make out.
no problem, there is a drawing here: https://github.com/mahjongg2/ZX81plus38/blob/master/ZX81%2B38_rev_1.9%20component_placement.png that shows the placement of all components, for easy assembly.
I look at that forest of support chips, and my first thought is: FPGA.
2nd thought: CPLD may be enough
3rd thought: When was the last time you saw a design with CPLD?
no all IC’s (except Z80- RAM and ROM chips) are simple 74HCxx TTL chips. about $30 worth of them.
Looks pretty sweet, I like the idea of all those chips rather than just a single fpga chip. I’m thinking of giving this build a go, did anyone else here try making it?
Part 2 was released yesterday https://youtu.be/b6BjFEuRM7A and he has designed his own mechanical keyboard to go with it.
Yes there are dozens of people (actually there could be hundreds I don’t know of) that have built my ZX-81 clones (I published another one made with surface mount (SMT) chips, but that one was less popular because people don’t like to solder SMT chips) called ZX81+35 before this ZX81+38 one.
Here is a post of just one of them https://forums.raspberrypi.com/viewtopic.php?t=254492&sid=7e2caf7a44092b5993fe2c08c674847b&start=100#p2010849