It is difficult to believe that it is nearly two years since I reviewed Chris Snee's Master 512 User Guide for BEEBUG (see Vol.8 No.1), and we expected the Master 512 Technical Guide to be available that summer. Well here it is at last, but was it worth the delay?
This book is twice the size of its companion volume mentioned above. Running to 416 pages, there are 11 chapters and 12 appendices, the latter occupying well over half the book! But maybe that in itself gives a feeling for its content. The 'main' part of the book consists of a description of the whole interlocking 6502-80186 twin system, and the appendices are mainly reference material. The first part of the book is constructed as follows:
|1.||Chapters 1 and 2 form a short introduction, system overview and a 12-page look at the 80186 itself. This is a brief and simple description of the processor, its registers, memory segmentation and addressing techniques.|
|2.||Chapters 3 to 5 outline the way in which the 80186 monitor program (which appears when you do a 'soft Break') works and responds, and also details the system initialisation and boot procedures, the downloading of the communication program 6502.SYS which will sit in the BBC, and the way in which messages are sent between the two processors.|
|3.||Chapter 6 begins a more technical set of chapters about the access points which DOS has to the various BBC OS calls (OSASCI, OSFILE, OSBYTE and the like). These access points are known in 80186 terms as 'software interrupts', and Chapter 6 describes and lists the correspondence between them and the OS calls. Chapter 7 outlines the DOS philosophy of running a program (.EXE, .COM, .CMD and .RSX files - the latter being quite new to me), and Chapter 8 is an overview of the software interrupts. Chapter 9 is a little easier to read and outlines the structure of the various disc formats which are used by DOS.|
|4.||Chapters 10 and 11 complete the first part of this technical guide and are full descriptions of the MOVE and EDBIN programs whose function and operation was only briefly indicated in the companion volume.|
The software interrupts which I referred to above are identified by a number and a subnumber. As will be very familiar to MS-DOS programmers, Interrupt 21 (hex) is the principal system access point from an assembly program to the operating system (analogous to the JSR &FFxx's of the 6502). Appendices A to C contain nearly 100 pages of details about this and other interrupts, but new to those fluent in MS-DOS will be the function 224 calls which are in origin CP/M 'BDOS' operations and take the place of the PC's BIOS calls.
Appendix D is a list of disc formats and Appendices E and F contain a fully commented (6502) assembly source code listing of the Tube Host Code and 6502.SYS, printed by permission of Acorn, (which was also given for the backpage foldout circuit diagram of the full 512 coprocessor).
Thus far we have 330 pages packed full of information, but the remainder of the book is quite different. Appendix G outlines hardware projects to upgrade the processor speed by 20%; to construct a 512K RAM expansion board and to add a hard disc unit. Readers will forgive me if I did not attempt my own upgrades in assessing this book!
The remaining sections of the book consist of a list of third party products, both hardware and software (BEEBUG gets a mention for its 512 Forum), a glossary, details of the optional accompanying disc and the obligatory list of other Dabs Press books.
I found the book fascinating: Robin's admiration for Acorn's ingenuity shows through on every page, but in reading it I found myself continually asking who the book was written for. In comparison with (say) the readers of the BBC Advanced User Guide there can be only a handful of people who will write applications for the 512. Maybe more will construct a 512K expansion board but I puzzled for some time over who would value the book. But in looking at the contents of the accompanying disc I began to see a larger target audience.
On this disc can be found some time-limited demonstration copies of Essential Software products (reviewed in Vol.8 No.5 and Vol.9 No.1); a copy of BBC Basic (512) which Robin has previously distributed, and an excellent shareware assembler/debugger called A86/D86. There are also some demonstration programs with source code for you to assemble and investigate yourself.
So maybe here lies the clue to an extended readership: like all BBC Basics this one contains a built-in assembler, so with the stand-alone assembler and sample programs you have an excellent start into the world of 512 assembly programming. In BBC terms, buying this book and disc is the equivalent of buying an Advanced User Guide and a copy of BEEBUG's Exmon. And a large number of BBC programmers started out in exactly that way.
In terms of information content, the 512 Technical Guide has no equal. In terms of value in the PC world you could expect to pay around £40 for this sort of information. If you're interested in the workings of the 512 at all then this book at £15 (or £20 with disc) is superb value for money.
Well done Robin and Dabs. Another winner.