Flash TI v0.1
By Brian Gordon

To be honest, when I released the concept version of Flash TI more than 4 years ago I never intended 
to go back and actually finish it. It was a total mess of spaghetti code because I was trying to 
make everything menu-based, and I think it actually tried to encode strings with 27 different 
conditionals! I took a look at the code recently and was so horrified that I had to at least put out 
a working version- the old Flash TI didn't even have a player. I think I've managed to hammer out a 
decent Flash TI this time around- it's pretty cool to be able to navigate around the program, adding 
frames and changing parameters all through the editor, and watching the show unfold before your eyes.

-

OK so here's the lowdown. Despite all of the promises in the summaries of the program doing all the 
work for you, you do actually need to know how Flash TI shows work. You don't have to build them by 
hand and worry about syntax and character sets -that's the program's job- but you need to know what's 
going on.

Throughout the Flash code, L1 is assumed to contain the show data. It would be trivial to write a 
menu-based loader that copies a custom list to L1 and then calls FLASH or FLASHPLY- in fact, these 
programs use Return to exit so they're loader-friendly. 

Anyway, L1 contains a list of command codes that are executed by the Flash player in sequence. 
They're all numerical of course (including strings) so it can be a bit cryptic to edit without the 
Flash editor. This is just reference- except for the command code symbols in the right column, you 
don't need to know this unless you plan to edit raw show data.

Here's the small list of command codes for this v0.1 release (fairly extensible):
-1	Exit			E
0	Pause			U
1	Text			S
2	Clear screen		C
3	Draw background		B

	Masked character	.
	Masked symbol		:

As they're defined, the Exit, Pause, and Clear commands stand on their own as frames but Text and 
Draw background have parameter frames. Text has many parameters:

Text command code (1)
X coordinate
Y coordinate
Direction (0 for horiz, 1 for vert)
.
.
. (integer-encoded characters)
.
.
Null terminator

Background just has 1 parameter: a single encoded symbol. Of course the program makes this mostly 
transparent but it's a separate character set that supports only symbols.

That's basically it- for the most part all of this is fairly intuitive or unnecessary when using the 
program but it's good to know and to have available as a reference.

-

On to actually using the program. You need a L1 to do anything in Flash- set it up manually from 
the home screen or select "Empty program" from the Flash menu to create a blank one automatically. 
This also can clear an existing program (don't worry, it asks for confirmation). 

Once you have a L1 to work with (make SURE it's not filled with unrelated data! Use Empty program!), 
you can add frames. When you have an empty show, the only tool available is the Frame Editor. You'll 
want to use Add frame; the Edit frame option is for raw editing with text charset support (a little 
easier than just firing up the list editor and making a show manually). Add frame gives you various 
options to add a frame to the end of the show- it's very self-explanatory. There's currently no way 
to insert frames in the middle of the show.. it would be easy to implement but shows aren't really 
supposed to be terribly long to need that feature. 

So now that you have a few frames in the show, you can run it (which calls the FLASHPLY program- 
remember to U - Pause your show at the end unless you want it to close immediately) or view the show 
timeline. The timeline viewer started out as a feature tacked on to help people by associating a 
symbol (the letters in the chart above) with each command code. However it became the central part 
of the program- if the controls weren't non-obvious I could do away with menus altogether. 

OK so in the timeline tool, you basically just scroll up and down L1. The frame number is enumerated 
in the first column. The second column is the raw data in L1. The third column is the symbol 
associated with that data- be it a capital-letter command code symbol, a masked character dot 
(representing spaces and thetas in text data), a masked character colon (represeting every character 
in the symbol charset), or decoded lowercase text data (regardless of whether the text is actually 
lowercase). The fourth column is the selector. 

Timeline viewer controls:
Up/Down	Scroll
CLEAR	Back to menu
ENTER	Edit selected frame data with text charset support (data type is autodetected raw/text)
DEL	Delete selected frame from show

-

To actually include a Flash TI show in your program you must package the FLASHPLY program with your 
program (or assume that they already have it) and make sure your show is in their L1 when FLASHPLY is 
run by your program. You can either package L1 (not recommended) or just RCL your own L1 into your 
program's code during development.