User Tools

Site Tools


en:projects:e4thcom

**This is an old revision of the document!**

e4thcom - A Terminal for Embedded Forth Systems

Copyright (C) 2013-2026 Manfred Mahlow de|en

Abstract

e4thcom for Linux and OSX is a terminal program for embedded Forth Systems with cross-assembler and cross-disassembler interface that supports conditional and unconditional uploading of source code. 32 and 64 Bit Linux (X86 and Raspberry/Raspbian) and 64 Bit OSX are supported.

Support for OSX is new and still in status TESTING. So feedback in case of problems is greatly appreciated.

Supported Forth Systems:

328eForth, 430CamelForth, 430eForth, 4e4th, AmForth, anyForth, Mecrisp, Mecrisp-Quintus, Mecrisp-Stellaris, noForth, STM8 eForth, SwapForth

The latest release is

e4thcom-0.9.0 for Linux

  • Bug fix release because with Linux kernel 6. and glibc 2.4 initializing the serial interface fails with e4thcom-0.8.5 (and 0.8.4). With e4thcom-0.9.0 now stty from the GNU Coreutils is used.

e4thcom-0.9.0-stty.tar.gz

md5sum: 357a09d61d5d74eb2420652dd8b66089 e4thcom-0.9.0-stty-260502.tar.gz

e4thcom-0.8.5.2

  • First release with support for OSX.
  • First release with full source for e4thcom and MINFORTH Plus 1.5.
  • Plug-in for 328eForth (-t 328eforth and -t 328eforth-xas) added.

e4thcom-0.8.5.2--230503.tar.gz

md5sum: 854c1e5423d12ec9c2e8e19483da4af8 e4thcom-0.8.5.2.tar.gz

e4thcom-0.8.5.1

0.8.5.1 - Minor pretty printing bug fix.

0.8.5.0 - #ifdef and #ifndef added for conditional execution of terminal directives or Forth code ( see feature list in doc/e4thcom-0.8.5,pdf ).

e4thcom-0.8.5.tar.gz

md5sum: c11fc33f263b7858b2715064b94d7cd8 e4thcom-0.8.5.tar.gz

e4thcom-0.8.4

  • Baudrates up to 1000000 Baud are supported now ( see Feature List and Starting e4thcom in doc/e4thcom-0.8.4.pdf )
  • #include now accepts filenames up to 128 chars.
  • Plug-in added for Mecrisp-Quintus, option -t mecrisp-qs

e4thcom-0.8.4.tar.gz

md5sum: 72e563af2bf8a7fbef6f2f901fa0c22c e4thcom-0.8.4.tar.gz

e4thcom-0.8.2

  • Second command line editing mode added, readline based, enable with option –rln ( see Starting e4thcom and Buffered Command Line in doc/e4thcom-0.8.2.pdf )
  • Command line buffer can be disabled/enabled at the command line with the terminal directive \^ ( see Buffered Command Line in doc/e4thcom-0.8.2.pdf )
  • Plug-in swapforth-j1sc added, option -t swapforth-j1sc ( see https://github.com/SteffenReith/J1Sc )

e4thcom-0.8.2-64.tar.gz

md5sum: 6792957a4deb6404588dbb98ea25fd3e e4thcom-0.8.2-64.tar.gz

e4thcom-0.8.0

e4thcom is now a native X86_64 Bit Linux Application, that is easily re-compiled for 32 Bit Systems (X86 und Raspberry/Raspbian). Please look at e4thcom-0.8.0/ src/README how to do it.

e4thcom-0.8.0.1-64.tar.gz (Ownership and mode bits changed for files in the e4thcom-0.8.0/src directory, required when installing e4thcom to the /opt directory.)

md5sum: e9bbe3d21b411fe4531488db0a0abe88 e4thcom-0.8.0.1-64.tar.gz

e4thcom-0.8.0-64.tar.gz

md5sum: c840d69e19ee0eb994d4e7d019749787 e4thcom-0.8.0-64.tar.gz

e4thcom-0.6.3.1

Bug Fix Release for 0.6.3 : \res export failed for Mecrisp-Stellaris ( -t mecrisp-st ).

e4thcom-0.6.3.1.tar.gz

md5sum: b4d3985bf5d0e9410cb46465235b0c9f e4thcom-0.6.3.1.tar.gz

e4thcom-0.6.3

Added feature: New option -p dir1:dir2:dir3 to overwrite the default search order for source code and resource files.

For further information please read Uploading of Source Code Files and Using Resource Files in the file /doc/e4thcom.pdf in the e4thcom-0.6.3.tar.gz archive.

e4thcom-0.6.3.tar.gz

md5sum: 5690adec7c17be4969798978b93dbcfb e4thcom-0.6.3.tar.gz


e4thcom-0.6.2

Added features:

  • Second display mode
    • invers (black/colored letters on white background), option: –idm
    • normal (white/colored letters on black background), default
  • Support for the [Home] and the [End] key in the command line.
  • [Shift]+[TAB] now deletes the content of the command line.
  • Plug-In for the stm8eForth 2.2.15, option: -t stm8ef

Supported Target Forth Systems:

430CamelForth , 430eForth , 4e4th, AmForth, anyForth , Mecrisp , Mecrisp-Stellaris , noForth , stm8eForth

For further information please read the file /doc/e4thcom.pdf in the e4thcom-0.6.2.tar.gz archive.

e4thcom-0.6.2.tar.gz

md5sum: 3c7936dfa08186578846d8d4d181ed31 e4thcom-0.6.2.tar.gz


e4thcom-0.6.1

Added features:

  • Editable Command Line with History and TAB-Selection
  • Editor Interface for Code Debugging
  • Code Uploading in Half- and Full-Duplex
  • Plug-Ins for 430CamelForth, 430eForth, 4e4th, AmForth, anyForth, Mecrisp, Mecrisp-Stellaris, noForth

Removed features:

  • Data Transmission via UDP (please use e4thcom-0.5.3)
  • ForthBox no longer included

For further information please read the file /doc/e4thcom.pdf in the e4thcom-0.6.1.tar.gz archive.

e4thcom-0.6.1.tar.gz

md5sum: 11c5cb8ce917e331da060fcccfeca9f0 e4thcom-0.6.1.tar.gz

More Plug-Ins:

e4thcom-0-6-1-stm8ef-v2.2.15-plug-in.tar.gz

md5sum: 0e8db0e60f75b21e19a131cc3dc44b55 e4thcom-0-6-1-stm8ef-v2.2.15-plug-in.tar.gz

e4thcom-0-6-1-stm8ef-plug-in.tar.gz

md5sum: 65e298a01a96d6f25c8fcf8f5f72e2fb e4thcom-0-6-1-stm8ef-plug-in.tar.gz


e4thcom-0.5.3

  • Data transmission via serial line or UDP
  • Bidirectional Cross Assembler Interface (allows access to target ressources)
  • Cross Disassembler Interface
  • MSP430 Cross Assembler for noForth und 4e4th
  • MSP430 Cross Disassembler for noForth
  • ATmega Cross Assembler for AmForth
  • Plug-Ins for 4e4th, AmForth, Mecrisp, Mecrisp-Stellaris and noForth
  • ForthBox with improved keyboard interface

e4thcom-0.5.3.tar.gz

md5sum: 559cc0a5112eee79c3b83bafa0388f7b e4thcom-0.5.3.tar.gz

Installation Notes

Brief Introduction

In Linux systems, the /opt directory serves—in accordance with the Filesystem Hierarchy Standard (FHS)—as the location for installing optional application software packages 1).

Typically, software that was not installed via the system's standard package manager is stored in /opt (e.g., specific IDEs, databases, or specialized tools). e4thcom falls into this category.

A dedicated subdirectory is created under /opt specifically for the software package. This subdirectory bears the name of the package. The software's associated files and directories are then located within this subdirectory.

The advantages of this FHS-compliant structure are:

  • Isolation: Each software package is encapsulated within its own directory, thereby avoiding conflicts with other programs or system files.
  • Ease of Management: Adding, updating, or removing software in /opt is generally straightforward, as all associated files are located in a single place.
  • System Integrity: Since software in /opt is not part of the standard system installation, it does not compromise the stability or integrity of the base system.

It is important to note that the use of /opt is a convention. Some distributions or system administrators may handle the installation of additional software differently—for instance, by using /usr/local instead. However, the FHS recommends using /opt for the purposes described above.

The topmost directory in the Linux filesystem hierarchy—which contains all other files and directories—is known as the root directory. It is represented by a single / (slash). The /opt directory is already established within this root directory.

Practical Procedure

And that is exactly how I proceeded on my laptop. Save the e4thcom package here:

/opt/e4thcom-0.8.0

To ensure that “e4thcom” can be found from the console, a symbolic link pointing to it must be included in your PATH environment variable. Typically, such links are created within /usr/local/bin, which is usually already included in the PATH. You can verify this by running echo $PATH.

On my Linux Mint system, I simply right-clicked on the e4thcom file, selected “Create Link” from the context menu, and then moved the resulting link to /usr/local/bin. That’s it—well, almost. In my case, this action generated a file named “Link to e4thcom.” However, within the /usr/local/bin directory, the file name needs to be simply e4thcom. So, I just had to rename it from “Link to e4thcom” to plain “e4thcom.” :)

Now, the e4thcom command should work from any console session—even when used with options such as -t <target>.

This worked because I have administrator privileges on my personal Linux Mint laptop. So, in the Thunar window—which is the GUI for the Linux Mint file system—I click on the “Open as Root” option, and from that point on, everything can be done quite easily.

If You Are Not an Admin

Provided it is foreseeable that e4thcom will be used on the Linux system by only one user—namely you—it is simpler and safer to extract e4thcom into the directory /home/user-name/bin and to create the link to the e4thcom binary there as well. If this directory does not yet exist, it must be created. All of this can be done here without root privileges—that is, without SUDO—and /home/user-name/bin is automatically added to the system path. Furthermore, if necessary, you can then recompile e4thcom without root privileges; see ~/bin/e4thcom-x.y.z/src/README.

Incidentally, the e4thcom package also includes a /doc/e4thcom-*.pdf file. This procedure is recommended there as well—on page 4, or thereabouts. However, the explanation is very brief, and for Linux novices like myself, it is not immediately obvious why this is the case. Hence, I have included my notes on the subject here. May they prove helpful. mk 20250430

1)
Yes, root privileges are required here!
en/projects/e4thcom.1778537748.txt.gz · Last modified: by mka