The Museum of HP Calculators


New Moon Lander for the HP 35S

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.

Overview

NEW MOON LANDER HP-35S or HP-33S by William F Graves Jr 8/11/2007.

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.

GENERAL PHYSICS:

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×(At2) 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.

Instructions:

  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.

Listing

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           Place 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
M036 PSE           new Burn-Rate
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 > than remaining fuel then
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
C015 x             neutralize gravity
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(t2) since t=1 H1=Ho+V+A/2
C025 RCL A         each cycle new height
C026 STO+ V        V1=Vo+At t=1 calculates new velocity
C027 R↓
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
E009 x>y?          check magnitude relative to crash velocity
E010 CRASH         If Velocity > than Vmax View msg "CRASH" else Skip
E011 PSE
E012 LAND          Land if WIN - A WIN will msg "LAND" only and skip CRASH
E013 PSE
E014 CF 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