comp.lang.forth Frequently-Asked Questions, part 4 of 7 A discussion of available Forth Systems: Commercial, Shareware & Freeware John D. Verne Last modified: $Date: 1999/07/23 02:26:49 $ Please send omissions or corrections to John D. Verne . The Forth Systems FAQ, Copyright (C) 1996 by John D. Verne. All Rights Reserved. For all the gory legal stuff, please see the ``Legalities...'' section. This FAQ is adopted in its entirety from the "implementations" FAQ by Stephen J. Bevan, last updated September 1995. Thanks Stephen! ______________________________________________________________________ Table of Contents 1. Introduction 1.1 What this document is 1.2 What this document is not 1.3 How to get the files listed herein 1.4 Why are some listings so terse? 1.5 Requesting Changes to the FAQ 1.6 About the Systems FAQ 2. Recent Changes 2.1 Change Log 2.2 To Do 3. Forth for Embedded Systems 3.1 8051/31 3.2 CP/M, Z80 3.3 Hitachi 3.4 DSP (Digital Signal Processors) 3.5 MCS51 (AMTEL) 3.6 Motorola (68K, 6809, 68HC11/16) 3.6.1 68HC11/16 3.6.2 68000 3.6.3 6809 3.7 Microchip PIC 4. Forth for Stack Machines and Forth Chips 5. Forth for the PC 5.1 16-bit real-mode 5.2 32-bit protected-mode 6. Forth for Microsoft Windows 7. Forth for the Apple Macintosh 8. Forth for OS/2 9. Forth for the Acorn ARM/StrongARM 10. Forth written in C/C++ 11. Forth for Various Flavors of UNIX 12. Forth for the Amiga 13. Forth for the Atari ST 14. Forth for the Transputer 15. Forth for the Tandy TRS-80 16. Forth for the Apple II 17. Forth for VAX/VMS 18. Miscellaneous Forth 18.1 Musical Forth 18.2 Java Forth 18.3 USR/3COM Pilot/Palm Pilot/Palm 19. Forth that ain't necessarily Forth 20. Contributors and Acknowledgments 21. Legalities, Miscellanea and Caveats ______________________________________________________________________ 1. Introduction 1.1. What this document is This is part four of a seven part document covering many aspects of the Forth programming language. All seven parts are posted monthly to the USENET newsgroups comp.lang.forth, comp.answers, and news.answers. They are updated regularly. This part is primarily concerned with the Forth implementations available for a wide variety of systems. That is, it attempts to answer the question, "Where can I get Forth for ... ?" For further information on Forth or Forth resources, please consult the other parts of this FAQ. They can be found at: o o 1.2. What this document is not This document is not a complete list of all the available Forth implementations, and it never will be. Neither will it ever be the most accurate or up-to-date source for contacts and Forth resources. I fully expect to have missed many legacy systems, and I know that there are current Forth vendors and authors who have not made it into these pages. What I have attempted to do is maintain this document as a good starting point for those who are interested in finding a Forth solution for a given system. Just as a single keyword search on the internet may not give you the exact results you want, perhaps there are enough "hits" in these pages to guide most people to their eventual destination. 1.3. How to get the files listed herein Some of these Forth systems are listed as being available from particular anonymous ftp addresses, or from "good archives". If you have a choice of sites, please try and use as geographically close a site to you as possible. Most ftp directories have README or 00INDEX files that tell you what's in them. Read these first. 1.4. Why are some listings so terse? Forth is probably one of the most ported languages. The number of implementations I have been able to note in these pages is nothing short of staggering. In some cases I've been forced to be a little, um, terse, to say the least. If this document is going to be accepted by most news servers, it has to be kept below a critical size; it may already be over that limit for some sites. If a listing is short, it is probably because that product is available for more than one machine. If you can't find the Forth system you are looking for in this document, please remember that most of the vendors mentioned herein can source for a wide variety of platforms. Company addresses and contact information are in part 3 of the FAQ, vendors . 1.5. Requesting Changes to the FAQ There are probably several errors and/or omissions in this document. If you spot an error, or feel that there is an obvious omission, please let me know . If possible, please send one (1) email per change request. Please indicate in the email subject line that this is a change request for the Forth Systems FAQ, and be sure to include the exact text to revise. It is especially helpful if you can provide an example of the new or fixed listing. Please note that listings marked with a "?" are known to be wrong, and need to be corrected or removed. As well, I've also marked some listings with comments [like this] when I am unsure of the accuracy of the information it contains. 1.6. About the Systems FAQ The source text of this document is in SGML format, and is maintained with emacs, utilizing the SGML major-mode. Historical versions are stored as a GNU RCS archive. The text and HTML versions are created with the SGMLTools package, using the LinuxDoc96 DTD. The same tool is used to verify the SGML source. The HTML 3.2 conversion is tested with Netscape Communicator 4.61 and Lynx. If you require this document in formats other than plaintext or HTML, please email me. 2. Recent Changes 2.1. Change Log Please note that recent changes to product listings are marked with a vertical bar ("|"). o 99-07-22 Added RTC678 PIC Forth o 99-07-11 Updated ARM eForth, ARM in general, eForth in general, added kForth, played with heading names o 99-07-10 Added iTV 4os, Silicon Composers, P21Forth &etc. to engines section o 99-07-09 Added a skeleton Forth Engine section. Need to populate this at some point. o 99-07-07 More tweaks, no real content change. Folded some sections into subsections. o 99-07-05 Added TpForth listing. Tested 8051 and PC URLs. o 99-07-03 Converted to SGML; original text source has been branched in the archive. This document will supercede it. o 99-06-30 Tweaks hacks and fixes. Massaged LegoForth listing to be clearer o 99-05-05 Update hForth for ARM, transputer, Jax4th, FIJI, Holon, Aztec, ForthCMP, Delta o 98-10-07 Added refs to Hartforth, ChForth, 8051-forth, byteforth o 98-09-12 Fixed A. Houghton email, typos, Quartus listing o 98-08-24 Added entry for Quartus beta o 98-08-19 Added listings for chipFORTH from COMSOL o 98-08-13 Added TDS to the Misc/Hitachi list. o 98-08-12 Updated (some) changed ftp.forth.org URLs o 98-08-12 Updates to FORTH, Inc., MPE, jForth is now freeware o 98-06-02 Updated PFE info, added pForth listing 2.2. To Do Maintaining and organizing the comp.lang.forth FAQ is a large job, and can eat a big chunk of my time. I've prioritized some Things To Do to let the reader know what I'm up to: 1. Verify most, if not all, URLs 2. Organize (and standardize) the internal references, and references to the other FAQ-files; integration with HTML versions 3. Create links for all commercial products to vendors' sites 4. Update commercial blurbs with latest info 5. Use the SGML source smarter -- I may or may not continue using the idiosyncratic LinuxDoc DTD If you want to help, or have any suggestions, please let me know . 3. Forth for Embedded Systems Forth is probably the most chip-friendly language there is. I won't pretend that I've mentioned even half of the supported chip families. Please note that many of the vendors in this section can source for a huge variety of chips and chip families. 3.1. 8051/31 Commercial o 8051-ANS-Forth v1.01, by F.C. Cornelis and W. Ouwerkerk is a 16-bit ANSI standard implementation for the MCS51 line of processors. Currently available for 80C32, 80C320, 80C520, 80C552, 80C535 and runs also on Intel's new line of 87C251 processors. Turnkey programs are free of royalties and can be located in RAM. After relocating it may be burned into the 8 Kb free gap in EPROM next to the Forth system. Features include LOCALS, assembler, many libraries and a printed English-language manual. Version 1.11 will be released in November 1998. [Status? --jdv] o AM Research offer amrFORTH; a cross-development system for the 8051, 80C16x and 68HC11 that features a kernel of less than 700 bytes. 16-bit DOS or 32-bit Windows 95/98/NT development systems are available. A shareware version of amr8051 Forth is available for download. o Computer Solutions (COMSOL) produce and sell chipFORTH for many chip families, including the 8031, 83C552, 8051, 80186 and 80196. Features and development procedures depend on the chip supported, but chipFORTH provides a target compiler and assembler, debugging tools and code to communicate with the host. The FORTH nucleus is a 16-bit signed integer implementation with FORTH-83 extensions. o SwiftX from FORTH, Inc. is an interactive cross- development tool for embedded systems. A Windows-based system that features a multitasking kernel, debugging tools, dis/assembler and source libraries. Supported chips include the 8051, 68332, 68HC11/12 and UT69R000. o Laboratory Microsystems, Inc. (LMI) offer the LMI FORTH metacompiler that cross-compiles to many chip families, including the 8051/31. Compiles to ROMable code, or a turnkey disk application. Produces headerless words for compact code. There is no license fee or royalties for compiled applications. o Mikrap and Forth-Systeme sell SwissForth and act as agents for Laboratory Microsystems, Inc. (LMI). o MicroProcessor Engineering, Ltd. (MPE) offer their Forth5 Cross Compiler for the 8031 which contains expanded ROM/RAM and single chip targets. Variants for the 8055x also available. o Offete Enterprises, Inc. 8051 eForth by C. H. Ting. A small ROM based Forth system, with source code in MASM, for US$25. Non-commercial o William H. Payne, the author of "Embedded Controller Forth for the 8051 Family", has made all the code for the system described in his book available. It is also available with purchase of the book from FIG. o ?eForth51 may be downloaded free of charge from the RealTime Control and Forth Board (RCFB) < http://www.well.com/~jax/rcfb>. Designed to be very portable. [JDV:960920] o 51forth (alternative site ) is a subroutine-threaded Forth by Scott Gehmlich. [APH:950807] o CamelForth/51 by Brad Rodriguez is an ANSI Standard Forth that is free for non-commercial work (negotiate with the author if you want to use it in a commercial product). This is a beta-test version. [SJB:950721] o TpForth 2.6 by Technopoint Inc. is an integrated software development and debugging environment for the production of embedded Forth software. Two components make up the system: TpForth Developer Studio and TpForth Real Engine. The former is an application designed for Microsoft Windows for writing multi- threaded Forth programs and their interactive symbolic debug in real time. The latter is a multitasking engine that allows the real time execution and debug of Forth programs on the target hardware architecture (in other words, a multitasking stack based machine that has been implemented on supported hardware architectures). Supported target architectures are currently 8051, 8086 (16- and 32-bit) and the MIPS family. 3.2. CP/M, Z80 Commercial o Laboratory Microsystems, Inc. (LMI) offer a version of their Forth-83 cross-compiler for the Z80 and the HD64180. [see the ``8051'' section] o |eForth has been ported to the Z80 by Ken Chen. Includes a diagnostic program to debug the system during cold boot. Non-commercial o CamelForth/80 by Brad Rodriguez is an ANSI Standard Forth that is free for non-commercial work (please negotiate with the author if you want to use it commercially). [SJB:950721] o eForth has been ported to the Z-80. 3.3. Hitachi Commercial o MicroProcessor Engineering, Ltd. (MPE) Forth 6 compiler for the H8/300H is a Windows-hosted system with a choice of umbilical or standalone targets. Comes with source code. No runtime royalties. o chipFORTH from FORTH, Inc is available for the H8. [see the ``8051'' section] o Triangle Digital Services Ltd. (TDS) have two varieties of Forth burned into the PROMs of their Hitachi- based microcontroller systems. Two versions are available: 16-bit ANS Forth on an H8/532, and FIG-Forth on the 8-bit HD6301. Manuals and utilities are provided. o |eForth has been ported to the H8/532 by Bernie Mentink. Non-commercial o pbFORTH (Programmable Brick FORTH) is an embedded almost-ANS Forth for H8/300 and LEGO Mindstorms based on hFORTH by Dr. Koh [see the ``PC Forth'' section]. Plenty of tools, utilities and examples are included. Source code available for download. 3.4. DSP (Digital Signal Processors) Commercial o Computer Solutions (COMSOL) offer a 32-bit FORTH for the T800. All 64-bit floating point instruction are supported on the T805. Features include a speedy optimized compiler, generation of ROMable code, dis/assembler and debugger. Multi-tasking kernel. o ?TCOM FORTH Target Compiler by Tom Zimmer and Andrew McKewen has been extended for the TMS320. It also supports 808X, 80196 and SuperZ8. [is this still accurate information? --jdv] o FORTH, Inc offers chipFORTH for the TMS320C31, an interactive, DOS-based, cross-development environment for embedded systems. Support for Intel, Motorola and Hitachi microcontrollers. o Micro-K Systems produce complete AT&T DSP32 boards running Forth. Includes the AT&T DSP library. o MicroProcessor Engineering, Ltd. (MPE) Forth5 Cross Compiler, for various TMS320C3x family DSP chips. Non-commercial o A port of eForth is available for the 56002 DSP. [JDV:970412] o Dwight Elvey has made available a Forth cross-compiler for the 21xx family of DSP chips that runs under Tom Zimmer's TCOM. It was originally designed for the 2181, but should be easily adapted to other 21xx parts (e.g., the 2115). The use of special 218x/7x instructions was avoided. 3.5. MCS51 (AMTEL) Commercial o ByteForth is a near ANSI Forth implementation for the MCS51 line of processors. Currently only the AT89C1051 and AT89C2051 are supported. ByteForth is an optimizing macro compiler, generating royalty-free standalone applications. The compiler lets the user free to adjust the RAM and ROM for optimal use and has a built in Flash programmer. The system runs under 8051-ANS-Forth v1.01 [see the ``8051'' section] an a B+ SBC with 80C535. Features built-in hardware support, decompiler, 8051 assembler, DOS server, printed (Dutch-language) manual and two AT89C2051-12PC processors, cables and Flash programmer. Please contact W. Ouwerkerk for details. 3.6. Motorola (68K, 6809, 68HC11/16) 3.6.1. 68HC11/16 Commercial o AM Research offer a version of amrForth for the 68HC11. [see the ``8051'' section] o COMSOL offers chipFORTH for the 68HC11/16. [see the ``8051'' section] o Holon 11 by Forth Engineering is an integrated cross- development tool, which lets you work interactively on the program in the target system. The 200 byte remote monitor is boot-loaded into the 68HC11. Holon 11 offers all benefits of HolonForth [see the ``PC Forth'' section]. A free fully functional test version is available. o SwiftX from FORTH, Inc. . [see the ``8051'' section] o MicroProcessor Engineering, Ltd. (MPE) has a version of their Forth5 Cross Compiler for the PC, which includes a resident Forth for the 68HC16. This is a 16-bit Harvard model (64K code & 64K data). The MPE Forth includes "long address" fetch and store operators for the full megabyte of 68HC16 memory. Multiple data pages are also supported if your hardware will do it. o Laboratory Microsystems, Inc. (LMI) offer an 83-Standard metacompiler for the 68HC11. [see the ``8051'' section] o New Micros, Inc. has Max-FORTH which is burned into the ROMs of their OEM 68HCxx development boards. Max-FORTH uses a serial port to talk to the outside world, and can be compiled to off-chip ram. [BL:931117] o |An eForth port is available for the 68HC11. Non-commercial o ?tiny4th by Karl Lunt is free for all non-commercial use. [JDV:960918] o eForth is a highly portable, ANS-aligned Forth with source. o Various at & 3.6.2. 68000 Commercial o Bradley Forthware's ForthMon is available for US$500. o COMSOL offer chipFORTH for the 68332, 680x0. [see the ``8051'' section] o SwiftX from FORTH, Inc. [see the ``8051'' section] o MicroProcessor Engineering, Ltd. (MPE): Forth5 Cross Compiler, a 32-bit cross-development system for the PC. A protected-mode version is available. o Laboratory Microsystems, Inc. (LMI) offer a 16- or 32-bit 680x0 Forth-83 system. [see the ``8051'' section] o |eForth has been ported to the 68000 by Richard Haskell, specifically for the Motorola ECB board. Non-commercial o There is a version of Laxen and Perry's F83 which will meta- compile 68000 code on a PC that can be burned to ROM, or used with S records any way you like. It is available on GEnie as M16PC.ARC. [MC:93] o ?bot-Forth : The source code is comprised of 3 parts: the metacompiler, mini- assembler, and the kernel. The kernel will meta-compile itself. The metacompiler was presented at the 1989 Rochester Forth Conference. [SJB:93] o F68KANS & F68K, Joerg Plewe. [see the ``8051'' section] o eForth has been parted to the VME 68K. A subroutine threaded implementation of ECBE4TH 32-bit eForth, derived from Haskell's, is available on GEnie as MVME167.ZIP. o TILEforth by Mikael Patel. [see the ``C-Forth'' section] o Various at 3.6.3. 6809 Non-commercial o CamelForth/09 by Brad Rodriguez. Consult the author for commercial use. 3.7. Microchip PIC Commercial o |IRTC678 for the PIC is available from RAM Technology Systems. IRTC678 for the PIC produces optimized machine code. The 'words' are subroutines that use the 8 deep stack of the PIC and the compiler keeps track of the stack use to warn of wrap over. The PIC is programmed incrementally by the ICEPIC module that connects to the host PC parallel port and your project hardware. o F2P v1.0 is a compiler that reads Forth source for the PIC16Cxx family of microcontrollers and generates a file ready to be assembled by Microchip's MPASM. You will need MPASM or MPLAB to be able to generate executable code. This is freely available from the Microchip web site . Incremental updates may be available. [JDV:970815] o |eForth has been ported to the PIC17C42. Non-commercial o There is an implementation for the PIC of unknown pedigree here: 4. Forth for Stack Machines and Forth Chips [Under construction. Suggestions welcome. --jdv] Commercial o |The iTV Corporation has developed 4os, a real-time OS that utilizes the i21 Forth microprocessor. 4os is a complete networked information appliance operating system. The entire system (OS, live Forth system, network, file system, graphic decoders &etc.) requires less than 512Kb of program memory. o |Silicon Composers, Inc. offer several high-end single board computers and parallel coprocessor systems based on the Harris RTX 2000 and SC32 stack machines. SC/Forth for the Harris-based systems is a multitasking Forth-83 standard implementation with IEEE floating-point and utility libraries available. o |P21Forth from Offete Enterprises, Inc. is an ANS implementation designed for the MuP21 (and MuP21h). Includes drivers for bit manipulation, I/O, graphics and multitasking. Discrete P21 chips and evaluation kits are also available. o |Offete Enterprises, Inc. offer the Indelko RTX2000 kit with the cmForth source code for US$150. Non-commercial o |S21 is a freely available simulator for the MuP21 Forth machine. It comes with an online manual, source code and a target image of P21Forth. 5. Forth for the PC 5.1. 16-bit real-mode Commercial o CHForth is a 16-bit ANSI standard implementation for the Intel 80x86 and above processors under DOS. CHForth runs in real mode using multiple segments. By using more segments much larger programs can be written than under F83. CHForth makes it easy to generate turnkey programs (with or without headers). Royalty free. Features online help, command-line editor, Locals, interrupt support and many libraries. Please contact W. Ouwerkerk for details. o polyFORTH from FORTH, Inc. is a fully integrated, interactive programming environment designed for real-time applications on 32-bit DOS-based PCs. Includes an assembler, editor, programming aids and utilities. polyFORTH hosts a cross-development system for single-chip microcontrollers. [See the ``8051'' section] o Harvard Softworks HS/FORTH makes full use of extended memory, and comes with optimizer, sound, graphics, and 80x87 libraries. Has an odd, but efficient, use of memory and dictionary structure. [JDV:950919] o Holon 86 by Forth Engineering is an interactive cross-development tool for x86 processors in real mode under DOS. Holon 86 offers all benefits of HolonForth: browser user interface, structured presentation of the source code, hypertext and direct access to every program word, automatic code substitution, automatic code stripping, single step debugging of Forth and assembler code. A free test version is available. o MicroMotion MasterFORTH is available for the PC. o Miller Microcomputer Services (MMS) offer MMSFORTH V2.5 for systems with and without DOS. o Laboratory Microsystems, Inc. (LMI) offer UR/FORTH , in 16- and 32-bit implementations. They provide libraries for telecommunications, 80x87 support, custom characters, target compiler, and more. Based on the Forth-83 standard. o MP7: TURBO-Forth. Four versions optimized for specific CPU's. Also: FASTGRAF; an I/O and graphics package for TURBO-Forth. [JDV:960216] Non-commercial o AstroForth , I. R. Agumirsian. An 83-Standard Russian Forth with windows, assembler, and a screen editor. This is a demonstration system only. o eForth is a very portable, ANS-aligned, public-domain Forth that comes with all sources and only 29 words in assembler. o ForthCMP 2.3S by Tom Almy is a fast native code compiler for DOS and embedded 80x86 applications. Both ANS and 84-Standard versions available. Printed documentation supplied with registration. o Golden Porcupine Forth, v92.5 by Alexandr Larionov. Distributed as FREEWARE, with Russian docs, for non-commercial work. Includes various useful libraries for graphics, sound &etc. Follows the Forth-83 Standard. Phone: 7 095 288-2660. [VPF:93] o Pygmy Forth v1.5 is a small, 16-bit DOS Forth written by Frank Sergeant that is modeled after Chuck Moore's cmFORTH for NOVIX. It is shareware but there is no charge for registration. If you DO choose to register, there is a Bonus Disk with goodies for $20. Complete with documented source code, editor, multitasker, I/O, assembler and metacompiler. Can be embedded in a C wrapper to access C library routines. Pygmy Forth is free to download . o MVP-FORTH , a Forth-79 from Mountain View Press Inc. (MVP), is freely available for different platforms. MVP also offer other commercial Forth systems, information, and books. o ?TCOM v2.5 by Tom Zimmer is a 16-bit cross/metacompiler for DOS. [SJB:950720] o ? F-PC v3.6 is a 16-bit Forth that is based on the Forth-83 Standard, but includes numerous extensions. Very complete implementation, with lots of examples, and a huge library of code for graphics, I/O, math, &etc. Available for public download [SJB:950722] o hForth v0.9.c by Wonyong Koh is an ANS-Forth inspired by eForth. This free beta release is ANS-compliant, and all commented MASM source code is included. There are three hForth models to choose from: A standard EXE (for segmented memory machines), RAM (for any other RAM-only system), and ROM (for small embedded systems). Designed to be easily ported to any CPU (Z-80 & ARM versions are also available). [SJB:950720] o wpforth v1.0 by Albert Chan is a prototype of a typographical programming system built around WordPerfect v5.x and Pygmy Forth v1.4. [SJB:950722] o ZENForth v1.18a by Martin Tracy is a ROMable small-model ANS-Forth. The beta version is bundled with J. Woehr's book, "Forth: The New Model" (ISBN: 1-55851-277-2). o ?4tH v3.2e is a fast, portable and stable compiler that is very easy to embed into C applications. It is ANS-Forth and 79-Standard compatible, and includes such constructs as assertions, exception handling, and decompilers. Generates portable byte code. Confirmed ports to DOS, Windows, Linux, BSD-UNIX, DPX/2, DPX/20, RS/6000, and Coherent, with others in the works. Comes with lots of documentation and sample applications. 4tH was discussed in Forth Dimensions (Sep/Oct 1996). Available for download . o Various at & Miscellaneous These should be available on any SIMTEL mirror o bbl_[ab].zip: Fast 16/32-bit Forth based on F83; needs work o min4th25.zip: MiniForth system v2.5, with A86 [a public-domain assembler] source o uniforth.zip: Sampler of floating point Forth compiler o fig86.zip: Original Fig-86 Forth compiler [SJB:931030] 5.2. 32-bit protected-mode Please note that the ``16-bit real-mode'' listings may also contain references to 32-bit implementations. Commercial o Bradley Forthware sells Forthmacs for $250. Price includes source and DOS extender. o polyFORTH from FORTH, Inc. . [see the ``PC Forth'' section] o HS/FORTH, by Harvard Softworks, provides access to a full, flat 4Gb of memory. [JVN:93] o iForth is an ANS- compliant system by Marcel Hendrix available for DOS (with the GO32 extender), WinNT, or Linux. iForth is optimized for speed. It is subroutinethreaded, and uses a combination of macro expansion, special-casing, and peephole optimizing. iForth also contains many words to interface to the PC hardware; either directly under MS-DOS, or through libraries in the Linux iServer. A very large number of Examples are available, including: graphics, floating-point utilities, language compilers and interpreters, code to work with .WAV files, and routines to access Novell Net hardware. Comes with a 220 page manual and an online help facility (ASCII or HTML). iForth costs Dfl 200 (US$130), but a free copy is available for those planning to use it for projects in any way beneficial to the Forth community at large, or those using the MMURTL OS. [JDV:960911] o Laboratory Microsystems, Inc. (LMI) sell a 32-bit protected-mode UR/FORTH based on the 'Phar Lap' DOS extender. [see the ``PC Forth'' section] o MicroProcessor Engineering, Ltd. (MPE) ProForth for DOS , v2.2 is a powerful, comprehensive Forth system for 386+ DOS PCs. Uses a royalty- free DOS extender to provide a full 32-bit Forth running in protected mode. Features full DOS file and shell support, VGA/EGA graphics, direct screen writes, support for IEEE floating-point math, a macro assembler and a Forth decompiler. o Offete Enterprises Inc. has a protected-mode 32-bit eForth that comes with source code and a public-domain DOS extender. o bigFORTH by Bernd Paysan [see the ``Atari'' section ]. Non-commercial o Common Forth v1.668 is an experimental 32-bit Forth system that features floating point support, C interface, disassembler/assembler, graphics support and a metacompiler. Full source code included. o eForth is available as a 32-bit port by Andy Valencia. o FORTH32 is a flat 32-bit subroutine-threaded Forth for DOS-DPMI. [see the ``OS/2'' section] o MB&WW Forth386 V1.0 is a Forth interpreter conforming to the ANSI draft standard X3.215, for 80386+ processors running MS-DOS V3.3 or later. The dictionary is kept separate from the compiled code, allowing a header- less copy of the interpreter to be saved as a new executable file. Utility definitions are provided which take advantage of this to produce compact and secure applications. Supports file-oriented or block I/O. String handling has been made an integral part of the design. Please email J. Bruce for details. o FROTH is a free 32-bit Forth system, with source code. o Gforth v0.1b works under DOS (with the GO32 DOS extender). [see the ``C-Forth'' section] o OOF is an object-oriented 32-bit Forth System written by Zsoter Andras. It does not use a threaded paradigm, and generates native machine code. Although many ANS Forth programs will run on OOF, it is not fully ANS Forth compliant. All source is under the GNU General Public License. [SJB:940722] o Ale Forth by Johns Lutz Sammer. Implements ANS Basis 17 wordset along with lots of extensions. Supports subroutine threading, native code generation and inline words. [SJB:940722] o |KernelForth is a development system for writing Win32 device drivers. It is targeted for use in a lab environment. Source code available. Registration is required, but free. 6. Forth for Microsoft Windows Commercial o Bradley Forthware Forthmacs is available for Windows 3.1 and costs $250. It includes an EMACS editor and comes complete with source. o iForth for Windows NT 4.0/Linux comes with a C-server that handles all I/O and other operating system-specific tasks. This version supports pipes, dynamic linking, Tcl/Tk, X-windows, SVGA graphics, Voxware, MIDI, and control of virtual console screens. [see the ``32-bit PC Forth'' section] o LMI WinForth v1.01 is a 16-bit Forth for Windows 3.1/NT 3.1 available from their BBS, or via ftp , for a US$100 registration fee. Comes with a native-code compiler and debugger. Supports 80x87 floating-point, SDK Help and overlays. The kernel can be re-compiled. Based on the Forth- 83 standard. A 32-bit version is under development. o MicroProcessor Engineering, Ltd. (MPE) ProForth for Windows v2.1 is a 32-Forth environment designed to run under Windows 3.11/95/98/NT. Features include simple access to the 32-bit Windows API and DLLs, debugger, (dis)assembler, fast compilation, on-line help and interfaces for file system support, floating-point and serial communications. Supports the ANS Forth standard. Windows 3.11 requires WIN32s (supplied). o SwiftForth from FORTH, Inc. is an extremely fast Forth system fully integrated with Windows 95/98/NT. It is capable of as much real-time performance as these environments can support. Fully compliant with the ANS Standard. 32-bit subroutine threaded implementation. Non-commercial o Aztec Forth is a minimum system for IBM compatible computers under Win95. Aztec Forth generates native Intel code, with inlining available to modify the amount of subroutines based on the size of the current word. Windows API calls are normal Forth words and DLLs are wordlists, although WORDS will not list the contents of a DLL. All addresses are treated the same so there is no need to translate from "Forth" to "Windows" addresses. A Windows block editor with cut & paste and shadow block support is included with the download . [JDV:970724] o GForth is available as a DOS/GO32 or native Win32 application. No Windows programming support yet. [see the ``C-Forth'' section] o Jax4th v1.25 ; a freeware 32-bit Forth for Windows NT complete with source code. The current version features complete access to NT DLLs, and a BLOCK loading facility. Written in MASM by Jack Woehr. [JJW:990102] o Laboratory Microsystems, Inc. (LMI) WinForth. An "explorer" version is available. [see the ``commercial section'', above] o ?Pocket Forth v0.1 for Windows CE is a work in progress. There are MIPS and SH3 binaries available. [Address no longer valid; any ideas? --jdv] o Win32forth v3.5 by Tom Zimmer and Andrew McKewan is a relatively complete implementation of a Forth IDE for 32-bit Windows. It comes with some online documentation and examples, but is meant for those who are already familiar with Windows programming. The kernel can be recompiled from the C++ source. [JDV:980420] o 4tH v3.2e has been ported successfully to Windows. [see the ``PC Forth'' section] 7. Forth for the Apple Macintosh Commercial o Bradley Forthware Forthmacs is available for US$50. o Power MacForth from FORTH, Inc. (based on MacForth originally developed by Creative Solutions, Inc.) is a highly optimized native Power Mac system that features high-speed execution, internal multi- tasking and a RISC assembler providing direct access to the native CPU architecture. Features include complete Power Mac Toolbox support, multitasking support, integrated editor, Quickdraw graphics libraries and extensive documentation. Fully ANS compliant. o Micromotion offer a version of their MasterForth for the Mac. Non-commercial o Yerk is an object-oriented language based on Forth for the Macintosh and was originally a product marketed as Neon (reviewed in Dr. Dobb's Journal #108, 1985). Yerk runs on all Macs with at least System 6.0 but requires System 7.0 (or greater) for full compatibility. Manual available . o Mops v2.7 , by Michael Hore, is a free object oriented Forth also derived from Neon. There is a PPC native version in the works. [info? --jdv] o Pocket Forth v6.5 , by Chris Heilman. Subroutine threaded with 16-bit words. Supports 16-bit relative, 32-bit absolute addressing. Allows "inline" definitions, but doesn't have an inline assembler. Minimal Toolbox support; but it does supports Apple Events. Comes as a 17K application, and a desk accessory. The Distribution comes with complete Source; the kernel is in assembly. There is an MPW version available. o MacQForth is an adaptation of (Apple II) QForth to the Macintosh. Created with Mops [see above] and accompanied by the Mops sources. An attractive introductory package, including some witty and instructive material proselytizing on behalf of Forth. [BB:950807] o ThisForth v1.0.0.d is an ANS-compliant C-Forth written by Wil Baden, originally for the Sun, now maintained on a Macintosh. Designed with portability and ease of extension in mind. The Mac incarnation has few Mac features; it does have drag & drop, and double-clicking on a source file will load and execute it. [see the ``C-Forth'' section] 8. Forth for OS/2 Commercial o Forth/2 by Michael A. Warot and Brian Mathewson can be licensed for commercial work. Talk to Brian if you have something to add or you have any suggestions regarding Forth/2. Contact Michael if you want to obtain a commercial license and/or source code. Free for non-commercial work. Non-commercial o Forth/2 by Michael A. Warot and Brian Mathewson is available by ftp for non-commercial work. [see above] o FORTH32 is a flat 32-bit subroutine-threaded Forth for DOS- DPMI, and text- mode OS/2. It is ANS-Compliant and contains the full ANS wordset implementation, including all the extension wordsets except LOCALS. The DOS version has a built-in editor for code VIEWing, and the OS/2 version has hooks precompiled in it to link to GNU EMACS for VIEWing. The OS/2 version is also fully multi-threaded and supports all the DOS, VIO, and MOUSE system calls from high-level code. [JDV:970708] o Gforth works under OS/2 (with EMX). No OS/2-specific programming support. [see the ``C-Forth'' section] o The Portable Forth Environment (PFE) will run on most PC's under OS/2. [see the ``C-Forth'' section] o There are two implementations of unknown pedigree at ftp://ftp.forth.org/pub/Forth/Compilers/native/OS-2/ 9. Forth for the Acorn ARM/StrongARM Commercial o RiscForth by Bill Larkin, available from Silicon Vision. A subroutine threaded Forth-83 implementation with with the nose of the stack in a register and nice, tight coupling to the underlying OS. A mean and fast commercial product. [JDV:960911] Non-commercial o |Forthmacs v3.1 is Hanno Schwalm's port of Mitch Bradley's Forthmacs for RISC/OS (Acorn) computers using the ARM2, ARM3, ARM6, ARM7 or StrongARM CPUs. Complete with debugger, assembler, decompiler/disassembler, and floating-point math. Follows the 83-Standard, and was written with portability to other platforms and former versions in mind. It runs almost any software that has been written for Forthmacs. Free for evaluation, or 100 d-marks for the fully supported version. Some documentation and tutorials are available online. o ARMForth by Rob Turner , a lecturer at the University of Hull (United Kingdom). Released into the public domain. [JDV:960911] o hForth has been ported to the ARM. [see the ``PC Forth'' section] o wimpForth for the StrongARM under RISC/OS 3.7 is available from the author . o |aForth by Reuban Thomas is a freely available implementation for the RISC/OS. 10. Forth written in C/C++ Commercial o Bradley Forthware C-Forth costs US$100. Non-commercial o ThisForth v1.0.0.d, by Wil Baden, is a reluctantly ANS-compliant C-Forth that originated on a Sun Workstation before the ANS-Forth standard. It is intended as an embedded command line interpreter and scripting tool for Unix applications. You will need m4 and an ANSI-C compiler to compile it. Two major design objectives were portability and ease of extending. The first goal was achieved by sticking to Standard C, and the Standard C Library; the second by the m4 macro processor to define primitives in "low-level Forth". Binaries are available for a number of architectures (Macintosh, CRAY, MIPS, SUN, SGI, Intel). [JDV:970407] o PFE (Portable Forth Environment) v0.9.14 is an ANS-compatible Forth implementation written in ANSI-C. All the code is under the GNU Library General Public License. Binaries for various architectures available. The interpreter has many bash-like features, like input completion. A more powerful version with dynamic module loading is in final testing. [JDV:02JUN98] o pForth v19 is a public domain, portable ANS Forth based on a kernel written in ANSI C. designed to be easily portable to any platform, pForth has been successfully ported to Macs, PCs, Suns, Amigas, SGI Indys, 3DO ARM/PowerPCs and others. Features ANS standard support for most word sets, debugger, DEFER and smart conditionals. Can be compiled without any stdlib calls or special pre-processing. o Gforth is a fast and portable implementation of the ANS Forth language. It works nicely with the EMACS editor, offers some nice features such as input completion and history and a powerful locals facility, and it even has (the beginnings of) a manual. Distributed under the GNU General Public License. Gforth runs under Unix (various flavors), DOS/Win (with GO32), OS/2 (with EMX) and Win95/NT, and should not be hard to port to other systems supported by GCC. Gforth-0.1beta has been tested successfully on Linux (Intel), SunOS (SPARC) and Ultrix (MIPS). Linux binaries and source available. o HENCE4TH v1.2 ; A FIGforth written in C that currently runs under V7 Unix, Personal C Compiler, and Mix Power C. Porting to other platforms should be trivial, considering how vastly different these three are! [KH:93] o C-Forth is available available from comp.sources.unix, or via ftp. o TILEforth by Mikael Patel is a 32-bit Forth-83. Can be built on most 68000 machines (Amiga, Atari ST, &etc). [JDV:960920] o Until v2.5.2 is (almost) Forth-83 written in C. Its internals are described in the book "Write Your Own Programming Language Using C++" (ISBN# 1-55622-264-5) by Norman Smith . This implementation was designed to call, and be called, by other C functions. It is ideal as a 'macro' language embedded in C/C++ applications. Comes with 175 pp. of documentation. [SJB:950720] o |kForth 1.0 is available for Linux or Windows. It implements a subset of the ANS-Forth Standard. Designed such that it's object code may be interfaced to another program to serve as a customizable application language. Features include low-level file access words, string manipulation and type-checking on memory operations. 11. Forth for Various Flavors of UNIX Please see the ``C-Forth'' section. Commercial o Bradley Forthware's Forthmacs. It comes with source code, an assembly debugger, and floating point routines. Available for Sun Solaris. [others? --jdv] o iForth v1.07 is an ANS-Forth for Linux/DOS/Windows NT. May be available free, with some restrictions. [see the ``32-bit PC Forth'' section] Non-commercial o 68K is an indirect-threaded 32-bit Forth based on the 83 standard. Written in 68K assembly (Motorola format) by Andy Valencia . [SJB:94] o A UN*X port of Forth-83 is available. o A version of figForth in PDP-11 assembler is available. (Alternative site ). [SJB:950718] o An eForth v1.0 port (by Francois-Rene Rideau) to Linux on an i386 architecture is based on the DJGPP/GO32 version by Andy Valencia. [SJB:950720] o eForth has been also ported to Linux by Marcel Hendrix. [JDV:970412] o Gforth has been tested successfully on Linux. [see the ``C- Forth'' section] o 4tH v3.2e has been ported successfully to RS/6000, Linux, BSD, and others. [see the ``PC Forth'' section] Miscellaneous o Firmworks Open Boot : built-in to the SPARCstation PROMs. Inaccessible from the UNIX environment; you have to interrupt the boot process and then type "n" to get to Forth. [SJB:950720] 12. Forth for the Amiga Non-commercial o Delta Research JForth Professional 3.x comes with a tutorial, libraries, and examples. The environment includes an editor with ARexx, and a standard block editor. Although it behaves as an interpreter, JForth is a true compiler. It can handle precompiled modules and includes, and comes with a utility to translate includes from C to Forth. JForth provides words for handling C-style data structures, easy graphics and menus, IFF, and ARexx. It also has an object-oriented programming system suitable for building data types for large projects. [MH:93] o A4th by Appleman is a 32-bit port of L&P F83 complete with metacompiler written for the A1000. [JJW:931021] o F68K & F68KANS by Joerg Plewe should work if you can implement a loader. [see the ``8051'' section2] o Jax4th is a dp-ANS2 implementation by Jack J. Woehr. [JJW:990102] o MVP-FORTH by MVP is available for the Amiga at various sites . o TILEforth will run on most 68000 machines. [see the ``C-Forth'' section] 13. Forth for the Atari ST Commercial o Bradley Forthware Forthmacs is available for $50 w/ optional GEM support, source code, floating point, applications stripper and spreadsheet. o bigFORTH, by Bernd Paysan, is available for 200 DM. Extras: Source code, floating point, GEM interface, object-oriented extensions, native code compiler. o F68KANS, Joerg Plewe. As per the free version, but you can use it commercially. Contact Joerg for licensing details. o HiSoft FORTH is a 32-bit Forth for the Atari ST, with full support for GEM. It is subroutine threaded, and a Motorola 68000 assembler is also included. [HM:93] Non-commercial o F68K and F68KANS , Joerg Plewe. F68KANS is ANS-aligned. Miscellaneous There are plenty of implementations, docs and code of unknown pedigree available for your perusal here [anyone care to comment? --jdv]: o o 14. Forth for the Transputer Commercial o MicroProcessor Engineering, Ltd. (MPE) Forth5 Cross Compiler for the T-212, T-414 and T-800. The package consists of a PC-hosted (Unix if required) cross compiler and target code. All source code is included. o |Transputer eForth by Rob Barr for the Inmos 32-bit transputers is an experimental system not yet fully tested. o tForth is a parallel, 32-bit ANS-Forth for the INMOS range of Transputers. Supports all of the Transputer hardware: task-switching, floating- point, the on-chip timer, and the links. tForth is optimized for speed, with an integrated optimizer, and OCCAM-like constructs. Dynamic memory and recursion is supported, as are semaphores and queues, to enable multi- process I/O. A full ASSEMBLER vocabulary is included, with cross- assembly to other models available. Extras include: symbolic dis- assembler, debugger & profiler, buffered I/O, SVGA drivers (DOS), C server, double and single precision floating point math. tForth (binaries for T4 and T8 models, a DOS/UNIX server, and a 400+ page manual) sells for $400. Access to source code for the server must be negotiated with the author. Contact Willem Ouwerkerk at DFW. Non-commercial o F-TP v1.00 is a free Forth-83 for the T-80x INMOS transputer family, designed to replace the OCCAM development kit. Most of the ANS core wordset is implemented. Some highlights include: trig functions, metacompiler, debugger, disassembler, Forth decompiler, assembler, integrated DOS calls, parallel processing, online help for all vocabularies and plenty of documentation. [JDV:970705] o pd-forth is a freeware implementation of Forth for 16 & 32-bit transputers, with source by Laurie Pegrum. Requires the D705 OCCAM development system, and a 32-bit Transputer board with 1Mb of memory to recompile or run. Uses iserver interface to host. o There are several implementations of Forth for the transputer made available by Ram Meenakshisundaram. 15. Forth for the Tandy TRS-80 Commercial o MMS have a nonDOS version of their MMSFORTH for the Model I/III/4. Non-commercial o MVP-FORTH for the Model 4 by Art Wetmore. The basic MVP-FORTH system is released into the public domain. Contact MVP for details. o There's an implementation of Forth for the Model 100 available as 1. 2. o HartForth by A. M. Graham is a Forth 79 implementation for the Tandy TRS-80 Model I/III/4. The documentation is available as plain- text (ASCII) , Microsoft Word 97 and Scripsit . 16. Forth for the Apple II Commercial o Apple Forth v1.6, Cap'n Software. Uses a unique disk format. [LWV:93] o 6502 Forth v1.2, Programma International. [LWV:93] o FORTH II for the II+ or //e by Softape. [LWV:93] o Raven Forth (+) by C. K. Haun, runs on IIgs. Available on GEnie Library 19 as file 903. [LWV:950919] o MicroMotion: MasterFORTH for II's. Features: graphics, debugger, file handling, software floating point. Follows the 79-Standard. o MVP offer MVP-FORTH; a 79-standard for II's. Non-commercial o GraFORTH(+) for DOS 3.3, by Paul Lutus. Available on GEnie Library 8, file 3299. [LWV:950919] o Mad Apple Forth(+) [LWV:93] o Purple Forth(+) o QForth(+) v2.0, Alpha 1.0, is a small integer Forth written by Toshiyasu Morita . [LWV:93] o GS 16 FORTH II, Version II (+) - A 16-bit implementation able to make use of the GS Toolbox. Includes assembler and full screen editor. Also Available on GEnie (Library 18, file 2124/2125). [LWV:950919] o Various at 17. Forth for VAX/VMS Please see the ``C-Forth'' and ``UNIX Forth'' sections, as some C and UNIX based systems may port without too much effort. Commercial [I am currently unaware of any commercial VAX/VMS Forth --jdv] Non-commercial o vforth is a 32-bit forth based on the FIG model, but it deviates where necessity or religion demanded. It will run on a VAX running 4.2, and tends to use the UNIX system calls in only the most generic of ways (i.e.: it should move to 4.1 without problems). vforth uses subroutine threading and inline code generation to increase performance. o John O. Comeau has made the source and documentation for versions 1 & 2 of FIG-Forth for the VAX/VMS available. [JDV:970510] o Klaus Flesch wrote a VAX VMS Forth some years ago. It is believed to be derived from FIG-Forth. Availability is uncertain; try contacting the author, c/o Forth-Systeme. o There are two files of unknown pedigree at 18. Miscellaneous Forth This is a catch-all section for implementations that didn't seem to warrant their own sections. 18.1. Musical Forth o HMSL (Hierarchical Music Specification Language); Frog Peak Music. Contact Delta Research, or Phil Burk , at the Center for Contemporary Music at Mills College. o MANX 1.0 is an extension of the regular Forth environment, enhanced with a number of special purpose music language words. The program is able to read and write standard MIDI files, with special instrument drivers taking care of I/O details. At this moment MANX has drivers for metallophones, the PC speaker, and GM (General MIDI) synthesizers or sound cards that support MIDI. This music language aims to be complete in the sense that a user should be able to translate anything written down in conventional scores to MANX commands. 32-bit ANS-Forth, with many extensions. Free with iForth [see the ``32-bit PC Forth'' section]. [JDV:970315] 18.2. Java Forth o jeForth is a Java applet based on eForth that is free for non-commercial use. It has been designed to be compatible with the description of Forth in Brodie's "Starting Forth". A commercial version is being planned. o Misty Beach Forth is an ANS-compliant implementation that runs as an OS independent applet. It is designed to run multi-threaded code at speeds comparable to native Forths. The full package will include an IDE. o DELTA Forth is a non-standard Forth system, as it is a compiled dialect. It runs on Java, so it is platform-independent. DELTA Forth is free of charge, as it is still in Alpha development stage. The most important feature apart from being platform independent is that DELTA Forth has support for external libraries, so its capabilities are virtually limitless. Please email the author for details. 18.3. USR/3COM Pilot/Palm Pilot/Palm o Quartus 1.2.1 is an on-board native ANS Forth optimizing compiler for the USR/3Com Pilot, Palm Pilot and Palm III series of PDAs. Standard precompiled (PilRC) resources can be used in your Quartus programs and there is built-in compiler awareness of the PalmOS systrap calls. There is an evaluation-only version which will not compile code to a .prc. 19. Forth that ain't necessarily Forth Commercial o FIFTH by Software Construction Co. Available for the Amiga, PC. o Charles Moore's OK for PC's was developed as the OS for Chuck's VLSI CAD system. It is essentially a minimal Graphical User Interface (GUI). Available from Offete Enterprises, Inc. Source for the MuP21 Forth compiler is also available. o Meme (Multitasking Extensible Messaging Environment) from Immersive Systems, Inc. is a Forth interpreter with multitasking and floating- point extensions. The executable has a fast 3D rendering engine and a TCP/IP interface that is callable with Forth words. Each object in a Meme virtual world is a dynamically-loadable module. The executable Forth code in the modules is a hybrid of token threading and indirect threading that is platform-independent and executes identically on any computer running the Meme interpreter. [JDV:960911] Non-commercial o Kevo by Antero Taivalsaari is a prototypical (classless) object- oriented language (for the Mac) which has a Forth feel to it. Features multitasking, dynamic memory management, and an integrated (Mac Finder-like) iconic programming environment. Comes with source, demo programs, and some documentation. [AT:931021] o ANNforth by Bruce J. McDonald. No documentation, but a header file states "ANN simulator with forth interpreter". Written in C++. [SJB:931026] o TIPI v2.0a is a small, structured, extensible programming language for DOS computers. It requires about 100K bytes of RAM to run and is thus well- suited for palmtop computers such as the Poquet PC, the HP-95LX or the HP100LX. TIPI incorporates elements from various languages (C, Pascal, awk, BASIC) and owes a tremendous amount to Forth. While TIPI is not Forth, it is definitely Forth-like and Forth- inspired. A Windows CE version may be in the works. [JDV:970723] o FIJI is a Forthish Java interpreter by Jack J. Woehr. 20. Contributors and Acknowledgments This document is based on previous work by Stephen J. Bevan, Doug Philips and Bradford J. Rodriguez. Many thanks, and a box of *magic* cookies, to the following for providing the information for this section of the FAQ: o Bruce Bennet (BB) o Stephen J. Bevan (SJB) o Mitch Bradley (MB) o Mike Coughlin (MC) o Valery P. Frolov (VPF) o Mike Haas (MH) o Kevin Haddock (KH) o Rick Hohensee (RH) o Andrew P. Houghton (APH) o Nan-Hung (Carl) Lin (CL) o Benjamin Lee (BL) o Henry McGeough (HM) o Dick Miller (DM) o Julian V. Noble (JVN) o Bernd Paysan (BP) o Elizabeth D. Rather (EDR) o Bradford J. Rodriguez (BJR) o Antero Taivalsaari (AT) o Larry W. Virden (LWV) o Jack J. Woehr (JJW) 21. Legalities, Miscellanea and Caveats This document is not in the public domain. To keep it freely accessible to all, I've reserved all rights of ownership. You may distribute copies or quote from this compilation freely on the conditions that credit is given to the contributors, and this entire copyright notice is included with any quote or copy: "The Forth Systems FAQ, Copyright (C) 1996 by John D. Verne. All Rights Reserved." If, for some strange reason, you wish to make money by copying or distributing this document, please let me know . The other parts of this FAQ may be copyrighted by their respective authors, as well. Consult with the author(s) of the other parts for more complete copyright information. Some terms mentioned in this document are known to be trademarks or service marks. However, the author(s) have made no attempt to label them as such. The reader should contact the appropriate companies for complete information regarding trademarks and registration. This document is provided "For Your Information" only. The author(s) accept no responsibility for errors or omissions, or for loss or damages resulting from the information contained herein. 'Nuff said. May the Forth be with you.