[{"TitleName":"Blast!","Publisher":"Oxford Computer Systems","Author":"","YearOfRelease":"1985","ZxDbId":"0007980","Reviews":[{"Issue":{"Name":"Crash Issue 20, Sep 1985","Price":"£0.95","ReleaseDate":"1985-08-28","Editor":"Graeme Kidd","TotalPages":132,"HasCoverTape":false,"FlannelPanel":"Publishing Executive: Roger Kean\r\nEditor: Graeme Kidd\r\nTechnical Editor: Franco Frey\r\nArt Editor: Oliver Frey\r\nProduction Designer: David Western\r\nSoftware Editor: Jeremy Spencer\r\nAdventure Editor: Derek Brewster\r\nStrategy Reviewer: Angus Ryall\r\nStaff Writer: Lloyd Mangram\r\nContributing Writers: Matthew Uffindel, Chris Passey, Robin Candy, Ben Stone, John Minson, Mark Hamer\r\nClient Liaison: John Edwards\r\nProduction Manager: Sally Newman\r\nSubscription Manager: Denise Roberts\r\nMail Order: Carol Kinsey\r\n\r\n©1985 Newsfield Limited.\r\nCrash Magazine is published monthly by Newsfield Ltd. [redacted]\r\n\r\nSubscriptions [redacted]\r\nEditorial/studio [redacted]\r\nAdvertising [redacted]\r\n\r\nColour origination by Scan Studios, [redacted]; Printed in England by Carlisle Web Offset Ltd (Member of the BPCC Group), [redacted].\r\nDistribution by COMAG, [redacted]\r\n\r\nSubscriptions: 12 issues £14.50 post included (UK Mainland); Europe: 12 issues £21.50 post included. Outside Europe by arrangement in writing.\r\n\r\nNo material may be reproduced whole or in part without written consent of the copyright holders. We cannot undertake to return any written material sent to CRASH Magazine unless accompanied by a suitably stamped addressed envelope. Unsolicited written or photo material which may be used in the magazine is paid for at our current rates. The opinions and views of correspondents are their own and not necessarily in accord with those of the publishers.\r\n\r\nMICRONET:\r\nYou can talk to CRASH via Micronet. Our MBX is 105845851\r\n\r\nCover by Oliver Frey"},"MainText":"MACHINE CODE WITHOUT TEARS PART II\r\n\r\nNEW BASIC COMPILERS\r\n\r\nLast month we looked at five well-established Spectrum compilers - programs to translate ZX BASIC into fast machine code. We left you excitedly waiting for the results of our tests on two new compilers Colt and BLAST. At the last moment, we received a copy of Mcoder 3, another BASIC compiler scheduled for imminent launch. Do the new programs knock spots off the golden oldies? Read on to find out....\r\n\r\nTHE COLT\r\n£12.95 from HiSoft\r\n[redacted]\r\n\r\nThe Colt is a new BASIC compiler from HiSoft, previously well-known for their Spectrum Pascal package. Colt is a fourth generation program, descended from IX-GT, Mcoder 7, and Mcoder 2, reviewed last issue. Rather confusingly, Mcoder 3 (which we look at later) is an entirely new program.\r\n\r\nColt is more than just a BASIC compiler the package also contains The Executive, which contains a number of useful extensions to BASIC, some of them quite unusual and others rather dull. You get a digital clock accurate to a tenth of a second (!), which you have to set using just two keys, like a tatty ory area and recalled with a radio alarm. You can control the clock like a stopwatch, but it stops whenever you use cassettes or microdrives!\r\n\r\nYou get single-key commands, some of them programmable, but these use the Space key as an extra Shift. This interferes with key 'roll-over', so you have to be careful when typing text, or Space characters get lost. Command entry takes a lot of getting used to you must press Space, then another key, then release Space, then release the other key. If we hadn't got used to Spectrum single-key entry, we'd say it was almost unusable....\r\n\r\nThe Executive offers a full set of OL-style windowing commands and a sprite handler which can cope with up to 16 large sprites (32 by 24 pixels). These facilities allow smooth movement and scrolling, with automatic collision detection. Keen programmers may value commands for error-trapping, logging the parts of a program which take the most time, deleting groups of lines and base conversions in the unlikely event that they haven't already got programs to do such things.\r\n\r\nTHE COMPILER\r\n\r\nColt itself occupies about 6K of memory, and The Executive requires another 7K. You can use the compiler on its own if you wish. Even this may not leave enough space to compile large programs, since Colt normally keeps the original 'source' and the compiled code together in memory. You can compile up to about 16K this way; otherwise you must tell Colt to overwrite the original program as it compiles it, allowing up to 32K to be compiled, but forcing you to save and load your program every time a change is needed.\r\n\r\nColt works blindingly fast, churning out code at a rate of about 1K a second! This makes it noticeably faster than Mcoder 2 and the Softek compilers, and MUCH faster than all the others. If an error is found the line is listed with a flashing question mark, and the cursor is set so that the line pops up as soon as you press EDIT. In view of the speed of compilation, it hardly matters that Colt only finds one error at a time!\r\n\r\nUnlike the other compilers reviewed this month, Colt is an integer-only compiler, which means that arithmetic is done using whole numbers, trading accuracy for speed. If you are writing a new game the lack of floating point arithmetic should not cause many problems, but it does make it very unlikely that you will be able to compile existing BASIC programs without major changes.\r\n\r\nColt recognises the vast majority of ZX BASIC commands, although user-defined functions and arrays of more than one dimension are prohibited. Calculations are not allowed in DATA statements, and there are minor limitations on the use of AND, OR, LEN, CLEAR, RND and FOR.\r\n\r\nThe benchmark timings show that Colt produces much faster code than BLAST or Mcoder 3. Programs compiled with Colt run at roughly the same speed as those processed by Mcoder 2 or Softek's IS compiler; only ZIP produces substantially faster code.\r\n\r\nYou can use commands from the Executive in compiled programs window and sprite-handling is likely to be especially useful. Colt is the only fast compiler which recognises microdrive commands, and HiSoft claim that it can even cope with floppy disks and wafer drives so long as they use the Sinclair keywords. Of course, the compiler doesn't actually speed-up these operations it just calls the ROM like normal BASIC.\r\n\r\nFLOATING POINT (ALMOST)\r\n\r\nThere is a 'trick' way of doing floating-point arithmetic in programs compiled using Colt. If the VAL, VAL$ or STR$ functions appear in a compiled program, the interpreter is used to work out the result, so decimal maths can be used inside the string being processed. You can put:\r\n\r\nLET NUM= VAL(COS\"(21*255\")\r\n\r\nin a compiled program; the calculation is performed using full floating-point maths (at the speed of normal ZX BASIC) and then NUM is set to the whole number part of the result. If you use:\r\n\r\nLET ST$=STR$ VAL(\"7/2)\r\n\r\nthe string ST$ is set to '3.5', the correct floating point result, although there's not much you can do with it except PRINT it or use it in another VAL expression.\r\n\r\nThis would be a powerful feature but for the fact that any variable-names in VAL strings refer to BASIC variables, rather than to the variables in the compiled program. It is a useful way of passing values from BASIC to machine code, but it is often just a source of irritation, as there is no way a compiled program can set BASIC variables. You can read Colt variables from BASIC, but that's not quite the same thing....\r\n\r\nDOCUMENTATION\r\n\r\nWe looked at the pre-release version of the compiler, so the documentation was not in its final form. What we received was plentiful and interesting, although much of it might be heavy going for someone unfamiliar with the intricacies of machine code and the Spectrum ROM.\r\n\r\nThe Colt package is good value at £12.95, but it is not very easy to use it is rather idiosyncratic, like all the integer compilerrs, and various tricks and POKEs are needed to get the best from it. Colt is recommended to hardened hackers, especially if the Executive facilities fill a gap in their present armoury.\r\n\r\nBLAST\r\n£24.95 from Oxford Computer Systems (Software)\r\n[redacted]\r\n\r\nBLAST is the compiler that everyone has been waiting for, since the first advertisements appeared back in May. Billed as 'the first fully compatible optimising BASIC compiler', capable of compiling 'ANY BASIC PROGRAM, without alteration' into 'super efficient code capable of running at up to forty times the speed of BASIC'. Other advertised goodies included 'many extensions', 'genuine integer variables', 'debugging facilities', and 'a comprehensive toolkit '.\r\n\r\nWith a billing like that, we couldn't wait to get our hands on 'the complete BASIC programmer's package' . Sadly, the reality was rather different from the hype.\r\n\r\nBLAST is supplied in a large Plastic box, about the size of two Betamax video cassettes. Inside the box is a 30 page typeset handbook, of roughly A5 size.\r\n\r\nThree sides of corrections, on separate sheets, convey the first disappointment the 'MANY EXTENSIONS' touted on the lid, have not been implemented 'due to lack of memory'. As compensation, some extra features have been added to the toolkit.\r\n\r\nThe manual's content - once you've made the corrections and crossed out the pages which are now irrelevant - is quite interesting. Unfortunately there are no examples and the organisation is poor; the manual skips back and forth between subjects and contains several irritating forward references. The spelling and grammar are erratic.\r\n\r\nThe box also contains a 'protection' grid, which you are asked to refer to whenever the compiler is loaded - it contains about a thousand coloured dots. You have to identify four of them to prove that you have good eyesight and a legitimate copy of BLAST. If you make a mistake, the program crashes and you have to reload all 48K from scratch.\r\n\r\nCHEAP TOOLS\r\n\r\nThe other side of the tape contains the BLAST toolkit, which offers all the usual facilities trace, search, copy, renumber, delete, list variables and so on. As with Colt, many BASIC programmers will already own such utilities.\r\n\r\nThere were signs that the toolkit had been thrown together in rather a rush it was possible to crash the machine by careless use of Search and Replace, for instance. The special 'BLAST save' option, which writes files in small sections so that they can be read piecemeal by the compiler, does not check its parameters until after it has printed the START TAPE prompt, giving a jumbled display. There is no wait for a key press before saving begins.\r\n\r\nThe BLAST renumber command can't cope with more than 643 lines, unlike other toolkits. Most annoying is the fact that search and replace does not cope with the 'hidden numbers' in all Spectrum programs. ZX BASIC keeps the binary form of numbers stored after the text, though you can't see it when you type LIST. BLASTcan't see it either, so an attempt to replace one number with another changes the text but not the value you see the new value when you type LIST, and the old one when you run your program!\r\n\r\nBLAST OFF\r\n\r\nBLAST generates two types of code machine code, which is fast but verbose, and p-code symbolic code which is concise but runs more slowly. There is just 2.5K free once the compiler has been loaded, so you can only compile tiny programs without recourse to tape or microdrive. The toolkit is 5K long (the manual says 2K), so you can't load it at the same time as the compiler.\r\n\r\nWe tested BLAST with the eight standard benchmark programs. The machine code timings obtained are shown in the benchmark table. BLAST code is slightly faster than that from Softek's FP compiler, substantially slower than that from Mcoder 3, the other 'full' compiler, and much slower than the integer-only compilers. These results were a little surprising an 'optimising' compiler ought to be able to make mincemeat out of the benchmarks.\r\n\r\nWe tried using the p-code instead of machine code, and found that the results were up to twenty percent slower than when machine code output was selected, The big shock came when we specified that some variables were to be treated as integers - it made no difference at all!\r\n\r\nWithout this option, it is hard to believe that the promised speed up of 40 times could be achieved in real programs. An Oxford employee admitted on the 'phone that the optimisations advertised and documented in the manual were missing. We were promised a succession of upgrades, but none arrived after several weeks and repeated requests.\r\n\r\nBLAST's user-interface is good, with no need of the RAND USR calls of the compilers reviewed last month. To compile a program you type one two-character command; to run it you type another. As programs are compiled, the screen memory is used as a temporary storage area, producing a riot of flashing dots and cascading colours, which helped to pass the time during compilations, which took place at a rate of a couple of lines per second.\r\n\r\nAs a simple test of BLAST's error-detection, we gave it a program containing a spurious NEXT statement. The error was not detected as the program was compiled; when we ran the code the value sixty million million was mysteriously printed and an 'out of memory' error occurred, with no indication of the type or location of the error. To be fair, we tried the same incorrect program on the other compilers. They coped rather better, either skipping the extra NEXT or rejecting it with a 'NEXT without FOR' message.\r\n\r\nWe then limbered up our microdrive, and prepared to compile some real programs. Our first attempt came to an end after about a minute and a half, when BLAST spat out the message 'VARS TOO LONG' and crashed as soon as a command was entered. We 'phoned Oxford to ask what this meant, but they wouldn't say. Another upgraded copy of the compiler was promised, but, a fortnight later, it hasn't turned up.\r\n\r\nWe tried the same thing again, and found a rather silly bug - BLAST crashes if the file which it is asked to write already exists. After re-loading, looking up the colours and so on, we checked that the compiler acted sensibly if the input file was missing. It didn't it crashed, again.\r\n\r\nWe tried another published BASIC game, which Mcoder 3 had compiled successfully. After 852 seconds (they said BLAST worked in 'seconds') the compiler stopped, complaining 'SYSTEM ERROR 1'.\r\n\r\nIt was a relief to find a simple Program (Spectrum Autosonics, published by Buttercraft way back in 1982) that BLAST was able to compile. Or at least, BLAST chugged all the way through the code and produced an output file. When we tried to run it, following the instructions to the letter, guess what?\r\n\r\nThe machine crashed.\r\n\r\nWe couldn't find a single, non-trivial program that BLAST would compile.\r\n\r\nIn case you haven't already got the drift, the performance of BLAST is pretty shocking; we wonder what those who have already paid £24.95 for a copy must think. The program seems to have been launched almost totally untested the documentation and the advertising bear little relation to the product.\r\n\r\nNot so much a BLAST, more of a Phut.\r\n\r\nMCODER 3\r\n£12.95 from PSS\r\n[redacted]\r\n\r\nMcoder 3 arrived shortly before this review was finished. It was first published in France last year, by an outfit called Ere Infomatique. Now PSS have bought UK rights and renamed it Mcoder 3, though it has nothing in common with earlier Mcoders. It is an interesting program, which operates quite differently from the others on the UK market.\r\n\r\nWe looked at a French copy of the compiler, with documentation to match - 'Vous venez de transformer un program BASIC en language machine', it chirps in fluent Franglais. The cassette cover features a wonderful picture of a circuit assembly being sucked through a funnel - I hope PSS use this on the UK version. They are working on an expanded English manual, but in fact Meader 3 doesn't need much documentation, since it compiles just about all of ZX BASIC, with very few idiosyncrasies.\r\n\r\nMcoder 3 is a full floating-point compiler, to be compared with BLAST and Softek's (rather more restricting) FP program. The compilation process is more long-winded than Softek's, as the compiler must be loaded in two sections every time a compilation is required. No instructions are provided on how to make a working copy, which is a mistake since the master tape is likely to get quite a thrashing; there is a spare copy on the other side of the cassette.\r\n\r\nYou can compile programs of up to about 25K with Mcoder 3. The snags are that you can't compile from microdrive or tape (there is no support for Interface 1 commands) and you lose your original program as it is compiled.\r\n\r\nThe only restrictions from standard ZX BASIC are that arrays must have constant dimensions (rather than dimensions worked out by the program) and they can only be dimensioned once. MERGE and LIST are not allowed in compiled programs, since there's no program text after compilation, and RUN and CLEAR reset variables to null or zero rather than forget them completely.\r\n\r\nUSING MCODER 3\r\n\r\nBefore using Mcoder 3 you should load your BASIC as normal. Then type LOAD \"\" CODE and play the compiler cassette for about forty seconds. This loads the first part of the compiler, which checks for errors (reporting only one at a time, but leaving your BASIC in memory), deletes comments and generally tidies up before the real work begins. One nice feature is that REMs at the start of a program are retained, in case they contain machine code. Likewise DATA and DEF FN statements are kept in their original form, though they can be called from compiled programs.\r\n\r\nA succession of messages flash up as the tidying process takes place - then the compiler prints PLAY and you can load the rest of Mcoder3, which takes about 20 seconds. Mcoder 3 generates code at about the same rate as BLAST; it took a total of twelve minutes to compile a 16K program. As compilation takes place, the line number being analysed is displayed at the bottom of the screen.\r\n\r\nWhen compilation is complete, you are left with a listing containing initial comments, DATA, function definitions and a single REM concealing the compiled code. You can start the program from any line with GO TO (so long as you have the original listing to hand); Break is allowed (unlike Softek's FP compiler) and error messages even contain BASIC line numbers. You can print and alter variables used in compiled programs in the normal way, but CONTINUE doesn't work (you have to use GO TO). RUN, DIM and CLEAR may corrupt the code if used after compilation.\r\n\r\nThe benchmark timings show that Mcoder 3 produces quite fast code - it gives substantially better results than BLAST and FP, and this is especially noticeable when 'real' programs are compiled.\r\n\r\nThe bad news is that Mcoder3 seems to have a few bugs:\r\n\r\nINK RND*5\r\n\r\ngave an error when run in compiled form, presumably because the compiler does not automatically round results to a whole number, as normal BASIC does. This snag was not hard to get around - we just added an INT statement in the line which Mcoder 3 indicated to be the source of the problem - but it is an incompatibility which should not be present.\r\n\r\nWe also had problems with strings getting corrupted as one compiled game ran. We discussed this by telephone with the publishers in France, but we were unable to work out a fix, or even diagnose the cause. Other string-handling programs worked fine.\r\n\r\nDespite these flaws, Mcoder3 is the only compiler we have looked at that has been able to compile 'off the shelf' programs with a reasonable degree of success. Softek's FP compiler restricts the use of GO TO, GO SUB, arrays, functions and logical operators (AND and OR), and this meant that it would only cope with very straight-forward programs. BLAST was a waste of time.\r\n\r\nCONCLUSIONS\r\n\r\nIt is surprising how well the old compilers have stood the test of time - perhaps this is because software houses underestimate the task of testing a compiler properly. ZIP still produces the fastest code at the lowest price, though it works slowly and lacks strings. Softek's IS, and Mcoder 2 are still Good value, although Colt provides a lot of extra features for three pounds more. Softek say that they will enhance FP to remove some of the restrictions (already VAL and VAL$ are allowed). but they'll have their work cut out to catch up with Mcoder 3. BLAST can only be recommended to masochists.\r\n\r\nSerious games writers might do best by using a mixture of two compilers - one to handle the majority of the code, with a few restrictions, and an integer compiler to process high-speed sections. A discounted package offering IS and FP is in the offing, though users should bear in mind that Mcoder 2, IS, FP, and Colt are mutually incompatible since they all use the same memory to store run-time routines.\r\n\r\nIt is certainly possible to write hit games with a BASIC compiler - Virgin's Sorcery and PSS's Frank N Stein prove that - but there are still times when only machine code can deliver the goods. If you're a hardened hacker, this may come as some relief!\r\n\r\n* The review of BLAST printed here used version 2.0 of the program, borrowed from CRASH Mail order, As we went to press, a review copy of BLAST version 3_0 arrived - and we had a quick look... The bugs that made the compiler we reviewed incapable of coping with non-trivial programs have been fixed, it seems. Some of the benchmark timings have improved, but BLAST 3.0 still produces consistently slower code than Mcoder 3.\r\n\r\nIt appears that the integer option still has no effect, and indeed there are no signs that the other advertised optimisations are taking place. We would warn potential purchasers of BLAST to make sure that the versions they buy are at least 3.0 or above.\r\n\r\nWith Version 3.0 there's only 2K free for compiling in memory. We still can't recommend BLAST to anyone without microdrives: as the manual says, 'if you have large programs to compile and no microdrive we strongly advise that you get one...'\r\n\r\nIf you have already purchased an early copy of BLAST, Oxford Computer Systems will happily exchange your copy for version 3.0, their PR company tells us.","ReviewerComments":[],"OverallSummary":"","Page":"88,89","Denied":false,"Award":"Not Awarded","Reviewers":[],"ScreenshotText":[{"Text":"The PR Picture that comes with BLAST. The suggested caption states that BLAST is the new basic compiler for any Sinclair machine. (!) It doesn't work too well on the Spectrum - and is a total non-runner on Sinclair's ZX80, ZX81 and QL machines! The picture doesn’t reveal the 3 sides of corrections, apologies and errata that come with the package OR the large number of other corrections which are needed before the manual becomes an accurate description of the program."}],"BlurbText":[{"Text":"BENCHMARK TESTS - Comparing the compilers\r\n\r\nEight standard BenchMark programs were used in the comparison: timings for the execution of each benchmark program are given in seconds, with the speedup ratios achieved by each of the compilers printed on a grey background.\r\n\r\nBM1\r\nZX BASIC: 4.9\r\nBLAST: 6.3x / 0.78\r\nCOLT: 94x / 0.052\r\nMCODER3: 42x / 0.118\r\n\r\nBM2\r\nZX BASIC: 9.0\r\nBLAST: 4.7x / 1.93\r\nCOLT: 83x / 0.108\r\nMCODER3: 10.7x / 0.84\r\n\r\nBM3\r\nZX BASIC: 21.9\r\nBLAST: 2.7x / 8.2\r\nCOLT: 37x / 0.60\r\nMCODER3: 3.3x / 6.7\r\n\r\nBM4\r\nZX BASIC: 20.7\r\nBLAST: 2.1x / 9.7\r\nCOLT: 23x / 0.89\r\nMCODER3: 3.1x / 6.7\r\n\r\nBM5\r\nZX BASIC: 25.2\r\nBLAST: 2.5x / 9.9\r\nCOLT: 27x / 0.92\r\nMCODER3: 3.7x / 6.8\r\n\r\nBM6\r\nZX BASIC: 68.2\r\nBLAST: 4.3x / 15.8\r\nCOLT: 52x / 1.3\r\nMCODER3: 7.7x / 8.9\r\n\r\nBM7\r\nZX BASIC: 86.7\r\nBLAST: 4.4x / 19.6\r\nCOLT: 50x / 1.72\r\nMCODER3: 8.8x / 9.9\r\n\r\nBM8\r\nZX BASIC: 25.1\r\nBLAST: 1.07x / 23.5\r\nCOLT: 0x / -\r\nMCODER3: 1.13x / 22.2"}],"TranscriptBy":"Chris Bourne","ReviewScores":null,"CompilationReviewScores":[]},{"Issue":{"Name":"Sinclair User Issue 43, Oct 1985","Price":"£0.95","ReleaseDate":"1985-09-19","Editor":"Bill Scolding","TotalPages":132,"HasCoverTape":false,"FlannelPanel":"EDITORIAL\r\nEditor: Bill Scolding\r\nDeputy Editor: John Gilbert\r\nStaff Writer: Chris Bourne, Clare Edgeley\r\nDesigner: Craig Kennedy\r\nEditorial Secretary: Norisah Fenn\r\nPublisher: Neil Wood\r\n\r\nADVERTISING\r\nAdvertising Manager: Louise Fanthorpe\r\nDeputy Advertisement Manager: Shahid Nizam\r\nAdvertisement Sales Executive: Kathy McLennan\r\nProduction Assistant: Jim McClure\r\nAdvertisement Secretary: Linda Everest\r\n\r\nMAGAZINE SERVICES\r\nSubscriptions Manager: Carl Dunne\r\n\r\nTELEPHONE\r\nAll departments [redacted]\r\n\r\nSinclair User is published monthly by EMAP Business & Computer Publications\r\n\r\nCover Photograph: Henry Arden\r\n\r\nIf you would like to contribute to Sinclair User please send programs or articles to:\r\nSinclair User\r\nEMAP Business & Computer Publications\r\n[redacted]\r\n\r\nOriginal programs should be on cassette and articles should be typed. We cannot undertake to return them unless a stamped-addressed envelope is included.\r\n\r\nWe pay £20 for each program printed and £50 for star programs.\r\n\r\nTypeset by Saffron Graphics Ltd, [redacted]\r\nPrinted by Peterboro' Web, [redacted]\r\nDistributed by EMAP Publications Ltd.\r\n\r\n©Copyright 1985 Sinclair User ISSN No 0262-5458\r\n\r\n102,023 Jan-Jun 1985"},"MainText":"EXPLODING INTO CODE\r\n\r\nMarcus Jeffrey turns the heat on the Blast compiler\r\n\r\nPublisher: Oxford Computer Systems, [redacted]\r\nPrice: £24.95\r\nMemory: 48K\r\n\r\nIf you have ever written a Basic program, or if you have ever owned a Basic program, you can probably find a use for the Blast compiler.\r\n\r\nWhen you run a Basic program it is interpreted by the Spectrum, one line at a time. The advantage of compiling the code is that the entire Basic program is converted into machine code before it is run, giving a much faster execution time.\r\n\r\nBlast arrives on cassette with a 30-page user manual. You can also backup Blast onto microdrive. Now to speed up those sluggish programs, though you are not likely to be able to do a lot with less than 3K of memory available!\r\n\r\nUnfortunately, in order to create such a sophisticated compiler, the programmers have used nearly all of the available memory. So, if you want to compile a program of any reasonable size, you will have to compile from tape-to-tape - or microdrive.\r\n\r\nCompiling on the Spectrum can be very prolonged, especially using tapes. In that case, you first have to load in the toolkit and make a special copy of the program to be compiled onto tape. You then start compilation, and the computer constantly prompts you to change the tapes over.\r\n\r\nThe main selling points of Blast are its speed and Basic compatibility. We put it through its paces. Programs can be compiled into either pure machine code or the more compact 'p-code'. OCS claims a speed increase of up to a factor of 40. Try as we might we could not get even close to that, whatever instructions we included. Nevertheless, you can expect a minimum speed increase of between five and 10 times for most situations.\r\n\r\nBlast is said to be able to compile all Basic programs. That includes those which call user-written machine code routines, and even those using Basic extensions.\r\n\r\nWe tried out a number of programs, and all but one worked correctly. We have still no idea why that one program posed problems. The assumption must be that Blast is pretty clever and will compile most, but not quite all, programs.\r\n\r\nBlast was initially to have included a number of highly optimised Basic- extensions, such as WHILE..WEND, REPEAT..UNTIL, IF..THEN..ELSE and multi-line recursive functions. Unfortunately due to space restrictions those were not included - a great loss. Instead, supposedly as compensation, Oxford Computer Systems has programmed a couple of extra - and in comparison useless - additions to the toolkit, included on the reverse of the cassette. These are shown in figure one.\r\n\r\nBlast does have its drawbacks, but its flexibility for such a wide range of programming applications makes it a must for the serious programmer.","ReviewerComments":[],"OverallSummary":"","Page":"37","Denied":false,"Award":"Not Awarded","Reviewers":[{"Name":"Marcus Jeffrey","Score":"5","ScoreSuffix":"/5"}],"ScreenshotText":[],"BlurbText":[{"Text":"FIGURE 1. TOOLKIT COMMANDS\r\n\r\n*E n1 - Edit line n1\r\n*J n1 - Joins line n1 to the subsequent line\r\n*C n1,n2 - Copy line n1 to n2\r\n*C <range>,n - Copy the range of lines to n onwards\r\n*D nl - Delete line nl.\r\n*D <range> - Delete the line range.\r\n*M nl n2 - Move line nl to n2.\r\n*M <range>,n - Move the range of lines to n onwards.\r\n*R <range>,nl,n2 - Renumber the line range, starting at n 1 with step n2.\r\n*F <range>,string - Find and string in the line range.\r\n*S <range>,sl,s2 - Find and replace string s1 with s2 in the line range.\r\n*G - Turn on Global find and search.\r\n*A - Turn on Accept find and search (prompts user at each\r\nmatch).\r\n*V - Lists a number of useful system variables.\r\n*L - Lists all currently defined BASIC variables, including their\r\nvalues.\r\n*T - Start BASIC trace. <Space slows execution. <Enter> halts execution.\r\n*U - Stop BASIC trace.\r\n*K - Kill REM statements (other than the special command\r\nREMS).\r\n*W <range>,<file> - SAVE the range of lines to cassette.\r\n*B <file> - SAVE the current program to cassette in a form suitable for Blast compilation (tape-to-tape).\r\n*Q - Quit the toolkit.\r\n\r\nNote: The toolkit requires approximately 2K of memory, and cannot be used at the same time as Blast."}],"TranscriptBy":"Chris Bourne","ReviewScores":[{"Header":"Overall","Score":"5/5","Text":""}],"CompilationReviewScores":[]},{"Issue":{"Name":"Sinclair User Issue 45, Dec 1985","Price":"£0.95","ReleaseDate":"1985-11-18","Editor":"Bill Scolding","TotalPages":156,"HasCoverTape":false,"FlannelPanel":"EDITORIAL\r\nEditor: Bill Scolding\r\nDeputy Editor: John Gilbert\r\nStaff Writers: Chris Bourne, Clare Edgeley\r\nDesigner: Gareth Jones\r\nEditorial Secretary: Norisah Fenn\r\nPublisher: Neil Wood\r\n\r\nADVERTISING\r\nAdvertising Manager: Louise Fanthorpe\r\nDeputy Advertisement Manager: Shahid Nizam\r\nAdvertisement Sales Executive: Kathy McLennan\r\nProduction Assistant: Jim McClure\r\nAdvertisement Secretary: Linda Everest\r\n\r\nMAGAZINE SERVICES\r\nSubscriptions Manager: Carl Dunne\r\n\r\nTELEPHONE\r\nAll departments [redacted]\r\n\r\nSinclair User is published monthly by EMAP Business & Computer Publications\r\n\r\nCover Photograph: Spitting Image Productions Ltd.\r\n\r\nIf you would like to contribute to Sinclair User please send programs or articles to:\r\nSinclair User\r\nEMAP Business & Computer Publications\r\n[redacted]\r\n\r\nOriginal programs should be on cassette and articles should be typed. We cannot undertake to return them unless a stamped-addressed envelope is included. Please write 'Program Printout' on the envelopes of all cassettes submitted.\r\n\r\nWe pay £20 for each program printed and £50 for star programs.\r\n\r\nTypeset by Saffron Graphics Ltd, [redacted]\r\nPrinted by Peterboro' Web, [redacted]\r\nDistributed by EMAP Publications Ltd.\r\n\r\n©Copyright 1985 Sinclair User ISSN No 0262-5458\r\n\r\n102,023 Jan-Jun 1985"},"MainText":"SPEED TRIALS\r\n\r\nMarcus Jeffrey compares contenders in the battle of the Spectrum compilers.\r\n\r\nBLAST BASIC COMPILER\r\nPublisher: Oxford Computer Systems, [redacted].\r\nTel: 0993-812700\r\nPrice: £24.95\r\n\r\nMCODER III\r\nPublisher: PSS, [redacted]\r\nTel: 0203-667556\r\nPrice: £12.95\r\n\r\nTHE COLT\r\nPublisher: Hisoft, [redacted]\r\nTel: 0582-696421\r\nPrice: £12.95\r\n\r\nSince our recent review of the Blast Basic compiler for the Spectrum, two new compilers have hit the market.\r\n\r\nThe first is known as The Colt, from Hisoft, and was written by the author of the two compilers Mcoder I and Mcoder II, which were previously released by PSS. Meanwhile PSS has brought out a different compiler, thought to be a French product, which it has confusingly called Mcoder III.\r\n\r\nWe decided to put both those new releases up against Blast, which has been receiving some bad publicity of late, to see how they fared.\r\n\r\nThe Colt is a fast integer only compiler, and speed-wise came out as the best of the three. That is not surprising when you consider that apart from BEEP, CIRCLE and DRAW statements, it can only use integer arithmetic - integer numbers in the range -32768 to 32767. That isn't quite true, because you can still access floating point arithmetic via VAL and STR$ statements, but those can't really be used effectively.\r\n\r\nIn addition to being integer only, there are quite a few other Spectrum commands which The Colt cannot handle. Those include multi-dimensional arrays - making the use of string arrays particularly difficult, CLEAR to lower RAMTOP for machine code or data, and user-defined functions.\r\n\r\nOn the other hand, The Colt does include a fair selection of extras, which enhance not only compiled code, but also interpreted Spectrum Basic. Those are all part of a suite of routines known collectively as the Executive which sits at the top of memory until the user needs the space, and removes it.\r\n\r\nThe Executive allows a whole multitude of new commands, including sprite graphics, windowing with scrolling and colour commands, keyboard scanning, machine code parameter passing, error handling, a trace facility and a multi-line delete.\r\n\r\nMoving on, Mcoder III from PSS is more in a line with the Blast compiler, being able to handle most Spectrum Basic, including floating point arithmetic. There are a few commands which Mcoder III can't cope with. Those include redimensioned arrays, or arrays which are dimensioned with a variable, rather than a constant.\r\n\r\nIt's all very well telling you that one compiler will compile something, whilst another compiler won't, but that doesn't help you decide which to buy. We decided to test them all out using your own programs. In the Program Printout section of this issue are three programs: Body Blow, Power Paint and King Fisher. How did the compilers fare with these?\r\n\r\nKing Fisher was found to be by far the easiest, and both Blast and Mcoder III were able to compile the program without trouble. Both of the compiled versions were significantly quicker, although nowhere near the speed increases you are likely to see the publishers claiming. The failure in this case, after a valiant effort, was The Colt.\r\n\r\nThe Colt was also the only failure with Body Blow. This software again showed some improvement in speed with Blast and Mcoder III, but was limited by the high rate of user input necessary in this particular program.\r\n\r\nFinally, both The Colt and Mcoder III failed abysmally with the drawing package, Power Paint. The Colt threw up errors - non-compilable code - all over the place, reaching the point where the program needed rewriting to compile it. Mcoder III, on the other hand, completed its syntax check without error, then stopped whilst trying to compile the code, on a line which PEEKed from screen memory.\r\n\r\nOn a more successful note, Blast handled the compilation perfectly, and significantly improved the program speed, though again, not by as much as Oxford Computer Systems would have you believe.\r\n\r\nAs well as those three programs, we tested the compilers on a range of additional programs designed to test their speed, rather than Spectrum BASIC compatibility. In those tests, The Colt really came into its own.\r\n\r\nThe Colt was able to give an average speed increase of approximately 17 times faster than Basic, whilst Mcoder III and Blast gave a factor of around 12 times normal speed.\r\n\r\nPSS' Mcoder III was marginally faster than Blast in the trials, but Blast was being used in its default p-code mode. That gives a compact sub-code, which is then interpreted into Z80 machine code. If space was no problem, then setting machine code mode would probably improve the speed factor further.\r\n\r\nIf you are intending to write your own programs from scratch, fitting into less than 30K, and not needing floating point arithmetic, then The Colt must be highly recommended.\r\n\r\nBoth Blast and Mcoder III can handle floating point arithmetic, appear to give similar speed increases, and are able to handle the majority of Spectrum Basic. Mcoder III is a lot cheaper, and would be recommended to cassette users.\r\n\r\nFinally, Blast, although much dearer than its rivals, emerges as a superior product. Having tried it out on a wide range of programs, it was able to compile them all, including the failure from the previous review.","ReviewerComments":[],"OverallSummary":"","Page":"87","Denied":false,"Award":"Not Awarded","Reviewers":[{"Name":"Marcus Jeffrey","Score":"5","ScoreSuffix":"/5"}],"ScreenshotText":[],"BlurbText":[],"TranscriptBy":"Chris Bourne","ReviewScores":[{"Header":"Overall","Score":"5/5","Text":""}],"CompilationReviewScores":[]},{"Issue":{"Name":"Your Computer Issue 11, Nov 1985","Price":"£1","ReleaseDate":"1985-10-17","Editor":"Toby Wolpe","TotalPages":132,"HasCoverTape":false,"FlannelPanel":"Editor: Toby Wolpe\r\nAssistant Editor: Meirion Jones\r\nProduction Editor: Ian Vallely\r\nSoftware Editor: Simon Beesley\r\nCommercial Software Editor: Paul Bond\r\nEditorial Assistant: Lee Paddon\r\nEditorial Secretary: Lynn Dawson\r\nEditorial: [redacted]\r\nAdvertisement Manager: Nick Ratnieks\r\nAssistant Advertisement Manager: Ken Walford\r\nAdvertisement Executive: Kay Filbin\r\nNorthern Office: Chris Shaw\r\nAdvertisement Secretary: Maxine Gill\r\nClassified: Susan Platts\r\nPublisher: Gavin Howe\r\n\r\nYour Computer, [redacted]\r\n©Business Press International Ltd 1985\r\n\r\nPrinted in Great Britain for the proprietors of Business Press International Ltd, [redacted].\r\nISSN 0263-0885\r\nPrinted by Riverside Press Ltd, [redacted], and typeset by Instep Ltd, [redacted]\r\n\r\nSubscriptions: U.K. £14 for 12 issues.\r\nSubscription Enquiries: [redacted]\r\n\r\nABC 131,769 June-December 1984."},"MainText":"Spectrum 48K\r\nOCS\r\nUtility\r\n£26.95\r\n\r\nThe idea of writing a game in Basic and then getting some dumb compiler to speed it up for you is enough to make some machine code purists take to the veil. But, for the rest of us, this utility could put an end to long nights hunting for an elusive bug which resets the machine when you shoot the fifth invader from the left on the third screen. There have been several Spectrum compilers before, but none have claimed to be as comprehensive as this.\r\n\r\nOn loading up, you are greeted with the cheery message that around 2K of the memory is free. So, any program to be compiled must be loaded section by section, compiled, and then saved; Microdrives are a must here. You can either compile into machine code, or p-code. P-code has the advantage of being more compact than machine code, or even sometimes Basic, and, as an undocumented language, may be fairly secure against hacking.\r\n\r\nHowever, it is slower; for this reason, sections of the program can be compiled into machine code. Obviously there are some things which are best done in machine code, and Blast allows users to call machine-code subroutines, and will compile user extensions to Basic. The package is supposed to contain extra Basic commands, but these have been left out due to space; but you do get a useful toolbox of editing commands.\r\n\r\nIt is difficult to gauge the performance of this program. OCS claim that speed improvements of up to 40 times are possible. This obviously depends on the length of the program, the amount of calculation, and the way the program is written. The manual is currently undergoing revision, but the version with the review copy was hard work. Despite this, it seems that Blast has lived up to expectations, and is by far the best Spectrum compiler on the market. OCS is on [redacted].","ReviewerComments":[],"OverallSummary":"","Page":"39,41","Denied":false,"Award":"Not Awarded","Reviewers":[{"Name":"Lee Paddon","Score":"4","ScoreSuffix":"/5"}],"ScreenshotText":[],"BlurbText":[],"TranscriptBy":"Chris Bourne","ReviewScores":[{"Header":"Overall","Score":"4/5","Text":""}],"CompilationReviewScores":[]},{"Issue":{"Name":"ZX Computing Issue 22, Dec 1985","Price":"£1.95","ReleaseDate":"1985-11-28","Editor":"Ray Elder","TotalPages":124,"HasCoverTape":false,"FlannelPanel":"Editor: Ray Elder\r\nEditorial Assistant: Cliff Joseph\r\nGroup Editor: Wendy J Palmer\r\nSoftware Assistant: John Gerard Donovan\r\nSales Executive: Alice Robertson\r\nAdvertisement Manager: Barry Bingham\r\nDivisional Advertising Manager: Chris Northam\r\nCopy Controller: Sue Couchman\r\nPublishing Director: Peter Welham\r\n\r\nOrigination and design by MM Design & Print, [redacted]\r\nPublished by Argus Specialist Publications Ltd, [redacted]\r\n\r\nZX Computing is published bi-monthly on the fourth Friday of the month. Distributed by: Argus Press Sales & Distribution Ltd. [redacted]. Printed by: Garnett Print, Rotherham and London.\r\n\r\nThe contents of this publication including all articles, designs, plans, drawings and programs and all copyright and other intellectual property rights therein belong to Argus Specialist Publications Limited. All rights conferred by the Law of Copyright and other intellectual property rights and by virtue of international copyright conventions are specifically reserved to Argus Specialist Publications Limited and any reproduction requires the prior written consent of Argus Specialist Publications Ltd.\r\n\r\n©Argus Specialist Publications Limited 1985"},"MainText":"ZAPPING YOUR GRAPHICS\r\n\r\nZX looks at some utilities that can help put some life into your graphics displays.\r\n\r\nAlthough this is not technically or specifically a graphics program, I feel that much of its use will be for speeding up games and so decided to include it here. BLAST has been advertised for some time now and several versions exist.\r\n\r\nThe advertising seems to be a little optimistic, I was moved to comment in the last issue in the 'All Sinclair Machines' claim and of course it does not work on the QL or ZX81 but on all 48K versions of the Spectrum. It was an ambitious project and very nearly succeeds in their claim to 'compile any BASIC program', the program to do this takes up all but 2K of the Spectrum's memory. So now you have another problem, who wants to compile programs of only 2K or less? The answer that OCS came up with was to provide an extra TOOLKIT program. As a toolkit it is probably the most feeble available, however it allows you to save the program that you want to compile in a special format onto tape or microdrive.\r\n\r\nSo, you load Toolkit, load your program, save your program in the special form on tape then move on to phase two. This consists of loading BLAST and starting the compiler. This is very easy if time consuming, the program prompts for starting the tape and stopping, compiles each block, and when it is ready tells you to change tapes and save what it has done so far. This sounds complicated but is easy in practice. It is much easier on a twin microdrive system and OCS 'strongly urge' you to get one.\r\n\r\nThere are two forms of compiled code, p-code which is a sort of half way between machine code and BASIC and has the advantage of using less memory than either m/c or the original BASIC but, though faster than BASIC, is slower than m/c. The second is real machine code, this is usually larger than its Basic original (unusual) but faster than p-code.\r\n\r\nA useful feature is AUTO RUN which makes compiled pro grams hard to break and copy. Not so good is the fact that the planned extensions to BASIC had to be abandoned due to lack of room, to make up for it a few more mediocre additions were made to the toolkit program.\r\n\r\nDespite some reservations, BLAST is by far the best compiler we have seen (so far), it worked perfectly with all the programs we tried. I'm not too sure I like the over-optimistic advertising claims and one or two of our readers have written to tell us of problems they have had These do seem to be with specialist applications and if you are not intending to use it for general programs but for some with vast amounts of data for example, then it is best to phone or write to get confirmation that will do exactly what you require.\r\n\r\nOxford Computer Systems (Software) Ltd. £24.95.","ReviewerComments":[],"OverallSummary":"","Page":"42","Denied":false,"Award":"Not Awarded","Reviewers":[],"ScreenshotText":[],"BlurbText":[],"TranscriptBy":"Chris Bourne","ReviewScores":null,"CompilationReviewScores":[]},{"Issue":{"Name":"Your Spectrum Issue 19, Oct 1985","Price":"£0.95","ReleaseDate":"1985-09-19","Editor":"Kevin Cox","TotalPages":66,"HasCoverTape":false,"FlannelPanel":"Editor: Kevin Cox\r\nArt Editor: Phoebe Evans\r\nDeputy Editor: Peter Shaw\r\nProduction Editor: Louise Cook\r\nDesigner: Martin Dixon\r\nEditorial Consultant: Andrew Pennell\r\nSoftware Consultant: Gavin Monk\r\nContributors: Stephen Adams, Ross Holman, Tony Samuels, Ian Beardsmore, Chris Wood, Rick Robson, Dougie Bern, Chris Somerville, Max Phillips, Phil South, Stuart Jamieson, Christopher Hardy, Peter Freebrey, Dave Nicholls\r\nAdvertisement Manager: David Baskerville\r\nProduction Manager: Sonia Hunt\r\nGroup Advertisement Manager: Chris Talbot\r\nManaging Editor: Roger Munford\r\nArt Director: Jimmy Egerton\r\nPublisher: Stephen England\r\n\r\nPublished by Sportscene Specialist Press Ltd, [redacted] Company registered in England. Telephone (all departments): [redacted]\r\nTypesetters: Carlinpoint [redacted]\r\nReproduction: Graphic Ideas, London\r\nPrinters: Chase Web Offset [redacted]\r\nDistribution: Seymour Press [redacted]\r\n\r\nAll material in Your Spectrum ©1985 Felden productions, and may not be reproduced in whole or in part without the written consent of the publishers. Your Spectrum is a monthly publication."},"MainText":"BLASTING BASIC\r\n\r\nBlast is a compiler: a utility that takes Speccy Basic and turns it into machine code - or that's the theory anyway. A pretty good idea, you're thinking - unfortunately, it isn't quite that simple. Others have tried to write compilers before but nobody seems to have quite got it right yet. The major failing of the packages on the market is their inability to compile certain instructions.\r\n\r\nSo, what's all the fuss about Blast for? Well, its major selling point is that it claims to compile 100 per cent of Basic programs. So, how, one wonders, does it manage it? Well, you can compile your programs using Blast in two forms. Firstly, it'll compile to machine code but the coding isn't very efficient and it'll use up more memory than the original program. So, its other option is lo compile to a language called P Code that uses up less memory but still has to be interpreted in the same way as Basic. But, it is faster than Basic though slower than machine code, so it's most useful when compiling really lengthy programs where space is at a premium.\r\n\r\nBoth machine code and P Code require some 5K of Blast to be present when the code is called, so if you're compiling a short Basic program then you'll probably find that the program will grow in size by quite a large amount.\r\n\r\nIf either the program to be compiled or the compiled code is too large to fit in memory then Blast can be instructed to take its source code from tape or Microdrive rather than RAM. The compiled program can also be written to any of these three. Compiling via tape is not only very slow, but awkward.\r\n\r\nCompiling to Microdrive is worthwhile though, as Blast will happily access the drives as it needs to, without any instructions from you.\r\n\r\nSo, what of this claim that Blast can compile 100 per cent of Basic programs? Well, to test it out, I dug out a selection of four of my old Basic programs - some short, and others long just to see what Blast could do with them. My results were not too promising - two of the programs crashed when executed and the other two, although happily compiled by Blast, didn't seem to show any dramatic increase in speed, and nowhere near the claimed 40 percent speed increase.\r\n\r\nOn the B side of the tape comes a bonus in the shape of a toolkit. It includes features such as Copy line, Block move, Search and Replace, Trace and so on. Nothing special in other words. Really, until the bugs are ironed out, I'm not convinced that Blast yet justifies its £25 price tag, even with the freebies.","ReviewerComments":[],"OverallSummary":"","Page":"13","Denied":false,"Award":"Not Awarded","Reviewers":[{"Name":"Tony Samuels","Score":"","ScoreSuffix":""}],"ScreenshotText":[],"BlurbText":[],"TranscriptBy":"Chris Bourne","ReviewScores":null,"CompilationReviewScores":[]}]}]