1- /*** Clicker 3.1 **************************************************************\
1+ /*** Clicker 3.2 **************************************************************\
22 * Author: twisted_nematic57 *
3- * Date: 12/21 /2024 [MM-DD-YYYY] *
3+ * Date: 12/30 /2024 [MM-DD-YYYY] *
44 * License: GNU GPLv3 (or later) - see LICENSE *
55 * Product Type: BASIC program *
66 * Platform: TI-89 Titanium - can be ported to other Motorola 68000-based *
@@ -19,13 +19,13 @@ input for the next iteration.
1919
2020The program works flawlessly on negative and complex numbers. It can operate on
2121entire lists or matrices. It can also be automated, running many iterations
22- internally, and returning the last value . It has been tested on many hundreds of
23- inputs, and produces expected results every single time.
22+ internally. It has been tested on many hundreds of inputs, and produces expected
23+ results every single time.
2424
2525In summary, this program is one of the only and best dedicated recursive
26- function executors for any calculator out there . It is a stair step towards
27- putting your TI-89 Titanium right up there with Mathematica and MATLAB. As
28- always, it's up to you to harness its full potential.
26+ function executors for the TI-89 Titanium . It is a stair step towards putting
27+ your TI-89 Titanium right up there with Mathematica and MATLAB. As always, it's
28+ up to you to harness its full potential.
2929
3030 - created and refined with passion.
3131
@@ -39,8 +39,8 @@ I. QUICK START
3939 - On the Home Screen, type:
4040 `clicker(start_val,"operation","listname",auto_execute)`
4141 Example: `clicker(0,"x+1","",0)`
42- - Press [ENTER] to iterate (count up from 0 in steps of 1), and [CLEAR] to
43- quit the program.
42+ - Press [ENTER] to iterate (count up from 0 in steps of 1), and [CLEAR] or
43+ [HOME] to quit the program.
44443. Results:
4545 - The last iteration's result is returned on the Home Screen when the
4646 program is terminated. A list of all iteration results is not created. No
@@ -57,13 +57,12 @@ II. INSTALLATION
5757Send `clicker.89p` to your calculator.
5858 It will be in its own folder "AAA" for quick access, but you can put it
5959 anywhere you like. It is folder-agnostic and can be called from anywhere.
60- I recommend keeping it archived.
60+ Keep it archived, there's no reason not to .
6161 It is GPLv3-or-later licensed, so if you wish to take advantage of the rights
6262 that implies then feel free to unarchive the variable and do whatever.
6363
6464Send `flib.89z` to your calculator.
65- It *MUST* be stored in the "main" folder.
66- I recommend keeping it archived.
65+ It *MUST* be stored in the "main" folder. Keep it archived.
6766 It is GPLv2-or-later licensed, so if you wish to view its source code you can
6867 unzip "flibsrc.zip" and have at it.
6968
@@ -78,19 +77,17 @@ III. DETAILS
7877 - As you keep pressing [ENTER], `op(x)` will be executed and its result
7978 stored to `x`, over and over again. It's essentially recursively executing
8079 the operation with its own previous output every time you press [ENTER].
81- * You may press [CLEAR] to exit the program and go back to the Home Screen at
82- any time.
80+ * You may press [CLEAR] or [HOME] to exit the program and go back to the Home
81+ Screen at any time.
8382 * Clicker will store your calculation history to a list or sequence of
8483 variables of your choice, if you tell it to do so.
8584 - Iteration numbers are 1-indexed, both when saving to a list and to a
8685 series of variables.
8786 - Even if no data is to be saved to a list or sequence of variables, the
8887 last iteration's result is always stored to a variable `lastclic` for
8988 your convenience.
90- * If any issues happen during execution of the program, it will catch most of
91- those errors and let you know what's wrong. In fact they are not called
92- "errors"; instead they are called "oopsies" since that's more friendly and
93- less robotic than the word "error".
89+ * If any issues happen during execution of the program, the calculator's
90+ operating system will catch them and the program will stop.
9491 - If there is an error during calculation, then it is highly likely that the
9592 issue lies in your input.
9693
@@ -139,7 +136,9 @@ IV. USAGE
139136 themselves, and `calclist` is set to "history", then the
140137 result of the first iteration will be stored to
141138 `clkrvars\hist0001`, the second to `clkrvars\hist0002`,
142- etc. Each of these variables are of the list data type.
139+ etc. Each of these variables are of the list data type,
140+ since `x` or `op` cannot be represented with another
141+ type.
143142 ~ If the calculator runs out of RAM while doing
144143 iterations when saving to individual variables, the
145144 program will not catch this error and you will need to
@@ -161,8 +160,8 @@ IV. USAGE
161160 * The calc will switch to the PrgmIO screen and display "Ready." Now, whenever
162161 you press [ENTER], the current value of `x` will be plugged into the
163162 operation you specified, and its result stored to `x`.
164- * Upon pressing [CLEAR], the program will return to the Home Screen, manage the
165- storage of computed data if requested, and terminate.
163+ * Upon pressing [CLEAR] or [HOME] , the program will return to the Home Screen,
164+ manage the storage of computed data if requested, and terminate.
166165
167166DISCLAIMER: Treating the program in ways that deviate from the specification
168167above may cause unexpected and erratic behavior. No damage should ever occur to
@@ -205,6 +204,27 @@ then `c` is not part of the set.
205204
206205VI. CHANGELOG (LATEST-FIRST)
207206
207+ * Clicker 3.2: Removes input validation, removes false showings of the "PAUSE"
208+ indicator in the status bar, clarify which mode the program is
209+ in at launch, replace separate triple dots with one logical
210+ triple-dot character, increase performance, decrease memory
211+ consumption, map [HOME] to [CLEAR], fix list-compatibility
212+ checking bug.
213+ - CODE: revise main while loop, change from while active=1 to while true:
214+ considerably increases performance?
215+ ~ also no need to store active variable, possible memory optimization?
216+ - CODE: remove unnecessary recursive variable resetting lines
217+ - CODE: fix list-compatibility checking bug
218+ ~ When commands are chained, the old method would assume the results
219+ wouldn't stay in a list even though they actually could. Changed method
220+ to work around this issue: k serves as a temporary storage for x's
221+ initial value, then the op is evaluated as-is and x itself is checked
222+ for list compatibility.
223+ - CODE: (aesthetic) change distinct triple dots into a single logical
224+ triple-dot character (chars menu -> 3 -> E instead of just "...")
225+ - DOC: clarify some operational details (relating to error handling)
226+ - MISC: add plaintext source for curious people without access to AMS
227+
208228 * Clicker 3.1: Adds ability to automatically compute a set number of
209229 iterations; Enables chaining of commands with BASIC syntax;
210230 Improves built-in documentation accessible via F1 in the Catalog
0 commit comments