Around the time of the HP-67, an article in the Hewlett-Packard Journal, stated that electronic technology was no longer the only limitation of pocket calculator progress. The human interface was becoming an even greater barrier to adding more functionality. The HP-67 was an excellent example of the problem. It had three shift keys and most of its other keys had four functions. HP was running out of keyboard space for new functions, and many users found it difficult write and use numeric-only programs.
The HP-41C overcame these limitations by adding alphanumeric capabilities to both the display and keyboard. The keyboard had an "Alpha" key that toggled the keyboard between alpha and the normal calculator mode. (The alpha characters were printed on the slanted faces of the keys.) If the user needed a function not printed on a key, the name of the function could be typed in and executed. (About half of the HP-41Cs functions were preassigned to keys.)
Because typing out the name of a function could be cumbersome, the HP-41C added another toggle key called "user". The user could assign any built-in function or user program to any key. Once the keyboard was placed in user mode, any assignments made by the user overrode the label on the key. (With the gold shift key, this allowed two user functions per key.) The user toggle state remained set even when the calculator was turned off allowing true keyboard customization.
To make it easy to remember keyboard assignments, HP provided keyboard overlays along with preprinted labels for all built-in functions and blank labels for user functions. In addition, whenever a key was held down, its function name was displayed. If it was the wrong key, the user could continue to hold it until the display showed "NULL" when meant the function was canceled.
Of course, HP didn't just improve the human interface. The HP-41C had more memory (now non-volatile) than its predecessor, more functions, improved programming, and could be expanded with both RAM and ROM modules.
"The HP-41C represents a totally new concept in the design of Hewlett-Packard calculators. In fact, because of the advanced capabilities of the HP-41C, it can even be called a personal computing system. The HP-41C is the first Hewlett-Packard handheld calculator offering an exciting array of alphanumeric capabilities.With so many different kinds of calculator uses and applications in the world, we at Hewlett-Packard decided we could provide a significant contribution by designing and building you a quality calculator with expandable and flexible capability. The alphanumeric HP-41C is just the calculator."
The HP-41C used a low power LCD display with 4 more segments than previous calculators. This allowed a full range of alphabetic characters. The characters were not as fully formed as a dot matrix display, but they had better contrast.
There was a special register on the HP-41C called the Alpha Register. It allowed up to 24 characters. This register was separate from the stack and the other storage registers. Alpha strings could be stored in normal registers or the stack but they were truncated to 6 characters when this was done. A function that shifted strings by 6 characters was included to make it easy to store long strings in multiple registers.
The HP-41C came with 63 "registers" of memory. Memory could be dynamically reassigned between storage registers and program memory. (63 registers was equal to 200-400 fully merged lines of program memory.)
Four ports at the top end of the machine allowed the user to plug in 4 more RAM modules which would increase the maximum register space to 319 or allow 1000-2000 lines of program space. (Or any compromise between those.).
Because the HP-41C had continuous memory and because its application pacs came on ROM modules, a card reader was omitted. However, one could be plugged into the top end. (In less time then it takes to read this sentence.) The HP-41C was obviously not code compatible HP-67, however, a sophisticated translator was built into the card reader which translated programs to HP-41C code on the fly.
Optical wand 82153A |
Module holder 82151A Overlay kit 82152A 50 blank overlays 82172A Printer (non-HP-IL) 82143A Plotter module 82184A Extended I/O module 82183A HP-IL module 82160A Touchpad 82200A 40 Magnetic cards 00097-13141 120 Magnetic cards 00097-13143 1000 Magnetic cards 00097-13146 3 Card holders 00097-13142 |
| Advantage module Auto Start/Duplication ROM Aviation Circuit Analysis Clinical Lab/Nuclear Med. Financial Decisions Games |
Home Management HP-IL Development module Machine Design Mathematics Math/Stat Navigation Petroleum Fluids Real Estate |
Securities Standard Apps Statistics Stress Analysis Structural Analysis Surveying Thermal & Transport Sci. |
By plugging in an HP-IL module, the HP-41C could be connected to multiple devices simultaneously. This allowed it to control and communicate with lab devices, tape drives, printers, other computers etc. HP-IL options included:
| Digital cassette drive 82161A Disc drive 9114A Thermal printer/plotter 82162A Thinkjet printer 2225B Impact printer 82905B 80 column video Interface 92198A Modem (Acoustic coupler) 82168A |
HP-IL/RS-232 interface 82164A HP-IL/GPIO interface 82165A HP-IL/GPIO interface kit HP-IL/HP-IB interface 82169A HP-IL/Series 80 interface 92938A Cables in .5, 1, 3, & 5m lengths |
| Easy Course in Programming Electrical Circuits for Students Statics for Students Antennas Business Statistics/Marketing/Sales Calendars Cardiac/Pulmonary Chemical Engineering Chemistry Civil Engineering Control Systems Electrical Engineering Fluid Dynamics & Hydraulics Games Games II Geometry |
Heating, Ventilating & Air Cond. High Level Math Home Construction Estimating Lending, Savings & Leasing Mechanical Engineering Optometry I (General) Optometry II (Contact lens) Physics Real Estate Small Business Solar Engineering Structural Design (cassette based) Surveying Taxes Test Statistics Time Module Solutions I |
Alphanumerics brought new programming capabilities. Programs could have descriptive names, could prompt the user for input, and could label output. Prompting and labeling were done by building the desired string in the alpha register and displaying it. Strings, like numbers could be compared. Possibly the greatest programming advantage to an alphanumeric calculator was that the programs displayed as readable commands rather than numeric keycodes.
The HP-41C contained many other programming advances. Indirect operations were expanded and could now use any register as an indirect register. The stack and last X could all be directly addressed by STO and RCL. Increment and decrement loops could now specify the start value, stop value and increment/decrement size. Subroutines could now be nested 6 deep and there were now many more flags and more flag operations. Many of the new flags controlled specific calculator features. For example flag 11 was the automatic execution flag. If set, the calculator started executing the current program when turned on. (See the programming page for more information.)
On HP's previous programmable handhelds, program memory was essentially a single space. The user could pack multiple programs in only with great care and planning. (Such as keeping track of which labels were already used by other programs.)
In the HP-41C, the programs were edited in their own spaces with local line numbers and local labels for branches and subroutines. Programs could also make calls or branches to global labels (i.e. other programs.) An individual program could be deleted with a single command.
All built-in functions, ROM add-in functions, and user programs were listed in catalogs. (There was one catalog for each of the three categories mentioned.) The calculator could display each catalog in rapid succession, or the user could stop at any point in the listing and move backwards and forwards one entry at a time.
No discussion of the HP-41C would be complete without a discussion of synthetic programming. The HP-41C had RPN instruction sequences of one to three (or more) bytes. Some of the possible codes were not documented and couldn't be entered from the keyboard but some clever users found ways around these limitations. Writing programs using these codes was called Synthetic Programming.
A variety of programs were written to support synthetic programming. To use the simplest, the user exploited a bug in the HP-41C to enter a small program that extracted the next byte in memory from the instruction that followed. (The extracted byte could then be deleted as a separate instruction.) The HP-41C would then interpret the next byte of the instruction as the first byte of some other instruction. The instruction(s) that followed might be interpreted as part of a multi-byte sequence. Obviously, programming in this way, took some forethought and care.
Synthetic instructions made possible:
See below for links to synthetic and non-synthetic programming.
The HP-41CV was the same as the HP-41C except that it had four memory modules built in for a total of 319 registers. (With the four ports still available to add other modules.) The HP-41CX was the same as the HP-41CV but added the Time module (stopwatch plus clock with alarms), an Extended Functions / Extended Memory module, and some additional functions. The Option 001 version of the HP-41C had no labels on the upper rows of keys or on the surrounding keypad. This version was meant to be heavily customized by the buyer.
Because the HP-41 series was on the market for a long time, newer features appeared in some of the later models. To keep the HP-41 clearly at the top-of-the-line, HP released the advantage module which added improved mathematical functions including matrix support, computer science functions (bases, conversions etc.), and financial functions.
Richard Nelson orchestrated the production of the PPC ROM which included a huge number of routines. Features included more math functions, integration, curve fitting, complex math, date functions, I/O routines, block data functions and synthetic programming aids. The phonebook-sized manual dwarfed the calculator, let alone the tiny ROM.
"You have just completed the HP-41C Owners Handbook and Programming Guide. You have certainly noticed that programming the HP-41C is simple, and even fun. Yet the capability of the system is astounding. Your programming expertise will increase as you continue to use your HP-41C. And you will find it an easy matter to completely customize your HP-41C."
Picture (~68K)
Picture
of an HP-41C Opt 001 (Blanknut) (~70K)
Picture including card reader, ROM module & overlay
(~39K)
Picture of top end with two port covers removed (~9K)
Picture of the back label (~53K)
Picture of HP-41CV interior showing keypad/display board,
CPU board and port bus. (~130K)
Picture of HP-41CV and HP-41CX with two HP-IL disk drives
and the HP-41C to HP-IL adapter. The HP-IL adapter is to the right. Leaning
up against the disks on the left is one of the removable rechargeable batteries
for the disk drives. (~24K)
Picture of an 82143A printer and an 82161A digital cassette
drive (~110K)
Picture of an 82153A wand (~28K)
Programming Information
Synthetic Programming Information
HP-41C Price at introduction: $295 HP-41CV Price at introduction: $325 HP-41CX Price at introduction: $325
HP-41C Introduction-Discontinuation: 1979-85 HP-41CV Introduction-Discontinuation: 1980-1990 HP-41CX Introduction-Discontinuation: 1983-1990
If you're desperate for an HP-41C and a don't need pocketability, consider this simulation for Microsoft Windows.
Go
back to the main exhibit hall
Next
Calculator Made
Previous
Calculator Made