I ported an 8080 emulator customized for running Altair 8K BASIC to the PicoCalc

What I’ve done is basically made a handheld Altair BASIC machine, using a PicoCalc, an i8080 emulator that I forked on github, and a mainline code I wrote to customize the emulator for running Altair 8K BASIC.

The emulator customizations:

  1. I emulate a cassette tape in a file on the PicoCalc SD card, so CSAVE/CLOAD and their variants work for saving and loading programs and data.
  2. I reverse the sense of the shift key for alpha characters to make it easy to enter BASIC programs which requires all upper case keywords.
  3. I added the ability to source in any text file stored under the /Altair directory on the SD card. This makes it easy to edit your BASIC programs on another computer with a modern enditor, and then source them in to BASIC.
  4. I added special ctrl keys to : rewind the cassette tape, move to the end of the tape, and to force a hardware 8080 reset.

I’ve tested it and it runs 8K BASIC v3.2 and V4.0. Here is a link to my project on github 8080ForAltairBasic.

I don’t distribute the actual Altair BASIC binaries, however I’ve used another github project of mine: decodeAltairTapes to convert my cassette tape copy of 8K BASIC to a .bin file.

6 Likes

I’ve decided to add some enhancements. One thing is, I have the code so it builds and runs for either a PicoCalc, or MacOS. (Linux soon). I also have added a web interface with a mockup of an altair front panel… my plan is to make an active front panel for the “machine”. Also I’ve thought more and the code as is could be useful to run any altair program, and if it uses ports 6/7 for the cassette tape, that should work since the current version of my tape emulation is not BASIC specific.