MENTAL-1 is the first iteration of a family of processors I'm building. MENTAL-1 is built using only 7400 series components (excluding the RAM and ROM). The MENTAL family of processors uses Brainfuck as its instruction set.
MENTAL-1 is a CPU that natively runs Brainfuck code. Brainfuck is an incredibly simplistic language. At its core, it consists of only eight basic instructions, a one-dimensional array of bytes, a data pointer, and an instruction pointer. I won't go into detail about the language here, but skimming over the wikipedia page http://en.wikipedia.org/wiki/Brainfuck will give you a good idea of how it works.
I recently spent a bit of time drawing up a proper schematic for MENTAL-1. I've had revised schematics laying around on sheets of paper for a while, but nothing official. However, I wanted to make a PCB implementation of MENTAL-1, so I fired up Altium and drew it up. You can find the hi-res schematic PDF here.
For now, I'll be referring to this implementation as MENTAL-1P. It's a slightly modified design from MENTAL-1, but I'm not sure if it warrants a version number bump. I'll be posting updates here when I get and test the boards from Seeed.
The past few months have been slow for MENTAL-1, but a few important milestones happened. Most importantly, I'm officially calling it finished. The MENTAL line of processors is most definitely not, but MENTAL-1 is. It's able to achieve stable operation at 3MHz, has working peripherals that were designed for it (the PS/2 keyboard input and the 40x2 character display output), and most importantly has a slick laser-cut case. I've included the most recent video I have of it in operation - it's one I created for showing the computer to a few different Reddit communities.
One of the best things to come from this project was being able to use it as a tool to teach others about building their own CPUs. At the Seattle Mini Maker Faire, I had a blast introducing the ideas behind how computer chips are made, how digital logic works, and how creating a large hand-wired project like this can be tedious but incredibly rewarding.
The CPU was running the simple "cat" program I had written, and visitors were able to stop by and type out any message they wanted. The new case on it helped keep my mind at ease when the younger crowd stopped by and wanted to get hands-on.
I was able to attend the Wenatchee Mini Maker Faire as well, which was much more relaxed but still a great time. It was a bit after the one in Seattle, so I had time to polish my presentation a bit.
It's been a blast sharing this with local communities.
So, what's the plan now? MENTAL-1 is finished. I've started work on MENTAL-2, which is fairly messy but much more compact. I'm currently working on an FPGA implementation as well.
I'll post proper schematics, the source code for my "cat" program, and my notes here in the coming months.
It works! There's still a lot of cleanup left, but it seems to be running correctly. This test program exercises every instruction. The vertically-oriented breadboard is unnecessary for the CPU to function, it's just a breadboard for I/O.
No update photos yet, but I had to make a few modifications to the clock design, as the earlier version had a race condition. I've had difficulties making it possible to change direction while incrementing the 74HC193 without glitching, so I split the clock into one that's consumed by the Instruction Pointer (IP), and another that's consumed by the rest of the logic. I'll go into more detail in the next update, which should come in tonight or tomorrow.