Altair 8800 Help

Rick Bensene rickb at
Thu Oct 25 20:34:56 CDT 2007

Hello, all,

I recently acquired a very nice Altair 8800 with 40K of RAM (1 non-MITS
16K Static RAM board, and 3 MITS 4K Static RAM Boards, a MITS Version 1
8080 CPU Board, a MITS 2SIO, a MITS 88-DCDD floppy disc controller (two
board pair), a MITS PROM board (8-slots for 1702 256-byte PROMS), a MITS
4-port Parallel card, and two MITS 8" floppy disc drive enclosures,
along with a Televideo 912 Terminal, a heavily modified CT-1024
"TV-Typewriter", and a serial TI 810 printer, and an 18-slot (non-MITS)
motherboard with an upgraded power supply.  That along with boatloads of
spare parts, a bus extender, a couple of unused S-100 bus prototyping
cards, an unstuffed Ithaca Audio S100 board (not sure what it is), all
of the original Altair documentation, a bunch of 8" floppies (including
original various version of MITS (Micro-soft) BASIC, MITS DOS, and
FORTRAN complier, and a bunch of documentation written by the former
owner of the system. 

I very carefully inventoried everything first, then pulled out all of
the boards from the CPU and tested out the power supply, first
un-loaded, then under dummy loads, then powered it up with the front
panel power leads connected, but no other boards, and all looked good.
Then I plugged in the CPU board and the 16K static RAM board, and
powered up and could reliably examine and deposit data into the RAM.  I
then wrote some simple test programs and toggled them in, such as
reading the sense switches and storing their content into a memory
location, setting all (as much of possible without getting too fancy) of
memory to a specific value, then verifying it, and various other CPU
functionality tests.

All the little test I did passed with flying colors.  I then added in
the three 8K MITS RAM boards, and they all seemed to work fine also.

Then I plugged in the 2SIO board, but didn't have a cable to connect the
port clearly configured on the board as the console port to the
terminal, so I've got some work to do there.  Tonight, I'm hoping to
write a little test code using HYPERTERM or the like on a laptop to
read/write characters through the console port.  The other port is
configured strangely, and I need to do some jumper wire tracing to
figure out how it's configured.
So, the CPU itself seems great.  Next, I checked out the floppy
controller boards, making sure all of the chips were well-seated (they
were all socketed), and checked the power supply lines and regulators to
make sure they were OK.
Put the board set into the system, plugged "DRIVE 0" into the CPU, and
toggled in some very basic floppy controller functionality tests that
are included in the manual for the controller, and tried out the tests.
They all passed just fine per the results that should be obtained as
mentioned in the manual.

So, here's the dilemma.  The PROM board is currently configured at a
start address of 1 111 100 000 000 000 (174000 Octal, or 0xF800).  I
plugged all of the PROMs into the sockets (there were five different
ROMs that I found, including one that had a label that indicated that it
was some kind of BOOT ROM).  I started examining memory at 0xF800, and
found that most all of the PROMs contained all zeros...either erased, or
suffering from failure due to extreme age (date codes of '76), and/or
no covers over the windows.  The one PROM that responded was the one
that had the label hinting that it might be a boot PROM.  So, I wrote
down the content of the PROM and went about hand disassembling it.  It
does indeed appear to talk to the floppy controller, which is hard-coded
at I/O Addresses 0x10, 0x11, and 0x12), as there are a lot of IN and OUT
instructions referencing these I/O addresses.  Looking at the various
absolute jump addresses in the ROM, it appers to be coded to run at
0x4Cxx, or 046xxx Octal.  If I set the start address of the ROM board to
make this ROM appear in the proper place, it'll conflict with the RAM
installed in the system.

I have a number of disks which I'd like to try to boot from, including:

REVISION 4.1     JUNE 1977

Another disk with the following:
VERSION #1.0   MFG: 03/13/78
     (NWD) SN: 10396

Which also has a label below this one saying

VERSION #2.8   MFG:06/05/78
     (NWD) SN: 10152

Also on this same disk is a small label saying:


And another disk that says:

               BEAVERTON, OREGON
    SN: 10058                             7808

All of the labels on these disks are original manufacturer
labels...these disks are the genuine thing, not copies.

Clearly, I'd love to be able to boot these disks.  I think that the
floppy controller is good. The system even came with a Alignment Disk,
so I toggled in some of the routines that would allow observation of the
tracking (cats-eye) and index/sector (it's a hard-sectored controller)
stuff with an oscilloscope, and everything looked perfect.

I just need some bootstrap code.  I've looked around in all of the
documentation, and there's no boot code listed in the docs for the
floppy subsystem.  There are small bootstrap routines to load code over
the 2SIO board (presumably from a paper-tape reader on an ASR-33 TTY),
another from a parallel port (presumably from one of those little
optical tape readers that you'd pull the tape through, wasn't it a
company called OAE?), and another from cassette (but I don't have an
interface board for cassette).  I've thought of writing a small program
that would copy the boot code out of the PROM into the proper space
within RAM, and then JMPing to it, but not sure if that'll work or
not...I suppose it's worth a try, but haven't done that yet.

I've perused the web a lot looking for boot code for the Altair floppy
controller, and haven't been able to find anything.

Any Altair experts out there that might have some floppy boot code for
the Altair 88DCDD floppy controller that might work to boot up the MITS
DOS, or DISK EXTENDED BASIC floppies I've got?  Also, anyone know the
default console port I/O address that these products expect the serial
console to be at?  I assume the FORTRAN compiler runs under MITS DOS,
and that's why the two products are together on the same disk.  Right
now I've only got one of the floppy drives connected up, but I'd expect
that the FORTRAN compiler will need the 2nd drive in order to do
anything useful, but I'm trying to take things one step at a time.

I've got a manual for Altair DOS, and it does describe the disk format,
so I suppose I could write a boot program myself, but it'd be a lot
easier just to find someone that already has the stuff.

Also, if anyone knows where Altair DOS and Disk Extended BASIC expect
the serial console (e.g, I/O Port Address), that too would be helpful.

If anyone could help, I'd sure appreciate it.

Thanks in advance,
Rick Bensene
The Old Calculator (and sometimes Computer) Museum

More information about the cctech mailing list