+--- +--- | /************  GRAF-IT! v2.0 -- README  ************+--- +--- | /
|--  |--  K********************  January 1993  *****************|--  |--  K  
+--- +--- | \******  (c) Copyright 1990 Eugene Eric Kim  *******+--- +--- | \

WHAT GRAF-IT IS?
     GRAF-IT! v2.0 plots functions and inequalities of functions, as well as 
solves systems of inequalities.  It is a very intuitive, yet powerful math 
graphing program.
     This was written as an educational tool for the math department at 
Polytechnic Upper School in Pasadena, CA.  It is appropriate for junior high 
school, high school, and college students.

WHY GRAF-IT?
     There is an abundance of graphing software available, both shareware and 
commercial.  Some packages are extremely powerful, yet their interfaces tend 
to intimidate the average user.  Other packages are extremely simple (and 
often free), yet their usefulness is limited to drawing lines and circles.
     GRAF-IT! can be classified as a simple package, yet its power goes 
beyond other "simple" packages.  It plots a plethora of functions, and allows 
almost complete manipulation of the graph range.  It maintains a buffer of 
seven equations, so you can keep track of what you're doing, as well as save 
the last seven equations you typed and the range.  The user interface is 
extremely intuitive -- you just type in the equation and press return.
     The most powerful feature of all, the reason GRAF-IT! was written, is 
the inequality feature.  Systems of inequalities are used in many real-world 
applications, from construction to economics.  Very few programs have this 
ability, and those that do are generally anti-intuitive.  GRAF-IT! will not 
only graph inequalities of functions, it will graph the solution to a system 
of inequalities with a one key command.
     A combination of all these features makes GRAF-IT! a powerful tool, 
especially for building intuition.  It was written to be an education tool, 
and can be used to help students understand algebraic concepts such as 
solutions to systems and even simple calculus concepts such as maximums and 
minimums.  For those students beyond this level, GRAF-IT! can be used to 
analyze scientific and technical problems.

GETTING STARTED:
     The only hardware requirement for GRAF-IT! is a VGA monitor.  It will 
work equally well on an XT machine as it will on a 486 machine.  In fact, it 
was written on a Leading Edge Model D, an Intel 8088 based machine.
     There is only one necessary file: GRAFIT20.EXE.  The archived package 
should include the following files:
           GRAFIT20.EXE -- GRAF-IT! v2.0 executable
              DEMO1.EGC -- Demo files
              DEMO2.EGC
              DEMO3.EGC
                 README -- This readme file
     Just type GRAFIT20 at the DOS prompt and you are ready to begin.  There 
are two command line options:

           GRAFIT20 [notitle] [load:{filename w/o extension}]

The 'notitle' option prevents the opening screen from displaying.  The 
'load:' option allows you to immediately load a file.  Just type the filename 
of the .EGC file WITHOUT extension and with no space between the colon and 
the filename to load the file.

USING GRAF-IT! v2.0
     GRAF-IT! operates on a command line principle.  All commands and 
functions are typed in the box labelled, f(x).  Every command is one letter.  
In order to execute a command, type the letter and press <RETURN>, then 
follow the instructions.
     In order to graph a function, just type the function in and press 
<RETURN>.  A couple of notes on functions: first, there are certain letters 
which are not allowed -- if you press an invalid key such as <SPACE>, you 
will hear a beep, and the character will not appear.  Also, make sure each 
argument inside a function is surrounded by parentheses.
     If the buffer is on (default), all equations are queued into the 
buffer.  To toggle the buffer off, just type T (see the section COMMANDS), 
and the equations will no longer be queued.

COMMANDS
     L -- Load file: Loads up previously saved equations and range values.  
Enter the file name without the extension at the prompt.
     G -- Save file: Saves the current set of equations as well as the 
current range values.  Enter the file name at the prompt.  Will automatically 
add the .EGC extension.
     C -- Clear the graph: Clears the graph.  Does not reset any values.
     I -- Inequality mode: Allows the user to enter inequalities.  At the 
prompt, choose which inequality you want.
     S -- Solve system: Solves a system of inequalities.  There must be two 
or more inequalities in the buffer.  The S command will redraw the graphs and 
fill in the solution, if there is one.  If there is not, the program will 
notify you.
     V -- Vertical line: Lets you plot vertical lines.  Enter a number at the 
prompt (x=?).  In order to enter an inequality of a vertical line, use the I 
command first, then V.
     W -- Redraw: Allows you to redraw equations that are in the buffer.  The 
command prompts you either for the number of the equation, or A for all, or C 
for cancel.
     F -- Replace sign: Lets you change the sign in an equation in the 
buffer.  First select the equation (or C for cancel), then the sign.
     Z -- Display equation: For especially long equations, the buffer will 
truncate the expression.  In order to see the whole equation, use this 
command.
     A -- Add equation: This command lets you put equations into the buffer 
without graphing them.  This is a useful command for demonstration purposes, 
as well as speed (if you are using 8088 machines).
     T -- Toggle buffer: Turns the buffer queue on and off.  The default is 
on.
     P -- Purge buffer: Delete all of the equations in the buffer in one fell 
swoop.  Be careful with this command; once you use it, your information is 
gone forever!
     R -- Set range: Let's you set the range of the graph.  This can be used 
as a zoom function -- change the range, then redraw the equations.  
Limitations of the zoom function: the tic value cannot be set; only integer 
values can be entered.
     E -- Reset graph: Clears the graph and restores the default range 
values.  (X and Y Min = -10, X and Y Max = 10).
     D -- Delete from memory: Allows you to delete individual equations from 
the buffer.
     H -- Help.  The help is not too bad, but it is a little uncomfortable to 
use.
     Q -- Quit.  Self-explanatory.

FUNCTIONS
     The following are all legal functions and operations:
           +   -   *   /   (   )   ^   sqrt   log   ln   exp   sin
           cos   tan   sec   csc   arcsin   arccos   arctan
Remember to keep the arguments inside of the functions surrounded by 
parentheses.
     There is one limitation with the power (^) function.  See the reference 
to error message #5 in the section on ERROR MESSAGES below.

ERROR MESSAGES
     #1 -- Illegal Input Error: The user entered a garbled message.  If you 
enter some unknown function, this error will appear.
     #2 -- Missing Constant or Variable Error: If there are no numbers or 
variables in the expression the user has typed, this error will occur.
     #3 -- Missing Parentheses Error: The parser checks to make sure there is 
a corresponding end parenthesis for every open parenthesis.
     #4 -- Dangling Operator Error: If there is a binary operator with only 
one element, this error is displayed.  (ie. f(x)=+X+1)
     #5 -- Fractional Power Error: Because of a weakness in my parser, if you 
are entering a fractional power expression, it must be in the following form:
           ^({numerator}/{denominator})...
You CANNOT have any expression preceding the numerator or the end 
parenthesis.  The following is an illegal expression:
           X^(1/3+1)
There is a flaw in my parser which is the reason for this.  If you are 
interested in why this does not work, please send e-mail or write, and I will 
be happy to explain.

HISTORY
     In my sophomore year, my math teacher approached me and asked me to 
write some software for the math department.  The math department owned many 
software packages, including the powerful (and quite expensive) IBM Math 
Exploration Toolkit.  None of their packages though, easily graphed 
inequalities.
     Since I had only begin programming in Pascal, I limited this project to 
graphing lines.  The result was a very messy, ugly, and slow program which 
was very susceptible to dying.  Because I was unhappy with the result, I 
decided to totally redesign, rewrite, and expand the software.  The result is 
GRAF-IT! v2.0.

COST AND LEGALESE
     GRAF-IT! was written in Turbo Pascal v5.5, and all algorithms are 
totally original.  It is copyrighted and shareware so if you decide to use 
this software, you must register it.  Registration is $30.00.  Schools may 
use the software for free.
     The only thing I request from schools if they decide to use this 
software, is for them to send me the following information on school 
stationary: (1) School information (grade level, location, etc.); (2) What 
you are using GRAF-IT! for; (3) Opinion of GRAF-IT! and suggested 
improvements; (4) A description of your ideal math software.
     Schools only may order the source code for $100.00 (Excuse the high 
price but I spent a lot of time on it).  Send all registration fees and 
requests to the following address:
           Eugene Kim
           GRAF-IT! v2.0 Registration
           430 East Winnie Way
           Arcadia, CA 91006-4851
If you are registering before June 1993, you may send fees and requests to:
           Eugene Kim
           GRAF-IT! v2.0 Registration
           Canaday C-41
           1700 Harvard Yard Mail Center
           Cambridge, MA 02138-7507
You may also send comments via e-mail at: eekim@husc.harvard.edu.

UPCOMING RELEASE
     I wrote this software in my sophomore year in high school (as evident in 
the Copyright date!).  Since then, not only has my programming skills become 
more sophisticated, so have my math skills.
     I am currently a freshman at Harvard, and I will be teaming up with a 
couple of other students to attempt to produce a very powerful, integrated 
mathematics package.  Currently, packages such as gnuplot and pari, as well 
as professional packages such as Mathematica dominate the market.
     We want to produce a package that is aimed at the educational market.  
The key is customizability; there will be no standard interface -- just an 
engine.  Many interfaces will be included, and once the user reaches a 
certain stage, the user will be able to create his or her own interface.
     As for some of the more mathematical abilities, the new version will add 
several key features:
           -3-d graphing, including transformations and inequalities
           -Support for user-definable and recursive functions
           -More powerful parser
           -Portability (versions for the DOS, Windows, X11, Mac)
           -Advanced scripting language
           -Use of math coprocessor for increase speed
           -Support for future output devices (ie. 3-D VR Glasses)
These are just a few of the features.  In order to get a better idea about 
what sort of features to include, please send me your suggestions.
     Thanks for using GRAF-IT! v2.0.

******************************  END of README  ******************************
