MITS ALTAIR #1 Restoration
The front panel is misbehaving, but we can get the processor to run and blink the lights on the front panel. Pressing EXAMINE does not load the switches into the address, and increments the address. Pressing RESET sets the address to 0000. Pressing EXAMINE NEXT increments the address and displays some data
The D3 LED is always on
We checked the SN74lS04 that drives the LED, and we see a 30uS pulse when RESET is pressed, so that means the LED driver chip is OK. we pulled boards from the system hoping that we would find one that was hanging the D3 bus. With all of the boards out we individually grounded DI0 through DI7 pins and each LED went out. After fiddling with the boards the D3 LED decided to behave normally
We removed all of the boards to take pictures of both sides and document the jumper settings. After reassembly the front panel looks like it is working OK now.
We picked up the ASR-33 Teletype that was used with the Altair. The printing unit was not mounted to the base and the H-bar that connects the keyboard to the printing unit is missing. It looks like this Teletype has both current-loop and RS-232 interfaces. It is going to take some work to get this Teletype working again
We analyzed (fiddled with) the ASR-33 Teletype today. If you manually hold the part in the printer assembly that connects to the H-bar, clutch disengages correctly. Pressing a key on the keyboard and manually allowing the clutch to engage prints a character. The same is true for the paper tape reader. Next week we will visit the warehouse and get the missing parts, and hopefully get this working correctly. We will also swap the connector on the serial cable and the Teletype to match what we use on the DEC computers .
We raided the warehouse for the missing ASR-33 Teletype parts. After some cleaning and reassembly it seems to be working nicely.
We even connected it to a Windows laptop through the RS-232 interface and printed a test page. We also found a spare Cromemco 64k memory board that we can use in the Altair if the MITS 4k memory boards misbehave.
Alex cleaned the top cover of the Teletype, and it looks very nice. We repaired a crack in the cover with epoxy, looks better
We punched a paper tape of Altair BASIC V3.2 on the Teletype. Time to see how the remote reader control works.
It looks like the additional reader control circuit is only controlled by the 20 mA current loop interface, and not the RS-232 interface. There is a small switch added to the reader control circuit to enable the reader when the RS-232 interface is used. The distributor clutch is constantly being tripped when there is paper tape in the reader. The magnet is the reader is not being activated, so the paper tape is not being read or advanced. There is a switch on the distributor that opens when the shaft is released to advance the paper tape and engage the reading pins. We need to check the whole circuit from the power supply in the base, through the reader control board, and the distributor switch to insure that everything is working.
Back to working on the Teletype. Too many visitors today to get much accomplished
This shows the paper tape Reader Control board that allows an external computer to control the reader with a 20mA control signal. Our DEC computers and the Altair 8800 have the 20mA control signal for the paper tape reader. Since this Teletype has an RS-232 adapter, and the RS-232 interface doesn't have the control signal for the paper tape reader, a bypass switch was added.
Wayne from Greenkeys suggested we check the fuse in the paper tape reader power supply. It was blown, so we replaced it. The reader still didn't work. We disconnected the wire harness from the reader power supply. The reader feed contact and the reader feed magnet tested OK. Of course, after we reconnected the wire harness the paper tape reader works! Next up, get the 20mA interface working. The RS-232 adapter is wired to plug #2 which is in parallel with the barrier strip. Just unplugging the RS-232 adapter will let us use the 20mA interface. We compared the the Molex connector wiring to the Teletype that came with the PDP-12. The transmit and receive wires were swapped, so we fixed that. We tried the Teletype as the console on the PDP-9, and it didn't work. More debugging to do.
The paper tape Reader Control board has a diode across the relay coil to stop the back EMF from blowing the transistor in the Altair. This means that the the polarity of the signal controlling the relay is important. Plugging the Teletype into the PDP-9 console cable caused a 3A fuse in the I/O controller to blow. It is likely that I have the wires for the Reader Control relay backwards so the diode is acting like a short. I will check that next Saturday. This is how the Reader Control board is wired. We need to make sure that terminal-3 is more positive than terminal-1, or the diode will conduct and look like short.
Teletype Molex Connector Pinout According to DEC
Pin Color Description TTY Altair 88-2SIO
2 GRN Keboard- T-3 -> 6 Receive+ Ground to -470 Ohms
3 WHT Printer- T-6 <- 4 Ground
4 BLU ReaderRun- RR-1 <- 10 Ground
5 RED Keyboard+ T-4 -> 7 Receive- -15V through 220 Ohms
6 ORN ReaderRun+ RR-3 <- 3 RTS+
7 BLK Printer+ T-7 <- 5 Transmit+
Altair 88-2SIO Jumpers for Teletype
Receive D3(REC)=K12 K11=Y7 Y8=S1-6 Y9=S1-7
Transmit D5(X-Mit)=L1 Z2(+5V through 220 Ohms)=S1-5
RTS D4(RTS)=L2 Z4(+5V through 220 Ohms)=S1-3
Once we have verified that everything on the Teleetype works OK we will make a matching console cable for the Altair. Then we can try loading Micro-Soft BASIC.
More work on the ASR-33 Teletype. The orange and blue wires on pins 1 & 3 on the reader control board were swapped compared to the DEC standard. That would explain why this TTY blew a fuse when connected to the PDP-9. We swapped the wires to match what DEC does, and to match the console TTY for the PDP-12. The TTY works OK as a system console on the PDP-9. The paper tape reader only reads one character and then stops. The problem is in the PDP-9, not in the Teletype.
We made a new console cable for the Altair with our standard 10 pin Molex connector on the end. That will let use use any of the three Teletypes, the VT220 terminal, or using a converter a PC as the console. The current loop interface keeps the TTY quiet when the Altair is turned on, so that is progress. A toggled in echo program doesn't work with the TTY, so we can't load BASIC yet.
The toggled in echo program that we found was set to use ports 00-03. Our 2SIO that is set to use ports 20-23, the standard for BASIC, so it did not work. We will go through the 2SIO board debugging described here. This echo program should work with our 2SIO board.
000: 076 003 323 020 076 021 323 020
010: 333 020 017 322 010 000 333 021
020: 323 021 303 010 000
This echo program didn't work either, time to get the 'scope out to see if the current loop interface is working. The signal from the Teletype on the 2SIO board look very noisy, so I can understand why it is not working. The Teletype works OK in local mode, so the distributor is working OK. Maybe just a bad connection?
Hugh, a new visitor with Teletype experience, pointed out that the cable to the RS-232 adapter had a jumper wire in it. It was probably connecting the keyboard and printer 20mA circuits and causing problems. Without that cable connected the loopback program is now working with the Teletype. Loading BASIC didn't work, the Teletype reader stopped working after reading about half of the tape. That will be the project for next week.
The output of the power supply for the paper tape reader was 0V. The fuse in the power supply was blown again, but this time we found the cause.
The 850 Ohm resistor in the power supply was cracked and allowed the faston connector to touch the case. We put an insulator between the faston and the case, and it is working OK now. We will have a replacement resistor by next Saturday. To load BASIC V3.2 we need to toggle in the loader found on the above link and shown below. The paper tape reader on the Teletype is used as N.8,2 because the 2nd stage loader is a binary tape.
000: 076 003 323 020 076 021 323 020 (Change to 025 for 1 stop bit)010: 041 256 017 061 032 000 333 020 (Change to 037 for 8k BASIC and 057 for Extended BASIC)020: 017 320 333 021 275 310 055 167030: 300 351 013 000
The first stage loader went into the weeds and didn't load the paper tape. We removed the two MITS 4k memory boards and the Cromemco Bytesaver and replaced them with a 64k Cromemco RAM board. Doing a deposit examine looks a little strange on the data LEDs. We removed the Cromemco 64k board and reinstalled the first MITS 4k board.
The first stage loader looked like it was running OK while it loaded the send stage loader. After about half of the loader was loaded the first stage loader went into the weeds. Maybe a bad paper tape? This loader loads the second stage loader from the paper tape. The second stage loader looks at the front panel switches to determine how to load BASIC. We have a 2SIO serial board, so switch A11 should be up. We are using a Teletype that is always configured for E,7,2 to load the second stage of the paper tape so switch A10 should be down. When the second stage bootstrap is running the front panel lights should display 07647. We have too many variables for debugging this system. We could have a bad CPU, RAM, Front Panel, Paper Tape, Backplane, or Power Supply. We will postpone further work on this system until we can get some help debugging the the individual parts. The Boston Vintage Computing Meetup will be at the RICM on March 7. We asked their Altair experts to bring a running system so we can swap parts and determine what parts in our Altair work.
We received the replacement resistor for the Teletype and replaced the cracked one. We finished the assembly of the Teletype, and declared it complete.
The Boston Vintage Computer Meetup group visited our museum today and brought a working Altair 8800. We tried our teletype with the Timothy Colegrove's Atair, and it successfully loaded BASIC V1. Now we know the Teletype reader is working OK. We tried the first Altair 4k Dynamic Memory board in the Timothy Colegrove's Altair. It did really strange things when Timothy Colegrove tried to run Killbits. That confirmed the strange behavior when we tried to load BASIC on our Altair. We jumpered the second Altair 4k Dynamic Memory board to start at address zero and tried it in Timothy Colegrove's Altair. Killbits worked OK, so this memory board at least works better. BASIC V1 didn't load correctly, so maybe the second memory board is bad too. We have been told by many experts that we should not even try to get these 4k memory boards to work. We will look in the warehouse for another memory board. Another visitor brought an EPROM programmer and read the 2708 EPROMS that were in the Cromemco Bytesaver. We will disassemble the EEPROM contents to see what we have.
We installed the RAM boards that came with Altair #2 in this system to see if they work. The Econoram VII can be examined, but will not deposit. When reading, non-existent RAM displays as 377, and with the appropriate addresses you see something other than 377 with this board installed. The PPS RAM8, the Quantronics MM8, and the MITS 4k Static RAM boards all work OK using the front panel. The Econoram VII manual has a small RAM test program that we can use to perform some dynamic tests on the boards.
We installed the Godbout Econoram VII board set for addresses 0x0000-0x3FFF and 0x6000-0x7FFF, and the PPS RAM8 set to addresses 0x4000-0x4FFF. We used the Altair #2 to test the Econoram VII and found one bad RAM chip. After replacing the RAM chip the board worked OK. The PPS RAM8 board has always worked OK.
We repaired the Compupro 8k Bytesaver and programmed MITS 8k BASIC into eight 2708 (1k x 8) EEPROMs. We set the base address to 0xE000. If you start the Altair at 0x3000 with the Sense switches set to 0x00 it will load and run BASIC in less than a second.
We noticed that the amount of available memory was printed in exponential notation, instead of as an integer. We also found that BASIC would not perform simple commands in interactive mode. We suspected that one of the 2708 EPROMs that contains the image of the BASIC paper tape was not behaving.
We used Altair #2 to check the EPROMs containing the BASIC paper tape image for Altair #1. We had to change the base address of the ByteSaver board from 0xE000 to 0xC000 so it would not conflict with the Micropolis floppy disk controller. The Tanner 64k RAM board can only disable the upper 8k and we needed to disable the upper 16k so it would not conflict with the Bytesaver board. We installed the 4x RAM boards from Altair #1 and booted CP/M. Using the BYTESAVE program we checked the contents of the eight EPROMs. Two had the incorrect contents and would not reprogram. We erased two other 2708 EPROMs and programmed them. Now all eight EPROMs have the correct contents and BASIC works OK.
We put the Bytesaver and the Godbout Econoram VII and the PSS RAM8 8k RAM boards back in this system. 32k of RAM should be plenty. Now when we start BASIC it prints the available memory as an integer, and all of the interactive functions work as expected.
Last week we found that we could read data from the EconoRAM IV but not write data. It turned out to be a WS switch setting error on the EconoRAM board. The switch has two off positions in the up and down positions, and the on position is in the middle. Not very intuitive.
We experimented with many configurations of RAM boards trying to find a configuration that provides the maximum amount of RAM after 8k BASIC 4.0 is loaded. BASIC checks all RAM locations from 0xoooo to the end to determine how much RAM is available. BASIC reported a small value for available RAM with several of the RAM boards installed. That means that there are likely bad RAM chips on several of the RAM boards. With just the 24k EconoRAM VII board installed 8k BASIC 4.0 says that is has 18052 bytes free, so BASIC is taking 6524 bytes. Is that the right value for available RAM? One of the simulator WWW pages shows 57988 BYTES FREE with 64511 Bytes available. That means that MITS 8k BASIC 4.0 took 6523 bytes. Looks like we have the right value for the size of BASIC and the whole 24k RAM board is working.
We experimented with saving a tiny BASIC program to paper tape and then loading it in again. It seems to work. The BASIC manual says that we need to fiddle with the number of nulls that BASIC sends to the Teletype by patching RAM location 46 (hex). A 1 in this location means no nulls. We will have to experiment with this.
We need to test the remaining RAM boards to see if they are working OK. It might be best to program a 2708 EPROM with a RAM test program and temporarily install the EPROM in the ByteSaver. Another project for next week.
We toggled in the Altair RAM test program and ran it on the 24k EconoRAM VII board. It works just fine and does not report any errors.
We removed the EconoRAM VII and installed the 16k EconoRAM IV board. We toggled in the RAM test program, but it would not run correctly. The select signal from U1 was only about 25ns. We changed the base addess to 0x4000, and the select signal is 500ns. The same when the base address is 0x8000 and 0xC000. We ordered a replacement a 74LS139 part. We installed the EconoRAM VII at ox0000 and the EconoRAM IV at 0x8000, and loaded the RAM test program at 0x0000. The RAM test runs OK. We will try again after we replace the 74LS139 in the EconoRAM IV.
We looked at the Line-Feed problem in the Teletype. A piece of plastic tubing fell off a stop and prevented the line-feed mechanism from engaging. We replaced it with three layers of heat-shrink tubing and readjusted the stop. Seems to work OK now.
We looked at the adjustment for the Line-Feed in the Teletype because it was not 100% reliable. We added more shrink tubing to the stop for the Line-Feed link and readjusted two stops for the Line-Feed linkage. It looks like it is working OK now.
Install the Quantronics MM8 8k and the MITS 4k RAM boards for a total of 44k of RAM. (Need to fix them first)
Test the Econoram IV RAM board to see what is preventing writing to RAM. Adding this board would give us 60k of RAM.(Need to fix it first, need to replace U1 the 74LS129)
Test the 20mA control of the paper tape reader on the Teletype.
Fix the linefeed function in the Teletype.
Disassemble the software in the EPROMS in the Cromemco board
Type in some games and save them to paper tape.Document the jumper settings on all boards (took pictures) Determine how the serial port is configured (110 baud, 20 mA Current-Loop)
Implement the second serial port (we can't because the second 20mA output is used for TTY reader control)
Repair the front panel (done)
Get the ASR33 Teletype working and connected (picked up 12/31/19, everything OK)
Punch Micro-Soft BASIC on paper tape (done but we don't need it now because we but MITS 8k BASIC in EPROM)
Try loading Micro-Soft BASIC from paper tape on the Teletype (Not successful so far. We don't need it now because we but MITS 8k BASIC in EPROM)
Program 16k BASIC into the EPROMs on the Cromemco board (done twice because of two failed EPROMs)
Fix the Econoram VII board (done, incorrect switch setting)