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 superduel707@gmail.com, 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]

Warnings
--------------------------
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.
R-POLAR 1.06 SHOULD HAVE THIS BUG BELOW FIXED. IF THIS OCCURS, PLEASE REPORT.
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.

Introduction
--------------------------
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
	0
	4
Bottom:	5
- After Hitting "-":
Top: 	0
	0
	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.

Controls
--------------------------
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.

Help
---------------------------
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.

Math--
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.