There are an assortment of download packages to choose from. The simplest package will just be a binary tool to load into your system. Also available are the sources, a few frameworks, documentation, some examples, printable PDF copies of the papers and older versions of Timbre. The latest version is (750KB) but previous versions remain available.

Mac OS X

  • Mac universal binary - tlc (276Kbytes)
    It is recommended to put this tool into a common tool location such as /usr/local/bin and make sure that it is also in your PATH list so that you can access it from anywhere along with your other Unix tools.  Or you can just keep it in any directory and reference it from there.
  • In the file are project files for the excellent gcc IDE, XCode, which comes free with the OS - these files can be used with the sources to compile Timbre. This might be useful if you want to extend Timbre by adding in C libraries or code to connect to the underlying hardware. Headers for C functions can be created by using one of the example scripts. This is more for the adventureous types.


  • Windows binary - tlc.exe (276Kbytes)
    It is recommended to put the binary in a place that is accessable through the system PATH variable. Alternatively, you could put it in your working directory and call it from there. Whatever works for you.
  • file are project files for the excellent gcc IDE, Dev-C++ - these files can be used with the sources to compile Timbre. This might be useful if you want to extend Timbre by adding in C libraries or code to connect to the underlying hardware. Headers for C functions can be created by using one of the example scripts. This is more for the adventureous types.

Other Stuff included

  • sources - for compiling on any system such as Mac OS X Windows or Linux. Use the above project files and the tools for Mac and Windows or if Linux, using the makefile, just type in make unix
  • documentation - never enough but here's what there is
  • frameworks - starting places or augmentations to your scripts
  • examples - some simple scripts showing how to use Timbre
  • papers zipped up - bundle of seven published papers also available in HTML
  • old version of Timbre - Version 7 and 9 for various platforms for histerical purposes and not supported


2/21/8 - version.14

  • changed all words to lowercase
  • various updates and improvements


  • changed LINE_LENGTH from 255 to 2000 so that really long lines can be handled.  This will not allow longer lines and perhaps the mechanism should be more general to be expandable by an app to any line length


  • changed sys to put out a cr lf so unix command starts at beginning of new line
  • modified flush_emits() from fwrite to putchar to improve output veracity


  • changed data and return stack depth from 64 to 1024 in botkernl.h
  • removed include for vxworks from botkernl.h
  • hopefully updated sockets to make them workable and lower case
    • server-socket ( port -- socket )  establish a server port
    • client-socket ( s -- socket )  connect to a server port
    • close-socket ( socket -- )  close a socket
    • read-socket ( a \ n \ socket -- m )  read up to n bytes from socket into a and return actual number of bytes written
    • write-socket ( a \ n \ socket -- )  write n bytes from a to socket


  • fixed a bug in close where the file-status was from the next file on the stack and now it is from the just closed file
  • fixed open to close a file if an error occured instead of leaving crap on the file stack
  • fixed reposition file so that it did work; was previously undefined for unix
    bumped version number to v.12
  • added socket words but sockets not working yet
  • added an error return capability; 0 bye or bye will return no error but -1 bye will return an error of 255

9/13/5 - version.9

  • removed anything not directly supporting Timbre, legacy source
  • compile on Windows with DevC++ IDE
  • compile on Mac OS X with XCode or just use make unix
  • compile on any Linux system (hopefully) with just make unix
  • all systems work with same directory name separator '/' which makes scripting across platforms uniform
  • put timbre in common bin directory to use anywhere
  • repaired permissions on all sources

9/11/5 - changes for cygwin independance

  • changed qualifier from unix to DEVC and used DEV-C++ as IDE/compiler
  • added conditionals for SIGBUS, SIGHUP, SIGQUIT, SIGTSTP in signals.c
  • moved SLEEPER from io.c to localio.c and made conditional choice on usleep and sleep - also changed internals to just those words
  • added a few changes in localio for new qualifier DEVC

9/9/5 - changes for windows

  • changed _AND to _xAND in kernel.h so that it would compile under gcc/cygwin on windows platform. There must be a macro or keyword named _AND preventing such a compile.

9/8/5 - a few changes were made to compile on Unix systems

  • byte_pointer_ was declared as in int for unix systems
  • drift entry in makefile was updated to compile math library for floating Timbre

6/12/5 - a few changes were made to be able to compile on macosx. These are changes that will improve other platform ports:

  • SLEEPER has been added and is called from the BARON to reduce CPU usage when nothing is getting done. If polling is happening too rapidly, this can lead to 100% cpu utilization. To get around this this word detects low activity and sleeps the application for periods.
  • -Ae was removed from all cc options in makefile.
  • SHELLS in botkernel.h was increased to 100 to allow deeper shell nesting and recovery. Obviously this is a weak spot in the design and needs to be addressed in a better way, if not at least gracefully.
  • fileq was increased to 100 to allow file nesting depth to 25 levels
  • note that memcmp returns the difference between characters or zero, not like clibs.c which returns +-one or zero. This fixes sorting problem in OUTPUT.F where -1 = is replaced with 0<.
  • unnecessary files have been removed: q1.c queue.c main.c 68901.h
  • added argument inputs to main in kernel.c to accept -q for quiet and to also take a file as input
  • bumped the botkernel version number up to V.8 to reflect major changes
  • fixed a bug in SWAP ! and SWAP C! forgot to drop 2 items
  • folded TIMBREXT.F into TIMBRE.F to become V.8
  • translated OUTPUT.F into output.c and output.h and folded into file.c and file.h removing CD and WD redundancies.