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 5V temporarily became 13V, with is a big ouchy if you are a TTL chip.
We repaired the faulty supply quite easily in the previous episode, and identified the cause of the
failure: the main regulating power transistor lost its will to live, transformed itself into a
perfect short, and connected the unregulated 13 Volts straight on the 5 Volts output. Big oof.
Now before I go any further, I want to thank the many commenters that a)
felt sorry and gave their encouragements and b) recommended that I add a crowbar to the supply.
Now obviously, vision in retrospect is always 20/20. Guess what, I am now acutely aware
that adding a crowbar would have been a good idea. No need to rub it in really.
Actually, my first reaction, literally within minutes after I identified the root cause of
the failure, was to get online and warn everyone in the vintage HP community. My post title read:
“HP 9825 power supply crowbar mod could have saved disaster”, and proposed a solution.
But I don’t deserve any credit for the solution,
as HP engineers themselves added a little crowbar PCB hanging off the output fingers. But sadly that
was not done on the HP 9825. It only appeared on the later HP 9835. HP aficionado Rik Bos noticed,
took a picture and made everyone aware. The thread got taken very seriously,
and one of the members has already designed a board and made it available to the group.
Sadly, like all original HP 9825s out there,
mine did not have the crowbar modification. So, now I’m faced with a computer that does
not boot. I don’t know if we’ll succeed in repairing it, but I can certainly tell you
that this machine is well worth the effort and that we are going to try our darnest.
Because, you see, at a time when Intel’s 8008, and soon to come 8080 microprocessors had
8 bits, this giant one living under the metal fins, designed in 1973, had a full 16 bits!
It would take Intel’s 286 and Motorola’s 68000, almost 10 years later, to finally surpass it.
But this is often overlooked, as HP kept the CPD processor to itself.
Like HP’s 8-bit Nanoprocessor this advanced 16 bit processor was never sold outside of HP.
Our knowledge about it comes from a few documents made available by some of the original engineers,
and at that relatively recently.
It was groundbreaking in many ways. First of all,
HP opted to manufacture the processor using their NMOS-II transistor process,
developed at their Loveland, Colorado location. Hence the little HP Loveland heart on the chip.
Most microprocessors had used PMOS transistors up to then, notably Intel’s 4004 and 8008,
or my slow as molasses SC/MP, my very first microprocessor.
Intel’s soon to be released 8080 would also use NMOS, and had on the order of 4,500 transistors.
But HP’s processor had a whopping 24,000 transistors. Even with their 5 micron process,
that was way too much to fit into a single chip, and it actually took a collection of 7 or 8 chips
to make it. They are attached on a spectacular gold ceramic hybrid package, with 82 pins.
Here is the Binary Processor Chip or BPC, the main processor. This is the Extended Math Chip,
or EMC, the floating point co-processor. And here is the IOC, which stands for IO processor.
The 4 smaller chips are the Bidirectional Buffers,
or BIBs, used as bus amplifiers to drive signals to the outside world.
In some later devices, there was also an extra address expansion chip, the AEC. Altogether
they formed what is sometimes known as the CPD processor, for the Calculator Product Division,
also located, as you can tell, near the mountains of Colorado.
But a daring as it is, the processor architecture is a derivative of the HP 2116,
HP’s first computer from the 1960s,
also a 16 bit machine. It uses similar register, instructions, and IO architecture.
I hope you are starting to get a real appreciation or this machine,
and understand why I want to save it so badly.
Aha. No beeps, but no T, not starting up.
So at this point we have a processor that doesn't boot, so we got to go to the basics
here. And the first thing we would go after is the clock, but Carl found that there was a little
bit here called CK. That ought to be the clock, so we'll try that first. So clock we go.
Ground
and CK.
I wish it would be something simple like, that but I'm afraid it's way more involved.
All right, clock, here we go. And we have clock. And we have a weird clock.
We have a wobbly clock. About 12 Megahertz, so that's correct, that's what it should be.
Wobble is explained - actually there is almost nothing in the service manual, but
the little bit at least tells us that the clock is 12 Megahertz, but it's frequency modulated
four percent. So it it's a spread spectrum clock. This is to lower the EMI and the
emitted frequency parasitic frequencies. And so this is exactly what we observed, that's normal.
Actually I finally found a schematic with the processor board, and you can see the
clock circuit here. I looked it up, this is actually a VCO, a double VCO chip. So
you have a VCO that shoots and modulates another VCO, that's how they do the FM.
And then, there's a flip-flop divide-by-two, and they should get two phases of the clock
in opposite polarity, phase one and phase two, so we need to check that.
So I got phase one with a test point and phase two - I can tell from the schematics it's at
the output of this gate here, pin three. So we should get 6 Megahertz out of phase.
One, two, three, nothing goes. We sure do. Yeah, so out of phase perfectly,
5.98 [MHz]. If i put more cycles in it, 5.99 [MHz]. So it's perfect.
Woohoo. This is pretty significant. It means we have at least all the chips
in that TTL divider that survived. They are not all dead, which I was really afraid of.
The next step would be to figure out if the reset circuit works. And fortunately,
we have this hand-drawn schematics from Tony Duell. And Tony is well-known to people that
do calculators, because he's kind of the Ken Shirriff of Hewlett-Packard calculators.
He reverse-engineers all of them, and he has also reverse-engineered the 9825.
Seems like POP is Power On Preset, that's what causes the resets - the
manual alludes to it - but it's super complicated. It takes this signal in, which is Power Valid
from the power supply. We checked that, because we repaired the power supply, so we looked at that.
Then it goes in there, gets inverted and
it's on the set side of the J-K flip-flop. And so this, from what I understand, when that goes up,
it's when the processor starts - or something like that. But it's more complicated than that:
it feeds itself back, there is some stuff on the reset that's sort of incomprehensible. But then,
there is an internal document on on the BPC processor, and it seems to show clearly that
during the power up, it just should go down and it goes up. And then it triggers the first reads
from memory at address 40. So I should check that I get that.
Conveniently Not-POP is a test point, so i can just get to it. I guess I just turn it on.
Ah, sure enough, okay right, right there! So this is exactly what should happen,
right. The clock comes on, stabilizes, and then the reset goes up.
OK, we got the basics, clock phases are there, the POP reset signal seems to work fine.
What happens next is a little bit more nebulous.
The “How They Do Dat” HP internal document shows that the first memory fetch is from address 4-0
in octal. But this detailed document, with the goofy illustrations, is all about the
inner workings of the processor gates, and says little on how you would use this chip.
This is an engineer proudly showing off his clever design, which we confirm, is very clever.
But all I have to go on are cryptic timing diagrams with little explanations,
where the majority of the signals are internal processor ones that no one can even see.
Which one in this giant mess is the important one?
From signal names and looking at the schematics, I could make a good guess. It seems to be STM,
which stands for Start Memory cycle. This seems to signal the beginning of the memory cycle,
specifically when a new address is stable on the bus.
Another interesting one is SMC, standing for Synchronous Memory Complete. This seems to
indicate when the data is read from the bus. If these two have life, it would indicate
that the processor is trying to read memory and trying to boot up. Which would be a good thing.
The next step would be to see if it tries to fetch something on the memory side of
things. And that's the line STM, start memory. Which is also available somewhere. I think.
I see it right here: STM. So we'll monitor that, and see if it wiggles. And what I expect to see
is, it to start accessing memory as soon as it's up. So I'm once again in single shot.
Oh, okay. That's exactly it, right? Clock is on, comes out of reset, memory accesses. But
so far it's doing what it should, which is a good sign. My BPC processor is not completely fried.
Let's make a longer trace here and see if it eventually quits.
Still going.
Okay. It does quit. So it tries a few memory accesses, and then gives up. All right. I don't
know that we escape the logic analyzer on this one. It's trying to start up, but not starting up.
OK, our processor is not completely dead and trying to access memory,
but still not able to boot. Let’s check one more signal, SMC, the signal that would indicate
that the data part of the memory cycle is happening, or at least trying to happen.
So I could find my SMC signal. [Let's] see we if we have the end of memory cycles going on.
And... we do! Oh it's slow because this is just 10 Volts. So yeah, we do!
We have cycles, memory cycles. Let's redo it at a little bit higher resolution.
Okay here we go, got it. Yeah that is totally not as totally Kosher here,
so we have the reset and then we have the memory address. When this goes down,
the address is on the bus, and when this goes down, the data is on the bus. So it goes
and completes its memory cycles, so, so far everything checks out.
So we’ve pretty much arrived at the end of the road with the easy scope and voltmeter debug. We
need to figure out what’s going on on the bus and what the processor is seeing when trying to access
it. This will necessitate the Logic Analyzer, and is a whole step up in debugging complexity.
Setting it such an instrument up is a whole adventure,
and interpreting the results necessitates a much deeper understanding of the 9825,
so we’ll leave that for the next episode. See you soon!
Oh joy, oh joy, it's a multiplexed bus! So the address comes first, then you have latch it,
and the data comes out, you have to read it.