|Hewlett-Packard's Programmable Calculator
Probably one of the best hand-held calculators ever made, the Hewlett-Packard HP41C series of machines were also one of the last computing devices that could be fully known and understood by the typical owner. With truly excellent manuals, the quality of which are very rare now, one could explore every facet of the device and create solutions that always behaved predictably.
Because of this transparency, you had the confidence to write your programs unfettered by the trackless black boxes that infest many later operating systems. The HP programming and executable environments are never punitive or arbitrary, the machine does not crash, run out of power unexpectedly or lose data, and for some applications, where ultra-reliability is required (like timers and alarms) I would not trust anything else so absolutely - even my beloved Newton devices.
Despite having far greater computing power at my disposal, I still use the HP for times when I already have a programmed solution or need to rapidly build one. Its also a lovely piece of hardware with the best key feel I have experienced. The quality of everything is a delight.
I have developed various routines for my own use that you might find useful or interesting and I include some of them on this page. Ill add more when I can steal some time from other projects.
Program listings are given as Acrobat 5.0 files which also include a preamble and detailed usage notes. I have tried to lay out the listings in as comprehensive and understandable way as I can. I welcome any feedback you may have.
Im sorry but I cannot provide any formal support for these programs - they are supplied as is for personal and experimental purposes only. Having said that, I believe them to be of good quality and to function as described
The programs are as follows:
LBL QA - Subroutine
A standardised system of prompting the user with a textual query which then tests for a specific key press, setting a flag that can then be used to direct program execution in the host program. Using this routine makes for a much better user experience when a program is new or has not been used for a while. I use it extensively in the programs listed below and its necessity is indicated with a *.
LBL QA - Subroutine.pdf (52k)
LBL ALM - Alarm Clock *
A versatile and rapid way of setting an alarm with a repeat period, time, date and message. Long before the PDA, this was a handy way to use the very stable clock in the HP41CX. Its still the case that if you want ultra-reliability, the HP is the machine to choose - it doesnt run out of power unexpectedly, need rebooting or get into some anomalous state, any of which can prevent an alarm sounding on other platforms. If you absolutely, definitely have to get up for that important meeting, setting a repeating alarm will do the trick. Promise.
LBL ALM - Alarm Clock.pdf (56k)
LBL BIN - Binary to Decimal & Decimal to Binary Convert
This program performs the conversion between decimal and binary numbers in both directions. There are a plethora of utilities in calculators and PDAs that do this now but way back in 1990 there werent. The real reason is actually that this was fun to code. Very handy for when you are messing about with digital circuits and want to check the states present on the pins of an integrated circuit.
LBL BIN - Converter.pdf (56k)
LBL GATE - Logic Gates
This program determines the output level of a gate no matter how many inputs it has and what their states are. The six gate types supported are: NOR, NAND, OR, AND, EXOR, EXNOR. Helpful if you are gathering data working your way around an IC or debugging a circuit.
LBL GATE - Logic Gates.pdf (64k)
LBL GEAR - Bicycle Gearing
Calculates the inch gear equivalent for a given chain ring, sprocket size and Sachs Torpedo Pentasport hub ratio for my Moulton AM bicycle. I fitted the Pentasport to my AM2 and have been very pleased with it. The program works equally well for bikes without a hub and for any wheel diameter.
LBL GEAR - Bicycle gearing.pdf (52k)
LBL OV - Original Value *
This program computes the original value of number before a discount or markup/tax was applied to it.
For instance if you find an item for sale at £48 and the discount was 20%, the program will tell you that the original cost was £60 from which £12 was deduced.
It also works for tax computations to tell you how an invoice was computed. The program will show that an invoice of £146.88 was composed of a goods value of £125.00 plus 21.88 of tax at 17.5% (See below for a dedicated VAT program)
LBL OV - Original value.pdf (52k)
LBL PO & UPO - Stamp Selector
When I worked in our family business, sending the post was a chore because I had to calculate the stamps required from a book of different values after weighing each letter or parcel. This program determines the fewest number of stamps that will add up to the total postage value you require.
LBL PO - Stamp selector.pdf (56k)
LBL SYSCX - System Preferences *
This program is used to set defaults and manage extended memory in the HP41CX.
There are four categories that this program addresses:
Reset: Status of flags, stopping the stopwatch, setting time and date prefs.
Video: Status of the flags that control the video interface.
Extended: Recall of program files from extended memory and launcher.
Purge: Purge files from extended memory by name.
LBL SYSCX - System Prefs.pdf (60k)
LBL TP - Fahrenheit to Centigrade Conversion & Human Body Temperature Comparison
Calculates the centigrade equivalent to a Fahrenheit reading obtained from a digital clinical thermometer. It also compares the resultant conversion with a fixed average body temperature obtained when healthy and displays the change along with the conversion.
LBL TP - Human body temp.pdf (52k)
LBL VAT - Tax Value
This program extracts the value of 17.5% VAT from an invoice total. The program displays both the original invoice total and the VAT amount in a single string in the form: Original value + tax e.g. 125.00 + 21.88
LBL VAT - invoice tax .pdf
|This site and all its contents:
© Joel M. Sciamma, 2002-4.
Made with Macintosh