Beta Basic Review

Among the many outstanding things that software writers and hardware developers have provided for T/S users, some have gone unnoticed by potential purchasers who did not happen to subscribe to the newsletters or magazines in which they were reviewed or advertised.

These possibilities are even more likely with some of the remarkable SW/HW for the Spectrum that may be advertised and reviewed only in U.K. publications. One of these is BetaSoft’s Beta Basic 3.0, which I “discovered” in their Your Computer ad and a review by ZX Computing. Since many of us have added Spectrum ROM-switches or emulators to our TS2068s and not a few have a Spectrum Plus or a 128 which will run BB in 48K mode, after a year of using this extension to Sinclair Basic I am convinced that for a few dollars investment it provides probably the most powerful Basic programming language on any 8- bit micro available today.

Aside from requiring Spectrum mode, its other drawbacks are that it leaves about 20K-bytes of RAM space for programs and data and requires about 130 seconds to load from tape. As supplied, it is also MicroDrive compatible, and adaptations are available that will work with Wafadrive as well as Kempston, Opus, Oliger, and other Spectrum-compatible DOS. Those who have the ability to put it on EPROM would have a “new” computer almost instantaneously, and would regain the memory it occupies.

The utilities for editing, splitting or joining statements and arrays, listing and altering variables and references, searching and sorting arrays, renumbering and making block-moves or copies with just a few key strokes may be used on any Spectrum or TS2068 Basic program that will load under the 46679 RAMTOP. As long as no BB-specific commands are inserted in the listing, all, or any selected block(s) of the program and data, may be saved again for use in its original mode, or as a BB program if new command-words have been added.

Over 100 new and enhanced commands and functions are available, most of which have from two to a dozen variations. The well-written 90-page manual gives working examples. One of the most powerful features is the capability of defining procedures which can call up an entire routine with a single word. In effect, this enables the user to program new commands. Variables within procedures defined as LOCAL do not affect main program variables having the same names. DEFAULT causes variables to be assigned pre-defined values if no other input is made to them. Parameters may include DATA. READ LINE will read data as strings without the use of quotes. ITEM () checks for the final data item and whether any item is numeric or a string.

Any or all of the character keys may be user-defined to produce an entire program line, a conversion routine with inputs and display of the result, or any other routine with just one key-stroke. Options are provided for single-stroke keying of command-words, letter-by-letter, or a combination of both. The KEY IN command makes possible self-writing programs. Only one LET is required to make a succession of variable or DEFAULT definitions in the same statement. List formats give options for each definition or statement to be shown on a separate line, with some commands indented more than others for easier reading.

TRACE provides step by step display of all or parts of a listing and variable status for analysis or de-bugging. All procedures, key definitions, variables and their contents may be listed for examination or editing, and any reference or sequence of characters may be found anywhere in memory and altered at every occurance if desired.

By using stored addresses, FOR-NEXT and DO-LOOP routines run at constant speed anywhere in a listing, over twice as fast as T/S Basic at the beginning lines, 5 times faster at the 100th line, and 17 times faster at the 500th–about 10 seconds for a simple FOR n=1 TO 5000: NEXT n. WHILE, UNTIL, ELSE, EXIT IF, and ON are supported. GO TO and GO SUB are also faster, with RETURN from a last line as quickly as from the first. RNDM(n) is 2 1/2 times faster than RND * n, and SINE and COSE give accuracy to 4 places 6 times faster than SIN and COS. SORT will re-order a 400-element array in about 3 seconds. INSTRING and INARRAY may be used to search for any target string wherever it occurs in a string or an array. Hex and decimal conversion is provided, as are bit-wise AND, OR, XOR, and binary equivalents of given numbers 0-65535.

TIME$ and CLOCK provide a real-time display window and/or audible alarm and/or timed GO SUB. GET will put any keyed character or any part or all of the display into a string for plotting in any CSIZE to any display location. CSIZE provides listing and printing in any character size from 80 columns per line (usable only with a monitor) to one character filling the entire screen. STRING$ prints any string or character to the screen the indicated number of times. USING or USING$ will justify and truncate integer and decimal place printouts from a full-size printer as well as in the display. TAB and command words are expanded before being sent to a printer.

Up to 127 windows may be defined, each with its own attributes and CSIZE. Pixel by pixel wraparound ROLL as well as SCROLL in any direction is supported. OVER 2 allows superimposing graphics and printing over what is already in the display without overwriting it. Four special variables may be defined to reset the plotting scale and 0,0 origin coordinates. FILL will surround every closed figure in any designated color or fill any closed figure which is at given coordinates.

I feel even a lengthy review cannot do justice to a program such as this one. If you would like to actually see working examples of what about 85 of the BB commands will do as well as typical listings, I have made up a demo tape about 20K-bytes in length. It is available for $5.00 to cover the cost of postage, tape, packaging and handling. Please note that the version of Beta Basic included by permission of Beta Soft to drive this demo will NOT allow any editing nor can it be used with any other listing. If you have the normal Beta Basic, the demo may be used with it and the manual as a tutorial.

Beta Basic 3.0 is available for 15.50 British pounds ppd. (about $25.00) from BetaSoft, 92 Oxford Road, Moseley, Birmingham B13 9SQ, England. Payment may be by international money order, or by MasterCard for easier currency exchange.