REVIEWS COURTESY OF ZXSR

The Complete Spectrum ROM Disassembly
by Frank O'Hara, Ian Logan
Melbourne House
1983
Sinclair User Issue 16, Jul 1983   page(s) 81

GUIDES FOR BEGINNERS

John Gilbert reviews the latest titles on the bookshelf.

Publishers are beginning to realise that there are few general introductory books to computers on the market. Several new titles have been released in the last few months and they have steered clear of introductions to specific machines.

The Pre-computer book by F A Wilson is published by Bernard Babani. The book has an odd title but that is the only strange thing about it. Wilson provides an introduction for the complete beginner. The concept of the computer is examined, together with such diverse subjects as number bases, hardware and simple programming. As a result it covers a great deal in very few pages.

The book will satisfy your curiosity if you want to know what a byte is or where to find the ROM of a machine, but if you are looking for very detailed information, this general guide is not for you and does not pretend to be.

The Pre-computer Book costs £1.95 and is one of the least expensive books which have been reviewed to date.

Another book for the complete beginner is Programming for Real Beginners from Shiva Publishing. The author is Philip Crookall. It is a general introduction to computers and does not stay on the theme of programming. It may be useful to someone who is beginning a course in computer studies and would suit anyone doing CSE or O level. It is available for £2.95.

For people who want to go a few stages further, Century Books thinks that it has provided the definitive text on Sinclair machines with its Century Computer Programming Course. What it has done is to publish a massive tome of text which is not indexed in any way. The book contains some interesting information on both machines but there is no way to find the information quickly. A proper index would, most probably, occupy another 10 pages.

While the expansion into the general sector of the market has been taking place, more Spectrum books have appeared. The state of play seems to be that anyone will do anything for a Spectrum.

The Century Computer Programming Course is written by Peter Morse, Ian Adamson, Ben Anrep and Brian Hancock. It costs £9.95 and is well worth the money.

The recent release of the Complete Spectrum ROM Disassembly, by Dr Ian Logan and Dr Frank O'Hara, must be a great relief to many machine code programmers who want to get to grips with the Z-80A processor inside the machine.

The book is published by Melbourne House and gives a detailed breakdown of all the routines in the ROM, including information on I/O routines, arithmetic and floating point calculations and the re-start routines at the beginning of the ROM.

The Complete Spectrum ROM Disassembly costs £9.95. It is slightly overpriced, although the information is worth having.

A book on machine code, Spectrum Machine Code, has been published by Shiva. The authors are Ian Stewart and Robin Jones and their handling of the subject is excellent, so far as it goes.

The book is very thin, although it provides a great deal of information. The chapters on the display and attribute files of the Spectrum are very interesting and will be of immense value to anyone who wants to use machine code graphics within programs.

Spectrum Machine Code is part of the Shiva Friendly Micro series and costs £5.25.

Advanced Graphics with the Sinclair ZX Spectrum by I O Angell and B J Jones is published by Macmillan Press. The authors are obviously academics, as the book seems to be aimed at those with a great technical understanding of the Spectrum and also a knowledge of Cartesian Co-ordinate geometry. It is written rather like a treatise, with many references to other books in the main text.

It is well-presented and provides plenty of technical information. The authors show how to develop arcade-quality graphics and also go into the realms of three-dimensional animation. The problem is that many Spectrum users would lose their way in the book, not because of any failing on their part but because of the authors' narrative style. Advanced Graphics with the Sinclair ZX Spectrum costs £9.95.

The ZX Spectrum - Your Personal Computer is published by Prentice/Hall International and written by Ian McLean, Simon Rushbrook Williams and Peter Williams.

The first third of it is taken-up by drawings of the Spectrum keyboard with marks showing the relevant key positions. Some readers may regard that as an insult to their intelligence, as all of those key functions are marked clearly on the Spectrum.

There are, however, several redeeming features. The text is clearly set out and the examples are excellent. The chapter on loading and saving programs is useful but merely repeats the one in the Spectrum manual.

It is a useful adjunct to the Spectrum manual and costs £5.95.

Melbourne House (Publishers) Ltd, Glebe Cottage, Glebe House, Station Road, Cheddington, Leighton Buzzard, Bedfordshire LU7 7NA.

Bernard Babani (Publishing) Ltd, The Grampians, Shepherd's Bush Road, London, W6 7NF.

Shiva Publishing Ltd, 4 Church Lane, Nantwich, Cheshire, CW5 5RQ.

Macmillan Press, 4 Little Essex Street, London, WC2R 3LF.

Prentice/Hall International, 66 Wood lane End, Hemel Hempstead, Herts, HP2 4RG.


REVIEW BY: John Gilbert

Transcript by Chris Bourne

ZX Computing Issue 16, Dec 1984   page(s) 108,109

For those of you interested in acquainting yourself with the joys of Spectrum machine code, then, before I go any further, may I highly recommend both of these books.

The first of these two titles, Spectrum Machine Language, takes the would-be programmer right from the fundamentals of machine code, through to some of the refinements of the computer's native language. The reader is not dropped in at the deep end from the very start, but is led in gently with clear explanations but this is where one of my few criticisms comes in: at the beginning, in an attempt to interest the reader, the author tries to joke, and in some places he succeeds in his aim of putting the reader at ease, but after a while, some people might find Tang's humour slightly patronising; I suppose this does however, depend on whether you have a similar sense of humour or not.

The book deals with most aspects of machine code, with the advantage (to Spectrum owners anyway), of dealing specifically with one computer, and is therefore able to go into some detail when dealing with sound and the display. Indeed, at the end, there is 'an exciting, original arcade game' - the publisher's immortal prose, not mine - fully explained in six stages in the proceeding pages, and although not very original, as it appears to be yet another version of 'Frogger', it forms an important part of the book, because it shows how your newly-acquired knowledge can be brought together to create a machine code program.

As I said, it deals with most aspects, but contains only a few paragraphs on some Z80 instructions, eg those dealing with interrupts and restarts (RST), probably because the book is only meant as an introduction, but if this is the case, then why did the author simply leave these sections out? B.C.D. (binary coded decimal) arithmetic, I found, was not very clearly explained, the only area where this criticism is justified.

After I had read through most of the book, I sometimes found it frustratingly difficult to look up a certain subject, mainly due to the very poor index - a feature sadly very common in micro books and also the fact that each instruction was usually quite slowly introduced - a good idea when learning, but it means a lot of searching when referring back to check up on something not clearly understood. Included in the book are eight useful appendices and two uninspired monitor programs written in BASIC; perhaps a useful inclusion would have been a summary of the functions of each instruction and the effect on the flags, which would have been handy for reference.


REVIEW BY: CTC Gibson

Transcript by Chris Bourne

Your Spectrum Issue 2, Mar 1984   page(s) 73,75

CRACKING THE CODE

Machine code is often the stumbling block that stands int he way of those looking to take a more serious approach to Spectrum programming. Books there are a' plenty, but as ever it's horses for courses. Gary Marshall looks at the form.

It's an indisputable fact that the Spectrum can be made to do just about everything that's possible by programming it in machine code. A claim like that is much harder to make for other programming languages, for instance Basic, because although any computational task can be described, it may not always be performed fast enough.

A program written in any other language than machine code must first be translated into code by the computer before it can be executed - a task which inevitably takes some time. And speed of execution can be reduced further still in circumstances where the computer's translated code has failed to achieve the standards set by an expert human machine code programmer. Consequently, when it comes to speeding things up a bit, machine code is still the best answer. There's also the added advantage that machine code programs are a good deal harder to copy.

Input machine code programs to your Spectrum and you are presenting instructions direct to the Zilog Z-80 microprocessor in the language it understands. The number of instructions in this language is fairly limited and corresponds to the number of operations the microprocessor can perform. But the point is that the programmer deals directly with the electronic hardware, without any recourse to the Basic interpreter. That alone is a very good reason why Spectrum owners should get their hands dirty and find out exactly what's going on in that nifty little box of tricks.

But if all this sounds a bit complicated, not to worry because considerable benefits can be acquired without necessarily going the whole hog. Most Basic programs contain sections which take up a high proportion of the processor's time - elements known as 'critical segments' in the jargon. Programs can be speeded up considerably just by writing these critical segments in machine code.

Finally, before examining the outpourings of various writers on learning the art of machine code programming, it may be worth speculating on whether we ought to be using machine code at all!

In the non-microcomputer world of mainframes and the like, the trend is away from the use of machine code and more towards the structured high level languages. There could be a lesson to be learnt from this, especially with the launch of the Micro Prolog package - a version of the fifth generation language, Prolog (see Frontlines this issue). Overall, however, it's fair to say the facilities offered at present by the fifth generation languages are not entirely suitable for the Spectrum user - so there are still one or two good reasons for learning how to program in machine code.

MAKING THE INTRODUCTIONS

There are already a large number of books available to help enthusiasts program the Z-80 processor, mostly written by electronics engineers and hobbyists. A starter book for Spectrum owners should be as good as these, while at the same time staying relevant to the Spectrum and showing readers how to manipulate the hardware.

And, as always, the newcomer also needs a finely structured and carefully paced presentation of reliable information. Of course, encouragement to actually set the fingers tapping is another basic necessity - the best way to learn program writing is not by sitting down and reading about it. Motivation is another problem area - learning about machine code programming is no bed of roses and even the most manically keen can become discouraged.

Introducing Machine Code by Ian Sinclair provides a gently paced introduction that takes Basic programming as its starting point. Then, by showing how Basic programs are stored and run, it carries on to cover the same areas for machine code. The book introduces a wide range of instructions which are illustrated by way of programming examples. Unfortunately, these example programs rarely turn the spotlight on aspects specific to the Spectrum; in fact, many seem downright incestuous as they are used to examine Basic programs.

The Ultraviolet assembler from ACS Software gets a mention and although its use is quite well demonstrated, a more detailed treatment of hand assembly methods would have been better still. Nevertheless, this book would certainly take the reader from zero knowledge to the point where the more advanced machine code texts could take over.

Another introductory tome comes from James Walsh in the shape of Spectrum Machine Code Made Easy, Volume One. He includes a number of potentially useful machine code programs for activities specific to the Spectrum - such as scrolling the screen and manipulating colours. He's also not afraid to make good use of some intelligent machine code tricks.

However, despite the quality programming, it would have been better if the author had taken the reader further into the subject. The coverage is not very well structured and the pacing leans towards the erratic; for example, after being lulled into the false sense of security that machine code is really easy, after 30 pages the unprepared reader is abruptly launched towards the fairly weighty concepts of Carry, Borrow, Minuend, Subtrahend and two's complement notation!

Most of the programs use instructions before they've been properly introduced and some are not covered at all. For this reason, Volume One on its own is rather limited. Volume Two (surprise, surprise) is the second and more advanced tutor in the series, which provides much of the necessary reference material you need to fully understand Volume One.

In fact there's something of a striking contrast between Volume One and Two in the Spectrum Machine Code Made Easy series. Whereas Volume One strolls at a leisurely pace, and is very chatty and highly inventive in its risque chapter and section headings, Paul Holmes' Volume Two proves altogether more brisk and workmanlike. It comes packed with machine code routines, and that alone makes it a valuable source of information. The only worrying aspect is whether Volume One is fully able to prepare new riders of the machine code plains for the coming demands of Volume Two.

But for the complete novice, there's Spectrum Machine Language For the Absolute Beginner and although little of it is in fact specific to the Spectrum, the book's treatment of Z-80 code is entirely adequate and there's some useful reference material thrown in for good measure. The text is well sprinkled with examples of machine code used well, and also includes a sizeable games program, along with valuable notes on its development. Your author, however, will decline entering it without an assembler!

Toni Baker's Mastering Machine Code On Your Spectrum proclaims itself as championing those who, although familiar with Basic, have no knowledge at all of machine code. But the text fairly rattles along, covering acres of material in a relatively brief time. While there's absolutely nothing wrong with this kind of approach, the feeling is that, rather than a beginner's book, this is for people who know rather more than they're letting on.

Toni conjours up some good programs with interesting applications, including one that produces music from the Spectrum's own speaker. Incredible!

Before moving on to the more advanced titles, there is one last text that you may like to consider should you be starting your machine code career. Tony Woods' Learn And Use Assembly Language On The ZX Spectrum provides a complete course in Z-80 assembly language, complete with many illustrative program examples.

MOVE ON UP

The programmer who has paid his or her base level machine code dues may well like the idea of a book that includes ideas for further programs and new techniques, as well as providing a good source of reference. If you manage to find it, let us know! The trouble is that budding beginner's book start to branch out and a great degree of specialisation occurs.

Ian Logan and Frank O'Hara explain exactly what's inside every Spectrum ROM in their book The Complete Spectrum ROM Disassembly. It's all there, from how the screen is handled to the way Basic actually works. The book shows the location of all the routines in the ROM, so that programmers are able to call them into their own programs. And because the programs are all listed, the book is also a storehouse of programs and techniques.

Another publication that strikes the same vein is The Spectrum Machine Code Reference Guide. Although it didn't arrive in time for review here, the word is it contains a full disassembly listing of the 16K Spectrum ROM as well as a machine code programmer's guide to the Microdrives and Interface 1 unit; it sounds as if it could be worth a look.

Much of the material in Ian Logan and Frank O'Hara's ROM disassembly book appears again in Dr Logan's Understanding Your Spectrum. However, there s also useful stuff on how to use subroutines in the ROM, and by far the best reference section on the Z-80 instruction set your author has seen. The text also provides valuable data on the avail- able assembler and disassembler packages.

Last of all in our round-up, there's Super Charge Your Spectrum by David Webb. This is essentially a library of machine code programs, on hand for liberal sprinkling into Basic programs as and when required. Included amongst this amazing collection is a routine for developing Basic programs, and a number of useful utilities, for instance, a renumberer.

CONCLUSIONS

Your author has to admit a slight disappointment with the beginners' books. None seemed as good as the 'professional' Z-80 texts available, although in fairness this is compensated by the fact that they are specifically designed to be used with the Spectrum.

The more advanced books, however, have no apologies to make. They show exactly what the Spectrum can do, and how it can be made to do it, and all are intimately linked to the Spectrum. If ever you feel in need of encouragement as you stumble slowly through the early steps, check out the more advanced titles and see what you're missing. Inspiration - and motivation should soon follow.


REVIEW BY: Gary Marshall

Blurb: WE LOOKED AT... Introducing Spectrum Machine Code by Ian Sinclair. Granada ISBN 0 246 12082 7. £7.95 Spectrum Machine Code Made Easy, Volume One by James Walsh. Interface Publications ISBN 0 907563 43 0. £5.95 Spectrum Machine Code Made Easy, Volume Two by Paul Holmes. Interface Publications. ISBN 0 907563 44 9 £5.95 Spectrum Machine Language For The Absolute Beginner by William Tang Melbourne House ISBN 0 86161 110 1 £5.95 Mastering Machine Code On Your Spectrum by Toni Baker. Interface Publications ISBN 0 907563 23 6 £9.95 Learn And Use Assembly Language On The Spectrum by Tony Woods. McGraw-Hill ISBN 07 084705 3 £6.95 The Complete Spectrum ROM Disassembly by Ian Logan and Frank O'Hara. Melbourne House ISBN 0 86161 116 0 £9.95 The Spectrum Machine Code Reference Guide by Richard Ross-Langley. Interface Publications ISBN 0 907563 51 1 £4.95 Understanding Your Spectrum by Ian Logan. Melbourne House ISBN 0 86161 111 X £6.95 Super Charge Your Spectrum by David Webb. Melbourne House ISBN 0 86161 1128 £5.95

Transcript by Chris Bourne

Sinclair User Issue Annual 1984   page(s) 81,82,83

PUBLICATIONS OF VARYING QUALITY AND QUANTITY HAVE GONE ON SALE DURING THE YEAR. JOHN GILBERT LOOKS AT THE GROWING BOOKSHELF AND SELECTS SOME TYPICAL EXAMPLES OF RECENT DEVELOPMENTS.

YOUNG AUTHORS GET OPPORTUNITY.

John Gilbert assesses publishing.

The Computer publishing market has developed so quickly this year that publishers have been desperate to lay their hands on anyone who knows something interesting about Sinclair computers, programming techniques, or who has some programs they want to sell.

Some publishers have even asked teenagers to write books because insufficient adult writers have been able to get to grips with the subject. That kind of move sets a precedent in the publishing industry. No other sector has ever sought young writers with such vigour. If you can write and you have an above-average knowledge of computers there is a good chance that a publisher will contract you for at least one book. The problem is, and has always been, that young writers know little about the publishing industry and, through no conscious fault of the signing company or the young author, writers do not obtain everything they should. Fortunately that does not happen often but it is a side-effect of the market growth and the urgency with which publishers seek titles. The youngest writer of the year must be Patrick Bossert, author of the Penguin You Can Do The Cube. In August, Penguin released one of its first micro-computer books by the 14-year-old. Unfortunately Micro Game: was little more than a book of listings, a stage though which many companies such as Shiva Publishing, Interface and Melbourne House passed earlier in the year.

Penguin seems to have relied on Bossert's fame with the Rubik Cube and that the puzzle and computers share the same intellectual image in the public mind. Just because Bossert can do the cube, however, does not make him an automatic genius at computer programming.

The concepts for most of the programs in his book existed earlier in the year when all you could buy in terms of the Spectrum were books of listings. There is little that is new in the title - a pity, since it is from Penguin, a publisher renowned for its quality of output.

Books of listings were popular at the beginning of the year when the ZX-81 had more of the limelight than the Spectrum. Authors such as Tim Hartnell were having at least one book published a month. Most of those books were for the ZX-81, as most publishers had not yet advanced to the Spectrum, although it was launched in April, 1982.

Before the beginning of 1983 the only publishers to try for something extra from the ZX-81 were Interface, Melbourne House and Shiva. All were still small but it is a mark of their innovation which shows their success and expansion to date. Now all three have a large share of the publishing market where Sinclair machines are concerned.

By May all three companies had done something different for the Spectrum market. Machine code programming for the Spectrum was a subject which would sell books and the big three publishers knew it.

Shiva produced Spectrum Machine Code, by Ian Stewart and Robin Jones. It was launched as part of the Friendly Micro series and, although it did not cover the area in as much depth as some of the American books about the Z-80 processor, it provided an excellent grounding in machine and assembly language. It also added a humorous element missing from many other books with 'bug' cartoons spread throughout the pages.

The other publisher renowned for its stock of titles on machine code is Melbourne House. It has two machine code titles which cover the ZX-81 and Spectrum. Both are similar in approach and it seems as if the Spectrum version was edited from that of the ZX-81, with extra examples showing colour and sound added.

The other range of machine code books from Melbourne House is by Dr Ian Logan and, in the case of The Complete ROM Disassembly, written with Dr Frank O'Hara. The books are excellent value and contain a good deal of necessary information for the machine code programmer.

Because of his knowledge of the Spectrum ROM, Logan was asked by Sinclair Research to write the routines for the Microdrive ROM. As a result, and with the blessing of Sinclair Research, he wrote the Spectrum Microdrive Book. It includes much information about the drives, Interface One and the possibility of adding or patching-in extra commands to the Basic.

The emergence of the book resulted in a rash of similar texts from publishers trying to keep in the race for the most up-to-date information. In most cases the follow-up texts represented a rearrangement of the original but, unfortunately, that is not so with the new Microdrive texts from Interface and Sunshine Books.

When first exhibited at the Personal Computer World Show in September, the Interface book was little more than a slim cardboard-bound photocopy. It was planned to use it as the basis for a 'proper' publication. The Sunshine effort, however, was better-presented.

The author of the Sunshine Master Your ZX Microdrive is Andrew Pennel, a friend of Logan. His book contained information which Logan's could not. One reason was that he was not limited by what he could say. Although Logan speaks with an authority which is difficult to match, Pennel's book is slightly better as it contains information which Sinclair Research did not want used in Logan's book.

Even with the restrictions, however, the Logan book is good value so far as money and information are concerned.

The release of the Microdrive texts has introduced a new area to the computer publishing market. We have had books on machines, books of listings, and books showing software techniques but there had, until then, been no books on one specific peripheral for a machine.

The Microdrive seems to have opened an area which could soon include how to get the best from your sound generator or using a disc drive with a Spectrum. Book titles such as that may seem absurd now but with the way books are becoming so machine-dependent, and with the search for new areas to write about, such titles may become available.

The information in the Melbourne House book on the Microdrive contains a good deal of machine code. The publisher is still determined to introduce machine language anywhere it can and the release of another machine code book for the Spectrum was inevitable before too long. The new book is Supercharge Your Spectrum and many pages are occupied by machine code listings. They include routines to search for strings in programs, re-number lines, and delete blocks of lines. It has proved extremely useful to Spectrum owners who know nothing about machine code but who want toolkit routines without having to buy several cassette-based programs.

It is useful in another respect. It is possible for someone just learning about Z-80 machine code to read the program listings and get an insight into how programs are structured and the way in which some statements can work with others. It also provides an incentive to use some of the routines in your own machine code programs.

Not all publishers are interested in machine code and the market has plenty of support from companies with other ideas. Yet another new type of book was launched for the Spectrum by Sunshine. Until the release of Spectrum Adventures, by Roy Carnell and Tony Bridge, computer owners interested in adventure games-playing or writing had to rely solely on magazines.

The new book improved that situation, however, and showed the reader how to write graphics adventures. Little is said about decoding player responses or generating textual adventures but the book still marks a new area for publishers to exploit.

While the areas which belong to the games and utility sector have developed by leaps and bounds, the business and education markets are still nothing more than a mess. Little has been done in book form to aid this ailing though very important part of the industry. There have been a few general books on business applications, such as Databases for Fun and Profit from Granada, but little business-orientated work has been done.

The same is true of the education market, although some publishers, such as Granada and Longmans, are starting to see the potential. The object seems to be to produce as many programmer-orientated books as possible. Unfortunately that leaves the market for the computer user who does not want to be bogged down by technology as undeveloped as it was early in the year.

Several new areas in the publishing industry include machine code programming and programming techniques. They are over-developed and that is proving expensive to the other users who want to use Spectrums at home or at school for accounts or homework.

In the end that can only do the market and, indirectly, computer manufacturers, a good deal of harm. The areas in which computers can be used, such as education and business, will be under-developed. Many children will know how to program but very few will have ideas on how to use those programming talents.

Interface, 44-46 Earls Court Road, London W8 6EJ.

Melbourne House, 131 Trafalgar Road, Greenwich, London SE10.

Puffin Books, Penguin Books Ltd, Harmondsworth, Middlesex.

Shiva Publishing, 4 Church Lane. Nantwich, Cheshire CW5 5RQ.

Sunshine, 12-13 Little Newport Street, London WC2R 3LD.

Grenada, 8 Grafton Street, London W1X 3LA.


REVIEW BY: John Gilbert

Blurb: 'While the areas which belong to the games and utility sector have developed by leaps and bounds, the business and education markets are still nothing more than a mess.'

Transcript by Chris Bourne

All information in this page is provided by ZXSR instead of ZXDB