RPN-25 CE — Photo-realistic HP-25C simulator for the iPhone


Version 5.1

RPN-25 CE is a simulation of Hewlett-Packard's popular second-generation scientific calculator HP-25C.

Released on August 1, 1975, the HP-25 scientific calculator was the second member of the so-called "Woodstock" series (between the HP-21 and the HP-22.) It was followed a year later by the improved version HP-25C which sported "continuous" (non-volatile) memory. Both versions were discontinued in 1978.

RPN-25 CE is a massively enhanced – yet fully compatible – version of the HP-25C.


Features







































Settings


Tap the wrench symbol to access the settings screen:












Extended Register View


This view shows all 100 registers. It is accessed manually by swiping left the display in RUN mode. It may also be opened under program control by executing REGS ALL.

For performance reasons, the display is not refreshed while a program is running. However, executing REGS ALL in a program will refresh the view.
(Run the program Bell Numbers Advanced to see this in action.)


FEATURES:









Messages and User Keys


A program may send messages of up to 36 characters to the area just below the display. They are controlled by the instructions MSG, MSGP, and MSGS and may contain stack and register values.   Details


A program may define up to 15 named User Keys. Tapping any key will call up the associated subroutine, either directly, or indirectly by using the content of a register.

HOW TO USE:    Tutorial (US)   Tutorial (A4)

FEATURES:












Stack and Main Registers


Values created by "Bell Numbers Advanced"

(Click to enlarge)

User Keys plus program message
High-contrast display turned on
 

 

Version History RPN-25 CE


5.1 – Oct 19, 2024

  • New Feature
      The instruction "ERROR nn" with nn = 99 will cause the display to blink rapidly three times.

  • Bug Fix
      In the sample program 41-Curve Fitting (Kolb), the equation for curve 3 ("Combined Linear and Hyperbolic") was incorrectly shown
      as y = a + b/x + c/x instead of y = a + b•x + c/x. Tap "Restore Sample Progs" in the program list to see the change.

5.0 – Jul 2, 2024

  • New Features
      – Toggle LED vs. High-Contrast display: f double-tap display
      – Toggle thousand separators on/off: f triple-tap display
      – Setting flag 41 causes ∑+ and ∑- to use the HP-41 locations of statistical registers.
      – The trig mode indicator DEG is switched off after the selected "Pause Length".
      – Added warning when attempting to alter a Sample Program.
      – The trig mode indicator DEG is switched off after the selected "Pause Length".
      – "FC?S nn" (renamed to "FC?S/C nn") acts as "FC?C nn" if flag 41 is set.

  • New Sample Programs
      – "Holidays multilingual" shows the date of Ash Wednesday, Easter, Ascension, Whitsun, and
          Corpus Christi for any year in the range 1583 to 4099 in three languages (English, Spanish, German).
      – "41-Curve Fitting (Kolb)" automatically finds the best fitting curve (out of 20) for a given set of data points.
          (Download the literature)

  • Changed Instruction
      –  ∑SWAP41 nn (was ∑SWAP41)
          Swaps the current RPN-25 statistics data block with the HP-41-compatible block at the location Rnn.


  • Bug Fixes
      – Calling up the Rydberg constant in the sample program CODATA 2018• would cause a crash.
      – Alignment of messages (MSG,MSGP,MSGP) could be incorrect in some cases.
      – In the program listing, 4-digit literals could show up with an unwanted centered 0.

4.9 – Apr 11, 2024

  • Improved Statistics Functions
      New and changed instructions can handle up to 13 statistics data blocks of 7 registers each in parallel.

4.8.1 – Feb 7, 2024

  • Bug Fix
      This version fixes buttons Import and Delete not being enabled by selecting a program.

4.8 – Jan 13, 2024

  • Internal optimizations and cleanups
      New sample programs are now automatically loaded when opening the list of programs.
      Changed the default font for program listings from Courier New to Menlo.

  • Modified the info screen to avoid clipping by the Dynamic Island.

4.7 – Dec 19, 2023

  • Enhanced Support of Extra Functions
      Tap "Details" to directly access descriptions and examples in Safari

  • Improved math functions GCD and LCM
      Both functions can now have up to 4 arguments

  • Vintage Mode:
      – No RCL register arithmetic
      – No dotted register names, e.g. "R.5"
      – No access to registers R8 and R9
      – Program execution speed comparable to real HP-25
      – The vintage mode setting is stored along with the program

  • Bug Fixes:
      – Instructions GET SEPS and HAPTICS? now work correctly in interactive mode.
      – Executing CLOCK when the clock was already running would not clear the AM/PM indicator.

4.6.5 – May 9, 2023

  • Trigonometric mode indicators:
      DEG, RAD, and GRD indicators are never shown in vintage mode.
      In normal mode, the default setting DEG appears only on the high-contrast display.

  • Vintage Mode:
      Controlling vintage mode via "magic numbers" 19390104 and 19390105 has been removed.

  • Bug Fix: In some situations, pressing the R/S key would alter the stack.

4.6 – Apr 30, 2023

  • Vintage Mode:
      Vintage Mode may now be turned on or off in Settings.
      Features not available on the HP-25 are not presented anymore.
      Controlling vintage mode via magic numbers 1939010x has been removed.

  • SST and BST in RUN mode:
      - SST shows the current instruction as long as the key is depressed, then executes it.
      - BST shows the previous instruction as long as the key is depressed, then makes the step current.
      Both actions may be cancelled by dragging the finger off the key.

  • Improvements:
  • • The DOW (day-of-week) function does not require the display format to be set to FIX 6 anymore.
  • Decimal point and thousands separator symbols are now set according to the locale.
  • Power switch: drag left or double-tap to turn calculator off. Drag right, tap, or double-tap to turn calculator on.

4.5 – Sep 29, 2022

  • High-contrast display:
      The real-time clock also shows the date and the weekday
      (f PRGM-RUN: 12-hr with AM/PM, g PRGM-RUN: 24-hr)

  • New instructions:
      - HAPTIC f sets the haptic level of the iPhone to level f (1…3, 0 for no haptics)
      - HAPTIC? returns the current haptic level (0…3)

  • Bug Fix:
  • • Issues with DOW (day-of-week) function. Now works correctly for all Gregorian dates (Oct 15, 1582 and later.)

4.4 – Aug 18, 2022

  • High-contrast display:
      - The mantissa of a number (g MANT) is now shown without thousands separators.
      - The DOW (day-of-the-week) function shows the date as text, in addition to the day number.

  • Pressing a User Key now clears any user message, just like pressing a regular key does.

  • • Numeric values shown in MSG, MSGP, MSGS instructions may now be forced to show in FIX 0 format
      (by prefixing their name with "I" [capital-i]).

  • • Added stack indirection (by prefixing stack register name with "i") when specifying values to show in MSG, MSGP, MSGS instructions.

  • New instructions:
      - BASE? b (b = 2…9) tests if the positive integer part of X represents a valid number in base b.
      - FLOOR rounds down towards negative infinity.
      - CEIL rounds up towards positive infinity.
      - CF0to9 clears flags F0 to F9.
      - SHOW41, HIDE41 control the visibility of the flag 41 indicator..
      - Convert between units of power (kW, mechanical horsepower hp, metric horsepower PS).

  • New sample programs:

      - CODATA 2018•  WATCH DEMO
        Easy access to 354 named physical constants. Use it as a template for your own lookup tables.

      - Boolean Functions and Base Conversions•
        AND / OR / XOR / NOT operations and conversions from any base to any other (base = 2…10).

      - Mixing•
        Mix cold and hot liquids to obtain a specific amount of liquid at a specific intermediate temperature.


  • Bug Fixes:
  • • Copy/paste in PRGM mode didn't work if high-contrast mode was turned on.
  • • Fixed issues with wrapping/unwrapping number literals followed by a CHS instruction.
  • • The sequence of digits defining a number with an exponent that is a multiple of 10 did not translate correctly into a literal.

4.3 – July 1, 2022

  • High-contrast display
      - Switch between the traditional LED display and an easy-to-read LCD-like display
      - Triple-tap display or use HC DSP to switch on and off

  • New or changed instructions:
      - HC DSP turns off high-contrast display if x = 0, otherwise turns it on.
      - GET SEPS returns the thousands separators setting: 0 = OFF, 1 = ON
      - SET SEPS sets the thousands separators setting: 0 = OFF, other = ON.
      - SPEC DSP shows special pattern for x = 1…4 (LED display), or x = 1…25 (LCD display).
      - CLOCK sets the appearance of the real-time clock. x = 1: 12-hr am/pm, 2: 24-hr, other: no clock
      - DATE shows the clear-text weekday and date if high-contrast display is on.

    The indirection character for showing register contents in MSG, MSGP, MSGS messages has been changed from "-" to "i".

4.2 – June 4, 2022

  • Quick Access to LBL and GTO / GSB
      - Tap the LG button in the program list view to quickly see all labels in your program.
      - Double-tap LG to see all branches to labels.
      - Sort by step or item.
      - Double-tap a label or branch to select the corresponding program step.

  • • User Keys may now have leading blanks.

  • • Suppress Auto-Start of a program by setting flag 99 before importing.

  • New instructions:
      - BACK s jumps back s program steps.
      - DEL Y removes y, drops stack down
      - DEL Z removes z, copies t to z
      - Y→ZT copies y to Z and T
      - Y→T copies y to T
      - Z→T copies z to T
      - PRGM stops program and switches to PRGM mode

  • Sample programs:
      (NOTE: Programs featuring User Keys are identified by a trailing dot (•).)
      - 41-Terrestrial Geodetic Distance•
      - 41-Giant Planets 2022•
      - NPV & IRR• (for up to 92 cash flows)
      - Solve for f/x)=0 Newton• (now with User Keys)


  • Bug Fixes:
  • • Stopped instruction name from appearing below display when it shouldn't.
  • • Fixed display issues when running on iPod touch.
  • • Fixed instruction name SPEC VIS showing as SPEC DSP.

4.1 – Apr 9, 2022
  • New:
  • New instructions:
      - P→S copies primary registers R0..R9 to secondary registers R.0..R.9
      - SHOW STK and HIDE STK control the appearance of the stack in the display
      - SPEC DSP produces special displays (all blanks, all "-", all "o")
      - STEP VIS controls the appearance of the program step indicator below the display
      - FLAG VIS controls the appearance of flag indicators 0 to 9 in the display

MSG, MSGP, MSGS can show stack and register values below the display

• In the Program Listing:
  Change the font and its size with a simple tap on the button F (2 fonts, 2 sizes)
  Double-tap a USRn instruction to find its associated _LBL 9n
  Double-tap a _LBL mn instruction to (m=7…9, n=1…5) to find the corresponding USRn instruction.

Sample Programs may be hidden in the list of programs.

• Apply a filter in the list of programs to quickly find any program.

All of the flags F0..F9, if set, may now appear in the display.
  Default is F0..F2. Use the new instruction FLAG DSP to modify the range.

• Renamed functions MDY→YMD etc. to M.DY→Y.MD etc.

• When an error occurs, the stack display is automatically turned off.

• Updated User Keys tutorials: Tutorial (US), Tutorial (A4)

  • Sample programs:
      (NOTE: Programs featuring User Keys are identified by a trailing dot (•).)
      - _Demo 25• (showcases advanced features of RPN-25)
      - Cost and Price Computations•
      - 41-Sudoku Solver
      - 41-Sudoku Puzzles
      - 41-Discriminant of a Polynomial•
      - 41-Palindromic Polynomials•
      - 41-Garden-Hose Method•


  • Bug Fixes:
  • • User Keys were not responsive while the display showed the stack.
  • • On loading an auto-start program, a command string could show up below the display in certain situations.
  • • In the program listing, wrapping a multi-step number like .005 into a single step would drop the mantissa.
  • • Program comment lines would behave oddly in some situations.

4.0 – Jan 24, 2022
  • New:
  • User Keys
      - Five keys, positioned directly above the display
      - Up to 15 keys when using f and g modifiers
      - Each key may have a legend (1 to 6 characters)
      - Unnamed keys, or keys named with a single underscore, are ignored
      - The legend and the operation associated with each key may be changed anytime, even by a running program
      - Direct and indirect subroutine calls
        Tutorial (US), Tutorial (A4)

  • Auto-Start
      - A program saved with the setting Auto-Start turned on will automatically run from step 1 after loading.

  • Bug Fixes:
  • • Suppressed illegal key pairs in program mode: STO/RCL/GTO followed by EEX or R/S.
  • • Program step display is now turned off if power is off.
  • • If turned off, the program step display will not reappear on switching from PRGM mode to RUN mode.
  • • Pasting a program larger than 100 steps into the display in 99-step mode would cause a crash.

3.3 – Nov 30, 2021
  • New:
  • Data files:
      - Create, load and modify files that contain register data only (R00..R99.)
      - Run a program with different pre-recorded sets of register data.
  • New sample program:
      - "41-Travelling Salesman" (demonstrates the data file feature)

3.2 – Oct 5, 2021
  • New:
  • New instructions:
      - Functions LambertW and LambertV
      - STO YZT and RCL YZT: store and recall stack registers Y, Z, and T without affecting X
      - Comparisons: x≈y and x≈0 ("almost equal"). Execute next step if x is closer to y or 0 than 2E-9, otherwise skip next step.
      - CLRX. Executes CLX without disabling automatic stack lift.
  • New sample programs:
      - "Interest Amount & PMT"
      - "Discrete Fourier Transform"

  • Bug Fix:
  • • Pasting a text listing, e.g. from Mail, into the display would fail on certain instructions.

3.1 – Apr 16, 2021
  • New:
  • Julian Day Number (JDN) accepts a time value in Y.
      Illegal date and time values are replaced by current values.
  • • In vintage mode, NOP instructions as targets of branches are not automatically converted into LBL instructions.

  • Bug Fix:
  • • Inserting a MSG operation would cause a crash

3.0.1 – Mar 18, 2021
  • New:
  • Symbolic labels (00..99), not associated with step numbers.

  • • Selectable program memory size (99 or 999 steps)

  • Single-step constants ("number literals")

  • Indirect branching via stack or regular registers

  • User messages ("texts")
      - MSG text puts the message text right below the display.
      - MSGP text puts the message text right below the display, then executes PAUSE.
      - MSGS text puts the message text right below the display, then stops program execution.
        text may be any text of up to 30 characters, left- or right-aligned or centered.

  • Program comments ("texts")
      - // text
       Show free text in any step of the program listing.

  • New instructions:
      - SKIP n skips 0 to 9 program steps
      - END stops program execution without returning to step 0
      - JDN returns the Julian day number of a date
      - DY2000 returns the number of days between a date and Jan 1, 2000
      - SND nn plays sound nn (00..99)
      - NUM2DIGS nn decomposes the 10-digit mantissa and stores the digits at Rnn..Rnn+9
  •   - DIGS2NUM nn creates number from the 10 digits stored in Rnn..Rnn+9
      - ROUND n rounds x to n fractional digits
      - DELAY works like PAUSE but without the "PAUSE" message
      - ISGi nn, DSEi nn: indirect versions of ISG nn and DSE nn
      - SFi N, CFi N, FS?i N: handle flags indirectly via any stack register
      - ST41, RC41: store and recall flag 41
      - x3 returns the cube of x
      - yx{0} is the same as yx, except that 00 = 1

  • • Instructions INCR and DECR have been renamed to x+1 and x–1.

  • • Long-press the step number to show or hide the last executed step

  • • Entering a numeric value while pausing restarts the pause with each keypress.

  • Overflow on ∑+ and ∑- is now handled like on a real HP-25.
    Setting flag 41 simulates the HP-41's behavior where
    register overflow does not trigger a program error.

  • Flags 0…3 and 41 are shown on the display if set (F3 only if F41 is set.)

  • • Refined behavior of RTN instruction: in a running program, if no return address is available, program execution is halted. In interactive mode, step 0 is selected, as before.

  • • To turn the calculator off, swipe the power button left. Simply tapping it doesn't suffice anymore.

  • Sample programs (most of them using symbolic labels):
      - "41-Conics"
      - "41-Stirling Numbers"
      - "41-Stirling Numbers generalized"
      - "41-Ramanujan Tau Numbers"
      - "41-Multinomial Coefficients"
      - "41-Fibonacci, Tri-, Tetra, k-nacci"
      - "41-Fibonacci Multiprecision"
      - "41-Apéry's Numbers"
      - "41-Cyclic Universe 1a"
      - "41-Cyclic Universe 1b"
      - "41-Gauss-Legendre 4-point"
      - "41-Diff. Equations 2nd Order"
      - "41-Weierstrass-Durand-Kerner"
      - "41-Norm of a Matrix"
      - "41-Integral over a Sphere"
      - "41-Arc Length of Parametric Curve"
      - "41-Delta T (∆T)" (343 steps)
      - "41-Giant Planets 2021"
      - "41-Debye Function"
      - "41-Multiple Series"
      - "41-Successive Approximation"
      - "41-Euler Transformation"
      - "41-Illuminated Fraction of Moon"
      - "41-NumInt - Double Exponential" (347 steps)
      - "41-Euler-Lagrange Equation" (347 steps)
      - "41-Downhill Simplex Method" (465 steps)
      - "41-Bulirsch-Stoer Method" (541 steps)
      - "41-Vector Calculus Curl, Div, Grad, Lapl" (627 steps)
      - "41-Polynomials" (646 steps)
      - "41-Anchorage Knik Arm" (861 steps)
      - "41-Equilateral Triangle Puzzle"
      - "TVM - Time Value of Money"
      - "Dial"

  • Bug Fixes:
  • • TIME did not lift the stack
  • • GTO 78 would incorrectly show as GTOc_COS

2.5 – Dec 17, 2020
  • New:

  • • Execute Extra Functions in RUN mode
  • Changed: double-tap display for Extra Functions; triple-tap for Settings

  • VIEW instruction to watch any memory or stack register while program is running
  • CLD (Clear Display) restores normal display after VIEW
  • DSMSTO and DSMRCL (Display Mode Store and Recall) store or restore display settings

  • REGSET sets any range of registers to a given value
  • REGSORT sorts any range of registers
  • xi≷yi: swap registers defined in X and Y

  • Date instructions:
      DATE: current date (month, day, year)
      DATE+: add number of days in X to the date in Y
      ∆DAYS: number of days between the dates in X and Y
      DOW: day of the week, day number, week number
      MDY➞YMD, YMD➞DMY, DMY➞MDY, etc.: date format conversions

  • 100 flags (up from 10), with states visible in extended register view.

  • Additional flag instructions:
      FC? nn: tests if flag nn is cleared
      FC?S nn: tests if flag nn is cleared, then sets it
      FS?C nn: tests if flag nn is set, then clears it
      TOGF nn: toggle flag nn

  • F? renamed to FS?
  • Flags 24 and 25 for error handling
  • Flag 41 for HP-41 compatibility
  • STFLAGS, RCFLAGS to store/recall groups of 32 flags
  • CFInd, SFInd clear/set indirection mode for flags

  • Additional comparison instructions:
      x<NN, x≤NN, x=NN, x≠NN, x≥NN, x>NN: compares x with Rnn defined in Y
      x<nn, x=nn, x>nn: compares x with Rnn

  • FILL RAN# now accepts a user-defined range

  • • Mathematical and physical constants (CODATA 2018-compliant)
  • • No change of program counter when ISG/DSE is executed on the keyboard
  • • Indirect register addressing ignores sign and fractional part of the argument
  • • In vintage mode, ISG, DSE, RND, RAND, and CLEAR ∑ are not shown and dont' work.

  • Sample programs:
      - "41-Extrema"
      - "41-Parabolic Interpolation"
      - "41-Infinite Nested Radicals"
      - "41-Large Factorials"
      - "41-Multi- and Hyperfactorials"
      - "41-Factorial Digits"
      - "41-Kaprekar Series"
      - "41-Golomb Sequence"
      - "41-Euler Numbers 1"
      - "41-Euler Numbers 2"
      - "41-Harmonic Numbers"
      - "41-Pell's Equation"
      - "41-Kepler's Equation"
      - "41-Easter Date"
      - "41-Equilateral Triangle Puzzle"
      - "41-Multivariate Gamma, Digamma"
      - "41-Loxodromics"
      - "41-Geodesic Distance"
      - "41-Square Root modulo m"
      - "41-Unrestricted Partitions"
      - "41-Permutations"
      - "Dial"
      - "Amortization" (update)
      - "TVM – Time Value of Money" (update)

  • Bug Fixes:
  • • ISG/DSE commands were susceptible to internal rounding effects
  • • Deleting a block of steps could result in wrong branch targets

2.0 – Nov 8, 2020

  • New:

  • 100 registers (up from 20)

  • New register view showing all 100 registers

  • Print program listing or program description, or email them as PDF file

  • Store/recall arithmetic between X and any stack register

  • • Define register arguments directly in the Extra Functions list

  • • New Extra Functions:
      STO<op>nn, RCL<op>nn: direct register arithmetic between x and register nn (0..99)
      STi<op>nn, RCi<op>nn: indirect register arithmetic between x and register nn (0..99)
      xi≷ nn: swap x with register defined in register nn (0..99)
      STO<op>N, RCL<op>N: direct stack arithmetic between x and stack register N
      STi<op>N, RCi<op>N: register arithmetic between x and register nn (0..99) defined in stack register N
      x≷ N: swap x with any stack register N
      xi≷ N: swap x with any register nn (0..99) defined in stack register N
      x<Rnn, x=Rnn, x>Rnn: compare x with any register nn (0..99)
      ISG nn, DSE nn: increment/decrement register nn (0..99) and skip if condition met
      ISG N, DSE N: increment/decrement stack register N and skip if condition met
      ISGi N, DSEi N: increment/decrement register nn (0..99) defined in stack register N and skip if condition met
      SND nn: play sound defined by value (0..99) in register nn (0..99)
      CLR ALL: clear all registers (R00..R99)
      CLR EXT: clear all extended registers (R20..R99)
      CLRGX: clear a block of registers with optional skipping
      REGCOPY: copy a block of registers
      REGSWAP: swap two blocks of registers
      REGS ALL: show all registers (R00..R99)
      SIGN: return -1, 0, or +1 if x is negative, positive, or zero
      PRIME?: set flag 0 if x is a prime number (x ≤ 4,294,967,295)
      ERF/ERFC: Gauss error function and complementary error function
      Bernoulli: returns xth Bernoulli number
      BesselJ: Bessel function of the 1st kind of order y of x
      BesselY: Bessel function of the 2nd kind of order y of x
  •   Zeta: return the Riemann zeta function ζ(x)
      ERROR nn: replaces the previous functions ERROR 1 and ERROR 2

  • Optional vintage features
      Send 19390104 to register 0 to toggle some features on and off:
      - New program step replaces the next step instead of being inserted
      - ISG, RND and CLEAR ∑ labels are hidden (but still functional)

  • • A program running longer than one minute will emit a short beep when executing the final GTO 00 command

  • • Tap f or g, then the PRGM/RUN switch to see a 12- or 24-hour clock

  • Improved accuracy in extreme cases of yx with positive, integer x.
      For example: 1.0000001^227 = 674530.4707, not 674530.4760

  • • Double-tapping "Continuous Memory" doesn't show the Info screen anymore.
      Use the info button instead.

  • • Call up "What's New" anytime from the Info screen

  • New sample programs:
      - "Amortization"
      - "Bell Numbers Advanced"
      - "Decimals of e"
      - "Decimals of Pi"
      - "Multi Curve Fitting"
      - "NPV and IRR"
      - "Square Roots & Integer Power
      - "TVM – Time Value of Money"


  • Bug Fixes:
  • • Fixed display issues when using the iPhone in "Zoomed" mode
  • • The RND function didn't work correctly in regions using a comma as decimal point
  • • Double- or triple-tapping the empty program listing could cause a crash
  • • Setting the haptic feedback level didn't check sufficiently for the correct code
  • • CLR ALL from RPN-32 was translated incorrectly
  • • Compatibility with iPhone 12

1.5 – Sep 24, 2020
  • New:
  • • More than 80 new functions added
  • • Much simplified inserting of Extra Functions:
      1. Triple-tap display in PRGM mode
      2. Double-tap desired function

  • Bug Fix:
  • • The thousand's separator setting was lost after restarting the app

1.0 – Sep 2, 2020
  • First public version.
 

 

RPN-25 CE is available here:

RPN-25 CE

 

 

Looking for a manual?


Owner's Handbook
 

Bedienungshandbuch

Manuel d'utilisation

Quick Reference Guide


Manuel d'utilisation
 


Copyright © 2024. All rights reserved.
Apple and the Apple logo are trademarks of Apple Inc., registered in the U.S. and other countries. iPad is a trademark of Apple Inc.