The Museum of HP Calculators
This program is by William F Graves and is used here by permission.
This program is supplied without representation or warranty of any kind. William F Graves 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.
This program is a rendition of the historical favorite calculator game intended to simulate the physics of a controlled decent towards a planet or moon. The coefficients are for the Earth's moon but can be set to other heavenly bodies. This routine uses the TWO line display available on the HP-33S and HP-35S new calculators. Variable names and section labels have been selected to make the program easy to follow. Check sum and length checks are available for each LBL section. This version uses the same physics and initialization variables as that of the original HP-25C routine but with the look and feel optimized for the new calculator. A new concept introduced is a "Set and Forget" burn-rate that extracts the some lbs/sec fuel from the tank each cycle through the program until changed by the pilot.
Shown in each section is the basis equation and the simplified equation for t=1 delta calculations per cycle of the loop.
Variables: H=Height (ft), V=Velocity (ft/s), A=acceleration (ft/s2) F=FuelTank (lbs), B=Burn Rate (lbs/s), T=Time (sec) New Height H1=H0+Vt+1/2*(At^2) and for t=1 H1=H0+V+A/2 New Velocity V1=V0+At and for t=1 V1=V0+A New Fuel F1=F0-Bt and for t=1 F1=F0-B MOON Acceleration is considered negative down DECENT Velocity is considered negative A=5ft/sec which is about 1/6 of Earth gravity 32ft/sec
Thrust is a force F=ma or F/m=a so Thrust is treated as a positive acceleration. The physics of thrust has been simplified but is still functionally valid. This version uses a 60lb Fuel tank and the Pilot sets the Burn Rate on each cycle.
1) Each cycle is equivalent to 1 second time passage.
2) Press GTO.. to reset program counter to TOP
3) Press [R/S] to start program
4) Monitor Height and Velocity displayed after "INSTRUMENT" panel
5) Note Fuel available after "CHECK-FUEL" and "BURN-RATE" after display
6) Pilot must hit [R/S] key within 3 seconds (3 [PSE] cycles) after count down 3-2-1-0 and adjust burn rate
7) Cycle repeats until win "LAND" or "CRASH LAND" msg displayed
8) Velocity must be less than or equal to 5ft/sec when hit the ground
I hope you learned as much and enjoy this as much as I have. I did this work on vacation at the beach in Ft. Myers FL after receiving my HP-35S from Walmart.com for $59. I also,just received a fully functional 1972 vintage HP-35C bought on Ebay for under $60. Sweet.
L001 LBL L "Lander Initiation" L002 SF 10 "Set Flag 10 to View EQN instead of execute them" L003 HP35-LANDER "[EQN] then [RCL]H,[RCL]P,[RCL]3,[RCL]5 ... etc" L004 PSE "Pause and view EQN" L005 500 "Initial Height H ft " L006 STO H L007 -50 "Initial Velocity V ft/sec enter as 50[+/-] L008 STO V L009 60 "Initial Fuel F lbs" L010 STO F L011 0 "Initial Burn Rate B lbs/sec" L012 STO B L013 0 "Initial Net acceleration A" L014 STO A L015 0 "Initial Time T seconds" L016 STO T Check Sum and Length [CK=E34D LN=70] M001 LBL M " Main Control Section" M002 FIX 1 "Remove clutter from Display" M003 INSRUMENT "Instrument Panel Data to follow" M004 PSE "Pause and display" M005 RCL H M006 x<0? "Check if Landing has occurred 0 or negative" M007 0 "Set H=0 if landed to avoid display negative height" M008 RCL V M009 PSE "Pause and display H on Line-y and V on line-x" M010 PSE M011 PSE M012 x<>y "Swap H into x register" M013 x=0? "If H=0 then GTO LAND MESSAGE" M014 GTO E006 M015 CHECK-FUEL "[EQN][RCL]C[RCL]H.. Fuel Tank level to follow" M016 PSE M017 VIEW F "Display Fuel Tank Level lbs remaining for 1 second" M018 PSE M019 BURN-RATE "[EQN][RCL]B[RCL]U... Burn Rate setup to follow" M020 PSE M021 VIEW B "Display Burn-Rate lbs/sec for 1 second" M022 PSE M023 RCL B "This section performs a count down to PILOT [R/S]" M024 3 M025 x<>y "Places Current burn rate B in Line-x and count in Line-y" M026 PSE M027 2 M028 X<>y M029 PSE M030 1 M031 x<>y M032 PSE M033 0 M034 x<>y M035 PSE "Pilot has 3 seconds to hit [R/S] and enter new Burn-Rate" M036 PSE M037 PSE Check Sum and Length [CK=ADFC LN=145] C001 LBL C "Calculation Section for Physics" C002 ABS "Makes sure PILOT input was positive" C003 STO B C004 10 "Set maximum burn-rate limit" C005 x<y? "If PILOT Burn-Rate is greater than limit set=limit" C006 STO B C007 RCL B C008 RCL F C009 x<y? "If PILOT Burn-Rate is greater than remaining fuel in tank jump" C010 GTO E001 " Go print msg and set to remaining fuel level" C011 x<>y C012 STO- F "Subtract Burn B from Tank F" C013 RCL B "C013-C018 Calculate the new acceleration A" C014 2 "A1= Burn*2 + gravity: It takes 2.5lbs fuel to neutralize gravity" C015 x C016 -5 "Earth gravity 32ft/sec 1/6 Moon gravity about -5ft/sec" C017 + C018 STO A "Store new net acceleration vector" C019 2 "C019-C028 Calculates new height and velocity" C020 / C021 RCL H C022 + C023 RCL V C024 + "H1=Ho+Vt+A/2(t^2) since t=1 H1=Ho+V+A/2 each cycle new height" C025 RCL A C026 STO+ V "V1=Vo+At t=1 calculates new velocity" C027 Rv C028 STO H " Store new height" C029 1 C030 STO+ T "Increment time counter - does nothing looks cool" C031 VIEW T C032 PSE "Show time counter" C033 GTO M001 "Return to main control section loop" Check Sum and Length [CK=77A3 LN=106] E001 LBL E E002 PARTIAL-BURN "Note partial burn executed and return to C section" E003 PSE E004 RCL F "This will get stuffed into Burn upon return" E005 GTO C001 E006 5 "Set maximum landing velocity is less then or = 5ft/sec" E007 RCL V E008 ABS "Set positive to check magnitude relative to crash velocity" E009 x>y? E010 CRASH "If Velocity is greater than Vmax View msg "CRASH" else Skip" E011 PSE E012 LAND "Land if WIN - A WIN will msg "LAND" only and skip the CRASH" E013 PSE E014 CF 10 "Clear Flag 10 will return [EQN] mode to normal instead of msg display" E015 ENG 3 "Return to favorite display mode" E016 0 E017 ENTER E018 STOP Check Sum and Length [CK=C278 LN=77]
Go back to the software library
Go back to the main exhibit hall