Projects / amforth


amforth is an extendible command interpreter for the Atmel AVR ATmega microcontroller family. It has a turnkey feature for embedded use as well. It does not depend on a host application. The command language is an almost compatible ANS94 forth with extensions. It needs less than 8KB code memory for the base system. It is written in assembly language and forth itself.

Operating Systems

Recent releases

  •  07 May 2014 19:06

    Release Notes: This release optimizes the forth dictionary to maximize the size for user code. It contains a few speed improvements and some bugfixes. The recognizer technique in the command interpreter is raised to the 2nd generation, much like the ones found in gforth.

    •  23 Dec 2013 19:56

      Release Notes: This release improves the standard Forth VALUEs, adds support for more Forth 2012 standard word sets, and is now fully 8bit clean. The documentation is greatly expanded. Internal changes improve the speed of operation.

      •  05 Apr 2013 18:24

        Release Notes: The major focus for this release is documentation. It is completely rewritten and reformatted. It now includes many recipes and howtos. Among the more internal changes are some new words and a new experimental feature called scope which makes it possible to automatically place a new word in other wordlists.

        •  27 Dec 2012 19:38

          Release Notes: This release adds support for 1wire devices (due to work being done for the project) and improves power save strategies. Furthermore, it comes with a lot more documentation on the Web site: topics like timers as well as developer tools like profiler and debugger. Some Arduino relevant enhancements are made. There are now some rudimentary compiler safety checks. Some minor bugs are fixed as well.

          •  27 Jul 2012 07:02

            Release Notes: This release introduces a new shell program to access the command prompt. It has command history, command completion with tab, and full access to all registers and bits by name without filling the dictionary on the controller. The library section is restructured and expanded. Some small bugs were fixed as well.

            Recent comments

            12 Dec 2011 09:18 hansoft

            I picked up that you're using some of the FP words from 4tH - THANK YOU!

            You "reported" an error of the Taylor series. That is not true. The sources
            you probably used are for the Brad Eckert FP implementation, which has a
            SEPARATE FP stack. The "bug" you experienced and the way you solved it
            indicates to me you're using a SHARED FP stack.

            Fortunately, 4tH also features an FP implementation with a shared FP stack,
            called Zen FP. Sometimes, it might be better to get your inspiration there
            with the following notes:

            - Zen FP uses 2 cells numbers, one for the mantissa and one for the exponent.
            Consequently, 2OVER is FOVER, 2DUP is FDUP, etc.
            - 4tH is geared towards 32 bit cells at least. Yours seems to be 16 bit, so
            sometimes you will need to treat 4tH numbers as double numbers (as you did in
            the Taylor series).

            I hope these few notes will enable you to implement a full range of FP words
            (just like me ;-) ) if you haven't done so already.

            Hans Bezemer


            Project Spotlight


            A Fluent OpenStack client API for Java.


            Project Spotlight

            TurnKey TWiki Appliance

            A TWiki appliance that is easy to use and lightweight.