[{"TitleName":"Spectrum Monitor","Publisher":"Picturesque","Author":"","YearOfRelease":"1982","ZxDbId":"0008750","Reviews":[{"Issue":{"Name":"ZX Computing Issue 4, Dec 1982","Price":"£1.75","ReleaseDate":"1982-11-26","Editor":"Tim Hartnell","TotalPages":132,"HasCoverTape":false,"FlannelPanel":"ZX Computing\r\nVol. One\r\nNumber Three\r\nOct/Nov 1982\r\n\r\nEditor: Tim Hartnell\r\nEditorial Assistant: Helen Bruff\r\nAdvertising Manager: Neil Johnstone\r\nManaging Editor: Ron Harris\r\nManaging Director: T J Connell\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: Henry Garnett Ltd., Rotherham.\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 the Argus Specialist Publications Ltd.\r\n\r\n©1982 Argus Specialist Publications Limited."},"MainText":"A LITTLE BUG\r\n\r\nWhen you're tired of BASIC, you may turn to machine code. Paul Holmes looks at a number of 'tools' to help you with entering and running machine code.\r\n\r\nEntering machine code using tedious and slow BASIC loaders is tiresome, and you're likely to start looking for something to lend a hand. Here are the latest machine code monitors for the Spectrum.\r\n\r\nDISASSEMBLE FUNCTION\r\n\r\nOne thing which every editor needs is a disassemble option. With this the user can check that all the code he entered was actually the code he wanted to enter, and by disassembling his program he can check it against his original listing. All three of the editors reviewed had this facility, some performed it in a more useful manner by calculating the addresses for relative jumps. Both ZX BUG and SPECTRUM Monitor use 'Z' to access the disassemble function. One point about the ZX BUG that was annoying was that to get a printer copy of the disassembly you had to exit (using 'X') then type 'COPY'. This meant that the X command got copied as well, causing a break if a long listing is needed. The SPECTRUM Monitor politely asks 'PRINTER?' in a similar manner to the 'SCROLL?' message used in BASIC.\r\n\r\nINSTRUCTIONS\r\n\r\nThe best manual by far was for the SPECTRUM Monitor by Picturesque. It was pleasantly written and very thorough, the sort of quality one expects when buying a complex package like this. By contrast the instructions for Artic's ZX BUG were squashed onto the back of the cassette inlay. For the experienced user this is just about acceptable but for a newcomer to machine code this could leave them baffled. The commands on all three are accessed by a single keypress, SPDE also has an optional menu to refer to which can be summoned to the screen at any time. The instructions for SPDE are contained in the program and give details of the program's operation and how to use it.\r\n\r\nBoth ZX BUG and SPECTRUM Monitor, on loading, relocate themselves above RAMTOP and do not depend on a BASIC master program. This gives the user the advantage of being able to write programs in BASIC that use machine code subroutines developed on the editor. With ZX BUG one has to be careful because the machine code is loaded from a dud line (a line with a ridiculously high line number so that it isn't listed) to the top of RAM. That dud line is left behind and so invisibly uses up 4K of your BASIC workspace. To remove it one must first set RAMTOP to 7100 Hex then type NEW. SPDE requires a BASIC master program and so is therefore not quite as versatile.\r\n\r\nZX BUG, or is it SPECTRUM BUG? I'm not sure because my review copy had ZX BUG on one part of the inlay, SPECTRUM BUG on another and ZX BUG 2 on another part. Confusing isn't it? ZX SPECTRUM BUG 2 (GLS!!) had the most functions by far comprising of single and double byte searches, breakpoint system, register display, String entry, byte modification, copy, byte print (on screen only), character print and many more. One of the commands is a block SAVE command which saves a block of memory in the usual way but can only be reloaded using the complimentary LOAD command (abbreviated to 'L'). No file names are allowed.\r\n\r\nOne feature which SPECTRUM 2 ZX BUG lacked was a Hex-Decimal/Decimal-Hex conversion function. In my opinion this is a highly useful feature, since at sometime you are likely to want to call your proud piece of code from BASIC using a Decimal number and it is highly frustrating to have to convert it each time for each program or address. Both the other two editors included this feature which I was pleased to see. SPDE seemed to be lacking a comprehensive range of commands and only the actual nitty-gritty seemed to be by machine code subroutines.\r\n\r\nEDITING AND DEBUGGING\r\n\r\nThough one would expect the editors for the Spectrum to be an improvement on those for the ZX81 this has not been the case. I used Bug Byte's ZXDB for editing and debugging machine code on my ZX81 and found that editor exceptional, having a single step facility allowing one to monitor everything but the kitchen sink. It was something of a disappointment therefore, when I discovered that none of the three review packages had any such useful features. Being able to trace machine code step by step is immensely useful when bugs arise, so I am waiting with baited breath for Bug Byte's ASPECT Assembler/Disassembler/Editor which will be ready for sale by the time you read this.\r\n\r\nThere is one improvement I have noticed and that is that the Editors are almost idiot proof, or habit proof. For example, my old editor used to crash when I habitually used the RUB OUT key to delete errors. All the editors had a block move command which is very useful when some code has to be relocated. SPECTRUM Monitor also has an insert command which is very useful when a byte has accidentally been missed out or when an instruction must be added. All of the editors have breakpoint systems. A breakpoint system can insert a breakpoint into your program (a point where the program is to be exited), so you can trap errors down to a small part of the program. The breakpoint can be removed and easily relocated elsewhere.\r\n\r\nA distinctly annoying point about ZX BUG SPECTRUM 2 was that using addresses (on the 16K Version) 71E0 Hex to the top of memory would interfere with ZX BUG and using addresses 4000-6800 Hex or so would interfere with the loader program so that if you typed in some machine code on the earlier mentioned invisible line and then added to, or deleted from the program, your machine code would have moved. This only leaves about 2K of non moving memory for the user even though the invisible line (4K) does absolutely nothing once the program is loaded. None of the Editors had the ability to search for a string more than two characters. SPECTRUM Monitor had no search facilities at all.\r\n\r\nIt surprised me to learn that Dr Ian Logan uses SPDE since it is remarkably short of editing commands. It can basically do: Hex-Decimal/Decimal-Hex, Block move (in BASIC!), List in Hex and Characters, list as mnemonics and Hex and that's all. It has no Breakpoint system, no fills, no searches, nothing in fact but the bare essentials. It is a pity really because the program itself is nicely presented with a touch of colour here and there and a handy menu to help. Slowly I am getting the impression, after re-reading their letter that Ian Logan is more than mildly acquainted with J.A. Campbell. For instance, he has written a quite complimentary review of their FAST ONE, though I must admit it is worth the cheeky title. Makes one suspicious, doesn't it?\r\n\r\nMIXING COLOURS\r\n\r\nSPECTRUM Monitor has a blue background which seems fine from both the colour TV owners point of view as well as the Black & White. I say this because our colour TV doesn't like Spectrums and changes white to green and a whole host of colours to pinks, dirty greens etc. This means that I have to use a Black & White (I would probably be ill otherwise), which tends to mix the different colours into an illegible mess.\r\n\r\nSince each of the editors has its own merits and demerits I have decided to use a rating table to assist conclusion:\r\n\r\nAs you can see, SPECTRUM Monitor has a nice, all round quality and has outstanding documentation which really should be a lesson to other software houses. It's content didn't quite match up to that of SPECTRUM BUG but had sufficient commands to satisfy the average machine code enthusiast. SPECTRUM BUG's documentation was really poor and though SPDE's was better it was still quite sparse. SPECTRUM BUG falls down on the 'Quirk Free' rating because of the floating RAM trouble I explained earlier. All I can say about SPDE is that it is just a pretty face and bad value at £5.95 in comparison with the other two, even if Dr Logan DOES use it. Overall, for ease of use and documentation, the best buy is SPECTRUM Monitor while if you prefer a little more on the commands side then buy SPECTRUM BUG and a magnifying glass. (You'll need it to read the instructions!). SPDE is available from Campbell Systems, [redacted] at £5.95. Spectrum Monitor is available from Picturesque, [redacted], at £7.50. Spectrum Bug is available from Artic Computing, [redacted], at £7.00.","ReviewerComments":[],"OverallSummary":"","Page":"74,75","Denied":false,"Award":"Not Awarded","Reviewers":[{"Name":"Paul Holmes","Score":"","ScoreSuffix":""}],"ScreenshotText":[],"BlurbText":[],"TranscriptBy":"Chris Bourne","ReviewScores":[{"Header":"Content","Score":"4/5","Text":""},{"Header":"Presentation","Score":"4/5","Text":""},{"Header":"Documentation","Score":"5/5","Text":""},{"Header":"Loading","Score":"4/5","Text":""},{"Header":"Quirk Free","Score":"4/5","Text":""}],"CompilationReviewScores":[]},{"Issue":{"Name":"Sinclair User Issue 17, Aug 1983","Price":"£0.75","ReleaseDate":"1983-07-21","Editor":"Nigel Clark","TotalPages":124,"HasCoverTape":false,"FlannelPanel":"Editorial Director: Nigel Clark\r\nIllustrator/Designer: Brian King\r\nConsultant Editor: Mike Johnston\r\nProduction Editor: Harold Mayes MBE\r\nStaff Writer: John Gilbert\r\nProgram Reviewer: Rebecca Ferguson\r\nEditorial Director: John Sterlicchi\r\nAdvertisement Manager: John Ross\r\nSales Executive: Annette Burrows\r\nEditorial Assistant: Margaret Hawkins\r\nProduction Assistant: Dezi Epaminondou\r\nManaging Director: Terry Cartwright\r\nChairman: Richard Hease\r\n\r\nSinclair User is published monthly by ECC Publications Ltd.\r\n\r\nTelephone\r\nAll departments\r\n[redacted]\r\n\r\nIf you would like to contribute to any of the Sinclair User group of publications please send programs, articles or ideas for hardware projects to:\r\nSinclair User and Programs\r\nECC Publications\r\n[redacted]\r\n\r\nPrograms 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 will pay £10 for each program published and £50 per 1,000 words for each article used.\r\n\r\n©Copyright 1983\r\nSinclair User\r\nISSN NO. 0262-5458\r\n\r\nPrinted and typeset by Cradley Print PLC, [redacted]\r\n\r\nDistributed by Spotlight Magazine Distribution Ltd, [redacted]\r\n\r\nCover Photograph: Colin Packam\r\nCover Illustration: Brian King"},"MainText":"MAKING MACHINE CODE EASIER TO UNDERSTAND\r\n\r\nFollowing last month's review of assemblers John Gilbert turns his attention to their counterparts the disassemblers.\r\n\r\nThe term disassembler has been used in many ways by professional producers of software to describe their products and some confusion has arisen as to what a disassembler should or should nor do. The strict definition of a disassembler calls for a program which will translate the numeric values of machine code into the mnemonics of assembly language. There are other packages which do all kinds of things with machine code but do not fulfil that definition. The correct term for those packages is toolkit.\r\n\r\nThe mnemonics of assembly language look like shortened versions of Basic keywords. They are used to represent the machine code numbers which computers can understand but which human programmers still find difficult to cope with in great quantities. It is much easier to understand a mnemonic such as RET, which means Return to Basic, than its machine code counterpart, which in this case is 201.\r\n\r\nMost disassembler packages include a monitor program which allows the user to change machine code stored in RAM which has been disassembled. The disassembler makes the editing process easier, as mistakes can be spotted quickly if the programmer has a disassembly and not just a list of numbers which have to be sorted.\r\n\r\nWhen computers had just been invented there was little software and languages such as Basic and Pascal did nor exist. Programmers had to use programs which consisted of long has of numbers. You can imagine the trouble if those programs did not work. Every number in the program would have to be checked to see if it was correct.\r\n\r\nThe invention of assemblers and disassemblers made things easier. You could enter code in mnemonic form using the assembler and check the code using the disassembler.\r\n\r\nWhen microcomputers were invented the disassemblers used on the large mainframe computers had to be altered to work on the smaller systems, as many of the instructions which were used on mainframes could not be used on micros.\r\n\r\nThe first disassembler to appear commercially for the ZX-81 was ZXDB, from Bug-Byte. The company has built its reputation with that package along with its ZXAS assembler and the reason was because it was cheap and ran on an expensive computer.\r\n\r\nThe Bug-Byte disassembler was fairly standard in its performance. It allowed you to specify the address, or position in memory, at which you wanted the disassembly to start. The program would disassemble one line at a time and you had to press NEWLINE for the next instruction in memory to be disassembled.\r\n\r\nThe ZXDB for the ZX-81 used two fields, or areas, on the screen in which to display information. The first showed the address at which an instruction was located and the second showed the disassembly of the machine code instruction.\r\n\r\nOther disassemblers, such as the Crystal Computing Monitor and Disassembler for the Spectrum, use three fields. The extra area on the screen is used to display the numeric machine code on which the disassembler is working. It is a good idea as you can check the mnemonics and machine code against each other to see if the disassembler is working correctly.\r\n\r\nIf a company produces both a disassembler and an assembler it usually makes both programs compatible. That means that both programs can be put into the computer to work together and dispenses with the need to load one program to enter code and then load the next to check that the code is correct.\r\n\r\nHaving both programs in RAM at the same time will make programming in machine code quicker and easier but the amount of memory left for machine code programs will be reduced drastically. The advantages outweigh the disadvantages, though, so it is a good idea to buy a disassembler which can be used together with an assembler.\r\n\r\nTwo problems occur when a disassembler starts to produce question marks because it has not been programmed to recognise a machine code instruction. One disassembler which does not follow the Z-80 instruction set is ZXDB from Bug-Byte. The program uses 8080 code instead of Z-80. Instructions which are common on the Z-80 are named differently on 8080. For instance, LD in Z-80 is called M in 8080 code. Those two names mean different things. The LD instruction means load a register with a value, whereas M means move.\r\n\r\nTrying to use a disassembler which does not understand the full Z-80 instruction set is like trying to use BBC Basic on 3 Spectrum or ZX-81. As BBC Basic is not the same as Sinclair Basic, the machine would not recognise the extra commands of the other language. As a result, when buying a disassembler, make sure that the program understands the complete Z-80 instruction set and not just a subset.\r\n\r\nDisassemblers can serve two purposes. They can be used to view code which you have stored in RAM or they could be used to look at the ROM of the machine\r\n\r\nWith a good disassembler you could obtain a listing of the complete Sinclair ROM for either the ZX-81 or Spectrum. If you knew sufficient about machine code you might also be able to tell how the ROM works. To investigate the ROM, or go bug-hunting in it, you need the proper kind of disassembler. Picturesque produces a monitor and disassembler package which suits the purpose. The disassembler has to provide facilities for output to a printer, as the Basic interpreter and operating system within the ROM are very lengthy.\r\n\r\nA true analysis would have you jumping to different parts of the ROM when JP, or JumP, instructions are indicated. JumP is similar to the Basic GOTO instruction but there are many options available with that command and the disassembler will help you to spot them.\r\n\r\nYour disassembler should be capable of handling the RST instruction as it is used many times in the ROM. It means ReStarT and the instruction provides a quick entry point into the ROM for programmers using ROM routines in their machine code programs.\r\n\r\nThe RST 10 instruction, for instance, would send the computer control to the part of the ROM which deals with the printing process. The routine sets up the machine to display one character on the screen.\r\n\r\nMost disassembler packages on the market for both Sinclair machines are being sold mainly as an afterthought to assembler packages. The disassembler has a very important role in computing and the second-class sticker with which it has been labelled is unfair.\r\n\r\nA disassembler should be a necessity when you are writing machine code programs.\r\n\r\nIf you are to buy one, take as much time about choosing it as you would when buying an assembler. In many cases it will be the disassembler which will disappoint you with its performance and not the assembler.\r\n\r\nFor instance, the Bug-Byte ZXDB was a breakthrough when it was launched but with hindsight it is somewhat mediocre. The standard of the documentation with ZXDB was far from satisfactory; as a result, the program was difficult to use.\r\n\r\nDisassemblers are becoming more complex all the time and there is not much which can be done to improve them. Many of the programs on the market, however, could be streamlined to fit into less RAM than is now the case.\r\n\r\nDK'tronics, [redacted].\r\n\r\nCrystal Computing, [redacted].\r\n\r\nPicturesque, [redacted].","ReviewerComments":[],"OverallSummary":"","Page":"48,49","Denied":false,"Award":"Not Awarded","Reviewers":[{"Name":"John Gilbert","Score":"","ScoreSuffix":""}],"ScreenshotText":[],"BlurbText":[{"Text":"'Many programs on the market could be streamlined.'"},{"Text":"'The strict definition of a disassembler calls for a program which will translate the numeric values of machine code into the mnemonics of assembley language.'"}],"TranscriptBy":"Chris Bourne","ReviewScores":null,"CompilationReviewScores":[]},{"Issue":{"Name":"Big K Issue 9, Dec 1984","Price":"£0.85","ReleaseDate":"1984-11-20","Editor":"Tony Tyler","TotalPages":132,"HasCoverTape":false,"FlannelPanel":"Editor: Tony Tyler\r\nAssisted By: Richard Burton\r\nArt Editor: Ian Stead\r\nFeatures: Nicky Xikluna\r\nContributors: Andy Green; Kim Aldis (Features); Steve Keaton; Richard Cook; Richard Taylor; David Rimmer; John Conquest; Nigel Farrier, Duncan Gamble; Tony Benyon; Fin Fahey; Gary Liddon\r\nPublisher: Barry Leverett\r\nPublishing Director: John Purdie\r\nGroup Advertising Controller: Luis Bartlett\r\nAdvertisement Manager: Robin Johnson [redacted]\r\n\r\nEditorial Address: [redacted]\r\nTelephone: [redacted]\r\n\r\nPublished approximately on the 20th of each month by IPC Magazines Ltd. [redacted]. Monotone and colour origination by G.M. Litho Ltd [redacted]. Printed in England by Chase Web Offset, Cornwall. Sole Agents: Australia and New Zealand, Gordon& Gotch (A/sia) Ltd.; South Africa, Central News Agency Ltd. BIG K is sold subject to the following conditions, namely that it shall not, without the written consent of the Publishers first given, be lent, resold, hired out or otherwise disposed of by way of trade at more than the recommended selling price shown on the cover, and that it shall not be lent, resold or hired out or otherwise disposed of in a mutilated constitute or any unauthorised cover by way of trade or affixed to as part of any publication or advertising, literary or pictorial matter whatsoever. IPC MAGAZINES 1984."},"MainText":"THE EXTENDED SPECTRUM\r\n\r\nFin Fahey checks out a smattering of utility programs for Old Rubber Keys.\r\n\r\nSystem 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.\r\n\r\nBut 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.\r\n\r\nThere 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.\r\n\r\nSuper 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.\r\n\r\nFrom 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.\r\n\r\nBut 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.\r\n\r\nMore 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.\r\n\r\nDream 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.\r\n\r\nPicturesque'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.\r\n\r\nVery 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.\r\n\r\nAn 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.\r\n\r\nThe 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.\r\n\r\nAssembly 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.\r\n\r\nThis 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.\r\n\r\nMore 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.\r\n\r\nThe 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.\r\n\r\nForth 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.\r\n\r\nThere 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.\r\n\r\nWhile 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.\r\n\r\nSomething 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.\r\n\r\nDr 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!\r\n\r\nOn 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.\r\n\r\nBASIC EXTENSIONS:\r\nSUPER TOOLKIT from NECTARINE\r\nTOOLKIT from IMS Software\r\nSPECTRUM EXTENDED BASIC from CP Software\r\nPrice: £9.95\r\n\r\nSUPERCODE from CP Software\r\nPrice: £9.95\r\n\r\nMACHINE CODE TUTORIALS: BEYOND BASIC from Sinclair\r\nPrice: £9.95\r\n\r\nTHE COMPLETE MACHINE. CODE TUTOR from New Generation Software\r\nPrice: £7.95\r\n\r\nMACHINE-CODE FOR BEGINNERS from Dream Software\r\nPrice. £0.00\r\n\r\nASSEMBLERS:\r\nZEUS ASSEMBLER from Sinclair\r\nPrice: £12.95\r\n\r\nEDITOR/ASSEMBLER from Picturesque\r\nPrice: £8.50\r\n\r\nSPECTRE MAC-MON from Oasis Software\r\nPrice: £14.95\r\n\r\nMONITORS:\r\nMONITOR/DISASSEMBLER from Sinclair\r\nPrice: £12.95\r\n\r\nSPECTRUM MONITOR from Picturesque\r\nPrice: £7.50\r\n\r\nCOMPILER from Softek\r\nPrice: £9.95\r\n\r\nLANGUAGES:\r\nSCOPE II from ISP\r\nPrice: £11.95\r\n\r\nFORTH from Sinclair\r\nPrice: £14.95\r\n\r\nABERSOFT FORTH from Melbourne House\r\nPrice. £14.95\r\n\r\nSNAIL LOGO from CP Software\r\nPrice: £9.95\r\n\r\nMICRO-PROLOG from Sinclair\r\nPrice: £24.95\r\n\r\nADVENTURE GENERATORS:\r\nTHE QUILL from Gilsoft\r\nPrice: £11.95\r\n\r\nDUNGEON BUILDER from Dream Software\r\nPrice: £9.95","ReviewerComments":[],"OverallSummary":"","Page":"69,70","Denied":false,"Award":"Not Awarded","Reviewers":[{"Name":"Fin Fahey","Score":"","ScoreSuffix":""}],"ScreenshotText":[],"BlurbText":[],"TranscriptBy":"Chris Bourne","ReviewScores":null,"CompilationReviewScores":[]}]}]