REVIEWS COURTESY OF ZXSR

ZX Tool Kit
Star Dreams
1983
Your Spectrum Issue 6, Aug 1984   page(s) 62,67

TALKING OF TOOLKITS

Essential for software development, toolkits are often billed as the programmer's 'tools of the trade'. Peter Freebrey takes five such packages on the bench and examines whether they fulfill their promise.

A toolkit is a utility program that will take a lot of the sweat and worry out of writing and debugging your own programs; often too, it will give commands and routines the computer manufacturer should have installed in the ROM in the first place! These are likely to include: Renumber, Delete, Free Memory, Find, List Variables and Alter. You may find one or two are missing, but in that case, there'll probably be instead some other useful goodies tucked away in that binary brainbox. And, as you'll see from the table included in this article, some toolkits have a larger range of commands than others. But, much like computers in general, put a number of them side-by-side and you'll be able to say that each should ideally have something that one of the others has got. That's life, I guess!

So, what are these routines for? Well, say for instance that you've written a long program without keeping an absolute record of the variable names you have used (tsk, tsk). In that case, FIND DX (for instance) will jump to the rescue and list out the lines where you used the variable DX. No can find? Great... in that case you can use it as your next variable.

Have you ever kept rigidly to a line spacing of 10 - 10, 20, 30, 40... - only to find that you need to insert some lines between lines 110 and 120? Well, no problem if there are just a few of them - 111, 112, 113, etc. But what if you need to insert a routine of 20 or so lines? Yes, of course you can change the line numbers, but at this stage it's all too easy to overwrite an existing line and... whoops, another chunk of debugging to deal with. RENUMBER is the simple and safe (usually!) way out.

Then again, perhaps you have a big program and you want to know how much memory you've got left. You can remember reading in that book you bought last Saturday about some POKEs and PEEKs that will tell you but, now where was that page? In fact, it's much easier to just type FREE (or some such) and see the answer immediately. All these are often used applications of the ubiquitous toolkit.

If you're in the market for a toolkit (or I've just convinced you that you should be!), you probably won't be surprised to find out that there are a number of toolkits for the Spectrum, and two of the five reviewed here are readily available over the counter in two of the larger chain stores. The other three can be ordered through the post if you're unable to find them in good shops.

The table at the end lists the routines available from each toolkit and provides a quick comparison of what each offers. But this is by no means the whole story, for ease of use is an important factor too. One toolkit from a year or so back required something like 'RANDOMISE USER 63338 a,b,c,d' to be typed in each time you wanted a specific routine; certainly it provided the goods, but it was also a case of getting the instructions out every time you wanted to use it! Then there's the matter of 'friendliness' of operation... is it possible to irrevocably change (or ruin) your program by just a simple mis-key? Sometimes to get the set of routines you want, you have to accept a compromise. I'll be dealing with each toolkit individually, pointing out not only its better points but the rough edges as well.

STAR DREAMS ZX TOOL KIT

This package, though not so well publicised as ZXED, has been available for nearly as long and has been upgraded slightly to include a SEARCH and LIST routine and limited Microdrive information (by calling MEMORY MAP). Two versions are provided (on either side of the tape), one each for 16K and 48K machines. Operation is slightly more Fiddly than with ZXED. For instance, to call the RENUMBER routine, you have to key in RANDOMISE FN r (start line, finish line, new start line, step) including the brackets and commas. All GO TOs, GO SUBs and so on are renumbered (with the exception of computed line numbers) and these must be altered (if necessary) individually. To help the programmer these are displayed 'flashing' within the LISTing. If you wish to RENUMBER outside a sequential block then, as in ZXED, you have to use MOVE. However, with this toolkit, while the lines are MOVEd to a new position in the program LISTing, their original line numbers are retained. This enables you to use RENUMBER on these lines (to put them in their right sequence), which will then alter all the relevant calls to this block anywhere in the program - clever stuff!

On all calls that involve displaying a result (SEARCH and LIST, MEMORY MAP, VARIABLES DUMP, and so on) you must specify the output device. Sadly, SEARCH and LIST only displays line numbers of the occurrence and does not LIST the full lines. MEMORY MAP gives a fair bit of information, including the size of the program and bytes free, and displays the user-defined characters. The TRACE routine displays the current line number of a RUNning program at the top right of the screen and the speed of program operation is selectable from normal down to very slow. The VARIABLES DUMP is useful but fails to list individual elements of arrays, giving only the lengths of string variables.

Unusually, Star Dreams has also included a HEX DUMP starting at a specified memory location. Those with a little time to spare who are interested in what goes on inside the Spectrum will find this facility provides good reading.


REVIEW BY: Peter Freebrey

Blurb: Do you want ease of use? Do you use a lot of user-defined graphics? Do you write long, long programs? As usual, the final decision has to be tempered by the specific needs of the prospective user. So, research your requirements and check 'em all out.

Blurb: TOOLKIT COMPARISON STAR DREAMS TOOLKIT Price: £4.95 Memory Left For Program: 38291 Renumber: Yes Autoline: No Find: Yes Alter: Yes Delete Lines: Yes Move Lines: Yes Copy Lines: No List Variables: Yes Trace: Yes Line Address: No Merge Lines: Yes Append To Line: No Case Change: Yes Line Range: start Free Memory: Yes Rem Kill: Yes Crunch - Pack: No Program Length: Yes Hex Dump: Yes Memory Map: Yes Display UDGs: Yes Clock: No Alarm: No Syntax Check: No Direct Output: Yes Function Keys: No Set Error Trap: No Set Break Trap: No Read Tape Header: No Hi-Res Draw: No Memory Test: No UDG - Creator: No NECTARINE SUPER TOOLKIT Price: £6.95 Memory Left For Program: 39047 Renumber: Yes Autoline: Find: No Alter: Yes Delete Lines: Yes Move Lines: No Copy Lines: No List Variables: ouch! Trace: Yes Line Address: No Merge Lines: No Append To Line: Case Change: No Line Range: No Free Memory: Yes Rem Kill: Yes Crunch - Pack: No Program Length: Yes Hex Dump: No Memory Map: Yes Display UDGs: No Clock: No Alarm: No Syntax Check: No Direct Output: No Function Keys: No Set Error Trap: No Set Break Trap: No Read Tape Header: Yes Hi-Res Draw: No Memory Test: No UDG - Creator: No DK'TRONICS ZXED Price: £6.95 Memory Left For Program: 39339, 37372 Renumber: Yes Autoline: Yes Find: Yes Alter: Yes Delete Lines: Yes Move Lines: Yes Copy Lines: Yes List Variables: No Trace: No Line Address: Yes Merge Lines: No Append To Line: Yes Case Change: No Line Range: No Free Memory: Yes Rem Kill: No Crunch - Pack: Program Length: Hex Dump: No Memory Map: No Display UDGs: No Clock: No Alarm: No Syntax Check: No Direct Output: No Function Keys: No Set Error Trap: No Set Break Trap: No Read Tape Header: No Hi-Res Draw: No Memory Test: No UDG - Creator: No OCP MASTER TOOLKIT Price: £9.95 Memory Left For Program: 34152 Renumber: Yes Autoline: No Find: Yes Alter: Yes Delete Lines: Yes Move Lines: Yes Copy Lines: Yes List Variables:Yes Trace: Yes Line Address: No Merge Lines: Yes Append To Line: No Case Change: Yes Line Range: full Free Memory: Yes Rem Kill: Yes Crunch - Pack: Yes Program Length: No Hex Dump: No Memory Map: Yes Display UDGs: No Clock: Yes Alarm: Yes Syntax Check: Yes Direct Output: Yes Function Keys: Yes Set Error Trap: Yes Set Break Trap: Yes Read Tape Header: No Hi-Res Draw: No Memory Test: No UDG - Creator: No TIMEDATE TT-S Price: £7.95 Memory Left For Program: 37177 Renumber: Yes Autoline: Yes Find: Yes Alter: No Delete Lines: Yes Move Lines: Yes Copy Lines: No List Variables: Yes Trace: Yes Line Address: No Merge Lines: No Append To Line: No Case Change: No Line Range: start Free Memory: Yes Rem Kill: No Crunch - Pack: Program Length: Yes Hex Dump: No Memory Map: No Display UDGs: Yes Clock: No Alarm: No Syntax Check: No Direct Output: No Function Keys: No Set Error Trap: No Set Break Trap: No Read Tape Header: Yes Hi-Res Draw: Yes Memory Test: Yes UDG - Creator: Yes

Transcript by Chris Bourne

All information in this page is provided by ZXSR instead of ZXDB