It's a really neat board. You can get kits from aliexpress etc. I wrote up some notes here https://www.philipzucker.com/td4-4bit-cpu/ . English descriptions are not so readily available.
Huh, so its isa is just "Dst := Src+Imm", with Dst one of [A,B,Out,PC] and Src one of [A,B,In,Zero]
Plus just a tiny bit of logic that wires in "Carry Flag" when Src=Zero to control Dst=PC
I guess "MOV A,B" sets Imm to zero for simplicity, because I don't see anything stopping it
drzaiusx11 21 hours ago [-]
I love this 4bit "isa" with 12 simple instructions. It makes me want to dig out my old 74x chips from storage and make one. That said, thank God for FireFox Reader mode, on mobile at least the add popups make this excellent blog post unreadable..
drzaiusx11 16 hours ago [-]
Update: I broke down and bought the PDF version, now I need to brush up on my Japanese again. Should be a fun project over the coming rainy days..
SoftTalker 20 hours ago [-]
These little projects are such a good way to illustrate principles in a concrete way, even if they aren't "useful" in any other regard.
Back in 1983 or so, I had a TI/99 computer and found a BASIC program called "PicoProcessor" in one of the home computing magazines. It emulated a 4-bit microprocessor. It only had a handful of instructions, 16 bytes of memory, and a couple of registers but it was enough to illustrate the concepts of how a processor runs machine code, in a way that was much more understandable than just reading about it.
Could I write any useful programs with it? No. But could I see how a CPU adds two numbers? Yes. And that was enough of an introduction that assembly language was suddenly not so mysterious.
Lerc 18 hours ago [-]
Making a 74 series CPU is on my infinite to-do list.
I also had some fun modelling the chips in verilog and model checking a verilog interpreter against them. https://www.philipzucker.com/td4_ebmc/ George Rennie got a similar thing working using the yosys toolchain https://github.com/georgerennie/philip_zucker_sby_demo
Plus just a tiny bit of logic that wires in "Carry Flag" when Src=Zero to control Dst=PC
I guess "MOV A,B" sets Imm to zero for simplicity, because I don't see anything stopping it
Back in 1983 or so, I had a TI/99 computer and found a BASIC program called "PicoProcessor" in one of the home computing magazines. It emulated a 4-bit microprocessor. It only had a handful of instructions, 16 bytes of memory, and a couple of registers but it was enough to illustrate the concepts of how a processor runs machine code, in a way that was much more understandable than just reading about it.
Could I write any useful programs with it? No. But could I see how a CPU adds two numbers? Yes. And that was enough of an introduction that assembly language was suddenly not so mysterious.
Last time I tried I ended up getting sidetracked by making a tool to help me. https://fingswotidun.com/PerfBoard/
But at least that's made the job of building a nice compact ALU module much easier. (One of the test boards in the app shows it)