db48x/doc/5-Unimplemented.md
Christophe de Dinechin d2394103ad Implement the OBJ→ command
The `OBJ→` explodes an object into its sub-components. The various
sub-components are placed on the stack, and if necessary, information about the
size is places on the first level of the stack.

* Complex numbers are split into real and imaginary part (for rectangular form)
  or modulus and argument (for polar form). The latter is an extension compared
  to classical RPL, which always represent complex numbers in rectangular form.

* Unit objects are split into the value and unit expression. This is a deviation
  from standard RPL, which places a unit object on the first level of the stack.

* Lists, programs and expressions are split into their individual components,
  and the number of components is placed on the first level of the stack. For
  programs, this is an extension of standard RPL. For expressions, this is a
  deviation: HP calculators instead place only the top level object and
  the arity.

* Arrays and vectors are split into their individual components, and the number
  of elements is placed as a list on the first level of the stack. The dimension
  list has one element for vectors, and two for matrices. If a given matrix is
  not rectangular, then the command reports an `Invalid dimension` error.

* Fractions are split into numerator and denominator. This is a deviation from
  the HP50G, which treats fractions as algebraic expressions.

* Text is evaluated as if it had been executed on the command line, in a way
  similar to the `STR→` command.

Fixes: #596

Signed-off-by: Christophe de Dinechin <christophe@dinechin.org>
2023-11-26 22:46:21 +01:00

17 KiB
Raw Blame History

Implementation status

This section documents the implementation status for all HP50 RPL commands as listed in the HP50G Advanced Reference Manual. This is a strict superset of the HP48 implementation.

Implemented commands

The following is a list of the HP50 RPL commands which are implemented in DB48X.

Unimplemented commands

The following is a list of unimplemented HP50 RPL commands, which is a superset of the HP48

commands.

  • ABCUV
  • ACK
  • ACKALL
  • ACOS2S
  • ADDTMOD
  • ADDTOREAL
  • ALGB
  • AMORT
  • ANIMATE
  • ANS
  • APPLY
  • ARC
  • ARCHIVE
  • ARIT
  • ARRY→
  • →ARRY
  • ASIN2C
  • ASIN2T
  • ASN
  • ASR
  • ASSUME
  • ATAN2S
  • ATICK
  • ATTACH
  • AUGMENT
  • AUTO
  • AXL
  • AXM
  • AXQ
  • BAR
  • BARPLOT
  • BASIS
  • BAUD
  • BEEP
  • BESTFIT
  • BINS
  • BLANK
  • BOX
  • BUFLEN
  • C$
  • C2P
  • CASCFG
  • CASCMD
  • CEIL
  • CENTR
  • %CH
  • CHINREM
  • CHOLESKY
  • CHOOSE
  • CHR
  • CIRC
  • CKSM
  • CLEAR
  • CLKADJ
  • CLOSEIO
  • CLUSR
  • CLVAR
  • CMPLX
  • CNRM
  • →COL
  • COL→
  • COL
  • COL+
  • COLCT
  • COLLECT
  • COLΣ
  • COMB
  • CON
  • COND
  • CONIC
  • CONLIB
  • CONST
  • CONSTANTS
  • CORR
  • COV
  • CR
  • CROSS
  • CSWP
  • CURL
  • CYCLOTOMIC
  • CYLIN
  • C→PX
  • DARCY
  • DATE
  • →DATE
  • DATE+
  • DDAYS
  • DECR
  • DEDICACE
  • DEF
  • DEFINE
  • DEGREE
  • DELALARM
  • DELAY
  • DELKEYS
  • DEPND
  • DERIV
  • DERVX
  • DESOLVE
  • DET
  • DETACH
  • DIAG→
  • →DIAG
  • DIAGMAP
  • DIFF
  • DIFFEQ
  • DISPXY
  • DISTRIB
  • DIV
  • DIV2
  • DIV2MOD
  • DIVIS
  • DIVMOD
  • DIVPC
  • dn
  • DOLIST
  • DOMAIN
  • DOSUBS
  • DOT
  • DRAW3DMATRIX
  • DROITE
  • DUPDUP
  • D→R
  • e
  • EDIT
  • EDITB
  • EGCD
  • EGV
  • EGVL
  • ENDSUB
  • EPSX0
  • EQNLIB
  • EQW
  • EQ→
  • ERASE
  • EULER
  • EXLR
  • EXP&LN
  • EXP2HYP
  • EXP2POW
  • EXPANDMOD
  • EXPFIT
  • EXPLN
  • EYEPT
  • F0λ
  • FACTOR
  • FACTORMOD
  • FACTORS
  • FANNING
  • FAST3D
  • FCOEF
  • FDISTRIB
  • FFT
  • FILER
  • FINDALARM
  • FINISH
  • FLASHEVAL
  • FLOOR
  • FONT6
  • FONT7
  • FONT8
  • FONT→
  • →FONT
  • FOURIER
  • FP
  • FREE
  • FREEZE
  • FROOTS
  • FXND
  • GAUSS
  • GBASIS
  • GCD
  • GCDMOD
  • GETI
  • GRAD
  • GRAMSCHMIDT
  • GRAPH
  • GREDUCE
  • GRIDMAP
  • →GROB
  • GROBADD
  • *H
  • HADAMARD
  • HALFTAN
  • HEAD
  • HEADER→
  • →HEADER
  • HERMITE
  • HESS
  • HILBERT
  • HISTOGRAM
  • HISTPLOT
  • HMS
  • HMS+
  • HMS→
  • →HMS
  • HORNER
  • IABCUV
  • IBASIS
  • IBERNOULLI
  • IBP
  • ICHINREM
  • IDN
  • IDIV2
  • IEGCD
  • IFFT
  • ILAP
  • IMAGE
  • INCR
  • INDEP
  • INFORM
  • INPUT
  • INT
  • INTEGER
  • INTVX
  • INVMOD
  • IP
  • IQUOT
  • IREMAINDER
  • ISOL
  • ISOM
  • ISPRIME?
  • I→R
  • JORDAN
  • KER
  • KERRM
  • KEY
  • KEYEVAL
  • →KEYTIME
  • KEYTIME→
  • KGET
  • LABEL
  • LAGRANGE
  • LANGUAGE→
  • →LANGUAGE
  • LAP
  • LAPL
  • LAST
  • LCD→
  • →LCD
  • LCM
  • LCXM
  • LDEC
  • LEGENDRE
  • LGCD
  • LIBEVAL
  • LIBS
  • lim
  • LIMIT
  • LIN
  • ΣLINE
  • LINFIT
  • LININ
  • LINSOLVE
  • LIST→
  • ∆LIST
  • ΠLIST
  • ΣLIST
  • LNAME
  • LNCOLLECT
  • LOCAL
  • LOGFIT
  • LQ
  • LR
  • LSQ
  • LU
  • LVAR
  • MAD
  • MAIN
  • MANT
  • MAP
  • ↓MATCH
  • ↑MATCH
  • MATHS
  • MATR
  • MAX
  • MAXR
  • MCALC
  • MENU
  • MENUXY
  • MERGE
  • MIN
  • MINEHUNT
  • MINIFONT→
  • →MINIFONT
  • MINIT
  • MINR
  • MITM
  • MKISOM
  • MODSTO
  • MODULAR
  • MOLWT
  • MROOT
  • MSGBOX
  • MSLV
  • MSOLVR
  • MULTMOD
  • MUSER
  • →NDISP
  • NDIST
  • NDUPN
  • NEWOB
  • NEXTPRIME
  • NIP
  • NOVAL
  • NSUB
  • NUM
  • NUMX
  • NUMY
  • OLDPRT
  • OPENIO
  • ORDER
  • P2C
  • PA2B2
  • PARITY
  • PARSURFACE
  • PARTFRAC
  • PCAR
  • PCOEF
  • PCONTOUR
  • PCOV
  • PDIM
  • PERINFO
  • PERM
  • PERTBL
  • PEVAL
  • PICK3
  • PICTURE
  • PINIT
  • PIX?
  • PIXOFF
  • PIXON
  • PKT
  • PLOT
  • PLOTADD
  • PMAX
  • PMIN
  • PMINI
  • POLYNOMIAL
  • POP
  • POS
  • POTENTIAL
  • POWEXPAND
  • POWMOD
  • PR1
  • PREDV
  • PREDX
  • PREDY
  • PREVAL
  • PREVPRIME
  • PRLCD
  • PROMPT
  • PROMPTSTO
  • PROOT
  • PROPFRAC
  • PRST
  • PRSTC
  • PRVAR
  • PSDEV
  • PSI
  • Psi
  • PTAYL
  • PTPROP
  • PUSH
  • PUT
  • PUTI
  • PVAR
  • PVARS
  • PVIEW
  • PWRFIT
  • PX→C
  • →Qπ
  • qr
  • QR
  • QUAD
  • QUOT
  • QUOTE
  • QXA
  • RAND
  • RANK
  • RANM
  • RATIO
  • RCEQ
  • RCI
  • RCIJ
  • RCLALARM
  • RCLF
  • RCLKEYS
  • RCLMENU
  • RCLVX
  • RCLΣ
  • RDM
  • RDZ
  • RE
  • RECN
  • RECV
  • REF
  • REMAINDER
  • RENAME
  • REORDER
  • REPL
  • RES
  • RESTORE
  • RESULTANT
  • REVLIST
  • RISCH
  • RKF
  • RKFERR
  • RKFSTEP
  • RL
  • RLB
  • RND
  • RNRM
  • ROMUPLOAD
  • ROW
  • ROW+
  • ROW→
  • →ROW
  • RPL>
  • RR
  • RRB
  • rref
  • RREF
  • RREFMOD
  • RRK
  • RRKSTEP
  • RSBERR
  • RSD
  • RSWP
  • RULES
  • R→D
  • R→I
  • SBRK
  • SCALE
  • SCALEH
  • SCALEW
  • SCATRPLOT
  • SCATTER
  • SCHUR
  • SCLΣ
  • SCONJ
  • SCROLL
  • SDEV
  • SEND
  • SEQ
  • SERIES
  • SERVER
  • SEVAL
  • SHOW
  • SIDENS
  • SIGMA
  • SIGMAVX
  • SIGNTAB
  • SIMP2
  • SIMPLIFY
  • SINCOS
  • SINV
  • SIZE
  • SL
  • SLB
  • SLOPEFIELD
  • SNEG
  • SNRM
  • SOLVE
  • SOLVEQN
  • SOLVER
  • SOLVEVX
  • SORT
  • SPHERE
  • SR
  • SRAD
  • SRB
  • SRECV
  • SREPL
  • START
  • STD
  • STEQ
  • STIME
  • STOALARM
  • STOF
  • STOKEYS
  • STOVX
  • STO+
  • STO
  • STO*
  • STO/
  • STOΣ
  • STREAM
  • STRM
  • STURM
  • STURMAB
  • SUB
  • SUBST
  • SUBTMOD
  • SVD
  • SVL
  • SYSEVAL
  • SYLVESTER
  • SYST2MAT
  • %T
  • TABVAL
  • TABVAR
  • TAIL
  • TAN2CS2
  • TAN2SC
  • TAN2SC2
  • TAYLOR0
  • TAYLR
  • TCHEBYCHEFF
  • TCOLLECT
  • TDELTA
  • TESTS
  • TEVAL
  • TEXPAND
  • TEXT
  • TIME
  • →TIME
  • TINC
  • TLIN
  • TLINE
  • TMENU
  • TOT
  • TRACE
  • TRAN
  • TRANSIO
  • TRIG
  • TRIGCOS
  • TRIGO
  • TRIGSIN
  • TRIGTAN
  • TRN
  • TRNC
  • TRUNC
  • TRUTH
  • TSIMP
  • TSTR
  • TVARS
  • TVM
  • TVMBEG
  • TVMEND
  • TVMROOT
  • UFL1→MINIF
  • UNASSIGN
  • UNASSUME
  • UNBIND
  • UNPICK
  • UNROT
  • UTPC
  • UTPF
  • UTPN
  • UTPT
  • V→
  • →V2
  • →V3
  • VANDERMONDE
  • VAR
  • VARS
  • VER
  • VISIT
  • VISITB
  • VPOTENTIAL
  • VTYPE
  • *W
  • WIREFRAME
  • WSLOG
  • XGET
  • XMIT
  • XNUM
  • XPON
  • XPUT
  • XQ
  • XRECV
  • XRNG
  • XSEND
  • XSERV
  • XVOL
  • XXRNG
  • YRNG
  • YSLICE
  • YVOL
  • YYRNG
  • ZEROS
  • ZFACTOR
  • ZVOL
  • | (Where)
  • ?
  • Σ
  • Σ+
  • Σ–
  • % (Percent)
  •  (Store)
  • ; (Semicolon)

Additional commands

The following commands are unique to DB48X and are not found in any Hewlett-Packard RPL implementation.