TRS-80 assembly language subroutines. (book reviews) Steve Gray.
TRS-80 Assembly Language Subroutines
The front cover says this is "A collection of easy-to-use subroutines for your TRS-80,' and the back cover says using them "can increase productivity and reduce the tediousness of programming.'
Deciding which assembly language subroutines to publish is difficult; you can't please everybody. Ten of the 65 subroutines are for conversion, such as ASCII binary or decimal or hex or octal to binary, or vice versa. Seven are for graphics, including drawing horizontal or vertical lines, boxes, or moving dots. Four involve comparing or searching strings. Nine are math subroutines for multiplying or dividing 8 by 8, or by 16, or adding or subtracting multiple
precision BCD. Four involve display: scrolling the screen up or down, or clearing it.
Each of the 65 subroutines is very well documented, and includes a complete description of what the subroutine does, the I/O parameters, the algorithm, a sample calling sequence with input and output values, notes on special uses or features, a decimal listing, and a CHKSUM on the validity of the data.
Each subroutine is usable as given, so it doesn't have to be used in a Basic program, and each is completely relocatable. They are all slanted toward the Models I and III, but many can be used on the TRS-80 Model II.
For those needing an introduction to assembly language programming, the two opening chapters provide 24 pages that help you to understand the use of the subroutines. However, a few drawings would greatly help in understanding Z80 registers, instructions, and addressing modes. And some sections, such as on relative addressing, are too tough for beginners.
For those who haven't the time or inclination to learn to write in assembler, this book provides the next best solution, assuming you need enough of the subroutines provided. Barden usually writes clearly and concisely, and the book--with the few exceptions noted--is a model of excellent writing, editing and production.
Review Grade: C