Sinclair User
11th April 1986
Author: John Gilbert
Publisher: CP
Machine: Spectrum 48K
Published in Sinclair User #51
Extended BASIC
ZX Basic is regarded as one of the best Basic variants in the world. Even if it is slow, it is almost certainly the most widely used version of the language.
It does have its deficiencies, though, which CP Software has tried to put right with its Extended Basic package of keyword extensions. The package, compatible with the 48K Spectrum only provides extra commands which are meant mostly for direct input rather than for use within programs.
Extended Basic is loaded in the same fashion as a Basic program and the new keywords it gives are implemented using an asterisk as a prefix to each command. For instance, commands include *Clock, *Delete and *Trace. CP has also retained the single key-word entry system, made famous by Sinclair. Just enter the * and the first letter of the command.
There are 10 commands, most of which are used for Basic error trapping, but the package also includes the statutory digital clock. The clock - displayed permanently on-screen when the program is running - is activated by typing C1 and can be set by following the Clock command with a starting time in hours, minutes and seconds.
If you keep losing programs you have on tape by forgetting their identity the Examine command will scan the tape for their file headers. The computer sets up for a normal load, you start the tape and when the header is read the information stored in it, which includes file name, file type - program or code - and length in bytes is displayed.
Once the Basic program is in memory you can check the machine's memory status. The read-out gives the address of Ramtop, the number of bytes used by your program and variables, together with the amount of free Ram. CP's extension package occupies less than 5K of Ram leaving approximately 36K to play with when the machine is initialised.
An automatic line numbering command is included. You just type in Auto and the first line number will appear on the screen followed by a cursor.
Type in your first Basic line, press Enter and the next line number will appear. When you've finished entering your program delete the last line number which has popped up, type Enter and the routine switches off. You can set the start number of the auto-line and the interval between each number by putting two parameters after the command. For EXTENDED BASIC instance, *Auto 10,5 numbers a program from 10 in jumps of five.
Another annoying trait of the Spectrum that CP's package takes care of is the 'Scroll?' message you get after more than 22 lines have been displayed. You can suppress the 'Scroll?' message and produce a continuous scrolling motion when you list your programs by activating the package's continuous scroll routine. Once it's in operation you won't have to press Enter to scroll any more.
The remaining commands deal with error trapping. Trace shows line numbers of a program as it is being run and slows down the execution of the code by a factor of approximately 20. The Trace display replaces that of the clock and shows the line and statement numbers as they are scanned.
The effects of your program, such as screen printing, are not affected by the Trace facility but you should be careful if you are using Pokes : You never know what damage you might do to the package's code.
When you've run your program you can scan the variables area to see they've been set up properly. The package will display numeric string and array variables. Each element of a numberic array is displayed - even if you haven't put something in it - but only the names of string arrays are shown together with a quotation mark to show that they contain strings.
A trace facility also exists to track specific strings within variables and Print statements. The Find command is followed by the string you want to find which is enclosed within square brackets. The computer then finds and displays the line which contains the string. Unfortunately, it only finds the string the first time it appears but you start the Find trace anywhere within the program.
Once you've fiddled around with your program and are confident that all the bugs have gone you can re-number it. The package provides a flexible and easy-to-use routine which requires two parameters: the start line number and the interval. It would be even better if you could re-number specific parts of a program.
All Basic extensions run interactively with your programs allowing you to run and list programs without having to toggle in and out of the toolkit.
It is not tremendous value for money. It provides only 10 new commands. Compare that with the thirty or so error trapping routines in a package like Beta Basic, which costs only a little more. Alternatively the OCP Master Tool Kit offers more routines and a UDG generator.
Cut the price of this package in half and it would be excellent.
John Gilbert
Publisher: CP Software Price: £9.95 Memory: 48K
***