Hello,
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...
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
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....
would be an exact replacement.
Any help in getting this classic beast running again will be greatly
appreciated!
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