It is best to consider ciforth as a factory for building different versions and configurations of Forth. It is based on assembler and macro's, and not on the usual metaforth mechanism. The whole ciforth system is hosted on github. For the impatient: jump to the downloads The most common releases are available as binary downloads form above github.
In 1978, shortly after Chuck Moore discovered the Forth language,
volunteers started to make public domain implementations
available for all popular micro computers.
This was the
series of compilers.
The fig-Forth generic system on this site is
the predecessor and base of the generic ISO Forth described in the next
The ISO Forth called ciforth is a generic source system. Generic means that it allows to generate from the same source a number of versions of Forth for Intel processors: 16 or 32 bit, hosted on Linux , MS-DOS, MS-Windows DPMI, MS-Windows 32 bit, Intel MacIntosh, booting or etc. Generating assembler sources and documentation runs on a host Linux system. Assembling then can proceed on the host or on the target system. The development system is available as git source control at github
A lot of the programs and tools in Forth on this site is from fig and public domain. The remainder is protected by the GNU Public License .
During the year 2000 the figforth system evolved into an
ISO-compliant system. Those were releases of version 3.
Version 4 is ISO-compliant.
You can download the last
version 4 release of the
generic i86 source system for ISO .
The latest release is 5.3. You can download
its generic i86 source system too.
Now that release 5.3 has proved its worth by compiling ciasdis
version 4 is no more relevant.
Snapshots of earlier systems are available via ftp on
the home page.
me to generate a number of Intel Forth's, for linux or msdos,
booting or hosted versions, close or less close to ISO,
for 16 or 32 bit Intel processors.
It runs on a Linux system.
Difference between versions within a release mainly concern
additions to the library.
The last (release 3 beta) version
is still available .
In the unlikely case you want some of the still older version you
may have a look at my
FTP site . There is also an dump of my complete cvs.
The newest version has a binary package for linux,
Windows and MS-DOS, such that you need not use the generic system.
Based on your configuration information the GNU based
development system will generate a single assembler source file
in fig tradition and a corresponding, comprehensive programmers
manual in the format of your choice.
There is one exception:
one of the linux versions uses c-code as a glue,
and the general system libraries are called.
The file generated
can be assembled and modified on any other system,
The documentation about the workings of the generic system
explanation of 4 levels of adaptability
are included in this archive.
You can get an idea by looking at the documentation of
the generic fig system
(adapted from fig but greatly enhanced since then)
This explanation refers fig-Forth but the way the generic system
works has not been fundamentally changed.
In general to build the Forth's, I use the excellent
assembler , I myself used version .98 and since 2013
Part of the first level of adaptation means selecting the
assembler syntax from alternatives MASM/TASM , gas fasm etc.
The assembler in GNU-Linux that comes as part of the gcc-package
at last has an option to have operands in the same order as other
but this has been possible only since gas version 2.13 or so.
As per jan 2005 I have succeeded in at least building ciforth
It was never intended for heavy duty
stand alone assembly in the first place.
Its handling of comment is especially cumbersome,
such as not having the ; (semicolon)
for comment which is almost universally accepted,
and is for Intel the absolute standard.
The generic source system is also available without long filenames , this is a snapshot version however. It can be unpacked in a system with filenames restricted to 8 plus 3 characters, provided there is some zip program.
The fig-glossary was the starting point for the glossary documentation for lina in html that is an example of the documentation that goes with any of the generic ISO Forths. This modern documentation is also available in texinfo, and hence in pdf, tex, PostScript and info. The generic system is likewise documented with texinfo, and available in different formats. Again, only experts need to understand the generic system, not programmers who make an incidental change to the Forth, even less so end users..
release note of version 4.0
gives an indication of
what files are present in the generic system and what for.
This refers to 4.0.1 and is not quite up to date.
The assessment of gas is too pessimistic,
and wc is renamed /mywc.
There is a more elaborate
overview of ciforth in Dutch and English
on the site of the Dutch Forth use group.
The test report gives an indication what configurations have been tested, and in how far. The three main versions have a regression test as part of the maintenance tools. It is updated with each change of the ciforth. If you encounter any problems with the latest version, please email. In the meantime in case of severe problems you may down load one of the earlier versions; all versions mentioned in the testreport are available upon request and some can be downloaded by just changing the version number in the URL. You can see whether a reasonable level of usability may be expected for a configuration and whether it is worthwhile to upgrade.
There is a list of current defects .
The screens loaded via the elective screen 5 (formerly 8) or via option
-e are reasonably well tested and reliable.
The elective screen installs selectors ?PC , ?LI , ?32 , ?16
making those screens 16/32 bit clean.
Loading via REQUIRE ASSEMBLERi86 ,
thus automatically loads a
16-bit or a 32-bit 386-assembler.
This assembler is very compact and has some interesting techniques.
There is a more advanced
assembler that is in file format. It features rigorous error
control, build in help for opcode completion and a disassembler.
The assembler in the screens is fully compatible,
and is tested using the same testset.
Screens are divided in sections that show up if you use the INDEX command. The last sections are to be considered only as educative material. Some contain some old code from my CP/M system (1980), untested as far as the new system is concerned.
Some of the software presented here are snapshot (beta) versions.
Beware! Some versions of this program and some utilities loaded access the hard disk directly.
Beware! I think the documentation is very good. However make sure you have the correct one. If even one of the words is not documented, you have documentation for an other configuration.
Again. Beware! Some versions of this program and some utilities loaded access the hard disk directly.
I am grateful for any comment and problem reports . But please make sure, your problem is not yet solved in the latest version. I intent to make frequent updates.
There are a number of Forth's under the ciforth model, not all of them on Intel processors. An overview follows.
is a very simple Linux Forth in 32 and 64 bit versions.
wina is similar to lina, but for all MS-windows version that use dll's, 32 or 64 bits.
xina is a similar to lina, but for OSX. At last there is a separate binary distribution for it: a an official version 5. See also xina FTP You also may want to have a look at Robert Spykermans cvs archive at Sourceforge, although this binary distribution is probably superior in all respects.
There is a similar Forth for the DEC Alpha.
The Forth for the Motorola 6809. is based on the 4.0.0 release of lina. It is intended for a single board computer, and so it is only a source distribution, with examples for ROM and RAM versions. It contains no operating system interface but the blocks are retained.
The Forth for Renesas R8C/M16C. is based on the as yet unreleased 5.0.0 version of lina. It is intended for a single board computer, and so it is a source distribution, with the image in a Motorola S file that can be placed in flash. The blocks are adapted to the Renesas; they can be used flash and LOADed from there. A program to flash the Renesas is available to.
The following archives contain binaries that just run after unpacking.
Download lina via her separate page . It now has a 64 bit version too, and the 32 bit version has a deb package for easy installation.
Download wina via her separate page .
You can download here release 5 of a 32-bit ISO Forth for OSX called xina. This is similar to Linux, because most system utilities are based on Unix-like system calls. It contains a binary executable that is ready to run and full documentation.
An MSDOS version is available for download.
Simply unzip this file in a separate directory and start mina.com
from the DOS prompt.
You can download from
An older snapshot (beta) version is available upon request. Do .SIGNON once you are in Forth, to find out what version you have.
A stand alone version is available for download. It installs on a floppy and, if you want it, on a hard disk, making it into a fully autonomous Forth system. This one is pretty old, but most enhancements are in the cooperation with operating systems anyway. Booting using the BIOS is tricky. Approximately one out of three installation fails.
Go to the home page of Albert van der Horst