Fast, compiIed BASIC for the experienced
Softworks BASIC ($79.95) is a compiled BASIC for the Atari ST It offers considerable speed advantages over the ST BASIC provided by Atari, but is not for the new programmer or novice. It comes on a single disk, and includes extensive GEM support for those knowledgeable enough to use it.
This BASIC's enhancements include extensions to string-handling commands and up to seven-dimensional arrays. String arrays are supported, as well as Print Using. Softworks BASIC (SB) also supports structured variables, similar to RECORD types in ACTION! or Pascal. String handling is one of the better parts of this BASIC. Not only are the MID$, LEFT$ and RIGHT$ commands supported, but substrings may be extracted by string position, counting either from the left or the right end of the string.
Routines to move blocks of data around in memory are also included. SB includes a fairly complete set of standard features such as FOR/NEXT, IF/THEN/ELSE and subroutines, but some features of more advanced BASICs are missing. There is no provision for subprograms, WHILE or CASE.
SB does not have an editor, so you'll have to get a word processor-but
not ST Writer-which generates standard TOS files. Softworks recommends
1st Word, even to the point of including a commands summary sheet.
but you must be
familiar with GEM and
After composing your program on a word processor, save it to disk and return to the GEM desktop. Then start the compiler, which tries to compile the program and generate a .RUN file.
Errors encountered during the compile generate a message which appears on the screen only for a moment-you had better keep your eye on it. This is a most unsatisfactory way to inform the user about errors in the file. Either a disk file should be written or the message should stay on the screen longer. You must correct errors in your source file with the editor re-save and re-compile. Since this cycle requires several programs, it can take a while to complete. And, of course, changes will be necessary to take care of any program bugs. While this process is drawn out, it's not too different from other compiled languages.
The compiled .RUN file is in PCode rather than native 68000 machine code. It's not as fast as a true compiled language such as C or Pascal, but it's two to 20 times as fast as ST BASIC. SB doesn't do calculations much faster than ST BASIC, but string handling and disk access for both random and sequential files are much faster.
The .RUN file produced by the compiler can be placed on a disk along with the runtime package, B.RUN. One advantage of a separate runtime package is that several .RUN files can be on the disk, so you can CHAIN from one to the next, but only one copy of B.RUN needs to be on the final disk, thus saving disk space.
By using GEM's "Install Application" from the desktop, you can set up your disk so that double-clicking on any .RUN file automatically loads B.RUN, which then loads and runs your file. This is handy for distributing commercial software generated from SB. A one-time $25 fee is needed to license B.RUN for your own disks.
GEM support in Softworks BASIC is a mixed bag. If you write a program which doesn't use GEM, it will run on an Amiga or Macintosh because SB is also available for them. As on those machines, all machine-specific commands for graphics, sound, windows, etc. are handled via the Toolbox command. On the ST, all access to GEM (including AES, VDI and GEMDOS), as well as access to BIOS and XBIOS are also through the Toolbox.
Virtually all the commands available are supported, but there is a problem. You must be quite familiar with GEM and XBIOS to use Toolbox, virtually requiring you to buy either the Atari ST Developer's Kit ($300) or some of the technical books now available. These sources tend to be incomplete, somewhat technical and not always accurate. Even something as essential as plotting a point or making a sound is accessible only through Toolbox from GEM or XBIOS.
Further, the manual included with SB is no help. It merely lists each
Toolbox command with a cryptic description. Compare this to Optimized Systems
Software's Personal Pascal, which not only includes GEM libraries, but
spends about 150 pages telling you how to use its GEM support. Thus, unless
you know that you must initialize GEM with a AppInit call followed by OpnVWkst
and possibly a GrafHandle call, you cannot use the GEM support in SB at
all. On the other hand, if you do know GEM, the Toolbox commands that closely
match the actual GEM calls are superior to ST BASIC's "access-by-numbers"
approach to VDI and AES.
advantages over ST
BASIC, but not for the
new programmer or
Another drawback of SB is that the manual is mostly for reference. This is no problem for an experienced BASIC programmer, as special features such as structured variables are thoroughly covered. However, the manual will not teach you to program in BASIC. Further, there are really no books teaching this particular BASIC, although a general book on MicroSoft BASIC will probably help.
As a compiled BASIC, Softworks BASIC has several advantages. It's fast, has structured variables, protects your source code and offers extensive GEM support. If you are a moderately experienced BASIC programmer, especially if you know some GEM and XBIOS, this is an excellent language. If you are just getting started, though, you should wait for the friendlier BASICs that are sure to come.
2944 N. Broadway
Chicago, IL 60657
CIRCLE 202 ON READER SERVICE CARD