Diving Into Forth

Added by monsonite about 3 years ago

Jean Claude

Thank you for your recent postings about your Forth experiments - probably the most intensive Forth documentation since the August 1980 Byte article - which originally galvanised interest in using Forth.

Since that 1980 article, we now have the internet, Github, open source software and hardware, ubiquitous 32bit and 16 bit microcontrollers, FRAM memory, FPGAs and dozens of other technical innovations which should all help encourage users to have a look at Forth for digital interaction.

Getting started in Forth has never been simpler, in addition to Matthias Koch's Mecrisp they are other downloadable packages, including 4E4th (for MSP430) and VFX Lite (for MSP430 or ARM M4).

I have focused on the above two, because a Forth implementation of the Forth 16-bit virtual machine is so much simpler - and sensible - on a 16-bit or 32-bit architecture than an 8-bit processor.

4E4th runs on the low cost MSP430 Launchpad -

There is also AmForth for MSP430 - based on Brad Rodriguez's camelForth.

(Although Amforth and eForth implementations for Ardunio's 8 bit AVR are available).

Looking at FPGA implementations, there is James Bowman's J1 Forth processor which runs on a Xilinx Spartan 6 device, or also on a Lattice iCE 40 series part - with the tool chain now entirely open source.

I also recently came across the N.I.G.E Machine - a 100MHz Forth Workstation, again based on low cost FPGA technology.

If you want to build a workstation type product - suitable FPGA hardware with PS/2 Keyboard & Mouse and VGA/XGA video output is available from Saanlima Electronics in their Spartan 6 Pepino board and also from Gadget Factory in their Papillio range of FPGA boards.

Whilst there are various Forth Interest (FIG) Groups around the world, it is probably the German, Forth-Gesellschaft e.V. who are the most active, with regular news and updates on their website

For anyone with an interest in Forth, why not spend a quiet Sunday morning browsing on what is available.