
ALTAIR 8800 micro Users Manual
© Briel Computers 2010 page 10
Writing an emulator for a CPU is a very difficult process if you’ve never written an emulator and you have very
little programming experience on the CPU you are emulating. My first step was to learn about a CPU that I
hadn’t used in 20 years. Many CPU’s share similar features such as accessing memory, having registers to work
with, math functions, ability to call routines, jump to memory locations, etc. It wasn’t long before I had a good
handle on the CPU and how it functioned. The hardware is a simple design. Using the Atmel AVR family
microcontroller was a simple choice. It is RISC based and many of the instructions only require one clock cycle
to perform. The heart of the code simply reads a memory location OP instruction and handles that instruction
exactly like the 8080 would. Some instructions were almost directly compatible to the Atmel instruction set
making emulation easy. Other instructions were much more difficult and required more code to interpret the
command.
Single step introduced a whole other problem. Not only does the microcontroller emulate the instruction, it
breaks it down into steps. As the original Altair single-steps through code, it does so one section of the
instruction at a time. For example, a jump to another address command first gets the opcode, and then on the
next step it fetches the low order byte of the address it is going to jump to. On the final step, it grabs the high
order byte. The next step will place the CPU at the new address.
With the core of the CPU and front panel emulation complete, the built on terminal section received its features.
The terminal section is from the Briel Computers PockeTerm with a lot of changes. The addition of an SD card
slot gives the ability to load and store programs and memory.
SD card slot on Altair 8800 micro
The SD card has the following features and conditions:
•Cards work with FAT16 or FAT32 only, no NTSF
•8.3 filename format, no using long names
•Root directory access only, no reading/writing to subdirectories
•Micro-SD cards can be used with an adapter
•Cards must not be removed while the system is on
The purpose of the SD card is to store and load BASIC, complete memory including BASIC and firmware
updates. The card was not designed to load disk operating systems and other such means of storage.
Modifications may be possible to do this in the future but not at this time.