It's not true that early versions relied on printing because most people didn't have monitors. A teletype wasn't all that much cheaper than a keyboard + display interface, and monitors were standard on the S-100 and adjacent systems that were around in the late 70s and early 80s.

CP/M was a super stripped-down clone of the basics of DEC's TOPS-10 mainframe OS, and many of the commands are directly comparable.

If MS-DOS hadn't happened, and if Gary Kildall had been a smarter businessman the world would have run on CP/M, and especially the PC compatible CP/M 86. DRI's products soon sprouted concurrency and multitasking while MS was still trying to work out how to manage memory, so Kildall's failure may well have set the entire industry back by between five and ten years.

DRI also had the GEM windowing OS - as seen on the Atari ST - which could have given PCs a graphical OS, possibly with multitasking features, long before Windows became a serious thing.

Back in those days monitors came in two colors of phosphors, green or amber, and you could score one for eighty bucks. Pretty affordable even "way back" then.

Kildall got sued over GEM by Apple but Gates was not sued by Apple due to some kind of legal concession that Microsoft had. Gates was I think a lot savvier in terms of lawyering up than his competitors…

Interesting to see this published in 2025. I was a CP/M guru in the 1980s, but I haven't touched it since 1992 (when I switched to Linux). 1990 was the year that a 20MHz 386/sx could emulate a Z-80 faster than any bare metal Z-80 chip could run. I held on to my CP/M stuff until I ditched most of it in 1993.

CP/M has a certain nostalgia, but it's so slow and limited that it's just not practical for any application today. I've never regretted giving/throwing away the majority of my CP/M hardware & software. To me, it just wasn't worth the space that it consumed.

Hello. Any chance you can help us here?

https://retrocomputing.stackexchange.com/questions/32046/mp-...

Interesting problem. I did a lot of CP/M BIOS stuff, and implemented I/O redirection in systems that never had it. Of the four CP/M systems I had (two of which were S-100), I never had more than two serial ports, and I never ran MP/M. I did a hardware hack to my IMSAI so it could run at 4MHz, but the front panel would still work, because when halted, it would change the system clock to 1MHz. I also did a hardware hack to my CompuPro Interfacer serial card where I swapped the control interface for baud rate and serial bits and parity settings, so the baud rate was now software programmable and the (formerly software controlled) start/stop/number of bits, and parity were moved to the dip switches that previously controlled the baud rate. This was nice in the era of mixed 300 and 1200 baud BBSs.

On-topic answer: The CompuPro Interfacer III had 8 serial ports, so I would approach the problem by writing an emulator for it, and enumerating two of them, and modifying the MP/M XBIOS to support all the ports. Maybe start with the MITS 2SIO emulator as a baseline for the CompuPro emulator.

It seems like the current emulation has 2 2SIO boards and the telnet port maps to them in sequence. The user id seems to come from the emulated physical port the user connects to. Being S-100, nothing really prohibits having 8 2SIO boards for up to 16 connections (provided their emulation allows us to set different IO addresses). It looks like the Interfacer 3 and 4 used a register to assign more than one user to a single UART IO address, allowing (on the 4) up to 32 terminals on 4 UART addresses.

Two things that might still be fun with CP/M to this day, though neither is in that image and would have to be obtained separately.

1. MBASIC. A nice time capsule of BASIC programming in that era, more serious and less quirky than Microsoft BASIC on other old emulated computers such as C64.

2. Wordstar. That has a bit of a learning curve, but it's frankly more bang for the (compute) buck than absolutely anything since. I came late to the CP/M party with an inexpensive (for the day) surplus Intertec Superbrain in 1984 or so, but I ended up using Wordstar for quite a while for document preparation. Of course getting it to output to a modern printer would need going deep under the hood. Most CP/M systems came with source code for the BIOS for a reason. I hacked mine to turn an obsolete LAN type interface on it (a Compustar M30) into a Centronics-compatible parallel printer port and wrote my own BIOS glue to drive it.

The science fiction writer Robert J. Sawyer has written about WordStar extensively and has put together a complete collection of manuals and software for the latest DOS version here: https://sfwriter.com/ws7.htm

Along with advice for running under emulation and how to print from it, under the subheading Printing.

The editor, JOE, has a WordStar mode that you bring up with jstar. I programmed in WordStar in the 80's, and it's fun to bring it back to life that way!

Fun fact, George RR Martin still uses the MS-DOS version of Wordstar for his writing.

Given his (non-)performance, perhaps he should switch to something else?

I’m still waiting for Patrick Rothfuss to finish his third book as well in the kingkiller chronicles.

the hardware/software combination is probably not the root cause

I'm a great WordStar fan and I still use the MS-DOS version (ver 7) occasionally running under emulation in MS Windows. I still have archived documents that I wrote in WordStar in the 1980s and whenever I need to access them I'll fire up WS—it's easier than converting them to DOC/X or ODT format.

If I recall correctly Microsoft had a converter/import filter which would allow MS Word '97 to open a WordStar text file but they dropped it in Office 2000 although it was still available in O2K as a supplemental add-on.

In the '80s and early '90s I had WordStar running on three operating systems: Tandy TRS-DOS, CP/M (on a Godbout CompuPro 8/16) and an IBM compatible (AST). I always preferred WordStar to WordPerfect probably because I learned it first. Also, WS just seemed more 'streamlined'— quicker to use after the 'WS diamond' became second nature.

A couple of anecdotes, I still own a WordStar T-shirt with 'WordStar' emblazoned in 2" high lettering across the front. It still exists only because it was the last one the WS rep had and it was too small so it ended up a souvenir rather than being worn.

I must stress my comments only apply to the original versions of WS (3 to 7) and not WordStar 2000 which was a first-class flop. WS 2000 was the quintessential example of where a company attempted to update a very successful product and it failed miserably.

MicroPro, WS's developers, tried to respond to complaints that WS was difficult to learn (it wasn't of course), so with WS 2000 they attempted to simplify everything and in the process broke the very thing that made WordStar famous and loved by users—its wonderfully ergonomic CTRL key commands! We users were mightily pissed off, moreover potential new users couldn't see any advantage over WordPerfect—especially so after WS-2000 got such bad reviews from the tech press. It's worth reading the Wiki on this (https://en.m.wikipedia.org/wiki/WordStar).

What's more, yours truly made that abundantly clear to MicroPro at the time, in fact I couldn't have taken my complaint to a higher authority! The local WS rep—the one who gave me the T-shirt—knew me well as I was instrumental in having WordStar installed in the establishment where I worked and we purchased lots of copies. That pulled strings and he got me an intro to the top.

Just after WordStar 2000 was released there was a large computer show in Sydney and it was important enough for Seymour Rubinstein, the founder of MicroPro International, to cross the Pacific to promote his new product. Being a valued customer the local rep introduced me to Rubinstein and he (SR) invited me up to his hotel room for a discussion. Accompanying me was an IT colleague (a WS user) from another organisation.

Only three of us joined Rubinstein in his hotel room, the local WS rep my colleague and I. I'll spare you the lengthy, detailed and quite civilized discussion but after leaving hotel room I recall feeling sorry for Rubinstein because our arguments essentially left him defenseless.

I doubt very much that Rubinstein ever received a more intense ear-bashing about WS-2000 at any time let alone during his promotional tour (my colleague was just as didactic as I was, we made a formidable team).

I must stress again the discussion was cordial and friendly and our approach was positive and constructive but from Rubinstein's reaction there was no doubt in our minds that he knew that we users had very good reason not to adopt WS-2000.

Edit: I thought I ought to mention NewStar a similar program to WS developed by ex MicroPro employees. In many ways it was a clone of the original WS but included more advanced features. At the time there was no local importer so I imported several dozen copies (at one point I even contemplated becoming the local agent but it was complicated, also it was more expensive than WS so there was little margin in it.)

My high school got its first computers in 1986, a dozen or so Sanyo CP/M systems. Our teacher, who was as new to computers as we were, was overwhelmed with teaching everyone how to get a directory listing and use Wordstar, so he handed me some books when he saw I was bored. So my first programming experience was in Z-80 assembly.

The first computer I owned was a Commodore 128, about a year later. It came with a Z-80 and CP/M on disk. Unfortunately, I never really found anything useful to do with it that was better than what was available for the native 64 and 128 modes.

All I know about wordstar is 1) my dad used it on his kaypro luggable, and 2) I know the wordstar key commands from using Turbo C. How does wordstar compare to wordperfect 4.2 (which was my first hands-on experience with a word processor)?

To be fair, MBASIC is Microsoft Basic; albeit an older, less feature-filled version.

AFAIK, MBASIC should be fully forward-compatible with BASICA and GWBasic if you want to run that software on MS-DOS.

I don't have memories of Wordstar being fun.

WordStar isn't that difficult once you master the diamond keystrokes—E,S,D,X—and the keys adjacent to them. In fact, WordStar's control key 'diamond' was very well thought out. After one mastered the sequence which probably took several days one could enter text very quickly and efficiently. I just found this site which provides an excellent explanation:

https://benhoyt.com/writings/wordstar-diamond/

As I mentioned above I ran WordStar on multiple operating systems and I still have it running under an emulator under Windows.

It was fun in much the same way that vim is fun.

Whose (vi) keybindings I learned in 1987 on a SunOS system where it was simply the best editor available stock (about 1/2 of the user population in those days used emacs instead but you had to install that). And I can still use them to this day! Whereas I've forgotten the WS ones.

I suspect that I just have to say Control+K Control+D to awaken some memories. (-:

I was about to yell in indignation "BUT WHAT ABOUT EMACS!" and then I finished reading the first sentence. Alas, it is true, emacs was not installed by default. I learned just enough vi to modify basic files in /etc on old school unices (Ultrix, SunOS, Solaris, HP/UX, IRIX, etc.)

And the weird thing is... to this day... when I edit something in /etc, I always use vi instead of emacs. It just seems sick and wrong to edit config files with anything else.

Most first-rate tools aren't meant to be fun. WS was very effective once you memorized the more common keybindings.

Actually realizing you're referring to my "might still be fun", the fun is in discovering how things used to be. Not using the old tools for production use. Unless, I suppose, you have a daisywheel type printer that's sitting idle.

Very nice, I will try it out!

Back then I was an operator (now called admin) and at the time I thought these micros were "toys" since I was on a "real" computer.

Little did I know these little systems would kill the systems I worked with and end up pretty much running the world. I think the only place mainframes rule now are in very high Financial Transaction Systems.

FWIW, very glad to see the article published in Gemini, I have moved my site to Gemini a year ago.

It is great to see good HN content getting mirrored on Gemini://.

This brings me back to the code I wrote in Paradox (an early 80s database, I used the version Borland put out just after buying the company that wrote it) for our family music shop rental billing.

For some reason my 16 year old brain thought the Dec Rainbow was a cool machine so we bought one despite the awful shopping experience that DEC provided for non large enterprises.

It was a cool machine in that it could run both CP/M (what Paradox would run on) and MS-DOS because it had a z80 as well as some early x86 variant. The drives could also read both formats too.

NEC made an enhanced clone of the 8086 called the V30 that had built-in 8080 support. It could be switched in and out of 8080 mode on the fly. This made it fairly simple to write a program that allowed CP/M programs to run natively on an MS-DOS PC with a V30. The MS-DOS API was mostly a copy of the CP/M API, so all you had to do when you got a CP/M system call was switch the CPU into 16-bit mode, do the equivalent MS-DOS system call, and switch the CPU back to 8-bit mode.

The development of CP/M is pretty fun:

In 1972 Gary Kildall was working as a professor at the Naval Postgraduate School in Monterey, California, when he received funds to create a new computer lab. He soon used a contact at Intel to get a series of Intellec development model microcomputers for the lab by successfully pitching them on creating a new high level programming language for their CPUs.

Working as a consultant, Kildall created the "Programming Language for Microcomputers" - PL/M - based on an ancestor of IBM's PL/I language for their mainframes. (The I in PL/I is actually the Roman numeral "one"). Initially Intel's chips weren't powerful enough to self host a real language, so he ended up writing PL/M on a PDP/10 using an emulator, then compiling programs which he'd transfer to the microcomputers via paper tape.

Within a year or so, Intel had upgraded his computer to an Intellec 8/80 based on the 8080 CPU, which was finally capable of compiling and running PL/M programs on the machine itself. The problem was the 8/80's RAM was extremely limited and he didn't have any useful storage system in which to keep the code as he was writing it.

So Kildall talked a local floppy drive startup into giving him one of their older test drives for his lab. But Gary was a software guy! After several failed attempts at creating a controller board for the drive, it sat on a shelf for a year and he kept using the PDP/10 to write and compile programs for the new CPU. He finally asked for help getting the controller to work from a friend of his in Seattle, who came down to lend his hardware expertise. After a few months, they finally got the drive and the computer working together.

In 1974, after adding basic drive commands to PL/M, Gary used the language to create a simple disk "operating system" so he could load and run programs straight from disk. And thus, "Control Program Monitor" - CP/M - was born.

He originally offered it to Intel since they already licensed PL/M, but they turned it down. One thing lead to another and in 1975 he put an ad in a magazine offering the OS for use with the new wave of Altair style microcomputers being sold to the public and it took off.

The rest is well known history. Within five years, CP/M was the main operating system used for microcomputers, and in 10 it was an also-ran to DOS.

It goes to show how having early access to new technology has always been an important part of the industry, and how "fast followers" can often come along and upset the innovator so they become a footnote to history.

You are correct with fast followers: Google to Alta vista, Apple to Nokia.

Nokia was already in decline before the iPhone came along. Sony Ericsson and Motorola, and to a lesser extent, Samsung, had supplanted Nokia as the fashionable handsets for consumers.

I think the iPhone more directly killed Palm and Blackberry. Also PDAs to an extent too.

No, I worked at Nokia 2008-2012 and it was definitely not in decline. It had a near monopoly on high end phones when the iPhone launched. It took several years for its impact to be felt.

That wasn’t my experience in the UK.

Sony Ericsson dominated the high end consumer phones. They supported Java games, Google Maps, could play MP3s, and so on and so forth. These feature phones weren’t nearly as advanced as the iPhone but this is pre-iPhone.

And BlackBerry dominated the business domain. With Palm and Windows CE taking some specific domains, eg where security was a greater concern.

The Motorola Razor (however it was spelt) was massive around your time of working at Nokia. Though granted that’s not high end.

There wasn’t really a bit smartphone market then. Largely because phone manufacturers were still figuring out how to make smart phones successful. Most businesses either went down the Blackberry route, or the PDA route. Nokia definitely dominated with Symbian handsets but that was such a small fraction of the overall high end and business devices in people’s hands that it’s hardly noteworthy.

At least that was the trends I saw in the UK. Maybe in parts of Europe Nokia had more popularity?

Edit, looking into this, it seems I’ve either been misremembering or lived in some kind of bubble.

Eg https://en.m.wikipedia.org/wiki/List_of_best-selling_mobile_...

My apologies for disagreeing with you.

[deleted]

CP/Ms true claim to fame is being an evolutionary stepping stone in the fast moving microcomputer market.

In the early 90's we were in the midst of the Unix wars, where every Tom, Dick, and Harry was pumping out a random mini-computer running mostly kinda sorta portable Unix hoping something would stick, or at least provide service revenue.

CP/M filled that role, however briefly, in the late 70's, early 80's. While obviously not as portable across machine architectures as Unix was, the baseline 8080/Z80 machine was simple enough for folks to sketch out motherboards on a dining room table, and assemble machines from more and more available OEM parts. Anything to get a dart on the board and hopefully build a successful business model.

The robustness of this nascent machine market, empowered by the portability affordances of CP/M, enabled a generic software market that was hardware (though not necessarily architecture) agnostic. The world was moving so fast, it was important to have this kind of capability to help power through the chicken/egg problem of computers needing software needing computers.

However, at the same time, CP/M was too early. That's not quite fair, everything was early in that microcomputer space. But, like others, CP/M was a victim of its time, making early design decisions based on early computing where CPUs were glacially slow, and memory was staggeringly expensive.

This resulted in CP/M having to "hard code" a lot of fundamentals in its system. There simply wasn't the bandwidth or memory to do much abstraction. Flexibility breeds complexity and costs performance and memory, none of which the platforms of the time could really afford.

This made CP/M not just hard to use, but hard to evolve. As the machine world accelerated forward, it was not practical for CP/M to keep up.

Casually, at 10,000 feet, MS-DOS looks very similar to CP/M, both cosmetically at the command line, and internally. But both its file system and driver architecture was able to learn on the shortfalls of CP/M, and be more flexible and powerful, but at the same time, MS-DOS wasn't under the memory or disk space pressures of CP/M.

Then, the deathknell came with the PC showed up, and reset the baseline of what "every computer" would look and be spec'd like. That clobbered a lot of the early hardware vendors.

Oh, to be sure, for a short time, the x86 world was shaping up like the CP/M Z80 world. Different makers, with different hardware offerings, using MS-DOS much like CP/M was used.

But the PC platform as a de jour standard washed that away, and "PC Compatible" became the mantra, and those builders either had to jump on the "it runs Flight Simulator" bandwagon, or move aside.

CP/M, truly, today, has little charm. It's kind of awful. Launching CP/M on a 50Mhz Z80 connected to MBs of flash drives is not a good experience. Mainstream CP/M does not cope well with large volumes. It's really designed to work on a system with floppy disks and capacities in the 100s kilobytes, that are readily swapped out, not enormous spinning hard drives. And it doesn't even work well there. Don't forget to log in those new disks when you swap them out (^C as the command shell), or you will have disappointing results.

It's a artifact of its time. Decision made weren't bad decisions, they were just of the "how long should we make this buggy whip, and what kind of leather" decisions. Without CP/M, who knows where we'd be, what MS-DOS would have looked like, or anything. The PC and MS-DOS consolidating the PC architecture help revolutionize and propel the entire market. Rather than having a disparate array of incompatible hardware, operating systems, and software, the happenstance settling on the PC and MS-DOS as a lowest common denominator let the software and service folks innovate in that space without having to worry about, taking the time, or spending the money on what OS and platform to support.

Rising tide lifted all the boats, to the point of letting others in on the fringes.

Is this an ancestor of MCP?

It's an operating system used on 8-bit microcomputers (8080 and Z80-based). It's (sort of) an ancestor (API inspiration, really) to MS-DOS.

MS-DOS was more of a clone of CP/M. The sort of thing that was mostly possible because CP/M is so minimal that one person can rewrite/port it in a just a few weeks. MS-DOS also cleaned up some of the rough edges of CP/M, like soft locking the system if you tried to access an non-existent drive.

Interesting look at the controversy surrounding Microsoft, IBM, and CP/M.

https://spectrum.ieee.org/did-bill-gates-steal-the-heart-of-...

No, MCP was a much older operating system (https://en.wikipedia.org/wiki/Burroughs_MCP).