Nifty v1.0 - Nifty Is Formatted Text for You - (c) Peter Martijn Kuipers
						   (nifty@hbyte.net)

--Initial info:
 -This is version 1.0 of Nifty, made for the TI Application Programming
  contest
 -Nifty is written for the TASM assembler, you cannot use it in the
  Zilog Developer Studio without modification. (You may ofcourse
  modify the file for you particular assembler)

--Terminology:
;//         - Comment, used in code-examples, ends on end-of-line
Nifty       - this program
NML         - Nifty Markup Language (v1.0 is current version),
	      the structure of a Nifty file
Nifty files - Files that contain NML
[xxx]	    - Description of what you should fill in in this space.
[enter]	    - Representation of the Enter or Newline token;

--What Nifty is:
-Nifty is a TI-83+ application, which reads Basic-Text files, and prints them
 in small fonts on the screen. Nifty checks the basic file for certain control 
 tokens, which will affect the way the basic program is displayed.

--What Nifty does:
-Nifty will automatically detect programs which comply to NML-v1.0 
 (Nifty Markup Language) this means: 
 Nifty files start with (leading :'s are add by the basic-editor):
 :Stop:NIFTY	       ;// Stop will make it inrunnable from TIOS
 		       ;// NIFTY is to identify it to NIFTY
 :[filename]	       ;// The name of the file. Please keep it short!
 ...nifty text..       ;// text to be displayed
 {...text...}	       ;// inverted text
 [enter]	       ;// forced newline
 Pause		       ;// forced page end
 ->	  	       ;// store token, tab (10 spaces)
 /{		       ;// force { to be displayed normally
 //		       ;// display ONE /
 /->		       ;// display the store token, instead of parsing it
		       ;// (the "->" means the store token, not "-" and ">")
 ...end nifty text...  ;//
 :End		       ;// End of file. You MUST include this!!!!
		       ;// if you don't include it, thing will get messy.
		       ;// (I included a failsafe, but don't rely on it!!)
 :[everything you want to have in the file, but not in the viewer]

-Token summary:

->		Store: Tab
{ [text] }	Inverse coloring of text
/		Force normal display of next token.
		// = display of "/"
Pause		Page End;
End		End of Nifty file
[Enter]		Newline

-Keys to use:

Up/Down		Scroll up and doen in the nifty file
		(only in file view mode)
Left/Right	Select another file
		(only in the file selection screen)
Mode/Del	Quit nifty right away
		(No, not a teacher key, it displays
		"Thanks for using Nifty" for a while on the screen)
Clear		Back to the file selection screen
Stat		Display help. (Key meanings only)


-Nifty has a maximum capacity of 128 pages memory storage, any pages that lie 
 beyond that range are simply not displayed, this is to prevent system crashes.

-Both archived and non-archived program files are read, so you can put a lot
 of Nifty files on your calc. (Escpecially handy on the TI-83 Plus SE)

--Who made Nifty:

-I'm Peter Martijn Kuipers, student in the final year on the VWO (some sort of
 High school(+) equivalence). I live in the Netherlands.

--How Nifty can be of use:

!-Teachers can make studycards or notes On-Calc, so their students can view 
  them. Teachers no longer have to use a computer with graphlink to make 
  such files.

+-Studens can make digital notes, that can be viewed orderly, right in the
  classroom, without paper, so the notes can be distributed to classmates 
  without loss of meaning that occurs when copying notes by pen.

o-Due to the way Nifty reads its programs it can be used to transport data
  in hidden files (files where the first character of the name is a space, if
  I recall correctly), so you can hide data, not ment for others. Please do not
  use this feature for cheating, but if you do: the only one you're cheating is
  yourself...
 

--Known Problems, bugs:

-When you use tokens that are larger than 4 pixels, the Soft Return feature
 might get compromised, be sure not to use them on Line endings.

-Due to the nature of TI-Basic, Nifty files can be considerably larger than 
 their ASCII equivalents, however, I think that the feature of being 
 able to edit files On-Calc is of more importance than this.

-The maximum amount of Nifty Files you can have on your calculator is 127.
 If you exceed this, some files will not get displayed correctly.
 NOTE: Due to the enormous amount 127 files is to a TI83+, I'll probably
       limit this amount in future releases, to use the memory.

--Future enhancements:
-Display a list of all the files and let the user choose fron this
-A compiler for normal texts to NML
-More formatting tokens (ideas are welcome)


--Tips&Tricks
-You can use TI's Graphlink program to paste normal text into a nifty file

-You can introduce Nifty to your teacher, for giving notes.

-Nifty can read and display ANY TI-Token, this is ideal for Math notes, because
 you can include normal lines of calculation tokens, like "sqrt(3/4)" with the
 square root token.

-You may be able to use TI-Standard tokens like "If" or "And" to inter-
 nationalize your NML files, since those will be changed with language 
 localisation. 

-You can put "hidden" text after the End directive, it will than be in 
 the file, but not displayed by nifty.

-Be sure to check out the example Nifty file!

--Developement Information

Nifty files are identified by "Stop:NIFTY[enter]" at the beginning.

Nifty files are distinguished by their memory address, so there can be two 
nifty files with the same internal name. The TIOS however, forces every file 
to have a unique tios name.


--Thanks go to the following people:

-Dan Englender,     for helping me with the TI83+ Token Reading system, and
		    modifying the TI83Plus.inc Include file for use with TASM

-James Matthews,    for writing the ASM Guru, that is a great help, even when
		    learning TI83+ ASM

-Texas Instruments, for making their Freeware App signing key really free,
		    and for making the flash debugger, which proved to be
		    an invaluable tool in developing Nifty

-All the ones on the ticalc.org assembly-83 list for giving advice, and
 keeping me with my mind to Asm, when I wasn't programming for a while.


--Legal Stuff:
 Nifty is distributed Open Source, this will probably become GPL
 but in the meantime, here's my own version of an Open Source Developement 
 License:

-You may view, edit, and build the source, for your own use, without 
distributing the source in public. You are allowed to distribute a build from 
a modified source within your class, and ONLY in your class or among 5 friends 
who are not in your class. You are not allowed to distribute your modified 
source to anyone but yourself and me.

-The unmodified source is available to everyone, for building, viewing,
learning or improving purposes

-If you make any modifications to the source, which are a definate improvement
such as bug fixes and added functionality, you MUST mail them to me, at
(nifty@hbyte.net).

-You may not remove any copyright notices from the code. You may add your name,
if you have added an improvement. Exception to this is when you remove, damage
or mutilate part of the Nifty code, in that case you must add a statement which
clearly states that you changed the code, to both your source and your modified
program. Adding features which can be used specifically to cheat or fraud on
tests, and do not have specific other uses of are an unavoidable consequence 
of a real improvement is considered "Mutilation" too.

-I am not obliged to keep the project Open Source if there are pressing reasons
 for. I will however seek any way to keep Nifty open source when reasonably
 possible.

Greetings to all users. And I hope you will have many uses for Nifty.


--History:
1.0 - Finished 14-08-2001:
 Added page numbering, flash reading support, and added the special "/" 
 token for forcing to display the next token.
 I made Nifty an application thanks to TI's free app signing key.

0.7 to 0.9 - Personal developement numbering, not published
 
0.6 - Finished 22-3-2001:
 I implemented a way for the user to see if (s)he is on the first or last
 place of a NML File, by displaying arrows to indicate the direction (s)he can
 go (up/down).
 I also fixed a bug with the apd that causes your calculator to crash.

0.5 - Finished 19-3-2001:
 I had suspended Nifty, because of my inability to port the text-writing 
 routine to the Plain TI-83, but got to work on it again, this time 83Plus only

Pre-0.5 - Personal use only:
 I came up with a rough version of nifty, when I annoyed myself with the way
 basic files are displayed in the on-calc editor, the only way to make text-
 documents on-calc, and view them. The first version of Nifty was made a few 
 days later. The "Starting Core" of nifty is a routine for displaying
 formatted text, that I developed earlier. I only had to adapt it to read and
 write TI's Tokens.






