I love embedded IoT development and when a colleague asked if I’d be interested in working on cloud-enabling an Altair 8800 emulator running on Azure Sphere then I seized the opportunity. I’m fascinated by tech and retro computing and this project combined both interests and hopefully, it will inspire you to fire up this project, learn about the past and connect to the future.
The MITS Altair 8800 was built on the Intel 8080. The Intel 8080 was the second 8-bit microprocessor manufactured by Intel, clocked at 2MHz, with a 16-bit address bus to access a whopping 64 KB of RAM. This was back in 1974, yes, that’s 47 years ago. The Altair 8800 is considered to be the computer that sparked the PC revolution and kick-started Microsoft and Apple.
You can learn more about the Altair at https://en.wikipedia.org/wiki/Altair_8800.
Altair 8800 image attribution: File:Altair 8800, Smithsonian Museum.jpg - Wikimedia Commons
The first release of the Altair 8800 was programmed by flipping switches, then came paper tape readers to load apps, monitors and keyboards, and floppy disk drive storage, revolutionary at the time. The first programming language for the machine was Altair BASIC, the program written by Bill Gates and Paul Allen, and Microsoft’s first product.
Interest in the Altair 8800 is not new and there are several implementations of the Open-Source Altair 8800 emulator running on various platforms, and if you are keen, you can even buy an Altair 8800 clone. The Altair 8800 running on Azure Sphere builds on Open-Source projects and brings with it something unique, which is to modernize and cloud-enable the Altair. Bringing 21st century cloud technologies to a computer generation that predates the internet.
The focus of Azure Sphere is secure IoT by design and by default. The cloud-enabled Altair 8800 emulator running on Azure Sphere inherits all the platform security goodness. Not only was security key to the project, but the goal was to push the bounds of Azure Sphere, squeezing out all the platforms’ capabilities to generate interesting relevant patterns applicable for more day-to-day IoT scenarios.
Introducing the Cloud-Enabled Altair 8800 on Azure Sphere
Say hello to Altair 8800 on Azure Sphere, you can get started with just an Azure Sphere. Or, for a more authentic Altair experience with the Avnet Azure Sphere Starter Kit, you can use MikroE Click boards along with their soon-to-be-available “MikroE Altair 8800 Retro” click board. For the more adventurous, you can build your own Altair 8800 Front Panel, the Open-Source Hardware design builds on the design by Daniel Karling.
The image below is the Altair Front Panel connected to the Seeed Studio Azure Sphere RDB, the Front Panel can also be connected to the Avnet Azure Sphere Starter Kit.
There are two Altair Click Panel configurations for the Avnet Starter Kit.
The MikroE Altair 8800 Retro Click
The Mikro 4x4 key and 8x8 LED Clicks
The Azure Sphere is running an Open-Source Intel 8080 emulator, and on top of the emulator, we are layering Altair BASIC and CP/M. Yes, we are running the original Intel 8080 binaries on top of the Intel 8080 CPU emulator, now that is taking backward compatibility to the extreme. On CPM there is support for Assembler, BASIC, and C. You can edit Assembled and C source code with the Word-Master text editor.
The Altair 8800 is integrated with Azure IoT Central, Static Web Apps, and an Azure Virtual Machine running the Mosquitto MQTT broker plus the Altair 8800 Remote Virtual File System.
The solution is connected using MQTT services. The Intel 8080 CPU emulator terminal IO is redirected over MQTT as is the Virtual Disk File System. You access the Altair 8800 emulator via the MQTT browser-based “Web Terminal”, so you can access the Altair emulator securely from anywhere given the right credentials.
The Altair 8800 emulator
The Altair 8800 emulator runs across all three of the Azure Sphere custom app cores. Running on the Cortex A7 is the Altair emulator, plus communications stack (MQTT and Azure IoT C SDK).
Running on one of the Cortex M4 real-time cores is a “Least Recently Used” Virtual Disk cache, the significantly improves the performance of the remote virtual disk file system and is a pattern applicable to more day-to-day IoT apps requiring data caches.
On the second M4 core runs the “Environment sensor” app providing real-time temperature and pressure readings that can be read by Altair BASIC applications. So not only is the emulator backward compatible, but it is also forward-looking and able to access IoT sensors never dreamed of when the Altair 8800 was invented.
Build your own Cloud-Enabled Altair 8800
The project is Open Source, the software and hardware design is located on GitHub at Azure Sphere Cloud Enabled Altair 8800, feedback and contributions are very welcome.
The project is fully documented on the project wiki, again, contributions to the documentation are welcome.
We hope you enjoy this project as much as we enjoyed creating it. The project brings together the old and new and through it there is the opportunity to learn more about Azure Sphere, Azure Cloud Services, IoT patterns and will hopefully stir creative juices.
Please leave comments and project contributions are most welcome.
Be sure to leave comments here or on the Altair 8800 on Azure Sphere GitHub repo.
Dave Glover, Cloud Developer Advocate based in Sydney Australia, with a focus on IoT and Azure Sphere. I publish samples on my GitHub http://github.com/gloveboxes.