Wednesday, July 29, 2020

Running the Busicom software in a Spartan-6

Eight years ago I decided I wanted to learn about programmable logic: PLAs, CPLDs, and FPGAs.

About the same time, I became aware that a group of engineers and computer history buffs had gotten Intel to release the schematics for first commercially-available microprocessor: the Intel 4004 CPU. They'd also retrieved the software that drove the first commercial product that used the i4004: the Busicom 141-PF.

I decided to re-create the i4004 CPU in an FPGA.

It turns out that's a lot like learning to swim by attempting to cross the English channel. But I've never been known to shy away from a challenge.


The project has taken some odd detours, and there are still many incomplete pieces. But last weekend I was able to load a bit file into the Spartan-6 LX9 FPGA in my rebuilt Canon P170-DH calculator and let the 49 year old Busicom software run once again.

Here's a video of the calculator in action:


Yes, that's the unmodified Busicom software scanning the keyboard, calculating an addition, and printing the results. All running on a CPU that is a faithful re-coding of the Intel schematics in Verilog HDL. It's as close to the original as I could make it, given the differences in technologies.

I still have a lot to do on this project. I want to rearrange the keyboard so it more closely matches that of the Busicom calculator. The printer emulation needs some work, as does the vacuum fluorescent display I added. And I'm still planning to finish implementing the i4004 CPU using discrete components, which will use this as its I/O interface.

But first I want to savor the results of eight years of study and experimentation.

1 comment:

  1. Hi,

    sincere congratulation to this success. This gives me more motivation to continue on my plan to convert old VDF calculator ro RPNachine with some brain transplant running HP emulation. Thank you for your posts and a lot of information.
    KR
    P

    ReplyDelete