Post Reply 
Restoring a HP9830B calculator.
06-27-2014, 07:38 PM
Post: #21
RE: Restoring a HP9830B calculator.
Yes, that BOT/EOT sensor can be touchy at the best of times. Rik Bos has managed to substitute something for a defective LDR, and IIRC that wasn't totally trivial. I have, somewhere, a part number for the original LDR (I have a Racal Thermionic Digideck which uses a closely-related drive mechanism, along with the compent-level service manual). Alas attempts to track down data on said LDR, or even to find the company that made it, have been unsuccessful.

Anyway, it's best to check the microswitches in place. It's not uncommon for them to get misaligned, so that they do not operate correctly against the cassette.

It occurs to me that every tape command apart from MARK starts by doing a read operation (if only to find a file header). MARK can be used on a totally blank tape and thus starts by writing. I think I would start by finding out if it ever tries to do a read operation on, say a TLIST. Does it attempt to move the tape, even for a millisecond (look at the motor control signals coming off the Tape Controller PCB). If not, it's detecting an error much earlier. Perhaps the status, on the SI(0..3) lines is bogus. A failure on the Tape Interface PCB, perhaps.

I have always managed without extender boards. As I mentioned in Datafile, I solder some wires to the appropriate points on the PCB, put the PCB back in, then probe the free ends of the wires.
Find all posts by this user
Quote this message in a reply
07-09-2014, 08:14 AM
Post: #22
RE: Restoring a HP9830B calculator.
I haven't got around to actually debug the tape drive issue further, partly because the extender board hadn't arrived yet.

Yesterday I drove down to Norrköping and found this nice HP9810A:

[Image: IMG_1756.jpg]

The picture is lousy and the machine was quite dirty. It has probably been sitting in the storage container for many years. When flipping up the printer cover I discovered a sticker telling that last time it had been at HP for service was in 1979...

The best thing with this was that it was free except for 40 litres of gasoline to get to Norrköping and back.

So now I got myself another project. (don't tell my wife, though...)

www.datormuseum.se
Find all posts by this user
Quote this message in a reply
07-10-2014, 04:16 PM
Post: #23
RE: Restoring a HP9830B calculator.
The extenders have arrived:

[Image: HP%20extenders.jpg]

I also have spent some time cleaning the HP9810A. It was really dusty. Then I slowly applied AC through a variac and checked the PSU. It was in good shape. But that was it with the 9810. It was dead when all cards were seated and it wasn't the PSU that couldn't handle full load; all voltages measured OK when cards were seated. Testing the CPU cards in the HP9830 revealed that the data path card and the clock card was BAD. The other two seemed to work. Switching in the HP9830 known good boards didn't help much. The only difference was that the STATUS lamp turned on after a while. So there are multiple problems.

But it is very good to have the running HP9830 when fixing these two boards.

Now its time to clean the HP9866 printer which I brought home from storage.

www.datormuseum.se
Find all posts by this user
Quote this message in a reply
07-11-2014, 09:12 PM
Post: #24
RE: Restoring a HP9830B calculator.
Tape drive working!
The HP9866 was very dusty indeed. Before applying power to it I reformed the capacitors. They were all in excellent shape. So I started it up. No immediate problems. The LOAD button worked and I was able to load paper in it.

Hooked it up with the 9830. It was a no go. However since both tape and printer is dependent on the IO board in the processor I switched in the board from the HP9810A machine. Well, it didn't help much to the printer, but the tape drive started to work! Board swapping is not the a permanent solution but it is indeed a very quick way to isolate a failing board.

I was able to execute the MARK command successfully, i.e. it stopped after a while instead of winding to the end of the tape leaving the machine dead. It could store a small BASIC program to the tape and the LOAD it back! I think that the machine now is fully functional, although I have in all three faulty processor boards that need fixing.

Then the printer needs to be fixed as well. The good thing is that with the printer is not as crammed as the calculator it self which makes it a lot easier to attach the logic analyzer probes.

www.datormuseum.se
Find all posts by this user
Quote this message in a reply
07-12-2014, 09:55 AM
Post: #25
RE: Restoring a HP9830B calculator.
Unfortunately (for the purposes of seeing if it works) the HP9866 manual feed (LOAD button, etc) uses its own clock oscillator to feed the motor step circuitry, and doesn't use the microcode/state machine. Loading data and printing, of course, is controlled by the microcode

The 2 main boards of logic are the ones on the far left side, and they are close together. But the microcode addess is available on one of the top test connectors. Seeing what the microcode does when you send it characters is a very good way to see what is, and is not, working.

As for swapping boards, I disagree that it is even a quick way of finding the faulty board. I've been caught (in my younger and more foolish days) by a case where a marginal problem on one board let it work with only some other boards. But all said 'other boards' were, in fact, working correctly and in-spec. So be careful.

The I/O board for the processor is, of course, a 16 bit shift register and the I/O flag logic. I've had problems with both areas.
Find all posts by this user
Quote this message in a reply
07-14-2014, 07:34 PM
Post: #26
RE: Restoring a HP9830B calculator.
Yes. I have now put my analyzer probes onto the micro address bus of the HP9866 control board. I had great use of the schematics Tony has created by reverse engineer the unit. Thanks Tony!

To understand what is going on I also had great help from the work Tony had done to describe the micro code. I put it here for reference:

Code:
HP9866 Control State Machine
----------------------------

** Character Entry **

00 : 20    if(Stb/) goto (00,02) , ClrFlg
Start of main loop (also entry point on power on). Clear interface flag
(not busy) Wait for strobe pulse on interface
02 : 2B    goto (06) 
06 : C2    if(PrtChar) goto (12,11) , InClk
Load chracter into input register, set interface flag flip-flop
(indicating printer busy). Test if it is a printable character (including
linefeed). If not, ignore it. 
12 : F4    if(LF/) goto (19,1B) 
Is it a linefeed? 
1B : CF    if(Empty/) goto (17,15) 
Input character is a linefeed. Is the line buffer empty? If so, just feed 
the paper, if not, do a full print cycle.
19 : C1    if(Start/) goto (14,11) 
It's not a linefeed. Is the line buffer full (that is character counter = 0 
and empty/ flip-flop set). If so, ignore it (truncate the line)
14 : 9D    goto (0D) , SClk
Line buffer is not full, store new character in the shift register
0D : C4    goto (11) , PHOut
Increment the character counter, set empty/ flip-flop, and end this character
11 : C0    if(Stb/) goto (10,11) 
End of character processing. Loop until strobe is inactive
10 : 00    goto (00) , ClrFlg
Clear interface flag and round again.

** Print cycle **
Now to actually print a line. Begin by filling the unused space in the data
shift register with spaces
17 : 89    if(Start/) goto (04,05) , ForceSpace
Set the data input flip-flops to a space character. Exit from loop when the
line buffer is full (effectively a while(buffer not full) loop).
04 : 10    goto (08) , SClk
Load a space into the next buffer location
08 : EF    goto (17) , PHClk
Increment character counter and round again.

The line buffer is now ready, so print it.
05 : E6    goto (13) , Autofeed
Advance the paper one dot line 
13 : E3    if(Timing) goto (16,13) 
Loop until U26b times out to give the motor time to move
16 : 3E    if(Row7) goto (0B,0E) , InClk
Is this the end of the printed character (7 rows of dots printed)? If so,
goto the paper feed routine, starting by incrementing the row counter.
0B : 7B    goto (1E) 
1E : 84    goto (01) , RowClk
Increment row counter. This also controls the RotEn line so as to go into
printing mode
01 : 50    goto (18) 
18 : BF    goto (0F) , PHClk
Clock the 5 bits for the current row of the current character into the 
printhead shift registers.
0F : DA    if(char0/) goto (1A,1D) 
Is the line completed? This will skip the 4-chracter rotation at the end 
of the complete print line, so as to leave the line buffer in the same 
state at the start and end of a line. Thus each row of dots comes from 
the same chracters in the same positions.
1A : AF    goto (07) 
07 : 59    goto (1C) , ForceSpace
No, start to roate the line buffer by 4 characters. Now ForceSpace/ had a
second meaning. It increments the '4 character' counter U17a/b
1C : A7    if(LnFlg) goto (07,03) , SClk
Rotate the line buffer and round again if it's not been done 4 times 
(print every 4th character on each pass)
03 : D8    if(newbank/) goto (18,1D) 
Has a complete bank been loaded? If not, go back and load the next
character.
1D : 32    goto (0A) , PHOut
A complete bank has been loaded, so trigger printhead timing monostable
and print this bank of dots.
0A : 31    if(Timing) goto (0C,0A) 
Wait for U26a to time out (this bank has been printed).
0C : 8C    if(firstbank/) goto (01,05) , SClk
Rotate the line buffer by one character to get the next quarter of a line
into postion.  Has the character counter wrapped around so all banks have
been done? If so, back round, advance the paper and start the next dot
line. If not, then round again to start the next bank of data

** Paper feed **
This routine advances the paper by enough dot lines to complete the 
character and inter-row space
15 : 94    goto (09) , Autofeed
Clock the stepper motor counter
09 : 93    if(Timing) goto (0E,09) 
Loop until monostable U26b times out (to give motor time to move)
0E : FF    goto (1F) , RowClk
Increment dot row counter
1F : C5    if(RotEn) goto (15,11) 
Round again if dot row counter has not got back to 0 (RotEn = 1). 
Otherwise go to end of character processing

When doing a print command from the calculator I get a series of strobe signals, one for each character that is handled my micro code.

I get a sequence that is 00, 02, 06, 12, 19, 14, 0D, 11, 10, 00 which matches very well what it is supposed to do. Then when it detects the LF character it jumps on a new path which ends up in waiting in state 13 until a signal that is called Timing is active, when it then jumps to state 16. From there it begins a sequence that never ends: 16, 0B, 1E, 01, 18, 0F, 1A, 07, 1C, 03, and then back to 18 again.

I then check the signal /newbank but it actually toggles as it should, but the D, C, B, A inputs to the 74150 is 8, not 0 when executing the micro instruction at 03. It seems that the /RotEn signal which is connected to input D always is high ! Checking the RotEn input to a 7404 on the board gives that it always is low. RotEn comes from the Data path board which I now need to check.

www.datormuseum.se
Find all posts by this user
Quote this message in a reply
07-14-2014, 08:29 PM
Post: #27
RE: Restoring a HP9830B calculator.
In many ways the RotEn signal is one of the key signals in the HP9866. I called it that because it enables the feedback gates on the data shift registers, so it causes them to rotate the data. But as a result it indentifies which of the 2 main modes the printer logic is in. RotEn = 0 is the character input mode, RotEn = 1 is the print mode.

Anyway. RotEn = 0 iff the row counter is in state 0. The row counter is U12 on the data path PCB, RotEn comes from U19a. So the next thing I would check is what U12 is doing. Is it counting. If not, why not? Is it held in the reset state? Is it getting clock pulses (produced by the microcode, BTW). This is not too hard to debug.

I assume you have the 2 DataFile articles on the internals of the 9866. I described it all there.
Find all posts by this user
Quote this message in a reply
07-15-2014, 08:51 AM
Post: #28
RE: Restoring a HP9830B calculator.
Yes, I have your data file. Excellent!

Yesterday I was about to trace the signal on the data path board at U19 when I discovered that there were no U19 on the board! I never checked that it was the same board as in the schematics. I just presumed them to be identical. The boards in my HP9866 differes in that the data path PCB is 09866-66591 and the Control PCB is 09866-66592.

[Image: HP9866_DataPath_PCB_small.png]

The Data Path PCB has a different character encoding ROM, SCM3632 from Motorola, with HP ID 1818-0167. It uses two Texas Instruments TMS3120 quad shift registers rather that three MM5052. I haven't traced the board yet, so there might be a lot of other differences, but I guess that what HP did was to upgrade to more modern parts. It could be as simple as that they replaced three MM5052 with two TMS3120 there would be only 18 ICs on the board compared to previously 19?

I assumed that HP only changed the board layout, not the backplane connections: A quick check for the RotEn signal on the Data Path PCB reveal that it comes from pin 6 of a U8 which is a 1820-0071 chip. Google says this is a 7440. It matches pretty well with the HP9866 schematic Tony has made.

Tony, do you have a translation table for HP part numbers into standard part numbers?

[Image: HP9866_control_PCB_small.png]

The control PCB. I cannot tell what difference this board has. But the micro code ROM is the same HP part number so what was found in the previous post has to be correct. That would also mean that the same inputs and control codes to the 74150 is used. I need to trace the board to verify though. Tony, how does this match the 09866-66502 board, just from a quick ocular inspection?

The next step would be to measure on the Data Path PCB at U8, U3, which is the 7490 and U13, 1820-0174, which I assume is the 7404.

BTW. Both images are clickable so one can get the full size image..

www.datormuseum.se
Find all posts by this user
Quote this message in a reply
07-15-2014, 08:24 PM
Post: #29
RE: Restoring a HP9830B calculator.
I have an idea that those PCBs make it a 9866B. That can do lower case and dot graphics, which explains the changes to the shift registers and character generator ROM. Actually, I am surprised the microcode is the same, but...

There are photos of the 9866A boards on the Australian site. The control PCB looks very similar, there are differences in the visible traces round the '123 in the bottom row. But it's close enough that the 9866A schematics should be a big help.

As for the equivalents list, do a search for 'Bench Briefs'. The list was put in a few issues. Note that ICs were removed from the list if no device that was supported used them, so you want to get all the versions of the list you can.
Find all posts by this user
Quote this message in a reply
07-25-2014, 03:09 PM (This post was last modified: 07-25-2014 03:10 PM by MattisLind.)
Post: #30
RE: Restoring a HP9830B calculator.
Tony, you're absolutely right. It is a model B.

I was debugging the printer when the strobe pulse suddenly stopped coming from the calculator itself. I then checked if other I/O things like the tape drive was working. It wasn't... Remember that I have swapped (yes yes I know...) in the card from the 9810 into the 9830 since it was working better. But apparently now also this one failed.

Back to debugging the I/O interface board. After reading in Tony's manual and also checking the schematics I had an idea that it was the tape flag that wasn't detected properly. The tape flag is coming in through the /Bus IO Rd signal. Then via a 7410 to a 74121 mono stable flip flop onto a 7474 flip flop and then generates the I/O flag at the output of a 7453. Thus I hooked up my analyzer probes at U7, U8, U9 and U13:

[Image: Debugging_IO_Interface_with_LA.jpg]

I had my HP1664 analyzer trigger on U7 pin 9 negative edge. The output from pin 1 of U8, the 74121 was rather interesting:

[Image: LA_Before_replacing_74121.png]

It seems that this signal always is low, but the non inverted out works fine. Replacing it with a the 74121 from the other board (rather annoying that my rather big stash of 74XX didn't include a 74121, but 74122 and 74123) gave a much better output signal:

[Image: LA_After_replacing_74121.png]

And tape commands worked as they have done before with the card borrowed from the 9810 (before it broke down). Now I can continue debugging the printer!

www.datormuseum.se
Find all posts by this user
Quote this message in a reply
07-26-2014, 02:29 PM
Post: #31
RE: Restoring a HP9830B calculator.
Back to debugging the printer

Before the failing I/O board in the calculator itself I traced the problem to the RotEn signal which was never changing. This signal is generated by the DataPath board. When examining this I recognized that my board wasn't as in the schematics. It lacked U19! My printer is a model B rather than the one in the schematics which is a model A which explains this.

I was on my own... I started to trace parts of the board that related to the RotEn signal. It was quite some differences compared to the A. Here is my schematic of part of the Data Path board.

[Image: Schema-HP9866_DataPath.jpg]

I attached the analyzer probes to U3, U7, U8, U13 and U14. (Oops! Error in the schematics. one flip flop is marked U4 rather than the correct U9). Directly when switching on the printer I recognized that output 4 of U13, an 7404 inverter was toggling all the time while the input, signal Qd of the 7490 was low all the time. This was probably not OK.

I replaced the U13 7404 with a new chip, and voila, now it actually advanced the paper a number on lines, and it wasn't locking up as previously. It wasn't printing anything since the print head and print head PSU had been removed to not make any potential damage to it if there were some logic problems.

Now on to check the print head PSU and print output signals!

www.datormuseum.se
Find all posts by this user
Quote this message in a reply
07-26-2014, 06:27 PM
Post: #32
RE: Restoring a HP9830B calculator.
My guess from glancing at your schematic is that U18 decodes the 'bit image mode' control character and that the extra logic is to toggle between normal character printing and single-line bit image printing.

Anyway, it now seems to work. I would put the printhead PSU back and check the output voltage. And check no enable signals are stuck asserted on the printhead connectors (this is the same as the -A model I suspect, so the articles will be useful). If it all checks out, fit the printhead.
Find all posts by this user
Quote this message in a reply
07-27-2014, 12:43 PM
Post: #33
RE: Restoring a HP9830B calculator.
Working!

I just checked the bank signals. They all were good. It was a bit confusing since the marker on the male connector indicated pin 1 at exactly the reverse position. Then put back the print head and tested. It worked!

[Image: HP9830B_working.png]

Ins't it beautiful?

I have now to change the power on lamp on the printer and then to ressemble it fully.

The following components has been replaced:

Two indicator lamps.
One lamp for the tape drive.
A BCD ALU 256 x 4 PROM on the calculator Data Path board
A 74121 on the I/O interface board
A 7404 on the printer Data Path board.
Five keys which was broken of.
Three missing key tops.

I have also done a good deal of cleaning of the unit.

Thanks Tony for the excellent repair guide and schematics!
Thanks waterlander2004 for the DELETE LINE key!
Thanks Brent for a very good page on the HP9830 calculator!
Thanks to the fellow collector who provided me with END key and five spare key switches!

BTW. The unit came with a HP original cassette marked 11273-60004 SYSTEMS TAPE CASSETTE. It is currently missing its pressure pad. I intend to replace this with some felt pad. Would it be possible to read of the content (if it is readable) and preserve it in some way? Maybe someone already done this with this cassette?

I have the disk subsystem which consists of two very heavy 14 inch cartridge drives (and also a fixed platter), two equally heavy power supply units, a controller unit, cables and a ROM cartridge. All those things are in store. But I leave for some other year to restore. I will now focus on getting the HP9810A working.

www.datormuseum.se
Find all posts by this user
Quote this message in a reply
07-27-2014, 05:49 PM
Post: #34
RE: Restoring a HP9830B calculator.
Well done! It is always nice to hear of one of these fine machines running again!

The tape cassette you have is the system programs for the disk system (the part number of the HP9830 'cable' is HP11273, and this number is used for associated things like the ROM cartridge and tape).

I believe there is an image of this tape included with the 9800E emulator, so it may not be necessary to image it.

I also have the disk system, but it didn't start out together. I found the controller and the 2 'cables' on E-bay. I also found a brand new 13215 PSU there. And I rescued a 7900 drive years ago.

Restoring all this is probably going to be my next big project. Unfortunately I have other, non-HP, things I have to do at the moment, but hopefully I can make a start on it fairly soon...
Find all posts by this user
Quote this message in a reply
07-28-2014, 08:55 PM
Post: #35
RE: Restoring a HP9830B calculator.
I made a short video of the HP9830B in operation.

www.datormuseum.se
Find all posts by this user
Quote this message in a reply
07-29-2014, 08:12 AM
Post: #36
RE: Restoring a HP9830B calculator.
Quote:Well done! It is always nice to hear of one of these fine machines running again!

Thanks! I really like HP machines. There is really a sense of quality about them.

Quote:The tape cassette you have is the system programs for the disk system (the part number of the HP9830 'cable' is HP11273, and this number is used for associated things like the ROM cartridge and tape).

I believe there is an image of this tape included with the 9800E emulator, so it may not be necessary to image it.

You are right. I recognised that the ROM cartridge has the same ID.

What is the procedure to image a cassette?

Quote:I also have the disk system, but it didn't start out together. I found the controller and the 2 'cables' on E-bay. I also found a brand new 13215 PSU there. And I rescued a 7900 drive years ago.

Restoring all this is probably going to be my next big project. Unfortunately I have other, non-HP, things I have to do at the moment, but hopefully I can make a start on it fairly soon...

I am looking forward to hear your story about the disk sub system!

www.datormuseum.se
Find all posts by this user
Quote this message in a reply
10-18-2014, 06:29 AM
Post: #37
RE: Restoring a HP9830B calculator.
(07-27-2014 05:49 PM)Tony Duell Wrote:  The tape cassette you have is the system programs for the disk system (the part number of the HP9830 'cable' is HP11273, and this number is used for associated things like the ROM cartridge and tape).

I believe there is an image of this tape included with the 9800E emulator, so it may not be necessary to image it.

I'm not 100% certain, but it appears to me that the two 11273 tape images provided with the emulator may be corrupt. I've posted a question in the emulator project forum about that:

http://sourceforge.net/p/hp9800e/discuss.../f2bf4531/

It might still be desirable to come up with an independent image of MattisLind's cassette. I haven't yet tried to play a 9830-written tape in an audio player, so I'm not sure whether any reasonable results could be obtained that way. I'm considering writing a binary program that can dump a tape out the printer interface. Since the printer interface is an 8-bit wide TTL interface, it should be easily connected to a PC using an FT245 or FT2232 based USB-parallel module, though the mating connector for the 9830 printer interface is rather pricey. I don't have a 11205A serial interface, or I'd use that.
Find all posts by this user
Quote this message in a reply
10-18-2014, 05:16 PM
Post: #38
RE: Restoring a HP9830B calculator.
Wonderful video.

Inspiration to get my 9825a fully functional.

I have been fortunate as I have get the pleasure of Tonys' company once a month as well as seeing Brent at the SPARC museum (we are members of SPARC). SPARC = Scociety for the Preservation of Antique Radios in Canada.

Brent helped me with the schematics of my grundig 4035 restoration.

Geoff
Find all posts by this user
Quote this message in a reply
10-18-2014, 11:14 PM
Post: #39
RE: Restoring a HP9830B calculator.
(10-18-2014 06:29 AM)brouhaha Wrote:  I'm not 100% certain, but it appears to me that the two 11273 tape images provided with the emulator may be corrupt. I've posted a question in the emulator project forum about that:

http://sourceforge.net/p/hp9800e/discuss.../f2bf4531/

After more study, it appears that the actual tape data is correct, and that the image file corruption is just an artifact of how checksums were computed and written to the image by some sort of host program. I added a comment to the forum posting linked above.

It doesn't appear that there is any need to generate new images of the 11273 tapes after all.
Find all posts by this user
Quote this message in a reply
11-02-2014, 11:52 AM
Post: #40
RE: Restoring a HP9830B calculator.
(10-18-2014 05:16 PM)Geoff Quickfall Wrote:  Wonderful video.

Thanks!

(10-18-2014 05:16 PM)Geoff Quickfall Wrote:  Inspiration to get my 9825a fully functional.

Lately I have been working on a HP9810A RPN calculator. It is now finished and works well. I also manufactured my own magnetic cards to be used with the HP9810A. They worked quite well. There will be a video on that one coming in a couple of weeks.

Then I also have a HP9835, both A and B to restore. The CRT has the usual problem with glue seeping out as liquid.

www.datormuseum.se
Find all posts by this user
Quote this message in a reply
Post Reply 




User(s) browsing this thread: 1 Guest(s)