Why do people always forget the HP9830? It was 2
years before the
IBM5100, and while HP called it a calculator, it was a full-blown
desktop computer with up to 16K bytes of RAM running BASIC from ROM.
OK, it had a 1-line alphanumeric LED display, not
the CRT that the
IBM5100 used, but I don't think that's enough reason to forget it :-)
Actually, this reminds me of an HP machine I used back in about 1977 or
so. Perhaps someone can identify it for me?
I think it was badged as a calculator, but "computer" would be a more
honest word. It had an embedded language which was a bit odd - nothing
I've seen anywhere else. There were some small number of named
variables - X, Y, Z, A, B, C, I think - plus one array, R(). The size
of R() depended on how large your program was - R() and program code
competed for space. It had a thermal printer that printed on paper
rolls 2=BC" wide. There was also a printer that printed on similar
thermal-paper rolls eight and five-eighths inches wide; I *think* it
was an external peripheral, but could be wrong about that. The "big"
printer used substitutes for some of the non-ASCII characters that were
built in to the small printer - for example, the right-arrow used for
assignment became " TO ", and the not-equal symbol became "#".
The particular one I used had a plotter attached; that I'm quite sure
was an external peripheral.
I can't identify it exactly, but I am pretty sure it's one of 2 machines,
one rarer than the other.
The more common one is the HP9820. The rarer one is the HP9821. They're
much the same to program, the difference is that the 9820 has a magnetic
card reader at the rear right of the kayboard, the 9821 has a digital
cassette drive (takes tapes that look like audio compact cassettes)
there. They're members of the same family as the 9830 that I mentioned as
a contender for the title of 'first personal computer'. There's one other
model in the family, the HP9810, which is a 3-level stack RPN calculator,
similar to the HP9100 to use (although totally different internally).
They're all really computers in that they have a central processor linked
to RAM and ROM, with the keyboard, display, printer,etc as peripherals.
The processor is 16 bit, bit-serial, with 2 accummulators (A and B),
program counter (P), 'Wualifer' (instruction register) Q, Memory address
register (M), Memory data register (T), Extension register (E, only 4
bits wide) and an I/O register. The processor is built on 4 PCBs (these
boards are common to all 4 machines in the family), containing about 80
TTL ICs. It's microcoded (there are 7 ROMs on on of the PCBs containing
256 28-bit words). The ALU, strangely, is a pair of ROMs on another of
the boards contianing look-up tables for the functions.
The M and T registers are not on the processor boards, they're on memory
interface boards which are different in the various machines. The 9820
has 1 or 2 1K-word RAM boards (using Intel 1103 DRAMs) and 2 ROM boards
each contianing 2K words of code. 3 optional ROM modules (1K words each)
can be plugged into sockets just behind the display.
The dispaly is 16 characters, dot matrix, and is driven by the firmware.
The keyboard, on the other hand, is encoded in hardware. It's an odd
design of keyboard, in that there are balanced teansformers formed by
spiral PCB tracks under each key. Pressing a key brigns a piece of metal
over one of the 'windings', unbalancing the system and providint an
output pulse that's detected by the encoder electronics. It's reliable,
but I guess rather expensive.
Coincidentally, I've got a 9820 in bits on my bench at the moment. I
bought it on E-bay, described as a 'non-working HP9820', and that's what
it was. I'll emphasisse here that I have no complaints against the
seller, he sold me just what I expected.
Anyway, I've cured the electronic fault (a defective shift register chip
in the M register circuit). There are 3 other faults. One is that an edge
connector has been removed from the I/O backplane (and removed very well,
I might add, there is no damage at all to the PCB tracks). I can get one
from Digikey or somewhere. More worrying, but not
suprising, is that the
card reader roller and printer platten have turned to goo.
And the card
reader spindle buckled and shattered when I tried to get the roller off
with a puller. My poor little cat, who often watches me repair classic
computers, was rather scared by this :-( (What is it about cats and
classic computer enthusiasts???).
Anyway, I've got to make a new spindle, and then work out a way to repair
the platten. Still, it should be possible...
Getting back to der Mouse's memories, the strip printer was built into
the machine, but was technically an option (I've yet to se a 9820, or a
9810, which took the same optional printer, without it). The larger
external printer may well have been an HP9866 (the 9866A is upper case
only, the 9866B is mixed case). The plotter was probably an HP9862.
There were several standard interfaces available, including 8 bit
parallel 'GPIO' (used for, amongst other things, paper tape punches and
readers0, a BCD interface (to read in readings from digital measuring
instruments), an RS232 interface, etc. There was also an HPIB interface
(I think this was the first ever family of mahcines to have HPIB). For
the 9830 (the top model in the range, running BASIC), there was a complex
and powerful asynchronous _and_ synchronous serial interface.
You can get some manuals, including prgoramming info and boardswapper
guides from
http://www.hpmuseum,net/
I did a little digging and found some old printouts, which is why I can
be so exact about the paper sizes. Here are some excerpts from one of
the programs (using the wide-printer substitutions, since I can't use
characters like the right-arrow or right-tack symbols in this email).
It bears a recognizable resemblance to BASIC, but clearly has some
important differences.
The language developed into HPL (offiically 'High Performance Language',
but it's obvious what it really stood for) which was used on the 9825
(manuals on the same site). On the 9820 it was a key-per-function
language with a key for 'PRT', etc. The R() array, of course, stood for
'registers'
The main differece to BASIC is hos you write an asignment. Rather than
C=A+B, you write A+B->C (wehre -> is a right-arrow, called 'Gozinta' in
some technical docs I've seen)
You may have gatehrered I rather like this family of machines.....
-tony