# Do-It-Yourself Programming TI-84 Plus (Silver Edition) for beginners - do it yourself

This instructable shows you how to use the prgm button on the Texas Instruments 84 Plus and Texas Instruments 84 Plus Silver Edition. The programs are in BASIC program language.
Everybody who's in possession of one of these calculators probably already found the key 'prgm'. But if you press it there is an empty list... I will learn you how to fill this list with lots of different programs, from functional programs which know the quadratic formula to games such as space invaders.
The most of the information in this instructable I found out my self when I was bored during class. Some things I didn't really understand, so those things I've googled. The disadvantage of googling is that you can find the most basic tutorials you could think of and the real hard tutorials which beginners could never understand. Tutorials for people how know something about programing there calculator, but are not mastering it yet will not find a tutorial which can learn them something and is understandable, so I hope this instructable will solve that problem.

I have divided my instructable into several parts:
1. Things you should know first
1 - main commands - Learn what these commands can do. The part on how to use them, will explained in this instructable.
2 - variables - These are very handy when making programs, you'll see.
3 - making a new program - This part is pretty essential in the progress of making a program
2. Beginners programming
4 - Hello world - This will be the first program you're going to make.
5 - Quadratic formula - A very handy program!
6 - miles and kilometers - For those of you who can't remember the formula to convert these.

## Step 1: Main command's

You need to know a bit of how command's in BASIC program language work, so here are the most used command's explained.
Most command's can be found under the prgm key when editing a program, but not every command. If you can't find a command I'm using, press 2nd and then 0. You'll be in the catalog. Here you can find almost every command the calculator knows.
Under prgm you'll find three tabs: CTL, I/O and EXEC.

CTL will show you these command's (pic. 1):
1. If Creates a conditional test
2. Then Executes commands when 'If' is true
3. Else Executes commands when 'If' is false
4. For( Creates an incrementing loop
5. While Creates a conditional loop
6. Repeat Creates a conditional loop
7. End Signifies the end of a block
8. Pause Pauses program execution until enter is pressed
9. Lbl Defines a label
0. Goto Goes to a label
A. IS>( Increments and skips if greater than
D. prgm Executes a program as subroutine
E. Return Returns from a subroutine
F. Stop Stops execution
G. DelVar Deletes a variable from within program
H. GraphStyle( Designates the graph style to be drawn

I/O will show you these command's (pic. 2):
1. Input Enters a value or uses the cursor
2. Prompt Prompts for entry of variable values
3. Disp Displays text, value or the home screen
4. DispGraph Displays the current graph
5. DispTable Displays the current table
6. Output( Displays text or value at specified position
7. getKey Checks the keyboard for a keystroke
8. ClrHome Clears the display
9. ClrTable Clears the current table
0. GetCalc( Gets a variable from an other TI-84 Plus (SE)
A. Get( Gets a variable from CBL 2 or CBR
B. Send( Sends a variable to CBL 2 or CBR

Exec will show you all programs you have made yet except of the program you are editing. By choosing a program here you can call this program as a subroutine.
A lot of the command's in this list I never use, such as GetCalc(, Get( and Send( because I never connect my calculator to an other calculator. Other command's I really love to use, such as Lbl, Goto, Input and Output(, because I think these are really handy. I use Lbl and Goto a lot, but every time I use these, you can also place everything you would place under the Lbl in an other program and in the main program use prgm .... (place here the name of the subroutine program) in stead of Goto. If you do so, be sure you put a Return command at the end of the subroutine program.

## Step 2: Variables

There are several types of variables. Most can be found under the key 'vars'. The main variables are values, strings and lists. These variables can be stored by the sto> key.

The sto> key
When you press the sto> key, an arrow will appear on your screen. If you want to store a variable, first type the value you'd like to give it, then the arrow and then the variable.

Values
Values are the green letters on your calculator. You can select them by pressing the green alpha key and then choose a letter. These letters can be given a number. For example, press 9, then the sto> key and then A. (alpha, math). Now press enter. The calculator will put out 9. Now press A and then enter. The calculator will put out 9. You can do this with all letters and theta (alpha, 3).
But now press 2, A, sto>, A, enter. Now you stored A times 2 as A, so if you now press A, enter, your calculator will put out 18.
Now give B the value of 3 (3, sto>, B) and type A, /, B, sto>, C, enter. If you now press C, it will put out 6. If you press B, it will put out 3. If you press A it will put out 18. If you press ABC it will put out 324 (18x3x6).

Strings
Strings can be found by pressing vars and then choose Strings (or press 7). Strings can be stored just like values, only strings aren't numbers, but texts. When typing texts it will be really annoying having to press alpha every time you want to type a letter. To solve this, press 2nd, alpha. Now alpha is locked until alpha is pressed again.
When storing a string, be sure you type your message between quotation marks (alpha, +), otherwise the calculator will see the letters as values in stead of a text.
For example, type "THIS IS FUN"-Str1 and press enter. Now when you choose Str1 and press enter, it will put out THIS IS FUN.

Lists
Lists are lists of numbers. They can be found by pressing 2nd and then choose 1, 2, 3, 4, 5, or 6. To store a list of numbers, you need to put comma's between the numbers. For example, type {1,2,3,4,5}-L1 and press enter. Now choose L1 and press enter. it will put out {1,2,3,4,5}. You can combine lists with values. For example: first you give A a value of 1 and B a value of 48. Now type {A,B,21,30,A,6}-L1. If you now choose L1 and press enter it will put out {1,48,21,30,1,6}

All these variables will hold there value until it's changed or deleted, even if the calculator is turned off, the variables will keep there values.

Ans
Ans is also a variable. It shows the answer of the last calculation the calculator made. So if you enter 3+5 and press enter, it will say 8. Now Ans has a value of 8. If you now press Ans+2 and press enter, it will say 10. Ans has now a value of 10.

## Step 3: Making a new program

Now you know something about how this machine works, we can start building a program.

Of course the first thing you need to do to make a new program is turn on your calculator. Then press the 'prgm' key. Then go to NEW (pic. 1). Next you press enter (pic. 2). Choose a name for your program, for example HELLO (pic. 3). When you found a good name press enter (pic. 4). You will be able to change the name afterwards, but I'll explain that to you in the advanced level.
Now your program is made. Now press 2nd MODE to quit. If you press prgm again you'll find your program in the list. To execute the program, just press enter. To edit the program press right and then press enter.

## Step 4: Hello world

Now you can edit the program. The first thing we are going to do is press prgm, go to I/O and choose Disp (or press 3). Now type "HELLO WORLD". Do not forget the quotation marks! Your screen should look like this:PROGRAM:HELLO:Disp "HELLO WORLD"Next you press 2nd, mode (you quit). Now execute the program (press prgm, choose HELLO and press enter twice). It will display:prgmHELLOHELLO WORLD DoneBut of course we want it to only display HELLO WORLD and not prgmHELLO and Done, so press prgm and edit HELLO.To get rid of prgmHELLO you need to insert a new line at the beginning of the program. You can do this by pressing 2nd, del. Your cursor will now be line. Now press enter to add a new line in front of the one your cursor is at. Press up to go to this line. Next you press prgm, select I/O and choose ClrHome (or press 8). Your screen should look like this:PROGRAM:HELLO:ClrHome:Disp "HELLO WORLD"To get rid of Done, we need to add a line at the end of the program. So place the cursor at a random position on the second line and press enter. Press prgm and select Pause (or press 8). Your screen should look like this:PROGRAM:HELLO:ClrHome:Disp "HELLO WORLD":PauseNow quit and execute the program. It should only show HELLO WORLD at the top of the screen. Now press enter. Done will appear and you can do what ever you want again.But of course you want it to display HELLO WORLD at the center of your screen. To do so we need to add some lines. Firs edit the program. Now select the second line and insert 3 lines. Give all three lines the same job, to display nothing by typing Disp "". Because there is nothing between the quotation marks, it will display nothing. To play HELLO WORLD at the center of the line, you need to insert three spaces before HELLO WORLD. If done so, your screen should look like this:PROGRAM:HELLO:ClrHome:Disp ":Disp ":Disp ":Disp " HELLOWORLD":PauseNow quit and execute. It will display HELLO WORLD at the center of your screen. Press enter to end the program. To finish this program ad one line at the end, saying ClrHome. This way HELLO WORLD will disappear when enter is pressed. The program should look like this::ClrHome:Disp ":Disp ":Disp ":Disp " HELLOWORLD":Pause:ClrHomeYou just made your first program! Congratulations!:) Of course you can edit the text. Try to let it display your first and second name at the center of different lines. Play a little with it and get used to using these command's.Tips1.In stead of having to let it display those empty lines, you can also use the Output( command (prgm, I/O, 6). This command first asks for the coordinates where the text will start. If you use it, your program should look like this::ClrHome:Output(4,4,"HELLO WORLD"):Pause:ClrHomeNote: those comma's between the coordinates and the text are no dots!2.When you are making a lot of programs you'll get to deal with the limited memory of the calculator. To save memory you can leave out the quotation marks and the braces at the end of command's like Disp or Output(. This way your program should look like this::ClrHome:Disp ":Disp ":Disp ":Disp " HELLOWORLD:Pause:ClrHomeOr like this::ClrHome:Output(4,4,"HELLO WORLD:Pause:ClrHomeNew command's1. Disp2. ClrHome3. Pause4. Output(

Now you are a bit familiar with making a program display something in the way you want it to, you can build your first functional program. This program will calculate the discriminant and both possibilities for X from a quadratic equation. I think it's best to begin right away.

Of course the first thing you do is make a new program. Give it a fun name like ABC or Q.E. or something like that.

The input part
The first thing you want this program to do is to ask you for the values of A, B and C and memorize these values. Of course you are now going to use a type of variable: the value. You can give these letters a value inside a program in several ways. The difference between these ways is in the way the program displays the question.
The first way is by using the Prompt command (I/O, 2). Just say Prompt A,B,C. This way it will first ask for A, then for B and then for C. If you would execute the program now, it will show you this: (the ? simulates the cursor)

prgmABC

A=??

After putting in a value (for example 1) it will show you this:

prgmABC

A=?1
B=??

And it will do the same with C:

prgmABC

A=?1
B=?5
C=??

I personally do not like this way, because I don't like the question mark. Luckily there are several more way's.
The second way is using the Input command (I/O, 1). This command will not work with the comma's, so you'll need to use three lines to let it ask for three values. The program should look like this:

:Input A
:Input B
:Input C

And if you execute it, it should look like this:

prgmABC

??

When entered a value, it will go on to B:

prmgABC

?1
??

And it will do the same with C, I don't think I need to show you that. I also do not like this one, because you can't see what it's asking for. Luckily the Input command has an other way of using it. In stead of 'Input A' you need to type 'Input "A=",A'. It will display the part between the quotation marks before entering the value and it will delete the question mark. You can putt any text between the quotation marks, but I think "A=" and "A:" are the briefest. The '=' can be found by pressing 2nd, math. When entered this, the program should look like this:

:Input "A=",A
:Input "B=",B
:Input "C=",C

When executed the program will show this:

prgmABC

A=?

And after entering a value:

prgmABC

A=1
B=?

And it will do the same for C. Now to make it look nice, you may want to erase 'prgmABC' from the screen. You have all ready learned how to do that: just add a ClrHome at the beginning of the program. Now to really finish the asking part you need to let it show you what A is, what B is and what C is. I do not mean the value of those, but where they are in the formula. To do so, add a line between the first and second line and type 'Disp "AX²+BX+C=0'. The program should look like this:

:ClrHome
:Disp "AX²+BX+C=0
:Input "A=",A
:Input "B=",B
:Input "C=",C

When executed it will show you this:

AX²+BX+C=0
A=?

After entering a value for A and B it will show you this:

AX²+BX+C=0
A=1
B=5
C=?

Now the input part is finished.

The calculating part
Of course the sto> key can be used inside a program to, so you're gone do so. In this part is the actual calculating taking place. It's pretty simple. I assume you know how the quadratic formula is formulated. Well, that is exactly what you need to do here. There are three lines you need to type:

:B²-4AC-D
:(-B-√(D))/(2A)-X
:(-B+√(D))/(2A)-Y

Be sure you use the right minus sign and you do not forget any brackets!

Now the calculating part is finished.

The output part
When putting out something, the first thing you want to is to have a clean writing area, so you need to clean the home screen with ClrHome. Now you want the program to say the value of the discriminant and both possibilities for X. Of course you are gone do this with the Output( command. This part of the program should look something like this:

:ClrHome
:Output(1,1,"DIS
CRIMINANT=
:Output(2,1,D
:Output(3,1,"X=
:Output(3,3,X
:Output(4,1,"OR
:Output(5,1,"X=
:Output(5,3,Y

You can of course change the lay-out. I am only giving a suggestion.
But now there is one problem. When executed, it will show you what you want to know and place a big 'Done' through it. You don't want that, do you? To prevent this, add the two lines we also used in Step 4 to prevent this:

:Pause
:ClrHome

This way your program is finished and should look something like this:

:ClrHome
:Disp "AX²+BX+C=0
:Input "A=",A
:Input "B=",B
:Input "C=",C
:B²-4AC-D
:(-B-√(D))/(2A)-X
:(-B+√(D))/(2A)-Y
:ClrHome
:Output(1,1,"DIS
CRIMINANT=
:Output(2,1,D
:Output(3,1,"X=
:Output(3,3,X
:Output(4,1,"OR
:Output(5,1,"X=
:Output(5,3,Y
:Pause
:ClrHome

Now try to make a program just like this one, but with an other formula. If you can't think of a good formula, just wait and pay attention during science and chemistry class. There will pass by a nice formula. Now if you are not going to school anymore, you must by that damn smart you can think of a formula yourself, right?

New command's
Prompt
Input

## Step 6: Miles and kilometers

By now you know how to make a program output something and how to make it ask for a value, so why not make a program which can convert miles into kilometers and vice versa. Because you know the ClrHome, Input and Output( command and you know how to store variables inside a program, you can already make a program which can do one way. Of course you also can make another program which can do the other way. Those programs should look something like this:

Miles to km:
:ClrHome
:Input "MILES:",
M
:M*1,609344-K
:Output(2,1,"KM
:
:Output(2,7,K
:Pause
:ClrHome

km to miles
:ClrHome
:Input "KM :",
K
:K/1,609344-M
:Output(2,1,"MIL
ES:
:Output(2,7,M
:Pause
:ClrHome

But what if you want these two programs in one? That is also possible. To do so we are going to use labels. Labels are positions inside a program which you can give a name (A-Z, Θ, 1-99). With the Goto command you can give the program the task to jump directly to the label, no matter if the label is before or after the Goto command. Also with the Menu( command you can make the program go to a label. The Menu( command explains itself actually, it creates a menu. We want to do this, because we want to be able to choose if we want to convert km to miles or miles to km. The Menu( command is a bit complicated. After this command you first need to time the text you want at the top of the menu, then the text of the first option, then name of the first label, the the name of the second option, then the name of the second label and so on. There is a maximum of 7 options. This program only needs three: miles to km, km to miles and quit, so the menu command line will look something like this:

/KM ","MILES
TO KM",1,"KM TO
MILES",2,"QUIT",
3

Now let's first make label 1. This is really easy. Just type the Lbl command and type an one after it:

:Lbl 1

After this, the actual conversion program can start. This you can find at the beginning of this step. Be sure you take over the one to convert miles to km and not the other one.
After taking this program over, you need to add one line: Stop. The program needs to know it has to stop there. If you do not add this line, it will go on to label 2 and ask you for the km. So add this line!
Now add label two and take over the conversion program at the beginning of this step. Here you don't need to add the stop line, because it must continue with the only job of label 3, stop. So after the conversion program just add 'Lbl 3' and you're finished. Also after Lbl 3 you do not need to add a Stop command, because is the program lines end, the program automatically stops executing. The program should look something like this:

/KM ","MILES
TO KM",1,"KM TO
MILES",2,"QUIT",
3
:Lbl 1
:ClrHome
:Input "MILES:",
M
:M*1,609344-K
:Output(2,1,"KM
:
:Output(2,7,K
:Pause
:ClrHome
:Stop
Lbl 2
:ClrHome
:Input "KM :",
K
:K/1,609344-M
:Output(2,1,"MIL
ES:
:Output(2,7,M
:Pause
:ClrHome
:Lbl 3

Tip
In stead of after placing a Stop command after label 1, you can also give it the task to go to label 3. You can do this by replacing the Stop command for 'Goto 3'. The only difference is that this last option takes one more bit of memory space...

New command's
Lbl
Goto
Stop

## Step 7: Happy programming

You now know the basics of programming your calculator. Enjoy doing so!If you want to know more, check out this instructable. It's another instructable of mine about programming your calculator, only it's a more advanced level.Happy programming!:)