                                              28 February 1993

Dear Knowledge Seeker,

If you have acquired this disk you have some curiousity about Forth.
-- Don't try to deny it, we've been watching you. :-)

The great success of the Introductory Forth Tutorial at the 1992
SIGForth Workshop of the Association for Computing Machinery (ACM)
meeting in Kansas City inspired this Forth sampler. The room was so
packed the sponsors, Forth Interest Group (FIG) and SIGForth/ACM, were
embarassed to have no samplers for the curious.

This year we are better equipped: this disk contains two public-domain
Forths designed for the PC family of computers, plus a slew of
tutorials, sample programs, etc. The directory structure is

  \ (ROOT)                   #bytes
  ³          READ_ME  1ST     8954   2-28-93  10:23a  you're reading it!
  ³          DO_2ND   EXE    70052   2-28-93   9:36a  self-extracting .ZIP
  ³                                                   file containing:
  ³                               #bytes
  ³               FORTH_IS DOC     8858   What is Forth?
  ³               FTH_SRCE DOC     7129   current Forth sources
  ³               F_SPACE  DOC     9927   Forth in space
  ³               ORDER    DOC     3456   Shareware order form
  ³               PKUNZIP  EXE    28806   v. 2.04c decompression utility
  ³               PRIMER   TXT    44211   brief Forth text book
  ³
  ÃÄEFORTH      DOES     FTH      649   1-20-93   6:24p  eForth extension
  ³             EFORTH86 EXE    53999   1-01-91   8:17p  self-extracting .ZIP
  ³
  ÀÄFPC         FPC      ZIP   173696  12-22-92  11:59p
    ³           FPC356   ZIP    58112  11-01-92  10:21p
    ³           FPCDOC   ZIP   182272  11-01-92  10:59p
    ³           FPCHLP   ZIP    76667   1-20-93   2:45p
    ³           FPCSRC   ZIP   238298   1-20-93   2:50p
    ³
    ÃÄCHTING       TING0-7  ZIP    33870   1-20-93   5:41p  tutorial
    ³
    ÀÄJBROWN       FPC_L1-7 ZIP   307140   1-20-93  11:54a  advanced tutorial


Getting started: copy the file DO_2ND.EXE to a diskette with plenty of
space, or to a hard-disk subdirectory, transfer control to that drive
or directory (e.g. if it is drive a: say a: <cr>) and type in DO_2ND <cr>.

The files compressed in DO_2ND.EXE are shown above, and include PRIMER.TXT
(a brief Forth textbook), a printable ASCII file about 21 pages long, with
embedded page-feeds (^L). Simply type in COPY PRIMER.TXT PRN: <cr> to
obtain a hard copy of the Forth primer. Note: the examples in PRIMER.TXT
are designed to be used with eForth, the simpler of the two public-domain
Forths on this disk.



What is Forth? It is a computer language, described admirably in the
file FORTH_IS.DOC written by Dr. Phillip Koopman, and included with
his permission on this disk.

Forth systems are available for virtually every computer ever built.
Although the Forths on this disk run on Intel 80x86 systems, it is
easy to find both commercial and public domain Forths for the Mac,
Atari, Amiga, NeXt, Unix machines, Forth written in C, etc. etc. So if
you find you like Forth and are not a PC user, not to worry!


Forth discussions abound on bulletin boards, notably

	GEnie  ( respond FIG to the ! prompt )

	CompuServe ( GO FORTH )

	Internet ( comp.lang.forth )


One such discussion is appended (file F_SPACE.DOC) because it indi-
cates the wide use of Forth in mission-critical applications.

I myself use Forth for scientific computation, including computer
algebra, to the exclusion of FORTRAN, BASIC, C and other more
"traditional" languages, for reasons given at great length in my book
"Scientific FORTH: a modern language for scientific computing" (ISBN
0-9632775-0-2, Mechum Banks Publishing, P.O. Box 335, Ivy, VA 22945,
--price $49.95 + $3.00s/h in US and Canada, $17 s/h elsewhere).

(Sorry, but I felt I deserved a plug for doing all this work!)


The simpler of the public-domain systems is eForth ("embedded Forth"),
an ongoing project of Bill Muench and Dr. C.H. Ting. Complete 8086
assembler source code for eForth is provided. eForth is purposely
minimal. As it stands, it communicates through the keyboard and CRT,
and has provision for serial port I/O, not entirely implemented.

The eForth source was designed to be both general and easily ported
between microprocessors. It was also designed to be transparent. The
assembled .COM file is only some 15K bytes long, but a clever
programmer could undoubtedly squeeze the same functionality into 8K or
so. However the result would be essentially unreadable, as well as
much harder to port. Similarly, even a not-so-clever programmer like
me can see plenty of opportunities to accelerate the execution speed
of standard memory and arithmetic operations. But these improvements
could not be ported to chips with simpler/fewer registers/instructions
than the 8086. The net result is that both compactness and efficiency
were sacrificed for ease of porting.

I don't mean to belittle eForth, since with moderate work it could
provide an efficient embedded language for real-time controllers.

I would recommend eForth as the first to play with primarily because
it takes little real estate on one's machine and has no distractions.

Although eForth has no provision for reading DOS files, one can enter
a program into it without re-typing, using DOS redirection:

Suppose the file TST.FTH contains the lines

: *+   *  +  ;
2 3 5  *+  .
BYE

Then saying

C:\> EFORTH < TST.FTH

will echo the following to the screen:

       eForth v1.01
       : *+   *  +  ; ok
        2 3 5  *+  . 17 ok
       BYE

and return control to the console. ***Be sure you say "BYE" however,
or you may have to re-boot!***  :-(

Additionally, I have included the file DOES.FTH kindly provided by
Eric Vaitl. It implements DOES>, one of the most useful words in
Forth, which was for some reason omitted from eForth.


The more complex Forth is F-PC by Tom Zimmer. It offers a very
polished environment, with a complete user interface, extensive
libraries of useful functions and so on, rivalling IMHO commercial C
and C++ packages. The F-PC files are located in subdirectory \FPC\.

Through the courtesy of two public spirited Forth gurus, we have been
able to provide extensive F-PC tutorials. The simpler is "The First
Course" by

    Dr. C.H. Ting
    156 14th Avenue
    San Mateo, CA 94402

located in the subdirectory \FPC\CHTING\. A more elaborate tutorial
located in \FPC\JBROWN\ has been provided by

    Jack W. Brown, Math Dept.
    B. C. Institute of Tech.
    3700 Willingdon Ave
    Burnaby, BC V5G 3H2 Canada.

Time has not permitted me to try Professor Brown's tutorial. I
***have*** tried out Dr. Ting's, and find it straightforward and easy
to use. <Important note: the READ.ME file with Ting's tutorial refers
to F.EXE, a version of F-PC v. 3.56 that he includes with his lessons.
Since F.EXE is essentially the same as F-PC.EXE found by unZIPping
FPC.ZIP, I deleted it in the interest of saving disk space.>

All the tutorial and program files have been provided as .ZIP files.
The latest version of PKUNZIP (v. 2.04c) is provided to enable users
to decompress the files. Also, note PKZIP and PKUNZIP are shareware,
which you might consider ordering if you find them useful. For this
reason we include the order form, ORDER.DOC, on the root directory.

To decompress a .ZIP file, copy it and PKUNZIP.EXE to a disk with
plenty of room, and say

       pkunzip [d:\path\]zipfile  <cr>

and ***LOTS*** of files will emerge. To decompress eForth, copy
EFORTH86.EXE to a disk with several hundred Kb available and say

             C> EFORTH86.EXE  <cr> .


A final word of caution: Forth is an extremely powerful language that
puts few barriers/safeguards between you (the programmer) and the
silicon. Used carelessly or irresponsibly it can cause trouble. Used
wisely it can provide the most rewarding programming experiences you
are likey to enjoy.

Since all the programs are public domain the providers of this disk
(SIGForth, FIG, and Mechum Banks Publishing) make no warranty of any
kind, express or implied, with regard to these programs or their
suitability for any specific purpose. Said providers, as well as the
authors of the programs and tutorials, having provided this disk and
its contents as a public service, shall not be liable in any event for
incidental or consequential damages arising out of the furnishing,
performance or use of these programs and examples.


                                             Julian V. Noble
                                             Mechum Banks Publishing
                                             P.O. Box 335
                                             Ivy, Virginia 22945
                                             USA
