This challenge is derived from creating applications for the Amar role-playing game. It is a challenge involving the extension of the normal dice with 6 sides - a so called open-ended dice throw.
Definition: Take a dice with 6 sides. Now we would like to extend the range of the numbers beyond the intrinsic 1 to 6. A way to accomplish that is to make the 1 and the 6 special cases. Whenever you throw a 6, you can extend the range by making another throw. A throw of 4 to 6 (50%) will add 1 to the original 6. Throw again and a result of 4 to 6 will again add 1 to the number (making it 8) etc. Every throw of 4 to 6 will add one until you get a 1, 2 or 3, then it stops. Conversely, throwing a 1 on the first throw is a special case. Throw again, and a result of 1 to 3 will subtract 1 from the original number. Keep throwing 1, 2 or 3 to subtract one... until you throw a 4, 5 or 6 - then it stops. Now we add a dimension; Whenever you throw two 6's consecutively it is marked as a "critical". A throw of two consecutive 1's is a "fumble". All this is called an "open-ended" dice throw. A normal dice roll is termed a D6, an open-ended roll is O6.
Challenge: Create a program for the HP-41 that does open-ended dice rolls. It should show whether the roll also includes a "critical"/"fumble". Do this without using any storage registers - i.e. only using the stack (and the Alpha register if you wish).
I will publish my solution for dissection in a few days :-)