TRS-80 Assembly Language Made Simple
|Title:||TRS-80 Assembly Language Made Simple|
|Author:||Earles L. McCaul|
|Publisher:||Howard W. Sams & Co, Inc.|
There were many excellent books written for people who wanted to learn about TRS-80 Model I assembly language programming, such as TRS-80 Assembly Language Programming by William Barden or Programming the Z80 by Rodnay Zaks. But my favorite book was a less famous one called TRS-80 Assembly Language Made Simple by Earles L. McCaul. I think TRS-80 Assembly Language Made Simple was the best book for teaching not just the specifics of assembly language, but also the mindset for effective assembly language programming.
According to an account by Earles L. McCaul, TRS-80 Assembly Language Made Simple came about through his work as an instructor at Arizona Western College in Yuma, Arizona. At the time, Arizona Western College offered only two microcomputer programming courses: one for BASIC and another for Intel 8080 machine language. He proposed creating an “intermediary” course that dealt with programming in assembly language for the TRS-80. His proposal was accepted by the college on the condition that he find an appropriate textbook for the course.
McCaul approached various publishers looking for just such a book, but with no success. The Blacksburg Group didn’t publish a suitable book, but they suggested that McCaul write one himself. The resulting book was TRS-80 Assembly Language Made Simple, one of the more than seventy books that were part of the Blacksburg Continuing Education Series published by Howard W. Sams & Co, Inc.
There are eight chapters in TRS-80 Assembly Language Made Simple:
- Why Assembly Language?
- The Z80 Microprocessor
- Getting Acquainted With T-BUG
- TRS-80 Memory Map
- Formatting, Moving, and Converting Data
- Arithmetic and Mathematic Functions
- Cassette, Printer, and Port I/O
- Putting It All Together
There are also seven appendices containing additional useful information, such as a numerical list of all the Z80 opcodes (something surprisingly difficult to find at the time), a summary of all the Z80 instructions that affect the flags, and a list of the most important Level II BASIC ROM routines.
One of the best parts of the book is a chart titled “Tips, Tricks, and Techniques ( … Things I Wish They’d Told Me Before … ).” The chart is a list of sixteen quirks or unusual details that are apt to trip up a beginning TRS-80 assembly language programmer.
I think that TRS-80 Assembly Language Made Simple excels at presenting assembly language programming in very practical terms. I always liked this discussion of the pros and cons of using assembly language:
Because of its speed, assembly language is sometimes the only alternative, such as real-time processing of data, performing lengthy iterations or repeated operations, and sorting large arrays of data. A rule-of-thumb for determining when to use assembly language is, “If money can’t buy it, use assembly- or machine-level language.” Loosely translated, this means that when time or extra memory beyond what’s available is needed, the only alternative is to utilize either assembly- or machine language. Why? Because money cannot buy time, nor can it buy 2097 bytes of memory for a 2096 byte memory computer.