Reverse Polish Notation Calculator (RPN Calculator) (Program R-Polish) (Program R-Polar)

Version: 1.3 [1393]
Language: TI-Basic
Size: 31 KB (RPN1348), 2.4 KB (θRSTATU), 8.9 KB (θ2PLANET)
Release Date: September 7, 2019
by ShinyGardevoir
Portable: Will require code modifications for compatibility with momochrome calculators and the TI-84 Plus CSE; features would have to be removed/reworked for compatibility to occur.
If any code from this program is used, give credit to ShinyGardevoir, please and thank you.
Report bugs to, and be specific whilst including screen captures.
Compatible OS'es: 5.3.0-5.4.0 (older ones will not work, except maybe 5.2)
Changelog: [Trace][6]

This program uses list RPNR, list RPNA, list RPNC, list RPNI, many letter variables, GDB1, w (sequence equation), Str1, Str2, Str3, and Str4. Make sure none of these are too precious and archived. And Str1/Str4 being something else will cause graphical glitches!
Have your RAM backed up to a computer, and/or copied into groups in the event that the program crashes and the OS restarts.
Another bug: If the registry (list RPNR) is a complex list, even if 4 values are real, some functions will be bugged with an "Error: Data Type". 
	Solution: [Trace][3] should convert the registry back into a real list (will not work if any of the values are actually complex.)
Cesium 3.1.3 should have every user bug fixed, but be cautious.

This program "puts the TI-84 Plus CE into RPN mode". RPN is short for Reverse Polish Notation. 
When loading the program, a menu that nests the controls is now present; use number keys/scroll and [Enter] to check all of the controls. (Quit) quits except if ran from the help menu.
After you input a value, hitting [Enter] stores it to the bottom-most register.
Every time you add a value to the "stack", it goes to the bottom-most register; other values move up by 1. There are a total of 4 registers in the program.
Performing an operation--like "+", "^", and others--takes the mid-bottom register; it gets operated by the bottom register. 
Hitting the operation key would shift the top 2 registers down 1 in the stack, put 0 in the top register, and put the sum/difference/product/quotient in the bottom register.
In visual perspective:
Top:	0
Bottom:	5
- After Hitting "-":
Top: 	0
Bottom: -1

Other functions, like log(, fact( (the n factorial one), etc., simply operate solely on the bottom register, and output errors accordingly. If the TI-84 Plus CE literally outpus an error, simply hit the Quit option.
Inputting a variable from either [VARS], [2nd][/], or [2nd][^] places it in the bottom register.

There is a built-in controls menu, which can be disabled.

[2nd][x⁻¹] goes through the process of exporting the registry to a matrix
[2nd][0] clearly lists the math functions on the home screen that are supported
[2nd][Clear] clears the current registry, prompt may be given (and disabled)
[2nd][Math] tests 2 registers within the current registry
[2nd][Mode] quits the whole program
[2nd][Stat] prompts a list to be recalled to the current registry; must be 4 elements long!
[2nd][Store] replaces current registry with whatever was in list RPNA
[2nd][Vars] or [Alpha][Vars] opens the help menu
[2nd][x²] appends the square root function to the input
[2nd][y=] puts 0 in the top register, and moves the registers down by 1 in the stack. The bottom register will be gone.

[Alpha][Graph] prompts to restart the calculator
[Alpha][(-)] converts percentages via the sub( command; yes, it's an easter egg.
[Alpha][y=] for fraction menu
[Alpha][÷] for modulus operator
[Alpha][x²] for custom root operator (index = MidBottom register ; radicand = Bottom register)
[Alpha][Trace] for a shortcut to the Y-Vars menu
[Alpha][Math] for the randomization feature, moved from the math menu.
[Alpha][Del] allows a reconfiguration of the order of the registers.

[Clear] can back out most menus, typically those without a "Back..." option.
[Clear] clears input in the home screen

[Enter] can navigate through pauses in programming.
[Enter] places the input to the bottom registry, in the home screen

[Math] opens math function menu
[Mode] for Degree/Radian/Real/a+bi/re^(θi)/Func/Par/Pol/Seq/Normal/Sci/Eng mode GUI

[On] can (use caution, however) quit out of the program easily.
[Store] stores current registry to list RPNA
[Trace] opens debug tools

[Vars] opens the variables menu
[Vars][1] loads the Stat Var hook
[Vars][3][5] loads the Planet Var hook

[XTθn] toggles hyperbolic sine/cosine/tangent/their inverses

Stuff like [cos], [sin], and some others, like the functions on the actual keyboard perform the functions on the bottom register and updates the bottom register itself. 

Variables Menu
Supports many scientific constants, all the statistics variables (except some ANOVA( ones and RegEq), some constants in math, and all the Y-Vars.
Credit to the developers of the Mac/iOS app "EduCalc" for all the scientific variables used in the RPN Calculator Variables menu.

Debug Tools--
Edit Register 1-4: Directly edits the register; use [On] to cancel, not [2nd][Mode]. (RAM clear bug may be fixed in Cesium 3.1.3)
Cache Management: Manages cache stored in the registry. Use the number keys to cycle between Enabled/Disabled.
Debug Real Registry: If list RPNR is falsely a complex list, this option should rewrite that list to fix any Data Type errors.
	- Fails if any of the registers are actually complex values.
	- NOTE: Similar commands are run everytime the RPN calculator returns to the home screen, so the whole issue of a false complex list should be fixed. If not, REPORT.
Look closely at Registry: In the instance a complex number is longer than 18 characters, when displayed, this tool will space out the registry virtually, allowing each value in the list to take up 2 lines, to avoid numbers being cut off.
View Data Versions: Lists the values of the many RPN Versions, starting from 1.07
Changelog: Now displays, in program, a changelog of features to the program.
Customize Moving Graphic: Allows a few different designs for the moving graphic that shows when quitt/restarting the program, that you can select by choice. You can also request some of your own by e-mailing me (make sure they're only 8 characters)
Trigger Cache Error: A developer debugging thing.
Load in Spanish: Conviently loads the Spanish version if installed properly. Although Str1 won't change.

Scroll up/down
Log base MidBottom runs logBASE(Bottom register, MidBottom register); answer is pushed up the stack
Randomization will randomize a number between specified bounds and prompt whether or not to add it to the registry (while bumping others up the stack), or replace a given register.
Or Randomization can fill the registry with a random number each.