mirror of
https://github.com/louisrubet/rpn
synced 2024-11-17 07:47:50 +01:00
113 lines
3.3 KiB
Text
113 lines
3.3 KiB
Text
========================================================================
|
|
Reverse Polish Notation language
|
|
Inspired by Hewlett-Packard RPL language
|
|
HP28S user manual is provided as a reference
|
|
========================================================================
|
|
|
|
This project plans to create a clone of HP RPN calculator language,
|
|
including at least stack, store, branch, test, trig and logs commands
|
|
of HP28S RPL implementation.
|
|
|
|
Following objects are managed: scalars, symbols, binaries, strings,
|
|
programs.
|
|
|
|
Notes:
|
|
- Under Linux x86_64, floating representation is 128-bit (quadruple
|
|
precision format). Thus precision is much better than HP28S.
|
|
|
|
========================================================================
|
|
Here is a list of HP28s reserved words.
|
|
Some new commands are added. They are tagged with (+).
|
|
|
|
Already implemented commands are tagged with (*).
|
|
|
|
GENERAL OPERATIONS
|
|
+(*), -(*), neg(*), *(*), /(*), inv(*)(+), %(*), %CH(*), ^(*),
|
|
sqrt(*)(+), sq(*)(+), test(*)(+)
|
|
|
|
GENERAL (some are 'CURSOR' commands)
|
|
verbose(*)(+), std(*), fix(*), sci(*), version(*)(+), uname(*)(+)
|
|
|
|
STACK
|
|
drop(*), swap(*), roll, dup(*), over, dup2(*), drop2(*), rot(*),
|
|
list->, rolld, pick(*), dupn, dropn, depth(*), ->list, load_stack(+),
|
|
save_stack(+)
|
|
|
|
STORE
|
|
sto(*), rcl(*), purge(*), sto+, sto-, sto*, sto/, sneg, sinv, sconj,
|
|
erase(*)(+), vars(*)(+), load_vars(+), save_vars(+)
|
|
|
|
PROGRAM(+)
|
|
eval(*), load_prog(+), save_prog(+)
|
|
|
|
MEMORY
|
|
mem, menu, order, path, home, crdir, vars, clusr
|
|
|
|
ALGEBRA
|
|
neg(*)(+), colct, expan, size, form, obsub, exsub, taylr, isol, quad,
|
|
show, obget, exget
|
|
|
|
BINARY
|
|
+(*), -(*), *(*), /(*), dec(*), hex(*), oct(*), bin(*), stws, rcws,
|
|
rl, rr, rlb, rrb, r->b(*), b->r(*), sl, sr, slb, srb, asr, and, or,
|
|
xor, not
|
|
|
|
STAT
|
|
∑dat, ∑par, ∑+, ∑-, n∑, cl∑, sto∑, rcl∑, tot, mean, sdev, var, max∑,
|
|
min∑, col∑, corr, cov, lr, predev, utpc, utpf, utpn, utpt, comb, perm
|
|
|
|
PRINT
|
|
pr1, prst, prvar, prlcd, cr, trac, prstc, prusr, prmd
|
|
|
|
STRING
|
|
+(*), ->str, str->, chr, num, ->lcd, lcd->, pos, sub, size, disp
|
|
|
|
CONTRL
|
|
sst, halt, abort, kill, wait, key, bepp, cllcd, disp, clmf, errn,
|
|
errm
|
|
|
|
BRANCH
|
|
if(*), iferr, then(*), else(*), end(*), start(*), for(*), next(*),
|
|
step(*), ift, ifte, do, until, end, while, repeat, end
|
|
|
|
TEST
|
|
!=(*), >(*), >=(*), <(*), <=(*), sf, cf, fs?, fc?, fs?c, fc?c, and(*),
|
|
or(*), xor(*), not(*), same(*), ==(*), stof, rclf, type
|
|
|
|
CATALOG
|
|
next, prev, scan, use, fetch, quit
|
|
|
|
UNITS
|
|
convert
|
|
|
|
CURSOR (some of these functions can be found in GENERAL)
|
|
ins, del, ← → ↑ ↓, std, fix, sci, eng, deg, rad, cmd, undo, last, ml,
|
|
rdx, prmd
|
|
|
|
TRIG
|
|
pi(*)(+), sin(*), asin(*), cos(*), acos(*), tan(*), atan(*), p→r, r→p,
|
|
r→c, c→r, arg, →hms, hms→, hms+, hms-, (*)d→r, (*)r→d
|
|
|
|
LOGS
|
|
log(*), alog(*), ln(*), exp(*), lnp1, expm, sinh(*), asinh(*), cosh(*),
|
|
acosh(*), tanh(*), atanh(*)
|
|
|
|
SOLV
|
|
steq, rceq, isol, quad, show, root,
|
|
|
|
PLOT
|
|
ppar, steq, rceq, pmin, pmax, indep, draw, res, axes, centr, *w, *h,
|
|
sto∑, rcl∑, col∑, scl∑, drw∑, cllcd, digtiz
|
|
|
|
CUSTOM
|
|
menu, custom
|
|
|
|
========================================================================
|
|
Other standard files:
|
|
README
|
|
TODO
|
|
|
|
========================================================================
|
|
Other notes:
|
|
|
|
========================================================================
|