The following warnings occurred:
Warning [2] Undefined array key 61917 - Line: 275 - File: inc/plugins/threaded_mode.php PHP 8.1.2-1ubuntu2.14 (Linux)
File Line Function
/inc/class_error.php 153 errorHandler->error
/inc/plugins/threaded_mode.php 275 errorHandler->error_callback
/inc/plugins/threaded_mode.php 23 ThreadedMode::showthread_threaded
/inc/class_plugins.php 142 threaded_mode_showthread_threaded
/showthread.php 918 pluginSystem->run_hooks
Warning [2] Undefined array key 61919 - Line: 275 - File: inc/plugins/threaded_mode.php PHP 8.1.2-1ubuntu2.14 (Linux)
File Line Function
/inc/class_error.php 153 errorHandler->error
/inc/plugins/threaded_mode.php 275 errorHandler->error_callback
/inc/plugins/threaded_mode.php 23 ThreadedMode::showthread_threaded
/inc/class_plugins.php 142 threaded_mode_showthread_threaded
/showthread.php 918 pluginSystem->run_hooks
Warning [2] Undefined array key 61923 - Line: 275 - File: inc/plugins/threaded_mode.php PHP 8.1.2-1ubuntu2.14 (Linux)
File Line Function
/inc/class_error.php 153 errorHandler->error
/inc/plugins/threaded_mode.php 275 errorHandler->error_callback
/inc/plugins/threaded_mode.php 23 ThreadedMode::showthread_threaded
/inc/class_plugins.php 142 threaded_mode_showthread_threaded
/showthread.php 918 pluginSystem->run_hooks
Warning [2] Undefined array key 61930 - Line: 275 - File: inc/plugins/threaded_mode.php PHP 8.1.2-1ubuntu2.14 (Linux)
File Line Function
/inc/class_error.php 153 errorHandler->error
/inc/plugins/threaded_mode.php 275 errorHandler->error_callback
/inc/plugins/threaded_mode.php 23 ThreadedMode::showthread_threaded
/inc/class_plugins.php 142 threaded_mode_showthread_threaded
/showthread.php 918 pluginSystem->run_hooks
Warning [2] Undefined array key 61933 - Line: 275 - File: inc/plugins/threaded_mode.php PHP 8.1.2-1ubuntu2.14 (Linux)
File Line Function
/inc/class_error.php 153 errorHandler->error
/inc/plugins/threaded_mode.php 275 errorHandler->error_callback
/inc/plugins/threaded_mode.php 23 ThreadedMode::showthread_threaded
/inc/class_plugins.php 142 threaded_mode_showthread_threaded
/showthread.php 918 pluginSystem->run_hooks
Warning [2] Undefined array key 61934 - Line: 275 - File: inc/plugins/threaded_mode.php PHP 8.1.2-1ubuntu2.14 (Linux)
File Line Function
/inc/class_error.php 153 errorHandler->error
/inc/plugins/threaded_mode.php 275 errorHandler->error_callback
/inc/plugins/threaded_mode.php 23 ThreadedMode::showthread_threaded
/inc/class_plugins.php 142 threaded_mode_showthread_threaded
/showthread.php 918 pluginSystem->run_hooks
Warning [2] Undefined array key 61944 - Line: 275 - File: inc/plugins/threaded_mode.php PHP 8.1.2-1ubuntu2.14 (Linux)
File Line Function
/inc/class_error.php 153 errorHandler->error
/inc/plugins/threaded_mode.php 275 errorHandler->error_callback
/inc/plugins/threaded_mode.php 23 ThreadedMode::showthread_threaded
/inc/class_plugins.php 142 threaded_mode_showthread_threaded
/showthread.php 918 pluginSystem->run_hooks
Warning [2] Undefined array key 61954 - Line: 275 - File: inc/plugins/threaded_mode.php PHP 8.1.2-1ubuntu2.14 (Linux)
File Line Function
/inc/class_error.php 153 errorHandler->error
/inc/plugins/threaded_mode.php 275 errorHandler->error_callback
/inc/plugins/threaded_mode.php 23 ThreadedMode::showthread_threaded
/inc/class_plugins.php 142 threaded_mode_showthread_threaded
/showthread.php 918 pluginSystem->run_hooks
Warning [2] Undefined array key 62056 - Line: 275 - File: inc/plugins/threaded_mode.php PHP 8.1.2-1ubuntu2.14 (Linux)
File Line Function
/inc/class_error.php 153 errorHandler->error
/inc/plugins/threaded_mode.php 275 errorHandler->error_callback
/inc/plugins/threaded_mode.php 23 ThreadedMode::showthread_threaded
/inc/class_plugins.php 142 threaded_mode_showthread_threaded
/showthread.php 918 pluginSystem->run_hooks
Warning [2] Undefined array key 62059 - Line: 275 - File: inc/plugins/threaded_mode.php PHP 8.1.2-1ubuntu2.14 (Linux)
File Line Function
/inc/class_error.php 153 errorHandler->error
/inc/plugins/threaded_mode.php 275 errorHandler->error_callback
/inc/plugins/threaded_mode.php 23 ThreadedMode::showthread_threaded
/inc/class_plugins.php 142 threaded_mode_showthread_threaded
/showthread.php 918 pluginSystem->run_hooks
Warning [2] Undefined array key 62070 - Line: 275 - File: inc/plugins/threaded_mode.php PHP 8.1.2-1ubuntu2.14 (Linux)
File Line Function
/inc/class_error.php 153 errorHandler->error
/inc/plugins/threaded_mode.php 275 errorHandler->error_callback
/inc/plugins/threaded_mode.php 23 ThreadedMode::showthread_threaded
/inc/class_plugins.php 142 threaded_mode_showthread_threaded
/showthread.php 918 pluginSystem->run_hooks
Warning [2] Undefined array key 62071 - Line: 275 - File: inc/plugins/threaded_mode.php PHP 8.1.2-1ubuntu2.14 (Linux)
File Line Function
/inc/class_error.php 153 errorHandler->error
/inc/plugins/threaded_mode.php 275 errorHandler->error_callback
/inc/plugins/threaded_mode.php 23 ThreadedMode::showthread_threaded
/inc/class_plugins.php 142 threaded_mode_showthread_threaded
/showthread.php 918 pluginSystem->run_hooks
Warning [2] Undefined array key 62081 - Line: 275 - File: inc/plugins/threaded_mode.php PHP 8.1.2-1ubuntu2.14 (Linux)
File Line Function
/inc/class_error.php 153 errorHandler->error
/inc/plugins/threaded_mode.php 275 errorHandler->error_callback
/inc/plugins/threaded_mode.php 23 ThreadedMode::showthread_threaded
/inc/class_plugins.php 142 threaded_mode_showthread_threaded
/showthread.php 918 pluginSystem->run_hooks
Warning [2] Undefined array key 62098 - Line: 275 - File: inc/plugins/threaded_mode.php PHP 8.1.2-1ubuntu2.14 (Linux)
File Line Function
/inc/class_error.php 153 errorHandler->error
/inc/plugins/threaded_mode.php 275 errorHandler->error_callback
/inc/plugins/threaded_mode.php 23 ThreadedMode::showthread_threaded
/inc/class_plugins.php 142 threaded_mode_showthread_threaded
/showthread.php 918 pluginSystem->run_hooks
Warning [2] Undefined array key 62100 - Line: 275 - File: inc/plugins/threaded_mode.php PHP 8.1.2-1ubuntu2.14 (Linux)
File Line Function
/inc/class_error.php 153 errorHandler->error
/inc/plugins/threaded_mode.php 275 errorHandler->error_callback
/inc/plugins/threaded_mode.php 23 ThreadedMode::showthread_threaded
/inc/class_plugins.php 142 threaded_mode_showthread_threaded
/showthread.php 918 pluginSystem->run_hooks
Warning [2] Undefined array key 62131 - Line: 275 - File: inc/plugins/threaded_mode.php PHP 8.1.2-1ubuntu2.14 (Linux)
File Line Function
/inc/class_error.php 153 errorHandler->error
/inc/plugins/threaded_mode.php 275 errorHandler->error_callback
/inc/plugins/threaded_mode.php 23 ThreadedMode::showthread_threaded
/inc/class_plugins.php 142 threaded_mode_showthread_threaded
/showthread.php 918 pluginSystem->run_hooks
Warning [2] Undefined array key 62132 - Line: 275 - File: inc/plugins/threaded_mode.php PHP 8.1.2-1ubuntu2.14 (Linux)
File Line Function
/inc/class_error.php 153 errorHandler->error
/inc/plugins/threaded_mode.php 275 errorHandler->error_callback
/inc/plugins/threaded_mode.php 23 ThreadedMode::showthread_threaded
/inc/class_plugins.php 142 threaded_mode_showthread_threaded
/showthread.php 918 pluginSystem->run_hooks
Warning [2] Undefined array key 62156 - Line: 275 - File: inc/plugins/threaded_mode.php PHP 8.1.2-1ubuntu2.14 (Linux)
File Line Function
/inc/class_error.php 153 errorHandler->error
/inc/plugins/threaded_mode.php 275 errorHandler->error_callback
/inc/plugins/threaded_mode.php 23 ThreadedMode::showthread_threaded
/inc/class_plugins.php 142 threaded_mode_showthread_threaded
/showthread.php 918 pluginSystem->run_hooks
Warning [2] Undefined variable $thread - Line: 295 - File: inc/plugins/threaded_mode.php PHP 8.1.2-1ubuntu2.14 (Linux)
File Line Function
/inc/class_error.php 153 errorHandler->error
/inc/plugins/threaded_mode.php 295 errorHandler->error_callback
/inc/plugins/threaded_mode.php 23 ThreadedMode::showthread_threaded
/inc/class_plugins.php 142 threaded_mode_showthread_threaded
/showthread.php 918 pluginSystem->run_hooks
Warning [2] Trying to access array offset on value of type null - Line: 295 - File: inc/plugins/threaded_mode.php PHP 8.1.2-1ubuntu2.14 (Linux)
File Line Function
/inc/class_error.php 153 errorHandler->error
/inc/plugins/threaded_mode.php 295 errorHandler->error_callback
/inc/plugins/threaded_mode.php 23 ThreadedMode::showthread_threaded
/inc/class_plugins.php 142 threaded_mode_showthread_threaded
/showthread.php 918 pluginSystem->run_hooks
Warning [2] Undefined variable $fid - Line: 295 - File: inc/plugins/threaded_mode.php PHP 8.1.2-1ubuntu2.14 (Linux)
File Line Function
/inc/class_error.php 153 errorHandler->error
/inc/plugins/threaded_mode.php 295 errorHandler->error_callback
/inc/plugins/threaded_mode.php 23 ThreadedMode::showthread_threaded
/inc/class_plugins.php 142 threaded_mode_showthread_threaded
/showthread.php 918 pluginSystem->run_hooks
Warning [2] Undefined array key 61944 - Line: 331 - File: inc/plugins/threaded_mode.php PHP 8.1.2-1ubuntu2.14 (Linux)
File Line Function
/inc/class_error.php 153 errorHandler->error
/inc/plugins/threaded_mode.php 331 errorHandler->error_callback
/inc/plugins/threaded_mode.php 332 ThreadedMode::buildtree
/inc/plugins/threaded_mode.php 332 ThreadedMode::buildtree
/inc/plugins/threaded_mode.php 332 ThreadedMode::buildtree
/inc/plugins/threaded_mode.php 332 ThreadedMode::buildtree
/inc/plugins/threaded_mode.php 332 ThreadedMode::buildtree
/inc/plugins/threaded_mode.php 304 ThreadedMode::buildtree
/inc/plugins/threaded_mode.php 23 ThreadedMode::showthread_threaded
/inc/class_plugins.php 142 threaded_mode_showthread_threaded
/showthread.php 918 pluginSystem->run_hooks
Warning [2] Undefined array key 61954 - Line: 331 - File: inc/plugins/threaded_mode.php PHP 8.1.2-1ubuntu2.14 (Linux)
File Line Function
/inc/class_error.php 153 errorHandler->error
/inc/plugins/threaded_mode.php 331 errorHandler->error_callback
/inc/plugins/threaded_mode.php 332 ThreadedMode::buildtree
/inc/plugins/threaded_mode.php 332 ThreadedMode::buildtree
/inc/plugins/threaded_mode.php 332 ThreadedMode::buildtree
/inc/plugins/threaded_mode.php 332 ThreadedMode::buildtree
/inc/plugins/threaded_mode.php 304 ThreadedMode::buildtree
/inc/plugins/threaded_mode.php 23 ThreadedMode::showthread_threaded
/inc/class_plugins.php 142 threaded_mode_showthread_threaded
/showthread.php 918 pluginSystem->run_hooks
Warning [2] Undefined array key 62071 - Line: 331 - File: inc/plugins/threaded_mode.php PHP 8.1.2-1ubuntu2.14 (Linux)
File Line Function
/inc/class_error.php 153 errorHandler->error
/inc/plugins/threaded_mode.php 331 errorHandler->error_callback
/inc/plugins/threaded_mode.php 332 ThreadedMode::buildtree
/inc/plugins/threaded_mode.php 332 ThreadedMode::buildtree
/inc/plugins/threaded_mode.php 332 ThreadedMode::buildtree
/inc/plugins/threaded_mode.php 304 ThreadedMode::buildtree
/inc/plugins/threaded_mode.php 23 ThreadedMode::showthread_threaded
/inc/class_plugins.php 142 threaded_mode_showthread_threaded
/showthread.php 918 pluginSystem->run_hooks
Warning [2] Undefined array key 62156 - Line: 331 - File: inc/plugins/threaded_mode.php PHP 8.1.2-1ubuntu2.14 (Linux)
File Line Function
/inc/class_error.php 153 errorHandler->error
/inc/plugins/threaded_mode.php 331 errorHandler->error_callback
/inc/plugins/threaded_mode.php 332 ThreadedMode::buildtree
/inc/plugins/threaded_mode.php 332 ThreadedMode::buildtree
/inc/plugins/threaded_mode.php 332 ThreadedMode::buildtree
/inc/plugins/threaded_mode.php 332 ThreadedMode::buildtree
/inc/plugins/threaded_mode.php 332 ThreadedMode::buildtree
/inc/plugins/threaded_mode.php 304 ThreadedMode::buildtree
/inc/plugins/threaded_mode.php 23 ThreadedMode::showthread_threaded
/inc/class_plugins.php 142 threaded_mode_showthread_threaded
/showthread.php 918 pluginSystem->run_hooks
Warning [2] Undefined array key 62100 - Line: 331 - File: inc/plugins/threaded_mode.php PHP 8.1.2-1ubuntu2.14 (Linux)
File Line Function
/inc/class_error.php 153 errorHandler->error
/inc/plugins/threaded_mode.php 331 errorHandler->error_callback
/inc/plugins/threaded_mode.php 332 ThreadedMode::buildtree
/inc/plugins/threaded_mode.php 332 ThreadedMode::buildtree
/inc/plugins/threaded_mode.php 304 ThreadedMode::buildtree
/inc/plugins/threaded_mode.php 23 ThreadedMode::showthread_threaded
/inc/class_plugins.php 142 threaded_mode_showthread_threaded
/showthread.php 918 pluginSystem->run_hooks
Warning [2] Undefined array key 62131 - Line: 331 - File: inc/plugins/threaded_mode.php PHP 8.1.2-1ubuntu2.14 (Linux)
File Line Function
/inc/class_error.php 153 errorHandler->error
/inc/plugins/threaded_mode.php 331 errorHandler->error_callback
/inc/plugins/threaded_mode.php 332 ThreadedMode::buildtree
/inc/plugins/threaded_mode.php 332 ThreadedMode::buildtree
/inc/plugins/threaded_mode.php 304 ThreadedMode::buildtree
/inc/plugins/threaded_mode.php 23 ThreadedMode::showthread_threaded
/inc/class_plugins.php 142 threaded_mode_showthread_threaded
/showthread.php 918 pluginSystem->run_hooks
Warning [2] Undefined variable $theme - Line: 3 - File: inc/plugins/threaded_mode.php(305) : eval()'d code PHP 8.1.2-1ubuntu2.14 (Linux)
File Line Function
/inc/class_error.php 153 errorHandler->error
/inc/plugins/threaded_mode.php(305) : eval()'d code 3 errorHandler->error_callback
/inc/plugins/threaded_mode.php 305 eval
/inc/plugins/threaded_mode.php 23 ThreadedMode::showthread_threaded
/inc/class_plugins.php 142 threaded_mode_showthread_threaded
/showthread.php 918 pluginSystem->run_hooks
Warning [2] Trying to access array offset on value of type null - Line: 3 - File: inc/plugins/threaded_mode.php(305) : eval()'d code PHP 8.1.2-1ubuntu2.14 (Linux)
File Line Function
/inc/class_error.php 153 errorHandler->error
/inc/plugins/threaded_mode.php(305) : eval()'d code 3 errorHandler->error_callback
/inc/plugins/threaded_mode.php 305 eval
/inc/plugins/threaded_mode.php 23 ThreadedMode::showthread_threaded
/inc/class_plugins.php 142 threaded_mode_showthread_threaded
/showthread.php 918 pluginSystem->run_hooks
Warning [2] Undefined variable $theme - Line: 3 - File: inc/plugins/threaded_mode.php(305) : eval()'d code PHP 8.1.2-1ubuntu2.14 (Linux)
File Line Function
/inc/class_error.php 153 errorHandler->error
/inc/plugins/threaded_mode.php(305) : eval()'d code 3 errorHandler->error_callback
/inc/plugins/threaded_mode.php 305 eval
/inc/plugins/threaded_mode.php 23 ThreadedMode::showthread_threaded
/inc/class_plugins.php 142 threaded_mode_showthread_threaded
/showthread.php 918 pluginSystem->run_hooks
Warning [2] Trying to access array offset on value of type null - Line: 3 - File: inc/plugins/threaded_mode.php(305) : eval()'d code PHP 8.1.2-1ubuntu2.14 (Linux)
File Line Function
/inc/class_error.php 153 errorHandler->error
/inc/plugins/threaded_mode.php(305) : eval()'d code 3 errorHandler->error_callback
/inc/plugins/threaded_mode.php 305 eval
/inc/plugins/threaded_mode.php 23 ThreadedMode::showthread_threaded
/inc/class_plugins.php 142 threaded_mode_showthread_threaded
/showthread.php 918 pluginSystem->run_hooks
Warning [2] Undefined variable $lang - Line: 5 - File: inc/plugins/threaded_mode.php(305) : eval()'d code PHP 8.1.2-1ubuntu2.14 (Linux)
File Line Function
/inc/class_error.php 153 errorHandler->error
/inc/plugins/threaded_mode.php(305) : eval()'d code 5 errorHandler->error_callback
/inc/plugins/threaded_mode.php 305 eval
/inc/plugins/threaded_mode.php 23 ThreadedMode::showthread_threaded
/inc/class_plugins.php 142 threaded_mode_showthread_threaded
/showthread.php 918 pluginSystem->run_hooks
Warning [2] Attempt to read property "messages_in_thread" on null - Line: 5 - File: inc/plugins/threaded_mode.php(305) : eval()'d code PHP 8.1.2-1ubuntu2.14 (Linux)
File Line Function
/inc/class_error.php 153 errorHandler->error
/inc/plugins/threaded_mode.php(305) : eval()'d code 5 errorHandler->error_callback
/inc/plugins/threaded_mode.php 305 eval
/inc/plugins/threaded_mode.php 23 ThreadedMode::showthread_threaded
/inc/class_plugins.php 142 threaded_mode_showthread_threaded
/showthread.php 918 pluginSystem->run_hooks





HP9810: printer and card reader required for function?



#10

Hi anybody,

I have here a nonfunctional HP9810, which I plan to try to repair.

The calcuator does almost nothing. A while after switching on it switches some of the LEDs on: Status Float and Run, all others are off, the display is also completely off. There is no reaction to the keyboard.

With the help of the archive I have found some older discussions on this topic, I have also now the patent to the HP9810 with part of the schematics and description of the function. That's really a lot to read.

Until now I have checked the power supply (which is ok) and had a fast view on the keyboard with the oscilloscope. At least there are some reactions to the keys in the signals to see. I still have to look into the details.

To reduce to possible sources of errors I have removed to printer and the card reader together with the corresponding cards. This resulted in no change in the behaviour. My question is: Does a HP9810 work without its printer and card reader or have these modules to be inserted?

Thanks for any hints,

Thomas


#11

A 9810 (or at least my 9810) will work without the card reader PCB (the one alongside the PSU) or the printer fitted. You can also remove the I/O backplane at the back, the ROM module backplane (unplug the edge connector from the edge of the main backplane under the memory box) and even the keyboard (unplug it under the printer, you obviously have to keep the mains switch plug connected).

The keyboard LEDs are something of a red herring. They're driven by an 8 bit latch on the keyboard controller board (yes, I know there are 10 LEDs, but float/fixed are driven by the normal and inverted outputs of one bit and program/run are driven by the normal/inverted outputs of another bit). So at least 2 LEDs will be on if the PSU is OK, even if the CPU isn't running.

The lack of display could mean a fault almost anywhere in the machine. The display is scanned in software, so for it to come on, the CPU has to be working, as does the memory, the I/O interface, and of course the display itself.

This is a bit-serial machine which makes life a little difficult. You need a 'scope or logic analyser to get anywhere in troubleshooting it IMHO. A microcode source listing is also useful -- the microcode address lines are on the test connector on the 09810-66513 CPU control board and can be used to find out just what the machine is doing.

You say you have the schematics, but IIRC these don't give the pinouts of the boards. HPCC has a complete reverse-engineered schematic of this machine (with pinouts, etc), but the chap who has it is on holiday at the moment. Still, it may be possible to get a copy to you.

What I'd do is :
Check for the display strobe at the display PCB. Most likely it's missing, but you don't want to dig into the logic if the fault is on the display PCB.

Then look at some key signals in the CPU. Are the clocks running (You can run the clock card with no other logic cards in the machine and look at the bit clock and microcode clock signals)? Is it trying to access memory (the '3' and '6' outputs from the R-field decoder IIRC)? Is the memory active (look for activity on the address and data lines in the memory box)? Is it executing any I/O operations (is the I/O flip-flop on the clock card being set)? Is the I/O register being loaded? Do the ALU signals look sane?

I've had a fair amount of trouble with the 74Hxx logic in these machines -- the chips don't give a 'good' output signal.

Feel free to contact me if you think I can be of any help. I've done component-level repair on the 9810 and 9830.


#12

Hi Tony,

thanks for your message. Maybe you remember, we had contact about one and a half year ago when I was asking for help with a defective HP9100. Unfortunately this was not my calculator, I had to give it back to the museum where I had borrowed it. They don't mind if a calculator is not working.

The HP9810 now is mine, thus it should work. ;-)

I will do the tests you mentioned. Some corrections to the LEDs: directly after sitching on, some of the LEDs are on, eg. one of the card reader. After one or two seconds it changes to what I have described and what I assume as default for this calculator. Unfortunately this means that the CPU ist probably doing something. If it is a fault in the display board only I would expect some reactions on the LEDs to changing the display format, but it doesn't.

I have at the moment only the patent as a guide. I hope it contains enough information for identifying the cards and to find the important signals. A copy of the schematics would be usefull. In what form does the HPCC have it?

I will let you know what happens, but as far as I can see, it will take some time. Its something like solving crossword puzzles.

Regards,

Thomas


#13

I just picked up my 9810 (Hi, Tony!) and will start to work on it soon. Mine shows the same symptoms, and as Tony told me, I have to expect a tough job. I'd appreciate it if you would share your insights - and will gladly share mine.

Andreas


#14

I'm quite happy to continue this discussion here (so everyone can see it), or take it to private e-mail with a few people (us 3 ?) swapping messages, hints, tips, etc.

Oh yes, somebody was asking about the HPCC schematic. It exists as a pile of hand-drawn sheets (the eccentric member who produced it doesn't believe in CAD systems ;-)), but I think it's either been scanned or will be scanned soon.


#15

Tony: If you don't mind, please keep discussing this and other matters here, so many of us can benefit from the discussion and learn (even it is unlikely we will have a 9100 or 98X0 on hand to play with or to repair...).

Thank you for your enlightening postings!

#16

OK, some more thoughts (mostly good).

Firstly, in your first message you mention that processor signals appear to change when you press a key. Now, this is from memory, but I am going to try to describe the keyboard response on the 9810.

The keyboard is scanned in hardware (that's the circuitry on the PCB on the back of the keyboard). When it detects a keypress, it sends an interrupt signal to the CPU, and provides a 7 bit keycode to the I/O interface board.

Now, interrupts on the 9810 are clever. The microcode checks the interrupt signal during the fetch-execute cycle. If it's asserted, then the microcode fetches the instruction at address 2 without reloading the program counter (P register). In other words the M register is loaded with 2 rather than with the contents of P.

Now, this instruction is conventionally a call (there's no reason why it has to be, but as it's in ROM it can't easily be changed, and it's a call on every 98x0 machine I've seen). This call is executed, pushing the contents of P onto the return stack (remember P still contains an address in the 'normal' program) and then jumping to the Interrupt Service Routine. At the end of said routine, the return instruction restores P and continues with the main program.

So the fact that the signals change on a keypress would seem to indicate that the CPU is going round the fetch-execute loop. It may not be executing the right instructions, but at least it's not stuck in an address indirection loop or something.

The fact that the LEDs change once after power-on is a good sign too. At power-on the LED latch contains essentially random data, and it has to be loaded by the CPU. It sounds like the CPU is doing this (maybe not correctly).

This sounds like a problem either in the data path, or more likely the I/O interface (09810-66511 card). Maybe the I/O size logic, maybe the I/O register or its control circuits.


#17

Hi Tony,

thanks for the hints. I will check it. Yesterday evening I was reading in the patent. Faszinating! Unfortunately the calculator has to wait for the weekend.

I will be back with new questions on monday ;-)

Best wishes,

Thomas

#18

Hi Everybody. I recently acquired a non-working 9810A, but having experience with TTL and CMOS, (most recent project was resuscitating an HP87 by replacing the HP-IB I/O chip), as time permits I will be attempting to repair the 9810A. Information about the on-going process will be posted here. Maybe it will help someone else and just maybe I might learn a thing or two from those of you who have done or are doing such a repair. At this point I have not opened the 9810A, and it is currently a dead duck, with no lights or fan activity.

At the moment I am also repairing a 9825B with a gummy printer solenoid (the remaining task is to get the row-feed solenoid adjsuted correctly so that I don't get double-height characters), and a 9815A with a stuck key (which prevents the machine booting up unless the key is pulled up).

I am also repairing a (non-HP) SCM Cogito 240SR which has a bad vertical CRT drive (it was working but a wire fell off several years ago when moving the unit, and two wires got accidentally swapped). I am pulling germanium transistors off the drive board one by one and testing them.


#19

Maybe I also can contribute something to the discussion. I repaired three 9810 with the same well known problems. I was in luck, because I could borrow a working 9810 and swap the boards from my dead machines to find out which ones are defective. This reduced the work enormously. To locate defective ICs a logic comparator (HP5011T) is extremely usefull. I bought two of these on ebay. I you see one: BUY IT! Of course not every defect can be found out with that tool. First it only works with TTL ICs with max. 16 pins, second open-collector outputs (as in 7401) make troubles. But by far most of the ICs can be checked, as long as you have a working sample IC to compare with.
From my experience some 74xx types have a high propability to fail, namely 7400, 74(H)01, 74(H)04, 7406, 74(H)08, and 7474. I assume that they are demaged be spurious overvoltage peaks. In one 9810 all 74H01 on the T-Register board (9810-66524) where defective.
To check the boards you have to have some kind of bus extender which is plugged into the connector on the main pcb and then connected to the board under test. I have build a bus extender from a piece of pcb with double sided (2*15 and 2*18) contacts , the corresponding amphenol connectors, and a 10 in. long ribbon cable soldered to it. The test takes places with power on, so you carefully have to insulate the lower side of the board under test.
If interesting, I can mail photos of the arrangement.

Achim


#20

If you don't have the extender board, you can carefully solder wires onto suitable points on the PCB, then put it back in place and probe the free ends of the wires with the machine on.

#21

Re your totally dead 9810:

The 'no fan activity' suggests that mains is not getting to the power transformer. These machines have a 120V AC fan which runs off the primary of the power transfomer.

For interest, the transformer has 2 primary windings. One is 120V, the other is 120V, tapped at 100V. The selector switches configure them as follows :

100V : Mains in to 100V section, this winding operates as an autotransformer to provide 120V to the other winding and the fan.

120V : The 2 120V sections in parallel across the mains, fan across the mains.

220V : 100V section of the second winding in series with the first winding (120V). Fan across the 120V winding.

240V : The 2 120V sections in series, fan across the first (untapped) winding.

Now the mains input circuit is really simple and you should have no problems in sorting it out. I have had problems with the power switch on the keyboard assembly going open-circuit in these machines (actually in a 9830, but it's the same switch) so you might want to check that first.


#22

Thanks for the power supply tips, Tony.


#23

No problem. Actually, the worst part of working on this part of the machine is getting to it.

I'd start by removing the keyboard. 4 screws underneath, then unplug the edge connector under the printer and the mains switch plug.

Then I'd test the switch. Turn the switch on and check for continuity between diagonally opposite pins on the plug (the odd pin in the middle is ground, for the cable shield).

If it's open, you remove the switch as follows : Carefully pull off the connector PCB from the side of the keyboard (this links the encoder to the keyboard matrix), unplug the cable edge connector at the other side, then undo the 4 (?) screws and take off the encoder board. Take out the 6 screws that hold the keyboard to the bezel and take off the bezel. Remove the 6 (larger) screws that hold the front strip in place, take that off too. Then undo the 2 little countersunk screws that hold the switch in place and remove it.

You'll find many of these screws are coated in threadlock. I found it worth running a 4-40 UNC die over the screws and a tap in the holes to clean them out.

You can try taking the switch apart to repair it, but generally plastic parts have broken and it's unrepairable. I've not found a source of identical switches -- if you do, please tell me.

If the switch is fine, you'll have to remove the rear panel from the machine. Take out the PSU boards and the card reader -- actually I find it easier to take out the other boards and the printer too. Take out the 4 screws that hold the rear edge connecotrs for the PSU boards in place -- these are wired to the transformer, the transformer is connected to the rest of the machine via the PSU boards. I can't remember if there are cable clips for the mains switch cable, if there are, remove them (5/16" spanner). Then loosen the 2 top nuts for the rear panel (difficult to get to, you need a 11/32" open-end spanner), and slide the bolts forward in the T slots. Remove the 3 countersunk screws under the rear edge of the machine and pull the back panel off. Feed the switch wiring through the chassis and remove the back panel completely.

On newer machines there's a metal bracket over the mains stuff. It's held down by 2 screws at the top. Take it off.

You can now get to the various bits of the mains side of the PSU. I can't remember the schematic, but it's very simple so you should be able to trace the wires.


#24

Thanks again, Tony. Your suggestions will be very useful. I'll post back here about any successes or if I have any relevant observations. Unfortunately I won't be able to get to it until next weekend, however, as I am currently chained to my engineering desk at work! ;-)

#25

Hi,

to all the interested. Before looking into the dead HP9810 I decided to complete my home built logic analyser which I started almost one year ago, but never found time to finish. The logic analyser is working now, the HP9810 is not.

The HP9810 is doing something, but it doesn't tell what. The display enable signal (DEN) is missing. I traced it back to the IO controller, which is in the patent in fig. 162. The RS-FF controling the DEN signal doesn't get switched on. It should switched on, if both EOW and Q3 are high, but they are never at the same time active. Thus no DEN :-( Probably I will have to dive deeper into the CPU.

I found that the CPU is actually doing something, it does one large cycle over about 1.25ms. In this big cycle there are seven shorter ones. The complete cycle looks like this:

  1. 7 short identical cycles; each over about 1650 clock cycles
  2. 256 clock cycles nothing, most signals seem to be inactive, at least the ones, I have seen (at least the clock is running further on)
  3. back to 1.
By clock cycles I mean the main clock (8MHz) of the calculator. The cycles are very good to see at the inputs of
the I/O address flip-flops on the clock card (Fig. 140A in the pat.), but also at the other signals, e.g. Q3 and EOW on the IO card. They can be seen on a logic analysator only probably, on my normal oscilloscope I can't see it.

Now my big question: Is the calculator supposed to do this?

In the patent I found that some of the memory cards are optional. Thus they could be removed to reduce the complexitiy of the system. But I couldn't figure out, which cards are optional and which are not. I my calc there seems to be an extension ram, as written on the case. Which of the cards is this?

Thanks for any hints,

Thomas


#26

The only memory board wich can be removed is the upper most one (extended memory, e.g. board 11217-66526) in the memory cage. The second upper is the standard RW-memory (500 steps, 51 registers, 9810-66525).
All other are required for proper function of the calculator.

Achim

#27

This is from memory, and complicated by the fact that I work from the HPCC diagrams, not the patent. The former were drawn out before I'd come across the patent, so I use different names for many of the sgnals. Anyway....

The display enable flip-flop is set by the logical AND of 2 signals. One, you call EOW and I call IOcmd(13) (because it's the active high version of the I/O command decoder, the '154 on the clock board). The other you call Q3 and I call Q(3). This is bit 3 of the Q register.

Now, Q(3) doesn't tell us much. The Q register (Qualifier == machine instruction) is a shift register in the CPU, and data is being shifted through it during every instruction execution. Therefore I'd expect the various bits to be changing.

However, EOW (IOcmd(13)) is more interesting. It should only go high during an I/O operation. If it is going high sometimes, it means the CPU is executing some I/O operations.

As an aside, HP claimed a separate I/O processor at one point. I think it's fairer to call it a state machine. I/O operations put the main CPU microcode into a tight look, and a latch on the clock card is loaded from some of the bits of the Q register (machine instruction, these bits define what sort of I/O operation is to be performed), then it cycles through a few states. The output of this latch feeds the '154 I mentioned.

As to the clock pulses. There are 2 main clocks in the 9810. The bitclock is the 8MHz master clock and is used to clock bits through shift registers, etc. It's divided down by a counter ('193? '163?) on the clock card to produce the microcode clock. This counter is controlled by 4 bits of the current microinstruction. What this means is you can have between 1 and 16 bitclocks for every microcode clock. This is used, of course, to do the same operation on several bits of the same register (it's bit-serial, remember).

My next test would be to see if it's reading memory (look for a '155 decoder that decodes the R field of the microcode word, I think it's outputs 3 and 6 you want to look at -- this chip is on the -66513 board towards the bottom left corner). If it is reading memory, then see where -- grab the outputs of the M register (these are on the memory box test connector -- I can dig out the pinout). If possible, look at the T register (the other side of the test connector) a few cycles later to see what it's read.

Another idea would be to trigger on the EOW signal (my
IOcmd(13) and see what the bottom 5 bits of the Q register are doing (Q(0) .. Q(4)). These are the select signals (1-of-n code) for the various I/O devices. It would be interesting to see what it thinks it's accessing.

Finally, the optional memory board. In the memory box (the metal box at the left side of the machine) are 6 PCBs. From the bottom they are :

Firmware ROM card,
Memory control,
Memory address (M register is on this card),
Memory data (T register is here),
Standard RAM,
Optional RAM.

You can remove the top card (IIRC red and blue handles). The other boards must be in place.


Possibly Related Threads…
Thread Author Replies Views Last Post
  Reasonable price for a 41C, Quad Mem, Time, Navigation and Card reader module? Eelco Rouw 10 4,631 12-12-2013, 01:52 AM
Last Post: Eelco Rouw
  HP50g: Writing a function that returns a function Chris de Castro 2 2,063 12-10-2013, 06:49 PM
Last Post: Han
  hp-67 card reader problem. Marcel Samek 5 3,153 12-09-2013, 09:09 PM
Last Post: Paul Berger (Canada)
  HP9810A and HP9862A - ROM required? Thomas Falk 0 1,280 12-07-2013, 09:49 PM
Last Post: Thomas Falk
  HP-97 card reader pinch roller axle davorin 2 1,576 09-15-2013, 08:47 AM
Last Post: aj04062
  HP-97 Card Reader davorin 3 1,857 09-13-2013, 04:21 PM
Last Post: Stephan Matthys
  HP-67 Card Reader Repair Question aj04062 1 1,483 08-08-2013, 11:15 AM
Last Post: Randy
  OT: My brain is failing me again. Help with numerical / mechanical problem required. Harald 4 1,756 07-01-2013, 10:31 AM
Last Post: Harald
  Hp-67 card reader: tantalum capacitor identification Ignacio Sánchez 8 3,175 06-02-2013, 07:26 PM
Last Post: aj04062
  Testing card reader motor for 65 Michae Altmann 2 1,599 03-17-2013, 09:24 PM
Last Post: Randy

Forum Jump: