9810 service manual


Time to look after my 9810! Tony was so kind to send me his reverse-engineered schematics. I noticed that the museum CD only contains 9805 service documentation. Would that be of any help for my task, or does anybody know of any other source for the 9810 service manual? I just got myself a digital scope; the old analogue one doesn't help much with this machine.



AFAIK the 9805 is a very different machine to the 9810 (in fact the thing closest to a 9805 is the 46 and 81 series, I think, although I've never seen the 9805).
And I am told that the 9810 service manual contains schematics and troubleshootying infoemation for the power supply _only_. Everything else is a board-swapper guide :-(.
You, of course, have the PSU disgamrs in my set anyway. So I am not sure that the 9810 service manual is going to be much use (I don't have it, though, so I can't be sure).
What's the problem with your 9810? I've debuged 3 of them so far, and I have a reasonable idea as to what goes on inside.
Let me know if I can be of any help.


I haven't pushed my analysis very far; I'll work on the machine between the 25th and the 29th. If you are available during that time, I'd be happy to contact you by mail (or on the forum, if our exchange is of interest for others). The machine powers up with "Status", "Fix( )", "Run" and "Insert Card" LEDs on; apparently that's an arbitrary state, and the cpu does nothing of the things it's supposed to do during init. Quite desperate as a starting point! Thank you for your offer, I'll gladly get back to it!



I should be reading e-mail (and looking here) at least once a day through that period, so I can probably help you. I am happy to do it by private e-mail, or carry on posting here, the former is, however, slightly easier for long messages.

Anyway, do you have my list of initial checks? Things like checking the PSU outputs (voltage and lack of ripple), removing all that's not necessary (card reader interface, printer, I/O backplane, ROM module backplane, keyboard) and seeing what happens?

I assume you have a totally blank display. This, alas, means there could be a fault in any part of the processor, memory system, or, of course, the display board itself. Quite a bit to work through, but some areas can be eliminated easily. One thing I would do early on is look for activity on the display strobe signal on the display connector. I will guess it's not doing anything, though.

You say the processor isn't doing the things it should after INIT. OK, so what is it doing? Is it doing anything? Is the microcode program counter (accessible on the test connector on the -66513 PCB) changing. Do you have an 8-channel logic analyser? If so, you could grab the microcode addresses and see just what the CPU thinks it's doing (I have a commented source to the CPU microcode, BTW). Is it even trying to access main memory (look at the R(3) and R(6) signals (my names, my schematics), one is read, the other is write)?


I have a copy of the 9810/9820 service manual and it really won't help much to repair a dead machine. You need the schematics and they are not included.



That's what I'd heard, it was just a board-swapping guide (the HP desktop calculator service manuals never include full schematics in my experience). It might be interesting to see that manual sometime, but I doubt I _need_ it.

Marias (the originator of this thread) has schematics, though, I believe. HPCC has reverse-engineered schematics of that machine, and quite a few others. However, to be fair, the schematics alone, while a great help, are not that easy to follow unless you know how the machine works (it's bit-serial, some of the logic isn't on the boards you'd expect (a classic example of that is that one of the ALU input multiplexers is on one of the boards in the memory cardcage, the other is on the data path board), and so on).

I'm happy to continue a discussion here of how to repair these machines if nobody objects. Or I can do it by private e-mail.


please keep the discussion on this forum, it is very interesting and educational even though I do not have a 9810.



I confirm that the display is blank. I understand that as opposed to the 97, it IS possible to remove the peripheral interfaces without inhibiting the main board to operate. I will carry out your suggested initial checks saturday, and check the display strobe.
I don't have a logic analyser, just an analog and a 2-channel digital scope. I should be able to test the R/W strobes, but I won't be able to get a hold on the uC addresses with my equipment. So - let's take a deep breath and calm down, before the patient will be opened in less than 72h from now.


Yes, unlike the 9100 (and several other machines), the 9810 will give a normal display without the printer, card reader, I/O backplane, ROM cartridge backplane (there's no need to physically remove this, just unplug the edge connector with all the wires going to it under the memory cardcage) and keyboard. You have to keep the mains switch cable (5 pin Molex/AMP thing) connected of course so that the PSU can power up.

Without a logic analyser, you can't (easily) trace the microcode. But you should be able to see if the CPU is trying to access memory (it should obviously be reading machien code instructions). You can also probably look at the data flowing through the ALU, since that's all bit-serial.

Two other hints :

Firstly, I've had a lot of problems with the 74Hxx chips in these machines. They fail in such a way that the outputs no longer swing to valid levels. You might want to check these with your 'scope if you suspect a data path problem.

Secondly, you can put just the CPU clock generator card (-66512, brown/red handles) and the PSU boards into the backplane and power up. That's to say, remove the other 3 CPU cards, the display, and the complete memory cardcage. You can now look at the 2 main clocks (bitclock and the CPU microcode clocks) on the outputs of the 74H40 chip on the bottom row of the clock card (look at the schematics!). They should both show activity, with the microcode clock pulsing once for every 16 bitclocks (the clock count lines are all pulled high in this configuration). If that's OK, then it's a fair bet that the clock is not the problem.


the show begins! I followed your advice and first powered up with the backplane plug at the side (for the I/O stuff) removed. It didn't change much - most of the time when I turn on the machine, it comes up with the LEDs Status, Fix, Run and Insert Card on. Sometimes nothing lights up.

I checked the PSU, all voltages there.

I then plugged the scope ton the 6813 test connector. I couldn't find the pinout in your documentation, however I found 1MHz clock and strobe signals on several pins. I think that's a good sign.

I then removed everything but the 6812 clock board. Interesting! I don't have a 74H40 chip on the card (mine's a revision C), but I checked the signals on the backplane. uClk shows a 500kHz strobe, Dispclk2 constant 2V, Bitclk a 6.5MHz signal that looks more like a sine than a clock, Mclk the same. Outclk is dead.

I think we have to take a closer look at the clock board. Unfortunately I don't have a clock generator to inject an external clock - I saw in the schematics that the 9810 allows this.

I continue...


My clock card is a Rev C too. The 74H40 in question is the second chip from the left
in the bottom row (board component side up, edge fingers towards you). It may, of course, have an HP 1820-xxxx number.
Don't worry about the dismuclk signals. They're to _disable_ the clocks and aren't really used on the 9810. They're used on the 9830 (and 9820?) for DMA operations, etc.
I ma a bit worried about your biclock. It should be a good, square, clock. I don't know how good your scope is (if it's a 10MHz unit, then all bets are off!), but if it's reasonable (50MHz+), then you should see a square wave.
Maybe that 74H40 is defective, I did mention that one problem with them is that the outputs don't switch properly
Outclk should be 'dead' unless the rest of the CPU is there and trying to run I/O operations.
For the moment, I'd look at the Bitclock a bit more.
Incidentally, if you have an 1820-xxxx chips in this machine that you can't indentify, I can try to corss-reference them to normal numbers.


A few more things : The CPU control board test connector is shown on sheet 3 of the CPU control schematic (my diagrams), in the bottom right corner. The rest of this sheet shows the microcode ROMs.
If you've got bitclock working, then I'd put in the rest of the CPU and the memory box (oh, you might as well put in the display too).
Then, look at the R(6) signal (output 2 from section a of U18 on the CPU control card (sheet 4, top left). This goes low when the machine tries to read from main memory. Make sure it is -- the CPU should be fetching instructions.
Now look at the M lines (Memory address) mon the test connector on the memory box (sheet 3 of the memory backplane (09810-66527), right hand side). Since it's a bit-serial machine, they'll be changing all the time (they're only valid during a memory cycle), but
you should see them changing. If so, then there's a chance that the CPU data path is doing something sane -- data is being clocked into the M register.
Other good places to look at are the inputs to the ALU. One of them is the output of U17 (74H54) on the memory timing PCB, sheet 4 bottom right corner. The other is the output of U3 (74H53) on the Data path PCB (left side of sheet 3). Being 74Hxx chips, they tend to fail.
THer easiest way to test on IC pins in this machine is to power down, pull the card, and solder a short length of wire to the PCB pad (solder side of the PCB). Then put the board back in, power up, and probe the other end of the wire. These machines are slow enough that
a few inches of wire doesn't cause any problems.


I hooked up the clock card on a 5V power supply to have better access. Using a 60MHz scope with 1:10 divider probes, I get reasonably good signal quality on BitClk, and I verified it's 1/16th of the main clock. I took a digital picture I'll send when back in Paris.
So i put back in all the cards and the memory cage and checked the test connector on the memory box. The M-lines are static! Some 0, some 1, but no transitions whatsoever. Same with the T-Lines.
Let's resume: Clock seems good - cpu does not cycle however. Are there other checks on the clock to be made on other boards?



OK, if M and T are both static then either the CPU is not trying to access memory at all (and of course it should be fetching instructions), or there's a problem in the control logic for the M and T registers.
The next thing is to find out just which of those is the case. It's a pity we can't trace the microcode (that would tell me if it had got into the fetch-execute loop), but
I think I would now look at the M register control circuitry. I will point you in the right direction if you can't find it (it's eitehr on the memory adddres or memory timing boards).


OK, some more thoughts. Take a look at the Memory Address PCB (09810-66523) (sheet one of my schematic). It shows the M register (4 off 7495) and the simple control logic needed to load it.
For the moment ignore the RotClk signa and U9c that produces it - that's used for _reading_ the M register.
Take a look, though at SRclk, the output of U9d (74H08. This is the clock for loading the M register. Does it ever clock? If not, look at the mu(27) line, which is one of the outputs of the CPU microcode PROM. It goes low to load the M register? Does it ever do so?
If so, does the output of U13c (74H01) go high? If so, check bitclk again!.
Now, what if mu(27 never goes low)? Well, tjhat measn there's a CPU problem. Either a PROM failure (every unlikely), or the microocde is not running the right routine. I am not sure what happens if a 9810 fails the power-on microocde test (yes, there is one), maybe it locks up (I am almost sure some of the other machines in the range do, but I can't instantly see how the 9810 would do this).
Now, you say you don't have a logic analyser, so you can't trace the microcode. But maybe we can get some clues. Go to the test connector on the CPU control (09810-66513) board. Look at the 8 signals I've called muAddr(0) to muAddr(7). Are any of them static (if so, what state)?
If we really get desparte, it might be worth wiring up an 8 bit comparator (a 74LS688, or a couple of 74LS85s, or something) with one set of inputs coming from the muAddr lines, the other set from a DIP switch and pull-ups. The equality output ges to your 'scope. We can then set particular addresses on the switch (addresses in the fetch/execute cycle) and see if they're ever hit.


And some more thoughts. There are some other things that can effectively lock up a 9810. The first is if it's stuck in the refresh cycle (that is, the Wait/ signal, e.g. on sheet 2 of the clock schecmatic, is low (asseted).
I think tha will casue the Bitclk and muclk signals to stop. Are they both active when the all 4 CPU boards and the memory cardcage are installed?
Another possibility is tha the machine is stuck executing an I/O operation. THe I/O circuit -- HP called it a 'processor' -- puts the CPU microcode into a tight loop (locations 5A and A7 hex I think), waiting for the I/O circuiit to finish. This is the I/O op signal (output of U1, 74H101) on the clock PCB (sheet 4, top left corner), buffered by U2c (3001,this is like a 74H08) on the same PCB (sheet 3, bottom left corner),
then fed to input 15 on the condtion code multiplexer (CPU control sheet 2, left side). If that's malfunctioning, or if, for some reason, the I/O 'processor' is never clearing the I/O Op flip-flop, then the CPU will lock up.


I soldered some ribbon cable to the 66523 board to probe the 7495 shift registers. SRclk and Rotclk are on 0V (or maybe floating, but definitely not Hi) all the time. I'll check the mode input from u27 and the clock circuitry next. I'm moving on slowly, as my data books are mostly CMOS and I have to look up pinouts on the internet instead. HP using its own part numbers also doesn't help.
The clock circuitry on the 66423 driving the shift registers looks quite simple; if BitClk arrives on the input of the H08, maybe the H08 itself is dead. I'll report...and check the I/O hypothesis you mentioned later on. Stay tuned!


I probed the SRclk input of the shift registers for the M-register on the 66523 board: No signal. Then I checked the clock input circuitry, which is drawn on the same sheet in your documentation: SRclk and Rotclk are the outputs of two AND-gates of a 74H08 chip. They both take BitClk as one input (which is pulsing). The other input of the AND generating SRclk is the pulled up output of an inverter, built with a H01. I checked the input (that is to say, the output of the inverter U13c), and I get a signal! This also proves that u27 must work (which also drives the mode input of the 7495 shift registers). I conclude that the 74H08 AND gate is dead - do you concur? I will properly document these findings together with the scope images and put them on my website; since the signal quality is quite poor, you may have additional comments on them. My scope is a 60MHz one with 1:10 divider probes which I recalibrated on a 1MHz test signal...of course, the 10" wires I soldered to probe the chips degrade the signal significantly.
Now the question is: Do I have a 74H08 (1820-0141) in spare? I'll check...


A bit of background (and also for the benefit of others trying to follow this). The M register has effectively 2 clock inputs, SRclk and Rotclk.
The former is enabled by mu(27), and is used to load the M register from the ALU. The latter, enabled by RotEn, causes the M register to do a 'rotate right' operation. This is used to load from the M register into some other register, via the ALU -- the bits are grabed as the pass through bit 0 fo the M register, the register is clocked 16 times, so at the end it's unchanged.
OK, if you've got mu(27) and bitclock both active, it's a fair bet that H08 is dead. I mentioned
I've had problems with the 74Hxx chips. Fortunately the 'H08 has the smae pinout as the other 74x08 chips (this is not the case for some more exotic functions, be careful!).
If you can't get an 74H08 (and this family is not common), then a 74S08 ora 74F08 will probably work. A 74LS08 _might_, but it's pushing it a bit.
If you need any pinouts, hp-numbers conveted to normal IC numbers, etc, just post (or e-mail me). I've got the information to hand here.


A useful trick for distinguishing a ground (or logic 0) signal from a floating one is to make a potential divider (say a couple of 100k resistors in series) across the
5V power supply, clip the 'scope on the middle of that, and also connect the signal-under-test there.
A floating signal then shows up as a 2.5V line on the 'scope, which is different to 0V (I assume your scope is DC-coupled!)


I am still worried about the signal quality. I get signals, but they don't look like rectangles. Do you think it is possible to test the board statically, that is to say, being directly connected to 5V, out of the machine, without the other boards? That's what I did with the clock board. I assume if I connect the board to 5V without a clock input, I should get a static response, allowing me to check the TTL levels. I could then inject = or 1 to see what happens.
In fact, I re-checked SR, and SCLK, and there is some small signal - like 2V or so, with lots of noise. I need to re-verify my measurements.
I took photographs of the scope screen; I'll post them next week-end when I'm back in France. I need your opinion on the signal quality.


I pulled out the board and started my static tests. If I pull u27 low, SRCLK goes up as it should. I admit I'm confused. Should my problems be noise-related? I continue the static tests...a pulse on rotclk should load the 16 bit data into the shift register, a pulse on srclk should rotate the data I suppose. MAybe I can clock something in serially using the Alu0 input. That should be a concluding test.


It's not unkonwn for an IC to work correctly at low speeds, and fail at everal MHz!


The signals looked pretty good in my machine on my 'scope (an old Tekky 555). If yours are poor, then either the driver chip is defective, or your 'scope (or probes) are not up to the job.
Go back to the clock card. Look at the output of the 8MHz master clock (I think I called it MClk). If that looks poor, I really would check your 'scope
is working correcly, that you've adjusted your probe compensation trimmers properly, that sort of thing.
Do you have anything else you could get a couple of MHz TTL clock from to check the 'scope?


I already did that; I pulled out the clock card again and took pictures of the 8MHz clock. It looks ok (I'll send a picture friday).
Here's what I found out in my static tests so far: Pulling down u27 actives SRCLK as it should. The output level is only about 3.25V, but maybe that's ok? However, a 1 on bitclk does NOT activate SRCLK. Can that be true?
I also found that pulling u27 loads values into the shift register. However, I need u27=1 (mode) and Bitclk=1 to generate just a shift - can't do that with my broken 74H08. I'll re-do my tests to be sure...it's weird for an AND-gate to work for one input but not for the other, I've always seen them fail entirely (on the LS logic family, that was).


What if the bond-out wire connecting one of the input pins to the silicon die had broken? That input pin would no longer be connected, it would float high in the chip. So the other input would do something
in the case of a '08 (it's an AND gate, you'd be ANDing with 1, remember a TTL input floats high).
I have come across failures like this before, BTW.


That was my next question - not trusting my own diagnosis, i wanted to know how likely such a fault would be. Anyway, I removed the chip, put in a DIL14 socket, and hope to find a replacement H08 tomorrow. I'll report in the late afternoon! It's exciting to work on that beauty.


I put some screenshots of my scope images on the web:


If Tony allows me to add some excerpts of his sheet #1 to explain the context, I can add a more concise description, so that this discussion becomes more valuable for other forum visitors.


After replacing the faulty H08, the uProgram counter is doing something. After start-up, it goes through a short sequence (which I am unable to trace without a logic analyzer), and then hangs between two logic states. Following your advice, I built a small 8bit logic comparator, and found that the machine alternates between addresses $a3 and $5a. (or 5c and 65, if these need to be inverted). I don't think we can go much further without a logic analzer.



I owuld check thsoe microcode address states very carefully! Is it possible they're actually
Is it possible they're actually $5a and $a7? That's a 2-instruction loop that'the microcode runs round
when it's doing an I/O operation -- the 9810 has what HP call an 'I/O processor' -- I think that's rather over-claiming, I'd call it a state machine. Anyway, that's set going, and the main CPU microcode
waits for it to complete. Go back to the clock board. There's a flip-flop -- a 74H101 I think -- that produces a signal that I call I/O Op. See if that's being asserted (for various reasons, that actually means the flip-flop is 'cleared -- Q low and Q/ high). If it is, then find out why that
flip-flop is never being set again (this should happen when the I/O command decoder -- the '154 in the middle of the clock PCB -- output 15 goes low.
I don't think you need a logic analyser just yet!


Ok, the vicious circle actually is 5a and a7, and the flip flop is not asserted: IOOP/ is 0, IOOP is 1, and since IOOP/ is taken from the Q output and fed into the 154, it would be defined as unasserted - am I right or do we get the terms mixed up?
Anyway, IOCMD15 is permanently 1, the 4 inputs shorted to go into the J input of the 101 FF are permanently 0.
Let's make sure the terms are right: If IOOP / is 0, it means we are in an I/O operation?

Edited: 29 Dec 2004, 10:51 a.m.


OK. You are stuck in the 'wait for I/O processor' loop. That's good in a way -- it's something that we'ce (you've) definitely identified, and it means that the proecessor microcode is at least doing something right 9in that this is a possible loop)
Now for the I/O Op flip-flop. If I/O Op (the Q/ output ) is 1 (high) and I/O Op/ (the Q output) is 0 (low), then I would describe I/O OP as 'asserted. In particualr,
I/O Op/ being low will enable the '154 I/O Command decoder.
Go bavk to the 7474 D-types that make the 4-bit 'I/O command register' and which feed the A, B, C, D inputs of that '154.
Are they being clocked (if not, check back to, IIRC, an H00 NAND gate that drives them). What are the D inputs doing?. What are the A, B, C, D inputs to the '154?


The last thing I did was to check the ABCD inputs of the 154. They are 0011, so line 12 should be asserted. Does this particular I/O-uInstruction ring a bell?
Unfortunately, my time here with my 9810 is up, I will have to leave the machine here with in my parents' home and return to where I work tomorrow morning, leaving without my 9810, and without my test equipment. I will order some 74F chips, especially the one with the weird logic level an uAddr(2), and return in 8 weeks. I will also properly document our findings on my website, and dig deeper into the documentation. I realize I am stealing a lot of your time - would you be available for an equally intensive hardware debugging session in two months from now? And for those who followed this thread: If you think this conversation should take please in private by mail, please say so.



Silly question!

Go on and keep us posted about your success.



OK, If the I/O Cmd Register (that's the 4 D-types in U16 and U17, both 7474a) is 0011 (with A listed first), then that's an OT (Output) instruction.
Output 12 of the '154 should be pulsing (it's gated bu I/O Cmd En, from the NAND gate U6d (74H00) in the clock generator circuit), and should generate I/O clock via U3a (7410) -- you could look for this on pin 12 of this chip.
I/O clock should clock the I/O bit counter U4 (74193) via U10a (7402), which should count down. When it crosses 0, then I/O Br is asserted, this causes the I/O command register to change to 1011 (again, A first) via its input gates. The
bit counter now stops, and on the next cycle, the I/O cmd register becomes 1111. Then output 15 pulses low, clearing the I/O Operation flip-flop (U1, a 74H101) via U10b (7402).
That should give you some signals to check, at least!.
I am happy to keep this public, but I can't help feeling we're totally boring everybody else here :-)



A few words to tell how I'm impressed and interested in your work, Tony and Marais. Boring ? I'd rather say that it brings us great knowledge. Please keep posting on this forum. Some of my colleagues never heard about TTL chips... Gasp ! It would be a pity that the 98xx series become as mysterious as the 9100...

Just a few thoughts from France



And just what is mysterious about the 9100? It's just discrete transistors and diodes, and not that many of them either...

Heck, there's only 44 flip-flops (IIRC) in the 9100B. An amazingly low total! The rest of the circuitry is not that bad either


Hi Tony !

You're right, technologically speaking the 9100 isn't that mysterious. I forgot to say that my point of view was related to it's microcode and firmware... Not to mention the fact that the patents give only partial informations.


Possibly Related Threads...
Thread Author Replies Views Last Post
  HP-97 Service Manual, newer model davorin 6 747 09-16-2013, 10:45 AM
Last Post: davorin
  Need service information for HP 82161A Cassette Drive Peter N1 2 425 07-14-2013, 04:11 AM
Last Post: Tony Duell
  9815 Service Module John Ioannidis 0 303 06-10-2013, 02:56 PM
Last Post: John Ioannidis
  Service manual for HP9872C plotter? John Ioannidis 2 417 05-21-2013, 02:06 PM
Last Post: Juergen Keller
  HP85 Programmable ROM cardtridge 82929A-service ROM not working- inaki 2 550 04-25-2013, 08:08 AM
Last Post: inaki
  WP 34s flashing service Michael Fehlhammer 4 532 12-12-2012, 08:23 AM
Last Post: Michael Fehlhammer
  Looking for HP-87 service manual philippe_elie 2 398 11-08-2012, 02:07 AM
Last Post: philippe_elie
  HP thinkjet printer service manual Alan Sciacca 0 248 08-23-2012, 10:38 AM
Last Post: Alan Sciacca
  Removing 9810 printer snap rings (circlips) David Ramsey 5 541 09-06-2011, 01:32 PM
Last Post: David Ramsey
  Which cold shrink kit for 9810 printer platen? David Ramsey 1 296 07-19-2011, 04:06 AM
Last Post: Tony Duell

Forum Jump: