Skip to content


Subversion checkout URL

You can clone with
Download ZIP
TI-99/4A BASIC as a scripting language
Latest commit 1ceab98 James Abbatiello Change README from HTML to Markdown so it will appear on the GitHub l…
…anding page.
Failed to load latest commit information.
samples Initial import
Makefile Initial import
Makefile.win32 Initial import Initial import
runtime_types.h Initial import
tibasic.rules Initial import
tibasic.vcproj Initial import

ti99basic - TI-99/4A BASIC as a scripting language

This is a version of Texas Instruments' BASIC as found in ROM on the TI-99/4A. Note that this is not TI Extended BASIC. It is also not the same as the TI-BASIC used in TI's line of calculators. You can use it in interactive mode or pass a BASIC file as a command line parameter.

This source does not emulate TMS9900 code. The function of the original TMS9900 code is handled by native code. The Graphics Programming Language (GPL) code is still run in a virtual machine just as it was on the original hardware.


  • 2009-08-12 Version 1.0 (Win32 binary, OS X binary, source)

Windows users should also install Microsoft Visual C++ 2008 SP1 Redistributable Package.


It has been tested with

  • Mac OS X 10.4/10.5/10.6 i386/x86_64/ppc (GCC 3.3/4.2)
  • Ubuntu Linux 9.04 (GCC 4.3)
  • Windows XP (Visual Studio 2008)

Other CPUs, operating systems and compilers should work, too.


To build from source you will need a copy of Perl and the original TI-99/4A ROMs. These files should have the following MD5 sums:

6cc4bc2b6b3b0c33698e6a03759a4cab *rom.bin
ed8ff714542ba850bdec686840a79217 *grom.bin

Other versions of the files are unlikely to work.


The specifics of the dialect of BASIC used by the TI-99/4A are available in the original User's Reference Guide. The Cassette, Disk, and Sound devices are not currently emulated. You can use tibasic in interactive mode by just running the binary without parameters, or you can specify an ASCII-encoded BASIC program on the command line. You can also use tibasic as a UNIX scripting language by adding a hashbang line to your BASIC program and making it executable.

$ ls -l hello.bas
-rwxr-xr-x 1 user user 43 2009-08-06 23:55 hello.bas
$ cat hello.bas
$ ./hello.bas

Also included are 3 sample programs in the 'samples' directory. The first two are sample games provided in the original manual; these expect upper-case input at the prompts so it may be convenient to turn on Caps Lock when running them.

codebreaker.bas A clone of Mastermind
secretnumber.bas Guess the secret number but with an unusual twist
sieve.bas Prints out prime numbers from 1 to 120,000


The latest source code can be found in the repository.


Feel free to use this project for any purpose, give credit if you like, and send back improvements to the authors, if you like, so that others can benefit from it. See source for license details.


James Abbatiello
Michael Steil

See Also

If you liked this you may enjoy cbmbasic - Commodore BASIC V2 as a scripting language

Something went wrong with that request. Please try again.