Metropoli BBS
VIEWER: exalv50.doc MODE: TEXT (CP437)
                             EXAL ver 5.0

  **********This is postcardware!!! It is all I ask for my time.***********
  **********            Address is at bottom of doc.            ***********
  ********** I have not protected against stupidity in this     ***********
  ********** program so be reasonable. It has a pretty good     ***********
  ********** error handling system, but not a magic one.        ***********


┌──────────────────────────────────────────────────────────────────────┐
│ EXAL is distributed in the public domain in the hope that it will    │
│ be useful, but is provided 'as is' and is subject to change without  │
│ notice.                                                              │
│                                                                      │
│ No warranty of any kind is made with regard to the software or       │
│ documentation. The author shall not be liable for ANY incidental or  │
│ consequential damages in connection with the software, its           │
│ use or abuse.                                                        │
│ NAH! NAH!                                                            │
└──────────────────────────────────────────────────────────────────────┘
                          Installation

1. Download the library to your calc.
2. Purge any old copies of EXAL from your calc. Do this by
going to HOME dir, type [RS] [-] 0 [->] 1220 [ENTER] [ENTER]
Then type DETACH, then PURGE.
3. Recall the new library to the stack.
4. Press 0 [STO]
5: Turn off then back on
6. Press [RS] 2
7. Go into EXAL
8. Press [SPRD]



                           Use of the program


The following functions are now available:

Pressing the [.], [0]-[9] keys will go into an input line to
enter a number into the currently hilited cell. The number can
be complex or real. [ON] aborts input.

Optional: If and ONLY if you have Mika Heiskanan's EQSTK and
VV programs loaded, [LS][DWN] will view the formula in the
current cell, provided there is one, in small font eqwriter
form. [ON] exits the viewer. If you do not have this library
and try this you will leave stuff on the stack. So I recommend
getting the programs. They are worth it. ;-)


[A]             If pressed for the first time, starts a timer. When
                pressed a second time, places the elapsed time in the
                cell to the immediate right. If the cursor is on the
                last column, places the elapsed time in the current
                cell. After the timer has been started and stopped, it
                can be used again in the same manner.

[B]             Extract from ? to ?. move to origin cell, press [ENTER],
                move to destination cell, press [ENTER]. [ON] will abort
                the ops.

[LS][PLOT]      Toggle between plotting points/bars.

[RS][PLOT]      Only draws the X-AXIS. Use meaningful data or it won't
                look good.
                Plots the data on stack 1 and two. 2: is the X axis
                data, 1: is the Y data. This can be used outside the
                sheet viewer as well. NOTE: it only plots real numbers.
                To use it in the sheet viewer, use the EXTRACT function
                (see above) to extract any row or column or part of
                either which denotes the X data. Do the same for Y data.
                ONLY extract data from a single row/column for each axis
                data points. ie do not try to plot A1 through D8. The
                plotter assumes a pair of lists each with reals and/or
                formulas inside embedded lists with real resolutions.

               2: { -1 0 2 3 4}
               1: { 0 {'SIN(A1)' 0} 2 3 4}

               will plot (-1,0),(0,0),(2,2),(3,3) and (4,4).

               This is only meant to give the user a general view of the
               nature of the data plotted. It is NOT a full function
               plotter.

[LS][MTH]       Toggle RAD/DEG mode. Sheet is redrawn

[LS][MTH]       Toggle between RECT/POLAR mode. Sheet is redrawn

[LS][->]        Toggles auto move down/right after input.

[RS][SPC]       Toggles auto adjust of formulas after row/col
                add/del.

[LS][0], [LS][2], [LS][3]  STD, FIX 2, FIX 3 mode. The sheet
                           will be redrawn.

[STO]           Stores the current sheet to the name of your
                choice and remains in the program.



[LS][NXT]       Gives info on memory, sheet size etc. Any key
                returns to viewer.

[LS][1/X]       Toggle between left and right justification

[+]             Adds a column to the right of the cursor.

[-]             Adds a row below the cursor

[LS][+]         Deletes the column the cursor is on

[LS][-]         Deletes the row the cursor is on

[SPC]           Redraws the sheet. This is to clean up any trash on the
                PICT left by multiple operations

[/]             Toggles display of formulas/values in the status bar
                This can speed up scrolling as displaying a
                formula means turning it in to a string and this is
                frighteningly slow.

[*]             Toggles on/off the status bar

[ENTER]         Copies the current cell to stack 1

[<-]            Copies stack level 1 to the current cell

[LS][+/-]       Edit the current cell. [ON] aborts.

[EEX]           Toggle grid lines. These are simply cosmetic and as yet
                are not implemented well.

[DEL]           Delete the current cell

[C]             Begin relative copy routine. Read the status bar for
                directions. The status bar will show inverted
                color info as follows:

              ┌────────────────────────────────────────────────┐
              │ COPY $#                                        │
              └────────────────────────────────────────────────┘

                where $# is the cell the cursor is on. Move
                the cursor to the cell you wish to copy and press [ENTER].
                Now you will see this:


              ┌────────────────────────────────────────────────┐
              │ COPY $# FROM $#                                │
              └────────────────────────────────────────────────┘

               Now move the cursor to the cell you wish to
               copy FROM and press [ENTER] again. You will see
               this:

               ┌───────────────────────────────────────────────┐
               │ COPY $# FROM $# THRU $#                         │
               └───────────────────────────────────────────────┘

               Now move to the cell you wish to copy TO. Press
               [ENTER] and the copy will start. You will see
               the cells being updated in the process.
               NOTE: You may cancel the copy at any time
               during the range setting process by pressing [ON] but after
               you press [ENTER] the third time it is unstoppable without
               erroring the program. I wouldn't advise this.
               The copy is relative so formulas and programs
               will be updated if they contain cell references.



[RS][TAN]       Copy current cell to Statistical Data. The data
                is put into a list called TOTLST and it will remain in the
                current directory as a global variable even
                after you exit the sheet.

[LS][TAN]       Rename TOTLST to the name of your choice and
                purge the original copy.

[D]             Place Total of Statistical Data to current cell

[E]             "     Mean  "  "       "    "  "       "

[F]             "     Standard Dev     "    "  "       "

[EVAL]          Recalculate the sheet. NOTE: If you enter a
                value/formula/string into a cell which already contained a
                number or formula (or edit it), the alpha annunciator will
                come on until you recalculate the sheet. This is a reminder
                to you to keep up with formulas the could be changed.

[LS][EVAL]      Recalculate the current cell only. This will
                not turn off the alpha annunciator.


[RS][EVAL]      Set number of times to recalc the sheet.

[LS][']         Toggle between recalculating from the top to
                the bottom or vice versa

[']             Begin entry of formula to current cell. Formula can
                contain cell references. [ON] aborts entry.
                NOTE: Programs can also be entered in a cell
                but the program must NOT affect PICT. Be warned!!

[RS][-]         Begin entry of character string to current
                cell. [ON] aborts entry.

[VAR]           Create a global variable. The variable will be
                automatically prepended with a $ character. You may use this
                variable in a formula and it will be treated as a constant.

[RS][0]         Store current cell to global variable. As
                above, the cell name is prepended with a $ char and stored to
                a global variable.

[ON]            Exit the sheet and save. The sheet and ALL its
                environment variables ie cursor, window, flags etc, will be
                saved into a program which will appear in the menu of the
                current directory. To go back into the sheet just press the
                menu key for it in the directory menu. You
                will start the sheet where it was left off. If you do
                not want to save, press [ON] again and changes
                will be discarded.

[NXT]           Short help screens. Any key changes from one
                page to the next. Any key exits from the third one.

[ON]            aborts any input line routine ie number, formula, string
                entry.

Right-shift and any cursor key will jump to the extreme
corresponding edge of the sheet.


Hints: To place the value of one cell into another, move to the cell to
        be copied and press [ENTER]. Then move to the target cell and
        press [BS]. If you do not do it this way, move to the target cell
        and enter a formula such as 'A1+0' because exal sees 'A1' by itself
        as a global variable and will politely place 'A1' in the target cell
        as opposed to A1's contents.

        Before you add items to the last row or column, add another row or
        column ([-] or [+]) so you don't pin yourself in.

        You can enter programs in a cell as long as they DO NOT alter PICT.
        Make sure they return a value or object. This can be handy for things
        like setting flags or other things. ie
        << -22 SF "Flg22" >> in a cell will, when evaluated, set flag -22
        and place "Flg22" in the cells contents window. To enter a program
        simply press the ['] key as if you were entering a formula, delete
        the tick marks and open program delimiters.
        Use programs at your own risk!!!

                             NOTE
I probably will not be adding any features for awhile.
I am very busy with school and it comes first. If you find a BUG,
however, please email me and I will fix it if I can.

                             Homages

 My most grateful thanks to Mika Heiskanan for JAZZ. This
wonderful library, along with the plethora of hacking tools he
has created has forever changed my relationship with my calc.
It opened a whole new world.

To Ray Good, my best friend and a very bright ME student. He
did much of the Beta testing on this. You should
check out his equation library. It is called xMRGLIB and is
the best I have seen. Better than the built in one. Much faster!

Bill Halkiadakis: An actual Professor who USES my program and
did most of the testing of EXAL alerting me to several (many) bugs
and made some very good suggestions which I implemented with pleasure.

And all the IRCers, Brad, Seth, Arnold, Will, Martos and all
the others..THANX!


Call if you have questions.
                                        Al Arduengo

aardueng@lonestar.utsa.edu
1-210-654-1381
3270 Nacogdoches #506
San Antonio, TX 78217

Changes since 4.6:
1: Cleaned up code. Less redundancies
2: Added a print function
3: Handled flag settings better. Symbolic flag is now ok
4: Uses UFL now. (Sorry it took so long guys...)

Changes since 4.5a:
1: Added a timer function. [A]
2: Replaced #VAL! with ERROR! in formula/seco handling
3: Ensured correct flag settings at start. (Thanx Bill ;-))

Changes since 4.2:
1: Added plotter. See doc below for details.
2: Added extractor for cutting all or part of a sheet and placing on
   stack.
3: Fixed a shitload of silly little bugs.
4: Added the plotter info in the info screen. [LS][NXT]


*note* I'm sorry to sx users who had problems with the plotter. Arnold
Moy brought this to my attention. The problem was that I was using a GX
only function. The problem is solved now. :-)

Changes since 4.0:
1: Rewrote all formula and secondary processing routines
2: Fixed a terrible bug that caused memclear if a program did
   not return a result
3: Added toggles for rad/deg and rect/polar. Keys are just as
   normal. [LS][MTH] and [RS][MTH] respectively
4: Fixed a bug with handling statistical data
5: Most routines are much more efficient now.

NOTE!! I insist you send a postcard. My wife doesn't believe anyone
       cares. ;-)

Changes since 3.8:
1: Adding/deleting rows/columns will, if desired, adjust any
   formulas automatically. This can be toggled with [RS][SPC].
2: Now the cursor will automatically move down or right one
   position after an input. Toggle for this is [LS][->].
3: Added STD, FIX 2, and FIX 3 to [LS][0], [LS][2] and [LS][3]
   respectively.
4: Changed info screen to give info on various settings as well
   as mem and bytes info.
5: User can now press ['], delete the algebraic ticks and enter a
   LIST of objects which will be placed successively in adjacent
   cells horizontally or vertically depending on the setting in
   item 2 above. The list can contain any combinations of the
   usual valid objects. If the list size exceeds the boundaries
   of the sheet, extra items which could not be placed will be
   left on the stack.
6: Scrolling is much faster


Changes since version 3.7:
It is the responsibility of the user to ensure that a program, if
   used in a cell returns a value. I would not recommend using a program
   unless you are pretty good at writing them.
Grid lines are much more stable now.
Wrote a new routine to try to compensate for formulae that crash.
Re added help screen. [NXT]
Improved cursor movement
Formulae/programs that divide by 0 now produce the infinity symbol
Fixed a few minor annoyances.




[ RETURN TO DIRECTORY ]