About BMOW
Back in early 1980’s, I lived and breathed the world of the Apple II, Atari 800, Commodore 64, and their brethren. I could PEEK and POKE those machines like nobody’s business, and I spent countless hours writing programs, playing games, or just fiddling around. In contrast to today’s PCs, the computers of that era were inviting to tinkerers, with a comparatively simple hardware design and a BASIC prompt at boot-up.
As a computer engineering major in college, I learned the details of digital logic design. I even built a rudimentary computer on a prototyping kit built into a suitcase: MIT’s infamous “Nerd Kit”. But at the end of the semester, it was all torn down, I went on to a career in software, and that was that.
More recently, I learned of various projects to build simple computers similar to those 80’s machines, constructed entirely of discrete logic chips like counters, adders, flip-flops, and NOR gates. No Pentiums or PowerPCs here– these people built their own CPUs from the ground up, along with the memory subsystem, I/O, and everything else the computer required. I had stumbled onto the world of the homebrew CPU. To create such a computer required a detailed microarchitectural design, custom instruction set design, custom software tools like assemblers and compilers, and of course a custom circuit board or three populated with lots of fat DIP chips and a big mess o’ wires. Projects like the Magic-1, D16/M, and Mark 1 FORTH Computer showed me the way.
I decided to build a homebrew CPU computer of my own. My goals were:
- Build the CPU from scratch, primarily using basic 7400-series logic. No 6502, Z-80, etc.
- Keep the hardware complexity to a minimum. I’m not an electrical engineer.
- Be capable of running “real” programs, not a 4-bit CPU or toy machine.
- Provide a way to interface with a PC.
- Be fast enough to run interesting programs interactively.
Stretch goals:
- Boot into a simple integer BASIC program, capable of interactively editing and running its own programs.
- Support multiple programs executing simultaneously, via a pre-emptive multitasking OS.
- Provide keyboard input, VGA video and sound output.
Current Status
Big Mess o’ Wires is a work in progress. Initial design began in November 2007 with a high-level sketch of the CPU internal design. A Verilog hardware simulation proved the design details. Construction began in earnest the following February, using a large wire-wrap board to interconnect the 50 or so chips needed. In April, a half-finished BMOW booted up for the first time, computing fibonacci(12) = 144 using a simple ROM-based program. As of July 2008, hardware construction is about 80% complete, BMOW can run complex programs written in assembly or compiled from C, rudimentary multi-tasking is working, and most of the original goals have been realized. The focus is now on the stretch goals of video/sound support.
Specs
- Current clock speed is 2MHz. It should be able to go to about 3MHz ultimately.
- 512 KBytes of RAM, 16 KBytes of ROM.
- Power draw is 8 Watts, implying 1.6A at 5V.
- Keyboard input is a standard PC keyboard with PS/2 connector.
- Output display is a 20×4 character text LCD. (VGA video output is work in progress)
- There are presently 704 connecting wires, so 1408 individual wire wraps.
Please send me your thoughts and questions about BMOW!

The BMOW hardware as of April 2008:


4 Comments so far
Leave a reply. Comments may take a few minutes to appear.
you might be nuts. but in a good way.
Hello!
Wow!
Back during the days of the Apple and the R6502, I, myself happened to be a very good programmer. In both BASIC and assembler. So much so that I would be able to diagnose a problem for someone else from just by viewing a sick machine’s responses.
What you are doing is just the bee’s knees. And that
is good.
Hi Steve
Love your system. Well done!
I noted your remark about the system being stand alone by using the keyboard and lcd display. Thought you might be interested in a cheap display that I am using for my Z80 CP/M system. http://www.allen.caldersmithguitars.com/all-50.jpg
The display has no backlight. I bought some from:
http://www.allelectronics.com/make-a-store/item/LCD-101/256-X-128-LCD-PANEL/-/1.html
The display can hang straight off the address/data busses and isn’t too hard to drive.
Allen: Looks quite impressive! Do you have any more details about your system on the web, beyond that photo?