is an interactive 16-bit stand-alone forth for MSP430.
Albert Nijhof & Willem Ouwerkerk
Last update april 2018
You can put the noForth image on a Launchpad
and then program the chip using any serial terminal.
noForth C and V
noForth comes in two variants:
- noForth C, Compact, for the smaller 16kB flash processors.
- noForth V, with Vocabularies, for larger flash memories.
noForth C can be used in the larger flash memories
noForth V in the smaller ones.
To get an idea of the differences between C and V,
see noforth words.pdf
Low Power noForths
The "Low Power" noForths are marked with a dash: noForth C-, V-, CC- and VV-.
noForth CC and VV
New january 2018
noForth CC and noForth VV are faster but less compact than C and V.
|The priorities for noForth C and V: ||1. robust and comfortable, 2. compact, 3. fast |
|The priorities for noForth CC and VV: ||1. robust and comfortable, 2. fast, 3. compact |
- A delay of hx 30 MS is installed in COLD.
After a power-on the processor will now be stable before
the sensible rom-housekeeping in TIDY is executed.
- Problem with C" in noForth CC solved.
Problem with EVALUATE solved in INTERPRET (all versions).
- New: noForth for FR2433 LP and for G2955
- New: noForth variants CC and VV.
Added: :NONAME and C"
We made the hardware intinialisation in the different noForths cleaner and more uniform.
The settings for Baud rate, clock speed, Uart, etc. are
packed in a list of fourteen bytes, the CONFIG list.
We provide noForth Intel-hex (.a43) files only for certain MSP430 processors
and not for every combination of processor and hardware environment
because now you can easily adapt the Intel-hex file for your hardware.
Open the readme file in the ZIPs below and follow the instructions.
Defining words and compiler words are now implemented in such a way that auxiliary words ( 0BRANCH LIT DOCOL DOCON etc. ) no longer need to have their own headers.
It saves space and has no consequences for the programmer.
See under 'Files' further down on this page:
"session2.pdf" (decompiler output)
and "how noforth is made.pdf" (kangaroo method).
You find the general noForth Intel-hex files for the MSP430 processors in the list below.
It may be necessary to adapt the CONFIG list (settings for Baud rate, Clock speed, etc.) in the noForth Intel-hex files. Follow the instructions in the README file.
noForth versions (180401)
Documentation about boards
consists of about 50 elementary examples of hardware control
with noForth on the MSP430.
In each example you find a file with forth code, documentation
and links to more information on the internet.
Three answered questions about noForth
What do I need to get my program compiled in noForth?
noForth receives the text, translates it into code and compiles that in flashrom.
You need a simple communication program which is able
to send text to noForth on the chip.
(Teraterm for Windows, CoolTerm for OS X,
e4thcom for Linux, ... )
Baud rate 9600 -
data 8 bit -
parity none -
stop 1 bit -
flow control none -
transmit delay: 0 ms/char, 100 ms/line
Will compiled code stay in flashrom after a power off/on?
No, unless you have sent the command
Is it possible to erase 'frozen' code?
Yes. Executing a MARKER or a SHIELD erases the code that is compiled after it.
Before you start:
Since noForth compiles in FlashROM,
it is unavoidable that some words don't behave exactly as the standard prescribes.
We tried, without restricting the programming freedom, to minimize
the aberrations from the standard. This concerns:
HERE ALLOT ! C! +! MOVE (only RAM) , C, (only ROM) and CREATE
These files are for the 180401 versions.
This noForth software
is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation, either version 3 of the License, or
(at your option) any later version.
This software is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
How to make a turnkey system
' <my-application> TO APP FREEZE
(Put the application token in the value APP and type FREEZE)
The execution of the APP vector can be bypassed with a switch.
noForth is written 'from scratch'
- Floored division
- With decompiler
- CATCH and THROW
- With meta compiler
- Fast FIND (eight threads)
- KEY KEY? and EMIT are vectored
- Adjustable prompt, for extra information
- VALUE with prefixes TO +TO and INCR
- Missing core words are available as source
- Assembler and disassembler available as source
- Also an external assembler aux430ass.f (in Win32forth)
- Forget-functions (MARKER and SHIELD) do not spill Flash memory
- When an error occurs while loading a file, noForth will ignore the rest of the file