Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.

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.

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.

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
Sale
Texas Instruments TI-89 Titanium Programmable Graphing Calculator (Renewed)
  • 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.

  1. Open the Program Editor from the calculator’s Applications menu.
  2. Choose New, then select a program or function.
  3. Choose the folder and enter a variable name for the program.
  4. Confirm the template and enter commands in the editor, one command per line.
  5. Leave the editor. The original guidebook says entries in the Program Editor are saved automatically; check the applicable guidebook for model-specific behavior.
  6. 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.

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.

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”.
  • 61 is 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.

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.
Rank #2
Sale
Texas Instruments TI-89 Titanium Graphing Calculator (packaging may differ) (Renewed)
  • 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.

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.

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
Texas Instruments TI-84 Plus CE Color Graphing Calculator, Black
  • 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.

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.

Condition-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.

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.
sumTo()
Prgm
  Request "Enter an integer",n
  expr(n)→n
  0→total
  For i,1,n,1
    total+i→total
  EndFor
  Disp total
EndPrgm
  • Request obtains text; expr(n)→n evaluates it as a calculator expression.
  • 0→total initializes the accumulator before the loop.
  • For i,1,n,1 counts upward from 1 through n, adding each value to total.
  • Disp total displays 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
TI-89 Titanium CAS Graphing Calculator Texas Instruments
  • 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
Independent reader supportYour contribution helps us test, update, and keep practical guides available for everyone.Support on Ko-Fi

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.

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.

CustmOn 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, and EndPrgm.
  • 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 Disp or 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.

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.

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.

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.

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

SaleBestseller No. 1
Texas Instruments TI-89 Titanium Programmable Graphing Calculator (Renewed)
Texas Instruments TI-89 Titanium Programmable Graphing Calculator (Renewed)
Memory management to create folders for specific applications or subjects.
$119.99
Bestseller No. 3
Texas Instruments TI-84 Plus CE Color Graphing Calculator, Black
Texas Instruments TI-84 Plus CE Color Graphing Calculator, Black
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
$110.59
Bestseller No. 4
TI-89 Titanium CAS Graphing Calculator Texas Instruments
TI-89 Titanium CAS Graphing Calculator Texas Instruments
Graphing calculator handles calculus, algebra, matrices, and statistical functions; Backed by 1-year warranty
$99.99

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.

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.