Hardware
       
 (TXT) 2018-10-27: 8080 PRNG
       I decided that my first assembly program on my Altair would be a Pseudo-Random
       Number Generator (well, the first after doing 16 bit multiplication using
       iterative addition, but that's not as interesting to talk about).
       
 (TXT) 2018-11-21: 8080 PRNG Part 2
       Before moving on to the next program (which still doesn't work right), I'll dig
       into the Xorshift PRNG, explain how it works and give a little overview of 8080
       assembly programming.
       
 (TXT) 2018-11-27: 8080 RTC Timer
       The next thing I was interested in learning on the Altair was hardware
       interaction and dealing with interrupts.  The Altair clone has the 88-VI-RTC
       included which is a Vector Interrupt board and Real Time Clock.
       
 (TXT) 2018-12-08: 8080 IO - echo
       Time to take a leap forward in technology and human-computer interaction.  I'm
       allowing myself to use a terminal to talk to the Altair.  A couple of
       implementations of echo demonstrate serial IO.
       
 (TXT) 2018-12-21: 8080 IO string echo
       The echo we're used to is a program that takes a string then writes the whole
       string back out.  We don't need to invoke another program so we can skip that
       part and just modify our echo program to work on strings instead of characters.
       
 (TXT) 2019-01-06: Altair Network Environment
       After getting the WiFi modem working, the next step was to write a more useful
       client for using it.  I wanted to remove the need to send commands to the modem
       directly and allow for some processing of data coming back.  I ended up with a
       lot more.
       
 (TXT) 2019-11-24: Altair Boot Loader
       Entering everything via the front panel was going to get overly tedious very
       quickly.  Early on, boot loaders were produced that would bootstrap more complex
       programs read from paper tape, cassette, and eventually floppy disk.
       
 (TXT) 2019-12-08: Altair Monitor PROMs
       The availability of teletypes and terminals allowed for a vast improvement of
       human/computer interaction over front panel switches.  Monitor programs ranged
       in complexity from simple boot loaders to development environments.
       
 (TXT) 2020-02-01: Altair Assembler Part 1
       As I keep complaining, it's getting harder and harder to hand assemble
       everything.  It's error prone and tedious.  An assembler can handle a lot of the
       work for me so I'm going to try to write one.
       
 (TXT) 2020-07-26: Altair Assembler Part 2
       Writing an assembler that is a far bigger program than I've written previously
       has exposed some problems in my development style and workflow that I've had to
       overcome.
       
 (TXT) 2020-11-17: Altair Assembler Part 3
       I had intended to write a series of posts documenting the process of writing my
       assembler but ended up spending my available time writing the assembler.
       
 (TXT) 2020-11-29: Altair Assembler Part 4
       After completing the hand assembled assembler, the next step was to convert the
       code into the assembly that the assembler will be able to assemble for me.  The
       process revealed some bugs and missing features.
       
 (TXT) 2020-12-13: Debug Diversion
       As I was finishing up my assembler, I knew I was going to need a way to save
       assembled programs off the Altair so I starting working on a new bootloader-type
       program.  Writing, assembling, and testing revealed a new problem of trying to
       debug programs that I don't have the hand assembled version of.
       
 (TXT) 2021-02-19: Altair OS Part 1
       After several project false starts, I finally settled on my next Altair project.
       Spoiler: it's an OS.
       
 (TXT) 2021-03-27: Altair OS Part 2
       To get started, I had to answer some basic design questions.  There are a couple
       ways of handling things in an OS.