REVIEWS COURTESY OF ZXSR

Spectrum Shadow ROM Disassembly
by Gianluca Carri
Melbourne House
1985
Sinclair User Issue 43, Oct 1985   page(s) 117

SHADOWING THE ROM

Publisher: Melbourne House
Price: £8.95 (paperback)

Exploitation of Interface One has been minimal but Melbourne House hopes to put that right with its new book, Spectrum Shadow ROM Disassembly by Gianluca Carri.

The book opens with a brief introduction to the use of hook codes and a description of those which can easily be used from Basic. They include accepting a character from the keyboard, and a test for key depression.

Carri devotes a section of the book to his extensions of Spectrum Basic. They allow you to POKE strings of characters into memory, add line numbers to the Basic EDIT command, speed up the microdrive CATalogue and produce pseudo-random file handling.

Each shortroutine is listed in assembly code format so you will need an assembler to enter it. The author has included a Basic loader program for those who do not want to enter the assembly code, which means that a long list of numbers has to be entered - such a process is prone to error.

Although the author shows how each of his new commands operate, together with information about how the machine code extensions work, he does not explain how they are patched into the Basic Operating System. As a result, the book only provides ready to run listings and not much new information for readers who want to get to the heart of the Shadow ROM.

The third, and most important, section is devoted to a complete disassembly of the Interface One ROM. The assembly language listing is split into subroutines.

Each routine is explained in a short paragraph and descriptions of each line of code are given opposite the appropriate line of the routine. An appendix at the back lists all the ROM routines together with corresponding entry points.

Carri has also included appendices on system variables, labels and how to tell whether you have got a ROM1 or ROM2. The technicalities involved may easily put off a beginner, but the book could be regarded as a source of reference for machine code programmers.


REVIEW BY: John Gilbert

Transcript by Chris Bourne

ZX Computing Issue 21, Oct 1985   page(s) 47

The last two books are machine code based and directed at the experienced programmer or perhaps very enthusiastic beginner. Both are published by Melbourne House, the former costing £8.95 and the latter £9.95.

Spectrum Shadow Rom Disassembly, by Gianluca Carri, is written in two parts. The first shows how to extend Sinclair BASIC to include various useful commands, random file handling on the microdrive, extended BEEP and EDIT commands. Full details of the implementation are given along with very clear explanations.

It is possible to add extra commands to the Spectrum with an Interface 1 unit, containing the Shadow ROM, because when an invalid command is found, a search is made in the existing Spectrum ROM. If this command is not present, then the Shadow ROM is searched. If the command is not found again, then it is at this point that we can jump to our own routine, and carry out the extra commands.

There are two types of Shadow ROMs, and this book accommodates both. There might even be another release of the Shadow ROM software, but the author still explains fully what to do if this is the case.

The second part of the book gives a full disassembly of the Shadow ROM in the Interface 1, and how to link up and use these various routines. This is ideal literature for the Z80 programmer wishing to either add commands to BASIC, access the microdrives via machine code or see what's in the Shadow ROM.

The second new book from Melbourne House is the Z80 Reference Guide by Alan Tully, which is intended as a reference manual for the Z80 programmer.

The book is designed to help the Z80 programmer, who perhaps is stuck with a programming problem, to choose the correct Z80 commands to use. An excellent chapter is included which lists the Z80 instruction set and where best to use the various commands. The bulk of the book is a summary of the Z80 instruction set, which gives full details of each individual instruction, along with the effect on the flag register and the timing of the specific instruction. Excellent examples of usage are also given for all but the most simple instructions.

The book covers a vast topic and is ideal for anyone interested in machine code, either to be used by itself or as a supplement to an existing 'Learn How To Program' guide. Although this book is expensive at £9.95, it is well worth having an empty pocket for all those who are into machine code (better still, you could rush out and enter our competition for copies of this book, elsewhere in this issue - Ed).


REVIEW BY: David Harwood

Transcript by Chris Bourne

Your Spectrum Issue 18, Sep 1985   page(s) 6

Melbourne House
£8.95

Here it is at last, a long-awaited literary offering from Melbourne House! The Interface 1 may have been around for months, but this is spankin' new!

The book takes you straight into the single most important concept you'll have to grasp about the Shadow ROM - hook codes. As you'll see from Andy Pennell's article on the subject in this issue, there are three versions of the Interface 1 ROM. One of the ways of getting round the problem this causes is using hook codes, as they re-direct routines to the right place irrespective of which version of the ROM you have.

You all know by now that with Interface 1 attached to your Speccy, adding extra commands in Basic is a fairly simple matter. Not nearly so many people seem to know how to add them or just how much power they can pump into a Speccy.

This is where the book comes in. Not only does it explain how to add commands, but it also gives some mighty impressive examples. For starters, there's a double POKE command which allows you to POKE in a sixteen bit number all in one go. Next, we have a string POKE command which POKEs a whole string of characters into memory at a given address.

There's an improved Beep command and a whole suite of commands to deal with the microdrives, and the RS232 serial port.

To get down to business, about a fifth of the way through the book, the actual disassembly begins. This part of the book follows the format of its forerunner. The Complete Spectrum ROM Disassembly. Both books have a section on each page on ROM Disassembly, split into separate routines, and documented right down to which input parameter are required in the registers and how the routine can be used.

At first sight, both books seem pretty similar but one slight difference is worth noting. Basically, the annotation in this book is much easier to understand so you'll pick up a whole lot more from it.

Reading the routine descriptions certainly taught me a lot about the workings of microdrives, the network and the RS232. One gem of information brought to light is that the shadow ROM contains a handful of routines that it never actually uses but, which have obviously been left off ever since the ROM was written. These routines are only for printing hex numbers and examining memory, but many programmers may find them valuable time savers.

The book ends on a rather impressive note, with a section of appendices summarizing everything from the Shadow ROM system variables to the workings of the microdrive and RS232. There's even a section on hacking around with the Shadow ROM yourself.

I can safely say, that this book goes way beyond my original expectations and it's a dam good buy too at £8.95.


Transcript by Chris Bourne

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