HP 50g RPL Reference Programmer's guide · 774 commands grouped by function · from the HP 50g Advanced User's Reference

A drawing of the keyboard sits under the navigation bar. Page 1 explains the User RPL language: objects, locals, tests, branching, loops, lists, flags, errors, input/output, menus, debugging — then maps every soft menu, its pages and submenus, and the keys that open them. The following pages index every command in the AUR Command & Function Reference (HP 48gII / 49g+ / 50g) by category and subgroup. Hover any command for its description and type.

Type: Command Function (usable in algebraics) Analytic (has derivative) Operation italic → X alias / same as X
Sources: HP 50g Advanced User's Reference Manual, Ed. 2 (HP, 2009) — ch. 1 RPL Programming, ch. 3 Full Command and Function Reference, app. C–E · HP 48SX Programmer's Reference Manual · J. Dossey, Advanced User-RPL Guide. Commands belonging to more than one topic are listed in each.
Colour keythe machineentry, stack & displayprogrammingmathematicsdata objectssymbolic, solvers & financevariables & memoryinput, output & interfaceplotting & graphicsreference & system
F1AY=F2BWINF3CGRAPHF4D2D/3DF5ETBLSETF6FTABLEAPPSGFILESBEGINMODEHCUSTOMENDTOOLIi|VARJUPDIRCOPYSTO▸KRCLCUTNXTLPREVPASTEHISTMCMDUNDOEVALNPRGCHARS'OMTRWEQWSYMBPMTHCATDELCLEARyxQexLN√xRx2x√ySINSASINΣCOSTACOSTANUATANEEXV10xLOG+/−W=XX<1/xY>÷ZABSARGALPHAUSERENTRY7S.SLVNUM.SLV8EXP&LNTRIG9FINANCETIME×[ ]" "4CALCALG5MATRICESSTAT6CONVERTUNITS( )_1ARITHCMPLX2DEFLIB3#BASE+{ }« »ONCONTOFF0.SPCπ,ENTERANS→NUMHP 50g

The keyboard

Every key does three things. Its own legend is printed on the key; the function you get after the white left-shift is printed in white above-left, after the orange right-shift in orange above-right, and the yellow letter at the key’s corner is what ALPHA types. Press a shift once and it applies to the next key; the annunciator at the top of the display shows which is armed.

then keywhite function — MTH, PRG, CALC, MATRICES, CONVERT… then keyorange function — CAT, CHARS, EQW, UNITS, BASE, TRIG…ALPHA key · ALPHA ALPHAone letter · lock alpha (ALPHA again to leave)ALPHA key · ALPHA keylowercase letter · the symbol printed on the bezelhold + key · hold + keya few extras: +MODE MODES menu, +NXT last menu, +VAR HOME, +EVAL CHARS soft menu, +7 solver soft menu, +9 TIME soft menu, +ENTER exact/approx toggleF1 – F6the soft keys: whatever the six labels at the bottom of the display say — see Soft Menus◀ ▲ ▼ ▶cursor; ▲ on the stack opens the interactive stack, ▼ edits level 1, ◀ shows PICT, ▶ swaps

Drawn from the emulator’s key table (x50ng) and the AUR key-code table; the F-key labels Y= WIN GRAPH 2D/3D TBLSET TABLE are the six plot input forms.

RPL Programmer's Reference

User RPL language constructs — syntax, semantics, idioms

Program Objects

« obj₁ obj₂ … objₙ »program = sequence of objects« → a b 'ABS(a-b)' »with a local-variable structure« ! 2 / » 'HALFFACT' STOstore under a name → run by name
Object inside a programAction when reached
Command / functionExecuted
Number, string, list, program, algebraic, complex, arrayPut on the stack
Global name, unquoted NAMEEvaluated: program → run; name → evaluated; directory → made current; other → put on stack
Global name, quoted 'NAME'Name put on the stack
Local name, unquotedContents put on stack (not evaluated)
Local name, quotedName put on the stack

Comments @ text @ or @ to end of line — stripped when the program is parsed (except inside strings). Line breaks are discarded on ENTER.

Run: VAR-menu key · type name + ENTER · 'NAME' EVAL · program object + EVAL. Stop: CANCEL (ON). Edit: EDIT / EDITB / VISIT / VISITB / Filer. Program-entry mode shows the PRG annunciator; command keys are entered, not executed.

Objects & Delimiters

SyntaxObjectType
3.14 1.E5Real number0
5 -12 (no point)Exact integer (CAS)28
(1,2) '1+2*i'Complex1
"text"String2
[1 2 3] [[1 2][3 4]]Real vector / matrix3
[(1,2) (3,4)]Complex array4
{ 1 "a" X }List5
'NAME' / 'x'Global / local name6 / 7
« … »Program8
'X^2+1' 'A=B'Algebraic (expression / equation)9
#FFh #10d #17o #101bBinary integer10
GROB w h hex…Graphics object11
:tag:objTagged object12
1_m/s 2.5_kgUnit object13
DIR … ENDDirectory15
[['X' 'Y']]Symbolic matrix29
←nameCompiled local name7

Other TYPE numbers: 14 XLIB name · 16 library · 17 backup · 18 built-in function · 19 built-in command · 20 system binary · 21/22 extended real/complex · 23 linked array · 24 character · 25 code · 26 library data · 27 mini font · 30 font · 31 extended object. VTYPE returns −1 if the variable does not exist.

Local Variables

« → n₁ n₂ … nₖ « program » »k objects taken from the stack« → n₁ n₂ … nₖ 'algebraic' »n₁ = deepest, nₖ = level 1« → r '4/3*π*r^3' →NUM »defining procedure runs automatically
  • Locals exist only while the defining procedure runs; never in the VAR menu; faster than globals; no STO/PURGE needed.
  • Available inside nested structures within the same procedure — not inside programs called by name (pass values on the stack instead).
  • Evaluating a local name returns its contents unevaluated — follow with EVAL if it holds a program or algebraic.
  • Compiled locals ←y: visible to any program called within the structure; disappear when the structure ends. « → ←y 'IFTE(←y<0,BELOW,ABOVE)' »
  • 'c' INCR / 'c' DECR work on local or global counters. FOR/STEP counters are locals.
  • LOCAL / UNBIND — algebraic-mode equivalents.

User-defined functions

« → x y 'SQRT(x^2+y^2)' » 'HYP' STOthen 3 4 HYP or 'HYP(3,4)'

A program that is solely a → structure with an algebraic body is a UDF: usable in algebraics, takes symbolic arguments, has a derivative. With a program body it still works from stack or algebraic syntax but has no derivative and must return exactly one result. DEFINE 'HYP(x,y)=SQRT(x^2+y^2)' builds the same thing.

Tests & Logic

a b < 'a<b'→ 1. (true) or 0. (false); order: level 2 test level 1
TestMeaningNotes
== ≠Equal / not equalNames & algebraics give an expression 'X<5' → use →NUM or a conditional (auto-evaluated)
< > ≤ ≥OrderStrings compare alphabetically; lists/programs equal if contents identical
SAMEIdentical objectsNo numeric evaluation; binary integers must match wordsize; else like ==
=Builds an equationNot a test
AND OR XOR NOTLogicAny nonzero = true; infix in algebraics: 'A<B AND C', prefix 'NOT Z≥4'
TYPE VTYPE LININStructure testsDUP TYPE 3 == · 'NAMES' VTYPE -1 == (missing) · 'H+Y^2' 'H' LININ
FS? FC? FS?C FC?CFlag tests?C variants clear the flag after testing

Conditionals

IF test THEN true-clause ENDIF test THEN true-clause ELSE false-clause ENDCASE test₁ THEN clause₁ END test₂ THEN clause₂ END … default-clause ENDtest « true » IFTtest « true » « false » IFTEalso 'IFTE(test,true,false)'

The test-clause is a command sequence (leaves 1/0 on the stack) or an algebraic (auto-evaluated — no →NUM needed). THEN removes the test result. CASE runs the first true clause then skips to the final END; the default clause is optional. IFT/IFTE take objects (usually programs) as clauses; IFTE is also an algebraic function.

« DUP IF 0 > THEN NEG END »« → x « IF 'x>0' THEN NEG END » »« DUP 0 > « NEG » IFT »« → x 'IFTE(x≠0,SIN(x)/x,1)' »« → y « CASE y TYPE 2 SAME THEN y 'STR' STO END y TYPE 5 SAME THEN y 'LIST' STO END "OTHER" END » »

Loops

start finish START clause NEXThidden counter, +1start finish START clause incr STEPincr may be negativestart finish FOR i clause NEXTi is a local variablestart finish FOR i clause incr STEPDO clause UNTIL test ENDtest after body → runs ≥ 1×WHILE test REPEAT clause ENDtest first → may run 0×
  • Definite loops always run at least once. NEXT/STEP compare the counter with finish: continue while ≤ finish (positive step) or ≥ finish (negative step). STEP's argument may be an algebraic/name (auto-evaluated). The FOR counter is purged on exit.
  • END (DO) and REPEAT (WHILE) take the test result; an algebraic there is auto-evaluated.
  • Counters: 'c' INCR / 'c' DECR change the variable and return the new value.
  • Instead of loops: 'Σ(j=1,n,j^2)', SEQ, list ops (ΣLIST, DOLIST, MAP).
« 1 5 FOR j j SQ NEXT »1 4 9 16 25« 1 9 FOR x x SQ 2 STEP »odd squares« 1 SWAP FOR n n n STEP »1 2 4 8 … ≤ n« 1 10 START "ABC" NEXT 10 →LIST »« WHILE DUP 2 MOD 0 == REPEAT 2 / DUP END DROP »« DO 'c' INCR n * 's' STO+ UNTIL s 1000 > END »« 0 1 ROT FOR j j SQ + NEXT »Σ j² without Σ

List Processing

{l₁} … {lₙ} n « prog » DOLISTprog gets the i-th element of each list; results → list{list} n « prog » DOSUBSsliding groups of n; NSUB = position, ENDSUB = # groups{list} « prog » MAPapply to each element (recurses into sublists){list} « 2-arg prog » STREAMfold: (((e₁ e₂ f) e₃ f) …)'f(i)' 'i' start end incr SEQlist of results (obj index start end incr)ΣLIST ΠLIST ∆LISTsum · product · first differencesHEAD TAIL REVLIST SORT AUGMENTfirst · rest · reverse · ascending · concatenateADDelement-wise + ({1 2} {3 4} + concatenates!)

Parallel processing: most one- and two-argument functions applied to a list act element-wise: {1 2 3} SQ → {1 4 9}, {1 2 3} 2 * → {2 4 6}, {1 2} {3 4} ADD → {4 6}. n may be omitted in DOLIST/DOSUBS when prog is a single command or a UDF-shaped program. NSUB/ENDSUB error outside DOSUBS.

{ 1 2 3 } { 4 5 6 } 2 « * » DOLIST→ { 4 10 18 }{ 1 2 3 4 } 2 « - » DOSUBS→ { -1 -1 -1 }{ 5 3 8 } « + » STREAM→ 16'k^2' 'k' 1 5 1 SEQ→ { 1 4 9 16 25 }

Flags

n SF n CF n FS? n FC? n FS?C n FC?Csystem −1…−128 · user 1…128RCLF→ { #sys-lo #usr-lo #sys-hi #usr-hi } 64-bit each; bit 0 = flag ±1 / ±65#n STOF { … } STOFsystem only · system + user
FlagSet means
−1Principal solution only
−2Symbolic constants (π e i MAXR MINR) evaluate to numbers
−3Numerical results (functions of symbolics → numbers)
−17/−18Angle mode: RAD −17 set · DEG both clear · GRAD −18 set
−19→V2 makes a complex instead of a vector
−20 −21 −22Underflow / overflow error · infinite result → MAXR (set)
−40 −41 −42Clock shown · 24-h · date DD.MM
−51Fraction mark is comma
−55Last Arguments disabled
−56 −57Error beep / alarm beep disabled
−60 −61 −62Alpha lock · user-mode lock · user mode on
−63Vectored ENTER (αENTER / βENTER)
−64GETI/PUTI wrapped to first element
−95Algebraic entry mode (clear = RPN)
−103 −105Complex mode · Approximate mode
−117Soft-key menus (clear = choose boxes)
−128All variables real (default); clear allows complex

Default state is clear except −17, −27, −34, −90, −95, −128 and wordsize/base flags −5…−12. Save/restore around a program: RCLF → f « … f STOF » or PUSH/POP.

Error Trapping

IFERR trap-clause THEN error-clause ENDIFERR trap-clause THEN error-clause ELSE normal-clause END"message" DOERRuser error (ERRN = #70000h)#nnnh DOERR n DOERRraise a built-in error; 0 DOERR aborts silentlyERRN ERRM ERR0last error number · message string · clear both

An error inside the trap-clause abandons the rest of that clause and jumps to the error-clause; execution then continues after END. Untrapped errors abort the program and show the message (arguments restored if Last Arguments is enabled). Built-in error numbers: Appendix A of the AUR.

« IFERR WHILE 1 REPEAT Σ+ END THEN "DONE" 1 DISP 1 FREEZE END »add stack items to ΣDAT until an error« DO "KEY IN a AND b" " " INPUT OBJ→ UNTIL IFERR + THEN ERRM 5 DISP 2 WAIT 0 ELSE 1 END END »retry until two numbers were entered« OBJ→ IF 3 == THEN "3 OBJECTS IN LIST" DOERR END »

Input

"prompt" PROMPTmessage in status area; halts; user presses CONT"prompt" "cmdline" INPUT OBJ→prompt in stack area; returns the result string"prompt" { "cmdline" pos opts } INPUTwith options (table below)"title" { fields } { col tabs } { resets } { inits } INFORM→ { vals } 1 | 0"title" { items } npos CHOOSE→ choice 1 | 00 WAIT -1 WAITwait for a key → rc.p (−1 also shows the current menu)KEY→ 0 or rc 1 (poll): DO UNTIL KEY END"msg" CLLCD 3 DISP 2 FREEZE HALTfree-form prompt; resume with CONT
INPUT optionMeaning
"cmdline"Initial command-line text (embedded newlines → multiple rows). Patterns: ":a: :b:" tags, "@comment@", blanks to fill in.
n / {row col}Cursor position; 0 = end of line; negative = replace cursor (else insert)
ALGAlgebraic/Program-entry mode
αAlpha lock on
VVerify result is valid object(s); re-prompt on Invalid Syntax

INFORM field = "Label" or { "Label" "help text" type₁ type₂ … }; { } spans a column. Format col or { col tabs } (defaults 1, 3). Use NOVAL as a place-holder in resets/inits; empty fields return NOVAL. CHOOSE item = obj or { "shown" result }; npos 0 = view only. Both return 0 on CANCEL.

« "Key in a, b" { ":a: :b:" {1 0} V } INPUT OBJ→ TORSA »« "Key in S.S. #" { " - - " -1 } INPUT DUP 1 3 SUB SWAP 8 11 SUB »« "OPTIONS" { { "ADD" 1 } { "VIEW" 2 } } 1 CHOOSE »

Output

obj n DISPshow obj on display line n (1 = top); strings shown without quotesn FREEZEkeep area(s) until a key: 1 status · 2 stack/cmd line · 4 menu (add them)CLLCDblank the stack areaTEXTback to the stack display"msg" MSGBOXmodal message boxx WAITpause x secondsobj tag →TAGlabel a result → tag:obj (tag = string, 'name' or number)obj →STR "Area = " SWAP + 1 DISPlabel as textfreq dur BEEPtone (Hz, seconds)PVIEW →LCDgraphics outputobj {x y} font DISPXYtext at pixel position (font 0/1/2)

Displays made with DISP vanish when the program ends or halts unless FREEZE is used. « … "DONE" 1 DISP 1 FREEZE » is the usual closing idiom.

Menus & Keys

{ "LBL" « action » … } MENUcustom menu, stored in CST (persists){ { "LBL" « act » « act » « act » } } TMENUtemporary menu; plain / left-shift / right-shift actionsmm.pp MENUbuilt-in or library menu mm, page pp0 MENU RCLMENUrestore previous menu · current menu numberobj rc.pf ASNassign object to a user key{ obj rc.pf … } STOKEYS RCLKEYSassign several · recall assignments{ rc.pf … } DELKEYS 'S' DELKEYSdelete some · delete all

Menus set by a program appear only when it halts or ends — use -1 WAIT to show the menu while paused. Menu items may be "label", name, or { "label" action }. Example: 65 MENU "Select Angle Mode" PROMPT.

Key codes rc.pf: row r (1–9), column c (1–6), plane p: 0/1 plain · 2 · 3 · 4 alpha · 5 alpha-left · 6 alpha-right; f = 1 for shift-and-hold. User assignments act in USER / 1-USER mode (flags −61/−62). WAIT returns rc.p; KEY returns rc only.

Every built-in menu — its number, pages, submenus and return keys — is drawn in the Soft Menus section after the guide; the keyboard itself is at the top of the page.

Execution & Debugging

obj EVALevaluate (see Program Objects table)'sym' →NUMforce a numeric resultprog DBUGstart & suspend immediately (HLT annunciator)HALTsuspend here; CONT resumes; KILL cancels all halted programsSST SST↓ NEXTstep over · step into · peek at next stepLASTARGrecover the last command's arguments (flag −55 clear)PUSH … POPsave / restore flags & current path« prog » TEVALrun and return elapsed timeSYSEVAL LIBEVAL FLASHEVAL⚠ direct system access — wrong addresses crash
  • A program is an object: call another program by name → subroutine; recursion is allowed. Locals of the caller are invisible in the callee (except ←compiled locals).
  • Insert HALT to single-step from the middle; remove it afterwards. KILL clears the HLT annunciator.
  • Program-entry: nested « » can be edited on multiple lines; ENTER discards line breaks.

Variables & Storage

obj 'NAME' STO 'NAME' RCLstore · recall (unevaluated)'NAME' PURGE { 'A' 'B' } PURGEdelete one · severalobj 'NAME' STO+ STO- STO* STO/storage arithmetic'NAME' SINV SNEG SCONJ INCR DECRin-place invert · negate · conjugate · ±1'F(x)=x^2+1' DEFINEcreates F as a UDF ('X=5' DEFINE stores 5 in X)'NAME' RENAME 'DIR' CRDIR HOME UPDIRrename · directoriesPATH VARS TVARS ORDER PGDIR CLVARpath · names · by type · reorder · purge dir · clear
Reserved variableHolds
EQ · ΣDAT · ΣPARCurrent equation · statistics matrix · stat parameters
PPAR · VPAR · ZPAR · TPARPlot · 3D view · zoom · table parameters
CST · IOPAR · PRTPAR · ALRMDATCustom menu · I/O · printer · alarm data
Mpar · MHpar · PTPARMultiple-equation solver · periodic table
STARTUP · STARTOFF · STARTERRPrograms run at power-on · power-off · on error
αENTER · βENTERVectored ENTER hooks (flag −63)
TOFF · EXPR · EXITEDAuto-off timeout · EQW expression · exit state
CASDIR: VX MODULO EPS REALASSUME PERIOD PRIMIT CASINFOCAS variable, modulus, epsilon, assumptions…

Algebraic Precedence

#Highest → lowest
1Unit attachment _ (inside: parentheses, ^ bottom-up, * /)
2Parenthesized expressions, innermost first
3Functions with arguments (SIN, LOG, …)
4Factorial !
5Power ^ (right-assoc: 2^2^3 = 2^(2^3)), , XROOT
6Negation, * /, MOD
7+ −
8== ≠ < > ≤ ≥
9AND, NOT
10OR, XOR
11Left argument of | (where)
12=

Same-precedence operators evaluate left to right. Stack syntax vs algebraic syntax: « SQ SWAP SQ + √ »« → x y 'SQRT(x^2+y^2)' ».

Idioms

RCLF → f « … f STOF »preserve & restore all flags« IF DUP TYPE 0 ≠ THEN "Real expected" DOERR END … »argument check« DEPTH 2 < « "Need 2 args" DOERR » IFT »stack-depth guard« WHILE DUP TYPE 3 == REPEAT Σ+ END »consume all vectors on the stack« … "DONE" 1 DISP 1 FREEZE »leave a message on screen« DO UNTIL KEY END DROP »wait for any key, discard its code« 0 → c « WHILE … 'c' INCR 5 ≤ AND REPEAT … END » »bounded loop{ … } « prog » MAP ΣLISTsum of f(x) over a list« → n « IF n 1 ≤ THEN n ELSE n 1 - FIB n 2 - FIB + END » »recursion (stored as FIB)

System RPL — the layer underneath

Everything on this sheet is User RPL — the checked, documented language. Underneath it sits System RPL: the language the ROM itself is written in. Same interpreter, no safety net — entries are called by ROM address, arguments are never checked, counts are 20-bit bints instead of reals — and a typical program runs 3–10× faster. The 50g ships the toolchain: 256 ATTACH wakes the Development Library, MASD (library 257) compiles source with ASM, and the extable library from hpcalc.org gives every entry its name. A wrong word ends in “Try To Recover Memory?” — back up first.

→ The HP 50g System RPL sheet — a programmer’s guide (source format, dispatch, locals, loops, errors) and all 3,260 supported entries with addresses and stack diagrams, from Programming in System RPL (Kalinowski & Dominik, 2nd ed.).

Units — the complete table

UNITS menu 6 (CONVERT) → UNITS, or n MENUkey pressmultiplies by that unit keyconverts the level-1 value to that unit keydivides by that unitin a program key yields '1_unit' CONVERT, yields '1_unit' /

The 16 catalogues

LENGTH (menu 43)UNITS 2 · 43 MENUAREA (menu 44)UNITS 3 · 44 MENUVOLUME (menu 45)UNITS 4 · 45 MENUTIME (menu 46)UNITS 5 · 46 MENUSPEED (menu 47)UNITS 6 · 47 MENUMASS (menu 48)UNITS 7 · 48 MENUFORCE (menu 49)UNITS 8 · 49 MENUENERGY (menu 50)UNITS 9 · 50 MENUPOWER (menu 51)UNITS 10 · 51 MENUPRESSURE (menu 52)UNITS 11 · 52 MENUTEMPERATURE (menu 53)UNITS 12 · 53 MENUELECTRIC CURRENT (menu 54)UNITS 13 · 54 MENUANGLE (menu 55)UNITS 14 · 55 MENULIGHT (menu 56)UNITS 15 · 56 MENURADIATION (menu 57)UNITS 16 · 57 MENUVISCOSITY (menu 58)UNITS 17 · 58 MENU

Every unit, with its exact SI value

All 127 units the 50g knows, from Appendix B of the AUR. Values are exact as printed by HP. Temperature units carry both a scale factor and an offset, which is why °C and °F show two figures — CONVERT handles the offset, but arithmetic on a bare °C value does not.

?undefined · undefined unit°degree · 1.74532925199 ×10⁻² rAampere · 1 Aaare · 100 m²acreacre · 4046.87260987 m²arcminminute of arc · 2.90888208666 ×10⁻⁴ rarcssecond of arc · 4.8481368111 ×10⁻⁶ ratmatmosphere · 101325 kg/m·s²auastronomical unit · 1.495979 ×10¹¹ mbbarn · 1 ×10⁻²⁸ m²barbar · 100000 kg/m·s²bblbarrel · .158987294928 m³Bqbecquerel · 1 1/sBtuinternational table Btu · 1055.05585262 kg·m²/s²bubushel · .03523907 m³Ccoulomb · 1 A·scspeed of light · 299792458 m/s°Cdegree Celsius · 1K or 274.15 Kcalcalorie · 4.1868 kg·m²/s²cdcandela · 1 cdchainchain · 20.1168402337 mCicurie · 3.7 ×10¹⁰ 1/sctcarat · .0002 kgcuUS cup · 2.365882365 ×10⁻⁴ m³dday · 86400 sdBdecibel · 1 (dimensionless value)dyndyne · .00001 kg/m·s²ergerg · .0000001 kg·m²/s²eVelectron volt · 1.60217733 ×10⁻¹⁹ kg·m²/s²Ffarad · 1 A²·s⁴/kg·m²°Fdegrees Fahrenheit · 0.555555555556 K or 255.927777778 Kfathfathom · 1.82880365761 mfbmboard foot · .002359737216 m³fcfootcandle · 10.7639104167 cd·sr/m²Fdyfaraday · 96487 A·sfermifermi · 1 ×10⁻¹⁵ mflamfootlambert · 3.42625909964 cd/m²ftinternational foot · .3048 mftUSsurvey foot · .304800609601 mggram · .001 kggastandard freefall · 9.80665 m/s²galUS gallon · .003785411784 m³
galCCanadian gallon · .00454609 m³galUKUK gallon · .004546092 m³gfgram-force · .00980665 kg·m/s²gmolgram-mole · 1 molgradgradian · 1.57079632679 ×10⁻² rgraingrain · .00006479891 kgGygray · 1 m²/s²Hhenry · 1 kg·m²/A²·s²hHour · 3600 shphorsepower · 745.699871582 kg·m²/s³Hzhertz · 1/sininch · .0254 minH2Oinches of water, 60 oF · 248.84 kg/m·s²inHginches of mercury, 0 oC · 3386.38815789 kg/m·s²Jjoule · 1 kg·m²/s²Kkelvins · 1 Kkgkilogram · 1 kgkipkilopound-force · 4448.22161526 kg·m/s²knotnautical miles per hour · .514444444444 m/skphkilometers per hour · .277777777778 m/slliter · .001 m³lamlambert · 3183.09886184 cd/m²lbavoirdupois pound · .45359237 kglbfpound -force · 4.44822161526 kg·m/s²lbmolpound-mole · 453.59237 mollbttroy pound · .3732417216 kglmlumen · 1 cd·srlxlux · 1 cd·sr/m²lyrlight year · 9.46052840488 ×10¹⁵ mmmeter · 1 mmhomho · 1 A²·s³/kg·m²miinternational mile · 1609.344 mmilmil · .0000254 mminminute · 60 smiUSUS statute mile · 1609.34721869 mmmHgmillimeter of mercury (torr · 133.322368421 kg/m·s²molmole · 1 molmphmiles per hour · .44704 m/sNnewton · 1 kg·m/s²nminautical mile · 1852 mozounce · .028349523125 kgozflUS fluid ounce · 2.95735295625 ×10⁻⁵ m³
ozttroy ounce · .311034768 kgozUKUK fluid ounce · 2.8413075 ×10⁻⁵ m³Ppoise · .1 kg/m·sPapascal · 1 kg/m·s²pcparsec · 3.08567818585 ×10¹⁶ mpdlpoundal · .138254954376 kg·m/s²phphot · 10000 cd·sr/m²pkpeck · .0088097675 m³psipounds per square inch · 6894.75729317 kg·m/s²ptpint · .000473176473 m³qtquart · .000946352946 m³Rroentgen · .000258 A·s/kgrradian · 1 r°Rdegrees Rankine · 0.555555555556 Kradrad · .01 m²/s²rdrod · 5.02921005842 mremrem · .01 m²/s²rpmrevolutions per minute · 60 1/sSsiemens · 1 A²·s³/kg·m²ssecond · 1 ssbstilb · 10000 cd/m²slugslug · 14.5939029372 kgsrsteradian · 1 srStstokes · .0001 m²/sststere · 1 m³Svsievert · 1 m²/s²Ttesla · 1 kg/A·s²tmetric ton · 1000 kgtbsptablespoon · 1.47867647813 ×10⁻⁵ m³thermEEC therm · 105506000 kg·m²/s²tonshort ton · 907.18474 kgtonUklong ton (UK · 1016.0469088 kgtorrtorr (mmHg · 133.322368421 kg/m·s²tspteaspoon · 4.92892159375 ×10⁻⁶ m³uunified atomic mass · 1.6605402 ×10⁻²⁷ kgVvolt · 1 kg·m²/A·s³Wwatt · 1 kg·m/s³Wbweber · 1 kg·m²/A·s²ydinternational yard · .9144 myryear · 31556925.9747 sµmicron · 1 ×10⁻⁶ mÅAngstrom · 1 ×10⁻¹⁰ mohm · 1 kg·m²/A²·s³

Soft Menus

every keyboard menu, its pages and submenus, and the keys that open them — read off ROM 2.15 with flag −117 set

How the soft menus work

A soft menu is the row of six labels across the bottom of the display; F1–F6 press them. A menu with more than six entries has pages: NXT steps forward (and wraps from the last page to the first), NXT (PREV) steps back. Labels ending in a submenu open a deeper menu; the last page of every MTH and PRG submenu ends with a key named for its parent (MTH, PRG, LIST, BRCH…) that takes you back up — the dashed amber lines in the trees. A dotted rule inside a card is a page break: press NXT. Two more ways up: press the parent’s key again (SYMB for MTH), or hold and press NXT for LAST MENU (menu 0). MODE (CUSTOM) and VAR are the two menus you fill yourself.

Flag −117 must be set (MODE → FLAGS → 117 “Soft MENU”, or -117 SF). Out of the box it is clear and the very same keys open a choose box instead: a numbered list where MTH 3 = LIST, PRG 6 = LIST, and so on — the numbers in the trees are those item numbers (F1 = 1 … F6 = 6, next page continues 7…). Either way the menu numbers work from a program: 11 MENU shows MTH LIST, 34 TMENU shows PRG LIST temporarily, 0 MENU restores the last menu.

Working with lists — two menus

SYMB F3 (MTH LIST · 11 MENU)ΔLIST ΣLIST ΠLIST SORT REVLIST ADD — the arithmetic on a whole listEVAL F6 (PRG LIST · 34 MENU)ELEM PROC OBJ→ →LIST SUB REPL — build, split, sliceEVAL F6 F1 (ELEM · 35)GET GETI PUT PUTI SIZE POS · NXT · HEAD TAIL — one element at a timeEVAL F6 F2 (PROC · 36)DOLIST DOSUBS NSUB ENDSUB STREAM REVLIST · NXT · SORT SEQ — apply a program across a listEVAL F5 (PRG TYPE · 33)OBJ→ →LIST also live here, with the other convertersMAP — in no menu at all{ list } « prog » MAP applies a program to every element, but HP gave this CAS-library command no soft-menu slot: find it in the catalog (SYMB CAT) or type it. The menu-reachable cousins are DOLIST / DOSUBS in PRG LIST PROC — and DB48X fixes the omission by putting Map straight in its ListMenuback upNXT then F6 (LIST) from ELEM or PROC; NXT then F6 (PRG) from LIST; SYMB or EVAL from anywhere

Menu labels on the calculator are cut to five characters (REVLI, DOLIS, ENDSU…); the trees spell the full command so you can find it in the index below.

Keys that open a menu

is the white left-shift key, the orange right-shift key — drawn as on the keyboard. Underlined blue opens a soft menu, violet a choose box or form. Rows 5–6 and 10 carry no menus and are left out.

FILESBEGINAPPSCUSTOMENDMODEi|TOOLUPDIRCOPYVARRCLCUTSTO▶PREVPASTENXTCMDUNDOHISTPRGCHARSEVALMTRWEQW'MTHCATSYMBDELCLEARUSERENTRYALPHAS.SLVNUM.SLV7EXP&LNTRIG8FINANCETIME9CALCALG4MATRICESSTAT5CONVERTUNITS6ARITHCMPLX1DEFLIB2#BASE3
hold + MODEMODES soft menu (63)hold + NXTLAST MENUhold + VARHOMEhold + EVALCHARS soft menu (62)hold + 7solver soft menu (74)hold + 9TIME soft menu (167) A … Fthe six PLOT input forms

MTH tree — SYMB

menus 3–21, 176
MTH press SYMB · 3 MENU · NXT wraps to page 1, NXT = PREVVECTRMATRXLISTHYPREALBASENXT▸PROBFFTCMPLXCONSTSPECIVECTRF1 · 4F1 ABSF2 DOTF3 CROSSF4 V→F5 →V2F6 →V3F1 RECT ■F2 CYLINF3 SPHERF6 ↩ MTHMATRXF2 · 5F1 MAKE ▸ 6F2 NORM ▸ 7F3 FACTR ▸ 8F4 COL ▸ 9F5 ROW ▸ 10F6 LSQF1 RSDF2 EGVF3 EGVLF4 →DIAGF5 DIAG→F6 ↩ MTHLISTF3 · 11F1 ΔLISTF2 ΣLISTF3 ΠLISTF4 SORTF5 REVLISTF6 ADDF6 ↩ MTHHYPF4 · 12F1 SINHF2 ASINHF3 COSHF4 ACOSHF5 TANHF6 ATANHF1 EXPMF2 LNP1F6 ↩ MTHREALF5 · 14F1 %F2 %CHF3 %TF4 MINF5 MAXF6 MODF1 ABSF2 SIGNF3 MANTF4 XPONF5 IPF6 FPF1 RNDF2 TRNCF3 FLOORF4 CEILF5 D→RF6 R→DF6 ↩ MTHBASEF6 · 15F1 HEX ■F2 DECF3 OCTF4 BINF5 R→BF6 B→RF1 LOGIC ▸ 16F2 BIT ▸ 17F3 BYTE ▸ 18F5 STWSF6 RCWSF6 ↩ MTHPROBF1 p2 · 13F1 COMBF2 PERMF3 !F4 RANDF5 RDZF1 UTPCF2 UTPFF3 UTPNF4 UTPTF5 NDISTF6 ↩ MTHFFTF2 p2 · 19F1 FFTF2 IFFTF6 ↩ MTHCMPLXF3 p2 · 20F1 REF2 IMF3 C→RF4 R→CF5 ABSF6 ARGF1 SIGNF2 NEGF3 CONJF6 ↩ MTHCONSTF4 p2 · 21F1 eF2 2.718…F3 iF4 (0,1)F5 πF6 3.141…SPECIF5 p2 · 176F1 GAMMAF2 PSIF3 PsiF6 ↩ MTH

PRG tree — EVAL

menus 22–73, 94–95
PRG press EVAL · 22 MENU · NXT wraps to page 1, NXT = PREVSTACKMEMBRCHTESTTYPELISTNXT▸GROBPICTCHARSMODESINOUTNXT▸TIMEERRORRUNSTACKF1 · 73F1 DUPF2 SWAPF3 DROPF4 OVERF5 ROTF6 UNROTF1 ROLLF2 ROLLDF3 PICKF4 UNPICKF5 PICK3F6 DEPTHF1 DUP2F2 DUPNF3 DROP2F4 DROPNF5 DUPDUPF6 NIPF1 NDUPNF6 ↩ PRGMEMF2 · 70F1 PURGEF2 MEMF3 BYTESF4 NEWOBF5 DIR ▸ 71F6 ARITH ▸ 72F1 ARCHIVEF2 RESTOREF6 ↩ PRGBRCHF3 · 23F1 IF ▸ 24F2 CASE ▸ 25F3 START ▸ 26F4 FOR ▸ 27F5 DO ▸ 29F6 WHILE ▸ 31F1 IFTF2 IFTEF6 ↩ PRGIFF1 · 24F1 IFF2 THENF3 ELSEF4 ENDF6 ↩ BRCHTESTF4 · 32F1 ==F2F3 <F4 >F5F6F1 ANDF2 ORF3 XORF4 NOTF5 SAMEF6 TYPEF1 SFF2 CFF3 FS?F4 FC?F5 FS?CF6 FC?CF1 LININF6 ↩ PRGTYPEF5 · 33F1 OBJ→F2 →ARRYF3 →LISTF4 →STRF5 →TAGF6 →UNITF1 C→RF2 R→CF3 NUMF4 CHRF5 DTAGF6 EQ→F1 TYPEF2 VTYPEF6 ↩ PRGLISTF6 · 34F1 ELEM ▸ 35F2 PROC ▸ 36F3 OBJ→F4 →LISTF5 SUBF6 REPLF6 ↩ PRGELEMF1 · 35F1 GETF2 GETIF3 PUTF4 PUTIF5 SIZEF6 POSF1 HEADF2 TAILF6 ↩ LISTPROCF2 · 36F1 DOLISTF2 DOSUBSF3 NSUBF4 ENDSUBF5 STREAMF6 REVLISTF1 SORTF2 SEQF6 ↩ LISTGROBF1 p2 · 37F1 →GROBF2 BLANKF3 GORF4 GXORF5 SUBF6 REPLF1 →LCDF2 LCD→F3 SIZEF4 ANIMATEF6 ↩ PRGPICTF2 p2 · 38F1 PICTF2 PDIMF3 LINEF4 TLINEF5 BOXF6 ARCF1 PIXONF2 PIXOFFF3 PIX?F4 PVIEWF5 PX→CF6 C→PXF6 ↩ PRGCHARSF3 p2 · 62F1 SUBF2 REPLF3 POSF4 SIZEF5 NUMF6 CHRF1 OBJ→F2 →STRF3 HEADF4 TAILF5 SREPLF6 ↩ PRGMODESF4 p2 · 63F1 FMT ▸ 64F2 ANGLE ▸ 65F3 FLAG ▸ 66F4 KEYS ▸ 67F5 MENU ▸ 68F6 MISC ▸ 69F6 ↩ PRGINF5 p2 · 39F1 INFORMF2 NOVALF3 CHOOSEF4 INPUTF5 KEYF6 WAITF1 PROMPTF6 ↩ PRGOUTF6 p2 · 40F1 PVIEWF2 TEXTF3 CLLCDF4 DISPF5 FREEZEF6 MSGBOXF1 BEEPF6 ↩ PRGTIMEF1 p3 · 94F1 DATEF2 →DATEF3 TIMEF4 →TIMEF5 TICKSF6 ALRM ▸ 95F1 DATE+F2 DDAYSF3 →HMSF4 HMS→F5 HMS+F6 HMS−F1 TSTRF2 CLKADJF6 ↩ PRGERRORF2 p3 · 61F1 DOERRF2 ERRNF3 ERRMF4 ERR0F5 LASTARGF6 IFERR ▸ 60F6 ↩ PRGRUNF3 p3 · 41F1 DBUGF2 SSTF3 SST↓F4 NEXTF5 HALTF6 KILLF1 OFFF6 ↩ PRG

The other keyboard menus

key · menu number
CONVERT 6 · 131UNITS BASE TRIG REWRITE MATRIX — each opens the -key menu of the same name (42 168 140 172 173) UNITS 6 · 42TOOLS LENG AREA VOL TIME SPEED ⏎ MASS FORCE ENRG POWR PRESS TEMP ⏎ ELEC ANGL LIGHT RAD VISC · every unit menu (43–59) ends with ↩ UNITS BASE 3 · 168HEX DEC OCT BIN R→B B→R ⏎ LOGIC BIT BYTE · STWS RCWS · LOGIC/BIT/BYTE (169–171) end with ↩ BASE ARITH 1 · 125INTEGER POLY MODULO PERMUTATION DIVIS FACTORS ⏎ LGCD PROPFRAC SIMP2 · submenus 127 126 128 174 CMPLX 1 · 130ARG ABS CONJ i IM NEG ⏎ RE SIGN CALC 4 · 123DERIV LIMIT DIFF GRAPH DERVX INTVX · submenus 162 163 164 177 ALG 4 · 124COLLECT EXPAND FACTOR LNCOLLECT LIN PARTFRAC ⏎ SOLVE SUBST TEXPAND MATRICES 5 · 129CREATE OPER FACTOR QUADF LIN-S LINAP ⏎ EIGEN VECTOR · CREATE (146) has 3 pages and ends with ↩ MATRX S.SLV 7 · 120DESOLVE ISOL LDEC LINSOLVE SOLVE SOLVEVX ⏎ ZEROS EXP&LN 8 · 121EXPLN EXPM LIN LNCOLLECT LNP1 TEXPAND ⏎ TSIMP TRIG 8 · 122HYP ACOS2S ASIN2C ASIN2T ATAN2S HALFTAN ⏎ SINCOS TAN2SC TAN2SC2 TCOLLECT TEXPAND TLIN ⏎ TRIG TRIGCOS TRIGSIN TRIGTAN TSIMP · HYP (161) ends with ↩ TRIG SYMB · 143ALG ARITH CALC GRAPH SOLVE TRIG ⏎ EXPLN · each (151 134 152 153 154 139 155) ends with ↩ SYMB TOOLEDIT VIEW RCL STO▶ PURGE CLEAR ⏎ CASCMD HELP VAR · 2your variables in the current directory; VAR = UPDIR CST MODE · 1the custom menu in variable CST (empty until you build one — see Menus & Keys) LIB 2 · 111attached libraries; empty on a clean calculator MODES hold +MODE · 63FMT ANGLE FLAG KEYS MENU MISC (64–69) — same as PRG NXT MODES CHARS hold +EVAL · 62the PRG CHARS soft menu (plain EVAL opens the character browser instead) solver hold +7 · 74ROOT DIFFEQ POLY SYS TVM (75–79) — the 48-style soft-menu solver; plain 7 is a choose box TIME tools hold +9 · 167the time soft menu; plain 9 is a choose box choose boxes onlyAPPS · 7 NUM.SLV · 5 STAT · 9 TIME · 9 FINANCE (input form) · SYMB CAT · EVAL CHARS — no soft-menu form, NXT does nothing

Number after the name = argument for MENU / TMENU. ⏎ = next page (NXT). Sources: HP 50g AUR appendices G (keyboard shortcuts), H (menu-number table), I (command menu paths); menu contents checked on ROM 2.15.

Command Reference

774 commands · 25 categories · hover for details

Stack

24

Duplicate & Drop

DUPDuplicate Object
DUP2Duplicate 2 Objects
DUPNDuplicate n Objects
DUPDUPDuplicate Twice
NDUPNDuplicate n Times
DROPDrop Object
DROP2Drop 2 Objects
DROPNDrop n Objects
;Drop Safe
CLEARClear

Reorder

SWAPSwap Objects
OVEROver
ROTRotate Objects
UNROTReverse Rotate
ROLLRoll Objects
ROLLDRoll Down
PICKPick Object
PICK3Copy Level 3
UNPICKReplace Level n
NIPDrop Level 2

Inspect & History

DEPTHDepth
LASTARGLast Arguments
LASTLast Arguments → LASTARG
ANSRecall History Answer

Arithmetic

74

Basic

+Add
-Subtract
*Multiply
/Divide
^Power
Square Root
SQSquare
INVInverse (1/x)
NEGNegate
XROOTxth Root of y

Sign & Magnitude

ABSAbsolute Value
SIGNSign
MAXMaximum
MINMinimum
MODModulo

Parts & Rounding

IPInteger Part
FPFractional Part
FLOORFloor
CEILCeiling
RNDRound
TRNCTruncate
MANTMantissa
XPONExponent

Percent

%Percent
%CHPercent Change
%TPercent of Total

Exponential & Log

EXPExponential
LNNatural Logarithm
LOGCommon Logarithm
ALOGCommon Antilogarithm
EXPMExponential Minus 1
LNP1Natural Log of x Plus 1

Trigonometric

SINSine
COSCosine
TANTangent
ASINArc Sine
ACOSArc Cosine
ATANArc Tangent

Hyperbolic

SINHHyperbolic Sine
COSHHyperbolic Cosine
TANHHyperbolic Tangent
ASINHArc Hyperbolic Sine
ACOSHInverse Hyperbolic Cosine
ATANHArc Hyperbolic Tangent

Angle & HMS

D→RDegrees to Radians
R→DRadians to Degrees
→HMSDecimal to HMS
HMS→HMS to Decimal
HMS+HMS Plus
HMS–HMS Minus

Special Functions

!Factorial (Gamma)
FACTFactorial (Gamma) → !
GAMMAGamma Function
PSIPolygamma
PsiDigamma
COMBCombinations
PERMPermutations

Random

RANDRandom Number
RDZRandomize
RANMRandom Matrix

Constants

πPi
ee
ii
MAXRMaximum Real
MINRMinimum Real
Infinity
?Undefined

Numeric ↔ Exact

→NUMEvaluate to Number
XNUMTo Numeric
XQTo Rational
→QTo Quotient
→QπTo Quotient Times π
R→IReal to Integer
I→RInteger to Real

Integers & Modular

29

Number Theory

GCDGreatest Common Divisor
LCMLeast Common Multiple
IEGCDExtended GCD (int)
IABCUVInteger Bézout Solve
ICHINREMChinese Remainder (int)
CHINREMChinese Remainder (poly)
IDIV2Integer Div & Remainder
IQUOTInteger Quotient
IREMAINDERInteger Remainder
EULEREuler Totient φ(n)
PA2B2Prime → a²+b²
IBERNOULLIBernoulli Number

Primes & Factors

ISPRIME?Prime Test
NEXTPRIMENext Prime
PREVPRIMEPrevious Prime
FACTORSPrime Factors
DIVISList of Divisors

Modular Arithmetic

MODSTOSet Modulus
ADDTMODModular Add
SUBTMODModular Subtract
MULTMODModular Multiply
DIVMODModular Divide
POWMODModular Power
INVMODModular Inverse
EXPANDMODModular Expand
FACTORMODModular Factorize
GCDMODModular GCD
DIV2MODModular Euclidean Division
RREFMODModular RREF

Complex Numbers

13

Parts

REReal Part
IMImaginary Part
ARGArgument
CONJConjugate
ABSAbsolute Value
SIGNSign

Convert

R→CReal to Complex
C→RComplex to Real
→V2Stack → Vector/Complex
V→Vector/Complex → Stack

Coordinate Mode

RECTRectangular Mode
CYLINCylindrical Mode
SPHERESpherical Mode

Vectors & Matrices

82

Create & Convert

→ARRYStack to Array
ARRY→Array to Stack
→V2Stack → Vector/Complex
→V3Stack to 3-Element Vector
V→Vector/Complex → Stack
CONConstant Array
IDNIdentity Matrix
RDMRedimension Array
RANMRandom Matrix
HILBERTHilbert Matrix
VANDERMONDEVandermonde Matrix
LCXMBuild Matrix from Program
AXLArray ↔ List
AXMNumeric → Symbolic Matrix

Elements

GETGet Element
GETIGet and Increment Index
PUTPut Element
PUTIPut and Increment Index
SIZESize

Rows & Columns

→ROWMatrix to Rows
ROW→Rows to Matrix
ROW+Insert Row
ROW–Delete Row
RSWPRow Swap
RCIMultiply Row by Constant
RCIJAdd Multiplied Row
→COLMatrix to Columns
COL→Columns to Matrix
COL+Insert Column
COL–Delete Column
CSWPColumn Swap
→DIAGMatrix Diagonal to Array
DIAG→Vector to Matrix Diagonal

Products & Norms

DOTDot Product
CROSSCross Product
HADAMARDHadamard Product
ABSAbsolute Value
CNRMColumn Norm
RNRMRow Norm
SNRMSpectral Norm
SRADSpectral Radius
CONDCondition Number
TRACEMatrix Trace
DETDeterminant
RANKMatrix Rank
TRNTranspose Matrix
TRANTranspose (no conjugate) → TRN

Decompositions

LULU Decomposition
LQLQ Factorization
QRQR Factorization
qrqr Factorization (square)
SVDSingular Value Decomposition
SVLSingular Values
SCHURSchur Decomposition
CHOLESKYCholesky Factorization
EGVEigenvalues and Eigenvectors
EGVLEigenvalues
JORDANJordan Decomposition
PCARCharacteristic Polynomial
PMINIMinimal Polynomial
DIAGMAPApply Function to Diagonalizable Matrix
MADMatrix Adjoint & Details

Linear Systems

LSQLeast Squares Solution
RSDResidual
REFRow Echelon Form
RREFReduced Row Echelon
rrefRREF with Pivots
LINSOLVESolve Linear System
SYST2MATSystem → Matrix

Vector Spaces

BASISBasis of Subspace
IBASISIntersection Basis
KERKernel Basis
IMAGEImage Basis
GRAMSCHMIDTGram-Schmidt Orthonormalize

Quadratic Forms & Isometries

AXQMatrix → Quadratic Form
QXAQuadratic Form → Matrix
GAUSSDiagonalize Quadratic Form
SYLVESTERSylvester Decomposition
ISOMIsometry Characteristics
MKISOMMake Isometry Matrix

Fourier

FFTDiscrete Fourier Transform
IFFTInverse Discrete Fourier Transform

Lists

25

Build & Split

→LISTStack to List
LIST→List to Stack
OBJ→Object to Stack
AUGMENTConcatenate
REVLISTReverse List
SORTAscending Order Sort

Access

HEADFirst Listed Element
TAILLast Listed Elements
SUBSubset
POSPosition
REPLReplace
SIZESize
GETGet Element
PUTPut Element

Arithmetic

ADDAdd List
ΣLISTList Sum
ΠLISTList Product
∆LISTList Differences

Iteration

DOLISTDo to List
DOSUBSDo to Sublist
MAPMap Program over List
SEQSequential Calculation
STREAMStream Execution
NSUBNumber of Sublist
ENDSUBEnding Sublist

Strings & Tags

14

Strings

→STRObject to String
STR→Evaluate String
CHRCharacter
NUMCharacter Number
SREPLString Find & Replace
C$Counted String Delimiter

Common (list / string)

SUBSubset
POSPosition
REPLReplace
SIZESize
HEADFirst Listed Element
TAILLast Listed Elements

Tagged Objects

→TAGStack to Tag
DTAGDelete Tag

Binary Integers

21

Base

BINBinary Mode
OCTOctal Mode
DECDecimal Mode
HEXHexadecimal Mode

Wordsize & Convert

STWSSet Wordsize
RCWSRecall Wordsize
R→BReal to Binary
B→RBinary to Real

Shift

SLShift Left
SRShift Right
SLBShift Left Byte
SRBShift Right Byte
ASRArithmetic Shift Right

Rotate

RLRotate Left
RRRotate Right
RLBRotate Left Byte
RRBRotate Right Byte

Bitwise Logic

ANDAnd
OROR
XORExclusive OR
NOTNOT

Tests & Logic

16

Comparison

<Less Than
Less Than or Equal
>Greater Than
Greater Than or Equal
==Logical Equality
Not Equal
SAMESame Object

Logic

ANDAnd
OROR
XORExclusive OR
NOTNOT

Conditional Functions

IFTIF-THEN
IFTEIF-THEN-ELSE

Type Tests

TYPEType
VTYPEVariable Type
LININLinear Test

Symbolic Algebra

59

Expand & Collect

EXPANDExpand & Simplify
EXPANExpand Products
COLLECTCollect / Factor
COLCTCollect Terms → COLLECT
FACTORFactorize
DISTRIBDistribute (one step)
FDISTRIBFull Distribution
POWEXPANDPower → Product

Simplify

SIMPLIFYSimplify
SEVALSimplify Sub-expressions
TSIMPSimplify Exp/Ln
TEXPANDExpand Transcendentals
LINLinearize Exponentials
LNCOLLECTCollect Logarithms
EXP2POWExp(Ln) → Power
EXPLNTrig → Exp/Ln

Solve

SOLVESolve
SOLVEVXSolve wrt VX
ZEROSZeros of Function
ISOLIsolate Variable
QUADSolve Quadratic Equation
MSLVMultiple Solve (numeric)
DESOLVESolve ODE
LDECLinear ODE (const coeff)

Substitute & Match

SUBSTSubstitute
|Where
↑MATCHBottom-Up Match and Replace
↓MATCHMatch Pattern Down
SHOWShow Variable
APPLYApply to Arguments
QUOTEQuote Argument

Equations

=Equals
EQ→Equation to Stack
EXLRExtract Left & Right Sides
RATIOPrefix Divide
DEFINEDefine Variable or Function
DEFDefine (algebraic)
FXNDNumerator & Denominator
DROITELine Through Two Points

Trig Rewriting

TRIGExp/Ln → Trig
TRIGCOSSimplify to Cosines
TRIGSINSimplify to Sines
TRIGTANSimplify to Tangents
TLINLinearize Trig
TCOLLECTCollect Trig Products
HALFTANHalf-Angle Tangent Rewrite
SINCOSExp/Ln → Sin/Cos
TAN2SCtan → sin/cos
TAN2SC2tan → sin2x/(1+cos2x)
TAN2CS2tan → (1−cos2x)/sin2x
ACOS2Sacos → asin Rewrite
ASIN2Casin → acos Rewrite
ASIN2Tasin → atan Rewrite
ATAN2Satan → asin Rewrite
EXP2HYPExp → Hyperbolic

Variables

LNAMEVariable Names in Expr
LVARList Variables
STOVXSet CAS Variable
RCLVXRecall CAS Variable

Calculus

33

Derivatives

Derivative
DERIVPartial Derivatives
DERVXDerivative wrt VX
dnDifferential Operator

Integrals

Integral
INTAntiderivative at Point
INTVXAntiderivative wrt VX
RISCHRisch Integration
IBPIntegration by Parts
PREVALDefinite Antiderivative

Sums & Limits

ΣSummation
SIGMADiscrete Antiderivative
SIGMAVXDiscrete Antiderivative wrt VX
limLimit → LIMIT
LIMITLimit

Series

TAYLRTaylor Polynomial
TAYLOR0Taylor at 0 (4th order)
SERIESSeries Expansion
TRUNCTruncate Series
DIVPCSeries Quotient

Vector Calculus

CURLCurl
DIVDivergence
LAPLLaplacian
HESSHessian & Gradient
POTENTIALScalar Potential
VPOTENTIALVector Potential

Transforms

LAPLaplace Transform
ILAPInverse Laplace
FOURIERFourier Coefficient

Function Analysis

DOMAINDomain of Function
TABVARVariation Table
TABVALTable of Values
SIGNTABSign Table

Polynomials

32

Roots & Coefficients

PROOTPolynomial Roots
PCOEFMonic Polynomial Coefficients
PEVALPolynomial Evaluation
PTAYLTaylor Polynomial at a
HORNERHorner Scheme
DEGREEPolynomial Degree
FCOEFRoots/Poles → Rational
FROOTSRoots & Poles

Division & GCD

QUOTPolynomial Quotient
REMAINDERPolynomial Remainder
DIV2Euclidean Division
EGCDExtended GCD (poly)
ABCUVPolynomial Bézout Solve
LGCDGCD of List
RESULTANTResultant
SIMP2Simplify Pair
EPSX0Zero Small Coefficients

Fractions

PARTFRACPartial Fractions
PROPFRACProper Fraction

Gröbner & Interpolation

GBASISGröbner Basis
GREDUCEGröbner Reduce
REORDERReorder Variables
LAGRANGELagrange Interpolation

Special Polynomials

CYCLOTOMICCyclotomic Polynomial
HERMITEHermite Polynomial
LEGENDRELegendre Polynomial
TCHEBYCHEFFTchebycheff Polynomial
STURMSturm Sequences
STURMABSturm Root Count

Permutations

C2PCycles → Permutation
P2CPermutation → Cycles
CIRCCompose Permutations

Solvers & Finance

23

Numeric Solver

ROOTRoot-Finder
SOLVEQNStart Solver for Equation Set
EQNLIBEquation Library
SOLVERSolver Menu
STEQStore in EQ
RCEQRecall from EQ

Multiple-Equation Solver

MSOLVRMultiple-Equation Solver
MROOTMES Root
MINITMES Initialize
MITMMES Menu Item Order
MCALCMES Calculated Var
MUSERMES User Var

Differential Equations (numeric)

RKFRKF Initial-Value Solve
RKFERRRKF Error Estimate
RKFSTEPRKF Next Step
RRKRRK Initial-Value Solve
RRKSTEPRRK Next Step & Method
RSBERRRosenbrock Error Estimate

Finance (TVM)

TVMTVM Menu
TVMROOTTVM Root
TVMBEGPayment at Start of Period
TVMENDPayment at End of Period
AMORTAmortize

Units & Constants

20

Unit Objects

_Unit Attachment
→UNITStack to Unit Object
UVALUnit Value
CONVERTConvert Units
UBASEConvert to SI Base Units
UFACTFactor Unit

Constants Library

CONSTConstant Value
CONLIBOpen Constants Library
CONSTANTSConstants Menu

Physics & Engineering

TDELTATemperature Delta
TINCTemperature Increment
ZFACTORGas Compressibility Z Factor
DARCYDarcy Friction Factor
FANNINGFanning Friction Factor
F0λBlack Body Emissive Power
SIDENSSilicon Intrinsic Density

Periodic Table

PERTBLPeriodic Table
PTPROPElement Property
MOLWTMolecular Weight
PERINFOPeriodic Table Info

Program Control

38

Structure

« »Program Delimiters
RPL>Run RPL in Algebraic

Conditionals

IFIF Conditional Structure
THENTHEN
ELSEELSE
ENDEND
CASECASE Conditional Structure

Definite Loops

STARTSTART Definite Loop Structure
FORFOR Definite Loop Structure
NEXTNEXT
STEPSTEP

Indefinite Loops

DODO Indefinite Loop Structure
UNTILUNTIL
WHILEWHILE Indefinite Loop Structure
REPEATREPEAT
ENDEND

Error Trapping

IFERRIf Error Conditional Structure
DOERRDo Error
ERRNError Number
ERRMError Message
ERR0Clear Last Error Number

Local Variables

Create Local Variables
LOCALCreate Locals (algebraic)
UNBINDRemove LOCAL Variables

Execution

EVALEvaluate Object
SYSEVALEvaluate System Object
LIBEVALEvaluate Library Function
FLASHEVALEvaluate Flash Function
HALTHalt Program
CONTContinue Program Execution
KILLCancel Halted Programs
WAITWait
PUSHSave Flags & Dir
POPRestore Flags & Dir

Debugging

DBUGDebug
SSTSingle Step
SST↓Step Into Subroutine
NEXTNEXT

Flags

8

Set & Clear

SFSet Flag
CFClear Flag

Test

FS?Flag Set?
FC?Flag Clear?
FS?CFlag Set? Clear
FC?CFlag Clear? Clear

Save & Restore

RCLFRecall Flags
STOFStore Flags

Input & Output

26

Input

INPUTInput
PROMPTPrompt
PROMPTSTOPrompt
INFORMInput Form (Dialog Box)
CHOOSEChoose Box
NOVALINFORM Place Holder

Keyboard

KEYKey
KEYEVALEvaluate Key Press
WAITWait
→KEYTIMESet Keytime
KEYTIME→Recall Keytime

Output

DISPDisplay
DISPXYDisplay
MSGBOXMessage Box
CLLCDClear LCD
FREEZEFreeze Display
TEXTShow Stack Display
SCROLLView Object
BEEPBeep

Menus

MENUDisplay Menu
TMENUTemporary Menu
RCLMENURecall Menu Number

User Keys

ASNAssign
STOKEYSStore Key Assignments
RCLKEYSRecall Key Assignments
DELKEYSDelete Key Assignments

Variables & Memory

47

Store & Recall

STOStore
Store
RCLRecall
PURGEPurge
STOREStore (algebraic)
UNASSIGNPurge & Return Values
RENAMERename Object

Storage Arithmetic

STO+Store Plus
STO–Store Minus
STO*Store Times
STO/Store Divide
SINVStore Inverse
SNEGStore Negate
SCONJStore Conjugate
INCRIncrement
DECRDecrement

Directories

HOMEHOME Directory
UPDIRUp Directory
CRDIRCreate Directory
PGDIRPurge Directory
PATHCurrent Path
VARSVariables
TVARSTyped Variables
ORDEROrder Variables
CLVARClear Variables
CLUSRClear Variables → CLVAR
DIRDirectory Structure

Object Info

TYPEType
VTYPEVariable Type
BYTESByte Size
NEWOBNew Object
MEMMemory Available

Ports & Libraries

ARCHIVEArchive HOME
RESTORERestore HOME
FREEFree RAM Card (obsolete)
MERGEMerge RAM Card (obsolete)
PVARSPort-Variables
PINITPort Initialize
LIBSLibraries
ATTACHAttach Library
DETACHDetach Library

Editors

EDITEdit
EDITBEdit Best
VISITEdit Variable
VISITBEdit Variable (best editor)
FILERFile Manager
EQWEquation Writer

Modes & System

31

Number Format

STDStandard Mode
FIXFix Mode
SCIScientific Mode
ENGEngineering Mode

Angle Mode

DEGDegrees
RADRadians Mode
GRADGrads Mode

Coordinate Mode

RECTRectangular Mode
CYLINCylindrical Mode
SPHERESpherical Mode

Fonts

FONT6System Font 6
FONT7System Font 7
FONT8System Font 8
→FONTSet font
FONT→Recall System Font
→MINIFONTSet Minifont
MINIFONT→Recall Minifont
UFL1→MINIFUFL1 → Minifont

Header & Language

→HEADERSet Header Size
HEADER→Recall Header Size
→NDISPSet Program Lines Shown
→LANGUAGESet Language
LANGUAGE→Recall Language

System

OFFOff
VERSIONSoftware Version
VERCAS Version
WSLOGWarmstart Log
ROMUPLOADROM Upload (obsolete)

Easter Eggs

RULESCredits
DEDICACECAS Dedication
MINEHUNTMinehunt Game

Plotting

56

2D Plot Types

FUNCTIONFunction Plot Type
CONICConic Plot Type
POLARPolar Plot Type
PARAMETRICParametric Plot Type
TRUTHTruth Plot Type
BARBar Plot Type
HISTOGRAMHistogram Plot Type
SCATTERScatter Plot Type
DIFFEQDiffEq Plot Type
SLOPEFIELDSlope Field Plot Type

3D Plot Types

FAST3DFast 3D Plot Type
WIREFRAMEWireframe Plot Type
PARSURFACEParametric Surface Plot
PCONTOURContour Plot Type
YSLICEY-Slice Plot Type
GRIDMAPGrid Map Plot Type

Ranges & Axes

XRNGx-Axis Display Range
YRNGy-Axis Display Range
INDEPIndependent Variable
DEPNDDependent Variable
RESResolution
AXESAxes
ATICKAxes Tick-Mark

3D View Volume

XVOLX Volume Coordinates
YVOLY Volume Coordinates
ZVOLZ Volume Coordinates
XXRNGInput Plane X Range
YYRNGInput Plane Y Range
EYEPTEye Point
NUMXNumber of X-Steps
NUMYNumber of Y-Steps

Scaling

AUTOAutoscale
CENTRCenter
SCALEScale Plot
SCALEHMultiply Height
SCALEWMultiply Width
*HMultiply Height → SCALEH
*WMultiply Width → SCALEW
PMINPICT Minimum
PMAXPICT Maximum
PDIMPICT Dimension

Draw

DRAWDraw Plot
DRAXDraw Axes
LABELLabel Axes
ERASEErase PICT
PLOTPlot Setup
PLOTADDAdd to Plot
GRAPHPicture Environment (alias) → PICTURE
PICTUREPicture Environment
PVIEWPICT View
PICTPICT
DRAW3DMATRIXDraw 3D Matrix Plot

Statistical Plots

BARPLOTDraw Bar Plot
HISTPLOTDraw Histogram Plot
SCATRPLOTDraw Scatter Plot
SCLΣScale Sigma

Graphics (PICT / GROB)

21

Primitives

LINEDraw Line
TLINEToggle Line
BOXBox
ARCDraw Arc

Pixels

PIXONPixel On
PIXOFFPixel Off
PIX?Pixel On?

Graphics Objects

→GROBObject to GROB
GROBGROB Delimiter
BLANKBlank Graphics Object
GORGraphics OR
GXORGraphics Exclusive OR
GROBADDStack GROBs Vertically
ANIMATEAnimate
SUBSubset
REPLReplace
SIZESize

Screen

→LCDGROB to LCD
LCD→LCD to GROB

Coordinates

C→PXComplex to Pixel
PX→CPixel to Complex

Statistics

41

Data (ΣDAT)

Σ+Sigma Plus
Σ-Sigma Minus
CLΣClear Sigma
STOΣStore Sigma
RCLΣRecall Sigma
Number of Rows

Summary

TOTTotal
MEANMean
SDEVStandard Deviation
VARVariance
PSDEVPopulation Standard Deviation
PVARPopulation Variance
MAXΣMaximum Sigma
MINΣMinimum Sigma
BINSSort into Frequency Bins

Sums

ΣXSum of x-Values
ΣYSum of y-Values
ΣX^2Sum of Squares of x-Values
ΣY^2Sum of Squares of y-Values
ΣX*YSum of x·y

Columns

XCOLIndependent Column
YCOLDependent Column
COLΣColumn Sigma

Regression

LRLinear Regression
CORRCorrelation
COVCovariance
PCOVPopulation Covariance
ΣLINERegression Formula
PREDXPredicted x-Value
PREDYPredicted y-Value
PREDVPredicted y-Value → PREDY

Curve Fit Model

LINFITLinear Curve Fit
LOGFITLogarithmic Curve Fit
EXPFITExponential Curve Fit
PWRFITPower Curve Fit
BESTFITBest-Fitting Model

Distributions

UTPCUpper Chi-Square Distribution
UTPFUpper F Distribution
UTPNUpper Normal Distribution
UTPTUpper Student’s t Distribution
NDISTNormal Distribution

Time & Alarms

15

Clock

DATEDate
→DATESet Date
TIMETime
→TIMESet System Time
TICKSTicks
CLKADJAdjust System Clock
TSTRDate and Time String

Date Arithmetic

DATE+Date Addition
DDAYSDelta Days

Alarms

STOALARMStore Alarm
RCLALARMRecall Alarm
DELALARMDelete Alarm
FINDALARMFind Alarm
ACKAcknowledge Alarm
ACKALLAcknowledge All Alarms

I/O & Communications

33

Kermit

SENDSend Object
RECVReceive Object
RECNReceive Renamed Object
KGETKermit Get
SERVERServer Mode
FINISHFinish Server Mode
PKTPacket
KERRMKermit Error Message

XModem

XSENDXModem Send
XRECVXModem Receive
XGETXModem Get
XPUTXModem Send
XSERVXModem Server

Serial

OPENIOOpen I/O Port
CLOSEIOClose I/O Port
XMITSerial Transmit
SRECVSerial Receive
BUFLENBuffer Length
SBRKSerial Break
STIMESerial Time-Out

Parameters (IOPAR)

BAUDBaud Rate
PARITYParity
CKSMChecksum
TRANSIOI/O Translation

Printing

PR1Print Level 1
PRSTPrint Stack
PRSTCPrint Stack (Compact)
PRVARPrint Variable
PRLCDPrint LCD
CRCarriage Right
DELAYDelay
OLDPRTOld Printer

Applications

STRMStreamSmart

CAS Menus & Settings

24

CAS Menus

MAINCAS Main Menu
ALGBAlgebra Menu
ARITArithmetic Menu
CMPLXComplex Menu
CONSTANTSConstants Menu
DIFFCalculus Menu
EXP&LNExp & Ln Menu
INTEGERInteger Menu
MATHSMaths Menu
MATRMatrix Menu
MODULARModular Menu
POLYNOMIALPolynomial Menu
REWRITERewrite Menu
SOLVERSolver Menu
TESTSTests Menu
TRIGOTrigonometry Menu
MENUXYCAS Menu Range

Help

CASCMDCAS Command List
HELPCAS Help

Settings & Assumptions

CASCFGReset CAS Settings
ASSUMEAssume Variable Domain
UNASSUMERemove Assumptions
ADDTOREALAssume Real Names
TEVALTimed Evaluate