The JMCPU project

What is this project

This project is an attempt to build a hobby computer from basic 74HC logic chips and ROM/RAM chips.

The main design goal is to have something that could compete with the early 80's family computers: a computer with more computing power than a Commodore 64 or an Amstrad CPC.

Target features:

The CPU architecture is called JMC24x8, x being replaced by a letter corresponding to its microcode version. It has:

This architecture is highly CISC based, with 16 steps of microcode per instruction, quasi-orthogonal control of its registers at the microcode level and a lookup table-based ALU. The microcode being stored in flash ROM chips, it's very easy to change the CPU to make it evolve, add or remap instructions and optimize it for specific workloads.

Building the development kit and applications will require programs that run on a PC (assembler, microcode, ...). These programs will all be written in standard C++.

Global progress

Guesstimates of the current progress of this project.

General idea100%
CPU general design90%
VGA output design60%
Peripherals design80% (MVP OK)
Main schematic80%
Case design10%
Assembler30% (MVP OK)
Assembler tests20%
Microcode80% (MVP OK)
Microcode level autotests20%
C++ Microcode level emulator60% (MVP OK)
C++ Chip level simulator70% (MVP OK)
Basic low-level functions1%
Basic low-level functions autotests0%
Operating system design0%
Operating system implementation0%
Operating system autotests0%
Terminal software0%
Shell software design0%
Components sourcing90%
PCB design and routing60%
PCB building and assembly10%
PCB testing10%
Final validation0%
Documentation and source publishing10%

JMCPU project pages


Intent: The author (Jean-Matthieu Coulon) wishes to allow reusing this work, as long as its associated source code, documentation and designs are shared along with any derived product. Redistributing or selling this content or any derived product is allowed if attribution is made clear and any change made public. That is why the following licenses were chosen:

This whole web site, all schematics, PCB designs and documentation, except source code is licensed under the Creative Commons Attribution-ShareAlike 4.0 International License, attributed to Jean-Matthieu Coulon.

All source code is licensed under the GNU General Public License, version 3.0 or later.