Philip I. Nelson, Assistant Editor
The New ST BASIC
We recently got an advance look at the new ST BASIC, which, at the time of this writing (July), is still under development by the British firm of MetaComCo. The BASIC itself isn't available, but we have a copy of the manual which describes the new language in detail. The new BASIC will be called MCC BASIC. It retains all the existing BASIC keywords (so it can run ST BASIC programs) and adds a number of new ones. Here's a brief rundown of the more interesting new keywords:
ASK MOUSE, ASK RGB. ASK MOUSE reads the mouse cursor's screen position and button status. ASK RGB tells you what RGB (Red, Green, and Blue) values are currently assigned to a given palette color. RGB (without ASK) redefines a palette color.
BOX. Draws an open or filled box shape.
DRAW, DRAWMODE. The DRAW statement draws a polyline (series of connected lines) defined by a group of x,y–coordinate pairs. DRAWMODE controls what happens when you draw over an existing shape.
LINEPAT. For line-drawing operations, selects a system line pattern (solid, dotted, and so on) or a user-defined pattern.
PATTERN. Selects a pattern for fill operations.
GSHAPE, SSHAPE. SSHAPE saves a specified screen area in an array and GSHAPE puts the stored shape on the screen in any location (similar to GET and PUT in IBM BASICA or SSHAPE and GSHAPE in Commodore BASIC 7.0).
MAT AREA, MAT DRAW, MAT LINEF, MAT SOUND. The first three commands perform polyline draw and fill operations (MAT LINEF duplicates MAT DRAW). MAT SOUND causes the ST's sound daemon (processor) to execute sound commands stored in a BASIC array. MAT stands for matrix, another name for an array.
GEMDOS, BIOS, XBIOS. Used to call GEMDOS, BIOS, or XBIOS operating system routines from BASIC, much as VDISYS and GEMSYS call VDI and AES routines.
GEM_ADDRIN, GEM_ADDROUT, GEM_CONTRL, GEM_GLOBAL, GEM_INTIN, GEM_INTOUT. Reserved variables that pass information between BASIC and the operating system when calling AES routines with GEMSYS.
STATUS. Reserved variable which returns information (often an error code marking success or failure) after you call a system routine.
Evolution, Not Revolution
On paper, MCC BASIC looks respectable. It offers mouse control, enhanced graphics and sound support, and more convenient access to system routines. But will it be good enough to make BASIC a predominant language for the ST?
Some might question the decision to go with a jazzed-up version of the existing BASIC rather than a completely new implementation. There's something to be said for compatibility. However, it's no secret that a goodly number of ST owners—particularly those who own other computers—are less than enthusiastic about ST BASIC. MCC BASIC fills some of the more glaring gaps in ST BASIC, but it appears to represent an evolutionary, not a revolutionary, change. There are still many jobs that can only be done by programming at the machine level—using system calls rather than BASIC commands.
A second, perhaps more important, question is whether MCC BASIC will stick with ST BASIC's clumsy editor and windowing scheme or replace it with something more convenient. The history of the Commodore 64 and eight-bit Ataris illustrates the value of a good editor. In both cases, many of the computer's best features are available from BASIC only if you program at the lowest level of the machine—by POKEing hardware registers. But both computers are very popular with BASIC programmers, due in no small part to their excellent full-screen BASIC editors. If you make the process of programming easy, even unsophisticated programmers enjoy using the computer enough to forgive the fact that BASIC contains some holes.
Interestingly, MetaComCo also wrote ABASIC, the BASIC shipped with the earliest Amigas. As soon as Microsoft's Amiga BASIC became available, Commodore-Amiga scrapped ABASIC and made Amiga BASIC the standard. For anyone who bought an early Amiga, moving from ABASIC to Amiga BASIC was like being given a sleek new sportscar in exchange for a clunky go-kart. ABASIC was better than no BASIC at all, but its primitive, line-oriented editor was a throwback to the earliest days of personal computing. Patterned closely after Microsoft BASIC for the Macintosh, Amiga BASIC has a powerful (some would say, luxurious) editor and ranks with Mac BASIC as one of the most complete implementations of BASIC for any microcomputer.
Are ST owners in for a similar treat? Only the release of MCC BASIC will answer that question. While we await that event, I'd like to know what you think of ST BASIC and what topics you'd like me to cover in this column. Address your comments to me, in care of COMPUTE!, 324 West Wendover Ave., Greensboro, NC 27408.