00 
NOP 
No operation. Useful in testing and debugging programs. 
For an alternative, see note at the top about the "secret" NOP command. 
01 
CPLX? 
Returns 0 if complex mode is off, 1 otherwise. 

02 
BEEP 
Sounds a short tone. 

03 
ERROR 
Stops program and displays "Error" message. 

04 
MAX STEPS 
Sets maximum number of programs steps according to x: 1 = 224, 2 = 448, 3 = 999.
Returns current setting for any other value of x, e.g. 0. 
Same as "Number of Program Steps" in settings. 
05 
CSGN 
Generalized sign of x (1 if x < 0, 0 if x = 0, 1 if x > 0). 
SIGN(5.3) = 1, SIGN(4) = 1, SIGN(0) = 0 
06 
DECR 
Decrements x by 1. Useful when testing flags and conditions. 
DECR(0) = 1 
07 
INCR 
Increments x by 1. Useful when testing flags and conditions. 
INCR(5.3) = 6.3 
08 
CHG MAG 
Change magnitude of y by x: if y is positive, then add x, otherwise subtract x. 
y = 5, x = 3: CHG MAG = 8 y = 5, x = 3: CHG MAG = 8 
09 
ODD 
Returns 1 if integer part of x is odd, 0 otherwise. 
ODD(2) = 0, ODD(5.3) = 1 
10 
FLOOR 
Returns the greatest integer less than or equal to x. 
FLOOR(5.3) = 5, FLOOR(5.3) = 6 
11 
CEIL 
Returns the smallest integer larger than or equal to x. 
CEIL(5.3) = 6, CEIL(5.3) = 5 
12 
MIN 
Returns the lesser of x and y in X, the greater in Y.
In complex mode, compares absolute values of x+jy and z+jt. 
x = 7, y = 2. MIN: x = 2, y = 7 
13 
MAX 
Returns the greater of x and y in X, the lesser in Y.
In complex mode, compares absolute values of x+jy and z+jt. 
x = 7, y = 2. MAX: x = 7, y = 2 
14 
CLIP 
Returns x clipped (limited) to between y and z. 
x = 3, y = 10: CLIP(20) = 3, CLIP(20) = 10, CLIP(3.14) = 3.14 
15 
CHOP 
Returns 0 if absolute value of x is less than 5E10. Useful for eliminating floatingpoint representation errors.
For example: 7.005 + 1  8.005 = 1.78E15 instead of 0. 
CHOP(1/12!) = 2.09E9, CHOP(1/13!) = 0 
16 
RESCALE 
Returns x rescaled to run from 0 to 1 over the range y to z. 
y = 6, z = 22: RESCALE(6) = 0, RESCALE(22) = 1, RESCALE(14) = 0.5 
17 
EXP/MANT 
Returns in X the exponent, in Y the mantissa of x. 
EXP/MANT(325 EEX 5) = 7 (in X), 3.25 (in Y) 
18 
MOD 
Modulo function: returns the remainder of y divided by x.
The result always has the same sign as x. 
MOD(5.6,1.2) = 0.8, MOD(5.6,1.2) = 0.4 
19 
GCD 
Greatest common divisor of positive integers x and y. 
GCD(164,88) = 4, GCD(328,3567) = 41 
20 
LCM 
Least common multiplier of positive integers x and y. 
LCM(24,124) = 744 
21 
DIV 
For two numbers x and y, returns the integer part of y/x in x, the remainder in y. 
DIV( 5.6, 1.2) = ( 4, 0.8)
DIV(5.6, 1.2) = (5, 0.4)
DIV( 5.6,1.2) = (5,0.4)
DIV(5.6,1.2) = ( 4,0.8) 
22 
%TOT 
Returns the % of y that is represented by x. 
y = 7, x = 7: %TOT = 100, y = 15, x = 12: %TOT = 80 
23 
ATAN2 
Calculates atan(y/x), with the quadrant of point (x,y) preserved 
y = 1, x = 1: ATAN2 = 45°, y = 1, x = 1: ATAN2 = 135° 
24 
RATIO 
Convert x to a close rational y/x, with numerator and denominator limited to y (1E6 if y = 0 or noninteger). 
y = 1000, x = π: RATIO = 355/113 
25 
CB ROOT 
Returns the cube root of x. 
∛27 = 3, ∛π = 1.46 
26 
CONJUG 
Returns the conjugate of complex number x + iy.
May be used to change the sign of y directly. 

27 
LOGy 
Returns the base y logarithm of x. 
LOG_{2}(256) = 8; LOG_{π}(√3) = 0.47986
Complex: LOG_{(1+i)}(1.49+4.13i) = 2.001.00i 
28 
QUAD EQ 
Solves the quadratic equation ax² + bx + c = 0. Arguments: a in Z, b in Y, c in X. 
Solve x²  2x + 2 = 0: x = 1 ± 1i (CPLX indicator appears) 
29 
CUBE EQ 
Solves the cubic equation ax³ + bx² + cx + d = 0.
Arguments: a in T, b in Z, c in Y, d in X.
On return: t = type of roots
(1: one real, two complex; 2: three real, at least two equal; 3: three real and distinct; 0: not a cubic equation) 
Solve x³  4x² + 8x  8 = 0:
x₁ = 2, x₂ = 1 + √3i, x₃ = 1  √3i,
root type is 1 (CPLX indicator appears) 
30 
LIN EQ 2 
Solve linear equation in two unknowns:
ax + by = c
dx + ey = f
Inputs:
a,b,c = R4,R5,R6 d,e,f = R1,R2,R3 

31 
LIN EQ 3 
Solve linear equation in three unknowns:
a_{11}x+a_{12}y+a_{13}z = b_{1}
a_{21}x+a_{22}y+a_{23}z = b_{2}
a_{31}x+a_{32}y+a_{33}z = b_{3}
Inputs:
a_{11},a_{12},a_{13} = R7,R8,R9
a_{21},a_{22},a_{23} = R4,R5,R6
a_{31},a_{32},a_{33} = R1,R2,R3
b_{1},b_{2},b_{3} = RA,RB,RC 

32 
GAMMA 
Returns the value of the Gamma function Γ(x). Works in complex mode. 
Γ(10) = 362880 (= 9!). Γ(2.33) = 1.32.
Γ(3+1.2i) = 0.622 + 1.386i 
33 
EULER Φ 
Returns number of positive integers not exceeding x that have no common divisors with x. 
Φ(100) = 40, Φ(101) = 100 
34 
FIBONACCI 
Returns generalized^{} Fibonacci numbers Fib(x) for x integer, real or complex. 
Fib(10) = 55, Fib(π) = 1.9293 Fib(480.16) = 9.95 × 10^{99}
Fib(3+1.2i) = 3.507  0.216i 
35 
HARM NUM 
Returns the x^{th} Harmonic number for any real and positive x. 
H(0) = 0, H(3) = 11/6 = 1.8333, H(π) = 1.8727 
36 
BesselJ 
Calculates the Bessel function of the first kind J_{y}(x). Order y = positive integer. 
J_{2}(1) = 0.1149, J_{5}(π) = 0.05214 
37 
BesselY 
Calculates the Bessel function of the second kind Y_{y}(x). Order y = positive integer; x > 0. 
Y_{2}(1) = 1.6507, Y_{5}(π) = 1.6235 
38 
Py,x 
Permutations of y objects taken x at a time. 
P_{7,5} = 2520, P_{500,37} = 1.8569 × 10^{99} 
39 
Cy,x 
Combinations of y objects taken x at at time (Binomial Coefficient) 
P_{7,5} = 21, C_{500,37} = 1.3491 × 10^{56} 
40 
LIN REG 
Calculates the linear regression y = ax + b. x,y pairs are entered using the ∑+ key.
Results: x = a, y = b, z = correlation coefficient, t = covariance. 
Use OP CLR ∑ to clear statistics registers 
41 
ŷ,r 
LIN REG: return in X the linear estimate for y, given an x value in X.
Returns correlation coefficient in Y. 

42 
x̂,r 
LIN REG: return in X the linear estimate for x, given a y value in X.
Returns correlation coefficient in Y. 

43 
NORM DIST 
Normal Distribution (Gaussian Probability Function) with mean µ = 0 and standard deviation σ = 1. Returns probability density function φ(x) in X, cumulative distribution function Φ(x) in Y. 
φ(2.22) = 0.03394, Φ(2.22) = 0.98679 
44 
BIN DIST 
Binomial Distribution f(x).
Inputs: z = n (number of trials), y = p (success probability in each trial), x = argument. 
Galton box with 8 layers (n = 8, p = 50%, nine bins numbered 0..8). Probability that ball ends in central bin (x = 4): f(4) = 70/256 = 0.27344 
45 
NBIN DIST 
Negative Binomial Distribution.
Inputs: z = p (success probability in each experiment), y = r (number of failures until experiment is stopped). 
To verify the example "Selling candy" at the bottom of this Wiki page, enter p = 0.4, r = 5, x = n5. 
46 
BVAR DIST 
Bivariate Normal Distribution f(x,y).
Inputs: µ_{1} ➞ R.91, µ_{2} ➞ R.92, σ_{1} ➞ R.93, σ_{2} ➞ R.94, ρ ➞ R.95 
µ_{1} = 1, µ_{2} = 1, σ_{1} = 1.5, σ_{2} = 0.5, ρ = 1.7
f(1,2) = 0.04004 
47 
POISSON 
Poisson Distribution f(x).
Inputs: y = λ (expected value of x; must be larger than 0). x = positive integer. 
λ = 2.8: f(7) = 0.01628 
48 
CHISQ 
Evaluates χ² for a range of data pairs for goodness of fit. Input values:
R.y through R.z = range of observed frequencies, R.x = start of corresponding range of expected frequencies 
O_{i}: 9.6, 46.75, 51.85, 54.4, 8.25, 9.15
E_{i}: 8, 50, 47, 56, 5, 14
χ² = 4.8444 
49 
TPAIRED 
T Statistics: returns t for paired observations. Data pairs are entered using the ∑+ key. 
Use OP CLR ∑ to clear statistics registers 
50 
MEAN GRP 
Calculates weighted mean (in X) and standard deviation s (in Y) of grouped data.
Input: Use ∑+ with value in X, weight in Y. 
Use OP CLR ∑ to clear statistics registers 
51 
SKW/KURT 
Skewness γ_{1}, Excess Kurtosis γ_{2} and Moments m_{i} for grouped and ungrouped data.
Input: Use ∑+ with value in X, weight in Y (set to 1 if ungrouped data).
Returns: X = γ_{1}, Y = γ_{2}, Z = m_{1} (mean), T = m_{2}, RA = m_{3}, RB = m_{4}

Use OP CLR ∑ to clear statistics registers 
52 
ERF,ERFC 
Returns the value of the error function erf(x) in X, the value of the complementary error function erfc(x) in Y.
Note that Φ(x) = ½ + ½ erf(x/√2) [see cumulative distribution function PROB]. 
erf(3) = 0.99998
erfc(3) = 2.20905E5 = 1  erf(3) 
53 
NORM 
Normalizes the vector [R1 R2 R3]. 
NORM([3 1 2]) = [0.802 0.267 0.535] 
54 
ANGLE 
Returns the angle between vectors [R1 R2 R3] and [R4 R5 R6]. 
ANGLE([2 3 4],[5 2 1]) = 74.26° 
55 
DOT 
Returns the dot product of vectors [R1 R2 R3] and [R4 R5 R6]. 
DOT([2 3 4],[5 2 1]) = 8 
56 
CROSS 
Returns the cross product of vectors [R1 R2 R3] and [R4 R5 R6] in [X Y Z]. 
CROSS([2 3 4],[5 2 1]) = [11 18 19] 
57 
STO REGS 
Store primary registers R0...R9 in extended registers starting at R.x (x = 0...99). 

58 
RCL REGS 
Load primary registers R0...R9 from extended registers starting at R.x (x = 0...99). 

59 
XCH REGS 
Exchange primary registers R0...R9 with extended registers starting at R.x (x = 0...99). 

60 
MAT SET 
Set all elements of 3x3 matrix [R1..R9] to x. 
Use with MAT ADD to add a value to all elements of matrix [R.91...R.99]. 
61 
MAT + 
Add x to all elements of 3x3 matrix [R1..R9]. 

62 
MAT × 
Multiply all elements of 3x3 matrix [R1..R9] by x. 

63 
MAT ADD 
Adds 3x3 matrix [R.91..R.99] to [R1..R9]. 

64 
MAT SUB 
Subtracts 3x3 matrix [R.91..R.99] from [R1..R9]. 

65 
MAT MUL 
Replaces 3x3 matrix [R1...R9] with [R1...R9] • [R.91...R.99]. 
({3,4,5},{4,5,6},{5,6,7}) • ({3,4,5},{4,5,6},{5,6,7}) =
({50,62,74},{62,77,92},{74,92,110})

66 
MAT T 
Transposes the 3x3 matrix [R1...R9].
Row1: R1...R3, row2: R4...R6, row3: R7...R9

T({3,4,5},{4,5,6},{5,6,7}) = {3,4,5},{4,5,6},{5,6,7} 
67 
MAT DET 
Returns the determinant of the 3x3 matrix [R1...R9].
Row1: R1...R3, row2: R4...R6, row3: R7...R9 
DET({3,4,5},{4,5,6},{5,6,7}) = 0
Area of triangle with vertices (0,0),(4,0),(4,3):
DET({0,0,1},{4,0,1},{4,3,1}) / 2 = 6.00 
68 
MAT INV 
Inverts the 3x3 matrix [R1...R9].
Row1: R1...R3, row2: R4...R6, row3: R7...R9 
INV({3,4,5},{4,5,6},{5,6,7}) = Error
(Matrix is singular.)

69 
MAT EIG 
Returns in x,y,z the Eigenvalues of the 3x3 matrix [R1...R9].
If t = 1, two Eigenvalues are complex: y + iz, y  iz.
CHOP is applied automatically to the results.
Row1: R1...R3, row2: R4...R6, row3: R7...R9 
EIG({3,4,5},{4,5,6},{5,6,7}) = {15.3899,0.3899,0} 
70 
MAT STO 
Stores the 3x3 matrix [R1...R9] at extended registers [R.91...R.99]. 

71 
MAT RCL 
Retrieves the 3x3 matrix [R1...R9] from extended registers [R.91...R.99]. 

72 
x̂,s EXT 
Returns in X the mean and in Y the standard deviation of all numbers in extended registers R.x..R.y. 

73 
CHOP EXT 
Change absolute values less than 5E10 in extended registers R.x..R.y to 0. 

74 
COPY EXT 
Copies extended registers range R.y...R.z to R.x. 

75 
FILL EXT 
Fills extended registers range R.y...R.z with x. 

76 
FIND EXT 
If flag 9 is cleared: Returns in x the first register number containing x in extended registers range R.y...R.z (1 if not found). Returns in y the number of occurrences of x in the range.
If flag 9 is set: Returns in x the first register number not containing x in extended registers range R.y...R.z (1 if all registers contain x). Returns in y the number of occurrences of values different from x in the range.

Check if registers 40..59 contain only zeros:
40 ENTER 59 ENTER 0 SF 9 FIND EXT x = 1, y = 0: answer is YES x = 44, y = 3: answer is NO
(first diff. value at R.44, 2 more in range) 
77 
MIN EXT 
Returns in x the smallest value in extended registers range R.x...R.y, returns in y the register number. 

78 
MAX EXT 
Returns in x the largest value in extended registers range R.x...R.y, returns in y the register number. 

79 
PRT EXT 
Prints the values in extended registers range R.x...R.y on paper tape. 

80 
RAN# EXT 
Fills extended registers range R.x...R.y with random numbers between 0 and 1. 

81 
RDUP EXT 
Removes duplicate values in extended registers range R.x...R.y. Returns in x,y the range containing all unique values. 

82 
REV EXT 
Reverses the order of values in extended registers range R.x...R.y. 

83 
SORT EXT 
Sorts the values in extended register range R.x...R.y in ascending order. If z = 1, sorts in descending order. 

84 
SUM EXT 
Returns the sum of all values in extended registers range R.x...R.y. 

85 
PLOT 
Prints a "+" at position x on paper tape (x = 0...20). Prints empty line if x is out of range. 

86 
PLOTC 
Prints up to four characters on paper tape, starting at position x (x = 0...20).
Characters are stored as decimal ASCII codes (reduced by 32) in the fractional part of x.
To easily create the argument value, use the builtin TEXT Helper (see below). 
Print "Plot" at position 9: x = 9.48767984
("P" = ASCII 80, minus 32 = 48, "l" = ASCII 108, minus 32 = 76, etc.) 
87 
TEXT 
Print up to 21 characters stored in extended registers R.x...R.x+6.
Format: d.aaabbbccc, 0.aaabbbccc, 0.aaabbbccc etc., where aaa, bbb, ccc = decimal ASCII codes (0 ends string).
Text alignment: left if d < 0, center if d = 0, right if d > 0. d must be singledigit.
To easily create the required values, use the builtin TEXT Helper (see below). 
To print "RPN67 for iPad" centered, store these values in registers 90...95:
0.082080078, 0.045054055, 0.032102111, 0.114032105, 0.080097100, 0. Set x = 90, execute TEXT. Change the integer part of R.90 for different alignments. 
88 
PRT FRAC 
Prints the fractional part of x as an integer. The number of digits is defined by the DSP setting. Leading zeros are added if necessary. The sign of x is preserved.
Ignored if display mode is not FIX, or if the absoulute value of x is 1E10 or larger. Setting DSP 0 results in an empty line. 
PRT FRAC(3.1416) = 1416 (DSP 4)
PRT FRAC(445566.789) = 007890 (DSP 6)
PRT FRAC(445566.789) = 8 (DSP 1)
PRT FRAC(0.000236) = 00024 (DSP 5)

89 
PRT PWR 
Turns printer power OFF or ON according to x.
0: turn power OFF
1: turn power ON
1: turn power ON and show printer (RPN67 Pro and SD)
Returns current status if x is not 0 or ±1. 
x = 0: turn printer power OFF
x = 1: turn printer ON and show it 
90 
PRT MODE 
Sets printer mode according to x = m.csdf:
m: 1 = MAN, 2 = TRACE, 3 = NORM.
If m is negative, negative results are printed in red.
c: 0..9 = color (see command SYS/INFO below)
s: printer refresh control: (ignored on RPN67 SD)
0 = normal
1 = no printer updates until program has stopped running
d: don't print decimal point if last in string
0 = normal
1 = trailing decimal point is suppressed
f: dotmatrix font in vintage mode
0 = off
1 = on
Returns current mode for illegal values of m.csdf, e.g. 0. 
Set printer to MAN mode, print in blue, negative results in red:
1.2 PRT MODE
To toggle negativered printing:
0 PRT MODE CHS PRT MODE
To turn on DP suppression (if off):
0 PRT MODE 0.001 CHG MAG PRT MODE
To turn off DP suppression (if on):
0 PRT MODE 0.001 CHG MAG PRT MODE
To turn vintage mode dotmatrix font on (if off):
0 PRT MODE 0.0001 CHG MAG PRT MODE

91 
DSP MODE 
Sets display mode according to x = m.ds:
m: 1 = FIX, 2 = SCI, 3 = ENG. If m = 1, don't show thousands separators.
d: number of digits
s: integer/fractional part separating character:
0 = auto (according to region defined for the device)
1 = "." (separator changed to "," if necessary)
2 = "," (separator changed to "." if necessary)
Returns current mode for illegal values of m.cs, e.g. 0. 
To toggle thousands separators display:
FIX 0 DSP MODE CHS DSP MODE

92 
TRIG MODE 
Sets trigonometric mode according to x: 1 = DEG, 2 = RAD, 3 = GRD.
Returns current trigonometric mode for any other value of x, e.g. 0. 

93 
CLR F49 
Clears flags 4 through 9. 

94 
CLR ∑ 
Clears the statistics registers. 

95 
CLR TAPE 
Inserts a new roll of paper.. 

96 
SOLAR 
Returns sunrise (in X), sunset (in Y), sun transit (noon) (in Z), and altitude of the sun (in T) for a given location, date and time.
Inputs:
R0 = year (2000 to 6000), R1 = month, R2 = day,
R3 = hour (24hrformat), R4 = minutes, R5 = seconds, (for altitude)
R6 = time zone (negative if west),
R7 = longitude (decimal degrees), R8 = latitude (decimal degrees)
Note: SOLAR accepts additional parameters and returns much more information  see box below. 
Get sun position data for Salem, OR, on Nov 30, 2013, 12 a.m.
Longitude is 123° 2' W, latitude is 44° 56' N,. Time zone is UTC minus 8.
f CLREG 2013 STO 0 11 STO 1 30 STO 2
12 STO 3
8 STO 6 123.02 →H STO 7
44.56 →H STO 8 OP SOLAR
x = 7.4855 = 7:29:08 (sunrise)
y = 16.5489 = 16:32:56 (sunset)
z = 12.0161 = 12:00:58 (noon)
t = 23.3026° = 23°18'09" (altitude at 12 a.m.)

97 
SYS/INFO 
Sets or returns system settings, depending on the value x. Accepted values are:
1: Get current printer color
0...9: Set printer color to x
10: Prints the locations of all labels in the current program, as well as the status of flags F0...F9. Returns in x the number of unused labels.
11: Same as 10 with printout suppressed.
20: Prints breakpoints information. Returns in x the number of stored breakpoints.
21: Same as 20 with printout suppressed.
30: Prints and returns in x the number of free program steps.
31: Same as 30 with printout suppressed.
40: Turn large digits off. (RPN67 SD: Normal display mode)
41: Turn large digits on. (RPN67 SD: Highcontrast display mode)
80: Returns location data. X: latitude, Y: longitude, Z: altitude (in meters), T: current system time zone (in days, including DST)
90: Prints and returns in x the battery level (in %).
91: Same as 90 with printout suppressed.
98: Prints and returns in x the version number of RPN67/97. The exponent shows the calculator type (67 or 97.) Tip: use EXP/MANT to separate the values.
99: Same as 98 with printout suppressed.
100: Turn turbo mode off.
101: Turn turbo mode 1 on. This will suppress display and register updates while the program is running. Very useful for expediting timeconsuming calculations.
A red flash symbol in the display indicates that turbo mode is enabled. It turns green while the program is running.
Output is not suppressed for printing or while pausing. Turbo mode ends automatically when program execution is stopped.
102: Turn turbo mode 2 on. Same as mode 1, but turbo mode does not end automatically when program execution is stopped.
It must be turned off by issuing SYS/INFO command 100, or by tapping RTN when the program is not running (i.e. the flash symbol is shown in red.)
(Note that turbo mode is ignored on RPN67 SD, as it serves no purpose on the iPhone.)

Printer colors:
0 = black, 1 = gray
2 = blue, 3 = light blue
4 = green, 5 = light green
6 = red, 7 = light red
8 = purple, 9 = light purple

98 
NUM CPRS 
x = 0: Uncompress memory by storing numbers in one step per digit.
x = 1: Compress program memory by storing numbers in a single step.
This command is not programmable. 

99 
EXEC FN 
Execute currently defined function.
Longpress to see available functions.
See description below. 
To execute function #300:
300 STO FN
OP EXEC FN 