                                  Help Topics

A.  Introduction to CC                  O.  Graphing
B.  List of Features                    P.  Graphing polar and parametric
C.  Keywords:  Constants, Functions             equations
        and Operators                   Q.  3D Graphing
D.  Keywords:  Graphing, Logic,         R.  Creating tables of values
        Programming and Other           S.  Entering lists, sums and products
E.  Entering formulas I                         of values and formulas
F.  Entering formulas II                T.  Lists and vector operations
G.  Using real, complex, hexidecimal    U.  Lists and statistical operations
        and binary numbers              V.  Saving formulas, graphs
H.  Functions and operators                     and data
I.  Variables                           W.  Loading formulas, graphs
J.  User-defined functions                      and data
K.  Differentiation                     X.  Printing formulas, graphs
L.  Integration                                 and data
M.  Solving equations                   Y.  Subroutines
N.  Implicit functions





             Choose a topic by letter -- Push <ESC> to return to CC
                               Introduction to CC

CC is a graphing, programmable scientific calculator.  It runs on any
IBM-compatible PC with CGA, Hercules, EGA or VGA graphics.  To evaluate a
formula, just type it and press <ENTER>; the result will appear in the
Last Result window at the bottom of the screen and as the value of the
variable ANS (for answer).  Here are some examples ( * means multiply,
^ means exponentiation):

     3.4 - 8.2*7.3
     4.6*sin(5.87)
     (3.2 - 4.8)/(5.6 + 7.2)
     4.5^(-3.2)

If a formula is longer than one screen line, just keep typing.  DO NOT PRESS
<ENTER>; pressing <ENTER> terminates and executes a line.  Corrections can be
made to a formula while it is typed.  Use the cursor keys to move the blinking
cursor to any point on the line, erase with the <DEL> or <BackSpace> key and
type new characters.  Error messages can be cleared by pressing any key.

Previously entered formulas can be used again, either with or without changes.
To re-use a formula, move the blinking cursor to it with the cursor keys, make
any changes you desire by adding and erasing characters, then press <ENTER>.

               Push <ESC> for more help, <ENTER> to return to CC
                                List of Features
* Numeric types include real (decimal), complex, integral, hexidecimal and
  binary.
* Mathematical operations include trigonometric, exponential and logarithmic
  functions.  These are defined for real and complex arguments.  Integral,
  hexidecimal and binary values are acted upon by both arithmetic and boolean
  operators.
* Functions and variables may be defined using ordinary mathematical notation.
* Functions of one variable can be graphed in a user-defined window.  Polar
  functions can also be graphed, and curves defined by parametric equations
  can be sketched.
* The graphs of functions of two variables can be sketched, as can surfaces
  defined by parametric equations.
* Functions may be differentiated symbolically and integrated numerically.
* Equations and systems of equations can be solved.
* Functions can be defined implicitly.  Implicit functions can be integrated,
  differentiated and graphed.
* Lists can be defined and then combined with vector operations or acted on
  by statistical operators.  Linear regression is supported.
* Pascal-like subroutines can be defined.  Standard programming structures and
  recursion are supported.
* Data can be imported from and exported to disk files.
* Formulas, functions, subroutines and graphs can be saved and reloaded.
* All input and output, including graphs, can be printed.
               Push <ESC> for more help, <ENTER> to return to CC
                 Keywords:  Constants, Functions and Operators

  Constants     Trig        Exponential   Algebraic   Operators   List
                Functions   Functions     Functions               Functions
    î (Alt-i)     SIN         EXP           +           DIF         LIST
    ê (Alt-e)     COS         LN            -           DIFFG       |
    PI            TAN         SINH          *           IN          MAX
    UNDEFINED     COT         COSH          /           FIN         MIN
    TRUE          SEC         TANH          ^           INTEG       LENGTH
    FALSE         CSC         ASINH         DIV         SUM         AVERAGE
                  ASIN        ACOSH         MOD         PRODUCT     STANDEV
                  ACOS        ATANH         SQRT        SOLVE       REGR
                  ATAN        LNGAMMA       ABS         FSOLVE      LISTGRAPH
                  DEGREE                    ABS         IMPLICIT    HISTOGRAM
                  ATAN2                     INT         TABLE       FREQUENCIES
                  RADIAN                    FRAC        EVAL
                  DEGREE                    RE
                                            IM
                                            BINOM
                                             !




               Push <ESC> for more help, <ENTER> to return to CC
               Keywords:  Graphing, Logic, Programming and Other

        Graphing              Colors      Logic    Programming      Other

    GRAPH      AXISON         BLACK        NOT      PROCEDURE       RANDOM
    QUICKG     AXISOFF        BLUE         AND      FUNCTION        HEX
    SKETCH     WINDOW         GREEN        OR       RETURN          BIN
    DOTGRAPH   ERASE          CYAN         <        IF              INTEGER
    POLARG     KEEPLINE       RED          >        ELSE            PAR
    PARAMG     VARYLINE       MAGENTA      <=       WHILE           SHOW
    LINE       CROSSX         BROWN        >=       REPEAT          HIDE
    RECT       CROSSY         LIGHTGRAY    ==       UNTIL           FORGET
    PLOT       CURRENTCOLOR   DARKGRAY     <>       FOR             PRECISION
    MARK       COLOR          LIGHTBLUE    ISALIST  EXIT            INTOL
    UNMARK     LINESTYLE      LIGHTGREEN            END             INDEPTH
    WRITE@     THICKLINE      LIGHTCYAN             INPUT           SOLVETOL
    WRITE@C    THINLINE       LIGHTRED              INPUTS          TEXTCOLOR
    HORIZDIR   BKCOLOR        LIGHTMAGENTA          WRITE
    VERTDIR    MAXCOLOR       YELLOW                GRAPHICS
    FILL       WINDOWLEFT     WHITE                 TEXT
    GRAPH3D    WINDOWRIGHT                          PAUSE
    PARAMG3D   WINDOWTOP                            BEEP
               WINDOWBOTTOM

               Push <ESC> for more help, <ENTER> to return to CC
                              Entering formulas I

To enter a formula into the Input Window, first the Input Window must be
visible.  If the Subroutine Window is visible, push F10 to switch to the Input
Window.

Formulas are typed using ordinary mathematical notation, except that the
formula cannot use subscripts or superscripts.  Exponentiation is denoted with
a circumflex ^; multiplication by an asterisk * .  Multiplication can also be
denoted by a blank--3.4*1.2 = 3.4 1.2-- or just inferred from context--
(3.2-4.1)*8.3 = (3.2-4.1)8.3 .  Parentheses can be used for grouping and to
control the order of operations.  Without them, exponentiation precedes
multiplication and division, which precede addition and subtraction.  Here are
two examples:

         Math                             CC

      1.4
   3.2    + 4.8                    3.2^1.4 + 4.8

   4.6(3.8-2.1)
   ------------                    4.6*(3.8 - 2.1)/(6.4 - 3.3)
   (6.4 - 3.3)

               Push <ESC> for more help, <ENTER> to return to CC
                              Entering Formulas II

Shorthand for commands:  GR Graph     SK Sketch      PA ParamG
                         PO PolarG    GR3 Graph3d    PA3 ParamG3d
                         WI Window    IMP implicit   Alt-s Sum
                         Alt-q Sqrt   Alt-p pi       Alt-2 ²
                         alt-l <=     alt-m >=

Greek symbols for variable names:  alt-a = α; alt-b = ß; alt-d = δ; alt-g = Γ;
                                   alt-f = φ; alt-t = Θ; alt-h = ε; alt-o = Ω

In general, the seperators  ,  (comma)  ;  (semi-colon)  'TO' 'STEP' '=' may be
used interchangeably.  They are allowed for expressiveness only;

                 SUM(f(x); x = 0 to 1 step 0.1)

means the same as

                 SUM(f(x),x,0,1,.1).

The one exception to this rule is in derivatives.  Dif(f(x),x=n) means evaluate
the first derivative of f(x) at x = n; Dif(f(x),x,n) means differentiate f(x)
n times without specifying a value for x.  See help screen on differentiation.

               Push <ESC> for more help, <ENTER> to return to CC
              Using real, complex, hexidecimal and binary numbers

Real (decimal) numbers are entered either in the usual way or in exponential
notation.  Blanks and parentheses are not permitted in numbers, including
numbers in exponential notation.  All the following numbers are equal:
   3.4   3.400   0.34e1   .034E02    34E-1    340.0e-2

The value π = 3.14159 is entered as  PI  or  Alt-p ; e = 2.71828 is entered as
Alt-e  and denoted  ê  on the screen.

Complex numbers are entered in the form  a + bî , where  a  and  b  are real
and î is entered with Alt-i.  For example:  3.4 - 8.2î.

Hexidecimal numbers up to 8 hex digits are preceded by a dollar sign $, for
example:  $10  $a1   $FFFFFFFF .  Binary numbers up to 32 bits are preceded by
a pound sign # : #10    #10101010110 .

Hexidecimal, binary and integer values can be combined with arithmetic
operators or boolean operators  AND  OR  NOT .  Arithmetic with hexidecimal and
binary numbers, including combinations of these numbers with integers, is
performed modulo 2^32.  However, division of hex and binary numbers is treated
as real division; to perform integer division use  DIV  and  MOD .


               Push <ESC> for more help, <ENTER> to return to CC
                            Functions and operators

Infix Operators:  + - * / ^ DIV MOD AND OR
  DIV and MOD are integer quotient and remainder
  AND and OR apply to hex and binary values

Arithmetic Functions:  SQRT ABS INT FRAC RE IM BINOM ! ²
  ABS(x)=│x│;
  INT and FRAC = integer and fraction part of real or complex number;
  RE and IM are real and imaginary parts of complex numbers;
  BINOM is binomial coefficient;
  n! = 1*2*3*...*n (n factorial)--n must be an integer >= 0;
  ² is entered as Alt-2--x² = x*x is faster than x^2.

Trigonometric Functions:  SIN COS TAN COT SEC CSC ASIN ACOS ATAN ATAN2
  ATAN2(x,y) is the polar angle of the vector (x,y).

Exponential and Logarithmic Functions:  LN EXP LNGAMMA

Hyperbolic Functions:  SINH COSH TANH ASINH ACOSH ATANH

Transfer Functions:  INTEGER HEX BIN
  These change the way a number is represented

               Push <ESC> for more help, <ENTER> to return to CC
                                   Variables

The results of CC's calculations can be saved in variables.  Variable names can
contain up to twelve characters and must begin with a letter.  To assign a
result to a variable, enter a line like:

    x = 4*sin(pi/3)
    y1 = 3*ln(4.2)
    b = x/5

Once defined, variables can be used like numbers in formulas.  Whenever you
execute a formula containing a variable, the formula uses the current value
of the variable, not the value held by the variable when the formula was
originally entered.  This rule applies particularly to the case where a
formula is entered with a variable, the value of the variable is changed, and
then cursor is moved back to the original formula which is executed again.

Expressions with undefined variables are allowed.  CC will evaluate them as
far as possible and return a symbolic result.  If the undefined variable is
later defined, the expression using the variable can be evaluated again, and
the value will be substituted for the variable.



               Push <ESC> for more help, <ENTER> to return to CC
                             User-defined functions

You can define your own functions much as you would in ordinary mathematics.
Function names can be up to 12 characters long and must begin with a letter.
Functions can use one or more variables.  Here are some examples:

    f(x) = sin(3*x)
    g(x,y) = x*ê^y

Once defined, functions can be evaluated, differentiated, integrated and
graphed just like any other expressions.  Functions can also be used as a
component of other expressions:

    Compute a value:   f(3)*7
    Define a function:  h(t) = g(3,t)/4
    Define a variable:  k = g(sin(3),cos(4))








               Push <ESC> for more help, <ENTER> to return to CC
                                Differentiation

Any expression using variables can be differentiated with respect to any
variable.  CC differentiates expressions symbolically.  You may also specify
a value to be substituted for the variable of differentiation and the order of
the derivative.  The general format for the derivative is:

       Dif(f(x),x=a,n)

If the value  a  is not specified, then  x  in the derivative will be given
whatever value it has previously been assigned.  If  x  is undefined, then the
formal derivative of  f(x)  with respect to  x  is returned.  If you do not
specify the order  n  of differentiation, then the function will be
differentiated once.  Here are some examples, with their output:
      dif(x^3, x=4)      48
      dif(x^3, x=4, 2)   24
      dif(x^3,x)         3x^2
      dif(x^3,x,2)       6x
      f(x,y) = x*sin(y)  function definition
      dif(f(x,y),x)      sin(y)
      dif(f(x,y),y,2)    -x sin(y)

The operator DiffG(f(x),x=a) graphs f(x), graphs the tangent line at x=a,
and returns the first derivative of f(x) at x=a.
               Push <ESC> for more help, <ENTER> to return to CC
                                  Integration

You can integrate any expression between any two finite limits.  CC computes
integrals numerically, so the expression to be evaluated and the limits must be
completely defined.  If the integrand has a singularity (like 1/x from 0 to 1),
then the best possible value will be calculated for the integral and an error
warning will be displayed on the screen.  Results so flagged should be used
with caution.  Here are some sample integrals with their values:

     In(x^2, x = 0 to 1)         0.5
     In(sin(x), x = 0 to pi)     2

Functions can be defined with integrals, and expressions with integrals can
be differentiated.

     f(x,y) = In(sin(x*t), t = 0 to y)   function definition
     Dif(f(x,y),x)                       In(t*sin(x*t), t=0 to y)
     Dif(f(x,y),y)                       sin(x*y)
     Dif(f(pi/2,y), y=1)                 1

The operator InteG(f(x),x=a,b) causes the graph of f(x) to be drawn in
the current window, fills in the area between the curve f(x) and the
x-axis in the region a ≤ x ≤ b, and returns the value of the integral.

               Push <ESC> for more help, <ENTER> to return to CC
                               Solving equations

To solve an equation, you must specify not only the equation to be solved,
but also the variable to be solved for and a first guess for the solution.
The result is returned in the variable solved for.  Here are some examples:

      Solve(x^2 = 2, x=1)      returns x = 1.414...
      Solve(cos(x)=x, x=0)     returns x = 0.739085

Equations are solved numerically, so equations with symbolic solutions cannot
be solved.  Systems of equations can be solved as easily as single equations.
Just specify the variables to solve for and initial guesses for each one.

       Solve(x*y = 6, x+y = 6, x = 3, y = 2)
              returns x = 4.732051, y = 1.267949

A system of equations must have as many variables as equations.

In general, if the equation(s) have more than one solution, then the solution
nearest the initial guess will be returned.

See Implicit Functions for information on defining functions using the
solutions to equations.

               Push <ESC> for more help, <ENTER> to return to CC
                               Implicit functions

Implicit functions of one or more variables can be defined.  The number of
equations must equal the number of variables to be solved for.  Here are some
examples:

     f(x) = Implicit(t^2 = x, t = 1)
                this is a fancy version of f(x) = sqrt(x)
     f(x) = Implicit(a+b = x, a*b = x^2, a = 0, b = 1)
     f(x,y) = Implicit(a*b^2 = x, a+2*b = y+1, a = 1, b = 1)

The last two functions return a pair of values for each input.  The values are
returned in a list (see Help for Lists).











               Push <ESC> for more help, <ENTER> to return to CC
                                    Graphing

Any expression with one undefined variable can be graphed.  First the region
to contain the graph must be specified with the Window command:

     Window(xmin, xmax, ymin, ymax)

where the horizontal axis will include (xmin,xmax) and the vertical axis the
interval (ymin, ymax).  Then the function can be graphed with the command:

     graph(f(x),x)

You must specify the variable to graph with respect to.  Here are some sample
graphing commands:

     graph(sin(t),t)
     graph(cos(x)*sin(x),x)

Multiple graphs can be superimposed on the same screen.  The crosshairs can be
moved with the cursor keys to any point on the graph, and the coordinates of
the point can be seen in the lower-right corner of the screen.  The graphics
screen can be erased with the command  Erase .  To draw graphs more quickly
but less accurately, use the command  Sketch  instead of  Graph.  Anytime you
are viewing a text screen, you can recall the last graph by pressing F9.
               Push <ESC> for more help, <ENTER> to return to CC
                    Graphing Polar and Parametric equations

The polar function r = f(Θ) can be graphed over the region  0 < Θ < 2π
(the symbol Θ is entered with alt-t) with the command:

      PolarG(f(Θ), Θ = 0 to 2*pi)

For example:

      PolarG(sin(6*Θ), Θ = 0 to 2*pi)

To graph a parametric equation, you must specify both components and the range
of the parameter to use, for example:

      Paramg(t^2, t^3, t = -1 to 1)              graphs a cusp
      Paramg(3*cos(t), 2*sin(t), t = 0 to 2*pi)  graphs an ellipse

Before drawing a polar or parametric graph, a window (See Graphing) of the
appropriate size must be created.  Polar and parametric graphs are drawn with
200 points.  To use a different number of points, add the number desired after
range of the parameter.  To use only 100 points, for example, enter:

      PolarG(sin(6*Θ), Θ = 0 to 2*pi, 100)

               Push <ESC> for more help, <ENTER> to return to CC
                                  3D Graphing

To display the graph of the expression f(x,y), enter the command:

     Graph3d(f(x,y), x=a to b; y=c to d; e to f; n)

where (a,b) is the domain of x, (c,d) is the domain of y, and only values of
f(x,y) in the range (e,f) will be graphed.  The number of values of x and y
which are used is n.  The smallest useful value of n is 10, and the largest
permitted is 30.  For example:

     Graph3d(x^2 - y^2, x=-1 to 1, y=-1 to 1, -1 to 1, 15.

To graph a parametric surface, you must specify the three parametric equations,
the limits of the two parameters, the limits on each of the three axes for
graphing, and the number of values of each parameter to use.  For example, to
graph a sphere:

     Paramg3d(sin(s)*cos(t), sin(s)*sin(t), cos(s); s=0 to pi, t=0 to 2*pi;
       -1,1;-1,1;-1,1;15)

Semicolons and commas are the same to CC; they are used above for clarity.  The
Window command has no effect on 3d graphing, and 3d graphs may not be
superimposed.
               Push <ESC> for more help, <ENTER> to return to CC
                           Creating tables of values

To make a table of up to 22 values for one or two expressions, use the command
TABLE and specify the function(s) to be tabulated, the first and last values
for the variable, and the amount to increment the variable.  For example:

     Table(e^x, x=0 to 1 step 0.1)
     Table(x, sin(x), x = 0 to pi/2 step pi/40)
















               Push <ESC> for more help, <ENTER> to return to CC
            Entering lists, sums and products of values and formulas

The value of a variable can be a number or expression with undefined variables,
or it can be a list of such values.  To create a list, either specify the
entries between square brackets or use the LIST command:

      x = (0,1,4,9,16)                     These are the same
      x = List(x^2,x=0 to 4 step 1)        lists

Lists can be combined with the concatenation operator |, an existing entry
in a list can be extracted as x[3], for example, or a sublist x[3:5] can be
extracted from a list.  The first entry in a list has index 1.  An existing
entry in a list can be changed by entering, for example, x[3] = 5, but
a new entry cannot be created this way.  If you want to put 5 at the end of
an existing list  x , use:  x = x|5 .

Similar to LIST are the commands for summing and multiplying a sequence of
values.  To add or multiply the odd numbers from 1 to 15, enter:

      Sum(x, x=1 to 15 step 2)
      Product(x, x=1 to 15 step 2)
                                    2       n
To define the function f(x,n) = x+2x +...+nx   enter:
      f(x,n) = Sum(i*x^i, x=1 to n step 1)
               Push <ESC> for more help, <ENTER> to return to CC
                          Lists and vector operations

Lists can be added or multiplied term by term or multiplied by a scalar.  Any
built-in function applied to a list will be applied to each element in the
list.  For example:

       3*(1,2,3)                               = (3,6,9)
       (1,2,3)+(4,5,6)                         = (5,7,9)
       (1,2,3)*(4,5,6)                         = (4,10,18)
       sin((0,pi/2,pi))                        = (0,1,0)

If  x  is a list, then Sum(x) is the sum of the elements of x, and product(x)
is their product.

User-defined functions can have list arguments.  For example,

       Norm(x) = sqrt(sum(x^2))

returns the norm of any list considered as a vector.  Here, x^2 is a list of
the elements of x all squared, sum(x^2) is the sum of the squares of the
elements of x, and sqrt(sum(x^2)) is the square root of the sum of the
squares, which is the norm of x.


               Push <ESC> for more help, <ENTER> to return to CC
                        Lists and statistical operations

If  x  is a list, then AVERAGE(x) is the average of the entries of x, and
StanDev(x) is their (sample) standard deviation.  Sum(x) is the sum of the
elements of x, and Product(x) is their product.  Length(x) is the number of
elements in x.

If  x  and  y  are both lists of the same length, then r = Regr(x,y) returns a
list of three terms:  r[1] is the slope of the regression line through the
points (x[i],y[i]), r[2] is the y-intercept of the same line, and r[3] is the
coefficient of regression for the data.

The points (x[i],y[i]) can also be graphed, provided they are in the current
window, with the command mark(x,y).  They can be connected with line
segments by entering the command ListG(x,y).  To graph the points (x[i],y[i])
and the regression line through them, enter the commands:

     r = regr(x,y)                 find regression coefficients
     mark(x,y)                     graph the points
     Graph(r[1]*t+r[2],t)          graph the regression line

For information about reading data from external files, see Help on
Loading formulas, graphs and data.

               Push <ESC> for more help, <ENTER> to return to CC
                        Saving formulas, graphs and data

To save your current formulas, variable and function definitions and
subroutines on disk for later use, push the function key F7 and enter the
name of the file for saving.

To save a graph on disk for later loading, push function key F7 while the
graph is displayed and enter the name of the file for saving.

To save the value of a single variable on disk, push function key F2 and
select option 8.  This process is most useful for saving the contents of a
list variable.  An ASCII file containing the value(s) of the variable will be
created, with one value on each line..  This file can be read back into CC
(see Help on Loading formulas, graphs and data), printed, or used as input to
another program.

To make an ASCII file containing a list of all the entries in the Input
Window, all the subroutines in the Subroutine Window, and the values of all
the variables, press F2 and select option 7.





               Push <ESC> for more help, <ENTER> to return to CC
                       Loading formulas, graphs and data

To load a suite of formulas, definitions and subroutines saved previously with
function key F7 (see Help on Saving formulas, graphs and data), press function
key F8, select option (C)alculator entries and specify the file name to recall.
Everything saved will be appended to the end of the current contents of the
Input and Subroutine Windows.

To load a graph previously saved to disk (see Help on Saving formulas, graphs
and data), press function key F8, select option (G)raph and specify the file
name to recall.  The graph will be displayed and will become your "Last Graph".

To load data into a variable, you must have a file containing the data to be
loaded represented as decimal numbers in ASCII strings, one per line.  The file
created by F2, option 8 (see Help on Saving formulas, graphs and data) is in
this format and may be read into a variable, or you can create your own data
file to read into a variable.  Press function key F8 and select option
one (V)ariable, then specify the variable to be filled and the file to load
from.  The data will be loaded into the variable, which will be a list variable
whose elements are the data loaded.




               Push <ESC> for more help, <ENTER> to return to CC
                       Printing formulas, graphs and data

To make a running record of all the entries into CC and all the results, press
function key F2 and select option 1.  To stop making this record, press F2 and
select option 2.

Instead of making a running record, it is possible to print the current
contents of the Input Window, all the Subroutines, and all the variables and
their values.  You can do any one of these operations or all of them by
pressing F2 and selecting one of the options 3..6.

To print a graph on your printer, press F2 while the graph is visible and
select option (P)rint graph.  To save a graph on disk in a file containing all
of the codes necessary to print the graph, press F2 while the graph is visible
and select option save on (D)isk.  You will be asked for the type of printer to
be used (IBM, Epson or HP compatible), and a graphics file will be created that
can be printed by copying it to the printer of appropriate type.

The first time the printer is used, the printer type must be specified.  CC
knows four printer types:  Epson, IBM, Hewlett-Packard LaserJet and neither
(generic DOS text printer). Once the printer type is specified, it can be
changed by pressing F2 and selecting option 9.  Graphs cannot be printed to a
generic printer.

               Push <ESC> for more help, <ENTER> to return to CC
                                  Subroutines

Subroutines are entered into the Subroutine Window, which is reached by
pressing F10.  Pressing F10 again returns to the Input Window.  Subroutines
are of two types, Procedures and Functions.  Each is a list of variable and
function definitions similar to those in the input window together with
control structures that can only be used in subroutines.  Functions differ
from subroutines only in that functions can include the command Return(..),
which causes the subroutine function to return a value.

Subroutine headers can include parameters that are determined when the
subroutine is called.  The parameters can be variables which receive ordinary
or list values, or they can be function parameters that allow function
definitions to be passed to a subroutine.  Subroutines are called from the
Input Window or from other subroutines.  They can call themselves recursively
either directly or indirectly.  Infinite recursion results in a stack overflow
that is trapped and generates an error message.

Subroutine writing is too complex to deal with in these short screens.  See
the manual for details.




               Push <ESC> for more help, <ENTER> to return to CC
