Microsoft BASIC Decoded and Other Mysteries
|Title:||Microsoft BASIC Decoded and Other Mysteries|
|Author:||James Lee Farvour|
There were many books that documented and disassembled the TRS-80 Model I ROM, but Microsoft BASIC Decoded and Other Mysteries by James Lee Farvour was the most famous.1 Microsoft BASIC Decoded and Other Mysteries, volume 2 in the IJG’s TRS-80 Information Series, includes a complete overview of the Level II ROM in the TRS-80 Model I and is one of the best sources of information about the TRS-80 BASIC ROM. It cost $29.95 when it was introduced in 1981. A January 1982 review in 80 Micro said “Without a doubt, it is the most comprehensive book on Level II BASIC ROM to be published so far.”
Microsoft BASIC Decoded and Other Mysteries is made up of two sections. The first half of the book collects a wide assortment of details about BASIC, including some details not commonly found elsewhere. This includes information such as reserved BASIC keywords, functions and entry points, the format used for cassette storage, even the formulas used by the BASIC math functions such as SIN and COS. One chapter covers disk operating systems, which weren’t even part of Microsoft BASIC.
The final chapter of the book takes up the entire second section. It is a complete disassembly of the original Level II ROM for the Model I. The listing, which comprises most of the book, was formatted to be exactly the same as the output of the disassembler included in NEWDOS. The main attraction of the listing is the extensive comments. They are very detailed and extend to the other side of the pages when necessary.
The disassembled listing is complete, with one exception: it lacks what are described as “extended mnemonics."2 For example, JR NZ,006DH is truncated to just JR. The hexadecimal opcodes are included, so it is fairly easy to complete the disassembly yourself for the parts you need.
The complete mneumonics were presumably omitted in an attempt to comply with copyright law and avoid the ire of Microsoft. According to Dennis Báthory-Kitsz, IJG never asked Microsoft for a license before publishing Microsoft BASIC Decoded and Other Mysteries.3 Even with the less settled state of computer copyright law at the time, it’s hard to understand how IJG dared to publish such a book with “Microsoft” in the title.
One unusual thing about Microsoft BASIC Decoded and Other Mysteries is the binding. It says in the book:
Unlike most books, this book is made to come apart. Due to the unique nature of the subject matter and the use to which it will be put, its pages may be removed and inserted into a three ring binder. The pages are pre-drilled, and the binding is such that the pages may be removed with little effort.
Unfortunately, this does mean that the pages in the book tend to fall out over time. Despite the mention of three-ring binders and pre-drilled pages, I’ve never seen a copy of Microsoft BASIC Decoded and Other Mysteries that had pre-punched pages.
In 1982, James Lee Farvour followed up with the book TRSDOS 2.3 Decoded and Other Mysteries. Like Microsoft BASIC Decoded and Other Mysteries, TRSDOS 2.3 Decoded and Other Mysteries also included a complete commented disassembly. However, this time IJG obtained permission first from Radio Shack before publishing the book.
In 1984, IJG published a book by Dale Buscaino titled IBM Basic Decoded and Other Mysteries. I have no idea if IJG obtained permission from IBM or Microsoft.
Other examples include The B00K from Insiders Software Consultants, Pathways Through the ROM from SoftSide Publications, and Level II ROMs from Tab Books. ↩︎
This applies to the original printed version of the book. The most common PDF version of the book on the Internet has the full mneumonics added. This is nice, but not an accurate representation of the original book. ↩︎
On the other hand, Bill Gates, in a 1980 interview with Dennis Báthory-Kitsz, appeared to regard the upcoming publication of Microsoft BASIC Decoded and Other Mysteries favorably, at least compared to another book which included the complete hexadecimal codes of BASIC. He may have been unaware that Microsoft BASIC Decoded and Other Mysteries was also going to include those same hexadecimal codes. ↩︎