amforth

amforth is a compact forth interpreter and compiler.
Download

amforth Ranking & Summary

Advertisement

  • Rating:
  • License:
  • GPL
  • Price:
  • FREE
  • Publisher Name:
  • Matthias Trute
  • Publisher web site:

amforth Tags


amforth Description

amforth is a compact forth interpreter and compiler. amforth is a compact forth interpreter and compiler. amforth project is implemented in assembly language and forth itself. It is not a cross-compiler.amforth implements an ans94 stylish forth with a few missing words and a few words from the extension word sets.amforth is designed to run on atmel atmega processors with built-in RAM, flash and EEPROM. It is a pure 16 bit forth. It uses the indirect threaded model. It works interactivly on the MC via the serial interface (usart0). Use of double cell operands is dropped completly. They may be added later, if needed.Flash structure+------------------ 0000 --------------+| Interrupt vectors || |+------------------ 0026 --------------+| initialization code || interrupt routines || "colon" dictionary || ||LATEST: ||~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~|+------------- nrww section -----------+| inner interpreter (docol, next) || "primitive" dictionary || Link to "colon" dictionary |+----------- flashend -----------------+The flash contains both the inner interpreter as well as the whole dictionary. New words are compiled directly into flash. The dictionary is splited into two parts. One contains all assembler (primitive) words including NEXT and DOCOL. This part is located at the end of the flash area.The other part contains words coded as colon definitions. This comes down to the beginning of the flash. The reason for this split is that the spm instruction is used to compile new definitions directly into flash.This instruction can only be called from an nrww area of the flash (booloader area). To use this operation, most of the core routines of the forth systems needs to be located in the nrww section.RAM+--------------- 0000 -----------------+| 0-31: register set ||31-59: io space |+--------------------------------------+|60-84: usart buffer ||84.. : TIB, PAD, HLD buffers || HEAP: start of variable space || || ^ || | || data stack, growing downward |+---------- ramsize - $80 -------------|| ^ || | || return stack, growing downward |+---------- ram size ------------------+TIB is currently 80 bytes long, PAD and HLD 16 bytes. What's New in This Release: · This is both a feature enhancement and a cleanup release. · A few new words are added to deal with terminals and (forth-) environment. · There are a few internal enhancements to run on big ATmegas and ATXmegas in a future release.


amforth Related Software