Hello and welcome back. If you follow the channel, you already know
that my HP 9825, famously used by Mr. Fancy Pants in the HP catalog,
recently died from a power supply failure that caused an over-voltage. The computer died that is,
not Mr. Fancy Pants whom we found very alive and still very kicking as Keysight’s Principal
Metrologist Emeritus. Anyhow, the 5V became 13V, which is a big ouchie if you are a TTL chip.
The 9825 has been languishing on my bench for a while, eclipsed by even more precious
Apollo hardware. Last time we worked on it, we repaired the keyboard/display assembly,
which uses the spectacular HDSP-2000 dot matrix LED chips.
And after we secured new old displays and changed a whole bunch of bad chips,
it finally boots fine on its own, with all its original boards.
But we are not quite done. We have not yet looked at the two last boards,
the tape drive and its controller. And we can already tell they don’t quite work properly.
All right, so, last stretch for the 9825. It's all working except the tape drive. And the tape drive
is this. Actually it's the largest board, it has lots and lots of ICs, about 40 ICs. And
probably we have five of them that are dead. And I am all equipped with the pants and then I have
Eric so i have to be successful. And I have made a good DC 100 tape, I think, with the plastiband.
Ah yes, lest I forget, before you can even attempt to use the HP tape drives,
you have to refurbish the infamous DC100 tape cartridges,
and re-coat the equally infamous gooey tape drive capstans. I have other episodes on the subject,
accurately named “tape salad”. But this is already all done, we are good to go.
So it's just been renovated, so we have a tape here. And so far tape doesn't even move.
So I am going to look at very simple signals. There is one that says "go", motor on,
and then drives the whole servo thing for the motor. And this is the command latch on the I/O.
And there's one that says "run/stop". So I am on latch, run/stop, and go,
and I should hopefully see a go signal. Okay, I think we got something here. If I turn it on,
we get a latch. So it tried to address the tape.
But I see no "go" signal at all. [Eric] That's looking at the output [Marc] And if I do rewind,
step, load, list - nothing, it's dead. Okay, so, looks like we have a more fundamental
problem than we thought. If I do REW it should rewind, we just tested it on the other machine.
And I get the run light. So here we have the run light on and it's stuck.
So it looks like the CPU is hanging, waiting for the board to answer.
So let’s check if the handshake between the two is even working. On the HP 9825, the CPU
talks to its interfaces by reading or writing to a specific register on the card, register 5.
And one of the first circuits is a decoder that detects just that. It should give us “read 5” and
“write 5” pulses if the board is receiving the commands from the CPU. Let’s see if that works.
So we are seeing some activity on the board.
That's when it's addressed, that's when there's a transaction, and those are "read 5" and "write 5",
the command and the status lines. So if I do reset, I get a clean reset, that's fine.
If I do rewind, it's doing r5, which is trying to read the status. That's why it's getting
stuck. So something is not happening that it expects. But at least it addressed the board.
Let me try to trigger on the "write 5", see if it gives it any commands.
Let me do another reset. And then we do "rewind", and we expect it to give it a rewind command. But
it doesn't re-trigger. [Eric] Nothing! [Marc] So it never tries to give it a rewind command. [Eric]
No write 5. [Marc] Your theory, Eric, is that it's seeing something on the status it doesn't
like and never even attempts to... [Eric] Right. So presumably it's trying to write, maybe clear
out some other latches. So it tries to clear the latch and then it checks the status byte a bunch
of times, and that bit is never going to the state it wants. And so then it just hangs there forever.
Testing Eric’s theory is easy, we just need to look at the status
bits that the CPU is trying to to read. They are all there on U16.
That’s many logic signals, so we are going to use the digital inputs of our DSO scope.
Okay, reset. Okay, blunk, reset! It's all inverted logic, we all have ones on all of our latches.
Let me do a rewind. Woohoo,
things happen on rewind!
Okay, we got something. We got data! [Eric] So bus 2 would be the value of data that's from the
status register latch. So presumably that means something. [Marc] Okay we can decode that. Eric,
you think that's a suspicious status bite. [Eric] It is very suspicious! [Marc] Can you interpreting
0 0 0 1 0 0 0 0, which is actually the contrary of that. [Eric] So we see 0 0 1 0. I'm sorry,
0 0 0 1. But that's inverted, so it's actually 1 1 1 0. [Marc] So we have beginning of tape,
which we are not at. That shouldn't be on. [Eric] Correct. [Marc] Servo fail,
which well, the servo might have failed. Cartridge out, it's definitely in.
This one doesn't even go through the latch, it's grounded. [Eric] Inter-record gap,
that is also a one. [Marc] That is also a one. That is a zero. [Eric]
That is correct. [Marc] But this doesn't go through the latch. So anything that's
connected to the latch is one. [Eric] Very suspicious! [Marc] Suspicious! Uh, a 9308,
what the heck is that? Take it out and test it on the bench! [Eric] A little breadboard circuit?
Here we have the masters at work. Master Eric, desoldering a suspicious chip. Latch is off,
and it's on Master Ken's test setup. Master Ken, do your magic. [Ken] Okay. [Marc] Is it a good
latch, or is it a bad latch? [Ken] It's a very bad latch! So it's turned into an AND gate. [Marc] Oh,
any one input would turn all the others on? [Ken] No, all of them high turns all the outputs
high. [Marc] Oh that's weird! [Ken] Very weird. On the good news, the clear input will still pull it
low, but the clock just pulls it low temporarily and it's not latching the data, so... [Eric] I
think we may have accidentally invented a Field Programmable Gate. [laughter] [Marc] Fusible
one. [Eric] Yes! [Marc] Okay, well, good, so we have some new ones from Marcel, because Marcel
has everything. [Ken] Yes ,and I've tested these, they latch. [Marc] Can you show one that latches?
[Ken] Okay, so this one. Now we have our clear, we'll clear it. And then our clock line.
You can see that we can latch data into the latch. [Marc] Oh, okay, this works! All right! [Ken] And
then we can clear the latch. [Marc] Okay, so that's a good one. [Ken] This one,
very nice latching action. [Marc] That's what we want to see. Sweet!
Okay, so Eric as re-soldered the chip. [Eric] Right there! [Marc] You
want to turn it on? [Eric] Yeah, let's turn it on, give it a shot.
So this is all connected here, the probes are connected the same way as before.
[Marc] Oh, it's unhappy. [Eric] Yeah, so let's try the same command here. [Marc] No, no, something
is not good with it. Maybe if I do... Okay, try it. It's hanging. There is the run light hanging.
[Eric] Is it okay now? [Marc] Yeah, but I don't have the tape [in]. [Eric] Okay. [Marc]
Yeah! [Eric] Hey! That's promising! [Marc] But it did hang. So what might have happened,
when it tries [for the first time] it looks for the autoload file. We could do a reset,
and do rewind. It hangs. So something's not quite happening. So we have another chip that's bad.
So we must figure out what happened. Okay,
but we have progress! [Eric] Small progress! [Marc] Okay, well, we fixed something!
[Later]
So I have Eric and Master Ken hard at work, trying to figure what's wrong with our tape while
I'm monkeying with Mike on the Apollo transponder. [Eric] So we're going through here, and trying
to see what the program is doing when it gets stuck in this state. So we're trying to rewind,
and it started, but then it immediately stopped. And the tape is no longer
moving. [Marc] Right! [Eric] And it's caught in a loop somewhere. And so the idea is to look at
the logic analyzer, to look at the address and data buses, to see where it's getting
stuck. [Marc] Right. [Eric] Try and match that up with the ROM and figure out why it
doesn't like the tape right now. [Marc] Yeah, so we thought that would be the fastest way,
instead of trying to figure out the missing signal, try to look at what the processor is
doing. And see if it tells us where it's stuck and what it's missing. What's it telling you?
[Eric] What is it telling me? It's telling me a whole bunch of numbers in octal. So we can see
addresses here in the address bus, data on the data bus. So a number that's like
207 333 for example that corresponds to memory address in ROM. And ken here has lined that up
with the actual program listing itself, and so we can tell where it's getting stuck. [Ken] And we
found that it's in this code called msbat, which measures the distance from the beginning or end
of tape. So it's basically a fairly complicated code that tries to go 30 inches, sees if it hits
the beginning or end of tape hole, measures the distance, tries to figure out where it is. And we
think it's always getting stuck with the beginning / end of tape mark, and getting confused.
[Marc] So back in our tape salad episodes, we saw that beginning and end of tape were marked by a
complex pattern of small holes in the tape. It could be that the optical detection of the hole
is bad in the drive itself, or that some logic on the board involved in the hole detection is bad.
[Ken] I'm saying U15, the flip flop here. [Marc] U15? [Ken] Other people suspect it might be the
signal from the tape. [Marc] Yeah, it might be the signal from the tape drive, or this, I don't know.
So we first suspected the overvoltage fried a lamp in our tape drive.
But it turns out, our very advanced drive had been upgraded to infrared LEDs,
so we saw nothing. Fortunately, the camera is sensitive to it,
and and we could see it in the footage. So the LED is fine, it’s probably not the drive itself.
So you found the culprit? [Eric] We believe so. There is a flip-flop,
right here. And that is supposed to latch when the hole detect gets asserted. So there's two
outputs here, there's the Q-bar ,which is the inverted output, and this is the Q output,
which is the non-inverted output. And one of those is not working.
[Ken] So this is the bad chip that I put into a test setup. And it should flip-flop, but nothing
is happening. If you look very closely, you can see that [Marc] oh yeah! [Ken] there's one light
here that is is slightly illuminated. [Marc] Oh so, it's very sick! [Ken] It's very unhappy.
[Marc] So we exchanged the bad flip flop with a one that was properly
behaved and was actually flipping and flopping.
But that still did not fix our problem. Until Eric made another bad chip discovery.
You found another bad chip? [Eric] We have another bad chip. [Marc] Which one is it? [Eric] This one,
is the 8T20. It is a one-shot pulse generator. This guy here on the schematic. Takes the analog
tach signal coming in, and turns it into a digital pulse train on the output. So, take a look at the
oscilloscope screen. I'm going to spin this with my finger - I should probably turn it on first...
[Marc] This is all live! [Eric] So I can spin this with my finger here. [Marc] Yeah. So that's
the tachometer, it's an optical pickup, basically, on the capstan. [Eric] So it senses motion of the
capstan. Here's the input signal. And as you can see, there's no output signal. [Marc] Zippo, zero.
And it's at one point something volts, right? [Eric] Yeah. So it should be a pulse train,
and it's not. It's not even a zero or a one, it's somewhere in the middle. [Marc] Yeah,
so the processor doesn't know that the thing is spinning, and it says stalled, and that's it.
And unfortunately it's this old Signetics chip
that i don't have in my collection. So I have to get it from eBay.
And that's going to do it for today, right, we're kind of stuck I think. [Eric] We're stuck for now.
[Much later]
[marc] So, Eric is back,
and you've replaced the chip. [Eric] I have. It took a while, you can see my hair is longer.
[Marc] You've grown a beard! [Eric] Not yet! [Marc] And, and, did it help?
Oh, oh, I hear it. [Eric] So the drive is moving now. Error 60, that just means that the file that
it's trying to load is a null file. So it's just the first file on the tape here. [Marc] So you
tried to read the tape. [Eric] It tried to read the tape! [Marc] Which is huge progress! This
is the first time this has ever happened. [Eric] Much more progress, oh yeah. This
is great because it means that we've closed the servo loop, right, we're getting the tach signal,
we're controlling the motor speed correctly. In fact, let's try a rewind.
And that was successful! So it just rewound the tape and fast forwarded it.
[Marc] Can you do it again? Okay we have life in the tape! I thought you had formatted a little
bit of it, and could read some tracks on it? [Eric] Yeah let me let me try and read some some
tracks. I forget the command though. [Marc] Oh I did too. [Eric] tlist. [Marc] tlist, tape list.
Oh, it means you have written to the tape. So you were able to initialize it. [Eric] There
are some files on, it but these are all null files. [Marc] Okay, let's see if we can store
a file on the tape, and if that's the case, we might be done! [Eric] Maybe!
[Marc] I just wrote a very small program and loaded it on the tape. So right now if I do "run",
nothing is happening because I have no programs in there. Try to load, it's "ldf 0", load file zero.
All right, it read it. And it says "Victory"! it ran it! That's what the program is supposed to
do! So, that was it! [Eric] Tape works! [Marc] Tape works, everything works!
So we put it back together, and hope for the best! [Eric] That's right!
Yes, that was our last known fault and we repaired it! We survived our HP/Apollo 13 disaster!
It’s back on earth with us, all working! Time for a little celebration!
So the 9825 is alive again! And we have put on the top a lineup of all the chips
that we found were bad. And if you start from the right, those were the two memory cards.
We have two Intel chips that went bad. The second one, Ken decapped, it doesn't exist anymore,
and reverse engineered it actually. Then we had the one bad ROM and then various bunch of logic.
The next one up is KDP. And we had all the HP led chips that went bad. I broke a couple of them
to make good pictures of the inside. So imagine there were another four. And then a whole bad
bunch of logic chips. Eric, you looked at them, there's Signetics,
Texas... [Eric] Yeah, there's a bunch of different manufacturers. It's not just one. [Marc] Not one
particular series more than the other: we had LS chips go bad, standard chips go bad.
And that's what you, Eric, you just took out of the tape controller. [Eric] Right. Yeah,
Signetics, Fairchild all the different manufacturers. [marc] Oh, Fairchild too. So
it's not that much process depend, just don't put 14 volts on on your TTL, that's no good.
So, all in all, it was 29 bad chips in the thing.
So finally, yay, our 9825 is back! Actually, not only this one,
but my 3 other ones that we fixed, mainly off camera, while we were all warmed up. One last
short but important episode still to come though, as I’ll have to tell you how I made
an imitation HP crowbar circuit that I put on each and everyone of my now 4 functioning HP 9825s,
so they don’t get fried by their power supply again. See you then!