EQLIB
-----

Just in time for exam season...

EQLIB is a user maintainable equation library. It allows you to keep 
track of your functions in a tidy and attractive way, using a full 
screen chooser environment. It is reminiscent of the built in equation 
library in the G/GX.

EQLIB lets you:
 - store equations
 - store text and view in regular or compressed font
 - store pictures
 - run programs

Matt Willis
10 April 1995


VERSION
-------

The current version is 1.22
Checksum C8ACh, 4018 bytes.
Library ID 1657

COMPATIBILITY
-------------
   EQLIB is 99% SysRPL, compiled for the G/GX. I am not aware of any 
unsupported entry points that I may have used, so it *should* work on 
an S/SX too. 



TO INSTALL
----------

Download library to calculator. Recall the library to the stack. Type 0 
STO (or another number if you have more ports). Turn calculator off, 
then on. Delete original copy of library (since a copy is now in port 
0). It's installed.




OVERVIEW
--------
1. From now on, store your equations in a subdirectory called EQDIR. 
Give them creative names, such as 'BatchReactorDesign'. 

2. Run EQLIB, and, assuming the current directory contains the 
subdirectory EQDIR, you'll be given a list of equations to choose from. 

3. When you choose one, you can look at the item (or, if it's a list, 
the items). Press the right and left arrow keys to move forward or 
backward.

4. Press SOLVR to enter the SOLVER, ->STK to put the equation on the 
stack or CANCL to quit.


FEATURES
--------
From now on, you should try to put your equations in lists. You don't 
have to, but if you do, you can take advantage of some of the neater 
features of EQLIB.

You can put help text into lists, alongside equations. You don't even 
need to put any equations at all. (You can make a multi-page help file 
this way.) You can also put GROBS in a list. That means you can have a 
lot of supporting material along with an equation.

If you put a program in EQDIR, it will be executed, unless it is an 
algebraic like << -> a << a 1 + >> >>. So if you've created programs 
that don't need anything from the stack, you can easily put them in 
EQDIR as well.

Generally, when you select an object this is what happens...

  selected object    action
  ---------------    -------------------
  grob|text          view item, then quit
  {list}             view items in list, put on stack or
                     enter the solver
  'equation'         view item, then quit or enter the solver
  Mpar library data  Store in Mpar, then execute MSOLVR
  <<program>>        Execute, or if algebraic, view.
  


NEW COMMANDS
------------

The following is a list of new commands your HP will have. Unless you 
like to program, all you'll need will be the EQLIB command. If you 
don't understand what all these commands are for, don't fret.

ABOUT   (->)  
        "About" information for this library

FCHOOSE ($ {list} number -> object 1 | 0)
        A full screen replacement for the G/GX CHOOSE command. 
        Same syntax. Should work on an S/SX!

TITLE   ($ ->)
        Show a nice title (centered) on the top of the screen.
        Mimics #E0044h LIBEVAL on the G/GX.

EQLIB   (->)
        Start the equation library. (Main command)

PCHOOSE ($ {list}-> number 1 | 0)
        Similar to the CHOOSE command, except it goes full page by full 
        page.

TITLE2  ($ $ ->)
        Show a nice title (left and right justified) on top of screen.



Some examples follow in the next section, "Tips and Tricks"



TIPS AND TRICKS
---------------
1) Making EQLIB easy to get at

Create a custom menu. I swear by them. Every working directory I use 
has a custom menu. When you're in the directory ABOVE EQDIR, type in 
the following:
      { EQLIB EQ { "SOLVR" << 30 MENU >> } {} {} EQDIR } MENU

This creates a variable CST which you can see if you press the CST key!

2) Using the built-in MES solver:

By default, the EQLIB uses the regular solver. 

To use the built in MES solver you can create an Mpar variable and then 
save it under a different name in EQDIR. Or, you can use a program to 
set up the multiple equation solver, like: 

<< { 'X=r*COS(theta)' 'Y=r*SIN(theta)' }                                        
    STEQ                                                                        
    MINIT                                                                       
   "CIRCLE STUFF"                                                               
    { X Y "" r theta }                                                          
    MITM                                                                        
    MSOLVR                                                                      
>>

Note that this approach can let you store values in variables as well. 
I personally do not like "pre-seeding" variables, but you are welcome 
to do so. When this program is executed, it will be in the directory 
_ABOVE_ EQDIR.


3) Making a help file (with pages of text, but no equations)

I don't think you should be cheating on exams with your HP. It's more 
of a common sense thing, as far as I am concerned. But you can create 
pages and pages of text, and display it in a really crammed in format. 
You'll have to tell the program where the newlines go, but that's easy 
enough.

e.g. Normal font: (selected when your text has < 6 lines )
'HELPTEXT'
{ 
"This is a page
of regular text"
"This is the
second page of
regular text"
}

e.g. Condensed font: (selected when your text has more than 6 lines)
{
"This is a page of crammed
text and you can fit a lot
of text on one screen. Just
remember that you have to 
put at least 7 or 8 lines of
text for EQLIB to know that
you want condensed text."
"This is big font"
}


4) Using a descriptive name

You can create "illegal" names for your EQDIR that include spaces and 
other characters by using a SYSEVAL, ($>ID). This syseval is supported 
so it should work equally well on an S/SX and G/GX.

Example:
  { object }
  "Illegal Name" #05B15 SYSEVAL STO

WARNING: Type this in wrong and your memory can be erased!!

To erase something with an "illegal" name, go through the above 
procedure again:
   "Illegal Name" #05B15 SYSEVAL PURGE


5) Including help information with your equations

Create a list with your equations in it. As an item in the list, 
include a multi-line string that explains a little about the funtions.

e.g. 

{
"CIRCLE FORMULAE
Cartesian space
r=radius"
'x^2+y^2=r^2'
}

Before you enter the SOLVER, the text will be stripped out. Same goes 
for GROBS.


6) Using the other commands in the library

I included them because I thought maybe 5% of the users might like 
them. Don't worry about them if you can't see what they're for. You can 
safely ignore them. 

The TITLE and TITLE2 routines put pretty titles on the top of the 
screen:

<< CLLCD "HELLO WORLD" TITLE 1 FREEZE >>
<< CLLCD "HELLO" "WORLD" TITLE2 1 FREEZE >>

The ABOUT command tells you about the software version.

The FCHOOSE command replaces the CHOOSE command in the G/GX. The syntax 
is identical to that found in the Advanced User's Reference. Try the 
following:

<< "TITLE" 
  { "ITEM 1" 
    { "ITEM 2" "SURPRISE"}
    3.14159
  }
  1     @ start row for menu bar
  IF FCHOOSE THEN 1 DISP 1 FREEZE END
>>


