The Ultimate TI Calculator FAQ - Introduction

by Patrick Davidson ( pad@ocf.berkeley.edu) - Return to FAQ index - Return to my main page - Twitter - YouTube
  1. What kinds of programs can the calculator run?
  2. What are "basic" and "asm" programs? What is the difference between them?
  3. Where are calculator programs available?
  4. Which calculator do you recommend? How do the various calculators compare?
  5. Where else can I get help?
  6. How do I use a ZIP file?
  7. I don't have the manual to my calculator. Where can I get one?

What kinds of programs can the calculator run?

The TI-82, TI-83, TI-83 Plus, TI-84 Plus, TI-85, TI-86, TI-89, TI-92, TI-92 Plus, and Voyage 200 all can run large selections of programs. The link ports make transferring software from a computer to a calculator or between calculators very fast, so you can use much larger programs than could be readily typed in. There are many math programs available, though the built-in math capabilities of the calculator are quite extensive so you may not need them. Most of the math programs are rather simple such as quadratic formula programs that prompt for coefficients and then solve the quadratic equation for you, but there are some more advanced math programs out there as well. The calculators also have many games available, ranging from simple guess the number games to numerous action games and RPGs and even a few 3D game.


What are "basic" and "asm" programs? What is the difference between them?

BASIC or TI-Basic refers to the built-in programming language of the calculator, which is described in the calculator manual. It is somewhat similar to the common BASIC programming languages on computers. TI-Basic is more advanced than the BASIC languages included with early 1980s home computers but it is less advanced than modern computer versions of BASIC. This language is easy to learn and use, but unfortunately is very slow. It is adequate for a quadratic formular program or a guess the number game, but it lacks the performance for advanced math software, and also is too slow for most types of games (which must generally draw graphics and update the game state very quickly).

Another programming langauge is "asm" (assembly). When programming in assembly, you are actually writing the same code that the processor executes, unlike basic, in which the processor executes a different program, which "interprets" each statement in the basic program each time it has to be run. For this reason (among others), programs written in assembly are much faster than basic programs. Here is an a short example of assembly code (if you only want to run programs, you don't need to understand it; it's just here to give you an idea of the difference):

        ld      hl,$fc00
loop:   ld      a,(hl)
        cpl
        ld      (hl),a
        inc     hl
        ld      a,h
        or      l
        jr      nz,loop

This assembly code will reverse the color of every pixel on the screen on a TI-85 or TI-86. As you can probably guess by looking at it, assembly is not quite as easy for a beginner to understand, since it describes individual operations of the processor in terms of CPU registers and memory addresses, rather than high-level operations that a human normally thinks about. This assembly code will take only about 0.01 seconds to run; this is the kind of speed that makes assembly suitable for high-performance software.

Strictly speaking, the processor does not execute assembly code, but actually machine code. To run the program above, you would need to convert it into machine code. Machine code itself is a binary format, not text that people can read and understand, which is why people program in assembly language instead (in addition to other reasons; assembly language also allows comments that aren't executed to be inserted that explain the code, and labels [like "loop"] and symbols can be given meaningful names, and adjusted more easily). Converting the program to machine code is called assembling (or sometimes compiling) and the program used for it is called an assembler. Since the conversion is done before running, no performance loss occurs at run-time, and assembly is just as flexible since each assembly instruction directly specifies a machine code instruction.

On the TI-89 and TI-92 Plus calculators, there are also a large number of high-quality programs now written in C. C is a high-level language (that is, it describes operations in a more abstract way than individual machine operations) but, unlike basic, it is designed for speed, and also is converted to machine code before it is run. Since the programs are run in machine code form and are fast, the calculator community usually classifies them with "asm" programs even though they were not written in assembly.

The main disadvantage of assembly programs is that they are somewhat harder to develop, and can't be easily (if at all) typed in to the calculator by hand. There is also some chance of an asm program "crashing" but this is not really the huge problem it's occassionally said to be (see the general assembly section on crashes for more information). All in all, if you want to use advanced math software or play high-quality games, asm programs are usually the best choice.

Flash applications are also stored as machine code; they should be considered the same as regular "asm" for most purposes but they must be kept in flash memory and have a different file format and can more closely interface with TI's software in some cases.


Where are calculator programs available?

There is not any single source which provides all high-quality programs for TI calculators, although ticalc.org has almost all of the games and utilities and a good portion of the math programs. Refer to the links section of my main web site for links to the best general archives as well as sites of programmers. Most of these are focused on games and utility programs, but some math/science programs are included as well. If you are looking for more math and science programs, refer to the Finding Math and Science Programs section of this FAQ.

Most sections of this FAQ that recommend specific programs include links to their web sites, or to archives they can be downloaded from.


Which calculator do you recommend? How do the various calculators compare?

This section only refers to comparisons between various calculators from TI. My experience with other calculator brands is too limited for me to write a complete and fair comparison. I haven't seen any comparisons elsewhere that meet these standards either, so I won't link to any of them. The only way you can really decide which brand is best for your purposes is to try using all of them for a while, and be sure to get information on using them from knowledgeable sources so you can make sure you are seeing the best of what each can do. I also don't mention the TI-Nspire here even though it may be a good choice.

First off, I would like to say that you should not even consider the TI-73, TI-80, or TI-81. Beyond that, which calculator is best depends on what characteristics are important to you. Here are some of the key differences:


Where else can I get help?

There are certainly many source of help on calculators, though not all are useful. Many FAQ documents exists, but most of them seem to have outdated or incomplete information, especially when it comes to games and assembly programs. That's the reason I wrote this document. Here are some of the better ones:

Other help documents

There are many other help documents available on the web. They generally have much less (and often less accurate) information about running assembly programs as this document, but they often dohave more information on the basic math functions and how to write simple programs in basic.

Internet Relay Chat (IRC)

IRC enables you to talk about things including TI calculators in real time. This document is not an FAQ on IRC, so I won't describe it in detail here. You can get information on what it is from www.irchelp.org. Essentially, IRC is a very large multi-user text-based communication system. There are several different 'networks', each of which contains many 'servers' that a user can connect to to be able to communicate with anyone on that network. It is organized into channels, each of which has a specific name and (usually) is controlled by specific operators (who have the ability to remove you from the channel, permanently if so desired); the largest networks have over 100000 users (but of course most of them aren't there to talk about TI calculators).

Here are the main calculator-related channels. All of these are on EfNet.

There were several other TI calculator channels in use in the past but the ones listed above are the only ones that are still active.

E-Mail

You can send additional questions to me in E-Mail. My address is ocf.berkeley.edu, or (if this doesn't work) eeulplek@hotmail.com. If your E-Mail normally blocks all mail from everyone except a list specifically permitted to contact you, be sure to allow E-Mail from my address before you send to it! Please observe the following guidelines about asking for help from me:

You can also ask questions to help@ticalc.org. They are probably willing to answer questions that are outside what I'm willing to answer, as described above.

Mailing lists

There are also some mailing lists operated by ticalc.org that you can ask questions on. For information on how to access these, go the the "Community" section of ticalc.org, then look under "Mailing Lists and Newsletters". They are not currently very active.

Newsgroups

There is a newsgroup for TI calculators, bit.listserv.calc-ti. It is not currently very active.


How do I use a ZIP file?

Essentially, a ZIP file is a collection of other files in compressed form. Recent computer operating systems all have support for opening them built in, which should be explained in the OS documentation. You can search for "zip" or "unzip" on the web if you want more tools to do so or more help.


I don't have the manual to my calculator. Where can I get one?

These are available for download from TI's web site. Select "guidebooks/manuals" from the drop-down box and then you can get the manual after indicating your calculator and language.