# AmForth¶

AmForth is an easily extendible command interpreter for the Atmel AVR8 Atmega micro controller family. It has a turnkey feature for embedded use too.

AmForth runs completely on the controller. It does not need additional hardware beyond a power supply. It makes no restrictions for hardware extensions that can be connected to the controller.

The command language is Forth. AmForth implements an almost compatible ANS94 indirect threading 16bit Forth. There are some extensions from the Forth 2012 standard.

The interpreter has a command prompt in a serial terminal. Other connections like TCP/IP telnet or radio links are possible.

AmForth is published under the GNU Public License v2 (GPL).

AmForth needs approx. 8KB Flash memory, 80 bytes EEPROM, and 200 bytes RAM for the core system.

Karl Lunt has written an excellent User’s Manual on how to start and work with AmForth. For those who want to take a deeper look into the system is the Technical Guide. The whole documentation is available as PDF and EPUB.

Leon made a very good intro into amforth and his floating point library on youtube. Worth watching!

## Under Construction¶

Here you’ll find things that are not yet released but will be part of the next release. See the code section at Sourceforge to get the most recent sources

• lib: many new Serial Peripheral Inteface SPI code examples: MMC/SD-Card from Lubos (So Sorry for beeing late) and TCP/IP (Telnet). Many Thanks to Jens. Speed optimized words for SPI in amforth core.
• doc: new recipe for Forward Declarations
• core: internally merged code for defer’s and value’s. Small speed improvments for defer actions.
• doc: Extended VM: more registers in the Forth VM with interesting features.

### 23.12.2013: release 5.2¶

• Improved and extended Values
• Forth 2012 Traverse-Wordlist
• improved documentation
• core: added d0= and 0= as assembly primitives and use them in other compare operations. Saves a lot of code space.
• Wordlist entries are now 8bit clean. Words with umlauts or e.g. Greek commands work as expected, unless the terminal does not cooperate. Thanks to Enoch.
> : Σ  0 swap 0  do  +  loop  ;
ok
> 7 8 9 3 Σ .
24  ok
>