Hi everyone,

I learned recently that the old TI-83 Plus and TI-84 Plus calculators are programmable in Z80 assembly language. I created this project to learn how to program them.

RPN83P is an RPN (Reverse Polish Notation) calculator app for the TI-83 Plus and the TI-84 Plus. The app is inspired mostly by the HP-42S calculator, with some sprinkles of older HP calculators like the HP-12C and the HP-15C. The RPN83P is a flash application that consumes one page (16 kB) of flash memory. It consumes a small amount of TI-OS RAM: 2 list variables named REGS and STK which are 240 bytes and 59 bytes respectively.

Here is a quick summary of its features:

Here are some missing features which may be added in the future:

The Project Home is here: https://github.com/bxparks/rpn83p

Download the latest rpn83p.8xk binary (v0.4.0 as of this post) from:

* GitHub releases page: https://github.com/bxparks/rpn83p/releases

* Cemetech Downloads: http://ceme.tech/DL2376

If you try it, I'd appreciate any feedback.

Thanks,

Brian

I learned recently that the old TI-83 Plus and TI-84 Plus calculators are programmable in Z80 assembly language. I created this project to learn how to program them.

RPN83P is an RPN (Reverse Polish Notation) calculator app for the TI-83 Plus and the TI-84 Plus. The app is inspired mostly by the HP-42S calculator, with some sprinkles of older HP calculators like the HP-12C and the HP-15C. The RPN83P is a flash application that consumes one page (16 kB) of flash memory. It consumes a small amount of TI-OS RAM: 2 list variables named REGS and STK which are 240 bytes and 59 bytes respectively.

Here is a quick summary of its features:

- traditional 4-level RPN stack (X, Y, Z, T registers)

- support for lastX register

- 25 storage registers (STO 00, RCL 00, ..., STO 24, RCL 24)

- hierarchical menu system, inspired by the HP-42S

- support for all math functions with dedicated buttons on the TI-83 Plus and TI-84 Plus

- arithmetic: /, *, -, +

- trigonometric: SIN, COS, TAN, etc.

- 1/X, X^2, 2ND SQRT

- ^ (i.e. Y^X),

- LOG, 10^X, LN, e^X

- constants: pi and e

- arithmetic: /, *, -, +
- additional menu functions:

- %, %CH, GCD, LCM, PRIM (is prime)

- IP (integer part), FP (fractional part), FLR (floor), CEIL (ceiling), NEAR (nearest integer)

- ABS, SIGN, MOD, MIN, MAX

- probability: PERM, COMB, N!, RAND, SEED

- hyperbolic: SINH, COSH, TANH, etc.

- angle conversions: >DEG, >RAD, >HR, >HMS, P>R, R>P

- unit conversions: >C, >F, >km, >mi, etc

- base conversions: DEC, HEX, OCT, BIN

- bitwise operations: AND, OR, XOR, NOT, NEG, SL, SR, RL, RR, B+, B-, B*, B/, BDIV

- %, %CH, GCD, LCM, PRIM (is prime)
- various display modes

- RAD, DEG

- FIX (fixed point 0-9 digits)

- SCI (scientific 0-9 digits)

- ENG (engineering 0-9 digits)

- RAD, DEG

Here are some missing features which may be added in the future:

- statistics functions (sum, mean, variance, standard deviation)

- complex numbers

- vectors and matrices

- keystroke programming

The Project Home is here: https://github.com/bxparks/rpn83p

Download the latest rpn83p.8xk binary (v0.4.0 as of this post) from:

* GitHub releases page: https://github.com/bxparks/rpn83p/releases

* Cemetech Downloads: http://ceme.tech/DL2376

If you try it, I'd appreciate any feedback.

Thanks,

Brian