Home ] New Stuff ] Minix Port ] Magic-2? ] Overview ] Photo Gallery ] [ Construction ] Technical Info ] My Other Projects ] Links ]


In the beginning....

Magic-1 really began during a lunchtime discussion with Ken Sumrall at Vito's Pizza in Sunnyvale, CA sometime in the Spring of 2001.  I was complaining to Ken about how as a compiler writer I was woefully ignorant about how CPU hardware really worked.  I hadn't taken any electronics classes in college, and was only vaguely aware of what transistors, resistors and capacitors were.   Ken recalled an old series of magazine articles by Forrest Mims on building a very simple CPU from TTL parts, and suggested I read it.  Over the next few weeks, I tracked down those articles, as well as Mims' "Understanding Digital Computers" and a textbook by Albert Paul Malvino, "Digital Computer Electronics."

I read them all, and when I next had lunch with Ken at Vito's I reported back that it all seemed much clearer now - so much so that I thought I could even build a CPU myself.  Then Ken said, "well, why don't you?".

Why not, indeed?

And so the Magic-1 project began.

Using the 4-bit CPU designs in the Mims and Malvino books as a starting point, over the summer of 2001 I gradually worked out the basic shape of my Magic architecture.  All of my design and sketch work was done by hand on graph paper and kept in a binder.  However, by the Fall of 2001 it was clear to me that I needed some better way of organizing my work.  I decided to set up a development website to hold the project.  That way, I could refer to it anywhere and any time.  That decision turned out to be one of my better ones, and this website was born.

Construction Photo Diaries

Since the beginning of this web site, I've been frequently updating development diaries.  The ones mostly dealing with design may be found under Technical Info, and are almost entirely words.  Once I started construction, though, I started putting together photo diaries to document my progress.  They are broken down by task, and have some temporal overlap.  Here they are:

bulletBackplane & card cage
bulletFront Panel Logic card
bulletTemporary front panel switch/LED assembly
bulletMemory card
bulletDevice card
bulletControl Card
bulletRegister/ALU card
bulletHardware bring-up
bulletEnclosure and front panel assembly
bulletSoftware bring-up


I've generated a large amount of material on Magic-1 - most of it pretty uninteresting.  To help locate the interesting parts, here is a timeline of the project with links to supporting material:

bullet12-6-2001: I begin a running development diary, and start off with an embarrassingly optimistic schedule.
bullet12-18-2001: Do basic design of fault/interrupt mechanism, and make mistake that eventually becomes the last bug to fix before Magic-1 comes alive two-and-a-half years later.
bullet12-29-2001: Complete first rev. of the microcode.
bullet1-6-2002: Magic-1 simulator complete enough to trace call/return sequence.
bullet1-8-2002: Simulate Fibonacci function and flesh out software conventions
bullet1-13-2002: Magic-1 assembler (qas) takes shape
bullet1-18-2002: Big-endian vs. little-endian
bullet2-28-2002: Page fault mechanism works in simulator
bullet3-9-2002: Decide on construction technique: wire-wrap prototype boards
bullet6-3-2002: During LCC retargeting, decide to significantly change Magic instruction set architecture
bullet6-4-2002: Compile Fibonacci program in C to Magic assembly
bullet6-22-2002: Move to split code and data spaces
bullet6-25-2002: Design context switch to work well with Minix operating system
bullet7-12-2002: Complete microcode rewrite
bullet8-13-2002: Drop support for rotate instructions
bullet9-11-2002: Gil Smith give me basic electronics lesson, as well as a wire-wrap gun & supplies
bullet9-22-2002: Buy card cage on eBay and begin construction [pictures]
bulletFall 2002: During a Vito's lunch, I ask Ken Sumrall how to know what value resistors to use.  He introduces me to Ohm's Law.
bullet3-30-2003: Inspired by John Doran's D16/M, complete ALU/Register card schematics
bullet4-13-2003: Complete control card schematics
bullet4-14-2003: Thoughts on front panel
bullet5-3-2003: First rev of schematics complete
bullet5-6-2003: Move build environment from Linux to Windows
bullet5-16-2003: Thoughts on new Magic-1 simulator
bullet5-27-2003: Fibonacci runs on new simulator
bullet6-3-2003: New assembler functional
bullet6-21-2003: Hit 100% coverage on Magic architectural validation test suite
bullet6-23-2003: Alistair Roe emails with thoughts on an enclosure for Magic-1
bullet8-3-2003: Retarget LCC C compiler to Magic & create retargeting notes
bullet8-10-2003: On my birthday, C version of Fibonacci runs in simulator
bullet8-27-2003: David Conroy teaches me about signal integrity
bullet9-18-2003: Decide to use cut-strip-wrap wire-wrapping technique
bullet1-3-2004: Design complete, construction begins
bullet1-18-2004: Magic-1's heart beats for the first time [pictures]
bullet1-26-2004: Front panel logic card complete, [pictures]
bullet2-9-2004: Memory card complete, [pictures]
bullet2-20-2004: EPROM daughter card complete, [pictures]
bullet2-26-2004: Device card complete, [pictures]
bullet3-7-2004: Microcode sequencer comes to life
bullet3-9-2004: First instruction executed
bullet3-19-2004: Control card complete, [pictures]
bullet4-8-2004: Premature bringup attempt
bullet4-12-2004: ALU/Register card complete, [pictures]
bullet4-12-2004: Bring-up attempt - failure!
bullet4-13-2004: Success! Magic-1 runs Fibonacci, [video]
bullet4-25-2004: Dave Conroy debugging session finds ungrounded memory chip
bullet5-3-2005: Magic-1 talks
bullet5-8-2004: Sieve of Erasthones benchmark runs
bullet5-16-2004: IDE interface comes alive; Alistair Roe's enclosure concept
bullet7-23-2004: Basic bringup complete
bullet9-12-2004: User-mode programs work; telnet access to Magic-1
bullet9-15-2004: Dhrystone benchmark runs
bullet9-22-2004: fork() implemented using copy-on-write
bullet10-23-2004: Magic-1's Dhrystone score hits 384 (0.25 MIPS)
bullet10-31-2004: Colossal Cave Adventure runs
bullet4-9-2005: Alistair Roe's enclosure and front panel arrives on doorstep
bullet5-13-2005: Magic-1 is hardware complete.