PDP-11 Floating Point Instruction Repair - Part 3
With basic functionality restored, we need to re-run the floating point diagnostics test (BKEAB0) and address any remaining problems.
Running The Diagnostics
When running the diagnostics, we unsurprisingly receive an error printed to the console.
ADR PS SP ANS1 ANS2
-----------------------------------
004226 000050 000634 177520 017752
004226 000050 000634 177520 017752
004226 000050 000634 177520 017752
In this case, the error was in test 21, a basic subtraction. The first 16-bits were correct, but the lower 16 bits did not match the expected answer.

We should have gotten 177520,017552 instead 177520 017752 was returned by the computer. If we scrutinise the numbers closely we see that the 7th bit is set when it's not supposed to be, 552≠752.
Identifying the Faulty Component
What we need to do now is identify where bit 7 is coming from and the path its taking through the Floating Point unit.

Referring to back to the block diagram, bit 7 has a very limited path it can take through the Floating Point unit. We trust the extended instruction set board so we can rule out any bits coming off from elsewhere in the system.
The only possibilities are the bus drivers, FDR Mux, HSR Reg or MSR Reg. Initially, I spent a considerable amount of time attempting to track bit 7 throughout the microcode routine, unfortunately it was just too complex to track it without building a simulation, and I did not have time for that.
Switching tactic, I decided to exhaustively check all possible locations. I started with the FDR Mux and spent a lot of time trying to check all of its possible states by checking it on every micro state. I was not able to check every state but I was not able to identify any issues either.

Moving on to the HSR and MSR registers I begin by inspecting the two chips that are used for bits 7. Not finding anything, I decided to check some of the other chips in the same area. I found that the chip that does bits 8 to 11 was bad.

Now I am just waiting for a replacement chip to arrive from Ebay.
Bonus Fix
While I was debugging the system I had a small program running, it was just subtracting two floating point numbers in a loop. For about half an hour the program is running without issue then I noticed out of the corner of my eye that the microcode pattern head changed, it did not look the same as before.
Single stepping through the microcode it was immediately obvious that something had broken and it was stuck in a very tight microcode loop.

The first thing to check was the BUT (Branch Microcode Test). After a couple minutes of familiarising myself with BUT hardware used in the FP board I was able to track the the BUT MUX and BUT flags.

After a few minutes of investigation I was able to identify that the chip that had failed was E09, the output had failed and it was only able to drive the line to 2V.
Replacing the 74H50 fix the microcode loop and the FP unit was restored to its previously less broken state.