PDP-9 Restoration Blog Starting 2019


2/16/19
Moved to the new Lab space.

3/2/19 Hours: 40412.4
We powered up the PDP-9 for the first time in the new lab space. Bit-9 is stuck on in all of the registers so that is the first thing to fix.

3/10/19
We made a longer power cord out of 12-3 SOO cord.
We measured the power consumption at 11A @ 120VAC, so it will $0.30/hour to run the CPU.

We swapped the B131 modules in slots A21 and A23, these are the Adder modules for bits 8 & 9.
The stuck bit moved to bit 8, so we know that the B131 that came out of slot A23 is defective.
We don't have a spare, so we will need to repair it.

3/16/19
The A BUS input on pin S was at -.011V (logic 0) and the other boards were at -3.46 (logic 1).
The SUM output on pin V was at -.3.53V (logic 1) and the other boards were at -0.11 (logic 0).

We measured the input and output voltages on the misbehaving B131 FlipChip, and on the two working neighbors.
Right away we could see that the output voltage was not correct on the broken B131, which explains the stuck bit-9.

The Adder circuitry in the PDP-9 is very fast (for its time), very complicated, and mostly analog.
The internal circuitry has four possible current/voltage levels depending on the state of the four inputs. 

We made a benchtop test setup for the B131 so we could manipulate the input signals and measure the output signals.
Then we compared the behavior of a good B131 to the bad B131.
After a few hours of pondering the schematic to see how it works we were able to devise tests that would show if each of the individual transistors were working correctly.
Eventually we determined that Q4, a 2N3669 transistor was not working at all.
We replaced it with a New Old Stock part, and now the B131 is working again, and the stuck bit-9 is gone.
Alex is making an LT Spice model of this FlipChip so we can better understand how it works.

Click on the image of the B131 Adder for a larger view.

When running at the slowest possible speed the PDP-9 will run two JMP instructions.
Otherwise the behavior is inconsistent, and the Deposit & Examine doesn't always work on the first try.
This sounds like timing issues, so we need to go through the procedures in the System Adjustment manual.

3/17/19
We did some more debugging on Sunday to determine what instructions work and found that the JMP instruction goes to the wrong address.
After some digging we found a stuck bit-17 in the AC register.
We swapped the B213 module on slot C39 that holds that AC register bit, the B169 in slot A38 that gates the output to the A BUS, and the B169 in slot B38 that gates the input, but did not see any changes.
We have spare B213 and B169 modules so this should be an easy fix.

3/23/19
Well, the fix was not so easy.
After several hours of boards swaps and debugging we eventually found a bad B213 FlipChip in slot C39.
This FlipChip provides bits 16 & 17 in the AC register and was the cause of the stuck bit 17.

After this repair the system ran MAINDEC-9A-D1AA-D PDP-9 Basic Memory Checkerboard Test for a few minutes and then halted at location 223.
This is the correct behavior when it detects a memory error.

The DEC-9A-H0AA-D PDP-9 System Adjustment Manual describes a procedure to adjust:

  • Clamp and Slice voltages in the Core Memory
  • MA Setup, Stagger Delay, Strobe Delay, Pause Delay, and the Write Delay timing in the Core Memory
  • Current Start Delay, Start Delay, Width Delay, Loop Delay, Strobe Start Delay, CLR Position Delay, and Current Delay in the Control Memory
  • And check other system timing and pulse width values
We will run through the System Adjustment procedure And then try it again.
We will also run the MAINDEC-9A-D01A-D_Instruction_Test_Part_I_Nov67 and MAINDEC-9A-D02A-D_Instruction_Test_Part_II_Nov67 to make sure that all of the instructions are working.

3/24/19
We fiddled with the system a little before we made all of the adjustments.

We ran MAINDEC-9A-D1AA-D PDP-9 Basic Memory Checkerboard Test for a few minutes and then halted at location 223.
C(AC) = 000000 = Memory Address where the error occurred
Press CONTINUE C(AC) = 200000 = Correct data word
Press CONTINUE C(AC) = 740044 = Incorrect data word
Press CONTINUE C(AC) = 000000 = Pattern control word, should be a 000000 or a 777777

Hopefully if will behave better after we adjust everything.

3/30/19
We decided to run MAINDEC-9A-D01A Instruction Test Part 1 to make sure that the processor is fully functional.
The diagnostic failed immediately at address 000575, which is E83.
After reading through the source code we restarted the diagnostic at 000551 and single stepped the processor.
This test clears the AC and Link, compliments the Link, and rotates the Link bit left through all of the AC bits.
It failed when it tried to rotate the bit from bit-12 to bit-11.
We swapped the B169 modules between slots B22 and B26 and the error moved to bit 9/10.
We put the B169 from slot B26 back in B22 and put a replacement B169 in slot B26.

Instruction Test Part 1 now runs OK. 
In the video below we configured the PDP-9 in Single Instruction mode, locked Continue on, enabled Repeat, and set the repeat speed to the minimum.
This causes the machine to run a few instructions per second so you can watch what it is doing.
The upper register on the right shows the contents of the memory that is being accessed and usually contains the instruction being executed.
The lower display is set to show the AC register, part of the machine being tested.

The PDP-9 running Instruction Test 1 very slowly


We were able to successfully run other diagnostics, but not at full speed.

4/6/19
We spend most of the time wiring new AC outlets for the PDP-9, so only a little debug time.
The core memory seems to be working OK even after we fiddled with the voltage and delay settings.
The core memory still needs the final tuning.

We found that the JMP instruction just goes to the next sequential address instead of to the address in the instruction.
That will be our next debuging project.

We also noticed that one of the G882 FlipChips is missing from the TC02 DECtape controller.
We will need to find a replacement before we can try reading/writing DECtapes.
A very generous Anders Sandahl sent us a G882 from his collection.

4/13/19
We did a lot of studying of the circuitry that makes up the Control Memory, known as microcode on a modern computer.
We determined the correct sequence of events, and made a plan to check the Control Memory sequence and why it wasn't executing Control Word 74 for the JMP instruction.

Click on the image for a larger view.

After a lot of 'scope work we determined that we could actually see the signals go active in the Read Only Program memory and could verify which Control Memory words were being executed.
In the 'scope image above the yellow trace is CM CURRENT signal that cause the contents of the Control Memory to be read.
The green trace is the CM STROBE that latches the data from the Control Memory. The signal going positive and negative is actually a DEC standard pulse.
The purple trace CMP7 signal and the blue trace CMG4 are the address lines for the Control Memory that select the Control Word for the JMP instruction.
Oops, you can see in the third sequence where purple goes up and blue goes down that Control Word 74 is being executed.
So much for the out of sequence Control Memory theory.

The last of the four Control Word sequences in the 'scope image is 10, BGN, where it gates the PC into the MB, and waits for the core memory to fetch the next instruction.
The processor will stop at this point if the Single Instruction switch is turned on, which we did.

Now that we knew that Control Word 74 was being executed we verified that all of the bits in the Control Word were being latched.
We quickly found that the PCI bit that latches the new memory address into the program counter was inactive.
That explains why it would not JMP.
We replaced the B213 Jam Flip-Flop module in slot D21 and now the JMP instruction is working again.

Time to go back to adjusting and tuning the core memory and processor, and then on to connecting and debugging the TC02 DECtape controller.

4/20/19
last week we found that one of the Control Memory Flip-Flop FlipChips was defective and replaced it with a spare.
That fixed the PCI (Program Counter In) Control Memory signal, and the JMP instruction.
Unfortunately it looks like we broke many of the other instructions in the process of fixing the JMP instruction.
Each of the B213 modules Flip-Chips, like the one that we replaced, contains two Flip-Flops.
Replacing the B213 in slot D21 fixed the PCI bit, but now it looks like the other half of the FlipChip is broken, and that is affecting the PCO Control Memory signal.
Having a misbehaving PCO (Program Counter Out) signal would explain why many of the other instructions are misbehaving.
We have a few more untested B213 modules we can try, and then it will be time to fix the pile of broken B213 modules we have.

Click on the image of the B213 for a larger view.

We don't have a FlipChip tester that is capable of testing the B/R/S negative logic modules, so we will need to make a bench test setup.
We have a connector module that will hold the FlipChip, and a 3x voltage power supply that we can use to power it.
All we will need for testing is a signal source for a -3V->GND fast pulse for the strobe, and a logic level for the data input.
We even have NOS 2N3009 and 2N3639 transistor for replacements.

4/20/19
We installed the G882 FlipChip Anders Sandahl donated in slot C23 the TC02 DECtape controller.
We borrowed two TU50 DECtape drives from the PDP-8/I. It still has three TU50 drives.
We installed both drives above the TC02 controller in the expansion cabinet and cabled them to the TC02 controller.
We still need to borrow a 779 power supply from the PDP-8/I and also install it in the expansion cabinet.
The 779 power supply will power the TC02 controller and both TU50 DECtape drives.

The bottom controller is the TC-59 for the TU20 1/2" 7-track magnetic tape drive.
The upper controller is the TC02 for the DECtape drives.
The lower of the TU50 DECtape drives is older and has an extruded aluminum frame instead of a cast frame.

5/5/19
We spent the day chasing the JMP instruction not working issue.

We checked the system timing using the procedures in the DEC-9A-H0AA-D PDP-9 System Adjustment Manual.
All of the timing measurements were within specifications.

We checked all of the microcode bits in each microword and found that the PCI flip-flip was not being set in microword 74.
This will prevent the address from the JMP instruction from being transferred to the PC register and prevent the JMP from going to the correct address.

The PCI flip-flip was being set in microword 21, so we knew that the transformer for the PCI signal on the G920 module was OK.
The MBO flip-flop was being set in both Microword 21 and 74, so we knew that the microcode was being executed in the right sequence.

In this 'scope image you can see that the PCI flip-flip was being set in microword 21m and not in microword 74.
It looks like the CMSL13 signal from the G920 transformer is near ground at microword 21, but is near -2V in microword 74.
We think that this is why the PCI flip-flop is not being set.
It will take a lot of investigating to determine why the PCI flip-flop is not being set.

5/12/19
After pondering the Microcode problem for a week we spent an afternoon verifying that the microcode sequence is what we expected.
An instruction starts with Microword 10, then 21, then 12, then it decodes the instruction and with the JMP goes to 74, and back to 10.
The processor will stop after Microword 10 if Single Instruction mode is on.

Click on the image for a larger view.
Lots of 'scope and Logic Analyzer probes on the Control Memory.

Microword 10 was executed before the processor stopped because we had the Single Instruction switch turned on.
We started with Microword 21, then went to 12, then to 74, then to 10, and stopped again.
This sequence shows that the complex logic for determining the next microword in the sequence is working correctly.

We added the CMP 2 (yellow) and CMG 1 (light blue) signals that drive the "21" wire for microword 21.
The purple trace shows the CMSL signal for the PCI microcode bit as it comes from the G920 flipchip.
The state of the CMSL signal is latched when the CM STROBE signal goes high.
In this case the first time the CM STROBE A signal went high the PCI flip-flop was set.
The next time the CM STROBE A signal went high the CMSL 13 signal was low so the PCI flip-flop was cleared.
This is good to see and means that the PCI transformer on the G920 board and the PCI flip-flop are OK.

We changed the yellow and light blue probes to the CMP 7 and CMG 4 signals that drive the "74" wire for the JMP instruction.
The third time the CM STROBE A signal went high the purple CMSL 13 signal should have been high and caused the PCI flip-flop to set.
You can see that the CMP 7 signal went to ground and the CMG 4 signal went to -15V so the drive current for the "74" wire was available.
We didn't see a pulse on the CMSL 03 for MBO, CMSL 18 for LI, or for CMSL 21 for DONE when the "74" wire wa activated.
This leads us to believe that there is a problem with one of the steering diodes or a wire connection on the G920 microcode board.
We will test and hopefully repair the G920 next week.

5/18/19
We finally found the problem with the PDP-9 Processor.
One of the diodes on the G920 Control Memory board had a voltage drop of 1.1V where it should have been about 0.65V.
This slight difference caused the current flowing through the wire for Microword 74 for the JMP instruction to be a little low, and it didn't set any of the microcode bits for that Microword.
The Program Counter didn't get updated with the new target address, so the JMP never happened.

Click on the image for a larger view.

Click on the image for a larger view.
The fourth diode from the top was defective.
The third diode from the top looks like it is cracked, so that one will likely fail too.


The G920 board holds all of the Microcode that controls how the processor behaves.
When a Microword is selected one of the 64 possible wires is connected to ground at the left side of the board, and to -15V on the right side.
This creates a magnetic field in the 36 transformers, and the direction of the magnetic field is determined by the wire being routed through the right or left side of the transformer.
When the -15V is disconnected, the magnetic field collapses, much like in an ignition coil, and it induces a ground or -4V signal in the secondary side of the transformer.
This signal is captured by Jam Flip-Flops for 200nS, and then the cycle starts again.

We don't have a schematic or a BOM for this board so debugging was a challenge.
We found that most of the diodes on the G920 had a voltage drop of 0.65V, but a few had a voltage drop of 0.76V.
These are also candidates for replacement.
We had a selection of diodes in our spares and decided that the 1N4149 was the best fit for this application.

The system now passes Instruction Test 1, Instruction Test 2, the JMP, ISZ, and JMS tests, and the Basic Memory Checkerboard.
It reports a few errors during the Memory Addressing test.
We still need to do the final timing and voltage tuning for the processor and memory, so hopefully that will fix the memory problem.

Instruction Test 1


Instruction Test 2


Basic Memory Checkerboard


TTY Test


Finally we will be able to connect the TC02 DECtape controller and the TU55 DECtape drives and start debugging those parts.
Eventually we will get an OS running from DECtape. We could even think about making an emulator for the RS09 disks!

5/19/19
Now that the processor is running again, we tried to finish the Core Memory tuning.

Click on the image for a larger view.
This shows the Core Memory sense strobe in yellow and a composite of many memory reads in aqua.
This is the same as Figure-7 in the PDP-9 System Adjustment manual for adjusting the Stagger Time.

One of the final adjustments is setting the Slice Voltage in the Core Memory.
You run the Extended Memory Checkerboard Maindec, flip a switch to power some of the FlipChips in the Memory Controller from the +10V margin voltage, and then adjust the +10V margin voltage up and down until the diagnostic reports errors.
Then you fiddle with the Slice Voltage setting until the amount you increase and decrease the +10 Margin Voltage to cause errors is symmetric.
In this case adjusting the Margin Voltage all the way up or down did not cause any memory errors.
We need to determine if the Margin Voltage is actually getting to the Memory Controller FlipChips.

5/25/19
The PDP-9 System Adjustment manual says to turn on Margin Switch 7, run the Memory Checkerboard, set the Margin Power Supply to +10V, and adjust the +10V up and down until the diagnostic reports errors.
We did that, but never saw memory errors reported.

We didn't know if the Margin power supply was working correctly so we opened the Memory fan housing that also contains the Margin switches and PCB.
We traced the path of the +10V, and -15V Margin power from the diagnostic control panel, through the wire harness to the switch panel.
We then traced the power through Margin switch 7, through the fuses, to the flipchips that send the power to the Memory Controller.
We then traced the wire-wrap wires that supply the power to just a small selection of flipchips.

Once we knew which flipchips were powered from Margin switch 7 it was rather easy to find pages in the schematics (MC70-B-17) that showed which flipchips were powered from which Margin switches.
In this case Margin switch 7 supplies a reference voltage to pin D of all 18 of the the G009 Sense Amplifiers.
Other Margin switches supply the +10V and -15V power to pins A & B of the G009s.
We will need to verify that the +10V margin voltage on on D of the G009s is being adjusted in a wide range.

5/26/19
We went through the Slice Level Setup procedure in section 2.2.3.7 of the System Adjustment Manual.
We connected a DVM to pin D of the G009 Sense Amplifiers to verify that the +10MC reference voltage was really changing when we adjusted the +10V Margin Voltage.
We adjusted the +10MC voltage on pin D of the Sense Amplifiers +/-7V from the nominal +10V while running MAINDEC-9A-D1BA-D PDP-9 Extended Memory Checkerboard Test.
No memory failures were observed while adjusting the +10MC voltage.
We should have seen memory errors which would have caused us to tune the Slice Voltage.
Oh well, no memory errors is a good thing.

We ran MAINDEC-9A-D1FA-D PDP-9 Extended Memory Address Test without errors.

We ran MAINDEC-9A-D7AD-D PDP-9 Basic Exerciser.
Since we haven't fixed the paper tape punch yet, it got stuck looking for the status of the punch.
We put NOP instructions in place of the JMP instructions were it was looking for the paper tape punch status, and it runs OK.

6/1/19
Alex is working on LT Spice simulations for the G008 and G009 modules in the Core Memory.
Today we will capture real Core Memory Sense Amplifier signals using our fancy Rigol 'scope, and save them as a CSV file.
We can import the CSV file into LT Spice and use it in the simulations.

After a lot of reading of manuals and Alex studying the G009 schematics we found that when switch #7 is on, the +10 Margin input can be varied +/-10V.
We originally thought that the +/-7V value in the System Adjustment Manual was the limit for the Margin voltage.
The +/-7V is actually the range which the Margin voltage should be able to be adjusted without causing memory errors.
We will rerun the MAINDEC-9A-D1BA-D PDP-9 Extended Memory Checkerboard Test and vary the +10 Margin through the whole range of +/-10V.
Then we can tune the Slice Voltage to make the Margin that causes memory errors symmetric.

We adjusted the +10 Margin Voltage to the Sense Amplifiers through the range of 2V to 20V.
At the high end of the range there were infrequent errors on bit-8.
We swapped the G009 Sense Amplifiers for bit-8 and bit-9, but it didn't make any difference.
There is a Digit Driver board for each bit, so we swapped the board for bit-8 and bit-9, but it didn't make any difference.
We decided to leave the Slice Voltage adjustment as it is, and declare it fixed.

Next we can mount and wire the power supply to the TC02 DECtape controller and the TU55 DECtape drives.
If we get through that, we can try some of the TC02 diagnostics and see if the controller responds.

6/2/19
We measured the output voltages from the G008 Slice Control so Alex can simulate the G009 Sense Amplifier.
When Halted, Pin H Slice: 5.50V, Pin M 1st Clamp: -11.23V, Pin N: 2nd Clamp: -8.95V.
When Running Checkerboard, Pin H Slice: 5.53V, Pin M 1st Clamp: -11.08V, Pin N: 2nd Clamp: -8.80V.

We inventoried the FlipChips in the TC02 DECtape controller
Missing:
  • A10, R002, Installed unknown condition R002
  • B10, S123, Installed unknown condition slower R123
  • E17, S203. Installed unknown condition slower R203
  • D14, S127, Holds an S107, need to compare to other TC02s (Looks like this is correct and the error in the documentation was fixed in later versions)
  • D19, empty, board is in C19
  • D20, empty, board is in C20
  • D24, R113, Installed unknown condition R113
  • D28, S202. Installed unknown condition slower R202
  • E17, S203. Installed unknown condition slower R203
  • E30, S002, Installed unknown condition R002

6/8/19
Anders will trade an RK05 blower motor that I have for the missing S modules for the TC02 DECtape controller.
Much easier to put the right flipchips in instead of changing resistors on the R modules to convert them to S modules.

Click on the image for a larger view.
We made an LT Spice simulation of the G008, G008, and G010 FlipChips so we can understand how the core memory works.
The two signals in the top pane are the sense wire outputs from the bottom 4k field of core memory.
The red signal in the bottom pane is the output from the sense amplifier, and the grey is the strobe that causes the data to be latched.
Other than an enable signal not working yet, the simulation is doing what it is supposed to.
It is pretty amazing that the sense amplifier can extract good data from the noise on the sense wire.
The input signals to the the LT Spice simulation is actual sense wire data from the PDP-9 captured with the Rigol 'scope.
Newer versions of computers use a monolithic integrated circuit sense amplifier that replaces the complete G009 FlipChip.

6/15/19
We received S series FlipChips from Anders to fill the empty slots in the TC02.

We wired the DC power to the TC02 DECtape controller and the two TU55 DECtape drives that we recently installed in the PDP-9 I/O cabinet.
We were not sure that the power supply for the TC59 that was already installed in the cabinet had enough output to also power the TC02 DECtape controller, and two TU55 DECtape drives.

Click on the image for a larger view.
When we first powered on the cabinet the +10V and the -15V from the power supply would not go to up to the normal voltage range.
I was quite close to the wiring while checking the voltages and then this electrolytic capacitor blew with a big bang!
The voltages then went to and acceptable range, so we knew where all the power was going.
The bridge rectifier on the power supply is getting quite warm, so we will replace the power supply with a larger one.

Click on the image for a larger view.
We still need to make ribbon cables to connect the indicator panel to the TC02 controller.
Without the cables installed all of the indicators should be on.
It looks like we have some bad connections, and possibly bad transistors on the indicator panel to debug and repair.

After we get the wiring completed we can see if the TC02 will talk to the PDP-9.
The TC02 is very similar to the TC01 DECtape controller that is in the PDP-8/I, so we are familiar with how it works and how to debug and repair it.

Once we get the TC02 controller and one of the TU55s drives working we will need to make a PDP-9 Advanced Software System Keyboard Monitor System DECtape and see if it will boot.
We will use the Dave Supnick's SIMH PDP-9 simulator to Sysgen an ADSS DECtape image to match our PDP-9's configuration.
Then we can use a PDP-8/e with a TC8E DECtape controller to write the PDP-9's ADSS DECtape.
Maybe, just maybe, we can get ADSS to run on the PDP-9.

6/22/19
The original power supply in the I/O cabinet for the TC59 Magnetic Tape controller didn't have enough power to also feed the TC02 DECtape controller.
We added another +10V/-15V power supply just for the TC02 and TU55 DECtape drives.
Now the supply voltages for everything in the cabinet are OK.

Click on the image for a larger view.

We replaced all of the defective bulbs in the indicator panel, and now they all light up.
The only thing left to do before debugging the controller is wire the 115VAC power for the TU55 motors, and make 3x indicator panel cables for the TC02.

Maybe next Saturday we can wire up the I/O cables, load the TC02 Basic Exerciser and see if the controller is alive.

6/23/19
We borrowed the Indicator Lamp Cables from the TC59 Magnetic Tape Controller for temporary use in the TC02 DECtape controller.
The TC02 powers up OK, but there is no response to any IOT instructions from the processor.

6/29/19
During the week we discussed the unresponsive TC02.
The first thing that we need to check today is the S107 Inverter module in slot D14.
We suspect that this is broken and preventing any of the W103 modules from decoding instructions.

Turned out that the S107 was fine.
There are margin switches on the left of the TC02 chassis that disconnect the normal power supplies and connect to an adjustable power supply in the processor cabinet.
We had not installed the margin power cable, and some of the margin switches were turned on, so there were parts of the TC02 that were not powered.
Turning all of the margin switches off got power to all of the TC02.

With all of the TC02 powered we see more reasonable behavior on the indicator lamps.
There are still problems with the IOT instruction decoding.
The maintenance instruction to load the Data Buffer works, but the Data Buffer is not cleared first.
The instruction to clear Status Register A doesn't work.
The instruction to XOR the AC with Status Register A loads the register and immediately clears it.
The instruction to read Status Register B doesn't work.

All of these instruction decoding issues may be timing related.

6/30/19
After a few hours of debugging we found an R202 Dual-Flip module in the slot where an R002 Diode Cluster module should have been.
This prevented all of the Status Register A related IOT instructions from working.
Now we can select a DECtape drive and tell it to go forward and backward.
There is still an issue with selecting DECtape drive 1 that we need to debug.

The Status Register B instructions still have issues.
If we read Status Register B the contents don't stay in the AC for long.
This could be a problem in the Processor or the TC02 DECtape controller.

There are two undocumented maintenance instructions that let you read/write the Data Buffer in the TC02.
Writing to the Data Buffer ORs the AC with the Data Buffer.
My guess is that the Data Buffer is not being cleared first.

On the TC59 Magnetic Tape controller you can execute an IOT instruction to force a data break.
You can read/write the Data Buffer to see of the data break worked correctly.
There is one unused decoded IOT instruction on the TC02, so maybe we can implement this same test capability.

We are making progress, but are not read to run diagnostics yet.

7/6/19
We can read now the Status Register A.
The Idle indicator is on when the controller is idle.
We can force a Select Error by selecting a drive that doesn't exist or executing Command 7, Select Error.
We can read now the Status Register B.

Loading a Move command into Status Register A causes the GO signal to the tape drive for 160ms and then it sends the STOP signal to the tape drive
The END error indicator is on, so it thinks that the tape went into the End Zone
The PWR CLR + ES signal goes high for 200ns and is clearing the MR1 flip-flop which clears GO
The END(1) signal on E27D goes high 160ms after the command which cause the PWR CLR + ES to go high
TP0 pulse 160 MS after command and MK END is high to it sets the END FF
TP0 should not go on until UP To Speed is active
0->WINDOW is high, and 150ms after the command goes low, then goes high after error
The Window Shift Register is active after the move command is sent, and eventually contains the code for END and stops the tape.
Where is the data for the Window Shift Register coming from? The G882s oscillate until they see real tape data
Why is TP1 active before the tape is up to speed? 
Why is TP ENABLE active without the tape moving?
SWTM\ on D24J is not low enough, -1.8V, and is enabling TP ENABLE
Swapped S107 in slot C18, no change
Removed R113 in slot D24, no change
Is there another FlipChip connected to SWTM\?

The plan is to pull of the FlipChips that drive and sink the SWTM\ signal, make sure that the wiring is OK, and then put the FlipChips back one at a time
Hopefully we can find one that is loading the signal too much.

7/7/19
I looked at the SWTM and SWTM\ signals in the TC01 DECtape controller in the PDP-8/I
The signals are wired through an S107 Inverter FlipChip and go between -3.8V and -0.4V when active and not active
Time to investigate all of the connections to SWTM\ on the TC02

We found another slower R202 where the faster S202 belongs, and replaced it with the correct part
After removing and replacing all of the FlipChips tied to the SWTM\ signal it is now -2.3V when active
The END error is no longer present when we command the TU55 DECtape drive to move

We don't see the GO signal go active at the TU55 command cable and STOP is active
The X STA signal on the input pin H of the S107 in slot C18 is a nice -4V pulse, but the inverted output on pin F only went to -1V
We replaced the S107 in slot C18 of the TC02 with a spare
The XSA DY signal looks OK now

GO at the DECtape Control cable goes active for 150ms and then goes inactive
The END error indicator is on, so we are back to chasing the original issue from yesterday

Mattis kindly punched the DECtape diags and DECtape formatter for us
I formatted a DECtape in PDP-9 format on my PDP-8/e
It was a little confusing because the word size in the formatter questions is in 12-bit words and the tape specification for the PDP-9 has 18-bit words
I think that I had it right with 384 decimal words to make 600 octal 12-bit words or 400 octal 18-bit words per block
The DECtape block size is the same on the PDP-9 and the PDP-10, but the PDP-10 uses it as 200 octal 36-bit words

7/13/19
We had LOTS of visitors today, so we didn't get much done on the TC02 debugging

We still see the END error go on about 160ms after we command the TU55 DECtape to move
We checked all of the circuitry that clears the Window Register that holds the Mark Track data
All of the signals that start the R303 170ms Integrating One-Shot in slot C20 running are working OK
That One-Shot starts another 70us One-Shot in slot C19 running
That One-Shot sets the UP TO SPEED Flip-Flop in slot D27
The Flip-Flop gets inverted by the S107 in slot S22
The rising edge of the signal from the inverter clears the Window Register

Unfortunately by the time the Window Register is cleared the random data from the G882 modules is decoded to make the MK END signal
The MK END signal is gated by the TP0 pulses and sets the END Flip-Flop in slot E28
At this point the STOP Flip-Flop clears and the tape drive motion stops

We need to determine why the END error is going on
Are the TP0 pulses supposed to go to the END Flip-Flop this soon?

It looks like TP0 is enabled by TP ENABLE, which is enabled by UP TO SPEED (1)
When UP TO SPEED goes active it creates 0 -> WINDOW which will clear the WINDOW register
We should check again to see when the TP0 pulses go active
We should verify the One-Shot timing for U = M to make sure that it is set to 140 ms

7/21/19
The R303 module in slot C20 needed to be readjusted to have pin D go low for 140ms (see page 10 section B2 in the schematics)
Adjusting the module did not improve the TU55 DECtape drive behavior
140ms after the Move command the UP TO SPEED flip-flop goes active and 0->WINDOW goes inactive
About 8ms after UP TO SPEED the MK END error signal goes high (see page 8 section C7 of the schematics)

It looks like the problem is in the TU55 DECtape drive
With a tape in place, if I manually spin the drive reel, the controller is happy until I stop spinning
Now I suspect that the drive motor is not switching from the tension to the drive mode when commanded to move
The drive works correctly when in the LOCAL mode, but not in the REMOTE mode
The motor control circuits must be working OK when controlled by the switches, but not by the tape command bus interface

The control bus signals look OK on both sides of the W513 module in slot B07 in the TU55 DECtape drive
We chased the signals that control the MOTION and DIRECTION flip-flops
The DIRECTION flip-flop works OK from the bus, but not the MOTION
It looks like ALL HALT is always on
This signal stops the tape motion if the processor halts

We looked at the RUN (1) B2 signal in the TC02 that is ALL HALT in the TU55
It doesn't change when the processor is running or halted

We looked at RUN (1) B from the processor, and it changes when the processor is running or halted
The S107 inverter in slot F18 that makes the RUN (1) B2 from RUN (1) B is broken
We don't have a spare, so we will need to fix it

7/21/19
Transistor Q5 on the S107 in slot F18 in the TC02 controller was completely open
We replaced the Q5 transistor on the S107, but it didn't fix the inverter
Then we discovered that the leads on the replacement transistors were CBE on the EBC on original transistor
We removed and reversed the transistor, and now the inverter works OK.
In the process of testing and comparing several S107 inverters we found a bad Q2 and D3 clamp diode

Yay, the DECtape now moves when we send a MOVE command to the TC02 DECtape controller

The PDP-9 runs the TC02 Basic Exerciser

We loaded the paper tape for MAINDEC-9A D3BB-PB TC02 Basic Exerciser that Mattis Lind punched and sent us
We ran test #0, Basic Motion
This test puts the tape in Forward Motion and watches for the End Mark on the Mark Track, then reverses the motion of the tape
You can see from the indicator lights that the TC02 controller behavior is not correct, so more debugging is needed

We also tried test #11, Instruction test
This immediately halted at 03762, so the controller is generating an interrupt when it should not
One more thing to fix...

7/28/19
Today MAINDEC-9A D3BB-PB TC02 Basic Exerciser test #11, Instruction test, is halting at 004021 with bit #9 on in the AC
This means that Status Register A could not be set and read back with the same value
The diag will run when single-stepped at a slow repetition rate.
So we probably have a partially failing FlipChip.

We tried the motion tests that start at 004222.
It halts at 004405 where it should interrupt when PIE=1
Not sure what that means yet, or what is broken.

8/3/19
We continued with MAINDEC-9A D3BB-PB TC02 Basic Exerciser test #0 that just moves the tape from end to end
After a few minutes the tape stopped moving
The FWD and REV signals to the TU55 tape drive were both active so it would not move
We found a bad Q4 transistor on the S107 inverter in slot A09
We replaced the transistor and now the DECtape drive moves again

We looked at the data from the TU55 while it was in motion
Timing Track, Mark Track, Data 1, and Data 2 all looked OK
Data 0 looked really crappy
The input on Slot C26 Pins D & J from the tape head has a -500mV bias and should have none.
The input on pins K & D looks OK

We disconnected the data cable to the lower (not debugged yet) drive, no change
We measured the resistance of the head coils and found that the D0+ connection was open
We replaced the head with one from a drive that was in poor condition and that was donated by Victor Nahigian a few months ago
We measured the replacement head before we removed it to make sure that it was OK, it was
The data looks OK now, and running MAINDEC-9A D3BB-PB TC02 Basic Exerciser test #0 still moves the tape from end to end
This means that at least the Timing and Mark tracks are being read and interpreted

YouTube Video


We tried MAINDEC-9A D3BB-PB TC02 Basic Exerciser test #1, Search Scope Loop
We can see block numbers counting in the AC when this is running
That means that a large amount of the TC02 controller and the TU55 DECtape drive is working now

Oops, the core memory broke
Everything reads as zeros
I guess that is what we will work on tomorrow

8/4/19
The memory is working again
The B310 delay line in slot EF36 that takes CLK and makes POST CLK\ had a non-monotonic output on pin FU so the B602 pulse amplifier in slot E34 that takes POST CLK\ and makes POST CLK was double triggering
That made a mess of the core memory subsystem timing
We replaced the B310 with spare and are back to debugging the TC02 DECtape controller

Alex found a bad diode D7 on the B310, so we will repair it and put it back in the PDP-9.

8/10/19
Bit 1 from the DECtape is not getting latched into the RWB 4 Flip-Flop
It looks like the S603 Pulse Amplifier in slot C17 has a dead pin M output.
Mike Lill found a bad DEC-664 diode D20 and Emilio replaced it with a 1N4149 diode
We put the S603 back in the TC02 and now the RWB 4 flip-flop is working

The R201 Flip-Flop in slot C02 for RWB1 would not latch tape data so we were missing one bit of the data from the DECtape
We replaced it with an unknown spare and got lucky, it works
Mike Lill found a bad transistor on the broken board, so we will replace it and add it to our spares.

Alex found that the diode D7 on the B310 delay line from the core memory was a diode in one direction and a resistor in the other
He replaced D7 on the broken B310 in slot EF36 in the Core Memory with a 1N4148 and put the B310 back in the PDP-9
The memory is still working.

Ran MAINDEC-9A D3BB-PB TC02 Basic Exerciser test #1, Search Scope Loop
We can see the block number in the AC on the console display count up and down as the tape moves from end to end

Ran MAINDEC-9A D3BB-PB TC02 Basic Exerciser test #4, Search Find All Blocks
Printout said that there was no interrupt when it found the end of the tape.
ENI(1) on pin P of the R113 in slot D18 is not low when pin R goes low (schematic page 16 section B2)
ENI Flip-Flop goes on for 200ns and then turns back off
I swapped the S202 dual flip-flop from slot A05 with another from A4, and now the interrupt enable stays on.
That means that the problem is in the S202 on slot A5

We have lots of spare R-series flipchips, but very few spares of the faster S-series flip-chips
Mike Lill checked all of the diodes and transistors on the S202 with a DVM, but all looked OK
We will have do some active testing to determine what is broken on this flipchip, and then repair it

8/12/19
Since we are only using TU55 drive #0 we don't need any bits in the USR part of Status Register A
We tagged the misbehaving S202 flipchip from slot A05 so we can fix it later
We swapped the S202 flipchips between slots A01 (bits 0 & 1 of the USR) and A05 (FR bit 3 and IEN) in Status Register A
We ran MAINDEC-9A D3BB-PB TC02 Basic Exerciser test #11, TC02 Instruction Test
Halted at 04034
This is much further in the diag that we have gotten before, so the behavior of Status Register A seems to have improved with the S202 flipchip swap
This part of the diag is testing the XOR capabilities of Status Register A
The AC contains a copy of Status Register A, which should be all zeros
The AC contained 002000 so bit #7 is on and should not be
We swapped the S202 flipchips between slots A02 and A04 to see if the Status Register A issue would move
This time the diag halted at 04657, so moving the S202 modules again improved the behavior of Status Register A
It is possible that some of the transistors on the S202 modules now in slots A01 and A02 have low drive capability, and these slots have a lower load than slots A04 and A05

The halt at 04656 is where the diag was waitied 56 ms for a second databreak (DMA), and it didn't happen
The MR (Mark Track Error) light is lit, so it is possible that the MR error stopped the tape and therefore stopped the second databreak from happening.
The MR error could be from tape head skew because we replaced the tape head, problems with the tape that I formatted on my PDP-8/e, or problems in the TC02 controller
I will format another DECtape in PDP-9 format, and we can also try a PDP-10 tape we have to eliminate the tape format problem
We can borrow a different TU55 from the PDP-8/I to eliminate the tape head skew problem
We can continue digging into the TC02 controller to see if something else is broken

8/17/19
So, three issues with the TC02 to fix; interrupt when it when it shouldn't, no interrupt when it should, and a Mark Track error when reading tape
We will work in the Mark Track error first

We ran MAINDEC-9A D3BB-PB TC02 Basic Exerciser test #11, TC02 Instruction Test
Tried three more DECtapes, two formatted on my 8/e (one on the left drive and one on the right drive), and one formatted on the PDP-10 at UNH in the 1970s
All tapes show the same error in the same place on the tape
That eliminates the DECtape formatting as the source of the problem
The problem is either in the electronics in the TC02, or is caused by a head skew problem in the repaired TU55 tape drive
We will swap the TU55 with one from the PDP-8/I so we can eliminate the replaced tape head as a source of the problem

We looked at the signals that can set the MKTK flipflop on sheet 5 of the TC02 schematics
Rising edge of C0 (0) and the signal E28J being at ground sets the MKTK flipflop
E28J goes low just 250ns after the rising edge of C0 (0)
ST IDLE (0) going high causes E28J to go low
This looks like it might be a timing error in C0 (0) where the C0 (0) rising edge is a little early and causes the MKTK flipflop to set
The TC02 timing diagrams show the period of the C0 (0) pulses being consistent
In this case the C0 (0) pulses period was short
The Counter is driven by the TP0 pulses which are derived from the READ T TRK (0) pulses that are derived from G882 and the timing tracks on the DECtape
We need to look at the Timing Track data because that is most sensitive to tape head skew

8/18/19
I rewired the AC power in the I/O cabinet that feeds the TU55 tape drives, and the main power cord
Now the wiring looks like DEC did it at the factory

I thought that the interrupt issue might be easier to fix than the MKTK error, so I looked into that
The MAINDEC-9A D3BB-PB TC02 Basic Exerciser test #11, TC02 Instruction Test is halting at 03762 saying that it is interrupting when there are no DT or DFT flags
Both the ENI(1) and the BEF(1) v BDTF(1) signals are at ground (inactive), so the INT signal is also at ground (Inactive)
The REQ(1) and INT signals going into the S111 module at F16 are both at ground (inactive) but the output PROG INT REQ on the I/O bus is at ground (active)
I checked all of the diodes and transistors on the S111 module, and all looked OK
Pin T on the S111 module is slightly below ground, so the transistor Q3 on the S111 module should be off, and PROG INT REQ signal should be -3V (inactve)
I swapped the S111 module and there was no change
Something else on the PDP-9's I/O bus must be pulling the signal high

That was a wild goose chase
I didn't have the console terminal connected, so the TTY input port was generating the interrupt request
I connected the console terminal, and now it halts at 04656 with a MT error
I will work on that next weekend

To-Do:
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.
 
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, 5/18/19 (Failed with a few errors)
MAINDEC-9A-D0DB-D-JMP Self Test, 5/18/19
MAINDEC-9A-D0EA-D JMP Y - Interrupt Test, 5/18/19
MAINDEC-9A-D0FA-D JMS Y TEST, 5/18/19
MAINDEC-9A-D01A-D Instruction Test Part 1, 5/18/19
MAINDEC-9A-D02A-D Instruction Test Part 2, 5/18/19
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, 5/26/19
MAINDEC-9A-D2BA-D PDP-9 TTY Test, 5/18/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, replaced Q4, 2N3669, 3/17/19
B169 Inverter (Multiplexor) in slot B26 of the processor with a spare, 3/30/19
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
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

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
S202 Dual flip-flop from slot A5 needs repair, 8/10/19
S603 Pulse Amplifier in slot C17, replaced D20 8/10/19

Comments