- STO, which stores the displayed number in the memory;
- RCL, which displays the number that's in the memory;
- ADD, which increments the number in memory by adding the displayed number to it;
- EXC, which swaps the displayed and memory numbers.
Meanwhile, my mom's checkbook calculator has four rather different memory functions:
- M+, which adds the displayed number to the memory;
- M-, which subtracts the displayed number from the memory;
- MR, which displays the number that's in the memory;
- MC, which clears the memory.
(Actually, it does this with only three buttons; MR and MC are combined in a single button, labeled MRC; one push displays the memory, a second push clears it.)
One day I was playin' around with a checkbook calculator, and I noticed that while M+ and MR work the same as ADD and RCL, respectively, I was annoyed at the lack of a counterpart for STO and EXC, which I consider wonderfully useful. Then I thought, hmm, I wonder if it's possible to simulate STO and EXC; that is, could I invent a series of button presses that would have the same result as those two functions?
I quickly figured out that all I had to do was simulate EXC. Then the STO problem would also be solved, by simulating EXC and then pressing MR. So... how to simulate EXC?
It was easy! The EXC sequence is: M+ - MR = M+ +/-
Let's call the initial values in display and memory D and M and see what happens to them:
Key press Display Memory D M M+ D M+D - MR = -M M+D M+ -M D +/- M D
And then I noticed that since the memory value becomes D on the next-to-last step, that +/- keypress is not even needed for STO, because at that point the display value can be thrown away. So the STO sequence is: M+ - MR = M+ MR.
Ain't that coooool?