RPN-67/97 Pro — The first photorealistic HP-67 and HP-97 simulators for iOS

Version 4.0

NOTE: Most of the descriptions on this site also apply to RPN-97 Pro, the desktop version
of HP-67 marketed as HP-97, as well as to RPN-67 SD for the iPhone.

RPN-67 is a photorealistic simulation of Hewlett-Packard's second generation mag card programmable scientific hand-held calculator from 1976. Made exclusively for iPad.

It comes in three versions: RPN-67 Free, RPN-67 Pro, and RPN-67 SD.

While the Free version is a capable scientific calculator sporting live register view and printing features, it lacks the programming features of the real HP-67.

The Pro version adds full programmability, the ability to run virtually all existing HP-67 programs, a powerful program database, and a slew of import/export options.

The SD version offers almost all of the power of RPN-67 Pro on the iPhone or iPod (see below).

RPN-67 Pro is the HP-67 you wished you had back in the 70's: more program steps, more registers, more functions, more subroutine levels, much higher speed, comfortable program editing, printing without wasting paper tape, live view of all registers and flags, a program library at your fingertips.

RPN-67 has been verified to run correctly all examples of the following HP Program Pacs:
HP Standard Pac, HP Business Decisions Pac, HP Clinical Lab Pac, HP E.E. Pac I, HP Games Pac I, HP Math Pac I, HP M.E. Pac I, HP Navigation Pac I, HP Stat Pac I, HP Surveying Pac I.


    More features the HP-67 never offered:



Extended Functions of RPN-67/97 Pro

With RPN-67 Pro set to enhanced mode in the settings, the simulator offers a number powerful extensions to the regular HP-67.

See section Extensions for details.

New Key-assigned Functions

New functions are mapped to the user-defined function keys A through E, as well as EEX. They may be accessed by tapping the prefix keys g or h. All functions are programmable.
On RPN-97, tap the EXT key.


New Menu-selectable Functions

Tap g OP (RPN-97:EXT OP) to access a menu of 100 functions you can use interactively or in your programs.
Functions include equation solving, matrices, sorting, Bessel functions, linear regression and much more.


New Menu-selectable Constants and Conversions

Tap g CC (RPN-97:EXT CC) to access a menu of 100 constants and conversion values you can use interactively or in your programs.
Where applicable, physical constants are compatible with CODATA-2014.


100 New Registers

In addition to the HP-67's regular 25 registers, you may use registers 00 through 99.
Full register arithmetic is supported. You may even apply powerful operations to any range of these registers, such as sorting, averaging, copying, filling, summing, finding minimum/maximum values, and more.

Extended registers may be accessed just like regular registers by prepending their address with a decimal point.
For example:
STO.48 or RCL+.07
STO.(i) and RCL.(i) will use the value in register I (0...99) as register address.

Extended registers may be printed out by setting the paper tape printer to TRACE mode and executing the REG command.


Unlimited Register Arithmetic

RPN-67 Pro removes the HP-67's limits on register arithmetic functions.

Register arithmetic supports both STO and RCL operations and works with any register (including A...E), as well as with any stack register.

The operation x≷ has been added to allow x to be exchanged, directly or indirectly, with the value of any register and also with any stack registers.

The ∑+ key may be used as a dual-register address, working on X,Y and RS14,RS16 simultaneously.


100 Additional Labels

With 100 labels in addition to those built into HP-67, you'll probably never run out of labels again.

Simply use LBL, GTO and GSB as before, but insert a "+" after the opcode, followed by a 2-digit label number, e.g. LBL+21, GTO+97.
Indirect addressing works too, like GTO+(i), where register holds a value between 0 and 99.





HP-67 with Paper Tape Printer and Program Usage Notes



HP-67 with Register View



RPN-67/97 Card Manager



RPN-67 for the iPad is available here:

RPN-67 Pro

RPN-67 Free



RPN-67 for the iPhone is available here:




RPN-97 is available here:

RPN-97 Pro



RPN-67 SD — What's different from the iPad version

Version 2.0

RPN-67 SD is the iPhone/iPod version of RPN-67 Pro.

While the user interface is – for obvious reasons – quite different from the iPad version,
the features are virtually the same.

Tap the "?" available on various screens for hints about using the app.

RPN-67 SD comes with the following HP Program Pacs already built-in:
HP Standard Pac, HP Math Pac I, HP Stat Pac I.






Introducing HP-67 and HP-97
Here's an ad from a 1976 magazine announcing HP-67 and HP-97: Download
The equivalent selling prices, in 2014, would be $1,900 (HP-67) and $3,200 (HP-97).



Version History RPN-67 / RPN-97

4.0 – July 11, 2017
  • New:
  • • New functions and utilities:
      Numerical Integration
      Root Finder
      Matrix Operations
      Quartic Function Solver
      Linear Equation Solver
      Primality Test
      ... and much more
  • • New command OP EXEC FN supports extensible function library
  • • Supports "secret" NOP command of HP-67
  • • Polar/Rect conversions support complex and hyperbolic modes
  • • Loading an auto-executing program card optionally plays a short alert sound
  • • Printing x in complex mode prints both real and imaginary parts
  • • Flag F9 (used in Find Root operation) appears in register view

  • Bug Fixes:
  • • SYS/INFO didn't show correct version number
  • • No more empty line printed after x≷i
  • • Crash on register operations involving registers A..E in complex mode
  • • Sound volume was not preserved between restarts (RPN-67/97 Pro only)

3.9 – April 26, 2017
  • New:
  • • Card Manager:
      On opening or changing card, the currently addressed program step scrolls into view automatically
      Tap label "Next:" to scroll the currently addressed program step into view
      Tap label "Steps:" to see the top of the listing
      Tap the value following "Steps:" to see the bottom of the listing
  • • Visual feedback on tapping keys (vintage mode)
  • • Additional mnemonics recognised when importing programs as text
  • • Changes in card merging for improved compatibility with vintage programs
  • • Card reader sound in vintage mode taken from real HP-67 (used to be HP-65) (RPN-67 only)

  • Bug Fixes:
  • • In vintage mode, after switching to W/PRGM, the code of the last tapped key in RUN mode would sometimes not disappear (RPN-67 only)
  • • Keys in lowest four rows move again on tapping (RPN-67 only)
  • • Shared data cards didn't include extended registers
  • • Pi in vintage mode was not restricted to 9 decimal digits
  • • Some extended commands imported from RPN-67 didn't get translated (RPN-97 only)

3.8 – March 7, 2017
  • New:
  • • Enjoy the genuine HP card reader sound in vintage mode!
  • • Better FRAC results for large arguments
  • • Repeatedly pressing prefix keys f,g,h in vintage mode works like on real HP-67 (key f only on RPN-97)

  • Bug Fixes:
  • • RND didn't work in FIX mode (RPN-67 Pro only)
  • • RND didn't round correctly certain values in SCI and ENG mode
  • • Fixed some issues regarding Touch-ID-protected registers

3.7 – Feb 7, 2017
  • New:
  • • Search: Now faster and more powerful than ever. Search in program titles or descriptions.
  • • On Touch-ID-enabled devices, access to calculator registers stored on program cards may be restricted
  • • New command: g EEX ENTER exchanges LastX and the stack registers with extended registers 00..04
  • • New flag commands:
      DSP h SF n toggles flag n, then tests if it's set
      DSP h CF n toggles flag n, then tests if it's cleared
      DSP h F? n toggles flag n
  • • Step number display may be toggled in vintage mode
  • • Added card category "My Programs"
  • • Optional dot-matrix font for paper tape in vintage mode (use OP PRT MODE command to set)
  • • Low-battery indicator moved to correct position (RPN-67 Pro only)
  • • Pacs "Business Decisions Pac I" and "Surveying Pac I" added to default database

  • Bug Fixes:
  • • Low-battery indicator didn't show in vintage mode
  • • Flag tests 4..9 imported from RPN-67/97 did not get translated
  • • In Card Manager, listing text may be selected on write-protected card
  • • On iPod touch (5th gen) only, the app could crash on loading a data card (RPN-67SD only)

3.6 – Nov 16, 2016

  • Bug Fix:
  • • R/S command could not be pasted into display

3.5 – Sep 9, 2016
  • New:
  • • Easter date for 1583 thru 4099: set y = 0, x = year, execute DAT+
  • • Added register arithmetic in complex number mode for R0...R9
  • • Store, recall, exchange, and arithmetic operations involving X and any stack register
  • • Next step number display (tap above "OFF" to toggle)
  • • Red progress bar shows fill status of program memory (in W/PRGM mode)
  • • Paper tape capacity increased to 2000 lines
  • • TEXT command accepts codes 1..255
  • • Register operations involving registers A..E may be entered as text
  • • Improved pasting from paper tape
  • • Indicator lights up when auto-executing subroutine 99 is running
  • • Improved results for SIN, COS, TAN with very large arguments
  • • Decimal addition/subtraction for higher precision
  • • New option for PRT MODE command allows postponing papertape updates until the program has stopped running
  • • Added German version of HP Standard Pac diagnostic program to default programs
  • • HP Business Decisions Pac shows real cards
  • • Calculator sounds mix with background audio and have their own volume control
  • • Programs run faster than ever

  • Bug Fix:
  • • STO op (i) entered as text was stored as STO / (i) for all operations

3.4 – June 10, 2016
  • New:
  • • Long-press a paper tape line to copy it to the pasteboard
  • • Long-press and drag a paper tape line to the display to copy/paste it
  • • Copy text from usage window to pasteboard
  • • Use DSP MODE to define decimal point character to use: auto (defined by locale), or decimal point, or comma
  • • Group separator is shown while entering number
  • • Support for uncommon number groupings (e.g. India)
  • • Double-tap card in card list to load it
  • • LBL, GTO, GSB with extended labels may be entered in mnemonic form, e.g. LBL 67
  • • Operations and Constants keys show their code number
  • • Low-battery dot moved to its correct position (RPN-67)
  • • In vintage mode, Pi is set to exactly 3.141592654
  • • Updated physical constants to CODATA 2014
  • • Tweaked display for even more realistic look
  • • Added HP Math Pac 1 and HP Stat Pac 1 to default database
  • • HP Survey Pac 1 now shows real card images (after re-download of cards)

  • Bug Fixes and Other Changes:
  • • Fixed argument checking for NBIN and POISSON functions
  • • Tapping g, then EEX would show wrong key name
  • • Stopping program by touching SST key would not always behave as expected
  • • Improved reliability of merging programs
  • • Complex mode is cleared on loading new program card
  • • Pressing a user-defined function key ends number input mode

3.3.1 – Mar 2, 2016
  • Bug Fixes:
  • • Wrong keyclick sound, causing key response to feel sluggish
  • • Label "Registers" for Data cards was truncated

3.3 – Feb 17, 2016
  • New:
  • • Exchange cards with RPN-97 and RPN-65 via copy/paste
  • • Import cards directly from e-mail
  • • Import cards from this website without using iTunes
  • • Save cards to Dropbox; import cards from Dropbox
  • • Print card texts or save as PDF in iBooks
  • • Exchange cards via AirDrop
  • • Auto-execute label 99 on loading program card
  • • Tap "Errors" to scroll to next syntax error in listing
  • • Double-tap "Errors" to scroll to next address error in listing

  • Bug Fixes and Other Changes:
  • • If no mail app active, no warning appears until trying to e-mail
  • • Fixed crash when translating HP-97 x≷ command
  • • RPN-97 data cards are now imported correctly

3.2 – Sep 2, 2015
  • New:
  • • Added interactive "GTO.." command to quickly jump to last program step
  • • If audio is playing on start-up, RPN-67/97 will not produce any sounds
  • • Imports data cards created by the HP-65 simulator RPN-65 Pro

  • Bug Fixes and Other Changes:
  • • Operations involving extended register 25 didn't work in programs
  • • Separators suppressed if "Crd" shown
  • • Improved overflow handling in programs
  • • Import/Export popup could show wrong card type (pre-iOS8)
  • • Fixed issues related to paper-feeding an empty paper tape
  • • PrintX key would print ERROR twice in NORM and TRACE mode
  • • Removed some potential crash situations
  • • Fixed card export hanging in iOS 8 (RPN-97 Pro only)
  • • Fixed e-mail issue in Card Manager (RPN-97 Pro only)

3.1 – Apr 9, 2015
  • New:
  • • Direct Paper Tape Printing:
      - Quickly append any text to the paper tape
      - Swipe left on any line to delete it
      - Insert text or blank line before any line (on iOS 8 or later)
      - Great for annotating your calculations

  • Bug Fixes and Other Changes:
  • • In TEXT Helper: PLOTC input fields were covered by on-screen keyboard
  • • Flag operations for F4..F9 not translated correctly when importing an RPN-97 card
  • Register view would freeze after removing or changing a program card (RPN-97 Pro only)

3.0 – Feb 28, 2015
  • New:
  • • Turbo mode
    Now run programs faster than ever. Simply turn on Turbo mode, even under program control, to markedly speed up
    execution of time-consuming calculations. All unneeded display and register view updates will be suppressed while
    Turbo mode is on.
    See OP SYS/INFO command on the website for details.
  • • Program listing shows number of errors
  • • Program instructions may be sent to external printer (AirPrint)
  • • Nicer looking printouts, color/grayscale supported
  • • Key fronts shown when tapping the h key may be determined in settings (RPN-67)
  • • Improved sound volume control
  • • OP STEP# replaced by OP PRT FRAC (fractional part as integer)
  • • OP SYS command may be used to turn large digits on or off
  • • Card searching scopes have been removed, so it's much easier now to find a card and its associated program or data cards.
  • • 64-bit support

  • Bug Fixes and Other Changes:
  • • A single plus sign pasted into the listing treated correctly as addition command
  • • Both "hyphen-minus" and "Unicode minus sign" are accepted when pasting
  • • GTO+(i) and GSB+(i) are working again
  • • Calculator didn't turn itself on automatically (iOS 8)
  • • If large digits set, reg view x is shown in orange
  • • After importing a card, the conversion switch is turned off
  • • Turning calculator off while entering number stores number as x value
  • • RCL ∑, STO ∑, x≷∑ changed to RCL ∑+, STO ∑+, x≷∑+
  • • Added SIGMA+ and SIGMA- as synonyms for ∑+ and ∑-
  • • Added X-BAR as synonym for x̅
  • • If SST in subroutines is off, stopping in subroutine re-enables SST at that level

2.7 / 1.7 – Sep 16, 2014
  • New:
  • • TEXT Helper
    Creating text for paper tape output in your programs has never been easier.
    Simply open the new TEXT Helper screen, type in your text, and let RPN-67 insert the necessary program
    steps into your program. No more looking up ASCII codes!
    TEXT Helper also supports code creation for the PLOTC command.

  • Bug Fixes and Other Changes:
  • • Fixed crash on invalid values submitted to OP TEXT command
  • • Fixed single-step mode not ended by executing user-defined function
  • • Fixed manually entered commands GSB [0..9] producing incorrect opcode (RPN-67 only)
  • • Fixed paper tape sometimes not showing content of previous session (RPN-97 only)
  • • Fixed register commands involving ∑+ not working (RPN-97 only)

2.6 / 1.6 – Sep 3, 2014
  • New:
  • • 100 additional labels 00..99!
    To use, simply enter LBL+nn, GTO+nn, GSB+nn (where nn = 00..99).
    GTO+(i) and GSB+(i) take the absolute integer value in register I as target, if in the range 0..99.
  • • Changed some matrix operations for easier use in programs. Row 1 is now mapped to registers R1..R3, row 2 to R4..R6, row 3 to R7..R9. Please check your programs which use OP MAT commands.

  • Bug Fixes and Other Changes:
  • • Fixed info button showing Breakpoint Commands instead of info screen on startup
  • • Fixed LBL commands appearing twice on paper tape in NORM and TRACE mode
  • • Fixed color formatting info appearing on paper tape printouts
  • • Fixed paper feed button not responding in single-step mode

2.5 / 1.5 – July 7, 2014
  • New:
  • • BREAKPOINTS: Store and manage up to 10 program step numbers as breakpoints
  • • SOURCE CODE ENTRY: Enter and edit programs by simply typing commands in the listing area
  • • Card manager shows current program counter (and x value in RUN mode)
  • • If warnings are turned off in settings, merge operations won't put up a dialogue anymore
  • • Register arithmetic may be performed on register I
  • • Command SYS/INFO is now programmable. In addition, it can provide geo location data (latitude, longitude, altitude.)

  • Bug Fixes and Other Changes:
  • • Fixed FRAC function in rare cases
  • • Fixed a crash which could happen when cancelling a programmed MERGE operation
  • • Programmed W/DATA command doesn't end program
  • • Wider labels in card manager to better match card
  • • In card manager: Flags, Trig Mode etc. grayed out if write-protected
  • • Convert button disabled on write-protected card
  • • Save button disabled for pgms on data card (and vice versa)
  • • Register view: colors matching those of RPN-97
  • • g EEX [A-E] in W/PRGM mode with cleared program doesn't store default function
  • • Changing to PRGM mode stops program immediately, except in vintage mode
  • • OP descriptions use smaller font

2.3 / 1.1 – April 3, 2014
  • New:
  • • Print in 10 colors (programmable; use PRT MODE command to select)
  • • Negative results print in red (optional)
  • • Merging a card with no card in slot will show merged card
  • • Data cards containing less than 100 extended registers load correctly
  • • Improved y^x function, e.g. (-9)^4 will not produce complex result anymore
  • • LBL/FLG command replaced by more powerful SYS/INFO command
  • • Changed plotting symbol from "+" to "•"
  • • New card category "Tests & Demos"

  • Bug Fixes and Other Changes:
  • • Fixed a crash which could occur when trying to convert already converted HP-97 code to HP-67 again
  • • Command DSP MODE didn't work in ENG notation
  • • Rounding in SCI and ENG notation now works correctly
  • • In vintage mode, key labels are now shown correctly for flag operations
  • • Certain register arithmetic operations could not be programmed
  • • Corrected description of command CHG MAG
  • • Listing changes no longer a requirement for enabling HP-67/HP-97 conversion
  • • Trying to add step beyond last step now behaves as expected
  • • Some commands like RCL/STO.-51, RCL/STO.+61 were not programmable

2.2 – February 21, 2014
  • New:
  • • Full compatibility with RPN-97 Pro v1.0
  • • Register operations involving (i) will automatically use extended registers if i exceeds 25
  • • Improved compatibility with program listings pasted from external sources
  • • Enlarged size of paper tape and instruction sheet
  • • HYP mode may be toggled on and off
  • • Avogadro constant: renamed and changed to latest value
  • • Display shows low-battery indicator when the iPad's battery charge drops below 10%

  • Bug Fixes and Other Changes:
  • • Exchanging x with an extended register didn't work for certain registers
  • • Fixed CPLX and HYP modes, as well as accessing register 24, not working in programs
  • • Fixed and improved MERGE operation
  • • Fixed crash on illegal range in PRT EXT command
  • • Removed stack lift on RCL ∑ command
  • • Paper clear sound not suppressed if key click vol = 0
  • • Auto-Enter preserved across print commands
  • • Subroutine nesting set to 3 levels in vintage mode (same as real HP-67)
  • • Manual PAUSE length is not doubled anymore

2.1 – December 12, 2013
  • New:
  • • Speed improvements: programs run faster than ever, especially with register view hidden
  • • Now with 30 backgrounds to choose from, PLUS import your own background image
  • • Added program categories "Astronomy" and "Pharmacology"
  • • In W/PRGM mode, insert a program snippet by simply pasting it into the calculator display
  • • Replaced BOND function with SOLAR, which calculates precise sun position data
  • • Enhanced extended function "FIND EXT" - you can now test a range for a value different from x
  • • Program usage notes edited for iOS 7 compatibility. Download programs from Library sections if needed.
  • • In Vintage mode, program run times match a real HP-67 even better

  • Bug Fixes and Other Changes:
  • • Usage view didn't show in certain situations
  • • Fixed animation issues with keys in 4th row
  • • Disabled automatic stack lift following ∑+ key
  • • On executing PAUSE, tapping and holding a key now extends pause
  • • Fixed a rounding issue in the FRAC function
  • • Fixed size issues with data cards
  • • Possible crash when removing label function and tapping label name
  • • Editing lower row of labels in landscape mode doesn't shift up view excessively
  • • Importing card with unknown category doesn't crash category picker
  • • Improved cut/copy/paste
  • • Increased line height in paper tape slightly

2.0 – September 27, 2013
  • New:
  • • Added more than 100 operations and functions (programmable)
  • • Added 100 constants and conversions (programmable)
  • • Added 100 registers supporting full register arithmetic and indirect addressing
  • • Added flags F4 through F9
  • • Exchange x with any register
  • • Complex number mode
  • • Hyperbolic functions
  • • Decimal point is shown according to region
  • • Display shows thousands separators (optional)
  • • Single-step numeric constants in programs (optional)
  • • N! accepts real and complex numbers

  • Other changes:
  • • Pasting a program step into the display works correctly (again)
  • • In interactive mode, flag commands were not logged on paper tape

1.2 – June 6, 2013
  • New:
  • • Additional functions for the user-defined keys A through E
  • • Faster execution of Printx command, if printer running and visible
  • • Improved preview of background patterns in settings dialog
  • • Duplicate cards are numbered
  • • Warning when loading card which exceeds size of program memory
  • • File extension changed to the more specific ".rpn67".
      The previous extension ".plist" is still recognized.

  • Other changes:
  • • Fixed possible crash when creating a new program card
  • • Eliminated possible spurious keyboard inputs showing up in Trace mode
  • • Fixed an issue where paper tape results dropped two decimal digits
  • • Fixed data cards not storing floating-point numbers correctly in certain regions
  • • Fixed pasting values dropping decimal point in certain regions
  • • Fixed a situation where the stack would not auto-lift

1.1 – May 2, 2013
  • New:
  • • Added the HP-97's NORM and TRACE mode to the printer
  • • Print program listing on paper tape
  • • Tap a button to scroll to top or bottom of paper tape
  • • Tap "Cards" title in card manager to toggle between current and loaded card
  • • Double-tap "Cards" title in card manager to toggle between program and data cards
  • • Touch a button to reveal fronts of hard-to-read keys
  • • Slowed down REG, -x-, STK commands to HP-67 speed when printer is not visible
  • • Card manager enhancements
  • • The card import function now accepts arbitrary card names
  • • Cards with the extension ".hp97" (Windows HP-67/97 emulators) may be imported
  • • Various UI and internal improvements

  • Other changes:
  • • Fixed crash occurring when tapping Paper Feed in W/PRGM mode
  • • Fixed register I showing only very quickly in REG command
  • • F3 is set on starting number entry with EEX
  • • R/S finishes input mode
  • • Register arithmetic now underflows correctly to zero
  • • Print x key ends input
  • • R/S ends input (also when running program enters number)
  • • REG ends input
  • • F? n renamed to Fn?
  • • Programm stack cleared on manually entered RTN
  • • Improved comparisons (based on display accuracy)
  • • Improved INT, FRAC (based on display accuracy)
  • • Vintage mode: display mode reset to FIX 2 on power-off
  • • Enhanced mode: flags, trig mode stored in preferences

1.0 – March 1, 2013
  • First public version.


Version History RPN-67 SD

1.2 – June 20, 2016
  • New:
  • • Long-press paper tape line to copy it to the pasteboard
  • • Program status (e.g. PAUSE) appears in register view
  • • In vintage-accuracy mode, Pi is set to exactly 3.141592654
  • • Updated physical constants to CODATA 2014
  • • High-contrast mode now includes stack display
  • • Performance improvements
  • • Added German version of HP Standard Pac diagnostic program to default programs

  • Bug Fixes::
  • • Starting a program with R/S in register view would stall a later pause command
  • • Added missing alert texts

1.1 – June 4, 2016
  • New:
  • • New high-contrast display mode added to settings
  • • Tap card slot to show or hide stack view
  • • Run/stop and single-step program without leaving register view
  • • Added copy of actual display to register view
  • • Use DSP MODE to define decimal point character to use: auto (defined by locale), or decimal point, or comma
  • • SST and BST may be cancelled by dragging finger off key

  • Bug Fix::
  • • Stack and extended registers are now restored on calculator restart

1.1 – May 6, 2016
  • Bug fix:
  • • Fixed an issue where in certain regions the decimal point would show as blank

1.0 – May 3, 2016
  • First public version.

Copyright © 2017. 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.