Mastering Machine Code on Your ZX81 by Toni Baker. Reston Publishing Company. 180 pp. paperback; $12.95.
Though written for the ZX81, Mastering Machine Code on Your ZX81 applies equally well to the Timex Sinclair 1000. Each chapter also includes addressing and programming procedures for the ZX80. The light conversational style is both entertaining and understandable.
The topics covered include: machine code loader programs, hexadecimal numbers, assembler mnemonics and commands. PEEKing and POKEing, MC storage, the stack, pushing, popping, negative hexadecimal numbers, subroutines in MC programs, the ROM and its many useful routines, music, the display file, some MC games, ROM disassembly, and the use of the ROM arithmetic subroutines.
Many annotated machine code routines illustrate the book. Since the Basic equivalents of the assembler commands are given, you can relate what you are learning to what you already know. Each chapter from four on concludes with exercises which are very important. If you do not do them, you will miss out on a great deal. However, the very first exercise could have been easier. Chapter 9 is worth the price of the book and more. It has a machine code program that allows you to List, Write, Insert, Delete, and Save your MC programs.
The appendices are excellent and include: the old and new ROM system variables with their addresses in hexadecimal and decimal, conversion tables for assembler to hex and hex to assembler, the ZX character set, and another complete listing of the machine code editing program.
If you may find the use of hexadecimal throughout the book inconvenient or cumbersome to use, you can use a converter program to shift to decimal when you do your own programming.
Mastering Machine Code on Your ZX81 is an understandable and entertaining guide that can take you, as it did me, from total ignorance of machine code to a fair comprehension, provided you are interested in learning machine code and willing to invest the time. It took about a month of my spare time to work my way through the book although that month was not entirely frustration free. While I am not quite a master of machine code, I can now write machine code to suit my purposes. And, though my programs may lack the elegance of greater experience, they really work.