RPN-Ti84
Advanced Reverse Polish Notation entry program for the Ti-84+CE calculators
Designed for the UIL Texas Calculator Applications competition, where the raw speed of Reverse Polish Notation combined with the familiarity of a Ti-84+CE can provide a significant competitive advantage.
Arjun's RPN Calculator v2.2 (ASM) - git.io/ti84rpn
Story
The first version of this program was RPN.8xp
, written in TI-BASIC. Unfortunately, it had too much input lag to be usable in a competition setting. I decided that I wanted to write an improved version of it for the 2021 UIL/TMSCA season, and planned to work on it over my spring break before the TMSCA State Meet.
Naturally, I waited until the night before the exam to start working on this program. Considering that I put the finishing touches on it minutes before starting the exam itself, the program worked incredibly well—I saw no crashes, freezes, or any other discernible bugs!
Building and Installing
source env.sh
make # Compiles .8xp file
make install # Transfers to calculator (using TiLP)
Features
Real Arithmetic Functions ![]() |
Scientific Notation ![]() |
---|---|
Constants ![]() |
Degrees/Radians Trigonometry ![]() |
- Infinite stack
- Easy line editing
- Extensible code
- and many more
Keys
Key | Action |
---|---|
1, 2, 3, 4, 5, 6, 7, 8, 9, 0, ., - | Enter digits |
enter | Push current value to stack (Resets stack if it grows to over 99 elements) |
clear | Clear current value, resetting it to zero |
🡰 | Backspace (If entering decimals, clears to integer part) |
🡱 | Pop and discard entry from stack |
+, -, ×, ÷, ^ | Binary arithmetic operations Either pops one entry and uses current value, or pops two entries if current value is empty |
, (or 2nd, aka EE for muscle memory) |
Scientific notation binary operator, i.e. x10^ E.g. 1.23enter6, places 1.23E6 on the stack. |
log, ln, sin, cos, tan, x², x⁻¹ | Unary arithmetic operations Applies either to current value, or top stack entry if current value is empty |
sto🡲 | Stores current value, or top stack entry if current value is empty, in OS variable X |
del | New problem Clears current entry, stack; other settings remain |
mode | Switch between 3-sigfig-scientific-notation and standard view |
2nd^ (π ), 2nd÷ (e ) |
Enter the constants pi or e into the current value Continuing to type digits has strange effects here |
2ndlog (10^ ), 2ndln (e^ ),2ndsin ( sin⁻¹ ), 2ndcos (cos⁻¹ ),2ndtan ( tan⁻¹ ), 2ndx² (√ ) |
More unary arithmetic operations |
2ndsto🡲 (rcl) | Recalls the value of OS variable X into the current value |
2ndapps (angle) | Switch between degrees and radians for trigonometric functions See hint in top right corner of screen |
2nd2nd | Leave "2nd mode" |
y= | About screen |
window | Help screen |
graph, 2ndquit | Exit RPN program |
Note: Most binary operations above are commutative or easy to reverse, except exponentiation. To compute b^a
when a
is before b
on the stack, press ln, ×, 2ndln.
Credits
- CE-Programming/toolchain (
.toolchain/
) - tgrysztar/fasmg (
.fasmg/
)