Last month, I built the SBC6800 single board computer.
SBC6800 was designed and programmed by Tetsuya Suzuki, the author of the Japanese book:『モトローラ 6800 伝説』(“The Legends of Motorola 6800”). In fact, I read this book before building the SBC6800. So, I will write a bit about the book first.
***
The book starts by depicting a historic electronics shop in Akihabara, where the author finds that some vintage chips, including the original Motorola 6800, were still in stock. He purchases a few of them.
He outlines the birth and early history of the microprocessors in the 70’s (“4004” - “8080” - “6800”), moving on to several computer kits that featured Motorola's first 8bit processor (Altair 680, SWTPC 6800, and Sphere), and then to a couple of early personal computers in Japan as well: Hitachi Basic Master L2 (6800) and Fujitsu FM-8 (6809). This book covers several notable 6800 software, such as VTL, Tiny Basic, and Robert Uiterwyk’s Micro Basic. Also a parallel computing project developed by the researchers of the universities in Japan is described, where a cluster of MC6800 processors was used as a processor array.
All the chapters of this book include a lot of pictures from the documents and magazines, or of the actual hardware, of those days. You might be familiar with them. When you look closely at the pictures of inside of the hardware, you can find the Motorola product numbers printed on the chips.
The highlight of this book is, however, development of his own single board computers. He designs the SBC6800 and the SBC6809, using MC6800 and MC6809 processors, respectively (his blog reveals the chronological record of development). Each of these SBCs uses a minimum set of chips—an MPU (MC6800/6809), a 6850 ACIA, a 2764 EPROM, a 6264 SRAM, and a few clock/glue logic chips. Thanks to the limited number of chips, these SBCs fit within a 3 x 4 inch PCB, which can be ordered at PCB fabs at the lowest price.
Next, the author develops a modified version of Mikbug (the system monitor program originally developed by Motorola), as the firmware for SBC6800. According to him, the 6850 ACIA was not in production yet when the original Mikbug was written, and that was why the 6820 PIA was specified in Mikbug for serial communication. He carefully rewrites the I/O routines so that the code will drive the 6850 on his SBC, instead of the 6820, without altering the major entry addresses from the original Mikbug.
***
As soon as I finished the book, I ordered the PCB and some of the vintage chips for the SBC6800. Waiting for the components to arrive, I installed the 6800 cross-assembler on my Mac and downloaded the source code of his modified Mikbug. After adjusting some syntax differences (for example, I needed to type ‘STAA 0,X’, instead of ’STA A X’ as printed in the original Mikbug source code), the source code passed the assembler and the S-format file was generated. [Note: the Mikbug S-format file is provided by the author in SBC6800 data pack]
Finally, the vintage chips arrived. I built my SBC6800, burned the Mikbug into an EPROM, connected the serial port to my Mac, and then turned on the SBC. The glorious prompt from Mikbug:
was printed on the terminal window. The first program that I loaded, “Hello, world,” successfully ran on the vintage chip!
As of writing this, information necessary to build the SBCs is available only in Japanese. Google Translate might help. If not, please ask me. The good news is that the required components can be ordered from US, as I already did. Probably the components are available also in some other regions where online/vintage electronics suppliers, such as Mouser and eBay, are accessible.
If you speak Japanese, I strongly recommend reading the book first, which will increase your excitement when you build and run the SBCs. Or, the book will be interesting and fun on its own, if you dare not solder electronic components.
I will enjoy retroprogramming on these small SBCs, for the next couple of months, at least.
Book:『モトローラ 6800 伝説』Rutles (Publisher) | Amazon Japan
SBC6800 Technical Doc (pdf)
SBC6800 Data Pack (zip)