If you wish to return to the top of this page,
click the little blue arrow thingys that look like this
.
Chapter Thirteen: Setting Modes
Chapter Fourteen: Drawing
Chapter Fifteen: Advanced Drawing
Chapter Sixteen: Saving Pictures
Chapters 13-16 Review
Back to tutorial index | Part Three | Part Five
Yeah, I know I said this whole chapter would be all about graphics. Since certain mode settings are required for drawing, as well as other things, I decided to include them here.
WHAT THE HECK DO YOU MEAN BY SETTING MODES?
The calculator has several different settings that can be changed. They are called modes and they control almost everything on the calculator, from how decimal numbers are displayed to how equations are graphed. Here are the settings that can be changed:
Notation
The
TI-83 and TI-83 Plus can display numbers in one of three different
formats. The first is Normal, which displays numbers
in the usual way. For example: 12345.67. Then there is
Scientific
notation, which displays results
as a number greater than 0 and less than 10 raised to a power of 10.
For example, 12345.67 would be 1.234567E4, which is 1.234567 x
104, or 12345.67. Then
there is Engineering
notation, which is like
scientific notation, but the number to the left can be greater than 0
and less than 100, and the power-of-10 exponent is always a multiple
of 3. Example: 123.4567E3.
HINT: Even if you are in
Normal mode, you can use scientific notation to express numbers by
typing them as shown above. You type the E by pressing
[2nd] [ , ].
Decimal Places
You can set the number
of decimal places you want the calculator to recognize. This setting
applies to the whole calculator, including everything from
calculations on the home screen to the Y= editor to the table. You
can have it set on Floating, which means that the
number of decimal places changes depending on the number, or
fixed from 0 to 9 decimal places. These
decimal places are always shown, even if the number doesn't extend
that far. Examples:
Floating:
12345.67
Fixed to 1 decimal place: 12345.7
Fixed to 4 decimal places: 12345.6700
Any decimal places that extend past the fixed limit are rounded. If the calculator is fixed to 0 decimal places then only whole numbers are displayed.
Unit of
angle measure
I
don't really know what this is because I haven't taken trig yet. All
I can say is that angle values can be displayed in Radians or Degrees.
Graphing
type
This changes what types
of equations are graphed It can be set for Function, Parametric, Polar, or Sequence graphing. Since I'm
only in Algebra 2 (honors, I might add), I've only used function
graphing so far, where Y is a function of X.
Connect
graph points
This determines whether
the points on a graphed function are connected with lines or just the
points are drawn. It can be set at Connected or Dot.
Plotting
simultaneously or in order
This tells whether
multiple function graphs are drawn Sequentially, one after the other,
or Simultaneously, all at the same
time.
Complex
number format
Once again, I have no
idea what a complex number is, but maybe you do. I will just spit out
what the TI-83 manual says: Real mode does not display
complex results unless complex numbers are entered as input.
a+bi (Rectangular complex
mode)
displays complex numbers in the form a+bi. re^0i (Polar complex
mode)
displays complex numbers in the form re^0i.
Split
screen
The
TI-83 and TI-83 Plus have the capability of displaying two screens at
once, called split
screen.
The first mode is Full, in which the screen is
not split, then there's Horizontal, where the screen is
split horizontally, and the top half displays the graph screen and
the bottom half displays the home screen. The last mode is
Graph-Table mode where the screen
is split vertically and the graphscreen is on the left side and the
table is on the right side.
As well as the modes, you can also set several graph formats.
Cursor
coordinates
Changing this setting
changes whether the coordinates displayed at the bottom of the graph
screen while the cursor is active are the Rectangular graphing
coordinates, X and Y, or the
Polar
graphing coordinates, which display the
cursor location in relation to R and 0 (theta).
Coordinates
on/off
This
determines whether the cursor coordinates displayed at the bottom of
the screen while the cursor is active are On or Off.
Grid
off/on
This
tells whether the grid, which is made up of dots placed on the screen
"in rows that correspond to the tick marks on each axis" (from the
TI-83 manual) is Off or On.
Axes
on/off
This tells whether the
axes are On or Off.
Labels
off/on
This
tells whether the labels for the axes are Off or On. If the axes are off
the labels are also off.
Expression
on/off
This
tells whether or not to display the current expression in the
top-left corner of the screen. It is either On or Off.
Phew! That's a lotta modes. Now I'll tell you how to change them and how to change modes from within a program.
CHANGING MODES
OK. Press the [MODE] button. The mode menu should show up:

As you can see, there are all the modes we talked about above (not the graph formats). They are abbreviated, but you shouldn't have that hard of a time trying to figure it out. Use the arrow keys to move around the menu and press [ENTER] to select a mode. Press [CLEAR] or [2nd] [MODE] (QUIT) to exit. Changes are automatically saved. And by the way, G-T stands for graph-table, not an alcoholic beverage.
CHANGING GRAPH FORMATS
To access a menu with all the graph formats, press [2nd] [ZOOM] (FORMAT). You should see this menu:

The FORMAT menu is used the exact same way as the MODE menu. I don't need to re-explain; just read above.
CHANGING MODES AND GRAPH FORMATS WITHIN A PROGRAM
This is so easy.
Step 1. Get into the program editor somehow.
Step 2. Bring up the MODE or FORMAT menu. None of the options should be highlighted. Position your cursor over the one you want and press [ENTER]. The command is automatically pasted into the program! Cool!
Note that when you fix the number of decimal places from within a program, the command is Fix x, and not just the number of decimal places.
USING THE SPLIT SCREEN
If you want to create a program with a really good interface, use a Horiz split screen. Output can be displayed on the graph screen and input can be taken from the home screen simultaneously. My programs TI-83 Instant Messenger II, The Quadratic Formula 2.0, and Amazing Airspace! use this format.
Everyone loves a split screen. Just be sure it gets set back to Full when you quit or you'll piss many people off.
And about writing text on the graph screen. You'll learn about that in Chapter 15.
<excitement> Yes! Now we finally get to draw! </excitement>
SETTING UP THE DRAW SCREEN
Before you get to play with points and lines and circles, we've gotta do some stuff to the graphscreen.
This is all being done from the Program Editor.
If you have any Y= functions or stat plots on the graph screen, you will need to turn them all off. To do this from within a program, use the FnOff and PlotsOff commands. FnOff can be found under VARS \ Y-VARS \ On-Off... \ 2. Yes, you press [VARS] to get the VARS menu, and VARS stands for variables. PlotsOff can only be typed from within the program editor, under STAT PLOT \ PLOTS \ 4. (Press [2nd] [Y=].)
This assures that no lines or graphs will interfere with your drawing.
If you want to turn functions or plots off when you're not in a program, press [Y=].
Take this
screen for example:
As you can see,
Plot1 and Plot 3 are highlighted. This means that they are active and
will be displayed on the graph screen. To de-activate them, move the
cursor up to each one and press [ENTER] to de-select them. Also
in this diagram the equal signs next to Y1 and Y3 are highlighted. This
means that they too will be displayed. Move the cursor to each equal
sign and press [ENTER] to de-select them.
Plots and functions can be re-activated by doing the same thing to an
inactive plot or function.
FnOff and PlotsOff can also be used to turn off just a certain plot or plots, or function or functions. Simply include the number of the plot or function, or multiple plots or functions separated by commas after the command.
When you're done, just remember to re-enable the plots and/or functions with the FnOn and PlotsOn commands.
After that, you might want to turn off the axes. If the axes will interfere with your drawing, by all means turn them off, using the AxesOff command. It can be found in the FORMAT menu (see chapter 13). If you turn them off it would probably be a good idea to turn them back on.
The first drawing command you will learn is ClrDraw. It clears all drawings, but functions and plots stay unchanged. It can be found in the DRAW menu, which is found by pressing [2nd] [PRGM] (DRAW). It is item number 1.
THE WINDOW TO THE WORLD
Before we go any further you should understand the coordinate system and how the viewing window works.
The calculator uses the Cartesian coordinate system, meaning that the screen is arranged like this:

You can change the range of coordinates that are displayed. This range of coordinates is called the window. To change it, press [WINDOW]. The Window Editor shows up:

The Window Editor is used for changing the coordinates that are in view in the graphing window. These are the default settings, but they may not always be the best. Here are what each value means:
Xmin: the X coordinate at the
far left of the screen
Xmax: the X
coordinate at the far right of the screen
Xscl: the
number of coordinates between tick marks (set to 0 for no tick
marks)
Ymin: the Y
coordinate at the bottom of the screen
Ymax: the Y
coordinate at the top of the screen
Yscl: the
number of coordinates between tick marks (set to 0 for no tick
marks)
Xres: Hard
to explain. For function graphs only, it determines the number of
pixels between the points plotted, or the resolution of the graph.
Smaller Xres numbers make a sharper graph, larger Xres numbers make a
more blocky graph. It doesn't affect drawing.
If the values are crazy numbers, you will have to make the window coordinates "friendly". Here are some commands that will help. They are all found in the ZOOM menu by pressing [ZOOM]:
ZStandard: Sets the default
window coordinates.
ZSquare: Since the screen is a
rectangle, this command adjusts the proportions and makes a square
screen.
ZDecimal: Makes each pixel equal
0.1
ZoomStat: Changes the window to
show all of a stat plot
ZoomFit: Changes the window to
fit all of a function graph
These zooming commands can all be put in a program the same way as a mode or graph format setting. It's a good idea to put a ZStandard at the beginning of all drawing programs.
To set the window coordinates from the home screen or a program, store a value to any of the 7 window variables (Xmin, Xmax, etc.) They can all be found in the VARS \ Window... \ X/Y menu. Example:
:-20->Xmin:20->Xmax
:-20->Ymin:20->Ymax
:1->Xscl:1->Yscl
OK. Now we get to draw stuff!
GET STRAIGHT TO THE POINT
The simplest element of the drawing is the point. A point is just a dot, a single pixel on the screen. There are two ways to draw points: right on the graph screen, and from within a program.
To draw a
point from the graph screen:
First
get onto the graph screen by pressing
[GRAPH]. Then select
Pt-On( from the DRAW \
POINTS
menu. It's item number 1. The cursor should be blinking. Move the
cursor around, and press [ENTER] and a point will be
drawn. Here are some points:

To draw a
point from the home screen or within a program:
Select
Pt-On( from the DRAW \
POINTS
menu. It is used like this: Pt-On(x,y[,point-style]) x and y are the x and y
coordinates of the point (x is horizontal, y is vertical).
point-style is optional, and it
determines the shape of the point that will be plotted. 1 = 1 pixel
dot, 2 = box, 3 = cross. Here's what they look like:

Here's a little program that plots points of random styles at random locations on the screen.
:PlotsOff
:FnOff
:ZStandard
:AxesOff
:ClrDraw
:For(I,1,50
:randInt(-20,20)->X
:randInt(-20,20)->Y
:randInt(1,3)->S
:Pt-On(X/2,Y/2,S)
:End
This program can be used to make some pretty nifty starfields.
Just like you can draw points, you can erase them, with the (guess...) Pt-Off( command. It is used the same way as Pt-On(, and remember, if you want to completely erase a point, the erasing point has to be the same style as the point you want to erase.
You can also use Pt-Change( to invert a point. If the point is on, it turns off, if the point is off, it turns on. It works like Pt-On( and Pt-Off(, but you cannot specify a style.
All three of the Pt- commands can be used on the graph screen.
There is also another way to plot points, but it is very different.
This new method lets you turn on and off the pixel (single dot on the screen) of your choice. You do not use Cartesian coordinates, though. The coordinates you give these commands refer to the row and column of a pixel, and they are the same values that the TI-83 and TI-83 Plus use internally.
These are the Pxl- commands. Since the screen is 96 pixels by 64 pixels, these are the coordinates:

The Pxl- commands work somewhat like the Pt- commands. There are four of them, Pxl-On(, Pxl-Off(, Pxl-Change(, and pxl-Test(. They are used like this:
Pxl-On(pixel-row,pixel-col)
Pxl-Off(pixel-row,pixel-col)
Pxl-Change(pixel-row,pixel-col)
pxl-Test(pixel-row,pixel-col)
pixel-row is the row of the pixel you want, and pixel-col is the column of the pixel you want.
pxl-Test( returns 0 or 1 depending on whether a certain pixel is on or off.
Remember that
pixel-row must be from 0 to 62,
and pixel-col must be from 0 to
94.
If you are using a Horiz split screen, the maximum for
pixel-row is 30.
On a G-T split screen the maximum for pixel-row is 50, and the maximum
value for pixel-col is 46.
MAKING LINES
OK, what fun is a drawing with just points? Now we get to make lines!
The first thing we're gonna do is learn how to make horizontal and vertical lines that go across the whole screen.
To do this
from the graph screen:
Press
[GRAPH] to get onto the graph
screen. Then press [2nd]
[PRGM] to
get the DRAW menu, and select
Horizontal, which is DRAW \
3, or
Vertical, which is DRAW \
4. Now move
the cursor to the place you want, and press [ENTER] to draw the
line.
To do this
from the home screen or the program editor:
You
also use the
Horizontal and Vertical commands, and they are
in the same location. They are used like this:
Horizontal y
Vertical x
Yes, you must specify an x coordinate for the Vertical command, and a y coordinate for the Horizontal command.
Little example thing that draws random horizontal and vertical lines:
:PlotsOff
:FnOff
:ZStandard
:AxesOff
:ClrDraw
:For(I,1,5
:Horizontal randInt(-10,10)
:Vertical randInt(-10,10)
:End
This program makes some cool pictures. It almost looks like modern art!
Now we'll learn how to make lines that can go in any angle.
To do this
from the graph screen:
Press
[GRAPH] to get onto the graph
screen. Then press [2nd]
[PRGM] to
get the DRAW menu, and select
Line(, which is DRAW \
2. Move the
cursor to where you want to make the first point and press
[ENTER]. Then move the cursor
to where you want the second point and press [ENTER] again to make the
line.
To do this
from the home screen or in a program:
Guess
what? You use the same command, and it's in the same exact place, but
that's kinda obvious. Here's how it's used:
Line(x1,y1,x2,y2[,erase])
x1 and y1 are the x and y coordinates of the first point, and x2 and y2 are the x and y coordinates of the second point. erase is optional. If erase is 0 then the line is erased instead of drawn.
Here's my "connect the dots" program:
:PlotsOff
:FnOff
:ZStandard
:AxesOff
:ClrDraw
:0->V ----- V and W are the
coords. of point 1.
:0->W
:For(I,1,20
:randInt(-10,10)->X ----- X and Y are the
coords. of point 2.
:randInt(-10,10)->Y
:Pt-On(X,Y,2
:Line(V,W,X,Y
:X->V ----- Once the line is
drawn make point 2 point 1.
:Y->W
:End
Cool!
Now we get to learn to draw cool things!
A PERFECT CIRCLE
Yes, we get to draw circles now. Like practically everything else, they can be drawn either on the graph screen or from the home screen or a program.
To draw a
circle from the graph screen:
Press
[GRAPH] to get onto the graph
screen. Then press [2nd]
[PRGM] to
get the DRAW menu, and select
Circle(, which is DRAW \
9. Move the
cursor to where you want to make the centerpoint and press
[ENTER]. Then move the cursor
to any point on the circumference and press [ENTER].
To draw a
circle from the home screen or in a program:
Hmm...
I wonder... Maybe you do the same thing as above.
Circle( is DRAW \
DRAW \ 9.
It is used like this:
Circle(x,y,radius)
x and y are the coordinates of the centerpoint, as you might know, and radius is the length of the radius (in coordinates).
Note: If you draw a circle from the home screen or a program, it may look more like an oval. That is because of the current window settings. Like I said before, the screen is a rectangle. If you want to draw a perfectly round circle, use ZSquare to make the screen square. Circles drawn on the graph screen are not affected by this.
Circles take a long time to draw. Use them sparingly.
The results of
a Circle(2,-2,5) in a ZSquare window:
ALL THE TEXT THAT'S FIT TO PRINT
Now you get to learn about how to write on the graph screen. And yes, it can be done from the graph screen and from the home screen or a program.
To write
text from the graph screen:
Press
[GRAPH] to get onto the graph
screen. Then press [2nd]
[PRGM] to
get the DRAW menu, and select
Text(, which is DRAW \
0. Move the
cursor to where you want to make the text and type the text. When you
are done move the cursor or press [CLEAR]. You cannot delete text
while typing it. To erase text, place the cursor at the position
where the text begins and type spaces to erase it.
To write
text on the graphscreen from the home screen or in a program:
Oh
God!!! How many times do I have to say this! You probably figured out
by now that
Text( is DRAW \
DRAW \ 0.
It is used like this:
Text(pixel-row,pixel-col,value)
pixel-row and pixel-col are the coordinates of the upper left corner of the first character. On a Full screen, pixel-row can be from 0 to 57 and pixel-col can be from 0 to 94. On a Horiz split screen, the maximum for pixel-row is 27. On a G&T (sorry, G-T) split screen, the maximum for pixel-row is 45, anf the maximum for pixel-col is 46. (I have never had a gin and tonic before. I don't drink... yet...)
value can be either text in quotation marks or a variable.
A demonstration
of the Text( command:
DRAWING FUNCTIONS AND INVERSES
If you want to draw a function without having to go into the Y= editor, you can use the DrawF command. This command can only be executed from the home screen or a program (thank God!) It is found at DRAW \ DRAW \ 6 and is used like this:
DrawF expression
expression is basically a Y= thing without the Y=. So if you wanted to graph Y=2+3X, you would type DrawF 2+3X. The DrawF is almost like its own little Y=.
If you've already got an expression in the Y= editor, in let's say, Y1, you could use that with DrawF. You type Y1 by going into the VARS \ Y-VARS \ Function... menu. For this example assume that Y1=2+3X. Type that into the Y= editor. Then let's say you want to draw Y1 with the y-intercept 3 coordinates lower. You could do DrawF Y1-3. Here's what that would look like:

Drawing the inverse of a function is done just like drawing a function, except you use the DrawInv command, which is DRAW \ DRAW \ 8. The usage is the same.
NOTE: The drawings made with these two commands do not make any changes to the Yx variables, and they are erased whenever a ClrDraw or any command that changes the graph screen is executed, like all other drawn objects.
FREE FORM
The Pen command is non-executable. It cannot be run from a program, it can only be run from the graph screen. It is DRAW \ DRAW \ A and it works like a pencil tool in many drawing programs. Press [ENTER] once to begin drawing, move the cursor to draw, and press [ENTER] to turn the pen off. To cancel Pen, press [CLEAR].
OK. You've just made this awesome picture, but you want to keep it. What are you gonna do? Not graph anything or touch any of the graph commands for the rest of your life? No! You'd save it!
SAVING A PICTURE
The TI-83 and TI-83 Plus have 10 picture, or Pic, variables, which hold a copy of the display in memory. They are named Pic1 to Pic9, and Pic0. If you want to store a picture to a Pic variable, you use the StorePic command, which is found at DRAW \ STO \ 1. Then you simply type the number of the picture you want, from 1 to 9 and 0, and press [ENTER]. So, to store a picture to Pic1, you would type:
StorePic 1
NOTE: You cannot use a variable to designate what picture to store to. For example, you can't say StorePic P. This holds true with all the picture saving and recalling commands.
RECALLING A PICTURE
So, you just saved a picture, but now you want to get it back on the screen. First thing, make sure the graph screen is blank (it doesn't have to be, but it's always good). Then go into the DRAW \ STO menu. Have you guessed what command you use? That's right, RecallPic. It is used like StorePic, just tell it the number of the Pic file you want to recall. Press [ENTER] and your picture is displayed on the graph screen!
SAVING A GDB
What's a GDB? GDB stands for graph database. It is also used for saving pictures, but in a different way. A GDB saves only functions made in the Y= editor, not drawn things or stat plots. They also store the window and graph format settings, so they can be used to re-create an entire function graph. There are 10 GDB variables, just like there are Pic variables. They are (guess) GDB1 through GDB9, and GDB0.
To save a graph in a graph database, use the StoreGDB command (DRAW \ STO \ 3). Then tell it the number of the GDB you want to put the data in. For example, if you wanted to store a graph to GDB4. you would type:
StoreGDB 4
RECALLING A GDB
Anyone that has sufficient brain power to turn on a light switch has probably figured out how to do this. To recall a GDB, use the RecallGDB command, which is DRAW \ STO \ 4. Then give it the number of the graph database you want to recall. When this command is executed, the window automatically adjusts to the saved coordinates, the format changes to whatever it was when the GDB was saved, and the function(s) are drawn on the screen and show up in the Y= editor. So essentially you're going back in time to when you just finished making the graph, and all settings remain intact. Cool!
What you're about to see right here is the most complex program we've done so far. It is a full-blown paint program. Yes, a paint program, written by me, called Draw 2000. This is a pared-down version, it can draw points and lines, and save and load pictures. The full version has the additions of circles, text, and drawing options.
If you can fully understand this code then you are a programming expert. This is a lot of code.
Lbl M
Menu("83-PAINT","NEW PICTURE",N,"LOAD PICTURE",L,"QUIT",Q
Lbl N
ClrDraw
FnOff
PlotsOff
AxesOff
GridOff
RectGC
-47->Xmin:47->Xmax ----- Set the window
coordinates so that each pixel = 1.
-31->Ymin:31->Ymax
1->Xscl:1->Yscl
Text(57,0,"POINT LINE CIRC TEXT MENU"
Horizontal -25
Goto G
Lbl L
ClrHome
999->X
Disp "","ENTER NO. OF PIC","TO LOAD","OR X TO CANCEL"
Input "",P
iPart(P)->P
If P=X
Goto M
If P<0 or P>9
Goto L
ClrDraw
FnOff
PlotsOff
AxesOff
GridOff
RectGC
-47->Xmin:47->Xmax
-31->Ymin:31->Ymax
1->Xscl:1->Yscl
If P=1:RecallPic 1 ----- Unfortunately, we
can't just say RecallPic P.
If P=2:RecallPic 2
If P=3:RecallPic 3
If P=4:RecallPic 4
If P=5:RecallPic 5
If P=6:RecallPic 6
If P=7:RecallPic 7
If P=8:RecallPic 8
If P=9:RecallPic 9
If P=0:RecallPic 0
For(Z,-25,-31,-1
Line(-47,Z,47,Z,0
Text(57,0,"POINT LINE CIRC TEXT MENU"
Horizontal -25
Goto G
Lbl G
0->X
0->Y
Pt-Change(X,Y) ----- The cursor is
drawn with Pt-Change( so we won't erase any previous
drawing.
Pt-Change(X-1,Y) ----- We have to make
the cross manually.
Pt-Change(X+1,Y)
Pt-Change(X,Y-1)
Pt-Change(X,Y+1)
Goto G2
Lbl G2
While 1
getKey->K
If K=25 and Y<31:Then
Pt-Change(X,Y)
Pt-Change(X-1,Y)
Pt-Change(X+1,Y)
Pt-Change(X,Y-1)
Pt-Change(X,Y+1)
Y+1->Y
Pt-Change(X,Y)
Pt-Change(X-1,Y)
Pt-Change(X+1,Y)
Pt-Change(X,Y-1)
Pt-Change(X,Y+1)
End
If K=26 and X<47:Then
Pt-Change(X,Y)
Pt-Change(X-1,Y)
Pt-Change(X+1,Y)
Pt-Change(X,Y-1)
Pt-Change(X,Y+1)
X+1->X
Pt-Change(X,Y)
Pt-Change(X-1,Y)
Pt-Change(X+1,Y)
Pt-Change(X,Y-1)
Pt-Change(X,Y+1)
End
If K=34 and Y>-25:Then
Pt-Change(X,Y)
Pt-Change(X-1,Y)
Pt-Change(X+1,Y)
Pt-Change(X,Y-1)
Pt-Change(X,Y+1)
Y-1->Y
Pt-Change(X,Y)
Pt-Change(X-1,Y)
Pt-Change(X+1,Y)
Pt-Change(X,Y-1)
Pt-Change(X,Y+1)
EndIf K=24 and X>-47:Then
Pt-Change(X,Y)
Pt-Change(X-1,Y)
Pt-Change(X+1,Y)
Pt-Change(X,Y-1)
Pt-Change(X,Y+1)
X-1->X
Pt-Change(X,Y)
Pt-Change(X-1,Y)
Pt-Change(X+1,Y)
Pt-Change(X,Y-1)
Pt-Change(X,Y+1)
End
If K=45
Goto Q
If K=11:Goto P1 ----- If POINT was
selected go to the point routine.
If K=12:Goto L1 ----- If LINE was
selected go to the line routine.
If K=15:Goto M1 ----- If MENU was
selected go to the menu.
End
Lbl P1
For(Z,-25,-31,-1
Line(-47,Z,47,Z,0
End
Text(57,0,"POINT? [CLEAR TO CANCEL]"
Horizontal -25
While 1
getKey->K
If K=25 and Y<31:Then
Pt-Change(X,Y)
Pt-Change(X-1,Y)
Pt-Change(X+1,Y)
Pt-Change(X,Y-1)
Pt-Change(X,Y+1)
Y+1->Y
Pt-Change(X,Y)
Pt-Change(X-1,Y)
Pt-Change(X+1,Y)
Pt-Change(X,Y-1)
Pt-Change(X,Y+1)
End
If K=26 and X<47:Then
Pt-Change(X,Y)
Pt-Change(X-1,Y)
Pt-Change(X+1,Y)
Pt-Change(X,Y-1)
Pt-Change(X,Y+1)
X+1->X
Pt-Change(X,Y)
Pt-Change(X-1,Y)
Pt-Change(X+1,Y)
Pt-Change(X,Y-1)
Pt-Change(X,Y+1)
End
If K=34 and Y>-25:Then
Pt-Change(X,Y)
Pt-Change(X-1,Y)
Pt-Change(X+1,Y)
Pt-Change(X,Y-1)
Pt-Change(X,Y+1)
Y-1->Y
Pt-Change(X,Y)
Pt-Change(X-1,Y)
Pt-Change(X+1,Y)
Pt-Change(X,Y-1)
Pt-Change(X,Y+1)
EndIf K=24 and X>-47:Then
Pt-Change(X,Y)
Pt-Change(X-1,Y)
Pt-Change(X+1,Y)
Pt-Change(X,Y-1)
Pt-Change(X,Y+1)
X-1->X
Pt-Change(X,Y)
Pt-Change(X-1,Y)
Pt-Change(X+1,Y)
Pt-Change(X,Y-1)
Pt-Change(X,Y+1)
End
If K=45:Then
For(Z,-25,-31,-1
Line(-47,Z,47,Z,0
End
Text(57,0,"POINT LINE CIRC TEXT MENU"
Horizontal -25
Goto G2
End
If K=105:Then
Pt-Change(X,Y)
Pt-Change(X-1,Y)
Pt-Change(X+1,Y)
Pt-Change(X,Y-1)
Pt-Change(X,Y+1)
Pt-On(X,Y)
Pt-Change(X,Y)
Pt-Change(X-1,Y)
Pt-Change(X+1,Y)
Pt-Change(X,Y-1)
Pt-Change(X,Y+1)
End
End
Lbl L1
For(Z,-25,-31,-1
Line(-47,Z,47,Z,0
End
Text(57,0,"1st POINT? [CLEAR TO CANCEL]"
Horizontal -25
While 1
getKey->K
If K=25 and Y<31:Then
Pt-Change(X,Y)
Pt-Change(X-1,Y)
Pt-Change(X+1,Y)
Pt-Change(X,Y-1)
Pt-Change(X,Y+1)
Y+1->Y
Pt-Change(X,Y)
Pt-Change(X-1,Y)
Pt-Change(X+1,Y)
Pt-Change(X,Y-1)
Pt-Change(X,Y+1)
End
If K=26 and X<47:Then
Pt-Change(X,Y)
Pt-Change(X-1,Y)
Pt-Change(X+1,Y)
Pt-Change(X,Y-1)
Pt-Change(X,Y+1)
X+1->X
Pt-Change(X,Y)
Pt-Change(X-1,Y)
Pt-Change(X+1,Y)
Pt-Change(X,Y-1)
Pt-Change(X,Y+1)
End
If K=34 and Y>-25:Then
Pt-Change(X,Y)
Pt-Change(X-1,Y)
Pt-Change(X+1,Y)
Pt-Change(X,Y-1)
Pt-Change(X,Y+1)
Y-1->Y
Pt-Change(X,Y)
Pt-Change(X-1,Y)
Pt-Change(X+1,Y)
Pt-Change(X,Y-1)
Pt-Change(X,Y+1)
EndIf K=24 and X>-47:Then
Pt-Change(X,Y)
Pt-Change(X-1,Y)
Pt-Change(X+1,Y)
Pt-Change(X,Y-1)
Pt-Change(X,Y+1)
X-1->X
Pt-Change(X,Y)
Pt-Change(X-1,Y)
Pt-Change(X+1,Y)
Pt-Change(X,Y-1)
Pt-Change(X,Y+1)
End
If K=45:Then
For(Z,-25,-31,-1
Line(-47,Z,47,Z,0
End
Text(57,0,"POINT LINE CIRC TEXT MENU"
Horizontal -25
Goto G2
End
If K=105:Then
Pt-Change(X,Y)
Pt-Change(X-1,Y)
Pt-Change(X+1,Y)
Pt-Change(X,Y-1)
Pt-Change(X,Y+1)
X->V ----- After the first
point has been set put its coordinates into a new set of
variables.
Y->W
Goto L2
End
End
Lbl L2
For(Z,-25,-31,-1
Line(-47,Z,47,Z,0
End
Text(57,0,"2nd POINT? [CLEAR TO CANCEL]"
Horizontal -25
While 1
getKey->K
If K=25 and Y<31:Then
Pt-Change(X,Y)
Pt-Change(X-1,Y)
Pt-Change(X+1,Y)
Pt-Change(X,Y-1)
Pt-Change(X,Y+1)
Y+1->Y
Pt-Change(X,Y)
Pt-Change(X-1,Y)
Pt-Change(X+1,Y)
Pt-Change(X,Y-1)
Pt-Change(X,Y+1)
End
If K=26 and X<47:Then
Pt-Change(X,Y)
Pt-Change(X-1,Y)
Pt-Change(X+1,Y)
Pt-Change(X,Y-1)
Pt-Change(X,Y+1)
X+1->X
Pt-Change(X,Y)
Pt-Change(X-1,Y)
Pt-Change(X+1,Y)
Pt-Change(X,Y-1)
Pt-Change(X,Y+1)
End
If K=34 and Y>-25:Then
Pt-Change(X,Y)
Pt-Change(X-1,Y)
Pt-Change(X+1,Y)
Pt-Change(X,Y-1)
Pt-Change(X,Y+1)
Y-1->Y
Pt-Change(X,Y)
Pt-Change(X-1,Y)
Pt-Change(X+1,Y)
Pt-Change(X,Y-1)
Pt-Change(X,Y+1)
End
If K=24 and X>-47:Then
Pt-Change(X,Y)
Pt-Change(X-1,Y)
Pt-Change(X+1,Y)
Pt-Change(X,Y-1)
Pt-Change(X,Y+1)
X-1->X
Pt-Change(X,Y)
Pt-Change(X-1,Y)
Pt-Change(X+1,Y)
Pt-Change(X,Y-1)
Pt-Change(X,Y+1)
End
If K=45:Then
For(Z,-25,-31,-1
Line(-47,Z,47,Z,0
End
Text(57,0,"POINT LINE CIRC TEXT MENU"
Horizontal -25
Goto G2
End
If K=105:Then
Pt-Change(V,W)
Pt-Change(V-1,W)
Pt-Change(V+1,W)
Pt-Change(V,W-1)
Pt-Change(V,W+1)
Line(V,W,X,Y ----- Connect the
dots.
Goto L1
End
End
Lbl M1
ClrHome
Menu("83-PAINT","NEW PICTURE",N4,"LOAD PICTURE",L,"SAVE
PICTURE",S,"QUIT",Q,"BACK",B1
Lbl N4
Menu("ARE YOU SURE?","NO",M1,"YES",N
Lbl S
ClrHome
999->Z
Disp "","ENTER NO. OF PIC","TO SAVE","OR Z TO CANCEL"
Input "",P
iPart(P)->P
If P=Z
Goto M1
If P<0 or P>9
Goto S
For(Z,-25,-31,-1
Line(-47,Z,47,Z,0
End
Pt-Change(X,Y)
Pt-Change(X-1,Y)
Pt-Change(X+1,Y)
Pt-Change(X,Y-1)
Pt-Change(X,Y+1)
Horizontal -25
If P=1:StorePic 1
If P=2:StorePic 2
If P=3:StorePic 3
If P=4:StorePic 4
If P=5:StorePic 5
If P=6:StorePic 6
If P=7:StorePic 7
If P=8:StorePic 8
If P=9:StorePic 9
If P=0:StorePic 0
Goto M1
Lbl B1
DispGraph ----- DispGraph displays the graph
screen. It is PRGM \
I/O \ 4.
Goto G2
Lbl Q
Stop
That's it! I know it's terribly inefficient, but I made this up quickly and didn't think about it much. But it works.
