Multi-Forth 1.1 for the Atari ST
by Greg Guerin
CREATIVE SOLUTIONS, INC.
4701 Randolph Road, Suite 12
Rockville, MD 20852
Requires TOS in ROM
by A.N. Kensington
A.N. Kensington has worked with Atari computers for over six years. Once employed as the Technical Editor of a major computer magazine, he has since discovered that there's more money to be made in selling software than in criticizing it.
More than two years have passed since FORTH first appeared on the Atari ST. Indeed, FORTH has been with us since the very beginning, when the Dragon Group's 4×Forth became the ST's first commercially available language. At least a half-dozen other FORTHs have been offered since then. Some evolved, while others have already faded into obscurity.
Creative Solutions' Multi-Forth has, indeed, evolved. The original 1.0 release, published last summer at $149.95, won immediate recognition for its exceptional versatility and wealth of features. Release 1.1 offers even more power at a substantially lower price.
Multi-Forth is based on CSI's highly regarded MacForth system, which is in turn derived from the Forth-79 standard. Old-timers may raise an eyebrow here, and wonder why Multi-Forth doesn't conform to the newer Forth-83 standard. If the differences between Forth-79 and Forth-83 matter to you, then you probably know enough about FORTH to work around them. If you don't know—or care—about FORTH standards, relax. Multi-Forth runs virtually all of the examples found in the major reference books with no changes whatsoever.
The package consists of two single-density disks and a fat, gray binder containing nearly 400 pages of documentation. Happily, there are no extra "levels" of support to buy, no licensing fees, no royalties, and no copy protection. You can run Multi-Forth on a 520 or 1040ST, using one or two drives, with or without a hard disk. Custom RAMdisk software is provided with the system. The only hardware requirement is TOS in ROM.
Multi-Forth's multitasking interpreter employs a direct token-threaded code, which is position independent and fully relocatable. Its 32-bit stacks and variables give you direct access to the entire addressing range of the ST's 68000 microprocessor.
CSI claims 100-percent compatibility with Motorola's 68010 and 68020 processors as well, so programs you write with Multi-Forth may be transportable to future Atari systems using those chips.
All the features you'd expect in a good FORTH system are here. A debugger, tracer and decompiler are all built in. There's an in-line 68000 macro assembler, which will be extended to include 68020 op-codes in a later release. You also get floating point math capability, provided by a Motorola's 68343 Fast Floating Point package. Extensive support of both TOS and GEM, plus a nice assortment of graphics utilities for windows, rotation and scaling, give you easy access to the ST's full capabilities.
Multi-Forth lets you include local variables in your definitions. I've never used a FORTH system with this capability before, but it looks like a great way to improve the readability of code. The support mechanism for arrays and structures is also interesting, though I wouldn't have minded a few more string manipulators.
Multi-Forth is supplied with two editors. One is a bare bones line editor that treats FORTH code in nostalgic 1024-byte "blocks," as was done in the 1970s. This may be useful if you're transferring code from some other ST version of FORTH that also uses blocks, or if you actually prefer blocks (ugh). I'll stick with the new-fangled "stream" files, thank you, produced by a normal text editor like MicroEMACS.
The version of MicroEMACS included on the Multi-Forth disk is adequate, but not as good as other text editors I've seen in the public domain. The cursor keys work, but the function keys and other special keys don't, and the mouse just sort of sits there. You can use almost any text editor with Multi-Forth, as long as it doesn't use any weird escape codes. Still, it'd be nice if CSI included a slick, GEM-based text editor written entirely in Multi-Forth, both as an alternative to MicroEMACS and as a programming example.
My other gripe with Multi-Forth is the documentation. It's certainly handsome enough, with nice typesetting, brisk writing, cute drawings and a minimum of obvious errors. What information it presents is clear and very usable. But there seems to be a lot of other interesting stuff on those two disks, in the form of source code and examples. It's nice to know that information is there. But what is it, and where?
The dozens (and I mean dozens) of files are not indexed or summarized anywhere in the manual. The manual itself isn't indexed either, though it does contain a useful glossary of Multi-Forth words—but are they all the words?
At least CSI makes it easy to ask questions. They maintain a telephone hot line that offers free support to registered owners of Multi-Forth. If you're a CompuServe subscriber, just type GO FORTH at any system prompt and you'll find yourself in CSI's MacForth/Multi-Forth SIG, with dozens of experienced users to buttonhole and data libraries full of free code.
Two other Multi-Forth features deserve special attention. Snapshot lets you capture an image of your current work environment on disk, so that you can easily customize your FORTH system to include all the features you want, and load it all in at once.
The second feature, Turnkey, turns your completed FORTH programs into stand-alone applications that are self-loading, self-relocating and completely independent of Multi-Forth.
Turnkey makes Multi-Forth potentially useful as a development system for commercial software. The ST version of Multi-Forth uses the same 68000 kernel as CSI's MacForth and Amiga Multi-Forth systems. In theory, you should be able to port your ST Multi-Forth applications to the Mac and/or Amiga with relatively few changes. Just be careful to isolate the machine-dependent portions of your programs.
I was curious to see precisely how compatible Atari Multi-Forth was with its cousins. I obtained a copy of the Amiga Multi-Forth and typed in several example programs from various FORTH reference books. They yielded identical results on both machines. Then I tried a standard version of the "Sieve of Erastothenes" prime number benchmark, to compare the speed of the ST and Amiga interpreters. My 520ST executed ten iterations of the Sieve in 12.5 seconds. The Amiga (with 512K) ran exactly the same test in 14 seconds. I also compiled the Sieve into F83 2.1, a public domain ST FORTH available on CompuServe. It came in at just a hair under 14 seconds.
Creative Solutions' Multi-Forth feels good. Although much of its basic functionality may be found in other less expensive FORTH systems, the little touches here and there make it unmistakably professional. This was an intriguing package when it cost $149.95. At $89.95, serious FORTH programmers may well find it irresistable.