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

RSS Recent releases

  •  24 Dec 2013 01:57

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 22:27

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.

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.

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.

Release Notes: This release adds the last missing word from the Forth Standard CORE Wordset: EVALUATE. Some debugger tasks like a call tracer and a profiler are available now. Optional support for unified memory addresses is added. Internal changes open the road to more features like LOCALs. A few bugs are fixed.

RSS Recent comments

12 Dec 2011 09:18 Avatar 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 combined to-do manager, notepad, and RSS reader.


Project Spotlight

HTML Forms generation and validation

A PHP class to dynamically generate and validate HTML forms.