From PDPs to Connection Machines, the Hackaday crowd are big fans of blinkenlights. While this project isn’t an old CPU, RAM, ROM, and an S-100 bus wrapped up in a fancy enclosure, it is a great recreation of the Altair 8800, the historic kit computer that supposedly launched the microcomputer revolution.
[Justin] says his project is just another Altair 8800 clone, but this one is cut down to the size of an Arduino shield. This is in stark contrast to other Altair recreations, whether they are modern PCs stuffed in an old case, modern replicas, or a board that has the same functionality using chunky toggle switches.
On board [Justin]’s pocket-sized Altair are a few LEDs, some DIP switches, and an octet of spring-loaded dual throw switches that wouldn’t look out of place in a 40-year old computer.
This shield targets the Arduino Due rather than the Mega, but only because the Due performs better running an Altair simulation. Everything is there, and a serial terminal is available ready to run BASIC or any other ancient OS.
I love vintage computers, and enjoy working on them. Emulating them is almost as exciting, and this shield is very tempting since I’ve never really found a use for the Due otherwise.
Despite this, when it comes to very old microcomputers like the Altair 8800 I’m a bit confused. I know you can set binary inputs from switches, and get binary output from the indicator lamps, but how useful practical was it really? Just adding a few numbers takes longer than doing it on paper, and multiplying or dividing even more so. I generally assume that these sorts of microcomputers were novelties or hobby projects, like my impractical homebrew CPU project.
Can anyone from this era, or closer to it, provide some insight?
With a bit of memory and a serial terminal (ASR-33 or, dream of dreams, a decwriter or even a televideo), you had a decent general purpose machine. These went primarily to hobbyists, back in the day, but the base configuration often got upgraded. The front panel switches might be used to enter a bootstrap loader if a paper tape reader or more advanced storage was available, much like when starting up a PDP-8.
I’ve never seen one with a terminal or tape reader. That’d make it a lot more practical, certainly.
Thank you.
The switches were not for continues use. They were a debugging tool in an age where JTAG did nog exist. And you needed some way to get a bootloader in ram without an expensive rom chip :)
Some years ago I read about an attorney who was persuaded to change from an Altair 8800 (his office computer) to MS Windows (unfortunately I don’t have the link anymore). Other users extended their Altair with a Floppy and CP/M which points out that the Altair was not a toy. Here a video about CP/M on Altair:
https://www.youtube.com/watch?v=YQNHg1XuFR4
CP/M and a display?
I’m more ignorant on these things than I realized. That’s very impressive for such on old piece of hardware.
The main purpose was to make sure that you had loaded the bootstrap program correctly. That was the program that allowed you to load programs. That function is in the BIOS now. You could step through the memory.
The other use was during debugging to determine register and memory values at break points you place in the code. Would also show you whether the system had “locked up.
It was the beginning. It allowed you to do something with the computer without spending more money. It had only 256 bytes of RAM, so you couldn’t do much with it as is anyway.
For most of the early buyers, “having a computer” was the important thing. And here it was, expensive but way cheaper than the alternatives. You could get your hands on a computer, and learn about them by hands on experience.
I wanted a computer in 1969, no reason other than it was cool. Relatively few people had access to computers, we had no real idea of what or how to use them. If we hadn’t ben there, to buy when the home computers hit, it would be a whole different story. Altair would have sold a few, and nothing more would have happened. But there was a market, so it bloomed, the early buyers just playing with them as toys, which kept things going while the computers got good enough to use for practical purposes.
People did a lot with those first Altairs, and from that experience they wrote the better software and built the better hardware..
The Altair could have had monitor in ROM instead of the complicated font panel, but then owners would have needed a terminal of some kind, expensive. The next step were video boards, and those came relatively fast. So soon after the front panels were missing from home computers, their role no longer needed. But they helped bootstrap things, the same way the front panel could be used to enter a small loader that allowed a longer program to be laded from paper tape or cassette.
I didn’t get a computer until 1979, which had a hex keyboard and readout. I did nothing “useful” with it, but I learned about programming by making mall programs.
Michael
Back in my youth, around 1983, I worked as a technician for a computer company that made peripherals for all sorts of “industrial” computers of that era. We used some DATA GENERAL “NOVA” series computers for some of the automated testing. These computers had ONLY magnetic core memory and the test programs were loaded from paper-tape but there was a dumb-terminal attached as well. The NOVA’s we used were prone to getting their memory blown away (I never knew why), so when that happened, you had to “fat-finger” in about 30 bytes of “bootloader” code using the front panel thumb-switches to set the address and data, then push the momentary toggle-switch to “program” the data into the designated address. I believe there was an address auto-increment, so you could just change the data and press the “program” toggle-switch for each sequential address thereafter.
So, that’s what all those toggle switches and LED’s were for, rudimentary programming. Not much different in concept than computers of “now”, just a different method for getting the startup code into the memory.
Peace and blessings.
“Because it performs better” paragraph is funny. A 84MHz 32-bit cpu is strugglung to emulate a 2MHz 8-bit one. is the emulator also written in BASIC?
the ATMega on the mega is 8-bit running at about 8/16MHz (IIRC) where the Due is the full ARM cortex you are talking about.
From the project author –
“Since there are two different pinouts for the Arduino MEGA and the Due, I could only create a PCB for one or the other. Since the Due can simulate the Altair 8800 with better performance, I decided to target that system for my project.”
There is no mention of the emulated speed compared to the original so I would assume that the emulation is faster than the original. It seems the Due (32-bit ARM, 84MHz) was simply chosen because it’s faster and not because the MEGA (8-bit ATmega2560, 16MHz) was struggling to emulate. This is just a guess though as it’s isn’t stated.
Speaking of Megas and Dues…I’m not certain where the Mega fits in Arduino’s lineup now, given that a Mega costs more than a Due. Yet the Due is 3.3V (which I’m using increasingly often), clocks 10x faster, and is 32 bit.
What use cases make sense for a Mega and not a Due?
You can power Mega from 3.3V too. Besides, there are other microcontrollers than those used in Arduino. And if you are not going to use Arduino ecosystem for better performance, then 8-bit micro is much easier to setup and use. And you can replace Atmel offerings with cheaper PICs…
Let me say this: I hate Arduino. Its HAL is very slow and Arduino code is often messy and difficult to port to “real” C/C++ code, either for Atmel chips or other microcontrollers. Arduino is like Windows: it makes everything too easy and hides everything. It may be nice for quick prototypes and one-offs, but I want to do things the right way even if I’m not making a commercial product or publishing the code on github.
And Arduino hardware sucks when compared to alternatives. For 8-bit stuff, PICs are awesome and have good community support, but STM8s are the cheapest uCs out there (not counting undocumented chinese stuff) and are actually usable with either ST’s HAL or direct register manipulation. No, they don’t have GCC and a big community, but they’re cheap and have lots of interesting peripherals and features (including IrDA and hardware rotary encoder support). If you don’t bother using SDCC and flipping bits in registers, they’re the best choice.
On the other hand, ST’s ARM chips have very good community support and an excellent HAL (opencm3) which supports other microcontrollers too. If you can’t live without that slow digitalWrite, there are also Arduino cores for STM32s, but what’s the point in changing uC and still using Arduino?
If you want to make stuff quickly and easily, use AVRs and Arduino. If you want to make stuff cheaply the right way, use STM8s and SDCC. If you want to make stuff the right way but keep Arduino compatibility for noobs, you can still use AVRs but ditch Arduino. The Due’s incomplete libraries are yet another reason to stay away from this hacked version of Processing.
The Due is a broken promise. The USB host was never actually implemented, and the last time I checked half the libraries weren’t compatible. Even the serial library was barely functional.
I’d say the Mega 2560 fits in as a sort of legacy system at this point. Most shields and libraries support it (more than do the Due), and it’s great for when you need more IO than an Uno. It’s not as if you’re tapping the ARM Cortex’s full potential with the Arduino software anyway.
> Mega costs more than a Due.
Clone megas are all over ebay and amazon, and they’re cheaper than the genuine Dues. Opinions surely vary but personally I don’t feel the least bit ashamed for using Chinese clones, even if they have the ‘made in Italy’ left on the silkscreen. I’ve never had a problem with them, and I’ve used at least 100 by now? They’re my bread and butter.
> What use cases make sense for a Mega and not a Due?
Use a Mega when you need 5V logic and a few lines of code to do something trivial.
Use a Due when using 3.3v logic isn’t prohibitive, and/or when your project is doing some serious number crunching.
I’ve been looking for something like this for a while, and would love to get my hands on one.
Z80 olduino. You’re welcome. That being said, my 1802 membership card is still a box full of parts because I’m procrastinating on 200 or so solder joints.
This should be a lot more fun on a bus or a plane than a full size Altair. ;-)
===Jac
How can I get the full build instructions for this tiny Altair Emulation?
Hopefully to make sure it’s historically accurate, you have a bootleg copy of basic running on it.
So I know the shield can’t do this, but there was an astounding demo in April 1975 at the HomeBrew computer meeting where Steve Dompier (who actually flew to Albuquerque New Mexico to personally pick up the Altair he purchased) actually wrote a program to play music through RFI interference on an AM radio. Interestingly enough the other song “Daisy” was the first song played on a computer at Bell Labs about a decade earlier. See the URL below.
http://kevindriscoll.org/projects/ccswg2012/fool_on_a_hill.html
No; but THIS little project can! http://www.sunrise-ev.com/8080.htm This is my latest retrocomputer project. It’s a real 8080 microcomputer in an Altoids tin. :-)