Mitch Waite

Computer book author, publisher, web designer, and entrepreneur

1983 – Soul of CP/M

In “Soul of CP/M,” we embarked on a journey to illuminate the essence of what would become a hallmark of Waite Group books: making learning an engaging, multisensory experience. We embraced a fundamental principle: learning thrives when it engages both sight and sound. On the frontier of home computing, this meant harnessing the computer’s video screen to create visual narratives (sight) and using its audio speaker to produce audible feedback (sound).

At its core, CP/M, which stands for Control Program for Microcomputers, was the conductor of the microcomputer orchestra. It was the master program that empowered users to not just create and execute programs, but to also manage files, shuttle data in and out, and much more. To truly harness the power of a microcomputer, one had to become adept at using CP/M.

While the market was already populated with books on CP/M, including our own “CP/M Primer,” our ambition was to delve deeper, to reveal the layers beneath its functional facade. Since the mid-70s, we had observed a trend: books focusing on programming languages were proving to be more lucrative than almost any other topic in personal computing. CP/M was crafted in a language known as 8080 Assembly Language, a dialect that conversed directly with the computer’s microprocessor. This language was more intricate and less intuitive than high-level languages like BASIC or Pascal, but mastering it was like acquiring a set of superpowers.

High-level languages like BASIC and Pascal were user-friendly, almost akin to reading English. Yet, for these languages to be understood by the computer, they needed translation into the machine’s native tongue – assembly language, specifically tailored for the Intel 8080 microprocessor. For BASIC, this translation was performed by an interpreter, and for Pascal, a compiler. This translation step, however, meant that these high-level languages operated slower compared to programming directly in assembly language.

Wielding the Assembler

To wield assembly language effectively required an intimate understanding of the 8080 chip’s architecture. One needed to become proficient in manipulating ‘registers’ – the chip’s data handling agents. The 8080-instruction set, the backbone of Assembly Language, consisted of primary commands for interfacing with the microprocessor. Mastery of assembly language was considered the zenith of programming prowess, enabling one to coax the computer into performing nearly any task, and at a speed that left high-level languages in the dust.

The essence of my idea was learning to program in assembly language by making system calls into the CP/M operating system. Some of these calls were very powerful and yet needed only a few lines of assembly to initiate. The beauty was you were using short sequences of assembly code to write powerful programs to control CP/M. In “Soul of CP/M,” we endeavored to demystify this complex language, transforming readers from mere operators into architects of the microcomputer world.

Encountering the Renaissance Man

It was at the West Coast Computer Faire, around 1979, where I had the fortune to meet Robert Lafore. This exposition, a brainchild of Jim Warren and Bob Reiling, first came to life in 1977 in San Francisco. The Faire was a beacon in the history of computing, famously known for the debut of the Apple II by Steve Jobs and Steve Wozniak. Alongside the iconic Apple II, the Faire was a launchpad for a slew of microcomputers, including the Osborne 1 in 1981, the North Star Horizon, and the noteworthy Sol-20, a creation by Lee Felsenstein and Bob Marsh in 1976, which had its roots in the influential Homebrew Computer Club.

Robert Lafore was an eclectic blend of talents and experiences. He held advanced degrees in mathematics and electrical engineering, and his career path was as diverse as it was impressive. He had ventured into the oil fields of Southeast Asia as an engineer, woven stories as a novelist, contributed insights as a newspaper columnist, and honed his technical acumen as a systems engineer at the University of California’s Lawrence Berkeley Laboratory.

But it was his adventurous spirit that left me utterly astounded. Robert had embarked on a daring sailing voyage across the South Pacific. This wasn’t just any journey — he undertook this with his wife and newborn child in tow.

The very thought of navigating 3,000 miles of unpredictable seas was staggering. I found myself torn between admiration and incredulity, wondering if Robert was a sheer genius or a man chasing the extraordinary, beyond the realms of conventional sanity.

Mind Melding: A Journey of Sight, Sound, and Assembly Language

When Robert and I first connected over our teaching philosophies, it was like a Vulcan mind meld straight out of science fiction. He immediately grasped the value of our unique sight and sound approach to learning. With his keen understanding, Robert recognized the challenge of learning assembly language and found the idea of using CP/M’s capabilities to teach it nothing short of brilliant.

“I’ve got an idea,” Robert mused one day, his eyes alight with inspiration. “What if we create a simple assembly routine that can either display a character on the screen or make the speaker beep? Give me a few weeks, and I think I can cook up all the examples we need for the book.” This was exactly what I had hoped he would undertake, and his enthusiasm was infectious. I nodded eagerly, “Three weeks for the routines sounds great, Robert, but remember, we have a tight deadline. The entire book needs to be wrapped up in three months to really hit the market sweet spot. There’s chatter about Microsoft releasing its own operating system for the PC, and that could mean serious competition for CP/M.” As it turned out, my hunch was spot on – MS-DOS for microcomputers was indeed launched in 1981, and the writing was on the wall for CP/M.

True to his word, Robert delivered his manuscript with time to spare, and by early 1983, Sams had published our book. Then, in August 1983, IBM unveiled the IBM Personal Computer model 5150, equipped with PC DOS, licensed from Microsoft. It was an instant hit, flying off the shelves and into homes and offices everywhere.

Soon after, we started receiving an outpouring of letters from readers who had been captivated by “Soul of CP/M.” The common thread in their messages was clear and enthusiastic: “We loved ‘Soul of CP/M’! Do you have something similar for PC-DOS?” It was evident that the reign of CP/M was coming to an end, and a new era was dawning. It was time to channel Robert’s genius into fresh, exciting ideas for this new computing landscape.

Inside the Book

Robert’s book stood out as a masterpiece in demystifying the often-intimidating world of assembly language. He had a knack for breaking down complex concepts into digestible bits, and this was evident right from the get-go. The book kicked off with a program so elegantly simple that it used a mere three lines of code to display a character on the screen. This approach was ingeniously designed to ease readers into the subject, dispelling any fears and giving them the immediate satisfaction of seeing their code come to life, either visually on the screen or audibly through the speaker.

Imagine this: just three lines of assembler code, and voilà – a character springs to life on the screen. This wasn’t just coding; it was like performing a little bit of magic.

Another cornerstone of the book’s approach was its generous use of illustrations. Take, for instance, the example of the MVI instruction. It wasn’t just explained in text; there was a striking 3D block diagram accompanying it. This wasn’t your average, dry technical illustration, though. It was a vivid, almost tangible depiction that helped readers visualize exactly what was happening inside the computer’s memory. It was like having x-ray vision, seeing how the program bytes were meticulously arranged and interacted with each other.

Through these methods, Robert didn’t just teach the language; he brought it to life, transforming abstract codes into something visually and conceptually graspable. His book wasn’t just about learning assembly language; it was about experiencing it in a whole new way.

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