ciforth

A common intel / computer intelligence / ch+ forth

For the impatient: jump to the downloads

Some history : fig-Forth

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 .

ciforth : the generic system

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.


REFERENCE


lina : a LInux NAtive customization of ciforth

lina 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.

aiforth : an Alpha h+ Forth

There is a similar Forth for the DEC Alpha.

xina : an OSX customization of ciforth

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.

aiforth : an Alpha h+ Forth

There is a similar Forth for the DEC Alpha.

ci6809 : a 6809 Forth

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.

cir30 : a Renesas Forth

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.

BINARIES DOWNLOAD

The following archives contain binaries that just run after unpacking.

lina : a LInux NAtive customization of ciforth

Download lina from her separate page .

wina : a WIndows NAtive customization of ciforth

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.

mina : a MSDOS NAtive customization of ciforth

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.

ciforthtr : bootable customization of ciforth

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.

xina : an OSX customization of ciforth

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.

Go to the home page of Albert van der Horst