For the impatient: jump to the downloads
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
fig-Forth
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
section.
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.
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.
You can download the latest
version 4 release of the
generic i86 source system for ISO .
The latest release is 5.0. You can download
its generic i86 source system too.
Snapshots of earlier systems are available via ftp on
the home page.
It allows
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,
notably MSDOS/MSWINDOWS.
The documentation about the workings of the generic system
and the
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
nasm
assembler , I myself used version .98 .
The first level of adaptation means using MASM/TASM , or gas
assembler syntax as an source as an alternative.
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
Intel assemblers,
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
with it.
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..
The
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.
WARNING
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.
is a very simple Linux Forth, where I have made a separate binary distribution for. It is a mere 20 Kbyte on the outside, but 64 Mbyte on the inside. It now has a 64 bit version too, in beta.
There is a similar Forth for the DEC Alpha.
xina is a similar to lina, but for OSX. I intend to have a separate binary distribution for it. For the moment there is beta version for testers, a a snapshot of version 5. See also xina FTP You may want to have a look at Robert Spykermans cvs archive at Sourceforge.
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 from her separate page .
You can download here release 5 of a
32-bit ISO Forth for MS-Windows
called wina.
This is a dll based 32-bit console Forth, with long filenames,
and access to dll libraries,
hence in principle to all facilities of MS-Windows.
The built-in commands however only use kernel32.dll.
This is a binary download, ready to run,
with documentation ready to be viewed or printed.
The last
release 4 version is still available,
as this is the still the version for programs published on this
site, unless otherwise noted. .
This will be the last stable release for DPMI : DOS protected mode interface.
Simply unzip this file in a separate directory and start wina.com
preferably from the DOS prompt.
At last this is an official release and you can file bug reports against it.
You can download from
Simtel too.
An very old
snapshot (beta) version is also available.
Do .SIGNON once you are in
Forth, to find out what version you have.
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
Simtel too.
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.
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. This is intended for beta tester, to build from the source, but it contains a binary executable that is ready to run.