Subject: Looking for parts for an HP 9821A desktop calculator

From: "Stan" <[email-masked]>
Date: Mon Mar 3 12:44:10 2003

Hello,

I recently acquired an old HP 9821A desktop calculator. It's in good shape
cosmetically, but it has apparently had previously donated some of its
internal cards to an unknown cause. Specifically, it seems to be missing
three of the four CPU cards, and two of the three RAM cards.

A quick search of some sources suggests that some or all of the CPU cards
are identical to those in the 9810A and possibly the 9830A. I don't know
about the RAM cards, though. Obviously, the CPU and RAM cards from a 9820A
would be an exact replacement.

Any help in getting this classic beast running again will be greatly
appreciated!

Thanks,
Stan

---

From: [email-masked] (Tony Duell)
Date: Mon Mar 3 22:37:28 2003

> I recently acquired an old HP 9821A desktop calculator. It's in good shape

Wow! The 9821 is, I beleive, by far the rarest of that family...

> are identical to those in the 9810A and possibly the 9830A. I don't know

Yes, or rather I can confirm that the 9810 and 9830 use the same CPU 
cards. I have both machines, and I've interchanged CPU cards between them 
(in both directions) with no problems. The CPU cards have the same part 
numbers too...

In case you've not figured it out yet, the part numbers of the cards in 
these machines start with the model number of the machine where they were 
first used (and the 9810, using 09810-665xx cards, came out first). You 
may also find 09865-665xx cards in the cassette drive controller -- you 
do in the 9830, for example.

The card handles of the cards give the last 2 digits of the part number, 
using the obvious code (if you can't work out what the 'obvious code' is, 
then you shouldn't be inside the machine in the first place ;-)). The CPU 
boards are : 
09810-66511 (Br/Br) I/O interface
09810-66512 (Br/R) CPU Clock and I/O logic
09810-66513 (Br/Or) CPU control (microcode, etc)
09810-66514 (Br/Y) CPU data path

Here are some notes about the 98x0 CPU that were sitting about on this 
PC. I've got some more info like this on the 9810 and 9830 machines 
(discovered by pulling them apart carefully :-)) if anyone is interested...
---------------------------
There are 4 PCBs, each with about 20 chips. Mostly TTL (including 74Hxxx 
numbers -- watch out, these can have odd pinouts). 9 small (256*4) PROMs 
(Microcode and ALU lookup tables). The boards (like all those in the 
machine) have colour-coded handles which relate to the last 2 digits of 
the part number (the rest of the number is always 09810-665xx) using the 
obvious code.

Here's roughly what goes on on the CPU boards (Br handle on rear): 

Data path (Br/Y). ALU (2 PROMs as a lookup table) -- 1 bit for binary
operations, 1 nybble for BCD ('decimal'). 2 flags (in 7474) for carry and
decimal carry. Main registers : A Accumlator is 16 bits with nybble access
to the ends ('95 -> '91 ->'95). B and P registers are 16 bit, serial only
(9328s). E register is 4 bits, serial only, used to store one nybble
during shifts? Includes one of the bit muxes for the ALU input ('53 with
'62 expander). The other one is on the memory data PCB (!). Note that
memory can be read by nybble too (the low 4 bits of the T register (memory
data register) are brought to this PCB. Therefore BCD operations are
A=A+memory kind of things. 

Control (Br/O). Microcode PROMs obviously (but they're not all next to 
each other, so watch out!). Also microcode program counter (4 off 'H108 
JKs). Note that the next microcode address field specifies the bits to 
_change_ (it's connected to the J and K inputs on the FFs), which is odd. 
One half of this field also selects the branch condition, which affects 
one bit in the other half (writing this microcode must have involved some 
serious hackery!). 16 input condition mux (from carry flags, I/O flags, 
LSB of P register, and many bits of Q). Also Q register (16 bit SR, used 
to store instruction fetched from memory. Microcode field decoders 
('155s, used as 3-8 decoders) A/B register select FF ('H101). Test 
connector on top of PCB carries microcode address, microcode address 
changes, condition mux output, so you can see what the machine is doing 
(given a logic analyser and a microcode listing!).

Clock (Br/R). Master clock obviously. Note the pads to connect an 
external TTL clock generator to -- shorting the 2 on the solder side 
together disables the internal osciallator. These signals are also on 
(unconnected) fingers on the edge connector. Also the /n counter to 
produce the microcode clock (this thing will generate 1-16 shift pulses 
for each instruction -- set by a field in the microcode word -- so it can 
do n-bit operations between the main registers) + control logic. I/O 
function register (loaded from Q) and decoder (The '154 in the middle of 
the board). I/O clock is odd. It's generated via that decoder by fiddling 
with the instruction in the I/O command register (done via some of the 
gates), which means it runs at half the main clock speed. So does the bit 
clock during I/O operations (!). Thrre's a FF on the I/O card to 
synchronise this. I/O operation FF (the 'H101). Other random logic for 
I/O control. I/O bit counter.

I/O (Br/Br). I/O data register (16 bit, parallel and serial access) + 
control logic. Note that for external devices, that's 8 bit data, 4 bit 
select (address), 4 bit control. For internal devices (keyboard, display, 
card reader, printer), it's 16 bit data, selects come from other logic). 
Also sync FF at the input to this, control gating. Several SR FFs (made 
from NAND gates -- lots of feedback paths to catch you!) to handle I/O 
select and control.

Memory cage (R handle at rear) ---- NOTE THIS IS 9810 SPECIFIC!!. 

R/Pu is the backplane, and contains no other electronics. There's a test
connector on top (36 pin) which gives +5V, ground, the 16 bits of M
(address) and 16 bits of T (data), but with no sync signals). At the 
bottom, the rear connector carries power and CPU signals (mostly 
bit-serial). The front connector is parallel address, data, selects for 
the cartridge ROMs, and is routed to the cartridge backplane only.

ROM (R/Br) system firmware. Note that HP ROMs are strange, needing a 
-2V or so bias supply and both normal and inverted forms of the highest 
address bit. The selects (CE And CS) need to be taken to +12V to enable 
the ROM (this is done on the address PCB for all ROMs, including those in 
cartridges). 

TIming/Control (R/R). Memory cycle timing (counter, '154 decoder, gates). 
Refresh counter and mux for DRAMs. Refresh timing monostable. Low 5 RAM
address buffers (address bits from refresh mux, you see). Drivers for R/W 
and Precharge lines to RAM. M and T register control gates

Address (R/Or). M (address) shift register (16 bit). Address decoder 
(note that ROM and RAM are in the same address space, and neither are 
contiguous!). RAM address buffers, ROM and RAM CS buffers. ROM address gates

Data (R/Y). T (data) shift register, bit doubling logic for RAM read (the 
RAM is only half width, so 2 cycles are done with a shift between them 
for reads -- this is handled by the control/timing PCB, not the CPU). RAM 
data buffers (read and write).

RAM (R/Gn, R/Bu). 1103 DRAM chips (1K *1 bit, PMOS, odd voltage levels). 
Nothing more. RAM is either 8 bit (data store, doubled to 16 bits on the 
data PCB)< or 3 bit (program store, doubled to 6 bit (keycodes)). RAMs 
are labelled in the etch with their bit number which helps.

-------------------------------------

> about the RAM cards, though. Obviously, the CPU and RAM cards from a 9820A

I cna tell you that the 9810 and 9830 have very different memory cards. 
The 9810 has a little memory cage with its own backplane containing cars 
about the same size as the CPU cards (see the descriptions above). The 
9830 has larger cards that go across the whole width of the machine -- up 
to 2 RAM cards (4K 16 bit words each max, in 1103s), 1 main ROM card (28 
ROM chips !), Memory control/address, Memory Data, Extension ROM 
Selector, a card with 2 more ROM chips that wouldn't fit on the main ROM 
card (!), and up to 3 intenral extension ROM cards....

> Any help in getting this classic beast running again will be greatly

If you need help with repairing any of the cards that are also used in 
the 9810 or 9830 (check the part numbers), just ask. I have worked on 
these machines at the component level... I do not have any spare cards, 
though.

-tony