REVIEWS COURTESY OF ZXSR

Super Toolkit
by Adrian Jones
Nectarine
1983
Sinclair User Issue 25, Apr 1984   page(s) 54,55

PACKAGES TO HELP YOU HELP YOURSELF

John Gilbert reviews the programming aids now available for the Spectrum

Most people buy computers with some purpose in mind. A few of them may want to learn about computing and to write programs. It is when that happens that utility routines may be needed to make the task easier.

There is a great variety of utilities available for the Spectrum which compensate for some of the inadequacies. One of the most common types of utility is the toolkit or language extension.

The Spectrum Super Toolkit, from Nectarine, provides all the necessary function a Basic programmer would need. It is also very user-friendly and should help anyone who has the slightest interest in developing programs, no matter whether they be beginner or an expert.

The toolkit will run on the 16K and 48K machine and occupies approximately 2.5K. That means at least 6K on the 16K Spectrum will be available for user programs. That is an achievement for the author, who has included 12 routines in the package.

The exceptional characteristic of the Super Toolkit is the one-key entry system which invokes each of the 12 commands. All you have to do to use a command is hold down the ENTER key and press the command key, such as 'L' for list all variables.

The package is one of the most comprehensive on the market. As well as generating a full re-number of Basic programs, deleting blocks of lines, listing variables and showing the memory used by a program, it will also produce a map of the memory in the computer, including Microdrive and channel information, and read the tape header of any piece of code.

There are no complicated POKEs involved in making any of the utilities work. All you need is a RAND USR instruction to enable and to disable it. You will also have to use the keywords PRINT or REM to re-enable its facilities after running one of your programs.

You should have no difficulty using any of the routines, as the toolkit will produce prompts on the screen for information it needs to perform its work. For instance, when you ask for line renumbering the screen will clear and the computer will ask at which number you want your program lines to start. It will then ask for the step size between each line number. The automatic default, if you press ENTER for each of those prompts, is a line-numbering system starting at 10 and rising in stages.

The manual with the package is just as good as Super Toolkit. It explains each utility command in turn and on the back page provides an uncluttered index of how to access them. It also shows how to turn off the toolkit when you want to use interrupt-driven machine code routines in your programs.

Super Toolkit cannot be recommended strongly enough. It costs £9.95 and fills a big gap in the market.

Spectrum Extended Basic, from CP Software, uses a one-keyword entry system similar to that of the Nectarine toolkit. Once invoked, all the user has to do as type an asterisk and then press the key to activate a desired command. For instance, the 'A' would be pressed if the user wanted to use AUTO line numbering.

The Basic uses approximately 5K of memory in which to operate. Although that is not bad for a package which allows the use of 10 new commands, when compared to the Nectarine product it takes much more memory.

The use of memory by a utility is all-important. A good utility will reside in memory almost invisible to the programmer, who should be able to do anything with the machine except initialise it, and it should utilise as little memory as possible, so that users can write long programs. A utility which uses a great deal of memory defeats its own purpose.

The Extended Basic could be described more accurately as another toolkit and not a set of machine code patch routines on the existing Sinclair Basic. It will operate with the Sinclair language but the routines included in the package are more in line with a toolkit than an extension of a high-level language.

It includes an auto-line number routine, a real-time clock, continuous scroll function, block code delete and an indication of the current state of the computer memory. It is almost as easy to use and as helpful as the Nectarine toolkit and many of its commands can be incorporated into user programs. Extended Basic is not a competitor to the toolkit but it is, however, a useful companion package. Spectrum Extended Basic costs £9.95 and is expensive for what it offers.

The other type of utility which is helpful on the Spectrum is the graphics package Although Sinclair Research included exciting graphics capabilities with the Spectrum, it is often difficult for the programmer working in Basic or the amateur programmer to get the most from the graphics potential.

One of the best ways to highlight a program or give it a title is to increase the size of the lettering and characters on the screen. It could be done with a number of PRINT statements but it is possible, using machine code or POKE routines, to magnify the original character set from the ROM.

A new utility package, Print Utilities, from Sinclair Research will allow you to magnify the character set and also to increase or decrease the width of lettering on the screen or on a printer. The software will allow you to use four widths and two heights.

There are two versions of the package, one for the 48K and one for the 16K, although each performs identical tasks. Once it has been initialised you can set up the character height and width using a print command which employs a hash. After that you must put a CHR$ command and a number. For instance:

PRINT 15; CHR$ 28

would select a double-height character set. Other CHR$ settings would give 32, 42, 16, and 21 characters a line and will also move the cursor left and right and clear the screen.

The different-sized character sets can be used in programs but they can also be used to reproduce listings to make them easier to read. Unfortunately the manual infers that the package is set up for the ZX printer, although with Interface One, which is catered for, output to a dot matrix printer or daisywheel would be possible, using the correct software.

Output to a printer is more difficult than to a screen, as the double-height mode is cancelled after one line is printed and it is not possible to mix different heights in one line of text.

Print Utilities can be obtained for the 48K Spectrum and costs £9.95. For the usefulness of the product that is expensive.

Paintbox is a more powerful graphics utility for the 48K Spectrum. It includes the capacity to manipulate 84 user-definable graphics which are set up in four switchable memory banks. Any one of the four sets can be switched into the 'present' mode, taking the place of the letters A to U.

It is possible to change any of the example characters set up in the package and to save them on tape if you want to use them in your Basic or machine code programs.

Paintbox contains a special facility which enables the user to put several UDG graphics on the screen together to examine the effect. It is also possible to rotate, inverse, and mirror the graphics with the press of a key.

Another facility is the precision plotter, which will allow you to draw pictures on the screen using lines, circles and arcs. The pictures can be shaded with a selected colour and the colour for INK and PAPER can be changed. The utility looks like the one on the Sinclair Horizons tape, although it is set out slightly better and is more usable so far as Basic programming is concerned.

The screen planner uses a combination of UDG graphics which can be created using the UDG banks and the Precision Plotter.

It allows you to see the finished result of all your work. The package is a powerful graphics aid and, if the demonstrations are any criterion both in the manual and on the tape you could produce some professional screen displays. It is possible for even a beginner to draw reasonable pictures using the package. Paintbox can be obtained from Print and Plotter and costs £7.50.

There are still few utility packages available for the Spectrum and the computer has been on the market for nearly one-and-a-half-years. It seems that most software companies are concentrating on producing arcade games of one kind or another. That is unfortunate, as many Spectrum owners could produce original and interesting programs if they had access to more utilities. It might also encourage more people to start programming if the see what can be done with the utilities available,

Some people may say that it is a little late to start thinking of producing more utilities for Spectrum owners but there are still many users trying to find interesting things to do with a computer. It would certainly be helpful if the few utilities on the market at present became many in the near future.

Nectarine, 837 Yeovil Road, Slough, Berkshire.

CP Software, 17 Orchard Lane, Prestwood, Bucks HP16 0NN.

Sinclair Research, Stanhope Road, Camberley, Surrey GU15 3PS,

Print and Plotter, 19 Borough High Street, London SE1 9SE.


REVIEW BY: John Gilbert

Blurb: 'It is often difficult to get the most from the graphics potential.'

Gilbert Factor8/10
Transcript by Chris Bourne

Your Spectrum Issue 6, Aug 1984   page(s) 62,66,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.

NECTARINE SUPER TOOLKIT

This is quite a newcomer to the market and uses an interrupt mode of operation. In theory, therefore, a routine using this mode can be inserted and performed between the computer's regular cycle of operations. Of course, the computer has to display a screen picture, and it also has to work out the computations that you've set within your program; it can't do these simultaneously and so it carries out the various manoeuvres in strict cyclic order. Interrupting this order and performing another operation can be highly beneficial in certain circumstances, although with this toolkit I'm not so sure.

Nectarine goes to some pains to tell the user not to use Super Toolkit with Interface 1 connected (ie. Microdrives) or with a machine code program using interrupts; despite that, a new version will be available soon on Microdrive cartridge. The introduction in the instruction manual says "all in all these features (the toolkit routines) add up to make Super Toolkit the most useful, powerful and user friendly suite of utility programs available to Spectrum Basic programmers". I'll let you make up your own minds on that one... just don't write in if you disagree with it.

The tape provides versions for both the 16K and 48K Spectrums, plus there's a demonstration program. That's sensibly placed after the two toolkit programs, obviating the need to grind through it each time you want to LOAD your toolkit. If you've keyed in LOAD "" (for the demo), don't get worried if your Spectrum appears inert - it's merely ignoring the first two machine code programs on the tape.

To LOAD Super Toolkit (48K version) type 'CLEAR 62838: LOAD "48" CODE' and having got a successful LOAD, enter 'RANDOMISE USR 62839' to activate the routines. You can then LOAD or enter your program. To call the commands, simply press Enter and the relevant key (for example. Enter and the 'M' for the MEMORY MAP). If you have RUN your program, first enter PRINT, REM or CLS to enable the toolkit.

The routines themselves are somewhat limited in operation: RENUMBER will only renumber the complete program; you can choose the 'start line' and 'step' but not a finish line! The manual says "it looks neater and is easier to debug if the lines are all numbered in equal steps". I suppose it does look neat but I prefer to keep my programs structured (loosely) in blocks - for instance, all initialisation, DIMs, etc, starting from line 100; important GO SUBs from line 500; the main program starting from line 1000; and DATA from line 8000. Then I always know where to look for specific routines, whereas here one use of Enter and the 'R' key and I'd be lost.

Super Toolkit does not renumber computed lines (GO TO 330+R, etc) which is fair enough as neither do any of the others. But it does not tell you if or where any such lines may be. BLOCK DELETE functions correctly but is a trifle slow. There's no FIND but there is REPLACE KEY WORD, which only works on keywords (PRINT, REM, LIST, and so on). You're asked for the CODE of the old keyword and the CODE for the new - and this you will have to look up in your Spectrum manual (pages 183-188). Although this works well, the routine seems a little limited. The only use for it that comes to mind is that suggested in the instructions - PRINT to LPRINT!

There appears to be a bug in the LIST VARIABLES routine; although it produced a screen display, the keyboard always locked-up after its use. That means the power supply has to be switched off and back on again, to regain control (with the subsequent reLOADing of both the toolkit and the program). The VARIABLE LIST indicates an array with two brackets but doesn't give the dimensions.


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