ZX Computing

The Complete Spectrum ROM Disassembly
By Melbourne House
Spectrum 48K

Published in ZX Computing #16

The Complete Spectrum ROM Disassembly

As the 'blurb' on the cover says, The 'Complete Spectrum ROM Disassembly' is indeed a "must for all serious programmers", but also a tempting treat for the average home user. It is what the title says; the whole listing in assembly language of the machine code control program in ROM which makes the Spectrum act as it does. The initial reaction is that this seems to be an interesting book, but one which does not really serve any useful purpose, a supposition which is totally wrong. All the routines are very fully and clearly explained by the authors, and when their comments are read, the reason a particular instruction was used and what part it plays in the routine should be clear to anyone with some knowledge of assembler.

While it is not meant to be read from cover to cover like a novel, it does help the programmer to incorporate some of the ROM's routines in their masterpieces, and hopefully learn from the techniques employed. For example, rather than waste memory by writing a 'CLS' routine, a quick delve into the book reveals that this routine resides at 0D6B (hex) and so can be CALLed.

The restart routines, very often not dealt with by other machine code books although some are very useful, are of course explained in detail, as, in particular, are the arithmetic routines, which are handled exceptionally clearly and concisely with several example BASIC programs.

The book is split into 10 logical sections, each handling one particular area of the ROM, e.g. the loudspeaker routines and the screen and printer handling routines,, all of which are preceded by a short introduction before the actual disassembly begins. A complete list of the titles of all the routines is given at the back of the book.

At £9.95, it is expensive, but if you have the money, it is well worth buying.

To sum up, bought together, these two books form a formidable combination, as once you have mastered most of machine code, wth Spectrum Machine Language, the ROM disassembly should enhance your programming techniques and programs. However, bought separately, they seem to be the best of their kind in their particular field. Very highly recommended.

GTC Gibson