-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathREADME_CYCLEVIEW.txt
137 lines (114 loc) · 7.38 KB
/
README_CYCLEVIEW.txt
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
/*** CycleView 2.0 ************************************************************\
* Author: twisted_nematic57 *
* Date: 12/29/2024 [MM-DD-YYYY] *
* License: GNU GPLv3 (or later) - see LICENSE *
* Product Type: BASIC program *
* Platform: TI-89 Titanium - can be ported to other Motorola 68000 *
based TI calculators with ease. *
\******************************************************************************/
CycleView is a replacement for the TI AMS's CyclePic instruction. It is a BASIC
program that allows the user to play back and scrub through animations
frame-by-frame, and features very simple and easy-to-remember keybinds that do
simple things. It's also slightly optimized, and is quite performant.
- created and refined with passion.
I. INSTALLATION
All files being referred to in this section are in the `distribution` folder.
Send `ccv.89p` to your calculator with your favorite linking software. It should
be archived.
It will be in its own folder `AAA` so that you can access it quickly from the
VAR-LINK menu, but it's fine to store it anywhere.
Also, send `Flib.89z`. Leave it archived.
It is an open-source assembly subprogram that exposes an interface to BASIC
scripts allowing manipulation of text in the calculator's status line, which is
made use of in CycleView.
This variable MUST be in the `main` folder.
If you wish to view its source code, unzip `flibsrc.zip` and have at it. :)
The license included with Flib is in `flib-license`, and also inside the ZIP
itself (in `GPL.txt`).
II. PROGRAM DESCRIPTION
The program is centered around displaying many picture variables via the RplcPic
instruction in quick succession to show an animation. It is specifically
designed to work with images generated by CycleGen.
CycleView's format of data is also playable by the OS's built-in CyclePic
instruction, but there are 3 key differences between this program and CyclePic:
* CyclePic does not support playing more than 50 frames at once.
- CycleView (this program) supports as many images as will fit in memory.
* CyclePic does not support frame scrubbing. That is, you cannot play/pause the
animation and move between individual frames on demand.
- CycleView implements this functionality in a very intuitive manner.
* CyclePic exposes a setting that modifies the amount of time that each frame
is displayed for.
- CycleView does NOT implement delay functionality while playing the
animation; it simply cycles through frames as fast as the calculator can
process them.
~ This feature was deemed unnecessary due to the availability of frame
scrubbing. Please use that instead to get a chance to take a longer
look at each frame.
III. USAGE
* The user launches the program with arguments that give it information about
the frames it's expected to play back. The specification for the arguments is
in the order they should be passed below:
- `picprfx`: A string containing the prefix of each picture. The "prefix" is
just the string that comes before the number of each frame.
~ For example, if all of the frames are in the `ctmp` folder
and their names start with `p`, then this argument should be
`ctmp\p`.
~ Another example: if the frames are in the current folder and
they begin with `frm`, then the prefix would just be `frm`.
- `npicstrt`: A positive integer denoting the frame number to begin playing
the animation on.
- `npicend`: A positive integer denoting the frame number to stop playing
the animation at.
- `replay`: A number which tells the program how it should behave when it
finishes playing all available frames.
~ If set to 0, it will just cycle through all the frames once
and exit when finished.
~ If set to 1, the program will play the entire sequence of
frames again from the start in the same order when it's
finished playing to the end of the sequence. This goes on
forever until the user presses [CLEAR] to exit the program.
~ If set to -1, the program will reverse the order of the
frames when it's finished playing through all of them. So
it'll play from the start to the end, then the end to the
start, then the start to the end again, over and over until
the [CLEAR] key is pressed.
* The program displays the images in quick succession to show the animation.
* If the user presses [LEFT] or [RIGHT], the animation stops and the left and
right arrow keys can be used to scrub through individual frames of the
animation. Pressing [ESC] exits out of this frame-scrubbing mode and resumes
normal playback of the animation.
- The [LEFT] arrow key always displays the previous frame of the sequence
(the one with a smaller number at the end). Vice versa for the [RIGHT]
arrow key. This is regardless of the current `replay` setting.
- While in frame-scrubbing mode, the status bar will contain a message
showing the full path of the currently displayed image.
* The [CLEAR] key may be pressed at any time to exit out of the program and
return to the Home Screen, with one exception: if the program has finished
playing the animation when `replay`=0 and it is not in frame-scrubbing mode,
it will keep displaying the Graph Screen post-termination.
- The [HOME] key also does the exact same thing as [CLEAR].
DISCLAIMER: Treating the program in ways that deviate from the specification
above may cause unexpected and erratic behavior. No damage should ever occur to
your calculator by using this program, but the author(s) of this program do not
claim liability for ANYTHING should undesirable events occur as a result of the
distribution, storage, compression, or execution of this program.
IV. EXAMPLE
`ccv("frame",1,9,0)` Plays back frames in the current folder with names starting
with `frame` from 1 through 9. The animation plays in order and exits after the
9th frame unless interrupted. The Home Screen is not displayed if manual
interruption does not occur.
`ccv("ctmp\pic",1,79,-1)` will play back frames 1 through 79 in the `ctmp`
folder starting with `pic` in alternating straight and reverse order. This will
continue forever until the user presses [HOME] or [CLEAR] to quit the program.
VI. CHANGELOG (LATEST-FIRST)
* CycleView 2.0: Initial release; Allows playback of animations formatted
mostly the same way as CyclePic; (there is no 1.0 or 1.1 to
prevent versioning confusion)
- CODE: create an animation player using a while loop with keypress
detection, and react accordingly - basic keybinds implemented
~ optimization by wrapping the main keypress reaction code in a giant if,
not indented as stylistic choice - calc only has to check a single if
this way in the main loop, makes it faster 99% of the time
- DOC: document how the program should be used
- DOC: provide some rudimentary examples (...it's pretty simple, do we even
need these?)