News for hackers. Stuff that matters.
Re:LokiOS. A new version of CP/M 2.2, written from Scratch by lockhouse on Tuesday February 28, 2023 @05:04PM (#34975582)
CP/M is a bit before my time, but why was it so wildly popular compared to its contemporaries? Was there any technical reason or was it just available and easy to license for the different microcomputers that came to market at the time?

It’s interesting that some of CP/M’s underlying ideas are part of Windows 11 today, such as drive letters.

Re:LokiOS. A new version of CP/M 2.2, written from Scratch by mistrial9 on Tuesday February 28, 2023 @05:20PM (#34975737)
the collection of hardware parts in those days was really different. I imagine that simply disposing of the dependencies on a hundred "standard" parts of a modern PC motherboard in the source code, is a win. So it is not better to go back to CP/M for some architectural reason, it is a win to get-rid-of the intrusive and bulky, and patented, parts in modern OS.
Re:LokiOS. A new version of CP/M 2.2, written from Scratch by karmakaze on Tuesday February 28, 2023 @06:36PM (#34976509)
Most of the early CP/M systems I encountered were running on Zilog Z80 CPUs. There were other OSes as well but CP/M was very popular. I used dBase II on a Xerox 820 which was pretty nice with soft white monochrome text.

CP/M was also very portable and eventually ended up on Atari ST 68000 machines which I also used with the GEM desktop/graphics environment. There was even a CP/M card for the Apple II that had a Z80 on it.

Re:LokiOS. A new version of CP/M 2.2, written from Scratch by Twirrim on Tuesday February 28, 2023 @10:50PM (#34978554)
GEM Desktop, now that's some nostalgia. First GUI I ever used, on an Amstrad PC-1512. Can barely remember it now other than a feeling of "wow", swiftly followed by "but none of my DOS games run on it, meh" :)
Re:LokiOS. A new version of CP/M 2.2, written from Scratch by UncleSlacky on Wednesday March 01, 2023 @06:45AM (#34981284)
It's still around (it was open-sourced a while ago) and OpenGEM is also available as part of FreeDOS: https://www.opendawn.com/opengem/
Re:LokiOS. A new version of CP/M 2.2, written from Scratch by karmakaze on Thursday March 02, 2023 @03:50AM (#34993524)
Oh yeah before Atari ST I remember how GEM was typically only used on the PC to run Ventura Publisher which came with a bundled copy of GEM.
Re:LokiOS. A new version of CP/M 2.2, written from Scratch by cmrdporcupine on Wednesday March 01, 2023 @04:45AM (#34980496)
GEMDOS on the ST isn't really CP/M. It was a DR product, yes, and the API was somewhat based on CP/M, but it was also a new thing not ABI compatible with CP/M and also pulled in a lot from MS-DOS. It was built specifically to run GEM on systems where MS-DOS was not present (because GEM was written for MS-DOS originally). So the 68k, and was prototyped on the Apple Lisa and some Motorola VME machines before porting to the Atari ST.

The source code for both CP/M 68k and GEMDOS are available these days and one can see that while some small bits are borrowed between them (the program loader, for example), on the whole it's a whole new source tree.

I believe parts of the GEMDOS sources did become the basis of what eventually became DR-DOS on the x86.

Re:LokiOS. A new version of CP/M 2.2, written from Scratch by karmakaze on Thursday March 02, 2023 @03:47AM (#34993508)
Oh yes, you're right! I'd forgotten some of how things got finalized. I started using the Atari 520ST with pre-release CP/M-68K docs and software before settling on GEMDOS/TOS. It was all in a bad state with a literal stack of paper given to me (rather than electronic docs) that only roughly corresponded to the state of the software so must have been in flux. Even the GEM parts were still being worked out. I recall using just the "Line-A"[0] graphics calls which were I believe 000a traps that were ROM calls to routines before getting access to higher level GEM graphics support.

There's mention of CP/M-68K and TOS with info on the Atari 130ST/260ST[1] (which also happened to have 512KB). I do recall later getting the OS in ROM of later hardware so boots were quicker.

[0] http://toshyp.atari.org/en/006001.html

[1] https://www.old-computers.com/museum/computer.asp?c=922

Re:LokiOS. A new version of CP/M 2.2, written from Scratch by whartung on Tuesday February 28, 2023 @10:07PM (#34978284)
CP/M is popular because its requirements are dirt simple, and it has a lot of software that still runs. It's popular because, unlike IBM PCs, the hardware was diverse, and the software has to cope with that. Now, while MS-DOS is very CP/M-esque in its design, the truth is that most MS-DOS software is actually PC software. It assumes the PC hardware. Most major MS-DOS applications skipped the MS-DOS driver part and just went straight into the hardware. Today that means if you want an "MS-DOS" machine, you really need a PC with all of its hardware, its graphics, its ports in the right place, etc.

In contrast to CP/M. It requires a block device of some kind (i.e. a disk drive), and a console of some kind (typically, but not necessarily, a serial terminal).

While some applications did route around the BIOS and BDOS in CP/M, most did not. CP/M was quite portable across a crazy range of hardware. Porting a CP/M BIOS is a nice engineering and assembly language challenge for anyone willing to take it on, depending on their hardware environment.

Today, anyone with a Z80 chip, a RAM chip, and some paperclips to wire it all together can get a device that will run Wordstar. That flexibility makes CP/M very popular with retro enthusiasts today. It's easy to find dongle sized computers for $50 running CP/M on eBay. It's also easy to find full through hole kits of parts and PC boards to make your own. Or, grab a Z80 CPU and Peripheral manual, a copy of KiCad, some parts and breadboards and go to town. Having your creating run Wordstar beats blinking LEDs any day of the week.

Re:LokiOS. A new version of CP/M 2.2, written from Scratch by nineteen999 on Tuesday February 28, 2023 @10:42PM (#34978509)
> Porting a CP/M BIOS is a nice engineering and assembly language challenge for anyone willing to take it on, depending on their hardware environment.

In my case I decided the hardware environment was going to be hosted inside Unreal Engine:

https://i.imgur.com/5MDfwKg.png

It's crazy easy to get CP/M running on just about anything with Z80 CPU emulation, and some glue logic to handle reading bytes from a keyboard I/O port, and sending them to a terminal, and reading/writing sectors from a block device. I had to write a VT100 emulator for UE4 but that doesn't take too much work.

WordStar:

https://i.imgur.com/rIY1he8.png

A telnet client (complete with ZMODEM) for accessing BBS's on the Internet:

https://i.imgur.com/aSc9VGL.png

Zork I and Rogue:

https://i.imgur.com/gnOCp3e.png

Re:LokiOS. A new version of CP/M 2.2, written from Scratch by cbm-vic-20 on Wednesday March 01, 2023 @12:23AM (#34979066)
This is great! Reminds me of Notch's post Minecraft game that never got off the ground, 0x10c.
Re:LokiOS. A new version of CP/M 2.2, written from Scratch by nineteen999 on Wednesday March 01, 2023 @02:56AM (#34979850)
It was very much inspired by that, yes.
Re:LokiOS. A new version of CP/M 2.2, written from Scratch by accrual on Wednesday March 01, 2023 @01:54AM (#34979512)
Extremely cool. It'd be fun to play with machines from this era in VR and have them exist with huge glass terminals like this. It makes them feel so immense compared to what they actually were (small tabletop computers).
Re:LokiOS. A new version of CP/M 2.2, written from Scratch by nineteen999 on Wednesday March 01, 2023 @02:58AM (#34979858)
I'd love to go back and work on it more, I wanted to have both Z80/6502 based systems, just like the 8-bit wars of the 80's, but with networking. I couldn't decide between "1980's in space" or a post apocalyptic world where only 8-bit computers were robust enough to function. Maybe one day.
Re:LokiOS. A new version of CP/M 2.2, written from Scratch by kjs3 on Wednesday March 01, 2023 @07:48AM (#34981774)
For me, Turbo Pascal was always the killer app for CP/M, though Wordstar & VisiCalc are probably more important overall.
Re:LokiOS. A new version of CP/M 2.2, written from Scratch by fentonc on Wednesday March 01, 2023 @07:58AM (#34981853)
I still play around with Turbo Pascal on CP/M a lot for fun - it is a shockingly good development environment (even on a 4 MHz CPU my edit/compile/debug loop is usually <10 seconds, which is pretty fast even by modern standards). And it could all trivially fit in the L1 cache of a modern CPU.
Re:LokiOS. A new version of CP/M 2.2, written from Scratch by nineteen999 on Wednesday March 01, 2023 @02:52PM (#34987383)
I haven't tested Turbo Pascal on it, since i'm not a Pascal programmer, but the HiTech-C compiler runs and creates working executables, its not a stretch that Turbo Pascal would either.
Re:LokiOS. A new version of CP/M 2.2, written from Scratch by kjs3 on Wednesday March 01, 2023 @10:00PM (#34991375)
Ummm...why would there be any doubt Turbo Pascal can create working executables?
Re:LokiOS. A new version of CP/M 2.2, written from Scratch by nineteen999 on Thursday March 02, 2023 @05:18PM (#35002874)
Why would there be an assumption I have implemented all the emulation completely and correctly enough for it to run?

If it doesn't, there's a bug in my emulator, end of story. I have had to implement all kinds of things to make various software work correctly, and there's probably still more to do.

Re:LokiOS. A new version of CP/M 2.2, written from Scratch by kjs3 on Thursday March 02, 2023 @06:54PM (#35003782)
Why would you assume I'm talking about your emulator. I just said I liked Turbo Pascal.
Re:LokiOS. A new version of CP/M 2.2, written from Scratch by nineteen999 on Monday March 13, 2023 @10:56PM (#35146803)
Oh. I see. I was talking about in the context of my UE4 Z80 emulator, the top post in this thread :-) no biggie.
Re:LokiOS. A new version of CP/M 2.2, written from Scratch by userbinator on Wednesday March 01, 2023 @12:50AM (#34979208)
In contrast to CP/M. It requires a block device of some kind (i.e. a disk drive), and a console of some kind (typically, but not necessarily, a serial terminal).

In other words, it was like the UNIX of the microcomputer world.

Re:LokiOS. A new version of CP/M 2.2, written from Scratch by shrubble on Wednesday March 01, 2023 @12:23AM (#34979068)
CP/M was well-designed, better than MSDOS.

It had terminal capabilities (not to the level of termcap in Unix, but good) which meant that shrinkwrapped software like Wordstar would run on anything with an 8080, Z80, or NEC V20/V30 and CP/M. The Osborne 1's tiny screen was only 50 characters wide instead of 80, but software still ran on it.

It hit the sweet spot of abstraction for its time, and made it easy to write drivers for custom hardware that a new manufacturer might decide to make.

Re:LokiOS. A new version of CP/M 2.2, written from Scratch by spc476 on Wednesday March 01, 2023 @03:15AM (#34979949)
How was it better than MS-DOS?
Re:LokiOS. A new version of CP/M 2.2, written from Scratch by Tor3 on Wednesday March 01, 2023 @05:14AM (#34980680)
One reason is that unlike MS-DOS, the OS is hardware independent, except that an 8080-compatible CPU was needed (8080, z80, some NEC chips etc). Other than that you could use just about anything. It wasn't hard to port (more like transport than port) CP/M to a new system which met the minimum requirements (cpu, some minimum amount of RAM, floppy disks at least, and a TTY or terminal). Very different from MS-DOS, which required a mostly exact PC clone, and it had no provision for moving to another architecture. CP/M came with, among other tools, "MOVECPM", a program to relocate the operating system to a different place in the memory map (and write the result to a new boot floppy or whatever), an Alteration Guide document, and there were various books detailing the process.
Re:LokiOS. A new version of CP/M 2.2, written from Scratch by kjs3 on Wednesday March 01, 2023 @09:22AM (#34982684)
CP/M didn't require a floppy. You could boot it off ROMs, tape or even paper tape (ASR-33s were fun). There's even a RDR: device that was supposed to be used to load from a card reader, tho I confess I never saw that in the wild.

MS-DOS was structured the same as CP/M: there was a small-ish machine dependent part you ported (called an 'OEM Adaption Kit' at one time), and a hardware independent kernel. At least through 3.0 and probably later, it did not require a PC clone. It ran on all sorts of non-PC 8088/8086 machines. Ever run MS-DOS on an 80186 with 8" floppies? I have. Now, your apps might not run because of machine level assumptions (video, usually), but MS-DOS did.

Re:LokiOS. A new version of CP/M 2.2, written from Scratch by Tor3 on Thursday March 02, 2023 @02:26AM (#34993037)
I still have a British-made 8086 almost-PC in the attic. It ran MS-DOS - but harddisks didn't work because the interrupt vector was different. That could be fixed - I burned a new EPROM and got it working. The company which imported the machine told me how - I called them and the guy who took the call explained in detail about interrupts and addresses and whatnot, and the next day I removed the PROM, brought it to work, copied it, patched it up, and burned a new EPROM. I'm still shaking my head at that memory. Try calling a company today and ask a technical question.

But the real problem with almost-clones was (as you said) that in practice applications more often than not bypassed the "ABI" and went directly to the hardware, and admittedly that's not MS-DOS fault per se. The result was anyway that lots of software wouldn't run on almost-clones, especially if they moved around too many of the assumed interrupts (e.g. 80186-based PCs - they had some of the peripherals of the 8088/8086 integrated, just not exactly in an IBM PC layout). One system I ran across was an "enhanced" PC-like semi-clone, probably using an 8086 or something better - the local health services had just started a huge campaign where they tried to get everyone to volunteer for a health checkup, and they were followed up with a new one some years later, and on and on (it still goes on, to this day). Anyway, for that early start, they used this MS-DOS computer to collect and print information. But the printer didn't work - the PC was nonstandard. I went to the hospital and figured out why, and patched things and got it working (I don't recall anything today about what or how or even why I could).

CP/M applications though - they didn't, for the most part, bypass anything - maybe that's because people writing the software knew that the hardware could vary wildly. Screen-oriented apps like WordStar usually needed a machine-specific patch for that, but otherwise CP/M software was way more portable than MS-DOS software. PC software though - vendors just thought "IBM PC hardware" and that was it, for the most part.

Re:LokiOS. A new version of CP/M 2.2, written from Scratch by cstross on Wednesday March 01, 2023 @07:45AM (#34981745)
You are aware that MS-DOS 1.0 was a clone of CP/M-86, right?
Re:LokiOS. A new version of CP/M 2.2, written from Scratch by shrubble on Wednesday March 01, 2023 @12:07PM (#34984865)
That's easy: because the calls to the screen went through the terminal handling code; on MSDOS, for speed, many applications bypassed the MSDOS I/O and called the video hardware directly; this made things much less portable.

There were many MSDOS but not 100% IBM PC compatible machines made that got hit in the market because of this, such as the Zenith Z-100/Z-120 , TI PC, etc. If the memory map and everything else didn't exactly match the IBM BIOS setup the application would fail.

Re:LokiOS. A new version of CP/M 2.2, written from Scratch by spc476 on Wednesday March 01, 2023 @02:33PM (#34987142)
That's not a fault of MS-DOS, but of the application writers. If they stuck just with the MS-DOS API, the app would work with any MS-DOS machine.
Re:LokiOS. A new version of CP/M 2.2, written from Scratch by kjs3 on Wednesday March 01, 2023 @09:04AM (#34982496)
I dunno what CP/M you were using, but all the rest of us had application specific patches for Wordstar for whatever we were running, and pretty much everything else. The Wordstar branded for Osborne did not work right on a Cromenco+VT100 and definitely went weird on a TRS-80 4P without directly patching it. Don't even get me started on the cornucopia of floppy disk formats one had to deal with.

Nostalgia is a helluva drug.

Re:LokiOS. A new version of CP/M 2.2, written from Scratch by shrubble on Wednesday March 01, 2023 @12:04PM (#34984803)
Concerning VT100 and WordStar: https://groups.google.com/g/comp.os.cpm/c/kz9vwodu8M8

Were you using the Osborne-specific version or the "retail" version of WordStar, BTW?

Re:LokiOS. A new version of CP/M 2.2, written from Scratch by kjs3 on Wednesday March 01, 2023 @10:35PM (#34991641)
Not sure what the VT100 link was supposed to prove other than yeah terminals back then were hard to support generically. And you had to hack around the issues. Which was my point.

The "Osborne-specific version" was the retail version...for the Osborne. Yeah, there was a 'generic' retail Wordstar...that you had to patch for your specific hardware if your combo wasn't supported out of the box. I had friends who's whole business back then was hacking popular CP/M apps to support less popular hardware.

There wasn't some compatibility nirvana. It was just easy to hack up a fix because apps were on the order of 10's or 100's of kilobytes, not hundreds of megabytes.

Re:LokiOS. A new version of CP/M 2.2, written from Scratch by tannhaeuser on Wednesday March 01, 2023 @04:08AM (#34980281)
Portability before Windows or any other system became mainstream. For example, Hitchhiker's Guide to the Galaxy (the original text adventure) was available on it (and so did early text processors though I personally can't speak with hands-on experience here). Technically, CP/M isn't even an O/S in the "modern" sense taking Unix as a point of reference - Z80 and 8086 didn't even have an MMU so no kernel/userspace memory protection or process isolation. CP/M, like DOS, is rather an extended BIOS with a file system (as it says on the tin: control program for microcomputers) acting as portability lib once a program is loaded, plus a couple of interrupt handlers for screen refresh etc. I guess.
Re:LokiOS. A new version of CP/M 2.2, written from Scratch by varjag on Wednesday March 01, 2023 @05:12AM (#34980673)
It was an operating system in the sense it abstracted much of the hardware into portable syscalls and came with a set of practical utility programs. Really the only assumption hardware had to conform was a certain memory map layout. Process isolation does not make much sense on a 2mhz 8 bit CPU with 64Kb address space anyway. MS DOS didn't do that either, and there are still modern embedded OSes that don't do process isolation.
Re:LokiOS. A new version of CP/M 2.2, written from Scratch by rbanffy on Wednesday March 01, 2023 @07:40AM (#34981709)
If you look at some OSs that have been around for a very long time, they are quite minimalistic.

While deeply alien to the Unix crowd, OSs like MCP or zOS are remarkably simple in what they do.

Re:LokiOS. A new version of CP/M 2.2, written from Scratch by wkat4242 on Wednesday March 01, 2023 @04:33AM (#34980419)
Was it that popular really?

Here in Europe I've never seen it in the real world. It was all commodore 64 and other 8-bit or early PC. Even in businesses.

Re:LokiOS. A new version of CP/M 2.2, written from Scratch by fermigier on Wednesday March 01, 2023 @04:42AM (#34980479)
I was. When, as a kid, I went to computer trade shows in the early 80s, 1/2 of the "business" computers were running CP/M (then switched, almost overnight, to MS-DOS around 1983, IIRC).
Re:LokiOS. A new version of CP/M 2.2, written from Scratch by Doctor_Fegg on Wednesday March 01, 2023 @04:57AM (#34980576)
Several computers popular in Europe would run it - the Amstrad CPC/PCW series, for example, which between them sold over 10 million units.
Re:LokiOS. A new version of CP/M 2.2, written from Scratch by Tor3 on Wednesday March 01, 2023 @05:04AM (#34980619)
It was definitely popular in Europe, you just had to look at the right places. Both CP/M and the multi-user variant MP/M were used in e.g. accountant offices, and the reason is exactly as an earlier comment said - CP/M and MP/M could run on tons of different hardware, so you could start with choosing which hardware worked best for your use case / office, and then just run CP/M or MP/M with the software you needed. Accounting, for example. I remember visiting an office with 8 terminals connected to an MP/M box - I can't recall at all what that hardware was, except that it was probably built in northern Europe somewhere. I went there because they had accidentally deleted all the files on their harddisk, and needed a rescue.. which wasn't difficult to fix.
Re:LokiOS. A new version of CP/M 2.2, written from Scratch by cmrdporcupine on Wednesday March 01, 2023 @04:57AM (#34980574)
It's just what ran on the various 8080/Z80 machines that flooded the market in the late 70s. There weren't really any alternatives.

As for the prevalence of its concepts, Gary Kildall borrowed a lot from minicomputer OSes that he was exposed to early in his career. CP/M brought a lot of the capabilities and styles of those $$$ systems to machines that people could use at home. So I think if you want to see where this style of CLI came from and why those things were popular you might look at DEC TOPS-10... or other "real" minicomputer operating systems that hobbyists coveted but could not afford for themselves.

Before standardization around the IBM PC, CP/M was the only way to get that, really. And there were boatloads of these 8080/Z80 systems out there, all sharing some common attributes but not being 100% compatible with each other, so CP/M is what glued them all together until the great wave of the IBM PC overtook them all.

Re:LokiOS. A new version of CP/M 2.2, written from Scratch by lproven on Wednesday March 01, 2023 @06:04AM (#34981009)
> compared to its contemporaries

It didn't have any. That's why it thrived. It was the first cross-platform OS for microcomputers. There were other microcomputers, but they didn't have OSes as such: they mostly had a BASIC interpreter in ROM and that was all.

And most machines had their own unique implementations of BASIC, all subtly different. In the American market (and only there), Microsoft BASIC was a lowest-common-denominator industry standard, because it was very small and MS made it cheap. It was rubbish, though: no graphics, no sound, no structure, not even IF...THEN...ELSE.

In the rest of the world, vendors competed for who could offer the best BASIC... and in the end, Acorn won, with BBC BASIC, which was the best by far of any early 1980s micro. Acorn went on to invent the ARM processor.

However, all the different BASICs made all the machines software incompatible.

CP/M was a DOS: a disk operating system. You needed a disk drive, and ideally 2. That was expensive, so CP/M ran on expensive micros in the small-business market: often they cost thousands of £/$ while home computers sold for hundreds of £/$.

In that space, CP/M had no competition until MS-DOS came along, for the newer and more powerful 16-bit Intel 8088 and 8086 chips.

Re:LokiOS. A new version of CP/M 2.2, written from Scratch by goosedragons on Wednesday March 01, 2023 @06:22AM (#34981122)
If the UK is "the rest of the world" sure. Microsoft BASICs served as the foundation for a lot of home computer BASICs, Commodore's, Apple's, MSX, PC-8800's. C64's were very popular in parts of Europe too like Germany, not just the US.
Re:LokiOS. A new version of CP/M 2.2, written from Scratch by lproven on Wednesday March 01, 2023 @07:14AM (#34981502)
Not just the UK.

France had some interesting home micros, and of course Minitel.

Japan had some amazing machines, and MSX did some stuff that no other 8-bits ever did.

Behind the iron curtain there was a ton of R&D, including legions of clones, but also PDP-11 home computers, machines that used trinary instead of binary and all sorts of exotica.

In the Southern hemisphere, Australia and several big Latin American countries had their own industries, due to the costs of imports.

Re:LokiOS. A new version of CP/M 2.2, written from Scratch by goosedragons on Wednesday March 01, 2023 @07:31AM (#34981632)
I'm aware but they weren't using BBC Basic...

MSX Basic was a derivative of MS BASIC, which isn't really surprising since they had their hand in developing the MSX standard.

Re:LokiOS. A new version of CP/M 2.2, written from Scratch by lproven on Wednesday March 01, 2023 @05:42PM (#34989369)
MSX wasn't? No, indeed not, and AFAICR MSX BASIC wasn't anything very special. (MSX-DOS actually was, and is CP/M compatible and can run CP/M programs, which is rarely even mentioned.)

But MSX was aimed squarely at gaming with a sideline in music making and things. I feel it deserves more respect, as one of the longest-surviving 8-bit architectures, one that was the most extended of all of them, and even transitioned with some degree of success to 16-bit, with the Z800-compatible R800 chip: https://www.msx.org/wiki/ASCII_DAR800-X0G

Re:LokiOS. A new version of CP/M 2.2, written from Scratch by fastaguy88 on Wednesday March 01, 2023 @07:49AM (#34981788)
Mostly because there were no contemporaries. HDOS (Heathkit DOS) was an alternative for a while (only on Heath/Zenith) but almost all third party packages were for CP/M. It is hard to explain the hardware diversity, even in the 8080/Z80 universe, but relative lack of software diversity (there was no IBM PC standard). But if you wanted to run WordStar, CP/M was the only option.
Re:LokiOS. A new version of CP/M 2.2, written from Scratch by BirAdam on Wednesday March 01, 2023 @08:31AM (#34982154)
8 bit CPUs are seriously limited and the OS on them needed to be user friendly and lean. CP/M mostly covered that. The other thing is, many early computer users also had used mainframes, with DEC being exceedingly popular in colleges and universities. Among the operating systems for DEC’s machines was TOPS-10, from which CP/M drew a ton of inspiration. CP/M being similar to TOPS in many ways made it easy for people to pick up. There’s also timing. CP/M had serious first mover advantage.
Re:LokiOS. A new version of CP/M 2.2, written from Scratch by themadturk on Wednesday March 01, 2023 @02:51PM (#34987377)
For one thing, there weren't many contemporaries. Its biggest advantage was its ubiquity. It came out years before MS-DOS. Some microcomputer manufacturers had their own DOSs, but CP/M needed relatively little customization to run on any machine that had an 8080 or Z80-compatible processor, and in most cases it ran better and faster than the hardware manufacturer's DOS.

Microsoft's first hardware product, the Z80 Softcard for the Apple II, was a bestselling product because it gave the Apple an 80 column display and CP/M 2.2 all in one package.