-eForth ?


    Sponsored Links


  • 1. Documentation for MMS Forth for TRS-80 Model One or Three
    Hi, I'm looking for documentation for MMS (Miller Microcomputer Services)Forth for the TRS-80 Model One or Three. I believe the versions could be around 1.8, 1.9, and 2.x. I use to run a version for the Model One. There was a three ring binder stack, and a quick reference card (at least). Thanks. JK
  • 2. WTC: your old and unused FORTH mags and books
    Hello. The library is growing, albeit slowly, with the help of a few very nice folks. If you have old FORTH stuff that you want to keep from going to the dump, email me. Let me know how much you want for the materials and what you have. Thanks.
  • 3. Obscure Forth reference
    > It is fun to look back more than a dozen years to where > we were back then. I'm glad that Dr. Ting has put so > much of that old material online. > > Best Wishes, > Jeff Fox Where is Forth today, Jeff ? In silicon ? In what kind of apps ? With regards to Windows ? What has Forth evolved to as a language ? liaM
  • 4. irc servers for ukfig
    hello, I have been looking for an ircnet server for the ukfig mtg upcoming. I cannot log into many servers because I have an open port due to the fact that there is a server on our lan. I can only open irc.openface.ca but I am not sure that it is networked to the ircnet that ukfig uses. What irc server addresses can I use? thx, geakazoid

-eForth ?

Postby Michael L Gassanenko » Sun, 07 Sep 2003 00:50:53 GMT

General question

"eForth creator Bill Muench's site"
in not there anymore.

Is there an official eForth distribution in the net?
There used to be many.


Particular question

For me it is important now that this Forth is written in high-level Forth.

( I found some pieces of eForth on my HDD, but....
Who knows for sure, how #BITS was defined? 15 or 16? )

: UM/MOD ( ud u -- ur uq ) ( 6.1.2370 )( 0xD5 )
  2DUP U<
\              ^^^^^^
    WHILE >R  >R  DUP UM+ >R >R  DUP UM+ R> +
      DUP R> R@ SWAP >R UM+  R> OR
      IF >R DROP D# 1 + R> ELSE DROP THEN R>  R> D# 1 -

: UM/MOD ( udl udh un -- ur uq )
  2DUP U<
\            ^^^
    FOR >R DUP  UM+  >R >R DUP  UM+  R> + DUP
        R> R@ SWAP >R  UM+  R> OR

Or maybe n FOR ... ENDFOR  executed n+1 times?

Re: -eForth ?

Postby Michael L Gassanenko » Sun, 07 Sep 2003 01:03:14 GMT

I should have formulated this as:
if eForth is lost, is there another such Forth written in Forth?


The latter is true; RTFM worked.

Re: -eForth ?

Postby hp » Sun, 07 Sep 2003 02:52:50 GMT

my implementation(s) are for the 'as' and 'nasm' assemblers but, the
archives include the original sources:

orig. by B.M. included in the 1st, 'e4a...'

linux,asm,forth  http://www.**--****.com/ 

Re: -eForth ?

Postby dkelvey » Sun, 07 Sep 2003 03:05:32 GMT

 I believe that eForth, by definition, is done in
assembly, not high level.
 for...next has been implemented in different ways.
Most like it so that the value of the loop can be used
directly as an index. This typically means that '15 for...next'
would execute 15 times. Still, one can have a pre-decrement
such that something like '16 for... r@ MyArray ...next'
would return 15 to 0 from r@.
 I don't know what eForth does.
 I think Bill is still around. You might also check with
Dr Ting. He has implemented several versions of eForth.

Re: -eForth ?

Postby fox » Sun, 07 Sep 2003 04:37:24 GMT

Go to the internet archives wayback machine.  That's
what I did.  Several version of Bill's site is there.
One can download eForth 5.0, bForth, and his metacompiler.
16-bit and 32-bit variations with slightly more than
changing #BITS and it has the ability to redirect I/O
through DOS files.

Dr. Ting's eForth academy has many many eForth versions
for a very wide range of targets.  Some of those are real
eForth distributions, ANS and with various optional wordsets.
Of course Dr. Ting's versions tend to be one of his stripped
down subsets of Bill's eForth core, coded in MASM and missing
lots of words like VARIABLE or DOES>.

Best Wishes,
Jeff Fox

Re: -eForth ?

Postby fox » Sun, 07 Sep 2003 06:55:23 GMT

XXXX@XXXXX.COM (dwight elvey) wrote in message news:< XXXX@XXXXX.COM >...

No Dwight. That is exactly backwards. I have explained
this at least dozen times in c.l.f but let me try once
again while I am on this visit.

Bill wrote eForth as a portable ANS Forth system while
the standard development was in progress. He wrote
thirty words in assembler (Forth defined assembler) and
the rest in Forth.

Dr. Ting got his permission to use it as a sort of
FIG-Forth for the 1990s. Since Dr. Ting felt that metacompilation
was what had limited the acceptance of Forth on a larger scale
he wanted to distribute a system in MASM format and promote the
idea to encourge other people to port the system and learn
Forth the way folks did when FIG had thousands of members.

So he wrote a modified version of SEE that would output in
a format that was mostly MASM compatible, edited it and
then threw out all but the MASM source for the kernel and
he even stripped that down. Dr. Ting removed words such
as VARIABLE and DOES> and left them, and the vast majority
of eForth as an exercise for the reader to recreate. This
was his philosophy on how to teach Forth and promote it.
At least he also distributed the original Forth source
for those who already knew Forth well enough to prefer it
to the MASM source.

I worked with both systems so I know. I worked with Bill
on testing various versions that he developed for ANS compliance.
Bill did not want to have to explain or support his metacompiler,
he didn't want to have to document it for other people to use
but I found it fairly self-explanatory. When I had questions
he answered them patiently.

Dr. Ting went on to create dozens of versions for new environments
and collects dozens more written by other people, some of them
as complete or even beyond what Bill had published, but the majority
were versions in MASM of only the stripped down sub-set of the
actual eForth kernel.

Despite Dr. Ting's philosophy that starting with almost nothing
was what made it fun he published a number of eForth manuals
and related documents. The eForth Porting Guide, eForth manual,
and eForth and Zen are a few examples. But in all his versions
it was left as an exercise for the reader to implement words
like VARIABLE DOES> DO LOOP etc. etc.

Dozens of people started with Dr. Ting's system and spent
a lot of time to recreate their own (usually very inferior/0
versions of a more complete Forth system to duplicate the
majority of the code that Dr. Ting had thrown out. This
was his idea.

Many people, especially in c.l.f, ranted about what a piece
of {*filter*}it was, how it gave people a terrible impression of
Forth etc. When each year some new person would suggest that
a team of programmers be organized to extend eForth into a
full ANS Forth system that included DOES> and DO LOOPs and
even optional ANS Forth wordlists I would say, "In order
to duplicate what Bill did ... years ago?" Then I would
repeat this story one more time...

I have also told this story many times when the subject of
metacompilation would come up. You know how the same
questions get asked over and over year afterv year in a
newsgroup. Most recently it was when someone asked, "Wasn't
metacompilation a quasi-cult?"

I would explain again that I started with Dr. Ting's core,
then added the rest of Bill's code back in. But since it
took MASM 90 minutes to generate a system

Re: -eForth ?

Postby r » Sun, 07 Sep 2003 14:36:00 GMT


My version is based on Rideau's (Fare's) version for Linux. I added
most Linux syscalls as "core" words and a few other tweaks. There's
eforthl.tgz in


and eforth is also on the ViralinuxII floppy image, with H3sm, my
3-stacker. And ash, a rustic unix shell. That's a 1-floppy proto-Linux.

Rick Hohensee

Re: -eForth ?

Postby ln » Sun, 07 Sep 2003 15:53:08 GMT

In article < XXXX@XXXXX.COM >,

So it is -somewhere- in the archives is it? 
That is good, how would we find it?
Do you hapen to know the URL for a MacOS version?

A 4th for the mac would be neat, espechaly if it was in 4th!

Re: -eForth ?

Postby anton » Sun, 07 Sep 2003 16:34:27 GMT

 XXXX@XXXXX.COM  (Jeff Fox) writes:

I have now added the following to the FAQ:

  5.13.  eForth: Who wrote it, and how do the versions differ?

  The original eForth was written by Bill Muench, and was metacompiled.
  C. H. Ting produced a version for educational purposes that was
  written in MASM, and had many words removed (the user should add them
  back in as an exercise).  For the long story, read

- anton
M. Anton Ertl   http://www.**--****.com/ 
comp.lang.forth FAQs:  http://www.**--****.com/ 
EuroForth 2003:  http://www.**--****.com/ 

Re: -eForth ?

Postby Bee » Mon, 08 Sep 2003 01:41:26 GMT

I am Bill Muench.

I wander, but am not lost.

There is a copy of eForth on this server:

 http://www.**--****.com/ ~bimu/forth/

When mac.com was no longer free, I never got around to making 
the site public again.

I also wrote the MASM version, to quote my web page:

The name eForth possible came from: educational Forth, 
experimental Forth, easy Forth, or the fact that "e" was next 
letter in the alphabet of unused Forth system names.
Bill Muench
Santa Cruz, California 95065

Re: -eForth ?

Postby fox » Mon, 08 Sep 2003 01:52:30 GMT

goto  http://www.**--****.com/ 
search for  http://www.**--****.com/ 
surf and pick the files that you want

No. Bill's DOS version just inputs and outputs thru
a BIOS or DOS routine. It was trivial to add AT-XY
and colors in a DOS window with ANS escape sequence
support.  There may be a MAC OS version somewhere but
I am not aware of it.

I believe that Dr. Ting has posted versions of his
eForth for the processors that Apple uses in MACs
so the core code words may be there.  However Ting's
versions generally speaking ONLY support serial I/O.
Ting's idea was that you plug in a serial line to
a PC or terminal, hit return, you get an OK back.

This is what made it even simple than FIG-Forth.  Just
a small core with nothing but serial I/O makes for a
system that is almost trivial to port.  This is different
kind of definition of portability than is used throughout
the ANS Forth effort.

I expect that you want a MAC version with lots of hooks
to the MAC toolbox. I think some other Forth for the MAC
would be more satisfying except perhaps as do it yourself
bootstrap exercise. But interfacing to all the things
built into MAC OS is not a trivial task. But perhaps 
one exists that I do not know of.

Best Wishes,
Jeff Fox

Re: -eForth ?

Postby jeff+dated+1063284969.0bbad3 » Mon, 08 Sep 2003 05:03:34 GMT

from emata.x86:

16 CONSTANT #BITS ( bits per cell )

I have a copy of the zip distribution from Bill's site if you require it.


Re: -eForth ?

Postby dkelvey » Mon, 08 Sep 2003 07:49:09 GMT

Hi Bill
 I thought it was you that had told me that you'd done a MASM version.
I figured Jeff knew better than I did.
 My favorite meta compile is with my NC4000 ( 4 MHz xtal ). I used
an XT HD interface and a 5Meg hard drive with it. Using Chucks
cmforth, I can meta compile a new image in about 15 seconds.
Take Care

Re: -eForth ?

Postby ln » Mon, 08 Sep 2003 09:43:57 GMT

In article < XXXX@XXXXX.COM >,

Thanks lots I will surf on over!

Oh well, you can't have everything.

The mac toolbox/API took 1,000's of man-hours to design, and would take 
me just as long (or longer) to figure out! They will have a new set of hoops 
in place before most of us amateur hobbyists learn how to jump the present set.

If possible I would like a small 4th that was as close to the new "standard" 
as possible, but with the ability to either extend it to use the new 
peripherals like the microphone, colour screen, mouse, scanner, internet etc...
or to seamlessly communicate with multi-platform interpreters that are
designed for these new computer features, like REBOL, GhoastScript, TK, etc.

The state of 4th on MacOS X is not optimum. Mops, a OOP 4th that the creator 
has spent man-years maintaining, will only compile under MacOS 9 and my cobbled 
together computer will no-longer boot up in system 9! Weird or what? As for 
unix-like 4th's ported to the mac, they require that you compile them your-self.
I am positive that by the time I stopped receiving error messages from
"Make" or GCC
I would know enough about the intricacies of unix/C to be a guru! At which
of-course 4th becomes redundant!

...and best wishes to you as-well.

Line Noise

p.s. If someone has a working version of a unix based 4th running on MacOS X
and they could make it available to the general public please let me know.

Re: -eForth ?

Postby fox » Mon, 08 Sep 2003 10:04:50 GMT

Nice to hear from you.  And thanks for the correction
about the origin of the first MASM version.

Best Wishes,
Jeff Fox

Similar Threads:

1.Mysterious CR's Forth for the Mac (was -eForth ?)

2.writing data close to code (was: eForth 64bit trouble)

3.Dr Ting's "eForth Sutra" - Chapter 12?

4.Metacompilation considered harmful eForth implementations

In article < XXXX@XXXXX.COM >,
m-coughlin  < XXXX@XXXXX.COM > wrote:
>    There are two main methods. One is to write eForth as an
>assembly language listing and assemble it with MASM, or similar
>old time assemblers for other cpu's. The other is write it as
>Forth code and metacompile it. So far the assembly listing has
>been the easiest to document since it follows the style of
>fig-Forth which many are familiar with. Nobody seems able to
>describe metacompiling well enough to make the other method very
>easy to use.

A simple explanation makes it painfully clear that it is
Cross Compiling (by advocates called Meta-compilation for
mystification) is not The Way.

Greatly simplified explanation of metacompilation:
1 Write your source in a form compilable by your new Forth.
2 Split into compiling words and other.
3 Compile the compiling words in a separate wordlist on host.
4 Compile the compiling words in a buffer.
  Use only words from the compiling words on host.
  Anything else is looked up in the buffer being a new wordlist
  structure. Use stubs for forward references.
5 Do it again in order to get forward references right.
6 Fumble and stumble to get the buffer into a correct executable
  for your host.

If you have a hosted system point 6 alone is enough reason to
junk this approach. There are a lot of snags. You may have trouble
getting the new compiling words run on the host. (E.g. host 32 bit,
target 64 bit.)

The assembler approach is
1 Write your source in the manufacturers standard assembly format.
2 Assemble and link.

Voila! You will have a publishable Forth.
The disadvantage is that you have to put up with
        DC      SWAP, DROP
        DC      SEMIS
        : NIP
                SWAP DROP
or slightly more ugly in the absence of a macro faciltity.

You can use *all* the tools of your host: macro-processors,
debuggers, cross link tables.

I have just finished porting ciforth to the 6809 using this approach.
(Running the assembler under the dosemu emulator of Linux.)

>Michael Coughlin    XXXX@XXXXX.COM    Cambridge, MA USA
Albert van der Horst,Oranjestr 8,3511 RA UTRECHT,THE NETHERLANDS
        One man-hour to invent,
                One man-week to implement,
                        One lawyer-year to patent.

5.Forth for the Mac (was -eForth ?)

Line Noise wrote:
> > The state of 4th on MacOS X is not optimum. Mops, a OOP 4th that
> > the creator has spent man-years maintaining, will only compile
> > under MacOS 9 and my cobbled together computer will no-longer
> > boot up in system 9!

"will only compile under OS9" needs a little more explanation.  As
received (downloaded) Mops will run and compile/interpret just fine
under OSX.  But, if you wish to recompile the kernel, Mops currently
seems to require that that be done uunder pre-OSX.  Not really show
stopper, IMHO.

Also, there is the commercial Power MacForth which also runs just fine
under OSX.  You can't recompile the kernel because the source isn't
provided (it's a commercial Forth).  But, like Mops, you really don't
need to.  Both MacForth and Mops are fine Forths

Michael Coughlin wrote:

>We need a few
>amateur hobbyists to remind us that Forth might make things
>simpler for using current GUI based programs, but its not there yet.

Probably a true statement, but things aren't too bad.  I have written
some extensions for Mops that work like this:

window w  \ instantiate a window object
test: w  \ fire up the window

checkbox c  \ instantiate a control object
c add: w   \  add the control to the window's list of GUI objects

Done!  The window is now up and runnning with a functional checkbox
control.  Clicking on the checkbox will check/uncheck it.  The state
of the checkbox can be obtained via:

get: c  \ returns 1 if checked, 0 if unchecked

Other GUI elements are created/used in a simiilar manner.  I have the
pre-OSX version completed and running.  I'm now working on updating it
for OSX.



6. eForth implementations

7. eforth in asm-in-Bash coming soon

8. eForth 64bit trouble

Return to forth


Who is online

Users browsing this forum: No registered users and 14 guest