[{"TitleName":"Monitor and Disassembler","Publisher":"Crystal Computing","Author":"Crystal Computing","YearOfRelease":"1982","ZxDbId":"0008457","Reviews":[{"Issue":{"Name":"Sinclair User Issue 15, Jun 1983","Price":"£0.75","ReleaseDate":"1983-05-19","Editor":"Nigel Clark","TotalPages":116,"HasCoverTape":false,"FlannelPanel":"Editorial Director: Nigel Clark\r\nDeputy Editor/Design: William Scolding\r\nConsultant Editor: Mike Johnston\r\nProduction Editor: Harold Mayes MBE\r\nStaff Writer: John Gilbert\r\nEditorial Director: John Sterlicchi\r\nAdvertisement Manager: John Ross\r\nSales Executive: Annette Burrows\r\nEditorial Assistant: Margaret Hawkins\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, Caters News Agency Birmingham"},"MainText":"USEFUL TOOL FROM ZEUS\r\n\r\nZeus was father to the gods and the new Zeus assembler for the 48K Spectrum is the big daddy of all assembler programs. It is very simple to use for the beginner but for someone who has even a basic knowledge of the subject the program can be a powerful machine code tool.\r\n\r\nThe lines of assembly code are given line numbers so that it is possible to enter new lines or to alter old ones. There is an auto-line number routine in the program, which will prevent the user having to put in line numbers, and a re-number routine which will re-number the whole program or only part of it.\r\n\r\nIf errors occur during the assembly process the computer will list the errors with the line on which they occur. If there are no errors you can save the machine code and run it using a one-letter command \"X\".\r\n\r\nCrystal Computing, the manufacturer of Zeus, also produces a monitor and disassembler for the Spectrum. As well as doing a full disassembly, the program will display the current state of the registers and alter them if necessary. It will also substitute lines of code and move around blocks of memory.\r\n\r\nThe Zeus asembler and the monitor and disassembler have been sadly neglected in the past. Both packages can be used together and form a very powerful tool. Zeus costs £8.95 and the disassembler and monitor cost £8.95. Both packages can be obtained from Crystal Computing, [redacted].","ReviewerComments":[],"OverallSummary":"","Page":"29","Denied":false,"Award":"Not Awarded","Reviewers":[],"ScreenshotText":[],"BlurbText":[],"TranscriptBy":"Chris Bourne","ReviewScores":null,"CompilationReviewScores":[]},{"Issue":{"Name":"Sinclair User Issue 21, Dec 1983","Price":"£0.75","ReleaseDate":"1983-11-17","Editor":"Nigel Clark","TotalPages":204,"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\nEditorial Assistant: Colette McDermott\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: Peter Dawney"},"MainText":"NEW COMPANIES ON THE SINCLAIR BANDWAGON\r\n\r\nJohn Gilbert looks at the latest additions to Sinclair Research's growing software library.\r\n\r\nSinclair Research seems to have its eye on the rest of the software market, something which it was loathe to do two months ago. It has opened its software range to such an extent that new and smaller companies, other than Artic Computing and Melbourne House, have had a chance to enter their programs into a range which already includes such programs as The Hobbit and the Artic range of adventures.\r\n\r\nThe new companies on the Sinclair Research bandwagon are Crystal Computing and Ultimate Play The Game. Crystal Computing has sold its Zeus Assembler and Monitor Disassembler to Sinclair. That means it at last has two machine code utilities, for the 48K Spectrum, in its range.\r\n\r\nThe Crystal Zeus Assembler is one of the best of its kind and provides excellent facilities for beginners and experts alike. Writing assembly language using it is almost as easy as writing Basic code. Each line of source assembly code as indexed with a number, just as Basic instructions are indexed with line numbers.\r\n\r\nAll the features which are found usually on assemblers have been included. Labels and expressions can be included within source code and strings of symbols can be entered into memory tables using the utilities in Zeus.\r\n\r\nOne of the advantages of Zeus is that you do not have to include an ORG instruction with the program to indicate to the computer where to put the object code when it has been assembled. If you omit the ORG instruction the computer will allocate the code to a space in memory.\r\n\r\nThe problem with Zeus is that you have to exit from the assembler to save the code which has been generated. If you are a beginner that can be a lengthy and nerve-racking process and you have no guarantee that you can load the code back into the computer.\r\n\r\nApart from the lengthy preparations for loading and saving, the assembler is still one of the best on the market. It is a pity that Sinclair Research has put it into a colourful box to justify a price rise of approximately £4. The box may look pleasant and it may improve the quality of the product on the shelf, from a commercial point of view, but the box will not help you to program.\r\n\r\nThe same is true of many of the other programs in the range. The boxes do not add anything to the product once you have it at home and paying up to £4 extra for packaging is unlikely to go down well with most customers.\r\n\r\nThe Monitor and Disassembler for the 16K/48K Spectrum is from Crystal and the price of the product has also been increased substantially. It can be used with the Zeus Assembler and will provide a disassembly of source code from your machine code programs or from the Spectrum operating system in the ROM of the machine.\r\n\r\nThe Monitor will also enable the user to assign values to the CPU registers. That means that values can be set to test machine code programs and to see how they run under certain conditions. Machine code routines can be copied from one part of memory to another and the routines can be edited in hexidecimal using the Monitor. One other useful function is to convert a hexidecimal value to decimal and vice versa when you are using the editing routines. That saves a number of calculations on paper.\r\n\r\nThe Monitor and Disassembler is the perfect companion to the Assembler but at a combined price of nearly £25 it is expensive.\r\n\r\nThe next two additions to the Sinclair software library for the Spectrum can both be regarded as mind games. Flippit, for the 16K or 48K Spectrum, has been put on a parallel with the Rubik Cube by Sinclair Research. It certainly is a maddening puzzle and almost impossible to master completely. The Flippit board is like a noughts and crosses grid - it has nine sectors, set out in a three-by-three grid. The computer labels those using the letters the alphabet, A to I, and numbers or dots fill each corner of each square.\r\n\r\nTo complete the game you must find the correct combination of numbers so that they add to the same sum horizontally, vertically and diagonally. That means the game is nothing more than the type of magic squares we all enjoyed solving when we were at school.\r\n\r\nThey can be played competitively and to emphasise the point the moves you have taken so far and the moves which you have to beat before getting the record are part of the board display.\r\n\r\nThere are three playing options. The first is New Run which will make the computer re-shuffle the numbers on the board into random patterns. The next option is similar to the first and will re-run the last random setting. That means that the order in which the numbers were placed on the last shuffle is restored.\r\n\r\nFlippit seems so easy when you first start to play but when you have only two numbers out of place it can become irritating and it is easy to give up, rather than plodding along with the problem. If you are left with the numbers in the wrong places you may have to do major re-shuffle of the board.\r\n\r\nThe manual is concise and to the point but includes no information about strategy or play. It tells the player only how to set up the Spectrum and what are the various play options.\r\n\r\nOne other criticism is that it has no SAVE option for beginners who are puzzlers or who want to break for lunch.\r\n\r\nThe other mind game in the selection is more of a test of mind power. The Cattell IQ Test provides the user with a standard reference to any intelligence quotient. It is the type of test which potential members of Mensa, the organisation whose members have high IQs, must take.\r\n\r\nOn loading, the computer takes some time to set up the tests. There are six types of logic test which must be taken before the computer can give you an accurate IQ score. Those types include synonym finding, classification, opposites, analogies and inferences.\r\n\r\nThe results are co-ordinated from the various individual tests to give a percentile overall rating. The Spectrum will tell you eventually whether it is worthwhile applying for membership of Mensa.\r\n\r\nAfter being extremely serious about the validity of the tests, throughout the manual it says in the section about the meaning of the results that the tests should not be taken too seriously and that the tests will not prove that you are a genius. Even if you cannot go around wearing a badge saying 'genius', once you have taken the Cattell test you should have some fun with the package.\r\n\r\nUnfortunately the copy we were sent of the rests was tediously slow in producing marks for the various sections and in setting-up the data. Although it looked like a production copy of the package, Sinclair Research says that it is producing a better version of the program.\r\n\r\nThe final cassette-based program from the library, for the 48K Spectrum, is Chequered Flag and it is the only one not in a box. The program is from Psion and it is up to that company's usual standards.\r\n\r\nThe game sets you as a racing driver over one of the number of world-famous racing tracks, such as Silverstone. You can choose which car you want to use from a visual menu describing a number of well-known racing cars. You can also choose the course on which you want to travel.\r\n\r\nThe race will take place on the screen, using a three-dimensional representation of the track. Apart from the danger of crashing over the sides of the track, there is also oil on the road surface. At all costs you must avoid the oil or it could cause your car to skid. Once you have been round the track the required number of times, the chequered flag will be raised on the screen and your lap time will be given by the computer.\r\n\r\nThe graphic and real-time simulation effects produced by the software are reminiscent of the Flight Simulation program, also available from Psion through Sinclair Research. There are several tracks and cars to try, so the game should provide hours of entertainment. The quality of the game and the detail included make it one of the great games for the Spectrum.\r\n\r\nThe quality control and selection of software for the Sinclair software library has certainly increased with the release of this new batch of tapes. The boxes in which most of the products are now packaged are certainly an improvement on the cassette covers which were being used. One disadvantage for retailers will be that display shelves will be occupied more quickly by fewer products. That should be offset, though, by the prices which Sinclair is charging for its new software.\r\n\r\nThat has already caused murmurs of discontent from customers about to buy software from a company, only to find that Sinclair has bought it and the price has been increased. If Sinclair continues to raise its prices in this way the company could sell less in the way of software and customers may go elsewhere in a large market. That would be a bad move.\r\n\r\nThe 'L' Game is produced by Quicksilva. It consists of some coloured tiles on a board which are originally in the shape of an 'L' but which the computer manages to mix extremely well. The player then has to slide the tiles back into the correct order to form the 'L' in the least number of moves. It is like doing a jigsaw puzzle with no edges.\r\n\r\nAlso included on the cassette with the 'L' Game are Mastermind and Pontoon. If you like puzzles, this cassette is good value for money.\r\n\r\nFlippit is from Sinclair Research and is a test of logic and arithmetic. The player has to get all the numbers or dots in a square in such a position that the values will be the same when added horizontally, vertically and diagonally. It is a puzzle which you will either love or hate.\r\n\r\nThe game is like a giant magic square and if you are adept at spotting combinations and have a fast calculation rate you should be able to do the puzzle fairly quickly. So far I have managed to fit the puzzle together with only two pieces remaining out of sequence. The problem is that the instructions are not so good as the puzzle and you could have difficulty in getting started.\r\n\r\nFlippit is suited to those people who like IQ tests to learn their so-called intelligence quotient. I think that the only thing IQ tests prove is that a person can do an IQ test but if you want to learn what your rating is you might like to try The Cattell IQ Test.\r\n\r\nI would be interested to hear your views on this or any other IQ test and also the marks you gained. Do not cheat. The Spectrum is ideally suited to such an application but is the application valid.\r\n\r\nI hope that I have provided you with some ideas about the mind games on the market, especially those suitable as Christmas presents. You should not have too much difficulty deciding what to buy even though there is a wide area to cover.\r\n\r\nMelbourne House, [redacted] - The Hobbit\r\n\r\nCarnell Software, [redacted] - Volcanic Dungeon, Black Crystal, The Wrath of Magra\r\n\r\nSinclair Research, [redacted] - Artic Adventures A, B, C, D, Flippit\r\n\r\nQuicksilva, [redacted] - 'L' Game.","ReviewerComments":[],"OverallSummary":"","Page":"64,65","Denied":false,"Award":"Not Awarded","Reviewers":[{"Name":"John Gilbert","Score":"","ScoreSuffix":""}],"ScreenshotText":[],"BlurbText":[{"Text":"'Flippit has been put on a parallel with the Rubik Cube. It certainly is a maddening puzzle and almost impossible to master completely.'"},{"Text":"'The Spectrum will tell you if it is worth applying for membership of Mensa.'"},{"Text":"'If Sinclair continues to raise its prices in this way the company could sell less software and customers may go elsewhere in a large market.'"}],"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":"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":"","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 assembly languag.'"}],"TranscriptBy":"Chris Bourne","ReviewScores":null,"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":[]}]}]