REVIEWS COURTESY OF ZXSR

ZXED Spectrum Toolkit
by Roy Eastwood
DK'Tronics Ltd
1983
Your Spectrum Issue 6, Aug 1984   page(s) 62,66

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.

DK'TRONICS ZXED

This toolkit has been on the market for a long time (in computer program terms) and it's one I've used extensively over the last two years. These days, coming with additional options, ZXED is still easy to use and reasonably foolproof. On LOADing, it automatically relocates in memory to suit either 16K or 48K Speccy. It has a short Basic call routine starting at line 9900 and the toolkit functions are invoked by GOTO 9900. I have the following two lines at the beginning of my programs:

1 GO TO 100
2 GO TO 9900

Where line 100 is the true start of my program. Once called, the display will show a flashing 'T' cursor in the bottom left comer of the screen - all toolkit routines are now obtained by a single key operation. H - HELP will display the routines and their call letters.

ZXED is very 'user friendly'... call R - RENUMBER and you will be asked 'from line'... followed by 'to line'... 'new base'... and finally 'increment'; there's no need to refer to the manual here! You don't even have to give actual line numbers, providing of course that the portion you wish to RENUMBER falls within the line numbers you have specified. There are a few points to watch out for: 1,) when you MERGE your program with the previously LOADed toolkit, you must not have any lines in the range 9900 to 9916 - ZXED's Basic call routine; 2.) if you wish to APPEND - to add further commands or text to an existing line(s) - you must remember to start with a colon; and 3.) SEQUENCE (Auto line number) will not differentiate between an unused line number and one already assigned.

RENUMBER will only renumber sequentially within a specified block of lines; in other words, if you have blocks of lines starting at 100, 500 and 1000, you can RENUMBER the block at line 100 anywhere up to the start of the next block (anywhere between one and 500). If your new block of lines overwrites existing lines (at say line 500) then ZXED will not implement your command and will print an appropriate error message.

On completion of a successful RENUMBER, all GO TOs, GO SUBs, RESTOREs, LISTs, LLISTs, RUNs, SAVEs and line references are renumbered with the exception of computed GO TOs, GO SUBs, etc, (for example GO TO 330+R) but ZXED will LIST these for your inspection. If you do wish to move an entire block of lines to elsewhere within the program, then MOVE will do this. But you must make a note of all references to line numbers calling into this block from elsewhere in the program and alter them individually. To help you do this you can use FIND. ZXED's FIND is probably one of the best I've come across and on calling it, you are asked to enter the search string (keywords, variables or text). Having done so, all lines with this search string will be LISTed to the screen.

ZXED also gives the option of a reduced package of routines (on the other side of the tape) which take up less memory; here the options are reduced to BYTES (Free Memory), DELETE, RENUMBER and SEQUENCE. This facility can be useful if you have a long program which needs some tidying up!


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