You won't believe what just arrived on my desk!

I'm bouncing off the walls in excitement, because the postman just delivered a package containing the most cunningly crafted device for my delectation and delight. Yes, you're right, it's...

Well, it's been a long time coming, but the postman just delivered a surprise package from Helmut and Johannes in Austria. YES! It's one of the very first physical incarnations of the virtual DIY Calculator (serial number #000002).

As you may recall, as part of our book How Computers Do Math we designed a simple 8-bit microcomputer (CPU, ROM, RAM, and Input/Output ports) and used this as the basis for our DIY Calculator (where "DIY" stands for "Do it Yourself").

The cunning thing here is that we implemented the DIY Calculator as a virtual machine that comes on the CD accompanying the book. When you power up the virtual DIY Calculator and click its buttons ... nothing happens. But wait, there's more! The idea is that the book walks the reader through the creation of a simple four-function calculator program (written in the DIY Calculator's assembly language) that makes the little rascal perform its mission in life.

Well, last year, two Austrian engineers decided to build a physical version of the virtual DIY Calculator. We'll call these two little scamps Helmut and Johannes (because these are their names). Helmut and Johannes have been working away furiously on an FPGA-based version of the DIY Calculator. Basically, they've used a low-cost LFECP10E FPGA from Lattice Semiconductor to implement the entire DIY Calculator (CPU, ROM, RAM, I/O, etc.). Furthermore, they've used the DIY Calculator CPU (along with its monitor program) in the FPGA as the embedded CPU that communicates with the host PC.

Physical DIY Calculator (Serial number #000002).
(Click this image to view a larger, more detailed version)

This is just SO COOL! You can create and test a program in the virtual world on your PC, and then download it to the physical DIY Calculator. Once the program has been downloaded, you can disconnect the physical DIY Calculator from the PC, power it down, power it up again, and the program is still there (stored in on-board Flash memory).

Just for fun, Helmut and Johannes preloaded my unit with the binary coded decimal (BCD) version of the calculator that was created by one of our readers (you can find the source code and documentation for these routines on the Programs and Rountines page on our website).

If you are interested in discovering more about the physical DIY Calculator – including detailed descriptions of the hardware and software that's gone into this project (along with source code and design files) – you can check out their Physical DIY Calculator Wiki. Meanwhile, I'm going back to play with my little beauty some more...