A&B Computing


Assembly Language Programming On The BBC Micro

Publisher: Addison-Wesley
Machine: BBC B/B+/Master 128

 
Published in A&B Computing 1.08

Yet another book on assembly language and machine code? Yes, another one, but this one has been around for several months, and if you are thinking of launching into machine code it could be a good investment.

The two authors have a clear and readable style, and overall the book has a sensible approach. The first two chapters are very useful, dealing with the essentials of how the computer and the microprocessor actually operate. Anone who does decide to buy the book would be well advised to spend some time on them as they give valuable background that helps enormously in getting a proper understanding of how machine code actually works. The explanation of machine code instructions in chapter two is exemplary.

The third chapter is in the same category, going thoroughly over the asembler. The authors then explain machine code subroutines, and introduce the two simplest operating subroutines straight away. This is unusual, but in my opinion a very good way to attack machine code programming, since it gives the beginner a feeling of power right away. Starting assembly language is frustrating enough without feeling you cannot even detect a key being pressed or write a character on the screen.

From there on, the book tackles everything one needs to know to begin programming, and covers all the mnemonics, even the rather obscure ones. There is an excellent section on where to put your assembled machine code, and a lot of diagrams and sample programs to help. The longer programs at the end of the book are genuinely useful as well as instructive.

As usual there are a few misprints and printer errors, some more serious than others. The example of two-pass assembly on page 66 of my copy was wrong, and would not work, but other misprints were relatively minor.

The section on the command line interpreter (pages 49-50) could have been deferred till later, I felt, and perhaps the explanation of the stock preceding it as well. Otherwise the book is excellent and beginners will particularly appreciate the good sample programs, including a most useful one to output VDU sequences by looped calls to OSWRCH (pages 73-75).

The book makes good use of a variety of typefaces, though one of these was bordering on the illegible on the rather cheap paper. But with a glossary as well as an index, an appendix summarising all the assembler mnemonics, and sections on using CALL and USR from Basic, interrupts, the 1MHz bus, and the 6522 and 6850 chips, this is the kind of introductory book that can take the reader where he or she wants to go - all the way to writing powerful machine code programs that really make use of a powerful machine.