Putting It All Together
I’ve reached an exciting point in the evolution of BMOW. All of the individual bits of technology that I’ve built are now coming together, and rather than a proof-of-concept of keyboard or USB or video functions, I actually have a real computer! I took some time this week to put together a few of those pre-existing technology bits, with the goal of doing something that was actually useful. I now have a computer with a rudimentary BIOS, that can download and run the Apple II machine language monitor program over USB, using BMOW’s VGA display and keyboard for I/O. Holy cow, it practically *is* an Apple II. Here’s the monitor program running, having just performed a disassembly of itself:
I have to say, the very ordinariness of this accomplishment on a “real computer” makes it all the more exciting to me. I showed my wife, and she didn’t even understand what I was trying to demonstrate. It’s a computer running some software, so what? But when I think of the layers of abstractions built on abstractions built on abstractions that it’s taken to get to this point, it makes my head spin. Just a couple weeks ago, I was struggling with the basics of text character generation, and it’s only been six weeks since I couldn’t tell a VSYNC from a V6 and my video signal looked like a train wreck. Before that, of course, was all the time spent monkeying with the keyboard interface and the USB connection. And let’s not forget the CPU itself– those Apple II guys used a nice MOS 6502 CPU, whereas BMOW doesn’t even have a discrete CPU. All the core logic and control functions are built upon a home-designed microarchitecture that’s implemented using a small pile of dirt-simple parts, hand-wired pin-to-pin with 1000+ individual connections.
There’s a delicious irony in the way BMOW seems more and more unremarkable as it behaves more and more like any other computer that people are familiar with. Yet I’m thrilled to have gotten this far. It’s already well-surpassed my original expectations, and there’s still plenty more fun to be had working on an audio system, adding some persistent storage, and building a case, not to mention all the software (BASIC? Games? A web server?) that begs to be written.
Read 6 comments and join the conversation6 Comments so far
Leave a reply. For customer support issues, please use the Customer Support link instead of writing comments.
Excellent!
Amazing!
Well done. I’ve been following your progress via the uCHobby RSS feed and I am very impressed. This is quite a milestone.
Congratulations! 😎 Great work! 😎
I guess you’re experiencing your own personal “Soul of a New Machine” project (great book, btw)
jdr
Great to see the machine as a board full of chips with a video cable coming out! There’s something about generating video that (for me) makes this a real computer. Hope to see more soon — perhaps when you tackle fixing those “must be assembled at a certain address” problems.
I agree the addition of video makes it feel much more real. I only wish the video was a little less glitch-prone, but hopefully I can work that out.
I’ve been a bit preoccupied with the rest of my life recently, and reading “Soul of a New Machine” after it was mentioned here, so I haven’t worked on BMOW since the last update.
Probably my next steps will be to look more deeply into a few of those bugs I mentioned. After that, it will either be finding more interesting applications to make use of the video, or else audio hardware.