Title: Altair 8800 Intro
Date: October 20, 2018
Tags: hardware altair
========================================

Last year, I got intrigued by the MITS Altair 8800.  I actually wasn't aware of
these computers before seeing one in a video[0] by LGR[1].  I was immediately
hooked by the lights and switches of the front panel.

I grew up playing games on a Commodore 64 but by the time I was old enough to be
interested in how computers worked and programming them, I had progressed
through a 286 and on to a 486.  There I learned to program using QBASIC skipping
the BASIC environments and programming opportunities that came before.

With the state of modern computers, I was immediately drawn to the Altair's
total simplicity.  No OS, no memory management, no BIOS, nothing but memory and
a CPU with switches for input and lights for output.  That people in the 70's
started with such a basic home computer was astounding.


Altair 8800[2]
Image from Wikimedia.org[3]


I picked up an Altair clone[4] to get the full effect of the front panel.  An
emulator like SIMH[5] just wasn't going to do.  I watched the video series[6]
about the Altair demonstrated on the Altair clone several times before my own
arrived.  The series, by the clone's creator Mike Douglas, is great.  It not
only shows the features of the clone, but walks through the history of the
Altair 8800 from front panel programs, to boot loaders, to various versions of
BASIC, to monitor ROMs, to programming environments, to OSes like CP/M and
Altair DOS.  It was a great way to deepen my understanding of what a BIOS is and
what OS's provide etc. even in today's computers.  Seeing how it all evolved on
a single piece of hardware really helped illustrate the layers of abstraction
being provided and why.

Another great aspect of the Altair 8800 and of computers from that era, is that
the documentation is so amazingly comprehensive.  The documentation they gave
you told you everything about how the machine works.  From CPU instructions
including execution time, all the way down to circuit diagrams.  I am pretty
sure there is nothing about an Altair 8800 and it's Intel 8080 CPU that you
can't know.  It helps that the Altair 8800 was also sold as a kit so you had to
know what components went into it.  Many home computers of the day were
available as kits.


The simplicity and abundant documentation of the Altair makes it an appealing
system for learning assembly programming.  Something I have never gotten to on
an x86 system and am too intimidated by on a modern x86_64 protected mode
computers of today.  With the Altair, I have access to CPU instruction
documentation, 8080 assembly books from the time, and direct access to all of
the hardware (including the clone's emulated expansion boards) with no OS or
anything else in the way.  I decided to start where early adopters in the 70's
would have had to start:  Writing CPU instructions on paper, hand assembling to
machine code, and entering the program into the Altair via the input switches on
the front panel.  I plan to eventually work my way up through the progression of
time to assembly, BASIC, MITS Programming System, and CP/M with whatever
languages I can find.


[0] https://www.youtube.com/watch?v=ALgxTCEgqqw
[1] https://www.youtube.com/channel/UCLx053rWZxCiYWsBETgdKrQ
[2] gopher://kagu-tsuchi.com:70/I/blog/images/800px-Altair_8800_at_the_Computer_History_Museum,_cropped.jpg
[3] https://commons.wikimedia.org/wiki/File:Altair_8800_at_the_Computer_History_Museum,_cropped.jpg
[4] http://altairclone.com
[5] http://simh.trailing-edge.com/
[6] https://www.youtube.com/playlist?list=PLB3mwSROoJ4KLWM8KwK0cD1dhX35wILBj