BMOW title
Floppy Emu banner

BMOW 1 Computer

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. It was a big mess o’ wires.

Construction is documented in 100 blog posts, ranging from the original idea through dozens of setbacks to a final demo for thousands of people at the 2009 Maker Faire.

The Hardware

Big Mess o’ Wires 1 is an original CPU design. It does not use any commercial CPU, but instead has a custom CPU constructed from dozens of simple logic chips. Around this foundation is built a full computer with support for a keyboard, sound, video, and external peripherals.

My original 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.

Initial design began in November 2007 with a high-level sketch of the CPU internal design. A simplified Verilog hardware simulation proved the key design details. Construction began in earnest in February 2008, using a large wire-wrap board to interconnect the 50 or so chips needed. In April, a half-finished BMOW 1 booted up for the first time, computing fibonacci(12) = 144 using a simple ROM-based program. One by one the original system goals and stretch goals were met, including VGA video, three voice audio, BASIC, and a bootloader for communication with an attached PC. BMOW 1 eventually gained the ability to run complex programs written in assembly or compiled from C. The main construction phase ended in February 2009, with the completion of a customized case to house everything. As of March 2009, Big Mess o’ Wires 1 is fully functional, but will probably never be “finished”.

Architecture

BMOW 1 borrows liberally from other homebrew designs, as well as the MAYBE design presented in the book Computation Structures by Stephen Ward and Robert Halstead. Data busses are 8 bits wide, and the address bus is 24 bits. Four 8-bit registers are used for general data, and three 24-bit registers store the program counter, stack pointer, and a scratch/working address pointer. Registers and the arithmetic and logic unit are interconnected by one data bus, while RAM, ROM, and memory-mapped hardware devices use a second data bus. The ALU also has dedicated left and right data input busses.

Machine language instructions are implemented as a series of micro-instructions, stored in three parallel ROMs to create a 24-bit microcode word. One micro-instruction is executed each clock cycle, and the micro-instruction bits are used directly as enable and select inputs to control all the chips in the machine. Up to 16 micro-instructions may be needed to implement a single machine language instruction.

Note: Some additional devices are not shown here, including the VGA display circuitry and real-time clock.

24-bit addresses allow for up to 16MB of memory, but only a little more than 1MB of combined RAM and ROM is installed. The most-significant byte of the address is called the bank byte, and is normally invisible to programs. The standard instruction set presents a 16-bit interface to programs, with most instructions implicitly referencing the current bank. Cross-bank references are possible, but awkward (think x86 segment registers).

A 512K ROM contains a bootloader/menu program. A USB-to-TTL interface based on an FTDI chip provides an easy way to move data to and from a connected PC. A standard PC keyboard with PS/2 connector is used for keyboard input, and a 24×2 character text LCD serves as a debug output display. Custom video circuitry drives a standard VGA monitor, with a maximum resolution of 512 x 480. A three-voice programmable sound generator provides music and sounds.

BMOW 1 is built on an Augat wire-wrap board pre-populated with thousands of wire-wrap pins. The chips are pushed into the board without soldering, and can be easily removed, similar to a prototyping breadboard. Unlike a breadboard, the pins are individually connected on the underside of the board according to the needs of the circuit design. A wire-wrap tool is used to wrap stripped wire ends tightly around each pin. Wires can be removed fairly easily in case of a mistake. BMOW 1 contains about 2500 such wire wraps.

Specs

  • Current clock speed is 2MHz. It could theoretically go to about 3MHz (untested).
  • 512 KBytes of RAM, 512 KBytes of ROM.
  • Power draw is 10 Watts, 2.0A at 5V.
  • VGA video output is 512×480 with two colors, or 128×240 with 256 colors.
  • Audio and music is provided by a three-voice programmable sound generator.
  • Keyboard input is a standard PC keyboard with PS/2 connector.
  • Debug display is a 24×2 character text LCD.
  • There are roughly 1250 wires connecting the components, so 2500 individual hand-turned wire wraps.

Files

  • BMOW Block Diagram – Shows the system busses and data paths for BMOW 1’s custom CPU.
  • Video System Block Diagram – Shows the design of BMOW 1’s video display circuitry, the most complex subsystem in the machine.
  • Layout – Shows the location of every chip on the BMOW 1 system board, color-coded by subsystem. More discussion of the layout is in this post.
  • Schematic Diagrams – The whole enchilada: detailed diagrams showing every chip, every pin, and every connection.
  • Wire List – A spreadsheet documenting every wire in the machine, its endpoints, and the order the wires were added. Essential for navigating the insane rat’s nest of wiring beneath the board. (The spreadsheet has embedded macros. Excel may warn you about this.)
  • GAL Programming Equations – Data on the various programmable logic elements used throughout BMOW 1.
  • Microcode – Source listing for the microcode that implements BMOW 1’s high-level machine instructions. Each high-level (programmer visible) instruction is implemented as a tiny program of 1 to 16 micro-instructions. The high-level instruction set that’s implemented in this microcode is a close cousin to 6502 assembly language.
  • Microcode Assembler – A PC-hosted tool that reads the microcode source listing, and generates the binary data to be programmed into the microcode ROMs. It’s a custom assembler for microcode.
  • BMOW simulator (requires the Microsoft .NET Framework 2.0 runtime) – A PC-hosted GUI-based BMOW 1 hardware simulator. Load a ROM image, single step the simulated machine, set breakpoints, view callstacks, reference source code, and much more.
  • PC Bootloader – A PC-hosted GUI tool for downloading a program to BMOW 1’s RAM and executing it.
  • Program Assembler – A PC-hosted command-line tool for assembling BMOW 1 source code into executable programs. It’s a customized version of the Acme 6502 assembler, with BMOW 1-specific extensions.
  • Software Examples – Source listings from BMOW 1 programs, including the bootloader client that runs on the BMOW 1 hardware, and audio/video demos.
  • Prototype Verilog Description – A Verilog model for an early prototype of the BMOW 1 CPU core. This is badly out of date now, and there are a couple of places where I cheated and wrote non-synthesizable code, so you couldn’t make hardware directly from this. Mainly for historical interest.
  • Modified Atari Font Map – The 128×128 pixel font map originally used for BMOW, taken from the Atari 8-bit computer. Each letter is 8×16, and there are 128 letters in the font map. The image shown here is actually 256×256 and must be reduced 50%. Also, the raw binary version of the font map, already reduced and with the PNG header stripped out.
  • 8×16 Font Map – The 128×128 pixel font map used for the final version of BMOW, adapted from an X-Windows font. Each letter is 8×16, and there are 128 letters in the font map. The image shown here is actually 256×256 and must be reduced 50%. Also, the raw binary version of the font map, already reduced and with the PNG header stripped out.
  • Microsoft BASIC for BMOW – Pagetable.com reverse-engineered this excellent, retargetable version of MSBASIC for many different 6502-based computers in 2008. I added BMOW as a new target, and it assembles using the modified ACME 6502 assembler above.

BMOW 1 Photo Gallery (click images to see high-res versions)

Also see lots more close up photos of BMOW wire-wrap here.






Homebuilt CPUs WebRing





JavaScript by Qirien Dhaela

Join the ring?

David Brooks, designer of the Simplex-III homebrew computer, has founded the Homebuilt CPUs Web Ring. 
To join, drop Dave a line, mentioning your page’s URL. It will then be added to the list. You will also need to copy this code fragment into your page.


122 comments 

122 Comments so far

  1. kurt - January 16th, 2008 8:43 pm

    you might be nuts. but in a good way.

  2. Gregg C Levine - January 16th, 2008 9:52 pm

    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.

  3. Allen Bruce - July 2nd, 2008 4:06 pm

    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.

  4. Steve - July 4th, 2008 8:49 am

    Allen: Looks quite impressive! Do you have any more details about your system on the web, beyond that photo?

  5. ragnar - February 28th, 2009 3:44 am

    Impressive work!

    I wonder what tune you are playing in the demo-video and if there is a mp3 available?

  6. Steve - February 28th, 2009 2:19 pm

    The song in the AY-3-8913 demo video is called Agent X II, by “The *genious* Tim Follin”. It’s a Spectrum ZX tune that I downloaded as part of a collection from http://bulba.untergrund.net/music_e.htm . No MP3 version, sorry.

  7. Mykel - March 1st, 2009 8:58 am

    http://taro.lool.net/Game_Music/idx_c64.html has a collection of C64 midis including Agent X II. Since the link above was down when I checked.

    Also, AMAZING!!!

  8. ragnar - March 7th, 2009 12:17 pm

    Thanks Steve, it was the “VTX, YM, etc” archive v1.2 on the site you linked (just remove the accidental “.” at the end of the URLs htm) and converted it to WAV with Audio Overload.

  9. Steve - March 7th, 2009 4:40 pm

    Fixed the Agent X II link, thanks.

  10. ynki1001 - March 12th, 2009 7:11 pm

    WOW!!!
    Just looking at it brings tears to my eyes.
    You’ve completed one of my life long goals, I just hope I’ll be able to do something like that before I die…
    You’ve got all my respect, and am Now an Internet Hero.

  11. tallwookie - March 17th, 2009 4:56 am

    OMFG! truely a labor of love.

    /kneel, /worship

  12. […] (this is the part were more than half of you think I’m crazy, nerdy, or both) In a nutshell, it’s a home made CPU. Personally I think it’s fricking awesome. […]

  13. Kw0mE - April 5th, 2009 12:12 am

    When the nuke war starts and i wanna play chess i hope your in my bunker!

  14. Jai - April 5th, 2009 11:30 pm

    Amazing stuff. How much time you spend on it?

  15. Steve - April 6th, 2009 6:10 am

    It’s been on and off since November 2007; some weeks I’m really busy and some weeks I don’t touch the computer at all. On average I’d guess I spend about 10 hours a week on it, which is a few weeknights and a Saturday afternoon.

  16. Andrew - May 27th, 2009 4:57 am

    I’d never gasped out loud until I saw that.

    Very impressive…

  17. Olaf - May 27th, 2009 10:40 pm

    Amazing! Congratulations. I bow down. I loved the 6502 for the same reason you did.

  18. TRUE CHIP TILL DEATH » Big Mess O’ Wires - May 28th, 2009 3:05 am

    […] Project Page // Share this: […]

  19. Enrique - May 28th, 2009 5:04 am

    neat work, congrats!!

  20. pepe - May 28th, 2009 6:49 am

    Incredible. This proves that computers arent magic mystery boxes and humans still know how they work 🙂

    Amazing stuff. Well done. Someone submit this to slashdot.

  21. Mikuro - May 28th, 2009 8:10 am

    This is great stuff, also makes you wonder just how impossibly complex modern computers are…

    could you post more/larger photo’s of it please? especially of the above image “gallery10.jpg”, that would make a nice wallpaper 😀

  22. Rbrooks - May 28th, 2009 11:36 am

    Very nicely done. I’m an old school 6502 poker as well.

  23. Hubris - May 28th, 2009 12:52 pm

    I love you.

  24. MNye - May 28th, 2009 1:07 pm

    Very impressive! I admire your dedication and originality.

  25. i. reilly - May 28th, 2009 3:44 pm

    thx for the ‘cant-believe-what-i-see-situation’

    🙂

    inspiring work!

    i.r.

  26. links for 2009-05-28 « Mandarine - May 28th, 2009 8:17 pm

    […] Big Mess o’ Wires » BMOW 1 A custom CPU constructed from dozens of simple logic chips. Around this foundation is built a full computer with support for a keyboard, sound, video, and external peripherals. (tags: diy hardware electronics) […]

  27. envious - May 30th, 2009 4:54 am

    dude, this happens to be my -ultimate- goal with computer science. You are seriously right up there with a figurative god.

  28. typo - May 30th, 2009 9:56 am

    Could you estimate how many transistors you used to compare em with intel cpu’s millions and billions?

    Well done anyway!

  29. El gran lío de cables a 2MHz - May 30th, 2009 1:58 pm

    […] mis felicitaciones por gran trabajo, pueden encontrar mas informacion sobre como esta creado en su pagina web. .gallery { margin: auto; } .gallery-item { float: left; margin-top: 10px; text-align: center; […]

  30. andres otondo - May 31st, 2009 10:08 am

    great job!, impressive!

  31. Pacific Tides » Handmade CPUs - May 31st, 2009 1:34 pm

    […] has been going around the blogosphere for a few days now, but I just have to say – the Big Mess o’Wires is one of the coolest hardware projects I’ve seen in a long […]

  32. […] Big Mess o’ Wires – the home-made computer Wanna build your own computer (in you garage)? Maybe you can learn something from this guy: http://www.bigmessowires.com. He made an amazing work with his BMOW 1 (Big Mess o’ Wires). […]

  33. […] P.S. Подробности можно почитать здесь и здесь. […]

  34. Thomas Dowad - June 4th, 2009 3:45 pm

    Steve…

    Cool! Nice work. I wanted to design a CPU, having worked in circuit design with MSI logic & PALs back in the ’80’s. Do I presume correctly that 3-state data allows for multiplexing (selection of registers)?

  35. Steve - June 4th, 2009 4:06 pm

    Yes about the tri-state logic. When one register’s output is disabled, it goes into a high-impedance state, allowing something else to drive the bus without creating contention.

  36. Vimlesh - June 10th, 2009 12:48 am

    I am amazed.. Awesome work indeed. How to learn microelectronics and implementing logic on circuits?

  37. Kabelsalat at PLANET BLOG - June 10th, 2009 9:15 am

    […] und jeder Menge Logikschaltkreisen sich seine eigene CPU mit Rechner dran zu basteln. Quelle bigmessowires.com Erinnert mich irgendwie an meine Anfänge mit Rechnern – der Z1013 war auch nur eine separate […]

  38. […] simplement par défi, voire par curiosité, il a décidé de pondre son propre microprocesseur, le BMOW, soit le Big Mess O’ Wires. Je suis stupéfait d’apprendre cette nouvelle, […]

  39. Computer selbstgebaut « Impressionen - June 22nd, 2009 1:34 pm

    […] Dieser Computer ist handgefertigt. Er besteht nur aus simplen Logic Chips und Kabeln. Passend ist der Name desselben: Big Mess of Wires (BMOW). […]

  40. BigDumbDinosaur - July 2nd, 2009 8:47 pm

    No wonder there’s a copper shortage! Amazing — that it actually works!

  41. Henry - July 9th, 2009 9:49 pm

    hi man,this is awesome…digital logic makes cpu…so cool!

  42. Barney - July 11th, 2009 7:24 pm

    WoahAaa! dude u r awesome.

    One question, how did u manage to minimize the electrical interference with so many wires running side by side?

  43. Suixin Zhao - July 12th, 2009 4:00 am

    Hi Steve!
    I love your system! It’s very cool, come on!

  44. Steve - July 12th, 2009 8:27 pm

    Regarding the electrical interference with many wires: it is a problem, but not a fatal one. I tried to avoid running many wires parallel to each other, preferring to run them at an angle, to minimize the crosstalk. The system speed is also pretty slow (2 MHz), which means transient noise has more time to settle out before the next clock edge. The CPU still does crash occasionally, though, which I’m guessing it a noise problem.

  45. olefowdie - July 15th, 2009 7:28 am

    I would love to build a “Big Mess O’ Wires” would you consider making a guide book to building one?

  46. […] CPU是沙子做的,经过艰难的提纯到单晶硅锭,然后再Balabala… …到一块CPU的诞生,绝对是一件高科技的事情,印象里这事没个上亿美元的投入断然是做不得的(参考咱们龙芯的投入)。我曾问过INTEL关于这方面的事,但是人家严肃的告诉我:“这是国家机密,再问拘捕你”,吓。危急时刻,美国加州S哥(Steve Chamberlin)挺身而出,他无论在什么地方,都像漆黑中的萤火虫一样,那样的鲜明,那样的出众。S哥耗时18个月,硬是用钳子和榔头土法炼钢般造出了一坨8位的CPU:BMOW(Big Mess of Wires),共耗资3000多美元,使用了1253条电线,同时放开了所有跟此项目相关的设计,配套操作系统及理念。 […]

  47. solardavegreen - July 31st, 2009 9:47 pm

    So, does this mean you could hand 1250 or so people each a length of wire with bare ends, and with a handful of chips and a football field this could be built on a Human scale? I sense a Guiness event forming…

  48. Rohit de Sa - August 29th, 2009 12:33 am

    You’re crazy, in a very smart sort of way :-D. Wow! Good job 🙂

  49. […] http://www.bigmessowires.com/bmow1/ a few seconds ago from xmpp in context […]

  50. NrDesign - November 9th, 2009 7:03 pm

    *JAWDROP*

    The name “Big Mess Of Wires” absolutely fits; I’m stunned by just looking at it! Keep up the work at your future projects! 🙂

    NrDesign

  51. CPU hecha en casa... - November 30th, 2009 10:02 am

    […] CPU hecha en casa… http://www.bigmessowires.com/bmow1/  por moan el 18:01 UTC […]

  52. Desktop Friday: BMOW « The Electronic Replicant - December 11th, 2009 10:37 pm

    […] Big Mess of Wires, or BMOW is a home brewed CPU built by Steve Chamberlin from dozens of discrete logic chips, all […]

  53. radiokonstruktor - May 31st, 2010 11:36 pm

    Молодец, я тоже над подобным работаю.

  54. Jack - June 14th, 2010 10:57 pm

    OMG. You…are…completely…crazy! But in a good way 😉

  55. artemonster - July 10th, 2010 2:20 am

    It’s amazing. man, you’ve done a great job.
    Now i’m a student at 2nd Semester (electronics engineer)
    and in a year will make something at my own like this.
    thanks for inspiration also!

  56. Andy - August 28th, 2010 3:01 pm

    WOW, that wire-wrap is ART!!!!

  57. STAS/СТАС - September 12th, 2010 11:16 am

    We in Russia 20 years ago computers were “Vector” is very similar.

  58. shoorick - October 6th, 2010 2:57 am

    incredible! =b

  59. Rodrigo - December 3rd, 2010 8:34 pm

    Incredible work !! Reminds me my ZX Spectrum days.
    You are the guy who will make computers for us after the next world war 🙂
    You said you’re not a engineer but Im sure you’re better than one 🙂
    Keep the nice work !

  60. A CPU from scratch!! - January 15th, 2011 9:04 am

    […] This is what Steve meant by “Big Mess of Wires”. Steve recently won an editor’s choice award for the BMOW at Maker Faire. Way to go, Steve! For more information and pictures of the project, visit BMOW. […]

  61. Pavel Precek - February 9th, 2011 2:40 am

    >You said you’re not a engineer but Im sure you’re better than one
    I’m signing under the above sentence.
    great job!, impressive!

  62. Anonymous - March 15th, 2011 6:58 am

    охуенно (awesome on russian).

  63. rocky - April 17th, 2011 3:59 pm

    well you’ve got yours finished :-), my 2900 slice emulation of (extended 16b) Z80 still remains a box of ic’s and reams of microcode on paper after 15 years …

    well done

  64. Anonymous - April 20th, 2011 2:30 pm

    in soviet russia, computers build you!

  65. […] or even just a can of root beer, raise it in honor of Steve. May his labors never end. Source Steve Chamberlin   var […]

  66. […] Big Mess ‘o’ Wires […]

  67. Steve - May 9th, 2011 10:27 am

    Wow. That is awesome. BTW, the chess program has the King and Queen on the wrong squares.

  68. Bwana - May 9th, 2011 12:03 pm

    Wow! What a project!

  69. Jerry - May 9th, 2011 1:24 pm

    Nice job with the computer. My Z80 project never got off the drawing board.
    BTW the chess pieces are correct. The queens always start on their own color.

  70. Steve - May 9th, 2011 4:10 pm

    Well, I just brought BMOW1 out of storage and powered it up for the first time since 2009. It still works great! Maybe I need to build a new clear acrylic case for it now… hiding the wires inside the steel case was a shame.

  71. jak - May 10th, 2011 9:34 am

    I’ve always wanted to do this!

  72. jeffocojo - May 10th, 2011 2:16 pm

    this really looks impressive ,just puttin the wraps on the chips must have been something you wish your kids had learned in public school. i used to do 6502 assembly and new all the lab volt rom and its hardware . such wasted time for me ten years to c++. at least you went for it somehow. thanks for the memorys<-pun.

  73. Jake - May 11th, 2011 2:42 am

    DUDE! You ROCK!

    That would be SO much fun to build.

    I tip my hat to ya!

    -Jake

  74. Bill Donnelly - May 11th, 2011 11:00 pm

    It’s a beautiful thing.

  75. Mike - May 12th, 2011 10:28 am

    I’ve been designing a 16-bit architecture over the past couple of weeks and took some ideas from this; it’s a very impressive project.

  76. Michael Main - May 12th, 2011 4:39 pm

    As a CS Major who can’t seem to pass Computer Architecture…this makes me gasp in true awe. Is it pipelined?

  77. Dépannage informatique - May 17th, 2011 1:41 am

    Omg what an amazing engineer ! Did you become crazy for?
    A nice job

  78. NeozOne - May 17th, 2011 1:56 am

    Good job !!

  79. Anonymous - May 25th, 2011 1:15 pm

    badass. period.

  80. Simpson_Jr - May 26th, 2011 4:32 pm

    Writing the OS must have been peanuts after achieving this.
    Wire-wound, I also haven’t seen that technique in ages.
    Must say I feel pretty lazy by buying Atmels stuff, designing hardware and programming them.

  81. Sciphy - May 29th, 2011 1:44 am

    Hi, great site. I really appreciate you documenting everything. It’s a great location to start from. I might try something similar in a couple of years, can’t quite find enough time now.
    Cheers!

  82. formation photoshop - June 5th, 2011 1:00 am

    yes, great site, and thanks for all this documentation, i m gonna use it

  83. freddy ferrer - June 7th, 2011 2:35 pm

    que tipos de ttl usaste y si me puedes dar una lista grasias

  84. jowbi.wan - August 20th, 2011 8:41 pm

    dude. this is the coolest thing i’ve ever seen.

  85. DH - August 23rd, 2011 6:15 am

    Cool CPU and system. Why are you using a 74×181 ALU, its function can be implemented with shorter propagation times by using simple gates. This has helped inspired me to continue with my CPU design, though it is 16 bit and uses only basic gate ICs, limiting the allowed components to:

    74hct00
    74hct02
    74hct04
    74hct08
    74hct32
    74hct74
    74hct154
    74hct164
    74hct244
    74hct373
    555/558
    7805
    1458
    EEPROMs
    resistors
    wire
    capacitors
    xtals

  86. DH - August 23rd, 2011 6:27 am

    @Michael Main:
    Systems architecture and and Processor Architecture are Middle School (6th through 8th grade) topics, if you did not master them then you will likely have trouble getting through the first semester of CS studies, the university level courses are covering those sub topics are to be a review (I think that most people test through them so as to save time in getting there degree).

  87. Steve - August 23rd, 2011 7:04 am

    @DH – You could replace the two 74LS181s with a couple of PALs each, or a larger number of basic 7400-series parts, yes. I didn’t realize that at the time, though, and in the end I was limited by available board space and not propagation times. In a different design, replacing the 74LS181 could well make sense.

    Systems and processor architecture in middle school? Wow. We didn’t touch any of those topics until my second year of university. Obviously I should have gone to your middle school. 🙂

    Post a link to your CPU project if you’ve got one!

  88. DH - August 23rd, 2011 7:28 am

    If I may recommend: If you ever make a second one, twisting each line with a ground connected line is an effective means to reduce cross talk (make sure to minimize capacitance [by using fine gauge wire]).

    I hope that your project gets people to begin to do these types of things more, as it seems that those interested in the core logic are becoming rarer and rarer.

    Most of the good designs come from those of us that are self educated, and not Electrical/Electronic Engineers. I am self educated in the world of CS (System Design, Processor Architecture, Software Development, and Electronic Design), Though I DOUBT that my designs will ever be considered great. Your designs on the other hand may become the topics of future CS courses.

  89. DH - August 23rd, 2011 7:31 am

    Steve:
    Now I have to put up a page on my CPU. I hope that no one minds hand drawn schematics. I will give you a link once I get a page up for that (was going to wait for it to be fully functional, but I guess it could be educational).

  90. drago - September 3rd, 2011 11:19 am

    not, it is intel 8080, made 1980-1985. in will this computer old. Respikt from poland.

  91. Peter - October 8th, 2011 1:53 pm

    Your project inspired me to try to design and build my own computer too, it sure is a lot of work, respect to you for getting yours to work, i hope i can say the same about my project in the future too.

    btw, what would you recommend for instruction fetch/decode: in microcode and using hidden general purpose registers, or hardware and using a wide instruction register (7byte wide 1opcode + 2x 24bit address)?

  92. Steve - October 9th, 2011 7:08 am

    Peter, I’m not sure I understand your question. Email me (my address is above the photo gallery) and I’ll be happy to help if I can.

  93. plombier nantes - October 14th, 2011 9:11 am

    i agree, and by the way, thanks for all this documentation

  94. Thomas - October 22nd, 2011 11:12 pm

    Wow, bulding my own computer was always my dream!

    But as i see your 2500 wirewraps i think i am not fit enough to do it 😉

    I love your project!

    TOM:-)

  95. Anonymous - October 28th, 2011 6:53 pm

    Larger photos would sure be nice.

  96. kino - March 2nd, 2012 4:44 pm

    this is the final boss project of electronics…

  97. Paolo - June 6th, 2012 6:46 am

    sei un mito !

  98. Anonymous - July 9th, 2012 11:23 am

    do you have a keword in BASIC that can display an image. so it can print “C”!!

  99. developer - July 10th, 2012 11:24 am

    i will buy this for $100,000!!!!!!!!!

  100. lckpck - September 4th, 2012 12:56 am

    very interesting and incredible! congratulations! I’m very impressed!!.

    One question, which compiler did you use to compile .v files??

    thank you a lot!!

  101. John - September 19th, 2012 12:45 pm

    This is fantastic and makes me wish my Cosmac Elf still worked.

  102. herobrine - October 25th, 2012 10:45 am

    question im half way into 1 but it wasnt thought trough very well how do i hook this up

  103. herobrine - October 25th, 2012 10:46 am

    plz respond if not i guess ill have to make my own motherboard

  104. Question-man 0288 - October 26th, 2012 8:19 am

    how much power does bmow use per power on

  105. Tain - July 17th, 2013 11:25 pm

    cool! нечего сказать!

  106. Wildfire Phoenix - August 18th, 2013 2:09 am

    Wow, I have always wanted to do something like this. I have been wanting to make my own computer since I cracked open a windows 95 computer back in early 2000.

    Huh CS in middle school, add another person to the list of people wishing that they had gone to that middle school.

    Just wondering, is there a parts list for this? Also I have been wondering could this adapted for any past and present processor or just ALU and Z80? I would like to make something like this, just on a bigger board (now where did I put that contact for that company who sells wall sized circuit boards again? just joking!)

  107. Anonymous - December 30th, 2013 9:39 pm

    Now, if you could do it with 7400 series chips, you should be able to build the same CPU with reed relays!

  108. 1_dylan - January 25th, 2014 6:17 am

    Epic computer! I’m planning on building a 16 bit CPU heavily influenced by your system but I was wandering… What are all the functions the 74LS181 provide?

  109. 1_dylan - January 25th, 2014 6:20 am

    Oh, does it support multiplication because it doesn’t look like it in function tables

  110. Steve Chamberlin - January 25th, 2014 7:20 am

    Multiplication is done in a software routine, same as it was on the old Apple II and similar 8-bit machines. It’s not fast, but it works. Check out the ‘181 datasheet for a full list of what it does, but it’s basically just addition, subtraction, AND, OR, XOR. A good example of a discrete CPU like BMOW but that’s 16-bit is http://www.timefracture.org/D16.html

  111. Micheal Johnson - February 20th, 2014 1:12 pm

    Hi!

    A few months ago I designed an 8-bit CPU from scratch. It was very basic. Currently I haven’t been able to build it yet, but it works beautifully on a simulator.

    Tonight I found your BMOW project and I must say the mess of wires is truly inspirational! Your Nibbles project has also told me that I can probably build a CPU right here and now: without having to order the parts for my 8-bit design.

  112. Steve - March 5th, 2014 2:48 am

    I saw in the comments: If you ever make a second one, twisting each line with a ground connected line is an effective means to reduce cross talk (make sure to minimize capacitance [by using fine gauge wire]).
    My question is how fine of a wire do I need, since wire wrap is so thin already. I have some transformer wire that is as thin as human hair. Should I wrap it with several coils per unit distance or medium or just a few?
    Thanks
    Steve

  113. Ra226 - January 18th, 2015 7:31 pm

    Haha, I hate to tell you, but you are, in fact, an electrical engineer 🙂

  114. rootboy - March 15th, 2017 4:54 pm

    Very nice!

    The last time that I saw something this ambitious was in the 70’s. I had run into an EE who built me a memory board for my Mattel Aquarius computer. While picking it up at his house, he showed me his project (a homegrown CPU like yours).

    Where did you get your wirewrap tools? I’m specifically looking for a wirewrap gun.

    Thanks!

  115. Steve - March 15th, 2017 5:24 pm

    I actually didn’t use a wirewrap gun – everything was done with a wirewrap hand tool. You can still find some supplies at vendors like Phoenix Enterprises, but they’re definitely getting pretty rare. It’s a dying technique.

  116. rootboy - March 15th, 2017 5:35 pm

    Sigh… I figured as much. I actually have two of them, but no bits for one of them. And a fairly respectable supply of sockets and wire. 🙂

    Just not the patience to strip all of those wires. 🙂

  117. Axel - July 19th, 2017 9:19 am

    Hello,

    How is this possible?
    *: A <- A + A; latchNZC; nextop

    Latching flags must be done a half clock cycles after the ALU operation? Otherwise there should be timing issues or is there an independent ALU flag register somewhere in GALs?

    Axel.

  118. Steve - July 19th, 2017 9:38 am

    The new N, Z, and C flag values are generated at the same time as the ALU output. All are latched at the end of the clock cycle.

  119. Axel - July 19th, 2017 11:35 am

    Hi, thanks for the info. How is this being done? I can’t see such a function in 181.
    *: A <- A + A;

    Axel.

  120. Steve - July 19th, 2017 11:56 am

    Take a look at the 74LS181 datasheet. A + A is one of the 16 arithmetic functions it can calculate.

  121. Axel - July 19th, 2017 12:26 pm

    Yep, so it is. The datasheet I looked was a little bit misleading on that matter.

    Axel.

  122. kaizenNakamoto - November 24th, 2022 9:22 pm

    Surprised that I found this so late. Coolest project ever

Leave a reply. For customer support issues, please use the Customer Support link instead of writing comments.