Next, a friend is doing a mass mailing for a charitable organization but discovered that they required the mailing list in a very specific format. Python and some hand editing to the rescue, eventually producing 250 properly formatted addresses.
And lastly, family came over tonight which is a priority over computers.
HP 1000 RESTORATION
7970E tape drive
I entered my write program into the HP2100 simulator, which was set up as an HP 1000 F with the 7970E drive and loaded with a 'blank tape' file. My program looped waiting for the flag to write out a word, just as the real machine does.
This reinforces my belief that I don't understand the IO programming well enough to test the tape drive, at least with the current code I produced. I should have a diagnostic tape to do testing this weekend, but if I have time and can figure out the defects in my approach, I may try some more hand code.
Since I was seeing some action from the keyboard, but nothing rational based on the key being pressed, I disconnected from the monitor itself and decided to test the keyboard separately. I have to supply +5 V to the keyboard and then watch the various output signals to see how it is registering key-presses.
It was a bit more complicated than it seemed. The keyboard receives addresses from the monitor, cycling continually through all the keys by sending a row number and a column number while it watches the output of a single bit signal.
Since the row and column inputs had pullup resistors, I only had to ground the pins I wanted at 0 and could set up the address for a specific key. The output bit is an open collector circuit, with no pullup resistor, so I had to supply one for the testing.
The result was good - the keyboard is working perfectly and I understand the pin assignments perfectly. However, it still doesn't work with the monitor. There are two possibilities. First, I am using the 'extended keyboard', 02620-60061 instead of the standard one. Second, the monitor PCB may be malfunctioning.
This weekend I will put the scope or logic analyzer on the pins from the monitor to verify that the monitor is polling all the keys in a repeated sequence. If so, I can then pull the single input bit low at random times to signal characters being pressed - if the monitor doesn't respond, it is likely the board.
As a final check to determine whether it is incorrect keyboard or logic board problem, I can set up some TTL logic to pull the single input bit low only when the desired row and column numbers are output. This will either result in that chosen character marching across the screen or tell me I have some bad logic on the monitor board.
7906 disk drive
Having spotted a resistor on the control PCB which will show me a possible cause of the Disk Fault condition, I hooked up a probe and watched the signal. This signal comes from a chain of connections through all the PCBs plus some microswitches and thermal switches.
When all the switches and links are complete, it delivers -24 volts to a a transistor circuit that operates as an OR gate, switching it off. The other leg of the gate comes from a power supply testing circuit that verifies certain key voltages are present. The output of the OR gate is the interlock fault signal that my control board insists is on, thus generating a Disk Fault.