RPN-32 CE — Extending the HP-32E


What's been added in RPN-32 CE

For its price ($80 in 1978), the HP-32E was a remarkable calculator. It offered several statistical functions as well as hyperbolics. Conversions were available for units, decimal hours/hours.minutes.seconds and degrees/radians.

RPN-32 CE enhances the HP-32E in several ways:



MEMORY

HP-32E

RPN-32 CE
Registers 15, split into R0..R8 and R.0..R.5 20, split into R0..R9 and R.0..R.9
Register Arithmetic

For STO operations only
RCL ∑+ only

For both STO and RCL operations.
• Includes double-register ∑+ (R.1 and R.3) working with stack registers X and Y, respectively.
• Also includes LSTx (use the yˣ key as register address.)
Exchange X and Registers Not available Yes, directly or indirectly
(see bottom of page)
Indirect Addressing Not available Yes, via register R.9
Range: 0..20 (where 20 = LSTx)
Details
Volatility

All memory contents lost on power-off

Memory contents preserved ("continuous memory")
     
FUNCTIONS    
PSE Not available Pause for 1 second
INT Not available Remove fractional part of X
FRAC Not available Remove integer part of X
RND Not available Round X to displayed value
ABS Not available Make X value positive
NOP Not available No operation
RAND Not available Create random number
GTO, GSB, RTN Not available Branching support
DSE, ISG Not available Loop control using R.9
F?, SF, CF Not available 10 flags (test, set, clear)
x=y, x<y, x>y,
x≠y, x≤y, x≥y

(double-tap to switch sets)
Not available Yes (execute next step if true, skip next step if false)
x=0, x<0, x>0,
x≠0, x≤0, x≥0

(long-press to use 0 instead of y)
Not available Yes (execute next step if true, skip next step if false)
(see "Extra Functions" at right)
     
PROGRAMMING    
Programmable Not available Yes (99 steps)
     
USER INTERFACE    
Prefix keys Active if pressed Active if pressed. Deactivated if pressed again. Indicators show state.
Register view Not available All registers shown on single screen including formatted display.
Run/Stop and single-step program without leaving register view.
Decimal Point,
Thousands separator

Fixed to "."
Thousands separator shown as comma

User-selectable representations
Command display

Not available

In program mode or while single-stepping, current command is shown as text below display
Current step display

Not available

Current program step is shown below display
Program memory fill status

Not available

Red progress bar shows amount of program memory filled
Clock display

Not available

By tapping f (12-hr) or g (24-hr), then P/R.
Haptic feedback

Of course

Set by the action of storing 1939010X in R0 (where X = 0..3 = level)



Optional programming and extra functions keys:


After double-tapping x=y:




With f prefix key active:


After double-tapping x<y:




With g prefix key active:


After double-tapping x>y:




ADDITIONAL FUNCTIONS

Some additional functions cannot be entered directly on RPN-32's keyboard, but you can paste the keycodes shown below into the display in PRGM mode.

RPN-32 expects a 2-digit dummy line number followed by the keycode. Non-numeric characters are ignored.

Example:
Pasting the text 00 14 98 would insert the P≷S instruction after the current program step.

(Usage tip: Enter the text anywhere in the description field of your program, then cut and paste it.)


Function

Keycode

Description
x≷ 76 nn Exchange X with any register
(nn = 0..19 = R0..R.9, nn = 20 = LSTx)
x≷i 77 Exchange X indirectly (via R.9)
P≷S 14 98 Swap primary and secondary registers
SWAP∑ 15 98 Swap statistical values with locations used on RPN-25, and vice versa
ERROR1 14 80 Halts program execution and shows "Error"
ERROR2 15 80 Same as ERROR1, with error sound


      Getting data into RPN-32 CE
       
      You can preset RPN-32's registers with data created externally without having to type them in.
      Simply prepare the data in text format in any app that can handle text, like Notes, Mail and many others.
       
      The data format looks like this:
      Rn or R.n value (where n = 0…9)
       
      Example:
To set R1 = 4.5, R6 = 6.28E-7, R.3 = 439, prepare your data like this:
      R1 4.5
R6 6.28e-7
R.3 439
      Select all of the text and paste.
       
      Notes:
Upper-/lower-case is ignored.
One or more blanks or tabs may follow the register number.
M may be used in place of R.
R.n may also be written as R1n, e.g. R.3 is the same as R13.
The order of the registers is irrelevant.
Unlisted registers are left untouched.


      Extra Functions
       
      PSE
      Pauses program execution for one second.
       
      INT
      Sets the fractional part of x to 0.
       
      FRAC
      Sets the integer part of x to 0.
       
      RND
      Rounds x according to the currently shown digits.
       
      ABS
      Sets x to the positive value of x.
       
      NOP
      Executes a "no operation". Useful to do nothing after a test is true.
       
      RAND
      x ≤ 0: replaces X with an integer random number in the range 0…232–1.
x > 0: replaces X with an integer random number less than x, but no larger than 232–1.
       
      GTO, GSB, RTN
      GTO nn
Continue program execution at step nn.
GSB nn
Continue program execution at step nn, remembering step nn+1.
RTN
Continue program execution at latest step remembered by GSB.

Up to 4 return addresses may be pending.
Step arguments nn of GTO and GSB are automatically adjusted when inserting or deleting steps.
       
      DSE, ISG
      The functions DSE (Decrement and Skip if Equal or Less) and ISG (Decrement and Skip if Greater) provide looping control by counting a value up or down, skipping the next step when a predetermined limit value has been reached.

The loop control value must be stored in register R.9, using this format:

                      nnnnn.xxxyy

The integer part nnnnn (up to 5 digits) is the counter value being decremented or incremented.
The fractional part xxx (exactly 3 digits) is the limit value being compared to the counter value.
The fractional part yy (exactly 2 digits) determines the amount by which the counter is incremented or decremented.

DSE decrements nnnnn by yy. If the result is equal to xxx (or less than xxx), the next step is skipped.
ISG increments nnnnn by yy. If the result is greater than xxx, the next step is skipped.

Note that xxx defaults to 000, while yy defaults to 01.

The DSZ command (Decrement and Skip if Zero) found in other calculators may be emulated by simply storing the counter value n (1...99999) in register R.9.
       
      TOP, MID, END
      These keys quickly set the current step to convenient values.

TOP
Selects step 00
MID
Selects the step halfway through the program
END
Selects the last program step
       
      F?, SF, CF
      10 flags (F0…F9) are available to be set, cleared, or tested.
Their state may be viewed in register view:
The register numbers display the state of same-numbered flags. If the flag is set, the number is highlighted.

F? n
Tests flag n. If it's set, program execution continues, otherwise the next step is skipped.
SF n
Set flag n.
CF n
Clear (reset) flag n.

F3 is auto-set by numeric user input.
F2 and F3 are auto-cleared on test.
In addition, F3 is cleared by g RTN keyed in by user,
TOP, GTO 00, or by changing the P/R mode.
All flags are cleared by executing CLEAR ALL or by setting the power switch to OFF.

Flags are stored along with the program.
       
      Comparisons
      RPN-25/32/38 are the only simulators of pre-HP-15C calculators to offer all 12 possible comparisons.

Basic:
x=y, as well as x<y, x>y (using f and g)
Extended:
Double-tap the operator to access additional comparisons:
x≠y, x≤y, x≥y
Single-tap the operator to select it.
Long-press the operator to replace y with 0 and select it.
 
 


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