Channels ▼

CP/M and DRM

June, 2004: Programming Paradigms

Michael is editor-at-large for DDJ. He can be contacted at

About the title: I do talk about DRM (digital rights management) this month, and I also talk about CP/M (exactly what that acronym stands for is more controversial), but separately, I don't want you to think that the column is all about DRM under CP/M. Assuming that there is something to discuss about that topic, I suspect that the audience for such a discussion is rather small.

Back In the Day

I keep missing what sound like pretty interesting presentations at the Computer History Museum in Mountain View. The latest presentation I'd like to have caught was "The Osborne Odyssey," moderated by John Markoff and featuring reminiscences of Lee Felsenstein, Richard Frank, and Jack Melchor. Felsenstein and Melchor founded OCC with Adam Osborne in 1981, and Richard Frank supplied some of the key application software for the sewing machine-form factor computer.

Reading about the presentation got me thinking about CP/M because the original, highly successful, Osborne computer ran the CP/M operating system—the first widely used personal computer operating system. I wrote a book, Fire in the Valley, using that computer and operating system, and I have fond—okay, mixed—memories of that experience. The personal computer world was smaller then, more like a small town where you had multiple connections with people. My friend Thom Hogan, for example, whom I had worked with at InfoWorld, served as an executive at OCC through its parabolic rise and fall, and had earlier written one of first computer best-sellers, a book about CP/M, for a book company founded by Adam Osborne.

I'm not sure what purpose it serves except for nostalgia, but I was inspired to do some online research and memory refreshing, and thought I'd share the results.

An Abbreviated History of CP/M

In the early 1970s, Gary Kildall was teaching computer science at the Naval Postgraduate School in Monterey and consulting at Intel. Intel had just invented some of the first microprocessor chips, including the 8080, and Gary designed and developed a programming language he called "PL/M" for the 8080 chip for Intel to use as a systems development language. To avoid the 50-mile commute to San Jose, Gary got his friend John Torode to design a disk controller for a drive Gary got from Shugart, he got Intel to supply him with an 8080-based machine and he wrote a disk operating system, all so he could develop directly on an 8080 machine in the back of his classroom rather than on Intel's PDP-10. The operating system got called "CP/M," which stands for either Control Program for Microcomputers, Control Program for Microprocessors, or Control Program/Monitor.

When Intel declined to buy CP/M from Gary, he looked for other customers. The first one, Imsai, had a different disk format than CP/M had been designed for, and Gary responded to this challenge by abstracting out the disk-specific parts of his operating system in what he called a "Basic Input/Output System" or BIOS. That decision made CP/M the first cross-platform operating system and made it a brilliant success.

For a while, at least. The story of how Microsoft displaced CP/M in personal computer operating systems has been told many times, rarely correctly, and I won't attempt even to summarize it here now.

But who owns CP/M today? (Please tell me it isn't SCO.) No, I don't think it's SCO. DRI was bought out lock, stock, and barrel by Novell and, in 1996, Novell sold all rights to DRI software to Caldera, which subsequently acquired—and changed its name to—SCO. But first Caldera, urged on by Tim Olmstead (maintainer of the Unofficial CP/M web site) released all DRI software for noncommercial use, but did not place it in the public domain. Caldera then spun off a company named Lineo to do embedded products, and Lineo took all the DRI rights with it. In 2001, after Tim's untimely death, Lineo gave significant rights to the "Unofficial CP/M web site...maintainers, developers, and community," effectively open-sourcing CP/M.

Parts of CP/M have found their way into who knows how many products so, for example, if you're using an embedded Linux implementation, you may be running some Kildall code.

Since the product can be used for free, you wouldn't think there would be much of a market for licensed copies, but having an unopened box containing the real deal might be both reassuring and of some nostalgic value. You can buy official licensed copies of CP/M with documentation for $15 from California Digital ( Sources for legal licensed copies of CP/M-86 and CP/M-68K are listed at, as well as possibly still valid links to archives of CP/M application software. A fair amount of CP/M software is neither in the public domain nor effectively proprietary—it has been abandoned. Check for abandonware at the CP/M Commercial Software Archive ( Although it's in German, another excellent CP/M site is, with software to download and archived articles from The Computer Journal. California Digital also is a source for old disk drives and diskettes—hard and soft sector, 10 and 16 sector. There were so many choices back in the day. The Online Software Museum has the full original CP/M documentation in HTML (, as well as one of the online emulators.

Where Are They Now?

A number of people who figured importantly in CP/M's history are sadly no longer with us. First among these is CP/M's creator, Gary Kildall, whose many contributions to personal computing technology have been chronicled here in this magazine and elsewhere. Any history of the field written by someone who values ideas above dollars would rank Gary among its greatest contributors. Todd Fischer's Imsai site ( eulogizes several other lost legends, including Bruce Van Natta of Imsai and MicroPro, George Morrow of Thinkertoys and Morrow Micro Designs, Adam Osborne, and Les Solomon of Popular Electronics magazine.

Of DRI employees, the ones who have probably done the best for themselves are Alan and Sue Cooper, who have a very successful consulting firm in San Francisco called "Cooper." Two of the people who were closely associated with CP/M on the publishing front are Cheryl Rhodes and Tony Bove, who for many years tirelessly documented and explained CP/M among other topics to personal computer users. Tony and Cheryl are doing fine in Northern California, and Tony even makes occasional visits to my neighborhood, playing gigs with his band, The Flying Other Brothers. The industry is still a small town, I guess. He's recently written iLife for Dummies and iPod and iTunes for Dummies to keep his hand in the writing thing. He has no CP/M projects in the offing, but given that Tony can perform any Jerry Garcia song off the top of his head, I wouldn't be surprised to learn that he has an old Imsai in the garage that he dusts off now and then for old times' sake.

I Wanna Be a Language Engineer

Sixteen years ago, about the time I gave my Osborne 1 to my brother, I founded a company named The Prose Lab. More precisely, I filed a DBA and under that moniker kept doing what I was doing before—writing words and code. The plan was to write and sell linguistic shareware as well as articles and columns under the aegis of The Prose Lab. The Prose Lab morphed into The Prose Garden and the plans to sell shareware fell by the wayside, my coding efforts focusing exclusively on a market of one, myself. But even today, on those occasions when I write code for recreation or to test some software rather than for my own practical use, I still gravitate to the kinds of applications that inspired that company name—programs that manipulate prose in some vaguely intelligent way.

I didn't know then that I was an aspiring Language Engineer. But now that Ali Farghaly has delivered his Handbook for Language Engineers (CSLI Publications, 2003; ISBN 1-57586-395-2), I realize that there is an official name for this obsession. Not a single official job classification, though: People doing Language Engineering may be working as language designers, ontology editors, computational grammarians, knowledge engineers, linguistic analysts, taxonomy managers, computational lexicographers, technical linguists, speech engineers, terminologists, speech synthesis engineers, search engine developers, or under any of dozens of other titles.

Whatever the job title, the tasks of the Language Engineer include some common themes. You work with a possibly large but necessarily restricted domain of utterances, you use common algorithms and heuristics, you have to know about ontologies and grammars and knowledge representation, you are likely to feel the need to somehow model a human language user, you probably will have to employ some machine learning techniques to bootstrap your system to more savvy performance, and you might need some expertise in speech recognition and processing. With contributions from linguists and computer scientists from academia and industry, the Handbook hopes to lay out the essentials that any Language Engineer needs. I think it lives up to that ideal. The chapters are independent and not particularly well integrated, but they do a decent job, so far as I can tell, of summarizing the distinct areas of knowledge needed by the Language Engineer. I plan to keep it on my shelves as a reference for my Saturday morning programming projects.

Some online computational linguistics resources independent of, but related to, the material in this book can be found at

Digital Solutions

When I'm sketching one of my more outlandish proposals for our business or our life, my partner Nancy often brings me up short with the question, "What problem are you trying to solve?" I'm not sure that the question is always appropriate. Sometimes I'm just suggesting that we do something because I think it would be cool. Regardless of what software marketing departments have decided in their passion for selling "solutions," not every human activity is a solution to some problem, nor should it be. But the question is a useful one, and can often act as a course correction when a project or a partner or an industry is merely drifting rudderless with the tide of thoughts or current events.

The advent of digital media is such a tide. It has completely changed the dynamics of producing, distributing, and using works in formerly analog media, particularly music and movies.

Various parties to the production, distribution, and use of music and movies have seen a problem in this. Accordingly, they have apparently asked themselves the aforementioned question, and have come up with their solutions. And because their perceptions of the problem are as different as those of the proverbial blind men encountering the elephant, the solutions they have come up with are also very different.

If the problem that you perceive is the potential for massive theft of your property and blatant evidence that such widespread theft is occurring, the solutions that you will envision are likely to involve law-enforcement officials, the courts, lawsuits, and fines. You may also decide to put new and stronger locks on all your doors.

If the problem that you perceive is that the unique wrinkles of the new digital landscape encourage otherwise honest people to steal, then you may envision a solution that reshapes the terrain just enough to make honesty easier than theft, at least at 99 cents a pop.

If the problem in your eyes is that, although digital recording makes it possible to deliver music and movies at a tiny fraction of the cost of CDs and DVDs, the music and movie industries are stuck in the physical media mindset, then you may look for a solution that bypasses those dinosaurs.

Since each of these perspectives sees only an aspect of the whole changed situation caused by the advent of digital media, none of them constitutes a solution for all interested parties. In fact, some of these "solutions" are seen as further problems by some of the stakeholders. Current media-crippling digital-rights management schemes are plainly not the solution for users. MP3-via-P2P noncompensatory file trading clearly isn't the solution for artists. These "solutions" only look like solutions if you have no peripheral vision. With due deference to the visually challenged readers of this column, you don't want to send a blind man to do elephant reconnaissance.

So how would one come up with a sufficiently broad solution? Well, it starts with asking the question: What problem are you trying to solve? And asking that question in a productive way requires sufficiently broad vision to recognize all the interests involved.

The recording and moom-pitcher middlemen have not shown that vision: Business owners who sue their customers en masse are clearly clueless. Apple's iTMS does not demonstrate such vision: Digital media ought to let us do more, not less, with the content. P2P file-swapping network managers don't have the vision: There are legitimate interests that they are violating.

The Digital Media Project

One individual who may have the vision is Leonardo Chiariglione.

Chiariglione was the founder of the ISO MPEG committee in 1988 and is still its chairman. Scientific American credits him with bringing DVDs and MP3s into our lives; Time Digital called him one of the 50 most influential innovators in the digital world. Born in Italy, educated in Italy and Japan, now resident in a rural village near Turin, Italy, he recently left his post as vice president of multimedia for Telecom Italia. For 30 years he has been engaged in, in his words, "the transformation of Digital Media from potential to actual benefits to society and business." Now he's pursuing that goal in a new venue—something he calls the "Digital Media Project" (

The Digital Media Project is "an unaffiliated, geographically diverse, nonprofit group dedicated to breaking...the stalemate among various players in the digital media value chain that prevents digital media markets from reaching their potential," according to DRMWatch. It is the mechanism by which Chiariglione hopes to realize the goals of his Digital Media Manifesto.

Yes, he has written a manifesto. If that sounds a little too Cluetrain pontifical for your taste, think of it as a White Paper. It's worth reading, and is published in full in HTML on the DMP site.

When Chiariglione asked himself the question, what problem are you trying to solve, his answer was apparently something like this: What do we need to do to honor every player's traditional rights and usages in the new digital world? Those rights and uses that people expect because they have enjoyed them in the analog domain, or expect because they are the logical implication of extending analog content to the digital domain.

A good starting point might be to enumerate all those traditional rights and usages, or TRUs, as Chiariglione calls them. Chiariglione is in the process of doing that, on the TRU list, also to be found on the DMP site, and in a TRU Workshop held in Los Angeles in April.

Are there really all that many rights and usages to consider? Well, consider these: to quote, to make a personal copy, to space-shift content, to time-shift content, to make a playback device, to choose a playback device, to use content whose copyright has expired, to communicate privately, to publish content anonymously, to use content anonymously, to attribute, to annotate for personal use, to edit for personal use, the right not to be counterfeited...These are the first dozen or so of a list of 75 TRUs at the time I last checked the list. It's likely to have grown by now. The list enumerates the TRUs of users, rights holders, and middlemen.

Chiariglione thinks it may be possible not merely to balance these disparate interests, arriving at some compromise that hurts all players equally, but to fully honor all of them at once. Is that really possible? It's not clear, but this much is clear: If it is possible to create a system that actually works for all, this can be arrived at if that's the goal you've set. More than anyone else, Chiariglione is trying to see the whole elephant.


Related Reading

More Insights

Currently we allow the following HTML tags in comments:

Single tags

These tags can be used alone and don't need an ending tag.

<br> Defines a single line break

<hr> Defines a horizontal line

Matching tags

These require an ending tag - e.g. <i>italic text</i>

<a> Defines an anchor

<b> Defines bold text

<big> Defines big text

<blockquote> Defines a long quotation

<caption> Defines a table caption

<cite> Defines a citation

<code> Defines computer code text

<em> Defines emphasized text

<fieldset> Defines a border around elements in a form

<h1> This is heading 1

<h2> This is heading 2

<h3> This is heading 3

<h4> This is heading 4

<h5> This is heading 5

<h6> This is heading 6

<i> Defines italic text

<p> Defines a paragraph

<pre> Defines preformatted text

<q> Defines a short quotation

<samp> Defines sample computer code text

<small> Defines small text

<span> Defines a section in a document

<s> Defines strikethrough text

<strike> Defines strikethrough text

<strong> Defines strong text

<sub> Defines subscripted text

<sup> Defines superscripted text

<u> Defines underlined text

Dr. Dobb's encourages readers to engage in spirited, healthy debate, including taking us to task. However, Dr. Dobb's moderates all comments posted to our site, and reserves the right to modify or remove any content that it determines to be derogatory, offensive, inflammatory, vulgar, irrelevant/off-topic, racist or obvious marketing or spam. Dr. Dobb's further reserves the right to disable the profile of any commenter participating in said activities.

Disqus Tips To upload an avatar photo, first complete your Disqus profile. | View the list of supported HTML tags you can use to style comments. | Please read our commenting policy.