Earlier calculators needed a key, or key combination, for every available function. The HP-67 had three shift keys; the competing Texas Instruments calculators had two (2nd and INV) and over 50 keys. The HP-41C had a relatively small keyboard, and only one shift key, but provided hundreds of functions. Every function that was not assigned to a key could be invoked through the XEQ key (pronounced EXEQTE — "execute") and spelled out in full, e.g. XEQ FACT for the factorial function.
The calculator had a special user mode where the user could assign any function to any key if the default assignments provided by HP were not suited to a specific application. For this mode, the HP-41C came with blank keyboard templates; i.e. plastic covers with holes for the keys, so the user could annotate customized keys. Hewlett-Packard even sold a version of the calculator where hardly any keys had function names printed on them, meant for users who would be using the HP-41C for custom calculations only (thus not needing the standard key layout at all); this version of the calculator was colloquially known, within HP's Corvallis calculator team, as a "Blanknut" (because the development code name for the HP-41c's processor was known as the "coconut").
Alphanumeric display also greatly eased editing programs, as functions were spelled out in full. Numeric-only calculators displayed programming steps as a list of numbers, each number generally mapped to a key on the keyboard, often via row and column coordinates. Encoding functions to the corresponding numeric codes, and vice versa, was left to the user, having to look up the function–code combinations in a reference guide. In addition to this, the user had to mentally keep function codes separate from numeric constants in the program listing.
The HP-41C displayed each character in a block consisting of 14 segments that could be turned on or off; a so-called fourteen segment display (similar to the much more common seven segment displays, which can be used to display digits only). The HP-41C used a liquid-crystal display instead of the ubiquitous LED displays of the era, to reduce power consumption.
While this allowed the display of uppercase letters, digits, and a few punctuation characters, some designs needed to be twisted arbitrarily (e.g. to distinguish S from 5) and lowercase letters were unreadable (HP only provided display of lowercase letters a through e). HP's competitor Sharp, when introducing the PC-1211, used a dot matrix of 5×7 dots and displayed the characters in principle as we see them today on computer screens (and, in fact, many LCD screens on various embedded systems); this was later used by HP with the HP-71B handheld computer.
The functions of the calculator could be expanded by adding modules at the back of the machine. Four slots were available to add more memory, pre-programmed solution packs containing programs covering engineering, surveying, physics, math, finance, games, etc. Hardware extensions included a thermal printer, a magnetic card reader (HP-67 compatible via converter software), and a barcode "wand" (reader).
Another module, known as the Interface Loop allowed for connection of more peripherals: larger printers, microcassette tape recorders, 3½" floppy disk drives, RS-232 communication interfaces, video display interfaces, etc. The Interface Loop could also be used with the HP-71B, HP-75 and HP-110 computers.
The internal architecture prohibited the addition of more memory, so HP designed an extended memory module that could be seen as secondary storage. You could not access the data directly, but you could transfer it to and from main memory. To the calculator (and the user), data located in the extended memory looked like files on a modern hard disk do for a PC (user).
The final HP-41 model, the HP-41CX, included extended memory, a built-in time module, and extended functions. It was introduced in 1983 and discontinued in 1990.
One of the discoveries of the community was that it was possible to exploit a bug in the program editor to assign strange functions to keys. The most important function was known as the byte jumper, a way to step partially through programming instructions and edit them in ways that were not otherwise allowed. The use of the resulting instructions was called synthetic programming.
Through synthetic instructions, a user could access memory reserved for the operating system and do very strange things, including completely locking the machine. Hewlett-Packard did not officially support synthetic programming, but neither did it do anything to prevent it, and eventually even provided internal documentation to the user's groups.