Mitch Waite

Computer book author, publisher, web designer, and entrepreneur

1984 – Assembly Language Primer

Robert Lafore’s seminal book, “Soul of CP/M,” rapidly gained acclaim as a Waite Group classic, validating our approach to programming education. This success inspired us to expand the teaching methodology, characterized by its engaging use of visual and audio effects, to a broader range of computer book subjects. However, the landscape of personal computing underwent a dramatic shift in August 1981 with the advent of Microsoft MS-DOS, developed by Bill Gates and Paul Allen at Microsoft. This new operating system, a direct competitor to CP/M, debuted alongside IBM’s first personal computer, the IBM PC, marking a pivotal moment in the evolution of personal computing, and a new focus for computer books.

MS-DOS, an acronym for Microsoft Disk Operating System, became instrumental in the widespread adoption of personal computers throughout the 1980s. Gates executed a remarkable business strategy by licensing MS-DOS to IBM while retaining the rights to license it to other computer manufacturers. This move proved to be a masterstroke; IBM, underestimating the potential for competition in this new hardware sector, agreed to what they perceived as a minor concession. However, the IBM PC’s hardware was relatively straightforward to replicate, and the BIOS, its primary protective feature, could be legally reverse-engineered in a clean room, circumventing patent, and copyright issues.

For us, the emergence of MS-DOS presented an exciting opportunity. Our portfolio already included several successful CP/M books, and the beauty of MS-DOS lay in its striking similarity to CP/M, barring a few technical nuances. We promptly acquired MS-DOS, seamlessly integrated it with our existing CP/M hardware and embarked on crafting a new outline for books on MS-DOS. This period also witnessed another significant development that further enriched our professional landscape.

Assembly Language Primer was the first book in the New American Library series and the most fun to write.

Our Offer: $1,000,000

In 1983 I crossed paths with John Brockman, a renowned New York literary agent who saw potential in my track record and presented me with a tantalizing proposition. John was confident that the big New York fiction publishers, eager to jump on the computer book bandwagon, could make me a wealthy man. He was a master of the art of the deal, stressing the importance of image in the publishing industry.

John’s strategy was bold: an auction where publishers would have 24 hours to place their bids on our titles. But before this could happen, New American Library (NAL) stepped in, eager to bypass the competition. In a whirlwind of negotiations, they presented me with a staggering offer: a 15-book contract and a $1,000,000 advance. The only fly in the ointment was that we not just had to write the manuscript, but also typeset and produce the gallies for the books. This was part of the reason they offered a $66,000 advance on each title.We all agreed the first 5 books were to be a series would be dedicated to the IBM PC, which was the perfect opportunity to create Assembly Language Primer for the IBM PC & XT with Robert Lafore as the author.

About Assembly Language Primer

The book was to be particularly effective for beginners and those looking to deepen their understanding of low-level programming. We came up with new ideas such as the chapter “Instant Program,” allowing the reader to dive right into writing and running their first assembly program. We tried to respect the learning curve inherent to grasping a low-level language by providing hands-on experience with immediate feedback through programming exercises, which is essential for mastering the precision and control required for assembly language programming.

Is a 1984 Book Still Relevant After 40 Years?

I’m writing this in 2024, and it’s almost unbelievable to find Assembly Language Primer for the IBM PC and XT is still being sold on Amazon and attaining positive reviews. For example, a reviewer from August 2021 praises the author’s ability to explain complex topics like x86 Assembly Language programming in an extremely understandable way, suggesting that the author’s skill and proficiency in the subject matter set him apart from others. Tim Wu commends the book for being a foundational text, specifically noting its efficacy for beginners wanting to learn assembly language for the XT. He points out that the book’s use of DEBUG with DOS Service Routine allows readers to immediately see the results of their coding, such as changes in register values and flags, which aids in rapid learning and understanding. Wu also mentions that mastering assembly language facilitated his learning of C programming.

This boring cover was designed by NAL under my protest. But the book was a home run.

Learn Assembly Language without a Computer?

Technology doesn’t stand still, so you might not be surprised that you can learn to program in 8080 assembly language without a computer. The Internet and browser technology has become so powerful that you can run a compiler from Chrome or Safari or whatever browser you use. You can find what we call an 8086 Emulator on the web at this URL: https://yjdoc2.github.io/8086-emulator-web/ This amazing tool simulates the hardware of a PC to give you access to an 8086 microprocessor registers and 1 MB of memory. Now run 8086 based assembly programs right in the browser.

Wielding the Assembler

Assembly language is considered a “low” level language because it operates more closely with the actual computer hardware than a high-level language like C, Java, or Pascal. With assembler you can operate on registers inside the microprocessor as well as read and write directly to computer memory. You can even bypass the operating system. While this closeness to the machine hardware makes assembly language more difficult to learn, it gives the programmer tremendous control over the computer. It can empower programmers with superpowers. Table 1 below lists the applications that assembly language opens up, should you have the patience to learn it. Some of these applications may seem esoteric but many are extremely useful when writing code.

Table 1 – What Assembly Language Offers
ApplicationDescription
Custom Graphics/AnimationDirect manipulation of video hardware for creating custom graphics and animations.
Bootloaders/OS ComponentsWriting low-level components of operating systems and bootloaders.
Encoding/Decoding AlgorithmsDevelopment of efficient custom data compression and encryption algorithms.
Interrupt HandlingEfficient management of interrupts for real-time processing and immediate responses.
Demoscene CreationsCreating audio-visual artworks in the demoscene, showcasing hardware capabilities.
Reverse Engineering/HackingEssential for understanding software protections and reverse engineering.
Embedded System ProgrammingUsed in early embedded systems for programming microcontrollers in resource-constrained environments.

Gary Kildall, Bill Gates, and DOS for the IBM PC

In the late 1970s and early 1980s, IBM was developing its first personal computer, the IBM PC. IBM initially approached Gary Kildall, the creator of the CP/M operating system, which was the dominant operating system for microcomputers at the time. Kildall was the founder of Digital Research Inc. (DRI), and his CP/M operating system was widely used in the nascent PC industry.

According to popular accounts, when IBM representatives visited Kildall to discuss licensing CP/M for the IBM PC, Kildall was not available to meet them, leading IBM to pursue alternative options. However, this version of events has been disputed and varies in different accounts. Some sources indicate that Kildall was indeed present for part of the discussions, while others suggest that disagreements over licensing terms and non-disclosure agreements were the real sticking points. Another rumor was that Gary was flying his Piper Cub and could not show up.

With negotiations with Digital Research not progressing as hoped, IBM turned to Microsoft. At that time, Microsoft, co-founded by Bill Gates and Paul Allen, was primarily known for its BASIC programming language interpreter. Microsoft did not have an operating system to offer, but recognizing the opportunity, they quickly secured the rights to QDOS (Quick and Dirty Operating System), developed by Tim Paterson of Seattle Computer Products, which was broadly compatible with CP/M. Microsoft then adapted QDOS and rebranded it as PC DOS (for IBM) and MS-DOS (for non-IBM PCs).

This operating system deal with IBM was a turning point for Microsoft, catapulting the company into a dominant position in the software industry. MS-DOS became the standard operating system for IBM-compatible personal computers.As for Gary Kildall and Digital Research, they continued to be significant players in the software industry for a time, but they never achieved the same level of success as Microsoft in the wake of the IBM PC’s release. The story is often cited as a cautionary tale about missed opportunities in the business world. Gary passed away in 1994 and serves as a bookmark to how brutal tech wars could be.

Keep reading