PDP-9 Restoration Blog Starting 2020

Go to the earlier restoration blog.


We tried the ASR-33 Teletype from the Altair 8800 as the system console

We blew one of the 3A fuses because the wires for the paper tape reader control inside the TTY were reversed

This looked like a short to the PDP-9, and the fuse protected everything

After we fixed the paper tape reader control wiring the TTP keyboard and printer worked OK

The paper tape reader would not turn on

We checked the transistors and diodes on the W040 that drives the printer and controls the reader

Diodes D2 and D7 were shorted

We replace them with NOS D-662 1N645 parts

The paper tape reader in the TTY is enabled when ADSS first boots, but is disabled after the first character is entered

Looks like we have some debugging to do in TTY input circuitry


We tried to demonstrate ADSS booting to a visitor, but ADSS would not restart from the core image or load from DECtape

Time for some debugging


We ran MAINDEC-9A-D01A-D Instruction Test Part 1 and MAINDEC-9A-D02A-D Instruction Test Part 2

Both ran successfully so we know the processor is mostly working OK

We ran MAINDEC-9A-D1AA-D PDP-9 Basic Memory Checkerboard Test

It failed and showed that bit-11 in the upper 4k of core was on when it should have been off

Rerunning the test resulted in the same error at the same address

We swapped the G009 Sense Amplifiers in slots C24 & C25 and the fault moved to bit 10

We put the good G009 from slot C25 back in slot C24 and replaced the G009 in slot C25 with spare

The diagnostic ran a little longer and then showed the same failure on bit-7

We swapped the G009 sense amplifiers in slots D24 & D25

There was no change, so we swapped them back to the original locations


We ran the MAINDEC-9A-D0CA Memory Address Test to check the G219 modules

It ran OK, but 20 minutes to complete

We ran the MAINDEC-9A-D1FA Extended Memory Address Test to do a more thorough test of the G219 modules

This also ran OK

Click on the image for a larger view.

We ran the MAINDEC-9A-D1BA Extended Memory Checkerboard Test

This showed errors at address 013223 where the contents should be 000000 and were 000040, so it is picking up bit-12

This showed errors at address 017274 where the contents should be 000000 and were 000400, so it is picking up bit-9

The problem could be in one of the 36 G219 Memory Selector flipchips for the Digit drive

We should check the G219s in slots AB06 & EF06 for bit-9, and in slots AB03 & EF03 for bit-12

It could be in one of the 8 G219s in slots HJ23 through HJ30 that are used for Word Selection

Since the failing addresses all have MA6= 0 or 1 & MA7=1 that points to the G219s in slots HJ24 or HJ26

The failing addresses all have MA10=1 & MA11=0 that points to the G219 in slot HJ29

It could also be in the G009 Sense Amplifier flipchips for bit-9 and bit-12 in slots C23 & D22 or the W612 Pulse Amplifiers in slots C26 & D26


Of course now that we are prepared to to fix the memory the diag reported four new errors and is now working OK

We should take a look at the memory timing and voltages to make sure that they have not drifted out of specification

ADSS booted on the first try, so now we are back to trying to determine why versions prior to V5 get a .SYSLD 4 error when loading any application

We also need to make some V5A bootable DECtapes, and get all three TU55 DECtape drives working


When we try to run any application on an ADSS that is earlier than V5, the system reports a .SYSLD 4 error

This means that one of the DATs that map physical to logical devices is bad

We have the source code for the System Loader for ADSS V5, but not for earlier versions

Our current project is to reconstruct the System Loader source code for ADSS V4E

Then we can debug what .SYSLD is doing, and which DAT it doesn't like

The real PDP-9 and SIMH show the same behavior when running early versions of ADSS

If we can figure this all our, then we can probably get earlier, and smaller, versions of ADSS running on the PDP-9

The current debugging method is to run ADSS V4E on SIMH

This lets us put in breakpoints to stop the processor when it runs .SYSLD

Then we can single-step the code and watch what it does

At the same time we can modify the V5 source code to match what we see with V4E

SIMH decodes and displays instructions when you single-step, and lets you see register contents

So far, the V5 and V4E source are about 90% the same, but the V5 .SYSLD takes more memory

Eventually we should be able to reconstruct the V4E .SYSLD source which will make debugging it a lot easier


We have been chasing an intermittent problem where the DECtape drive at address 1 cannot be addressed

We traced the signals in the TC02 DECtape controller, and everything up to the control cable going to the drives looked OK

The drive select 1 signal in the drives should have been at a ground level and was at -3V

We got sidetracked, and by the time we got back to debugging the drive select 1 was working

We tried all of the ADSS DECtapes that we made during the week

The STARTREK FORTRAN source could be read, and the ALGOL tape booted OK

ALGOL ran out of memory on the 8k system, so it would not load

The other two ADSS V5A DECtapes we made had parity errors when we tried to boot

One of the TU55 DECtape drives showed intermittent problems, so we swapped it for a drive from the PDP-8/I

It looks like all three DECtape drives are working OK now

The intermittent drive select 1 problem came back

We traced the problem to the control cable that connects the TC02 DECtape controller to the first TU55 DECtape drive

We resoldered all of the connections on the flipchip on the TC02 end, and it looks like it is fixed

We tried editing a file using the ADSS V5A ALGOL DECtape

It first created a temporary file on drive 2, then displayed the editor prompt

We entered a one line file and closed it

It saved the file on drive 2, copied it to drive1, deleted the file on drive 2, and then reloaded the non-resident part of the ADSS monitor

While it is way faster than using just paper tape, having a disk would be even better

The ADSS ALGOL DECtape doesn't include the small versions of MACRO and F4, so it is not so useful

We will remake the ADSS V5A DECtapes, and try booting again

It would be nice to get an ADSS software development environment working


We have found that the PDP-9 format is really picky about DECtapes

You can format DECtapes in PDP-9/PDP-10 format on a PDP-8, but only about 10% of the ones that I have tried will successfully format and go through all of the checking steps

Some DECtapes are too short and go off the end of the tape

Maybe it is just that having been a PDP-8 DECtape for 50 years makes them reluctant to be changed to a PDP-9 format?

In any case, the DECtapes that format and check OK on my PDP-8/e & TD8E seem to work OK on the PDP-9

I can use a modified dumprest program to write tapes that work OK on the PDP-9

Today we booted ADSS V5A that I sysgenned on SIMH to be configured for 8K of core

The other two TU55 drives held scratch tapes

I used the "N 1" and N 2" commands to write empty directories to the scratch tapes

I used EDIT to create a "HELLO WORLD" program in FORTRAN

That was a learning experience, and too quite a few tries, and really spins DT1 and DT2 alot

We have to use the "abbreviated" F4 compiler because our PDP-9 only has 8K of core

We got the program to compile, and even got a listing of the resulting MACRO instructions

We got stuck getting the LINKER to work. You need to enter the ALTMODE character after the program name, and it wasn't obvious how to get a VT220 to sent that character

Even then it didn't link the file and run it

That is the project for this week.

It looks like this project is finally going into the software phase. Time to get some demonstration programs running.


During the week I experimented with Bob Supnick's SIMH PDP-9 emulator and the same ADSS V5A DECtape image that is running on the PDP-9

I found that the example commands in the manuals for inking/loading a FORTRAN IV program don't work

After some experimenting, and reading Bob's software notes, I was able to compile and execute a FORTRAN IV program

I tried the same commands on the PDP-9, and it also worked

Now we need to copy the FOCAL binary onto the system DECtape so we can work with that language


We got FOCAL running.

Time to find some interesting programs for demonstrations


Booted ADSS just to make sure everything is working OK.


We borrowed a coil winder from the New England Wireless and Steam Museum. We cut the adhesive holding the coil onto the metal bracket and mounted the coil onto the winder. We set the turns counter to zero and very carefully unwound the coil. After a very long unwinding project we found the break in the wire and counted 4400 turns on the coil. Guessing at a 3/8" average diameter for the coil means that we need about 432 feet of wire. The wire measured about 2.5 thousandths of an inch in diameter, so it is 42.5 AWG. I bought a 6954 foot spool of 42.5 AWG magnet wire from Remington Industries on eBay. That should be enough to repair this coil, and have plenty left over to make a Tesla coil.

I noticed that the PC04 schematics show the coil as having 685 Ohms resistance. The Electrisola WWW page lists the resistance of 42.5 AWG wire as 1793 Ohms per 1000 feet. That calculates to about 384 feet of wire, close to the wild guess of 432 feet.

I will get some Mylar or Kapton tape to hold the first turn of the wire to the spool, and to hold the larger diameter pigtails to the magnet wire. The wire insulation is Polyester, so apparently a soldering iron will burn it off. On the coil winder one turn of the crank makes one turn of the coil. It would take 4400 crank turns to rewind the coil. I will try replacing the crank with a variable speed electric drill to reduce the hours required to rewind the coil.


We tried to boot ADSS from DECtape last Saturday. The bootloader loaded from paper tape, but the DECtapes never moved.

We tried to run the Memory Checkerboard and the Memory Address test, but both failed to run.

We toggled in a program to copy the console switches to the Teletype output. That worked OK for a variety of characters.

We toggled in a program to copy the console switches to the TC02 DECtape controller. That worked OK and we could select all three DECtape drives.

We ran Instruction Test #1, which tests the basic instructions for the CPU. It failed right away at address 000611. That corresponds to error E84, where the accumulator dropped a bit when rotating a single bit. This part of the test starts at 000575 by clearing the AC and Link, and complimenting the Link. Then it executes 9 Rotate Two Left instructions which should leave bit 1 a 1 and the Link cleared. Our machine has the AC cleared, so we dropped a bit during the rotates. We single stepped the CPU through this test. The CLA!CLL!CML instruction worked and left the AC cleared and the Link set. The first RTL left only AC bit 16 set and the Link cleared. The next RTL left only AC bit 14 set and the Link cleared. The next RTL left the AC cleared and the Link cleared. This is wrong, so we dropped the bit rotating it from bit 14 to bit 12.

We tried the sequence of RAL which shifts a single bit left through the AC. This worked OK, so all of ADR bits are getting gated onto the O-Bus correctly.

This points to the L or K input on the B169 Flip-Chip in slot B31 that muxes bit 14 from the ADR onto the O-Bus bit 12 during rotate instruction. We replaced the B169 in slot B31 with a spare and now this test of the RTL instruction works OK.

Now the diag stops at address 002314, error E226A. Here it clears the AC and Link, compliments the Link, loads the AC with the constant 000000, and test to see that the AC contains 000000. The AC contains 400000, so it failed. The constant at 002344 contained 400000 and should have contained 000000. We fixed that location and now the diag stops at 002601 which corresponds to error E245. The constant for this test at 002345 contained a 200000 and should contain a 400000. Now it looks like the constants for this diag got loaded one location too low. We reloaded the diag from paper tape, and now it runs OK.

We measured the voltage drop for all diodes and transistors on the failed B169 flip-chip. Transistor Q4, a Fairchild/DEC -4258 (2N4258) has an open emitter that is activated by inputs L and K. That matches our guess for the failure mode.


We ran the PDP-9 for most of the day rehearsing for the presentation on Wednesday. It mostly ran OK, but exhibited some flakiness. Next Saturday we should run a full set of diagnostics while adjusting the margin voltages. I would not be surprised to find some leaky or low gain transistors.


We ran the PDP-9 to record video for tomorrow's presentation. Other than one glitch reading the DECtape on the lower right drive it behaved very well.


We tried to demonstrate ADSS last week, but it would not boot. After testing with toggled in instructions we found that all of the instructions that we tried worked OK, except for the JMP instruction.

We connected 'scope and the logic analyzer to the microcode address to see if we could see it execute the microcode steps. We were thinking that it was not getting to the microword for the JMP instruction. After lots of fiddling we were never able to get the logic analyzer to decode the negative logic levels and display the correspond logic states. After many hours of fiddling we demonstrated what was wrong to one of our volunteers, and of course it worked. After several tried it booted ADSS. Something is marginal, and we will need to find out what it is to make the machine more reliable. A project for next week.


The PDP-9 booted OK and ran fine for a few hours, but then the TU-55 DECtape drive in the CPU cabinet stopped working. The right hub motor had no torque in any state. I swapped the G850 SCR flipchip for the right motor with one we borrowed from the PDP-8/I and the drive works OK. We will either find a replacement or fix the one we have.


The system was disassembled for shipment and needs to be reassembled. (Done)

Find the four BC09 I/O cables to connect the TC59 to the PDP-9. (Don't have them. Maybe we can get some BC10 cables from the LCM)

If we don't have the cables we might be able to use seven cables from a PDP-8 or borrow some from another PDP-9/10/15 collector.

There is some unconfirmed information that when this system was in its last days of service they had problems with the ROPE memory for the microcode.

There a rubber sheet that compresses the "E" cores together. We will need to replace it.

We have several spare ROPE memory boards. We have no idea if they are good, or what microcode is programmed.

We have two spare 8k core stacks if we find problems with the core in the system. (Didn't, works OK)

We were also told that when someone was trying to fix the system they pulled modules while the power was still on.

That may make it challenging to revive this system.

This system uses some of the same transistor only R series Flip-chips as the PDP-8/S so we have some spares for the modules.

It also uses quite a bit of the faster B series modules. We have just a few spare B modules.

Fix the drive select for Unit 1 not working problem in the TC02 or TU55

Find out why swapping the B141 flip-chips in slots B11 & B13 breaks the paper tape reader

Rewind the coil in the paper tape punch

Fix the second 709 power supply and connected it to the paper tape punch

Fix the second TU55 DECtape drive

Determine why the PIE light doesn't go off when the I/O RESET switch is pressed. (Fixed 12/7/19)

Collect enough flipchips so we can add the EAE feature for SpaceWar!

Collect the remaining flipchips so we can add the 34H graphics option, also for Spacewar!

The rough plan:

Reform the capacitors in the 709 power supply for the processor and test the power supply. (Done)

Reconnect the I/O cables for the paper tape reader/punch. (Done)

Find and connect the Teletype interface cable. This is actually on the PDP-11/23 that was connected to this system.

Power up the system and see what works. (Done)

There was some discussion that many of the light bulbs in the front panel were burned out.

(All of the Register, Memory Buffer, and Interrupt lights work.)

Reform the capacitors in the TU20 power supply and test the power supply. (Done)

Power up the TU20 and see what works. (Done)

The tape drive uses vacuum columns so it may be a significant challenge to get it working.

Reform the capacitors in the TC59 power supply and test the power supply. (Done)

Connect the TC59 tape controller to the I/O section of the PDP-9 and to the TU20. (Done using borrowed PDP-8 I/O cables)

Debug the TC59 and the TU20. (In process)

Wire the DC power to the TC02 DECtape controller and connect the I/O cables between the processor and the TC02.

See if the TC02 responds to any IOT instructions.

Try the TC02 diagnostics.

Install a TU55 in the rack with the TC02 and TU59.

See if the DECtape works.

Once we get a DECtape working we can make an OS DECtape.

If the PDP-9 actually runs the OS, it will be the only one on the planet that can.

The instructions tested so far are:

CLA Works OK

CLC Works OK

CLL Works OK

CLOF Turns the CLK light off.

CLON Turns the CLK light on.

CMA Works OK

CML Works OK

DAC Works OK

DZM Works OK Fixed on 3/23/13

HLT Works OK Fixed on 3/23/13

IOF Turns the PIE light off.

ION Turns the PIE light on.

IZS Works OK Fixed on 3/16/13

JMP Works OK Fixed 3/10/13, Fixed again 5/18/19

LAC Works OK

LAS Works OK

NOP Works OK

RAL Works OK

RAR Works OK

RTL Works OK

RTR Works OK

STL Works OK

Maindec Diagnostics

MAINDEC-9A-D0BA-D ISZ Test, 5/18/19

MAINDEC-9A-D0CA Memory Address Test, 2/22/20

MAINDEC-9A-D0DB-D-JMP Self Test, 5/18/19

MAINDEC-9A-D0EA-D JMP Y - Interrupt Test, 5/18/19


MAINDEC-9A-D01A-D Instruction Test Part 1, 12/8/20

MAINDEC-9A-D02A-D Instruction Test Part 2, 12/8/20

MAINDEC-9A-D1AA-D PDP-9 Basic Memory Checkerboard Test, 5/18/19

MAINDEC-9A-D1BA-D PDP-9 Extended Memory Checkerboard Test, 5/26/19

MAINDEC-9A-D1FA-D PDP-9 Extended Memory Address Test, 2/22/20

MAINDEC-9A-D2BA-D PDP-9 TTY Test, 11/2/19

MAINDEC-9A-D3BB-D TC02 Basic Exerciser, 12/14/19

MAINDEC-9A-D3RB-D TC02 DECtape Random Exerciser, 12/14/19

MAINDEC-9A-D7AD-D PDP-9 Basic Exerciser (no punch or tape reader), 5/18/19

The boards replaced in the PDP-9 processor so far are:

B131 Adder in slot A23 of the processor, replaced Q4, 2N3669, 3/17/19

B169 Inverter (Multiplexor) in slot B26 of the processor with a spare, 3/30/19

B169 Inverter (Multiplexor) in slot B31 of the processor with a spare, 12/8/20

B310 Delay Line in slot EF29 of the processor with a spare, and again with a repaired module

B213 JAM Flip-Flop in slot H33 of the processor with a spare, 2/2/13

B213 JAM Flip-Flop in slot C39 of the processor with a spare, 3/23/19

B213 JAM Flip-Flop in slot C18 of the processor with a spare

B213 JAM Flip-Flop in slot C35 of the processor with a spare, and again with a spare

B213 JAM Flip-Flop in slot D20 of the processor with a spare

B213 JAM Flip-Flop in slot D21 of the processor with a spare 4/13/19

B213 JAM Flip-Flop in slot D27 of the processor with a spare

B213 JAM Flip-Flop in slot D28 of the processor with a spare

B213 JAM Flip-Flop in slot H33 of the processor with a spare

B213 JAM Flip-Flop in slot E20 of the I/O controller with a spare

B310 Delay Line in slot EF29 of the processor with a spare

B310 Delay Line in slot EF36 of the Core Memory with a spare, put the original repaired board back 8/10/19

B360 Adjustable Delay Line in slot D33 of the Core Memory with a spare

G009 Sense Amplifier in slot C25 of the Core Memory with a spare

G219 Memory Selector in slot AB09 of the Core Memory with a spare

G219 Memory Selector in slot HJ24 of the Core Memory with a spare

G920 Repaired, and repaired again. 05/18/19 Replaced a diode with a 1N4149 for Microword 74

R111 Diode Gate in slot H23 of the processor with a spare

R123 Diode Gate in slot D15 in the I/O controller

R401 Clock Flip-Flop module in slot KD09-E03 of the I/O controller with a spare

S205 Dual Flip-Flop module in slot KD09-D07 of the I/O controller with a lower drive R205 spare. We need to repair the S205 and put it back in the system

S603 Triple Pulse Amplifier in slot J23 with a spare. Diode D42 on the original conducted in both directions

S603 Triple Pulse Amplifier in slot J10 with a spare

W040 Solenoid Driver in slot B33 of the processor, 2/1/20 replaced D2 & D7 with 1N3606

The boards replaced in the TU20 Tape Drive so far are:

2N1304 transistor in the EOT circuit on the Photosense Amplifier in the tape transport

G287 Write Driver in slots A02-A06, replaced 2x 2N3500 transistors for tracks B, 8, 2, and Parity. Some of the diodes on theses modules have small cracks

R113 Diode Gate in slot B20 with a spare

R123 Diode Gate in slot B17 has poor drive to pin P. Working OK, but should be checked further. The R123 Diode Gate in slot B17 was actually an R203 flip-flop. It was replaced with the correct spare

R203 Triple Flip-Flop in slot B27 with a spare

R205 Dual Flip-Flop in slot B04 with a spare

R205 Dual Flip-Flop in slot B05 with a spare

R302 Dual Delay in slot B09 with a spare. Set trimpots to the same values as on the original

R302 Dual Delay in slot D29 with a spare. Set trimpots to the same values as on the original

R303 Integrating One-Shot in slot A21, replaced the open Trimpot

R401 Clock module in slot A15 with a spare

R602 Pulse Amplifier in slot B13 with a spare

R602 Pulse Amplifier in slot B16 with a spare

R603 Pulse Amplifier in slot A09 with a spare

W501 Schmitt Trigger in slot C10 with a spare

W501 Schmitt Trigger in slot D09 with a spare

The boards replaced in the TC59 Magnetic Tape Controller so far are:

R602 Pulse Amplifier in slot A21 with a repaired module

W640 Pulse Amplifier in slot F22, replaced R17, Q8, and Q9

The boards replaced in the TC02 DECtape Tape Controller so far are:

G882 Reader/Writer in C23 with a donation from Anders, 4/20/19

R201 Flip-Flop in slot C02 with a spare, 8/10/19

S107 Inverter in slot C18 with a spare, 7/7/19

S107 Inverter in slot F18 replaced Q5, 7/21/19

S123 Diode Gate in slot F14 replaced Q3, 9/20/19

S202 Dual flip-flop from slot A5 needs repair, 8/10/19

S205 Dual flip-flop from slot B8 replaced D21 on 12/14/19

S603 Pulse Amplifier in slot C17, replaced D20 8/10/19