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.
- 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 progressGuesstimates of the current progress of this project.
|CPU general design||90%|
|VGA output design||60%|
|Peripherals design||80% (MVP OK)|
|Assembler||30% (MVP OK)|
|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%|
|Shell software design||0%|
|PCB design and routing||60%|
|PCB building and assembly||10%|
|Documentation and source publishing||10%|
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.