[{"TitleName":"Editor Assembler","Publisher":"Picturesque","Author":"","YearOfRelease":"1982","ZxDbId":"0008142","Reviews":[{"Issue":{"Name":"Sinclair User Issue 16, Jul 1983","Price":"£0.75","ReleaseDate":"1983-06-16","Editor":"Nigel Clark","TotalPages":108,"HasCoverTape":false,"FlannelPanel":"Editorial Director: Nigel Clark\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: Max Bradley\r\nCover Illustration: Richard Dunn"},"MainText":"THE EASIER ROUTE FROM BASIC TO MACHINE CODE\r\n\r\nWriting programs is time-consuming. John Gilbert examines a collection of cassettes which help to make the job much simpler.\r\n\r\nThe best way to learn about machine code is to use an assembler. Machine code consists of numbers but with an assembler the user can write code in assembler language, which looks more like Basic and is easier to understand. The program will then convert the user's assembly language instructions, called source code, into machine code.\r\n\r\nAlthough the ZX-81 has been around for several years there are only a few machine code assemblers available on the market for it. The only big companies to produce assemblers for the machine are Artic Computing and Bug Byte. Both built their reputations with these assemblers.\r\n\r\nThe Artic assembler is a two-pass program. It will permit full use of labels, will inspect and modify registers and also allows output to a printer. The code to be assembled is put into a REM statement at the beginning of the program and all code can be written in standard Z-80 mnemonics. The assembler will also assemble messages which are to be used in programs into hexadecimal code. It costs £9.95.\r\n\r\nThe other best-seller is the Bug-Byte ZXAS. The program is similar to that of Artic but was launched in a blaze of publicity as being the first machine code assembler for the ZX-81.\r\n\r\nBug-Byte also wanted to be the company which produced the first assembler for the Spectrum but it was to be disappointed. Wrangling within the company between its programmers put the release date further and further back until the package became available early this year.\r\n\r\nThe program is for the 16K and 48K Spectrum. It is very comprehensive in its options and very easy to use. As well as assembling user machine code, it has a full editor facility with which the user can view assembly code, delete and insert, search for specific strings of text within machine code, and list all the labels which have been specified by a user in a program within a cross-referenced table.\r\n\r\nThe editor will also reverse 16-bit values, such as memory addresses, if the user specifies that option. That facility is useful when dealing with a large number of 16-bit addresses in a long program. The use of 16-bit values can be a problem for beginners, who often do not know whether or not to reverse a number.\r\n\r\nThe program also has a good cassette interface. Both the source code - the user's - and the object code - assembled-code can be filed on to cassette. That means that source code can be saved and re-edited when the user needs it. The saved source code could also be useful if the programmer wanted to upgrade a program.\r\n\r\nUnfortunately the manual, or lack of it, provides points against Aspect. Instructions are written on a piece of paper. They are just about adequate and contain no examples. Aspect costs £9 and is available from shops such as W H Smith.\r\n\r\nPicturesque slipped its Editor/Assembler on to the market very quietly. The program is for the 16K and 48K Spectrum and is very powerful. It is complete with a comprehensive user manual which a complete beginner can understand.\r\n\r\nThe Editor is the part of the program which enters the source code. It is possible to enter code in the same type of format as a Basic program, as each line is given a line number. Unlike the Basic system on the Spectrum, line numbers can be generated by the program automatically with the use of the AUTO command. The use of line numbers means that the source file can be edited quickly and easily.\r\n\r\nWhen the source code has been entered correctly and there are no bugs in the text, the assembler can be called into operation. The usual ORG instruction is included as part of the instruction set to define the address at which the assembled code should be put.\r\n\r\nThe program display is interesting, as the screen has a 40-column width and is split into several fields which correspond to those used in assembly language programming, together with a line number field. The cursor recognises the end of one field and jumps to the next automatically. That makes the entered source code easy to understand. The Editor/Assembler is ideal for the beginner and could also be a powerful tool in the hands of a professional programmer. It costs £8.50.\r\n\r\nThe program which has caused a buzz of excitement in the Sinclair User offices is probably one of the most powerful assemblers which we have reviewed. It is all the more remarkable as it is produced by a small and, until now, largely unrecognised software house, Crystal Computing.\r\n\r\nThe program, Zeus, is a two-pass assembler which allows the use of the full Z-80 mnemonic instruction set. Source code can be line-numbered and an AUTO line-number facility is also available.\r\n\r\nThe program is accompanied by the best manual we have seen for an assembler. It contains step-by-step instructions for entering and editing source code. An example is included which will, if entered correctly, colour the screen white, the current ink colour.\r\n\r\nThe use of an example in that way is good, because if you make a mistake and the program does not work you will have to re-learn the instructions. If the example works, users will have a good understanding of how Zeus operates.\r\n\r\nZeus also contains several subroutines which can be used within source code. They include an INKEY$-type function and print a character routine. Other functions in the assembler include automatic re-numbering of the source file, outputting of code to a printer, and the reclaiming of 'old' source files for further work. Zeus has been aptly-named by Crystal Computing. It costs £8.95.\r\n\r\nThere are very few good assemblers on the market although the big software houses all claim to have the best available. It is, therefore, surprising that a small company like Crystal should produce such an excellent assembler as Zeus. The reason may be that while large companies spend their money on colourful advertising, smaller companies need to rely on very good quality products.\r\n\r\nArtic Computing, [redacted].\r\n\r\nPicturesque, [redacted].\r\n\r\nCrystal Computing, [redacted].","ReviewerComments":[],"OverallSummary":"","Page":"37,38","Denied":false,"Award":"Not Awarded","Reviewers":[{"Name":"John Gilbert","Score":"8","ScoreSuffix":"/10"}],"ScreenshotText":[],"BlurbText":[{"Text":"'One of the most powerful assemblers which we have reviewed is produced by a small, and largely unrecognised software house, Crystal Computing'."}],"TranscriptBy":"Chris Bourne","ReviewScores":[{"Header":"Gilbert Factor","Score":"8/10","Text":""}],"CompilationReviewScores":[]},{"Issue":{"Name":"Sinclair User Issue Annual 1984,  1984","Price":"£1.95","ReleaseDate":"1983-12-01","Editor":"Nigel Clark","TotalPages":140,"HasCoverTape":false,"FlannelPanel":"Managing Editor: Nigel Clark\r\nDeputy Editor: Nicole Segre\r\nConsultant Editor: Mike Johnston\r\nManaging Production Editor: Harold Mayes MBE\r\nSoftware Editor: John Gilbert\r\nProgram Reviewer: Rebecca Ferguson\r\nIllustrator/Designer: Brian King\r\nGroup Advertisement Manager: John Ross\r\nSales Executive: Annette Burrows\r\nProduction Assistant: Dezi Epaminondou\r\nManaging Director: Terry Cartwright\r\nChairman: Richard Hease\r\n\r\nSinclair User Annual is published monthly by ECC Publications Ltd. It is in no way connected with Sinclair Research 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 pay £10 for the copyright of 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]"},"MainText":"MAKING MACHINE CODE EASIER TO UNDERSTAND\r\n\r\nAfter dealing with assembers, 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 not 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 not exist. Programmers had to use programs which consisted of long lists 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 a 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 puroposes. 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":"32,33","Denied":false,"Award":"Not Awarded","Reviewers":[{"Name":"John Gilbert","Score":"8","ScoreSuffix":"/10"}],"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 assembly languag.'"}],"TranscriptBy":"Chris Bourne","ReviewScores":[{"Header":"Gilbert Factor","Score":"8/10","Text":""}],"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":[]},{"Issue":{"Name":"Sinclair User Issue Annual 1984,  1984","Price":"£1.95","ReleaseDate":"1983-12-01","Editor":"Nigel Clark","TotalPages":140,"HasCoverTape":false,"FlannelPanel":"Managing Editor: Nigel Clark\r\nDeputy Editor: Nicole Segre\r\nConsultant Editor: Mike Johnston\r\nManaging Production Editor: Harold Mayes MBE\r\nSoftware Editor: John Gilbert\r\nProgram Reviewer: Rebecca Ferguson\r\nIllustrator/Designer: Brian King\r\nGroup Advertisement Manager: John Ross\r\nSales Executive: Annette Burrows\r\nProduction Assistant: Dezi Epaminondou\r\nManaging Director: Terry Cartwright\r\nChairman: Richard Hease\r\n\r\nSinclair User Annual is published monthly by ECC Publications Ltd. It is in no way connected with Sinclair Research 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 pay £10 for the copyright of 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]"},"MainText":"THE EASIER ROUTE FROM BASIC TO MACHINE CODE\r\n\r\nWriting programs is time-consuming. John Gilbert examines a collection of cassettes which help to make the job much simpler.\r\n\r\nThe best way to learn about machine code is to use an assembler. Machine code consists of numbers but with an assembler the user can write code in assembler language, which looks more like Basic and is easier to understand. The program will then convert the user's assembly language instructions, called source code, into machine code.\r\n\r\nAlthough the ZX-81 has been around for several years there are only a few machine code assemblers available on the market for it. The only big companies to produce assemblers for the machine are Artic Computing and Bug Byte. Both built their reputations with these assemblers.\r\n\r\nThe Artic assembler is a two-pass program. It will permit full use of labels, will inspect and modify registers and also allows output to a printer. The code to be assembled is put into a REM statement at the beginning of the program and all code can be written in standard Z-80 mnemonics. The assembler will also assemble messages which are to be used in programs into hexadecimal code. It costs £9.95.\r\n\r\nThe other best-seller is the Bug-Byte ZXAS. The program is similar to that of Artic but was launched in a blaze of publicity as being the first machine code assembler for the ZX-81.\r\n\r\nBug-Byte also wanted to be the company which produced the first assembler for the Spectrum but it was to be disappointed. Wrangling within the company between its programmers put the release date further and further back until the package became available early this year.\r\n\r\nThe program is for the 16K and 48K Spectrum. It is very comprehensive in its options and very easy to use. As well as assembling user machine code, it has a full editor facility with which the user can view assembly code, delete and insert, search for specific strings of text within machine code, and list all the labels which have been specified by a user in a program within a cross-referenced table.\r\n\r\nThe editor will also reverse 16-bit values, such as memory addresses, if the user specifies that option. That facility is useful when dealing with a large number of 16-bit addresses in a long program. The use of 16-bit values can be a problem for beginners, who often do not know whether or not to reverse a number.\r\n\r\nThe program also has a good cassette interface. Both the source code - the user's - and the object code - assembled-code can be filed on to cassette. That means that source code can be saved and re-edited when the user needs it. The saved source code could also be useful if the programmer wanted to upgrade a program.\r\n\r\nUnfortunately the manual, or lack of it, provides points against Aspect. Instructions are written on a piece of paper. They are just about adequate and contain no examples. Aspect costs £9 and is available from shops such as W H Smith.\r\n\r\nPicturesque slipped its Editor/Assembler on to the market very quietly. The program is for the 16K and 48K Spectrum and is very powerful. It is complete with a comprehensive user manual which a complete beginner can understand.\r\n\r\nThe Editor is the part of the program which enters the source code. It is possible to enter code in the same type of format as a Basic program, as each line is given a line number. Unlike the Basic system on the Spectrum, line numbers can be generated by the program automatically with the use of the AUTO command. The use of line numbers means that the source file can be edited quickly and easily.\r\n\r\nWhen the source code has been entered correctly and there are no bugs in the text, the assembler can be called into operation. The usual ORG instruction is included as part of the instruction set to define the address at which the assembled code should be put.\r\n\r\nThe program display is interesting, as the screen has a 40-column width and is split into several fields which correspond to those used in assembly language programming, together with a line number field. The cursor recognises the end of one field and jumps to the next automatically. That makes the entered source code easy to understand. The Editor/Assembler is ideal for the beginner and could also be a powerful tool in the hands of a professional programmer. It costs £8.50.\r\n\r\nThe program which has caused a buzz of excitement in the Sinclair User offices is probably one of the most powerful assemblers which we have reviewed. It is all the more remarkable as it is produced by a small and, until now, largely unrecognised software house, Crystal Computing.\r\n\r\nThe program, Zeus, is a two-pass assembler which allows the use of the full Z-80 mnemonic instruction set. Source code can be line-numbered and an AUTO line-number facility is also available.\r\n\r\nThe program is accompanied by the best manual we have seen for an assembler. It contains step-by-step instructions for entering and editing source code. An example is included which will, if entered correctly, colour the screen white, the current ink colour.\r\n\r\nThe use of an example in that way is good, because if you make a mistake and the program does not work you will have to re-learn the instructions. If the example works, users will have a good understanding of how Zeus operates.\r\n\r\nZeus also contains several subroutines which can be used within source code. They include an INKEY$-type function and print a character routine. Other functions in the assembler include automatic re-numbering of the source file, outputting of code to a printer, and the reclaiming of 'old' source files for further work. Zeus has been aptly-named by Crystal Computing. It costs £8.95.\r\n\r\nThere are very few good assemblers on the market although the big software houses all claim to have the best available. It is, therefore, surprising that a small company like Crystal should produce such an excellent assembler as Zeus. The reason may be that while large companies spend their money on colourful advertising, smaller companies need to rely on very good quality products.\r\n\r\nArtic Computing, [redacted].\r\n\r\nPicturesque, [redacted].\r\n\r\nCrystal Computing, [redacted].","ReviewerComments":[],"OverallSummary":"","Page":"30,31","Denied":false,"Award":"Not Awarded","Reviewers":[{"Name":"John Gilbert","Score":"8","ScoreSuffix":"/10"}],"ScreenshotText":[],"BlurbText":[{"Text":"'One of the most poweful assemblers which we have reviewed is produced by a small, and largely unrecognised software house, Crystal Computing.'"}],"TranscriptBy":"Chris Bourne","ReviewScores":[{"Header":"Gilbert Factor","Score":"8/10","Text":""}],"CompilationReviewScores":[]}]}]