| • Science | • People | • Locations | • Timeline |
| Contents | ||
The HP-41 was not the only calculator of its generation that allowed expansion modules. The TI-58 and TI-59 also had pluggable ROM modules. The HP-41 modules were however much more versatile.
Also the same TI-58 and TI-59 calculators had the possibility to use alphabetic characters, but only on the printer.
Memory modules added RAM main memory to the calculator, allowing more programming steps and/or more data registers.
The original HP-41C had a main memory of 63 registers of 7 bytes each. Each register could hold either a number, a 6-character string, or up to 7 program steps in the Focal language (program steps used a variable number of bytes).
Each memory module added 64 registers, and the calculator could hold up to 4 of them, for a grand total of 319 registers. While this was considered huge for the time (a little more than 2 kilobytes,) all expansion slots were used. User groups found a way to merge two memory chips in a single module, thus freeing two expansion slots. HP designed a module holding all four in one slot, the so-called Quad Memory Module. The later HP-41CV had the quad module built-in.
The ROM-based application 'pac' modules added up to 4 kilobytes of read-only memory (some up to 8 kilobytes, but these were simply two independent 4K modules in the same box). Most modules held a dozen of programs written in the HP-41C programming language, Focal.
Programs in the ROM modules could be called from a user program, using the ubiquitous XEQ function. In the program code, XEQ appeared as "XROM" when it was used to call a ROM program.
The card reader was a device able to read and write small rectangular plastic cards with two magnetic strips. The card reader could copy contents of memory onto magnetic cards, and later read back the data into memory.
As the HP-41C had permanent memory (user programs and data were not wiped out when power was off) there was no absolute need for a permanent storage device, so the card reader was optional.
Each card held two strips of 112 bytes each, that could hold 16 data registers or up to 112 program steps. This limited capacity resulted in typical programs requiring 5 or more magnetic cards to be saved. A full backup of the machine's 319 memory registers plus internal data required 11 magnetic cards (each card had to be inserted twice.)
The card reader could read magnetic cards from the earlier model HP-67 . HP-67 programs were translated in HP-41C instructions, as the HP-67 and HP-41 share the same programming model and operation stack. Some instructions however were specific to the HP-67, and the card reader provided additional instructions to emulate the 67.
Magnetic cards could be write-protected, and programs saved as private: once loaded back, the source code for the program could not be displayed. This made magnetic cards an obvious choice for program distribution.
However, the electric motor put a heavy strain on the calculator batteries, and the price tag for blank cards put an even heavier strain on the user's wallet.
The time module added a real-time clock. The clock allowed you to use the actual time in your programs.
You could also define alarms that triggered calls to user programs. The alarms were able to switch the calculator on, so it was possible to create programs that executed at some point during the day, then switched the calculator off until the next alarm. As the HP-41 was often used as data-gathering device in labs, this allowed the calculator to read data from monitored devices at specific times every day, without having to run inbetween the readings (thus saving battery capacity).
The HP-41CX had the time module built-in.
The printer used rolls of thermal paper to print lines of up to 24 characters. The thermal paper provided for a bluish printout, but was somewhat unstable, as the printout could vanish or the whole paper turn blue due to excessive heat.
The printer had some graphical capabilities, as you could design your own character shapes, or even turn on or off individual pixels. However, the buffer memory could not hold sufficient information to print a whole line in graphic mode, and you could not alter line spacing, so it was impossible to print continuous graphics. The printer nevertheless provided some printing utilities that were able to graph a function on a band of paper.