PDP-9 Restoration Blog Starting 2019
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.
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.
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.
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.
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 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.
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.
We were able to successfully run other diagnostics, but not at full speed.
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.
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.
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.
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.
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.
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.
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.
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!
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.
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.
We went through the Slice Level Setup procedure in section 184.108.40.206 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.
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.
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
- 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
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.
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.
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.
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.
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.
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.
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.
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
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
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
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
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...
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.
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
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
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.
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
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