With the Legion Blog, I’m planning to cover a range of topics, from retro hardware, to games and computer design. But what is the Legion computer?

What is Legion?

I’ve been tinkering with small, retro computers for years. From PIC Microcontrollers through to virtual machines like the DCPU-16. More recently we’ve seem the rise of home-brew processors, popularised by Ben Eater’s oustanding video series where he builds his own CPU from scratch on a mass of breadboards.

Ben Eater's Computer

Inevitably, I’ve started to wonder if I could create something like this. Could I design a unqiue working computer from scratch? Legion is that project.

The Goal

The lofty goal for Legion is to produce a new CPU to my own design, that is reasonably functional - in that the computer it is part of has a keyboard, a graphic display and a way to load and save programs. Make no mistake, this is a very lofty goal. It’s entirely possible the project will not reach completion, or produce something slightly (or even radically) different but I’m standing on the shoulders of giants as I set my sights on the horizon. The Maker community has grown immensely in recent years thanks to advancements in 3d Printing, freely available design software and prototyping companies that can produce everything from PCBs through to complex robots. Blogs like this, YouTube series and podcasts have explored these topics and thrown up fantastic ideas and techniques for building stuff that not long ago was only possible for well funded corporations.

So whilst this is undoubtedly a big challenge, many parts of the problem have been tackled before, and generous creators have shared their successes and their failures. I think I can learn from that, and build something new. This is not a commercial endeavour, but an ‘after hours’ project that gives me an excuse to tinker with hardware, software and probably burn my fingers on a soldering iron. The blog is a side effect, hopefully a means to document the process and talk about the many related subjects and fantastic individuals building new and retro technology.

Set Your Expectations

Firstly, as this is not a full-time project, let’s be clear it’s going to take a long time to complete - homebrew computer projects often take years to get to a working machine.

That said, I’m planning a few short cuts - getting something working sooner rather than later - not only to try and keep your attention, but mine as well. Who wants to be staring an an intert project forever? So what is going to come out of this? Here’s a rough plan:

  • Get the plans out as I make them. Be warned, there will be revisions and dead-ends.
  • Emulate. Get something virtual that can be played with as soon as possible.
  • Write some tools. More software, but the aim is to allow anyone to play with the stuff I’m building.
  • Build modules. If I can get a part working that other people can play with, so much the better to share it rather than waiting for everything to be complete.

So… what?

OK, so what do I want to achieve? I want to build:

  • A working computer. Keyboard, screen, a way to load and save programs.
  • It must be robust and reproducable. Not so delicate it can’t be put away or brought out when needed, and it’s no good if no-one else can play with the design as well.
  • A documented machine. Again, if someone else can’t use it, it’s not usable.
  • It can ‘play a game’. Simple graphics and enough speed to make it possible to write or play a basic game.
  • Something with blinkenlights.

Of course this would be easily possible with a reasonably powerful FPGA and some off the shelf cores - it’s not too difficult to put together something with equivalent power to an Amiga or 486 PC. However, that’s not the aim. I’d like to figure out and be able to ‘see’ the workings of the machine, and to have designed them for myself. So here are the restrictions I want to work to:

  • Use only currently available 74 series (TTL) logic chips where possible. No Ebay finds or obscure devices.
  • I/O, peripherals implemented through standard logic (both keyboard and SD card interfaces can be done this way)
  • No support processors. Many projects succumb to microcontrollers or the occasional Raspberry Pi to implement core features.
  • Use standard, low cost memory. High speed and dual ported RAM feels like ‘cheating’.
  • Through hole devices. It should be easy for anyone to build without expensive equipment or the skills to handle surface mount components.

And the specs? These are the aims:

  • 64K Ram (16 bit address)
  • VGA Graphics output (min 320 x 240)
  • At least 1 MIPS - a minimum speed to be able to perform reasonable graphic output
  • PS/2 Keyboard input
  • SD Card reader

These aims and restrictions lead to a number of design decisions:

  • It’ll have a RISC instruction set. Minimal or no microcode.
  • 16 bit data. Wide words make instruction decoding simpler. This pushes the complexity into the PCB for wide data paths.
  • 4 plane PCBs as modules. This should make a robust and fast design easier to produce.
  • No attempt at compatibility. Not that it was an aim anyway.
  • Compact, backplane design. This makes it easier to produce a robust, portable device.

And the Name?

Given all of the above, a minimal chip count like the Gigatron is, to put it mildly, out of the question.

With this one, the chips are Legion…