Some links on this page are affiliate links: if you buy through them we may earn a commission, at no extra cost to you.
The TI-89 can run programs and user-defined functions for calculations, symbolic work, input and output, loops, and custom menus. The key to handling text safely is to distinguish a string such as "61" from the number 61: expr() evaluates a string as a calculator expression, but malformed input can cause an error.
This guide focuses on the TI-89 and TI-89 Titanium programming system, with examples based on the TI-89 guidebooks. Check the guidebook for your exact model before relying on a particular key sequence or menu label: the original TI-89, TI-92 Plus, and TI-89 Titanium materials are not interchangeable in every interface detail. Start with TI’s TI-89/TI-92 Plus guidebook listing or the TI-89 Titanium guidebook.
What TI-89 programs can do
The TI-89 programming chapter covers programs and user-defined functions, variables, strings, conditional tests, loops, input and output, custom menus, graphing, calculator-to-calculator communication, debugging, and assembly-language programs. That makes it useful for automating calculator-native work, especially when a program combines numerical or symbolic mathematics with a small amount of interaction.
It is a calculator programming environment, not a general-purpose modern language. Do not assume TI-89 programs have Python-style libraries, ordinary file handling, or compatibility with other TI calculator families. For the original programming chapter and examples, consult the TI-89 guidebook copy; prefer the official TI model-specific guidebooks for terminology and key mappings.
#1 Best Overall
- Electronically upgradeable graphing calculator allows you to have the most up-to-date functionality and software applications.
- 16 preloaded graphing calculator software applications suitable for college math and engineering coursework.
- Memory management to create folders for specific applications or subjects.
- Icon desktop for easier access to applications and editors. Pretty Print shows equations and results with radical notation, stacked fractions and superscript exponents.
- Large 100 x 160 pixel display for split-screen views. Compatible with CBL 2 system, CBR 2 motion sensor, vernier easylink and vernier easytemp systems to allow collection and analysis of real-world data.
Create and run a program
Use the Program Editor to create a program or function. The exact Applications-menu route and keystrokes vary by model and guidebook edition, so use the relevant official manual for the physical key sequence.
- Open the Program Editor from the calculator’s Applications menu.
- Choose New, then select a program or function.
- Choose the folder and enter a variable name for the program.
- Confirm the template and enter commands in the editor, one command per line.
- Leave the editor. The original guidebook says entries in the Program Editor are saved automatically; check the applicable guidebook for model-specific behavior.
- From the Home screen, run the program by entering its name followed by parentheses, such as
prgm1().
A minimal program has a start command, body, and matching end command:
prgm1()
Prgm
Disp "Hello, TI-89"
EndPrgm
Here, Prgm and EndPrgm delimit the program, and Disp displays its message. The first line shows how the program may be called from the Home screen; it is not part of the program body.
Understand values, strings, and variables
A string is text, even if it looks like a number
Text enclosed in quotation marks is a string:
"Hello"is text."61"is the two-character string “61”.61is a numeric value."2*x+4"is text containing an expression, not an expression ready for ordinary calculation.
To evaluate text that contains a valid calculator expression, use expr(), for example expr("2*x+4"). This evaluates the expression; it does not simply guarantee a numeric result. The result could be symbolic, and invalid text can raise an error.
Choose local and global variables deliberately
Local variables help keep a program’s temporary calculations from interfering with variables elsewhere on the calculator. However, the TI-89 guidebook warns that local variables cannot be used for symbolic calculations in the same way as global variables. If symbolic manipulation requires a global variable, choose a distinctive name, avoid common names likely to be in use, and remove temporary globals when practical with an appropriate command such as DelVar.
Do not assume that TI-89 local-variable behavior matches scope rules in a modern language. Decide based on whether the program needs ordinary temporary calculations or symbolic use outside the local context.
Choose an input and output command
These commands serve different interaction patterns. In particular, InputStr and Request treat responses as text in the original guidebook’s descriptions, while Input can interpret an entered value as an expression.
Recommended Free Tools
Rank #2
- Essential for 16-18, university and beyond, the TI-89 is the most logical graphing calculator for advanced mathematics studies
- Enhanced with Flash technology, this graphing calculator gives you the flexibility to add calculator software applications and additional functionality, providing long-term value
- The TI-89 is allowed for use on the AP Calculus, AP Statistics, AP Physics, AP Chemistry, PSAT/NMSQT, SAT I, SAT II Math IC & IIC
| Command | Useful for | Behavior to account for |
|---|---|---|
Input |
Prompting for a value or expression | Input may be interpreted as an expression, depending on how it is entered. |
InputStr |
Literal text input | Treats the response as a string. |
Request |
Dialog-style input | Stores the response as a string; convert or validate before using it as an expression. |
Prompt |
Requesting several expressions in sequence | Accepts a series of expressions rather than literal text. |
getKey |
Responding to a key press | Returns a key code, which the program must interpret. |
PopUp |
Offering a menu-style selection | Use for a user choice rather than free-form text. |
Disp |
Displaying text or calculated values | Sends output to the Program I/O screen. |
Text |
Text in dialog or menu structures | Used as part of dialog-style structures. |
Title |
Naming a dialog or menu | Supplies a title for the structure. |
The command descriptions above follow the original programming guide; confirm exact syntax and availability in the guidebook for your calculator model.
Convert text carefully
A convenient pattern is to ask for text and then evaluate it:
Request "Enter an integer",n
expr(n)→n
This is not safe validation by itself. A user might enter malformed text, a non-integer expression, zero, or a negative value. Because expr() evaluates an expression rather than checking that it is an integer in an allowed range, a program should verify the value it receives and handle conversion failures before proceeding. The guidebook documents error-handling structures such as Try and EndTry; check the exact syntax in the model-specific manual before building a recovery path.
For a robust interaction, separate the stages: collect the response, evaluate it inside an error-handling path, check that it meets the program’s requirements, and only then perform the calculation. If conversion fails or the value is unsuitable, prompt again or exit cleanly rather than allowing a bad value to reach a loop.
Quick wins for a faster PC:
Clear out junk files and repair common Windows errorsFree Scan →Fix the driver behind crashes, sound loss and screen glitchesFind Drivers →Use conditionals and loops
Conditionals
A single-command conditional and a block conditional are different forms. A block makes the branch boundaries explicit:
If condition Then
command
Else
otherCommand
EndIf
Use ElseIf where several conditions need testing. Every block must have its matching terminator. Indenting commands consistently is valuable even if whitespace is not what defines the block: it makes missing or misplaced endings easier to spot.
Counted loops
A For loop is appropriate when the number of iterations is known:
Rank #3
- Makes understanding math and science topics quicker and easier — ideal for middle school through college
- Built-in MathPrint feature allows you to input and view math symbols, formulas and stacked fractions exactly as they appear in textbooks
- Graph in vibrant colors to make faster, stronger connections. Powered by a TI Rechargeable Battery that can last up to one month on a single charge.
- 4-year subscription for the TI-84 Plus CE online calculator included with purchase
- Lightweight yet durable enough to withstand the demands of the classroom year after year
For i,1,10,1
Disp i
EndFor
This counts from 1 through 10 in increments of 1. Ensure the range is reasonable; an unexpectedly large range can make a calculator seem unresponsive.
Windows Errors? Fix Them Before They Spread
Repair common Windows errors and clear accumulated junk for a smoother, more stable PC - no reinstall needed.Free scan · no reinstallCrashes, No Sound, or Screen Glitches?
Random freezes, missing sound and display glitches usually trace back to one bad driver. Find and replace yours safely.Free scan · under a minuteCondition-controlled loops
A While loop continues while its condition is true. A Loop can continue until an explicit exit condition is reached:
Loop
command
If exitCondition
Exit
EndIf
EndLoop
For either form, check that the condition can eventually change or that an exit is reachable. An infinite loop can make a program appear frozen; interrupt execution using the calculator’s model-specific controls, then inspect the condition and the values that affect it.
Lbl and Goto are available and may appear in older programs. Prefer structured conditionals and loops for ordinary new control flow; labels and jumps can make it harder to see whether every path terminates.
Worked example: sum the integers from 1 through n
This example follows the guidebook’s basic sequence: request input, evaluate the response, initialize an accumulator, run a counted loop, and display the result.
Free tools Windows power users keep installed
One-click scans. No signup required.
sumTo()
Prgm
Request "Enter an integer",n
expr(n)→n
0→total
For i,1,n,1
total+i→total
EndFor
Disp total
EndPrgm
Requestobtains text;expr(n)→nevaluates it as a calculator expression.0→totalinitializes the accumulator before the loop.For i,1,n,1counts upward from 1 throughn, adding each value tototal.Disp totaldisplays the result in Program I/O.
This teaching example assumes a valid positive integer within a practical range. Zero produces no loop iterations and leaves the total at zero; a negative value does not describe the intended counting range. A non-integer or malformed expression may fail or behave differently than intended. A very large value may take too long. Add validation and an error-recovery path before using this pattern for unrestricted input.
The variables shown are global unless declared local in the program. On a calculator with existing variables named n, total, or i, the program may affect or be affected by those values. Use local variables for ordinary procedural work where appropriate, and handle any global variables required for symbolic computation deliberately.
Rank #4
- Graphing calculator handles calculus, algebra, matrices, and statistical functions
- 188 KB RAM and 2.7 MB flash memory for speed; plenty of storage for functions, programs, data
- Large 100 x 160 pixel display for split-screen views. Compatible with CBL 2 system, CBR 2 motion sensor, vernier easylink and vernier easytemp systems to allow collection and analysis of real-world data
- USB on-the-go technology for file sharing with other calculators and connecting with PCs. Matrix operations including inverse, determinant, transpose, augment, elementary row operations and reduced row echelon form; matrix elements can be real or complex and numeric or symbolic
- Backed by 1-year warranty
Build and recover from a custom menu
A custom menu replaces the standard toolbar menu while it is active. It can offer commands, functions, characters, or program-specific shortcuts. A basic definition has a title and items:
Custom
Title "Tools"
Item "Clear Home",ClrHome
Item "Turn menu off",CustmOff
EndCustm
Menu items commonly insert or paste their associated command at the current cursor location; selecting an item does not necessarily execute the command immediately. Whether the inserted command runs depends on where it was placed and what the user does next.
Do these 3 things before closing this tab:
1Fix the driver behind crashes, sound loss and screen glitches2Clear out junk files and repair common Windows errors3Scan for outdated or missing drivers - takes under a minuteCustmOn and CustmOff control the custom menu. The Titanium guidebook documents the custom-menu controls and keyboard toggle; use that guidebook for the exact key sequence. If the usual toolbar seems to have disappeared, the custom menu may simply be active. A malformed Custom block can prevent a definition from working, and a program-created menu may need to be recreated by running the program again. Restoring the default custom menu can replace the menu currently defined, so do so only if losing that definition is acceptable.
Know where program output goes
The Program I/O screen is where program prompts and output appear; it is not the Home screen and is not a general-purpose calculation workspace. A result displayed with Disp may be waiting there even when the Home screen is where you expect to continue working. Leave Program I/O to return to Home. If a program runs without visible output, check whether it displayed anything and whether you are looking at the correct screen.
Debug syntax, data, and behavior separately
When a program fails, first determine whether the problem is its command structure, the supplied data, or a model-specific command. Small tests make that distinction easier than debugging a finished menu-driven program.
- Syntax error while entering: inspect quotation marks, commas, command spelling, and matching endings such as
EndIf,EndFor, andEndPrgm. - Invalid expression: check what text reached
expr(); re-prompt or handle the conversion failure. - Program appears stuck: interrupt it using the model-specific control, then inspect the loop condition and iteration range.
- Unexpected variable value: check for a global-name collision and whether the program changed a variable you rely on elsewhere.
- Symbolic operation fails: check whether the operation requires a global variable rather than a local one.
- Menu or toolbar seems wrong: turn off the active custom menu using the documented control and check whether a program-defined menu needs to be recreated.
- Output is missing: add or verify an explicit
Dispor suitable dialog output, then check Program I/O. - Command is unavailable: verify the calculator model, operating system, and relevant guidebook; an instruction from one model’s manual may not apply identically to another.
Test in stages: begin with a known input and a short calculation, then add conversion, loop logic, and menu interaction. The original guidebook has dedicated material on debugging and error handling; consult it for the commands and behavior supported by your model.
The Tool Desk
Outbyte PC Repair FREEClear out junk files and repair common Windows errorsFree Scan →Outbyte Driver Updater FREEScan for outdated or missing drivers - takes under a minuteDriver Scan →Find the right guidebook for your calculator
Texas Instruments hosts separate resources for the TI-89/TI-92 Plus and TI-89 Titanium. Use the model-specific book to confirm command syntax, menu names, and key mappings rather than transferring a key sequence from another edition.
- TI-89/TI-92 Plus guidebook page and its official PDF.
- TI-89 Titanium guidebook PDF and the TI-89 Titanium product and resources page.
- TI graphing-calculator guidebook directory for the broader model listing.
When a different calculator is a better fit
Keep using a TI-89 when you already own one, need legacy program compatibility, or want to combine symbolic mathematics with compact calculator-native automation. If you are choosing a different platform, distinguish the goal: the TI-Nspire CX II CAS is a more modern TI CAS environment, while the TI-84 Plus CE Python is for readers specifically seeking Python on a TI calculator. Neither is a drop-in source-compatible replacement for TI-89 programs, and the TI-84 Plus CE is not a CAS-equivalent replacement.
- Explore current TI-Nspire resources through the TI-Nspire CX CAS guidebook listings or the TI-Nspire CX guidebook listings.
- For the TI-84 Plus CE family, see the official guidebook resource.
For exam use, check the rules of the specific exam and jurisdiction: calculator eligibility is not a universal property of a model. TI’s TI-89 Titanium page notes a May 2025 SAT/PSAT policy change concerning CAS functionality.
Quick Recap
Product prices and availability are accurate as of the date/time indicated and are subject to change. Any price and availability information displayed on Amazon at the time of purchase will apply.

