The Ultimate TI Calculator FAQ - Introduction

by Patrick Davidson ( pad@ocf.berkeley.edu) - Return to FAQ index - Return to my main page
  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?

All of the calculators covered by this document can run large selections of programs. The link ports make transferring software from a computer to a calculator or between calculators easy. There are a many programs available for each of these calculators. The kind of programs available range from simple math programs which ask the user to type in the radius of a circle, and then display its area, to complex games from many genres.


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

"Basic" here refers to the built-in programming language of the calculator. This language is somewhat similar to the various "Basic" languages available for computers, and it's what the calculator's manual describes programming in. This language is easy to learn and use, but unfortunately is very slow. For very simple things such as a "quadratic formula" program, this langauge is adequate. However 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 langauge to program in is "asm" (assembly). When programming in assembly, you are actually writing the same code that the processor directly executes, unlike basic, in which the processor directly executes a different program, which "interprets" each statement in the basic program each time it has to be run. For this reason (and many 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 b y looking at it, assembly is not quite as easy for a beginner to understand, since it describes individual operations of the processor 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) which, unlike basic, is designed for speed, and also is converted to machine code before it is run. Since the programs are run in machine code form, 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. 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.

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. Anyway, here are several other sources of guidance:

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.

E-Mail

You can, of course, send additional questions to me in E-Mail. My address is pad@calc.org, or (if this doesn't work) pad@ocf.berkeley.edu. 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! Note that my pad@calc.org address normally forwards mail to pad@ocf.berkeley.edu, so be sure to allow mail from that address as that is where replies normally will come from. 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".

Newsgroups

There is a newsgroup for TI calculators, bit.listserv.calc-ti.

Internet Relay Chat (IRC)

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

First, the English-language channels, all of which are on EfNet.

There are also some French language channels. While French is the preferred language on these channels, if you speak English most of the people there will probably understand and tolerate you. All of these are on the kewl.org network. Note that the activity level depends on what time of day it is in France.

The channel most focused on calculators is #tigen.org which is associated with the TI-Gen web site. There are several other channels have some degree of calculator discussion, but are more oriented to other subjects or which have become inactive. Nonetheless you can still try to discuss calculators there. Ranked from most active to least active, the channels are: #3l33t, #arf, #ti, #ti-fr.


How do I use a ZIP file?

This is an FAQ about calculators, not the basics of computers, so I won't write much on this. Essentially, a ZIP file is a collection of other files in compressed form. You need an 'unzip' program to be able to extract the contents of these files. For Windows, I would recommend using 7-Zip. For the Macintosh I think 'StuffIt Expander' is normally used. If you use Linux, your Linux distribution almost certainly includes 'zip' and 'unzip' programs as this is a widely used file format. For other operating systems, just search the web for one.


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.