As some of you have expressed and interest in the computer project I’m doing I though I’d start with a bit of history of the past projects that led to this point…
Like a lot of us I guess, I get nostalgic for what seem like the simpler times of yore. In my case this manifest as a yearning for the early 80s computers of my youth. Not for the games, or those specific computers per se, but for the tinkering with a soldering iron and trying to write programs to squeeze every ounce of speed and memory out of such limited systems.
So ten years ago I decided to start making my own computer, the sort of thing that I would have loved to make in my teenage years if I had the money. I didn’t eschew the modern world completely however. Rather than using pencil and paper as I once had, I used programs on my PC to draw the schematic and manually lay out the PCB. And instead of the Maplin catalogue I had a global e-commerce system to source components.
After buying a UV light box, some standard 160x100mm blank PCBs and the appropriate chemicals I was etching my first board, learning in the process how to align the images on both sides to match up within a fraction of a millimetre. For drilling the holes I had bought a Dremil and it’s crappy half plastic drill press, which was so flexible it kept breaking the tiny drill bits and made precision near impossible. But after all this I had my first little board I could base a system on, with a Z80 microprocessor, some RAM, a ROM and a 2 bit interface I could connect to my PC. Oh, and the board had a couple of blinking LEDs, proper computers must have blinkenlights. ![]()
Writing this, I’m getting all nostalgic for 10 years ago and am cursing the fact that I threw out these first few PCBs only this spring.
By the time I had added a proper RS232 serial port to my system as a second PCB I realised I had definitely got the bug and my ambition was growing. Wanting a more professional look, I bought a load of parts to construct a smart desktop 19-inch rack system, and for better quality PCBs, a German made all metal drill and press, some chemicals for tinning the copper traces, and a load of teeny-tiny rivets (0.6mm diameter).
These rivets are to join traces on both sides of a PCB and the tool for inserting them cost several hundred quid, which I begrudged paying. Thinking back I’m remembering a rainy day on a Lake District holiday with Mrs Mouse where she did some knitting or something and I sat at the kitchen table trying to pick up individual rivets with a tweezer, turning them round to insert them, then using a centre punch and gentle hammer tap to fix them. Certainly a sense of achievement when you complete the hundred or more needed for each PCB.
Over a period of several years I built an ever expanding system, learning in practice what I already knew from theory, that high speed electrical signals don’t travel neatly in wires. Instead they reflect off ends, resonate like a bell and leak between each other. To troubleshoot these issues I had to splash the cash on a cheap (£600!) fast oscilloscope.
There came a point when I thought I know how I could have done this better so started again from scratch. Finally, five years after the journey start I had this.
That has a Z80 CPU, 1 megabyte of RAM with an MMU, a hard disk and compact flash for storage, and a couple of USB serial ports to connect to my PC, plus some other miscellaneous circuits. Conspicuously lacking are keyboard, video and sound.
I’ve never been much bothered by sound, though I did tinker with a design for multi channel digital sound, to have something like the Fairlight CMI. For keyboard and display I have my PC acting as a ‘dumb’ terminal via USB. It didn’t seem to be worth the effort to make a real keyboard interface, but I do wish I had built a video card. I didn’t want to use the single chip display controllers used in things like the BBC micro or the first IBM PC, I wanted something more of my own design, built from scratch, and better
. I have a completed design for this, but even stacking 2 PCB’s on top of each other it was impossible to get everything to fit and connected up. I even started ‘cheating’ by designing with surface mount chips to see if that made things easier, it didn’t. (Looking again now at the revision history, I came back to this design only a couple of years ago and got the PCBs mostly done for a 3 board version using old DIL packaged ICs. Think I got demotivated or distracted by the next project.)
So much for all this hardware talk, I hear you say, but what can it do, what software does it run? I guess the logical choice would have been to get an operating system like CP/M running and access all the software available for that (there is some appeal in playing Zork or learning Fortran that way). However, my intention was for this to be all my own work from the ground up, starting by writing a Z80 assembler in Z80 assembly on my PC to bootstrap the process. Once my assembler could assemble itself I knew it was mostly bug free and set about using it to write a boot monitor, then a multitasking operating system. Nothing particularly radical about it’s structure, and the filesystem was inspired by Linux’s ext2 format. There is something I find satisfying about implementing a written specification, so for system utilities I set about implement an essential subset of POSIX utilities, including a Borne shell, all in Z80 assembler of course!
I do think I’ve missed out though by not using an old operating system like CP/M, what I’ve done makes it feels too much like my modern PC. Though I guess, the project has always been about the process of creating not the using of the final thing.
Coming in part 2, back to the 70s…














