Close
0%
0%

A5 minimal Mini-computer Kit

24-bit data bus and a 24-bit address bus, 6MB of battery backed memory and elegant, complete and simple RISC instruction set

Similar projects worth following
0 followers
This was a bit of TTL teaching based on the 74LS TTL chips, that just went further than I ever expected! I concluded we could build a simple CPU that could be elegant and understandable! It will be on KickStarter before 20th October I hope.

It became the A5 minimal mini-computer! So named for its A5 paper size (210×148 mm) PCBs. It has a 24-bit data bus and a 24-bit address bus, 3MB of battery backed memory expandable beyond 6MB and it also has a wonderful RISC instruction set. https://a5computer.com/code/code.html

Its A5 PCBs stack and connect via a black 100 way connectors that form a backplane (See photo, left of PCB).

It currently stands just under 100 mm high and consists of 6 A5 PCBs The boards are;

Binary Operator Front Panel
Binary Operator Back Panel
Instruction Decoder
Address Registers
Arithmetic and Logic Unit
Core Memory

My next addition is 640 x 480 VGA board.

I love this project :-)

I have been doing electronics since 1972, I built my first computer from a kit in 1979 (UK101) and have been writing software and designing hardware ever since. 

Today it's so easy to run up an electronic circuit simulator and a CPU emulator and a bunch of other stuff on your PC but its like the difference between seeing a photo of Saturn and looking at it through your own telescope.

The A5 is not a micro-computer

Although I am using retro components with tenth inch pin spacing that are still in production, for most of the A5 - it is not a micro-computer. The priority is to use understandable components throughout and 2 layer PCBs where you can see what connects to what. There are extensive annotations on the PCBs to guide you. All data sheets for every part used will be supplied as on-line PDFs for you to download. Similarly for the manual and instructions.

The A5 is a learning bridge from electronics to computing

On the www you can find plenty on basic logic gates namely AND, OR, ExclusiveOR and NOT, and the electronics behind them. I will provide links to websites that explain them or I will provide pages to do the job. On the web you can find out how logic gates can be used to build flip-flops and then counters and registers which is wonderful but how do you actually build a working CPU and computer from these components?

That is the gap the A5 bridges and with it, it introduces you to some modern concepts like RISC processor design.

24-Bit RISC CPU

I  don't use a black box plug in standard CPUs like a 6502 or a Z80, but rather we build the 24-bit CPU together which has a transparent, elegant and simple yet powerful (ARM inspired) instruction set which can be seen here https://a5computer.com/code/code.html that's why it's a minimal mini-computer. Almost "retro squared" in that it is evocative of things like a PDP-10 or other computers of that time, yet its RISC with no microcode. 

The big focus of this project has been understandability. It's not a high performance processor but I suspect it will beat an old 6502 when running at full speed.

The cost and your help for me to carry on with the A5

So far I have spent over 1200 hours on this project (I log my time) and I have enjoyed 99% of it. I want to spend another 1200 hours on it over the next year to finish the VGA board, a keyboard and an on-board assembler editor plus other stuff. 

To make that happen, I am launching a Kickstarter campaign to offer the current A5 to backers, going live in mid-October. I have to say that programming with the switches and LEDs is a valuable learning process but it will be fun to make a retro game when the VGA arrives in a year.

  • 2026-09-21 The first code to run on the A5

    tomdehavas • 3 hours ago • 1 comment

    This is the code with comments removed. It is explained in detail here https://a5computer.com/code/firstever.html
    but briefly


    016 04000020 :ADDRESS 16#100010 017 04000020 018 04000020 .START 019 04000020 ;Experiment to move an immediate value in and out of A3 020 04000020 000000 000 0 11 100 000 010 011 MOV (PC++) DAR 021 04000021 001 100 110 011 001 100 110 011 :WORD 16#333333 022 04000022 000000 000 0 00 011 111 000 000 MOV DAR A3 023 04000023 000000 000 0 00 111 011 000 000 MOV A3 ADR 024 04000024 000000 000 0 00 000 000 000 000 NOP 025 04000025 026 04000025 ;Jump back to START 027 04000025 000000 000 0 11 100 000 010 011 MOV (PC++) DAR 028 04000026 000 100 000 000 000 000 010 000 :WORD .START 029 04000027 000000 000 0 00 011 100 000 000 MOV DAR PC

  • The three digit number on the extreme left is the line number in decimal.
  • The number following it is the memory address of the instruction in octal.
  • The binary numbers where they appear are the instruction stored at the address or the constant :WORD value. 
  • They are broken into blocks of binary digits because each block is a part of the instruction and has a particular meaning;

    • 23-18 ALU Function
    • 17-15 3bit Test Condition if any use 000 for no test
    • 14 Test for 0 or 1 use 0 for no test
    • 13 Ax_CountOrHold
    • 12 Ax_DownOrUp
    • 11-9 Source Address
    • 8-6 Destination Address
    • 5-3 Source Data
    • 2-0 Destination Data
  • Then follows the mnemonic and the parameters. (PC++) means the contents of the memory location pointed to by PC and then increment PC again after this instruction.
  • The PC is the Program Counter
  • A3 is an address register connected to the address bus
  • DAR the Data bus to Address bus Register
  • ADR the Address bus to Data bus Register

View project log

Enjoy this project?

Share

Discussions

Does this project spark your interest?

Become a member to follow this project and never miss any updates