System variables are special reserved variable names used by some of the commands internally. They exist outside the folder structure that the other variables are located in, so they can be accessed in the same way from any folder.

Unlike normal variables, which take between 1 and 10 bytes to reference, system variables always take up 2 bytes, no matter how long the name.

# Graph Variables

## Equation Variables

The equation variables contain the equations that get graphed for each graphing mode. They include:

**y1(x)–y99(x)**in function mode**xt1(t)–xt99(t)**and**yt1(t)–yt99(t)**in parametric mode**r1(θ)–r99(θ)**in polar mode**u1(n)–u99(n)**and**ui1–ui99**in sequential mode**z1(x,y)–z99(x,y)**in 3D mode**y1'(t)–y99'(t)**and**yi1–yi99**in differential equation mode

## Cursor Variables

The cursor variables include **xc**, **yc**, **zc**, **tc**, **rc**, **θc** and **nc**. Some of them are updated whenever the crosshair cursor is being moved around on the graph screen, and are especially useful with the Input command. However, the rules that determine which ones get updated are a little tricky:

**xc**and**yc**are always updated, regardless of any settings.- The rest get updated depending on graphing mode:
**zc**for 3D mode,**tc**for parametric mode,**rc**and**θc**for polar mode, and**nc**for sequential mode. - In addition,
**rc**and**θc**get updated even outside polar graphing mode, if the graph format is set to polar coordinates.

## Window Variables

The window variables define the parameters of the graphing window - they are not only used for graphing, but also with point commands such as PtOn. The most basic of them are **xmin**, **xmax**, **ymin**, and **ymax**: these determine the lower and upper bounds of the window. There are also more advanced settings:

**xscl**and**yscl**determine the distance between tick marks on the axes, if the axes are enabled.**Δx**and**Δy**determine the distance between two pixels next to each other. They are calculated automatically from**xmin**-**ymax**, but you can set them yourself (**xmax**and**ymax**will be adjusted to fit).**xfact**and**yfact**determine the factor by which the window is stretched when you zoom in or zoom out.

Some window variables are specific to graphing mode:

- In function mode:
**xres**determines the number of pixels between sample points for graphs (a higher value means lower quality).

- In parametric mode:
**tmin**and**tmax**determine the range of the variable t when graphing.**tstep**determines the increment of the t variable between two sample points on the graph (a higher value means lower quality).

- In polar mode:
**θmin**and**θmax**determine the range of the variable θ when graphing.**θstep**determines the increment of the θ variable between two sample points on the graph (a higher value means lower quality).

- In sequential mode:
**nmin**and**nmax**determine the n values to evaluate at: u(**nmin**), u(**nmin**+1), …, u(**nmax**) will be evaluated.**plotStrt**and**plotStep**determine the n values that actually get graphed: starting at**plotStrt**, and increasing by**plotStep**each time.

- In 3D mode:
**zmin**and**zmax**(similarly to**xmin**and**xmax**) control the upper and lower bounds of the graphing window, for the z coordinate.**zscl**(similarly to**xscl**) controls the distance between tick marks on the z axis, if the axes are enabled.**zfact**(similarly to**xfact**) controls the factor by which the z-coordinate is stretched when you zoom in or out.**xgrid**and**ygrid**determine the resolution of the wireframe grid.**eyeθ**,**eyeφ**, and**eyeψ**control the viewing angle (**eyeθ**is the angle with the x-axis,**eyeφ**is the angle with the z-axis, and**eyeψ**is a rotation around the resulting line of sight)**ncontours**is the number of contours to graph.

- In differential equation mode:
**t0**determines the t-value for the initial conditions.**tplot**and**tmax**determine range of the variable t when graphing.**tstep**determines the increment of the t variable between two sample points on the graph (a higher value means lower quality).**ncurves**determines the number of solution curves drawn if you don't give an initial condition.**diftol**(with the Runge-Kutta method) and**Estep**(with the Euler method) determine a step size for calculations.**fldres**determines the number of columns for the slope field, if one is drawn.**dtime**determines the point in time at which a direction field is drawn (if one is drawn at all).**fldpic**is a picture variable that stores the slope field to avoid redrawing it if it's unnecessary.

## Graph Zoom

Many of the above window variables have a zoom variable counterpart, prefixed with a z. These are saved by the ZoomSto and ZoomRcl commands.

# Statistics Variables

## Regression models

These variables are created when you calculate a curve to fit a set of data, using one of these commands: LinReg, MedMed, QuadReg, CubicReg, QuartReg, PowerReg, ExpReg, LnReg, or Logistic.

**regeq(x)**is the curve that was calculated, as a function of x.**regcoef**is a list of the coefficients calculated.**corr**is the correlation coefficient (a measure of the direction and goodness of fit) of a linear model.**R**is the square of^{2}**corr**, but can be calculated for all models. A value close to 1 indicates a good fit; a value close to 0 is poor.**medx1**,**medx2**,**medx3**,**medy1**,**medy2**, and**medy3**are calculated by the MedMed method.

## Sample Statistics

These variables are calculated by the OneVar and/or TwoVar commands (only those that deal with one variable are calculated by OneVar).

- $\bar{x}$ and $\bar{y}$ are the averages of each data set.
**Σx**and**Σy**are the sums.**Σx**and^{2}**Σy**are the sums of the squares.^{2}**Σxy**is the sum of the products of matching pairs of the two data sets.**minX**,**maxX**,**minY**, and**maxY**are the minimum and maximum.**Sx**and**Sy**are the sample standard deviations.**σx**and**σy**are the population standard deviations.**nStat**is the number of elements in a data set.**medStat**,**q1**, and**q3**(for OneVar only) are the median, first quartile, and third quartile.

# Other Variables

The rest of the variables don't fit into any of the above categories.

**c1–c99**are columns in the last data variable shown in the Data/Matrix editor.**errornum**contains an error code once an error has occured, for use in Try..Else..EndTry blocks.**eqn**and**exp**are used by the numerical solver (the equation to be solved is stored in**eqn**, and this is set equal to**exp**if the = sign was omitted).**ok**is set to 1. if a Dialog menu has been exited successfully, and 0. if it was exited with the ESC key.**seed1**and**seed2**are the seeds for the random number generator used by rand().**sysData**is the default data variable used by the BldData command.**sysMath**stores the result of any graphing calculation (for example, for calculating the derivative at a point on the graph)**tblStart**and**Δtbl**are used to calculate the table input when it is automatic.**tblInput**stores the table input when it's not automatic.