<< Home | About Forth | About TurboForth | Download | Language Reference | Resources | Tutorials | YouTube >>

Download TurboForth

TurboForth is available as a physical plug-in cartridge for the TI-99/4A console. It requires a disk system and 32K memory expansion. In addition, downloadable files are available for number of TI-99/4A emulators:

EPROM and Emulator Binaries

TurboForth Version 1.2.2 October 10 th 2015

Download Type Contents Instructions
Raw EPROM Binary Image Two 8K raw binary files, one for each 8K bank. Click here
Classic99 emulator Zip file. Includes cartridge file, boot disk, and tools disk. In the zip file
MESS emulator Zip file. Includes cartridge file, boot disk, and tools disk.
Source Code The entire source code. Designed to be assembled with the ASM99 Assembler from Cory Burr.
Utility Disk See below.
Tools Disk See below.
Download (2.89MB)

Utility Disks

Boot/Utilities Disk (place in DSK1)

On a real TI-99/4A system, both the utilities disk (also known as the boot disk) and the tools disk are Display-Fixed 128 (DF128) type files. The utilities/boot disk should be placed in DSK1 and the tools disk in DSK2. The disk images are included in the above download.

Boot/Utilities Disk - August 20th 2015

Programming Utilities

File Utilities


Word re-definition tool Type file (to screen) Speech demo 1
SID99 sound card support Print file Speech demo 2
TMS9900 assembler Copy files Roman numerals
SEE decompiler Block to file export Prime numbers
Assembler to machine code utility File to block import Kaleidoscope
32-bit double precision library Copy blocks Snake
Memory dump utility Disk catalog  
Local variables Editor/Assembler #3 loader  
Code tracer/debugging tool Text file interpreter - updated 19th August 2015
(compile Forth code from text files, rather than blocks)
?DO support Move blocks - added 19th August 2015
(safely move blocks around within the same blocks file)
Floating-point library    

Tools Disk (place in DSK2)

This disk is essentially a continuation of the Utilities Disk (all 80 blocks in the Utilities disk are used, hence the creation of this second disk). The disk contains a number of handy utilities/tools that I have found useful while developing code in TurboForth:

Tools Disk - August 24th 2015



POSTPONE a handy word for compiling other words into definitions. Standard Forth-83 requires the programmer to know if a word is immediate or not, and use [COMPILE] or COMPILE as appropriate. POSTPONE (from the ANS94 Forth Standard) does the work for you.
Enhanced Case a small extension to CASE and friends, adding the new word DEFAULT:. See the article here.
Tools for VARIABLEs Tools for working with variables. Adds the words ON, OFF, TOGGLE, and ? which are very handy and nice to use, resulting in less "visually noisy" source code.
:NONAME adds the ANS Forth 94 word :NONAME. This allows allows the creation of headerless colon definitions (they literally have no name). After compilation of a :NONAME word, the execution token for the word is left on the stack, allowing the definition to be executed via EXECUTE.
String Stack Library an extremely fully featured string library allowing a multitude of string operations. Strings are stored on a string stack, just like numbers are stored on the data stack. Words are provided to DUP strings, SWAP strings, ROTate strings, trim strings, convert to upper/lower case, search strings, replace substrings of strings, concatenate strings and more. All coded in Forth. See the article on the String Stack library here.
SEE decompiler A much enhanced (and faster) SEE decompiler. Much better than the SEE decompiler provided on the Utilities disk.
INVERT$ A machine code word to invert (i.e. produce the inverse video equivalent) of a string.
DATA[ an enhanced version of DATA which is built into the TurboForth ROM. Faster to compile, does not require the programmer to supply the number of data items (it compiles it for you) and can span multiple lines when entering data from the command line.
Applications Support supports private dictionaries of words, similar to standard Forth Vocabularies, with the additional flexibility of being able to expose words to the 'global' dictionary. This allows the internal implementation details of applications and libraries to be hidden, exposing only their public interfaces.
SAMS Programming Library Allows colon definitions to be written in banked SAMS/AMS memory. Banked definitions may be nested with total disregard to the banks in which words are defined. Neat.


Moving Between the Disks

The boot disk (above) should be placed in DSK1. The TOOLS disk in DSK2. If you follow this convention you can effortlessly move between the two disks - type TOOLS after booting to see the contents of the TOOLS disk, or type UTILS, FILES, TOOLS, HELP, or DEMOs to see the various menus on the boot/utilities disk.

Source Code

The full source code for each release is available for download as a zip file. See the table above. TurboForth is written in TMS9900 assembler, with some embedded Forth code for good measure. It is designed to be assembled using the Win994A assembler by Cory Burr, which comes packaged with the Win994A emulator/simulator. You can also view the latest source code online.


A number of documents are available (PDF format and online HTML) on various aspects of TurboForth programming. Please see the Resources page.

Online Language Reference

A fully searchable online reference is available, which lists all the commands available in the TurboForth language, and some of the libraries.

Making Your Own TurboForth Cartridge

The software is 16K in size, and designed to be burned into a 27(C)128 EPROM. The cartridge board which hosts the EPROM is known as Guidry Board. You can download the Gerber files and have your own made. Alternatively, you can ask around in the TI-99/4A forums on Atariage (yes, Atariage!). As a last resort, you could ask me. The zip file contains a single file: turboforth.eprom. Just burn this file using your EPROM programmer into the 27C128, put in the board, plug in and switch on! TurboForth doesn't need any additional disk files to run - it's self contained in the cartridge. However, the emulator versions (see the table at the top of this page) contain two disks, the "boot" (or "utilities") disk, which you normally place in DSK1, and the TOOLS disk, which, if you use it, should do in DSK2 (at least, until you customise your system the way you want it to operate). My suggestion is that you download the MESS version of the emulator files, as it contains two disk images which can be used to create disk images on real hardware. Ask in the Atariage forums for help with this - probably some kind soul will just post you the disks in the mail.

Disk Formats

The BOOT and TOOLS disks are distributed in DSK format, as it is the most common format among editors. MESS and Classic99 can both handle DSK format disk images. For Win994A just change the .DSK extension to .TIDISK and you're done. For handling DSK images (importing or exporting files) I recommend the excellent TI-ImageTool by Michael Zapf, the maintainer of the 99/4A and Geneve emulation in the MESS emulator.


Updated 22nd August 2015

<< Home | About Forth | About TurboForth | Download | Language Reference | Resources | Tutorials | YouTube >>