Super Toolkit
Programming: BASIC · ZX-Spectrum 16K · 1 players · English
Nectarine · 1983 · Pound sterling 10.70
Discussion
Nobody has started a thread about this yet.
Play
- SuperToolkit.tzx.zipTape image English14 KB
Files and rights
No permission is on record either way. Screens and pictures are copied here on a take-down basis: if you hold the rights and want something removed, say so and it goes.
Credits
- Adrian Jonescredited
Sign in to credit somebody, or say what these people did.
Scores
In the magazines
- Personal Computer News #671984 · Overall Value4/5
- Sinclair User #251984 · Gilbert Factor8/10
In the magazines 11
Big K #9Dec 1984 · p.69
Fin Fahey
THE EXTENDED SPECTRUM Fin Fahey checks out a smattering of utility programs for Old Rubber Keys. System Software, as we old computer industry hacks call programming tools, is hardly destined to set the world alight. It smacks of hard work and late night sessions over a hot keyboard and seems light years away from the glamour and fun of, say, a new Melbourne House adventure release. But for people interested in stretching their minds, and their machines, some of these trusty workhorses may well turn out to have hearts of gold. But why go beyond the facilities offered by Sinclair BASIC? (One may well ask.) Quite simply, no machine, and particularly no BASIC interpreter, fills all the needs of the budding programmer, and for a lot of requirements like arcade games, just hasn't got the speed. There area fair number of - packages which just add a few useful commands to BASIC extensions r programmer's toolkits, these generally give you the sort of goodies you've always needed to develop your BASIC programs. There's no line Renumber command on the Spectrum, and for this you'll have to buy a toolkit. The same goes for many other 'system' commands. Trace, to give you a continuous listing of program lines being executed, Map, to tell you which variables have been specified, and Block Delete, so you can get rid of more than one line at a time, to name but a few. Super Toolkit, from Nectarine, has all of these plus such things as a Crunch command, to get all those useless spaces and REMs out of your program before running. It clocks up a total of 12 commands, as does Toolkit from IMS Software, which includes an Auto line-numbering routine. Slightly fewer facilities on CP Software's Spectrum Extended BASIC, only 10 commands in this case, and the only one unique to this package is Find, which will look fora specific string text in your program. CP, however also do Supercode, a machine code toolkit, incorporating a hundred off-the-shelf machine code routines. These include an impressive range of scrolling effects, high-resolution diagonal scroll, low-resolution shutter and ripple scrolls and many others. There are four sound effects generators too, but the truly impressive thing is that you can include CP's code in your own BASIC and machine code programs, an amazing bit of altruism. Each routine has full in-program documentation and a demo mode shows you what they can do. It's got to be good value. From off-the-shell machine code to creating your own. If you've decided that BASIC's too slow for your program design, then you'll probably want to write machine code. Some people seem quite happy programming this byte by byte as BASIC POKEs, but for really effective development you'll need an assembler. Assemblers allow you to put Z80 code in assembly language, a much more understandable form, even though it's a lot more obscure looking than BASIC. A good assembler will allow you to specify addresses and constants as meaningful labels which makes the code a lot easier to follow. In such a symbolic assembler, the JP instruction (equivalent of BASIC GOTO) could be rendered JP LOOP instead of giving an actual address, say JP $4000. But before actually using one of these things, you may need to learn what it's all about. To help you, there are a number of tutorial programs, and some of these actually allow you to set up and test code. Sinclair's Beyond BASIC offers a tutorial on the internal structure of the Z80 plus lessons on each assembler instruction. These are illustrated with simple moving graphics. There is an experimenter section where you can watch the effects of your own code on memory and registers. Sadly, this one doesn't cover the entire instruction set. More complete is New Generation's Machine Code Tutor. This comes on two cassettes and covers everything. Once again, you can write your own code and 'run' it on a diagrammatic simulator. Although this is rather harder work than Sinclair's, I think it gives a closer feeling to using an actual assembler. Dream Software also have a simulator. This has much nicer printed documentation than the other two, but unfortunately it describes an imaginary chip which resembles the Z80 in many respects. I think that this may be unnecessarily confusing, but as long as its borne in mind, the transition to the real chip shouldn't be too hard. So now you can get down to some real coding... Sinclair themselves market the Zeus Assembler, which allows full symbolic instructions. Lines of code are entered much as in BASIC, and editing is similar, so this should be an easy one for beginners to move to. Picturesque's Editor/Assembler, on the other hand, has a rather better editor than the Spectrum, but the key response seemed a bit slow to me. This latter program is very tolerant about the format in which you enter code. Very different from these two is Oasis Software's Spectre Macro-assembler, and I certainly wouldn't recommend this one for beginners. It's a very professional product, but using it is more like learning a new computer language than anything else. It doesn't use Z80 instructions directly; they have to be set up as procedure definitions much as in high-level languages like Forth or Pascal. This makes it very powerful, since it's just like building your own interpreter. But, as I say, not for newcomers. An indispensable tool when developing machine code is some sort of Monitor. A Monitor provides easy ways of getting at memory, moving it, changing it, searching it for particular values, that sort of thing. You can also usually get dumps of Z80 register values and step through a machine code program. The Zeus assembler has a reasonable monitor with it, but Sinclair do a more extensive version as a separate product. This also allows you to Disassemble code, which means to translate machine code back to assembly format. Useful for looking at the ROM, but maybe you'd be better off buying one of the 'Spectrum ROM disassembled' type books which also give explanatory notes. Picturesque's Editor/Assembler has no attached monitor and you have to buy theirs separately, although both programs can be loaded at the same time. Agai, there's a disassembler. Assembly language isn't the only way of getting fast code. Scope II, from ISP, is a simple language aimed at producing fast machine-code animation. The makers call it a medium-level language, as it's mid-way between BASIC and assembler. I feel it's rather closer to machine code, but it's certainly a lot easier to use. Once you've written code in SCOPE II, it is boiled down by the program to machine code routines, which can be run without Scope being present, so you develop commercial products, or give copies of your games to your friends without fear of committing piracy. This process of boiling down machine code is known as compilation, and it's possible to do it to BASIC. The only BASIC compiler we had available to look at was Softek's. This is certainly fast. From running a few simple loops, it looks roughly about 150-200 times faster than interpreted BASIC. It does have some serious drawbacks, though. For one, there a quite a few BASIC functions it can't translate, floating-point arithmetic and arrays among them. More seriously, compiled programs will not run without Softek's run-time routines being present. Unfortunately, the company is being quite prickly about this, and are claiming that if you develop your program and compile it with their program. then they've suddenly acquired a share in it, Whatever the legal position, this seems a little dubious to me, and it's certainly a discouragement to using Softek's product for commercial development. The final approach to fast code is to use Forth. This high-level language is closer to machine code than BASIC, and for most purposes runs up to ten times faster. Not spectacular maybe, but it can make a difference. The speed saving is nice, but it's not really the central point about Forth. The language takes a fundamentally different approach to BASIC, and one which provides a much sounder design discipline. It would certainly be easier to write good machine code after a grounding in it. Forth is known as a 'procedure-oriented' language. That means there's no more complaining about there not being a command in BASIC to do something. If it's not there in Forth, then you just write your own command, which is compiled into the language vocabulary. Although you can theoretically do this in BASIC by using subroutines, compiled procedures are much faster and easier to use. Forth is easier to structure too. There are at least four versions of Forth available on the Spectrum. It's hard to decide between them, but Melbourne House's Abersoft Forth is the only one recognised by the independent Forth interest Group. Sinclair also do a Forth which to my relatively untutored mind seemed much the same, both in terms of speed and usability. Both versions have minimal printed documentation, since they rely on the user going out and acquiring a Forth manual. The sad thing about Forth is that. unless you're a fan of the ill-fated Jupiter Ace, you can't market any of your programs since they won't run without someone else's product. While on the subject of languages, Logo has been stirring up interest as a teaching language, particularly for younger children. Unfortunately, the version I looked at, Snail Logo by CP Software, really merited its name. Logo is high-resolution graphics oriented, and the user commands a 'turtle', or in this case a snail, to draw shapes on the screen. The CP interpreter turned out to be written in BASIC, so every command is interpreted twice. Slow? I can't imagine anyone, adult, or child, having the patience to work through the manual, let alone use it. Something of a weirdie, but one I find particularly fascinating, is Micro -Prolog, from Sinclair. Prolog represents yet another direction in new languages, and is particularly suited for Artificial Intelligence and linguistic purposes. Its very odd to use after command oriented type languages like BASIC, or even Forth, because a program in Prolog (it stands for PROgramming in LOGic) is mostly a way of organising data, not of setting up a fl ow of commands. Now I've got the point, I want to know more about this one. Sinclair Micro-Prolog's documentation isn't bad either. Dr Ming back to the problem of generating programs, if you're an adventure game writer, you haven't really got one, The Quill, from Gilsoft, and Dream's Dungeon Builder can both be used to generate adventures of any complexity. We've reviewed them before, and they're both good value. Dungeon Builder has the edge in user-friendliness, and can be used to add graphics to adventures, while Quill has a more mechanistic approach. Both Gilsoft and Dream are perfectly happy for people to market games produced with their packages. Right on! On which cheery note I'll roll the credits and fade to black, but not before noting that this is far from being a complete survey, so if you've discovered an utterly wonderful, or unspeakably awful bit of useful/useless software in this field let us know. BASIC EXTENSIONS: SUPER TOOLKIT from NECTARINE TOOLKIT from IMS Software SPECTRUM EXTENDED BASIC from CP Software Price: £9.95 SUPERCODE from CP Software Price: £9.95 MACHINE CODE TUTORIALS: BEYOND BASIC from Sinclair Price: £9.95 THE COMPLETE MACHINE. CODE TUTOR from New Generation Software Price: £7.95 MACHINE-CODE FOR BEGINNERS from Dream Software Price. £0.00 ASSEMBLERS: ZEUS ASSEMBLER from Sinclair Price: £12.95 EDITOR/ASSEMBLER from Picturesque Price: £8.50 SPECTRE MAC-MON from Oasis Software Price: £14.95 MONITORS: MONITOR/DISASSEMBLER from Sinclair Price: £12.95 SPECTRUM MONITOR from Picturesque Price: £7.50 COMPILER from Softek Price: £9.95 LANGUAGES: SCOPE II from ISP Price: £11.95 FORTH from Sinclair Price: £14.95 ABERSOFT FORTH from Melbourne House Price. £14.95 SNAIL LOGO from CP Software Price: £9.95 MICRO-PROLOG from Sinclair Price: £24.95 ADVENTURE GENERATORS: THE QUILL from Gilsoft Price: £11.95 DUNGEON BUILDER from Dream Software Price: £9.95
Your Spectrum #6Aug 1984 · p.62
Peter Freebrey
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. OCP MASTER TOOLKIT This product also uses an interrupt mode and in so doing introduces two new routines to the expected toolkit range: CLOCK and ALARM. Although I doubt that these will shake the programming world, we all know how easily time flies when deep into the latest keyboard creation. The line-up of routines in Master Tool Kit (MTK) is fairly extensive and easy to use. It has programs for either 16K or 48K machines, one each side of the cassette. LOADing is carried out with LOAD "", and to invoke the toolkit press Symbol Shift and Space at the same time. This will clear the screen, and now the routines may be called by pressing a single key followed by Enter. MTK will remain active until you key 'B' (return to Basic). The only criticism I have of the system is that the 'R' key is used for (surprise, surprise...) RENUMBER; 'R' is also Spectrum's RUN key and should you forget - in a moment of weakness - that you've not returned to Basic, R' will RENUMBER your program completely starting at line 10! This is because MTK routines are called in the form: R range, start, increment But if no additional information is added to the prime call letter, then default values are assumed; in this case: 'range' - the entire program; 'start' - 0; and 'increment' - 10. Having default values assumed is useful on the one hand, but on the other there's then no option to escape. This option of range is a nice feature of MTK and obviously vital for a good RENUMBER; it's also very useful in specifying a range of lines in which to FIND or SUBSTITUTE. MTK has a neat feature where Space and the' K' key pressed together change the cursor to its K mode and where the next key pressed generates its associated keyword - so saving the common need to key in THEN... KEYWORD followed by delete THEN! RENUMBER will only work within a sequential block of lines and to change the order of blocks, you'll have to use MOVE. This brings us to the only apparent bug in MTK. On MOVEing a block of lines, you may want to alter the GOTOs, GO SUBs and so on, that refer to this block. They will still have the old numbers and the obvious ploy is to use the facility provided - SUBSTITUTE. But be warned, although the routine will appear to work, in this case it does not. It will provide a string, and not a substitute number! Your program won't recognise these pseudo-numbers, so use FIND and LIST instead and then make the necessary changes individually. In addition to the more usually found REMKILL, to save on memory space, MTK also offers the option of PACK which will 'pack' multiple statements into single lines. Going yet one stage further you also have COMPRESS which will replace explicit numeric constants in a form that the computer recognises but which, in certain instances, can save a considerable amount of memory space. Not only does MTK have a versatile range of toolkit routines, it also provides the facility of programmable function keys. Ten keys ('0' - '9') may be user-defined either to simply print the specified function (keywords, variables, text, etc) or to print and ENTER - altogether a very desirable feature. DISPLAY VARIABLES is a complete LIST including all elements of arrays (all variables except for FOR... NEXT loops are displayed in lower case, even if you've programmed them in capitals). MTK does not have autoline number or a display of user-defined graphics. TT-S TIMEDATA This tape from Timedata not only has a toolkit (called Gamma) that's much like the foregoing, but also four other utility programs - high resolution screen drawing, user-defined graphics creator, a tape header analyser, and a machine code memory test program. With this, you certainly get your money's worth! The toolkit program comes first and you load it by keying LOAD "". This auto-RUNs and immediately sets two general safeguards - NEW is inhibited so you can no longer accidentally erase your program and it's impossible to overwrite an existing program line. Thus you have an excellent line editor; type in the line you wish to EDIT, press any keyword key and the line is displayed at the bottom of the screen. If required, it may be deleted by either DELETE or by typing in the line number and keying Enter. Once you've invoked the toolkit by hitting the '0' key with the Symbol Shift key pressed, routines are all single key entries. AUTO line number and DELETE need no comment. FREE not only displays the free memory available, program and variable space but also the current values of the system variables; it also shows the current user-defined graphics characters. HELP displays the toolkit routines and their associated keys; FIND will hunt out occurrences of a specified string starting its search from a specified line number (defaulting to line 0 if no start is given). Only the line numbers are displayed - no program lines are LISTed. RENUMBER will only work within a sequential block of lines (renumbering all GOTOs, GO SUBs, etc). MOVE is superior to other versions in that it also renumbers all references to the new block of lines (providing they're not in the form of GOTO 330+R). In fact MOVE is so good one wonders why Gamma has got both RENUMBER and MOVE! Both commands are 'intelligent' in that they'll close up the specified line increment, even where you've not allowed sufficient space! It's also possible to have lines going up to line 16000(normal maximum is 9999). The first two digits of these extended lines are replaced by a non-numeric character and they can't be edited (although they can be RENUMBERed or MOVEd). References to these lines elsewhere will have to be changed for the program to function correctly - for instance, GOTO < 350 becomes 12350. The keyword, VARIABLES, LISTs variables but arrays are only shown by their dimensions. F/N is put against variables used in FOR... NEXT loops together with the line number of the FOR statement. TRACE is an interesting variant in that not only can you select the delay (from single-step up to about five seconds) but in addition to displaying the current line number, it'll also show the current values of specified variables. All the TT-S programs will run on either 16K or 48K Spectrums, with or without Interface 1 and Microdrives. Routines are even provided that enable you to copy these programs on to a Microdrive wafer. 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! 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. 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.
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.
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
Personal Computer News #67Jun 1984 · p.415/54/54/53/53/54/54/5
Features 5/5
Documentation 4/5
Performance 4/5
Usability 3/5
Reliability 3/5
Overall Value 4/5
Kevin Bergin 4/5
BASIC NECESSITIES Good news for Spectrum programmers brought by Kevin Bergin. NAME: Super Toolkit PRICE: £9.95 SYSTEM: Spectrum 16K/48K PUBLISHER: Nectarine, [redacted] FORMAT: Cassette OTHER VERSIONS: None OUTLETS: Mail order/retail Helping Basic programmers do the tricky little things that can sometimes take forever is the aim of Super Toolkit. Nectarine claims this machine code utility will enable Spectrum users to skip through jobs like renumbering, block deletion and crunching, among others, with a single keystroke, and by and large it succeeds. The package has a version of the program for both the 16K and 48K versions of the Spectrum and even includes a demonstration program. When loaded, Toolkit sits above Ramtop, occupying some 2506 bytes, knocking a fair chunk of RAM from the 16K machine. Commands in Toolkit are given by pressing ENTER, along with the required key. DOCUMENTATION The cassette comes in a largish plastic wallet, and the instruction booklet is a slim 16-page volume. There is a warning on page three: the program will not function with the ZX Microdrive, nor will it work with Interface 1 connected. This may be bad news for some owners. But fear not, a version of the program for use with Microdrives is in the pipeline. The manual has no index, but the commands are listed on the back page of the manual and the on-screen prompts are quite adequate. FEATURES Toolkit uses the interrupt system of the Z80, so you have to deactivate it if you want to use machine codes routines that also make use of interrupts, such as a printer driver. Turning Super Toolkit on and off is just a matter of entering the relevant RAND USR commands. If you NEW a Basic program after invoking Toolkit, you must reactivate it with the relevant RAND USR command before progressing. To renumber, you press ENTER and R. You're then prompted for the starting line number and the increment. While renumbering is a very useful facility, not even this one will cope with computed GOTOS or GOSUBS, such as GOSUB 100*x. Of more significance is the fact that it won't handle GOTOS to non-existent line numbers (one of Sinclair Basic's more curious features). So you have to do the rest by hand. The manual warns you that when you renumber a program you must make sure to choose a step size which will not make the higher line number exceed 9999, the highest allowed by the Spectrum. If this does happen, you'll get some curious line numbers, though the program will still run all right. You're recommended to renumber with a smaller step. One command lists in a Basic program all the variables given in the order in which they appear in the code. This makes for easy and fast debugging as you trace the occurrence of any variable. The block delete command erases a block of lines in the range given. This is a great time-saver; it takes a lot of hours and patience to delete a lengthy sequence of lines using Sinclair Basic. Any keyword in a program can be replaced with another. Sounds neat, but when would you need to do it? The manual suggests that you could replace all PRINTS with LPRINTS. But apart from that, I couldn't think of a reasonable application for this facility. What would have been useful is a search and replace function to allow you to change things like variable names. You can check the byte length of a program, and Trace displays the current line and statement numbers in square brackets at the bottom right of the screen. This is probably the most useful debugging aid, because you can also step as slowly as you wish through the program. It's a pity Nectarine couldn't have taken this a step further and let you have the values of selected variables displayed as well. Still, it's far more useful than the TRACE built in to most micros. Turning off TRACE requires a rather odd set of actions: you have to BREAK or STOP the program, then enter a dummy command like REM or PRINT, to make the Spectrum and Toolkit work normally again. You can also check the number of bytes used by your program variables and there's a memory map routine. This gives the current state of many system variables and updates them as the program is altered. The Memory map function gives you this sort of information: Microdrive maps: 23734 Channel info: 23798 Program address: 25068 Variable address: 34059 Calculator stack: 34674 Machine stack: 64543 Ramtop: 65288 Another routine allows you to read any tape header, even that of Toolkit itself. The manual points out: 'It enables you to identify programs very quickly. The information includes the program name, type, length, autostart line number or start address.' VERDICT At just under £10, Super Toolkit may be pretty good value. However, Nectarine really should have spent more time on tidying up the screen displays and producing a better deal. The conclusion has to be a grateful nod of approval to Nectarine, but why can't manufacturers provide such basic facilities in ROM? There's a crying need for many of the functions provided by toolkits such as this on all machines, but should we have to pay extra to get them?
SUPER TOOLKIT COMMANDS 8 - Block delete C - 'Crunch' program F - Free memory H - Header Reader K - Replace Keyword L - List variables M - Memory map O - Trace off P - Length of program R - Renumber T - Trace on V - Memory used by variables
Sinclair User #25Apr 1984 · p.548/108/10
Gilbert Factor 8/10
John Gilbert 8/10
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, [redacted]. CP Software, [redacted]. Sinclair Research, [redacted], Print and Plotter, [redacted].
'It is often difficult to get the most from the graphics potential.'
Advert4
- Sinclair User #27Jun 1984 · p.43
- Popular Computing Weekly #6Feb 1984 · p.14
- Popular Computing Weekly #8Feb 1984 · p.43
- Popular Computing Weekly #2Jan 1984 · p.23
Feature3
- Big K #9Dec 1984 · p.69
- Your Spectrum #6Aug 1984 · p.62
- Sinclair User #25Apr 1984 · p.54
Related
- Elsewhere
- The Spectrum Show - Youtube
- Same entry at
- Spectrum ComputingZXInfo
Reviews from people here
Sign in to write about this, or make an account. It takes a minute and lets you correct the catalogue too.
No description, tag recorded.
Sign in to correct or add to this.
Hold the rights to this and want it taken down?
