Altair32 Specifications


Altair32 emulates a "loaded" Altair 8800 containing an Intel 8080 CPU board with 64k of RAM (the limit of the 8080's address space). The following expansion boards are "installed" in the Altair32:

SIO and 2SIO:  To support diverse software, the Altair32 has the equivalent of a single-port MITS SIO and MITS 88-2SIO Dual Serial Interface Board. The single-port card was used initially as the console port for use with Altair BASIC and many other early programs and was hard-coded to I/O ports 0/1. When the dual-port card became available, port 1 was connected to a serial "glass TTY" (also called a VDT). This programmed I/O device (based on the 6850 ACIA) provides two serial ports which could be hardware jumpered to support either RS-232 or 20mA current loop interfaces. The standard I/O addresses assigned by MITS was 20Q-21Q  for the first port and 22Q-23Q for the second. The second port of the 2SIO is "connected" to a virtual line printer and the paper tape reader/punch for support under CP/M.
PTR/PTP:  In early configurations, a paper tape reader and paper tape punch typically coexisted with the TTY, with a simple switch defining which function was connected to the serial port. Early programs that utilized a paper tape used the same port numbers as the console, leaving it up to the user to flip the mode switch. This is the way Altair BASIC 3.2 was loaded from tape. To the Altair, it's like someone was typing the program data into the machine.

    In later configurations, separate paper tape devices were used because of increased availability due to falling prices. Unlike BASIC 3.2 for example, CP/M directly supports the punch/reader as a device on its own I/O port. So, the punch device shares the second port of the simulated 2SIO card with the simulated line printer device.    

Disk Drives:  MITS 88-DISK Floppy Disk controller with up to eight drives (although I think that the interface can actually support up to 16 drives). The connected floppy drives were Pertec FD-400 8" hard-sectored floppy drives. Each single-sided diskette has 77 tracks of 32, 137-byte sectors each (an unformatted capacity of 337,568 bytes). The controller supported neither interrupts nor DMA, so floppy access required the sustained attention of the CPU. The standard I/O addresses were 10Q-12Q. As of version 3.33 of the emulator, it also supports the Altair MiniDisk and cartridge/hard disk devices.

Cassette: At ports 6Q/7Q we emulate the MITS 88ACR audio cassette interface, which can be used to load tape versions of BASIC and to load/save BASIC programs from within BASIC.

ROMs:  Just like the real Altair, the Altair32 supports programs and code supplied in the form of ROM images. The Altair32 uses binary ROM image files that are "installed" into the emulator memory space at turn-on. This feature uses a simple text configuration file containing file name and load location. When a ROM is loaded, the binary loader marks each emulator memory page as read-only. The properties of ROM are enforced in the memory management code by twiddling page status bits which indicate if a memory page is read-only or writable. Although ROMs of any size are supported (up to the boundaries of the processor address space), the page status granularity is 256-bytes.

Video: Cromemco Dazzler emulation.
Future Hardware: 88-RTC (real-time clock board); suggestions??

    The Altair32 contains a disk boot EPROM starting at address 0xFF00. Jumping to this address should boot the software contained on drive 0 of the floppy controller. If no valid bootable software is present there, the machine crashes, requiring a reset.

The Altair32 Front Panel comes with two RS232-compatible serial ports for use by the emulator. Although the software to support this feature is not yet complete, they will eventually connect to the emulation space through ports 14h and 15h. This will enable the user to connect vintage peripherals such as a paper tape reader or serial terminal to the emulator without taking up a serial port on the host computer.


    A person owning an Altair in the late-70's would probably be running either MITS Disk Extended BASIC or the then brand new CP/M Operating System from {Intergalactic} Digital Research. A third option, available much later,  would have been Altair DOS from MITS. Disk Extended BASIC was the commonly used software for serious users of the Altair computer. It is a powerful but slow BASIC with some extended commands to allow it to access and manage the disk system. It did not require a separate operating system to run. Altair DOS was long promised but not delivered until it was almost irrelevant in the face of CP/M's wide acceptance.    


    On a real Altair, the benchmark should complete in 2 minutes 57 seconds with 0-waitstate memory and 3 minutes 47 seconds with 1-waitstate memory. The Altair32 executes the same benchmark in 2 minutes, 12 seconds -- 25% better than the prototypical Altair. This results in a theoretical CPU speed of about 2.5 MHz. If you let the emulator run at unregulated speed, on my 3GHz Pentium 4 machine, I can achieve an 8080 speed of about 80MHz. Overclocking without the water cooling!


Copyright (c) 1998-2014 Richard A. Cini, Jr. (rcini at msn dot com) All Rights Reserved. All copyrights of any third parties referred to herein are hereby acknowledged. There is no warranty, either express or implied, relating to any of the content contained herein. The site maintainer shall in no event be liable to anyone for damages, including any loss of profits, lost savings, or other incidental or consequential damages arising out of the use or misuse of the information contained on this Web site. You may use the information contained herein for NON-COMMERCIAL purposes only and AT YOUR OWN RISK. Batteries not included. Contents may settle during shipping. Updated 16-Aug-2014 15:31 -0400
Website Design by www.DressageArt.com