View this file in a text         ____________
editor such as OPL.             /            \
Use the small font and         /              \
turn the status window         /  ___  ___  \
off.                           /  /      \  \
                               \  \_O//\\O_/  /
Use Ctrl-Menu to turn           \    /__\    /
the status window off.            \      / 
Use Shift-Psion-Z to zoom.         [[[]]]  
                                 \   [[]]   /
                                  \___/\___/
                  ooooO -OO- OooooĿ
                         Graph3a for Psion Series 3x      
                        <Version 1.5      April 2000>     
                   Gareth Wild, 53 Woodhouse Lane, Norden 
                   ROCHDALE, Lancashire, England OL12 7SD 
 <Scroll Down>      <Scroll Down>

Copyright  Gareth Wild 2000
Email:
gazwild@doctors.org.uk

Download latest versions from:
 http://www.man.ac.uk/~mmmc7mar/

Changes since Version 1.4

 Made FREEWARE!

Graph3a is intended to emulate the speed and ease of use of Casio and Texas
Instruments graphical calculators. Cartesian(normal), polar and parametric
graphs can all be drawn. Zooming and tracing options are both available.
The main advantage is the ability to enter equations as they appear on paper
without the need to constantly think about inserting * and ** signs, the
computer does this for you.

eg for 2x-4x+1-4xsin(5x)

   you would enter: 2x2-4x+1-4xsin(5x)
   
   and not: 2*x**2-4*x+1-4*x*sin(5*x)

(See the Easy Equation Input section below for more information)

Help screens are  available to use at virtually any point in the program
by simply pressing the "Help" button. This function will not work if the
\APP\GRAPH3A\grafhelp.rsc file is not present.

These are the files that have been unzipped.
If they are not in the correct directories below you must copy them there.

File          Directory         Comments

Graf3a15.opa  \APP\          The main program
Grafhelp.rsc  \APP\GRAPH3A\  The help screens, can be deleted to free memory
Datafile.odb  \APP\GRAPH3A\  Database of example graphs, view with Psion-O
Readme.txt                   Quick installation information
Graph3a.txt                  This file

<The following file is created by the program on your default drive>
Graph3a.ini   \APP\GRAPH3A\  Stores all preferences and graphs on exiting

Only the application file Graf3a15.opa is essential for the running of the
program, all the rest are just support files and can be deleted to save
memory. The files can be copied to any local drive or C:\ and will be
accessed from there.
It is not wise to copy the Graph3a.ini file to a FLASH SSD. This file is
rewriten every time Graph3a is exited and so would use memory very quickly
on a FLASH SSD.

Memory Information:
Graf3a15.opa is about 33K long and uses about 15K of memory whilst running.

Installation:

1) Install the application in the usual manner by pressing Psion-I and
   selecting Graf3a14.opa on the correct drive at the dialog.
   
2) You may find it convenient to assign a button to the Graph3a application
   so that you can jump to it quickly from other applications.
   This can be done by placing the cursor on the Graph3a application on the
   "Systems" screen, pressing Psion-A and then choosing an appropriate
   combination of keys (such as Control-Calc).
   
    
Quick note for those upgrading from versions 1.0, 1.1 and 1.2:

1. Delete \APP\GRAPH3A\Graph3a.ini before you install version 1.4 or 1.5,
   otherwise you'll generate a 'field not found' error on entering for the
   first time
2. Registered users: you don't have to type your codes in again

Quick Glossary of Keys:

Tab............Used to edit the graph in the current mode
               Also used to input your own values during tracing
 (diamond)....Changes graph mode
Esc............Terminates graphing, printing, zooming and tracing etc.
               Also can be used to exit dialog boxes and the main application
               if nothing is running.
Enter..........Redraws last graph in current mode
Space..........Brings up ranges dialog
Delete.........Clears graph, needs confirmation
Arrow keys.....Scroll graphing area
Menu...........Brings up menus
Help...........Brings up relevant help screens

Psion-O........Retrieve/delete saved graphs
Psion-S........Save current graph for future recall
Psion-N........Edits the graph in the current mode (same as pressing Tab)
Psion-Shift-S..Standard graphs ( sin(x),x,log(x) etc. )
Psion-M........Changes graph mode (same as pressing )
Psion-F........Family On/Off
Psion-T........Trace
Psion-Z........Zoom in
Psion-Shift-Z..Zoom out
Psion-Shift-R..Redraws graph last graph entered (same as pressing Enter)
Psion-C........Clears graph (same as pressing Delete, Delete)
Psion-R........Change ranges manually (same as pressing Space bar)
Psion-Shift-F..Resize grid by X and Y factors
Psion-Shift-D..Defaults ranges
Psion-Shift-B..Basic ranges
Psion-Shift-T..Trig ranges
Psion-Q........Set preferences
Psion-P........Print graph
Psion-D........Use degrees/radians
Psion-A........About Graph3a
Psion-Shift-X..Exit,lose changes
Psion-X........Exit (surprising..eh?)

First Steps:(Tutorial)

Enter the application by pressing Enter when Graph3a is highlighted on the
"Systems" screen.

You can now enter your first graph.

Press Tab or Psion-N, this brings up a dialog where you can enter a graph
as a function of x. Y=X2-x-8 is shown (ie Y=X-x-8). You can type in your
own graph or just leave this as it is.
The 'Speed' line sets the speed of graphing from 1 (slowest) to 20 (fastest)
(graphing on 1 takes about 20 secs but only 1 sec when on 20). This is
originally set to 5 but you can change it. The graph plots less points on
higher speeds, so the look of the graph will be sacrificed for a quicker plot

Press Enter.
The graph will be drawn.

Try out various functions on the menus such as the zoom or trace options.

Terminate any processes you may be in by pressing Esc.

Press Psion-Shift-D to reset to the default ranges.

Try changing the graph mode to polar by pressing Psion-M and selecting polar
before completing the dialog by pressing Enter.

Press Menu. Notice that the Psion-N option has changed from "New Cartesian
Graph" to "New Polar Graph". Highlight this and press Enter.

A similar dialog appears to that for a cartesian graph. Equations must be
typed in as a function of i. The Min and Max lines are the minimum and
maximum values of i to be plotted. The pitch is how often points are to be
plotted, the smaller this is the more accurate the graph, but the slower it
is to plot. The graph of r=8sin(3i) is highlighted.

Press Enter.

The polar graph will have been drawn.

Press Psion-C to clear the polar graph.

Press the  (diamond) key once. This is an alternative to using the Psion-M
option and simply cycles through the graph modes with consecutive presses.

Press Tab or Psion-N to view the Parametric graph dialog. The equations must
be entered as functions of t. Min and Max lines are the minimum and maximum
values of t to be plotted. The pitch dictates how often points are to be
plotted within these values. Change the 'Max' value to 4pi and the 'Pitch'
value to pi/18.

Press Enter to plot the Parametric graph.

Press Psion-Q to have a look through the 'Set Preferences' option.
Try playing around with the various options, the definitions of which can be
found in the list of functions below.
  
If you have a parallel printer you can use the 'Print Graph' option.

Press Psion-F to turn Family On.
Press Psion-Shift-D to set default ranges and set the graph mode
to Cartesian
Press Tab
You will see a new set of options has been added to the New Graph dialog.
Type in (x+1)(x-k) on the Graph Y= line.
Set speed to 5
Set k minimum to 1
Set k maximum to 5
Set k pitch to 1
Press Enter
The following graphs will be drawn in order:
Y=(x+1)(x-1), Y=(x+1)(x-2), Y=(x+1)(x-3), Y=(x+1)(x-4), Y=(x+1)(x-5)

Press Psion-T to trace.
Using the up and down arrow keys you can cycle between the 4 graphs


Aswell as the final graphs, in each mode, being saved on exiting; you can
save an indefinite number of graphs by pressing Psion-S when you have just
entered them. This stores them in \APP\GRAPH3A\DATAFILE.ODB on your default
disk.
These graphs can be retrieved or deleted by pressing Psion-O and browsing
through the datafile. Some information is stored about the speed or pitch of
the graph saved, however ranges, grid on/off, family on/off etc. are NOT
saved. This is to save memory.

MENUS

"File" Menu

1) "Open datafile": (Psion-O)
   Retrieve/delete saved graphs.

2) "Save to datafile": (Psion-S)
   Saves the current graph to the datafile \APP\GRAPH3A\DATAFILE.ODB. Details
   of speed, pitch etc are stored along with the graph.

"Graph" Menu

1) "New ** Graph": (Psion-N) [where ** is Cartesian, Polar or Parametric]
   This option can also be accessed by pressing Tab in the program.
   (See Easy Equation Input section below for details on syntax)

2) "Standard Graphs": (Psion-Shift-S)
   Select from a range of standard cartesian graphs in the dialog.
   The ranges, speed and mode are reset to the correct values if needed.

3) "Graph Mode": (Psion-M)
   (The  (diamond) key can also be used to toggle between graph modes)
   Chooses between Cartesian, Polar and Parametric graphs. A confirmatory
   message appears in the bottom left hand corner when a new graph mode has
   been selected. Pressing Esc in this dialog exits the dialog and retains
   the old graph mode.

4) "Family On/Off": (Psion-F)
   Used to toggle between plotting single and families of graphs.
   When Family is set On, until you turn it off, families of graphs can be
   drawn using the usual Tab or Psion-N to input them.
   Graphs have a common constant k, which starts at a minimum value set by
   you and then draws as many graphs has you have told it to.
   All you do is:
   1. Press Tab to input a family
   2. Input an equation with the usual variable and k as a constant.
   3. Set the speed or pitch as normal
   4. Set a minimum value for k
   5. Set a maximum value for k
   6. Set a pitch for k - this is the step size
   
   eg Y=kx+k, k min=2, k max=4 ,k pitch=1
      draws Y=2x+2, Y=3x+3 and Y=4x+4
      
      it is written down in the top left hand box as:
      Graph Y=kx+k;k=2,4,1
      
NB remember to turn Family Off and edit out any constants (k) when you want
   to plot single graphs again!
   
"Tools" Menu

1) "Zoom in":(Psion-Z)
   A way of zooming in on a portion of the graph. Use the arrow keys to move
   the cross-hairs; Psion-arrow key moves faster. Press Enter where you want
   a corner of the box and then expand it using the arrow keys. Pressing
   Enter a second time redraws the portion of the graph within the Zoom box
   at greater magnification. Pressing Esc at any time will terminate the
   zoom function.

2) "Zoom out":(Psion-Shift-Z)
   All this option does is to double all the current range values and then
   redraw the graph. Use this option to quickly zoom out if the area of the
   graph you have drawn is too detailed.
   NB Xscl and Yscl are not doubled so if you zoom out a couple of times and
      the grid is looking cluttered, increase the Xscl and Yscl values using
      the 'Ranges' option.
   
3) "Trace":(Psion-T)
   Used to find values along the curve of a graph. Values appear in the
   bottom left hand box. If the cross-hairs are not shown on the current
   ranges a small box appears with arrow(s) in it. These arrows give a
   rough indication of where the cross-hairs are outside the ranges.
   The following keys apply:
   
   Left/Right............change value of X, I or T (depends on current mode)
   Ctrl-Left/Ctrl-Right..as above but in greater bounds
   Up/Down...............toggle between graphs (Family On only)
   Home..................Goes directly to the minimum value
   End...................Goes directly to the maximum value
   Tab...................Enter your own value
   Esc...................terminates tracing
   
   If the graph doesn't exist eg sqr(-2) or has an asymptote eg tan(pi/2)
   then this will appear in the bottom left hand box. Your own asymptote
   detection value can be input in the 'Set Preferences' option.
   
4) "Redraw":(Psion-Shift-R)
   Redraws the last graph plotted in the current graph mode.
   (The same effect can be achieved by pressing Enter when nothing else is
    running)

5) "Clear":(Psion-C)
   Clears the graph(s) and redraws the axis and grid (if turned on).


"Range" Menu

1) "Range": (Psion-R)
   Allows the user to input their own graph ranges. Xmin and Xmax are the
   minimum and maximum values of X respectively. Xscl is the value of the
   distance between the incremental marks on the X-axis. Ymin, Ymax and
   Yscl are the Y-axis equivalents.
   If Enter is pressed in this dialog the axes are redrawn.
   Inputs can be in the form 2pi for 2*pi etc. as in the "New Graph" dialog.
   (this option can also be entered by pressing the Space bar when nothing
    else is running)
   
2) "Factor Resize": (Psion-Shift-F)
   This gives you the option to resize the ranges by a factor. Enter the
   factors for each axis (the default is 2).
   Pressing + zooms in by the factors set
   Pressing - zooms out by the factors set
   Pressing Esc cancels the function
   
   
3) "Default Ranges": (Psion-Shift-D)
   Sets the standard -10<X<10 and -10<Y<10 values with a scale on each axis
   of 1.
   
4) "Basic Ranges": (Psion-Shift-B)
   Sets the standard trigonometrical ranges of -10<X<10 and -5.8<Y<5.8
   Xscl is 1 and Yscl is 1. This option will make a circle look like a
   circle (ie not stretched) or Y=X look at 45 to the axes.
   
5) "Trig Ranges": (Psion-Shift-T)
   Sets the standard trigonometrical ranges of
   -2pi<X<2pi and -1.2<Y<1.2 (if using radians)
   -360<X<360 and -1.2<Y<1.2 (if using degrees)
   Xscl is pi/4 (or 45 if using degrees) and Yscl is 0.2
   
"Special" Menu

1) "Set Preferences": (Psion-Q)
   'Plot'-Curve........joins up all plotted points to form a curve
         -Points only..doesn't join up plotted points
   'Grid'-Turns the background grid on and off.
   'Detect Asymptote at'-the value at which the application will record an
         asymptote. Reduce this figure if you are getting vertical/horizontal
         lines where there are meant to be asymptotes. Increase this figure
         if parts of your graph begin to be drawn as dots (and the Plot
         option is not set to 'Points only')
   'Error beep'-Turns the error beep on/off.

2) "Print Graph": (Psion-P)
   Prints the contents of the "Graph" screen to an attached parallel printer.
   NB the background grid is not printed.
   A bar in the bottom left of the screen shows how the print is proceeding
   and regular messages appear displaying the percentage of the screen
   completed.
   The spacing from the left option is originally set to 47mm. This will
   centralise a printout on an A4 sheet. If spacing from left option is set
   too large the printer will print as much of the "Graph" screen as possible
   but inevitably some of the right of the screen will be cut off. Graph3a
   can not be exited when printing is in progress. Printing may be terminated
   at any time by pressing Esc and then confirming the choice to abort the
   print. If a print has been aborted, please clear the memory buffer on your
   printer by turning it off and on.
   If you have a serial printer or for some reason you can't get a print out
   using this 'Print' command then use Psion-Shift-Control-S to capture the
   screen shot as screen.pic in the root directory of your default drive.
   Then use one of the many bitmap editors presently available, such as DRAW
   by Rick Andrews, to print your graph.
   
3) "Use degrees/radians": (Psion-D)
   Most of the time when you're plotting mathematical graphs you want to use
   radians. However, you may occasionally want to plot in degrees.
   In Graph3a version 1.0 if you wanted to do this you would have to use the
   RAD function ie
   
   Y=sin(x) (x in radians)  ----->   Y=sin(rad(x)) (x in degrees)
   
   This is no longer the case in subsequent versions
   If you want to input a trig graph in degrees, just press Psion-D
   A 'Using degrees now' message will appear and you just type in the graph
   as normal. The computer will add the RAD command to the equation in its
   own memory, and the outcome is the required graph.
   
   NB some weird graphs can be produced if you think you are working in
      radians but are still in 'Using degrees' mode in Graph3a.
      Always make sure you are using the correct trig units.
   
4) "About": (Psion-A)
   Displays information about the author and the version code.
   
5) "Exit,lose changes": (Psion-Shift-X)
   Exits the program and keeps the ranges, graphs etc. shown at start up and
   doesn't save the present settings.
   
6) "Exit": (Psion-X)
   Exits the program and save the present settings.
   Exiting can also be done from the 'System' screen, if the program is not
   busy, by pressing Delete on the highlighted Graph3a name, or by pressing
   Esc in the main body of the program (both cases require a confirmation and
   will save the present settings).


Easy Equation Input:

This application uses a simple method of equation input.
You can type in equations with or without * and **.
Equations may be written in upper or lower case letters:
eg 2SIN(3X), 2*sin(3*x) and 2Sin(3*X) are all equivalent

X would be written as X3 (or X**3)
X would be written as X2 (or X**2)

So 3X+4X+9X+1 could be written as:   3X3+4X2+9X+1
                                    or 3*X**3+4*X**2+9*X+1
                                    
I think is easy to see which one is more simple to type and easier to read.

The syntax for functions is the same as in the calculator eg COS(X), SQR(X)
(ie you must put the expression to be executed by the function in brackets)
cosx, sin3x etc. are NOT valid expressions

Graph3a will execute equations with multiple brackets eg

(x+1)x(x-1)(x-2) ..is a valid expression
4(2x-1)2 ..........is a valid expression (ie 4(2x-1))

If you put letters together and they are not interpreted as a function then
Graph3a will multiply them eg

xxx .............executed as x*x*x
ii ..............executed as i*i

If you keep getting an 'Unexpected name' error message on an equation you
really want to enter, type it in long hand ie with * and **.

The following mathematical functions are allowed:
COS,SIN,TAN,ACOS,ASIN,ATAN,RAD,DEG,EXP,LN,LOG,PI,SQR,RND,ABS,INTF

Numbers with decimal parts can be input using a comma (,) or a dot (.) as the
decimal separator. However, a dot is recommended as a comma is used to
separate the parts of a parametric equation when it is displayed on the
screen. Remember that a syntax error will be registered if this is not the
same as your choice of separator in "Number formats" under the "Control"
menu on the System screen.

Things to Note:

The application uses Calc memories M6, M7, M8 and M9 in the calculation of
graphs and during tracing. Don't store information in these memories as it
will be overwritten the next time Graph3a is used.

It is possible to terminate graphing at any point by pressing the Esc key.

As the computer stores key presses in its buffer, if you have kept clicking
on the arrow keys on the "Trace" function and then take your finger off the
button the cross-hairs will continue moving as the computer catches up with
the calculation.

Vertical/horizontal asymtotes are often seen as vertical/horizontal lines.
To remove these play about with 'Pitch' value or 'Speed' values
ie when drawing Y=tan(x) use a low 'Speed'.
You can achieve the same effect by reducing the size of the 'Detect Asymptote
at' line in the 'Set Preferences' option.

It is not possible to bring up a permanent status window by pressing
Control-Menu, however, a temporary status window that contains a clock and
information on the current graph mode may be brought up pressing Psion-Menu.

If you enter a graph that contains the constant k and you are in 'Family Off'
mode, Graph3a will give you the option of turning 'Family On'. Likewise, if
you are in 'Family On' mode and you enter an equation without a k in it,
Graph3a will give you the option to turn 'Family Off'.

Trouble Shooting:

Q. "I've typed in COSX to draw the cosine of x but get an "Unexpected Name"
    error. What am I doing wrong?"
A. "All functions should be entered as they appear in the calculator (with
    brackets)
    eg COS(X) for cosine of x, pi for 3.14159..., ln(x) for the natural log
       of x etc."

Q. "Parts of my graphs are plotted as points when I've not chosen 'Plot
    points only'. How do I prevent this?"
A. "Your 'Detect Asymptote at:' value (found in the 'Set Preferences' option)
    is set too low. Increase it to about 1000"
    
Q. "There are vertical/horizontal lines on the graph where there should be
    asymptotes. How do I get rid of these?"
A. "Reduce the Pitch (or Speed, if in cartesian mode) of the graph. Also
    reduce the 'Detect Asymptote at' value in the 'Set Preferences' option."
    
Q. "When I've aborted a printout, the next graph to be printed has a load of
    weird characters and squiggles printed before it. How do I stop this from
    happening?"
A. "You have not cleared the printer's buffer after aborting the graph, this
    means that there are still bits of redundant information present.
    Resolve this by turning the printer off and on after aborting a graph."
    
Q. "I've tried to draw the graph Y=sin(x) but it looks all squashed up and
    skew. What have I done wrong?"
A. "The most probable explanation is that you have ranges set for a DEGREES
    trig graph but have changed to using RADIANS. Either go back to using
    DEGREES or re-edit you ranges to fit the RADIAN graph"
    
Q. "I've tried to draw the graph Y=sin(x) but it looks all squashed or
    doesn't look like it's been plotted at all. What have I done wrong?"
A. "The most probable explanation is that you have ranges set for a RADIANS
    trig graph but have changed to using DEGREES. Either go back to using
    RADIANS or re-edit you ranges to fit the DEGREE graph"
    
Q. "I've retreived a family graph from the datafile with the constant k in
    it, however, only one graph has been drawn. Why?"
A. "You're set to Family Off at the moment. Press Psion-F to turn Family On
    and then press Psion-Shift-R (or just Enter) to redraw"
    
Q. "I've tried to draw a single graph but a Graphing k=1.. message appears
    in the top right hand corner followed by other messages. However, only
    one graph is drawn. What have I done wrong?"
A. "You're set to Family On at the moment. Press Psion-F to turn Family Off"
    
Q.  "Graph3a won't start-up properly. How can I correct this?"
A.  "Try deleting the \APP\GRAPH3A\GRAPH3A.INI file that contains your
     initialisation settings, and try again."

Thanks to:
My beta testers Marcus Radburn-Smith and my brother Leon for all their help
and suggestions.
Also thanks to John Boyce for his JBbox macro that helped draw the little
graphics in this text file.

Legal Bit:
Copyright  Gareth Wild 2000
This program comes with no warranty of any kind.
Reverse translation of this program is prohibited.
Graph3a is protected against reverse translation.
Bug reports to the address at the start of this file.
