This program is Copyright © 1975 by Hewlett-Packard and is used here by permission. This program was originally published in "HP-25 Applications Programs".
This program is supplied without representation or warranty of any kind. Hewlett-Packard Company and The Museum of HP Calculators therefore assume no responsibility and shall have no liability, consequential or otherwise, of any kind arising from the use of this program material or any part thereof.
Imagine for a moment the difficulties involved in landing a rocket on the moon with a strictly limited fuel supply. You're coming down tail-first, free-falling toward a hard rock surface. You'll have to ignite your rockets to slow your descent; but if you burn too much too soon, you'll run out of fuel 100 feet up, and then you'll have nothing to look forward to but cold eternal moon dust coming faster every second. The object, clearly, is to space your burns just right so that you will alight on the moon's surface with no downward velocity.
The game starts off with the rocket descending at a velocity of 50 feet/sec from a height of 500 feet. The velocity and height are shown in a combined display as -50.0500, the height appearing to the right of the decimal point and the velocity to the left, with a negative sign on the velocity to indicate downward motion. If a velocity is ever displayed with no fractional part, for example, -15., it means that you have crashed at a speed of 15 feet/sec. In game terms, this means that you have lost; in real-life, it signifies an even less favorable outcome.
You will start the game with 120 units of fuel. You may burn as much or as little of your available fuel as you wish at each step of your descent; burns of zero are quite common. A burn of 5 units will just cancel gravity and hold your speed constant. Any burn over 5 will act to change your speed in an upward direction. You must take care, however, not to burn more fuel than you have; for if you do, no burn at all will take place, and you will free-fall to your doom! The final velocity shown will be your impact velocity (generally rather high). You may display your remaining fuel at any time by recalling R2.
We don't want to get too specific, because that would spoil the fun of the game; but rest assured that the program is solidly based on some old friends from Newtonian physics:
x = x0+v0t + (1/2)at2
v=v0 + at
v2 = v02 + 2ax
where x, v, a, and t are distance, velocity, acceleration, and time.
Notes:
1. If you crash before running out of fuel, the crash velocity shown will be the velocity before the burn, rather than the impact velocity.
2. Use only integer values for burns. Any decimal entry will cause an error in the display for V.X.
Step | Instructions | Input Data/Units | Keys | Output Data/Units |
1 | Enter program | |||
2 | Initialize | x | 500 STO 0 | 500.00 |
v | 50 CHS STO 1 | -50.00 | ||
Fuel | 120 STO 2 | 120.00 | ||
3 | Display Initial V.X | f PRGM R/S | -50.0500 | |
4 | Key in burn, compute new speed and distance | Burn | R/S | new V.X |
5 | Perform step 4 till you land or crash | |||
6 | To see remaining fuel at any time | RCL 2 | Fuel | |
7 | To display speed and distance at any time | f PRGM R/S | V.X | |
8 | To Start a new game goto step 2 |
LINE CODE KEYS COMMENTS 00 01 14 11 04 f FIX 4 Four-place display 02 24 00 RCL 0 Form display V.X 03 33 EEX 04 04 4 05 71 ÷ Divide X by 10,000 06 24 01 RCL 1 07 15 41 g x<0 Is V negative? 08 13 11 GTO 11 Yes, branch 09 51 + No, add V and X 10 13 13 GTO 13 11 21 x⇔y V<0, add V and -X 12 41 - 13 74 R/S V.X is V +/- (x/104) 14 24 02 RCL 2 Burn B has been input 15 14 41 f x<y Burn > Fuel? 16 13 34 GTO 34 Yes, prepare to crash 17 22 R↓ No, update A, X, V 18 23 41 02 STO - 2 Subtract burn from fuel 19 05 5 5 units cancels gravity 20 41 - Acceleration = B - 5 21 23 03 STO 3 22 02 2 23 71 ÷ 24 24 00 RCL 0 25 51 + 26 24 01 RCL 1 27 51 + New altitude: X = X+V+A/2 28 23 00 STO 0 29 15 41 g x<0 Is X below ground? 30 13 44 GTO 44 Yes, you've crashed 31 24 03 RCL 3 No, update V 32 23 51 01 STO + 1 New velocity: V = V + A 33 13 02 GTO 02 Display V.X 34 24 01 RCL 1 All fuel gone show crash 35 15 02 g x2 velocity as 36 24 00 RCL 0 V = (V2 + 2gX)1/2 37 01 1 where g = gravity = 5 38 00 0 39 61 x 40 51 + 41 14 02 f √x 42 32 CHS Show crash V down 43 23 01 STO 1 44 24 01 RCL 1 Come here from line 30 45 14 11 00 f FIX 0 Display integer V to 46 13 00 GTO 00 show crash 47 46 49
R0 x R1 v R2 Fuel R3 Acceleration
Go back to the software library
Go back to the main exhibit hall