11-27-2019, 10:35 PM

I got my HP 80 up and running today (battery pack just arrived in the mail), and I expected some quirks given that it's the first financial calculator, but some of the precise sequences of steps you have to follow to carry out certain operations are just bizarre.

For example: there are no stat registers. The Sigma+ key keeps the sums of x and x^2 in stack X and Z, and n in Y. So if you disturb the stack, you break your sums.

But the black-box behavior goes much deeper than just Sigma+. If you press mean-x to calculate descriptive stats, then you get the mean of x in stack X, and standard deviation in stack Y. Meanwhile, Z still has the sum of x^2, and n is now in T. So since you've clobbered your stat registers, you might think you can't continue entering data after calculating the descriptive stats, right? Nope! Press Shift-mean-x (the ->Sigma function) and now the sum of x is back in X, and n is back in Y. From here, you can continue using Sigma+/- to accumulate data. This reversal seems to happen instantly, unlike the forward calculation of mean and standard deviation, which makes it seem like it's pulling the numbers back out of temporary registers, but if you disturb the stack before doing this, you don't get the correct n or sum of x back on the stack.

The TL (trend-line, i.e. linear regression) function does similarly weird things, again keeping its intermediate figures out in the open on the stack. It accepts Y values only, assuming evenly spaced X values starting at 0 and incrementing by 1. First, the TL key is used to store the successive Y values. When you've entered all your data, press Shift-TL (Compute). Now you enter a starting x value and press n, and then press TL as many times as you want to calculate successive data points at incrementing values of x. If you mess up that "happy path" of keystrokes, you get very unpredictable results.

Then there's craziness like the sum-of-years-digits/amort calculations requiring you to store the starting period minus one in the sole storage memory, then store the final period in n, followed by immediately storing the total number of periods into n again. You follow that with a very specific sequence of i, PMT, and Sigma+ to get accumulated interest and balance.

Has anybody dumped/disassembled the ROM in this thing to figure out what crazy hidden values and state flags it's using behind the scenes? There are so many keys that seem like they totally change their effect on the machine depending on context and other unknown state information.

Regardless, it's a really cool machine, and banging out TVMs, date calculations, and percentages is all perfectly intuitive and lacking in mystery.

For example: there are no stat registers. The Sigma+ key keeps the sums of x and x^2 in stack X and Z, and n in Y. So if you disturb the stack, you break your sums.

But the black-box behavior goes much deeper than just Sigma+. If you press mean-x to calculate descriptive stats, then you get the mean of x in stack X, and standard deviation in stack Y. Meanwhile, Z still has the sum of x^2, and n is now in T. So since you've clobbered your stat registers, you might think you can't continue entering data after calculating the descriptive stats, right? Nope! Press Shift-mean-x (the ->Sigma function) and now the sum of x is back in X, and n is back in Y. From here, you can continue using Sigma+/- to accumulate data. This reversal seems to happen instantly, unlike the forward calculation of mean and standard deviation, which makes it seem like it's pulling the numbers back out of temporary registers, but if you disturb the stack before doing this, you don't get the correct n or sum of x back on the stack.

The TL (trend-line, i.e. linear regression) function does similarly weird things, again keeping its intermediate figures out in the open on the stack. It accepts Y values only, assuming evenly spaced X values starting at 0 and incrementing by 1. First, the TL key is used to store the successive Y values. When you've entered all your data, press Shift-TL (Compute). Now you enter a starting x value and press n, and then press TL as many times as you want to calculate successive data points at incrementing values of x. If you mess up that "happy path" of keystrokes, you get very unpredictable results.

Then there's craziness like the sum-of-years-digits/amort calculations requiring you to store the starting period minus one in the sole storage memory, then store the final period in n, followed by immediately storing the total number of periods into n again. You follow that with a very specific sequence of i, PMT, and Sigma+ to get accumulated interest and balance.

Has anybody dumped/disassembled the ROM in this thing to figure out what crazy hidden values and state flags it's using behind the scenes? There are so many keys that seem like they totally change their effect on the machine depending on context and other unknown state information.

Regardless, it's a really cool machine, and banging out TVMs, date calculations, and percentages is all perfectly intuitive and lacking in mystery.