Nibbler 4 Bit CPU (2013)
bigmessowires.com
bigmessowires.com
It was a very fun experience. And we liked the project very much.
It has a very small and concise schematics which makes it very easy and clear how CPU really works.
P.S.: the original simulator is written in C++/CLI (a .net flavour of c++), so I decided to refresh the project (to c#, it was easier to translate than to port to native c++), and added a real 1602-display simulator which looks nicer and support a “graphic” mode. You can play with it here https://github.com/omgtehlion/nibbler-sim
What would you say was the hardest part of building the computer? How many breadboards did you end up using?
You should put a couple of inverters after the 555 timer to make signal fronts sharper. I recommend 74als series (older, bjt, easier to work with), or 74hct (more modern, mosfet-based, ttl-compatible). We even tried some 74act parts, but these are not designed for breadboards ;)
Though Ben Eater’s work is overall great and very instructive. You should follow his recommendations on breadboarding (board models, wires and stuff), they are stellar.
The hardest part, as usual in electronics, is contact quality, be careful diligent. For Nibbler we used around 5-6 breadboards.
P.S.: it was hard to source ALU. I scoured ebay for weeks and got some for exorbitant price + shipping. Then I found one factory in Belarus that still makes 74als181 (кр1533ип3 in cyrillic) chips in narrow dip packaging. I ordered a small box of these ;) It was cheaper than a single 74hc chip from eBay.
For something you could build with today's part catalog, without going all the way to an FPGA, doing the ALU in a GAL parts might be both amusing and educational.
All the logic remaining are bus arbiters and IO access. You can replace 74-181 with one more rom though, but it will not decrease chip count...
EDIT: actually if you replace 74*181 with rom, you can get rid of NZERO flag detection gates (minus 1 chip)...
The system was slower than others in the line, but was also the cheapest.
Nibbler 4 Bit CPU - https://news.ycombinator.com/item?id=10379017 - Oct 2015 (19 comments)
I think if you want to get a BASIC running on that 4-bit CPU in the article, the easiest is probably to create a 6502 or Z80 emulator, then run the emulator on the 4-bit CPU.
After all, someone made an ARM (32 bit CPU) emulator for an 8 bit CPU and booted Linux on that.
I would look at Apple’s first Basic (https://en.wikipedia.org/wiki/Integer_BASIC) and trim away all but the bare essentials. Some possible simplifications:
- only support variable names of length one
- remove the exponentiation operator
- only support 8-bit integers
- only support line numbers between 0 and 255
If, then, there’s program space left, add in features.
Also GameBoy first CPU was 4bit based if I recall correctly
So 4bit CPU has something to say.
Kind of like how in old western movies when the cowboy wants to park his horse he just loosely wraps the reins around a fencepost. It's secure enough to keep the horse from wandering off.
Here's a video showing a manual wire wrap tool: https://www.youtube.com/watch?v=lG5oKLrG7R0
Yes
> If so what mechanism is actually holding the wire securely around those metal posts(terminals?)
The wire is wrapped around the posts several times, with no other mechanism. https://en.m.wikipedia.org/wiki/Wire_wrap has a good close up picture of one connection and a description of the details (including some info on how this forms a reliable connection)
i made a card "game" for Richard Buckland's made up instruction set and my daughter was very receptive, we also started to build Ben Eater's cpu, but it was too slow and she got impatient
i think nibbler is the right amount of fun/effort, i will absolutely try it
link to the game if someone is interested (you can also print it yourself): https://punkx.org/4917
This is my view on the SSD crashing family of events. Lessons learnt to always be alert and have backups handy.