Big Mess o’ Wires


A home-built CPU, and other messy electronics adventures

Downloads

Schematics, tools, and the kitchen sink. Found a bug or design flaw? I want to hear about it!

BMOW 1

This covers virtually everything there is to know about the workings of BMOW 1. The true masochist could build a working BMOW 1 clone from these documents.

  • 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.

13 Comments so far

  1. deiff April 18th, 2009 3:30 pm

    Steve, will you be posting your original verilog description also?

  2. Steve April 18th, 2009 4:12 pm

    Sure, I’ll post it, but it’s pretty far out of date with respect to the actual hardware. I think there are a couple of non-synthesizable constructs used too.

  3. Steve April 18th, 2009 5:35 pm

    I posted the Verilog files, but I’m afraid they’re a bit of a mess. I no longer have the microcode ROM images that date from the time of the Verilog model, and I think enough hardware details changed since then that the ROMs I posted may not be compatible with the Verilog hardware simulation. I also included the source code for test program I used to exercise the hardware, and an assembled version of the test, but I’m not sure they actually match. Bottom line: look at the .v files to see what I was thinking, but don’t be surprised if it fails horribly when you try to run it.

  4. deiff April 18th, 2009 10:53 pm

    Great, thanks. Actually the .v files are enough to see how you initially designed it.

  5. Mac May 28th, 2009 6:47 am

    Congrats on your project! I was wondering: will you release an electronic (PDF?) version of your book? It seemed really interesting, visually speaking…

  6. Mr. Momoto May 28th, 2009 11:03 am

    Three Words: BMOW Desktop Wallpaper.

  7. McGuywer May 29th, 2009 12:22 am

    Great work!

    Best of luck for today at the fair!

  8. Robert Greenstreet May 31st, 2009 3:02 pm

    What you’ve done is wonderful. It does my heart good to see that there are still people interested in homebrew experimentation and creation. Wire wrap! Awesome! Congratulations and thank you for letting us share in what you’ve accomplished. Bravo!

  9. Anonymous June 3rd, 2009 6:47 am

    Классный комп, хочу такой.

  10. ghost July 12th, 2009 10:15 am

    dude,you’re good,when bmow2 come out?

  11. 锋 July 13th, 2009 10:38 pm

    你好!

  12. KK July 14th, 2009 7:44 am

    简直就是绝了,你真尿性!

  13. sosli October 18th, 2009 2:19 am

    太牛b了!!niubility!!!crazy!i love it!

Leave a reply. Comments may take a few minutes to appear.


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'll need to copy this code fragment into your page.