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:
- A 640x400x1-bit framebuffer
- A VGA output at standard 25.175MHz pixel clock
- A keyboard
- Audio output capabilities
- Logic level audio input for cassette loading
- Some kind of peripheral access (SPI) to interface with Arduino-compatible microcontrollers.
The CPU architecture is called JMC24x8, x being replaced by a letter corresponding to its microcode version. It has:
- A 24-bit address bus
- An 8-bit data bus
- 5 24-bit registers
- A 24-bit adder with carry
- A 24-bit bitwise inverter
- An 8+8 bits ALU with its own accumulator register
- One interrupt
- Bus request
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 idea | 100% |
CPU general design | 90% |
VGA output design | 60% |
Peripherals design | 80% (MVP OK) |
Main schematic | 80% |
Case design | 10% |
Assembler | 30% (MVP OK) |
Assembler tests | 20% |
Microcode | 80% (MVP OK) |
Microcode level autotests | 20% |
C++ Microcode level emulator | 60% (MVP OK) |
C++ Chip level simulator | 70% (MVP OK) |
Basic low-level functions | 1% |
Basic low-level functions autotests | 0% |
Operating system design | 0% |
Operating system implementation | 0% |
Operating system autotests | 0% |
Terminal software | 0% |
Shell software design | 0% |
Components sourcing | 90% |
PCB design and routing | 60% |
PCB building and assembly | 10% |
PCB testing | 10% |
Final validation | 0% |
Documentation and source publishing | 10% |
JMCPU project pages
License
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.