*****************************************************************************
* 		       FPL - The Fargo Program Launcher			    *

Copyright (c) 1998 David Kuehling

This software is provided 'as-is', without any express or implied
warranty. In no event will the authors be held liable for any damages
arising from the use of this software.

Permission is granted to anyone to use this software for any purpose,
including commercial applications, and to alter it and redistribute it
freely, subject to the following restrictions:

1. The origin of this software must not be misrepresented; you must not
   claim that you wrote the original software. If you use this software
   in a product, an acknowledgment in the product documentation would be
   appreciated but is not required.
2. Altered source versions must be plainly marked as such, and must not be
   misrepresented as being the original software.
3. This notice may not be removed or altered from any source distribution.

*****************************************************************************


===============================================
    INTRODUCTION
===============================================

FPL is a very useful Fargo program launching tool for your TI-92. Once you
realized, that it is much more powerful than the default shell FBrowser you
may rename it to shell, making FPL the program, that is executed on pressing
Shift+On. Here is a short summary of its features:

	* prints the required libraries of a program
	* redirects all runtime error vectors (such as "division by zero" or
	  "illegal instruction") to display a short error message, but
	  _without_ crashing your calc
	* vector redirection is done very smartly enabling programs to modify
	  even the redirected vectors themselves
	* ON+ESC shortcut to abort running programs, that hung up etc.
	* tracks down interrupt vectors, that were modified by a program, and
	  asks the user whether to restore them or not
	* tracks down memory blocks, left allocated by your program, and asks
	  the user for setting them free or not
	* supports ER_throw by redirecting the line 1010 emulator (this is
	  necessary since the current Fargo version has some bugs concerning
	  the ER_throw program quitting)
	* Fargo 0.1.x compatability (in case you installed the compatability
	  module to your backup)
	* keeps to the essentials: FPL processes only ESC, ENTER, (2nd+)UP and
	  (2nd+)DOWN; for this reason FPL is (together with Brwselib) nearly
	  the same size as Fbrowser (shell)
	* The file browser of FPL is contained within a library. Thereby many
	  programs (e.g. text viewers) can use the same browser routine. This
	  may help to save memory for future demands


===============================================
    ABORTING PROGRAMS
===============================================

When an error exception is trigged while a program is running from FPL, or
when you press ON+ESC, your program will be forcibly aborted. This is done in
a (very smart) way, by restoring the stack pointers and returning execution to
the kernel::exec routine. To make sure, that no unexpected events happen, the
hole vector table is restored before. If the aborted program has allocated
memory blocks, the user will be asked, whether to set them free. Normally you
can answer this by Yes. In case you runned a program that works with files
(e.g. file managers, editors etc.), or which allocates non-temporary memory
you could get problems. You could also get problems, when you try to restart a
program that was aborted, since it could get confused with its static
variables. You should also never abort programs, while they are executing
other programs themselves (e.g the db92 debugger, or pct98). The ON+ESC
shortcut won't work with programs that switch off interrupts (some games do
this). When a program is very buggy, it could modify some important RAM
variables before it crashes into one of my runtime error traps. In this case
even FPL won't help you. You should allways backup all important files from
your calc, after a program crashed.


==============================================================================

The sources of FPL and Brwselib are zlib-licensed. To recompile them you will
need at least PreFargo 1.03. If anything is not clear, mail me, I will certainly
be able to answer your questions. I will also send PreFargo 1.03 to anyone who
needs it.

Bugs, questions, suggestions, comments etc.: mail me!

Email:	dvdkhlng TA gmx TOD de

Planned features:
	* execute compressed programs (archives) that were compressed on your
	  computer with a little tool I'm going to make
	* remove my direct line 1010 - ER_throw processing, when Fargo works
	  well without it
	* anything really good you suggest...

Thanks to
	David Ellsworth
	The people of ticalc.org
	Tleilax for DB92
	Jonas Minnberg for the Tiger Emulator
	My brother, Felix Khling, who just corrected some language mistakes
	within this documentation

==============================================================================
