Image Map Image Map
Page 1 of 4 1234 LastLast
Results 1 to 10 of 35

Thread: CP/M vs. DOS

  1. #1
    Join Date
    Mar 2009
    Location
    DE, USA..
    Posts
    2,752

    Default CP/M vs. DOS

    I know that these operating systems are fairly similar, but I've never used CP/M. What exactly are it's differences from DOS, other than it's (somehow) different executable format?

    Is there a convenient webpage that explains this that you could point me to?

    Is there a CP/M for x86?

  2. #2

    Lightbulb

    Quote Originally Posted by Raven View Post
    I know that these operating systems are fairly similar, but I've never used CP/M. What exactly are it's differences from DOS, other than it's (somehow) different executable format?

    Is there a convenient webpage that explains this that you could point me to?

    Is there a CP/M for x86?
    I often wondered the same thing, but at this stage of game, does it CP/M even matter, even with the highest form of Windows, DOS still exists in a Window Box(cmd.exe), CP/M is microdust.
    GEEKS WITH A GRUDGE!

  3. #3
    Join Date
    Jul 2005
    Location
    United States
    Posts
    2,241

    Default

    Quote Originally Posted by gerrydoire
    even with the highest form of Windows, DOS still exists in a Window Box(cmd.exe),
    Not really. In any NT based Windows OS cmd.exe is just a program that acts like DOS for backwards compatibility and some low level uses. (You can edit the Registry with it but its a huge pain compared to RegEdit.)

  4. #4
    Join Date
    Jan 2007
    Location
    Pacific Northwest, USA
    Posts
    34,970
    Blog Entries
    18

    Default

    Quote Originally Posted by Raven View Post
    I know that these operating systems are fairly similar, but I've never used CP/M. What exactly are it's differences from DOS, other than it's (somehow) different executable format?

    Is there a convenient webpage that explains this that you could point me to?

    Is there a CP/M for x86?
    There are CP/Ms for x86, x80, Z8000 and 68K.

    The differences between CP/M-86 and PC-DOS 1.0 were exceedingly small. As DOS added things on (e.g. subdirectories), things started changing.

    Concurrent CP/M-86 morphed into Concurrent DOS, which then morphed into DR-DOS.

    Yet, there remains something of the original CP/M even in Windows (under the DOS command prompt). For example, the CP/M function mechanism of putting the request ordinal in CL and calling location 5. Or FCBs--or the DOS request numbers themselves.

    As to intellectual property, code piracy, etc., you can find lots of stuff about that on the web. No need to rehash it here.

    The best way to learn about CP/M is to try it for yourself:

    DRI Binaries

  5. #5

    Default

    Quote Originally Posted by Raven View Post
    I know that these operating systems are fairly similar, but I've never used CP/M. What exactly are it's differences from DOS, other than it's (somehow) different executable format?

    Is there a convenient webpage that explains this that you could point me to?

    Is there a CP/M for x86?

    CP/M is very similar to the original MS-DOS (or PC-DOS). Not surprising as PC-DOS was essentially QDOS (Quick and Dirty DOS) and QDOS was modelled on CP/M. When IBM can knocking Bill Gates didn't have a 16-bit DOS so he scratched around found QDOS. He then bought it outright from the developer so he had something to give IBM for the 5150. PC-DOS (MS-DOS) was born and rest was history as they say.

    I don't have a link offhand but if you google around there is plenty of stuff on the web on this famous 8-bit operatiing system. There are a few emulators (e.g. z80) that allow it to run in a DOS box too.

    Tez
    ------------------------------------------------
    My vintage collection: https://classic-computers.org.nz/collection/
    My vintage activities blog: https://www.classic-computers.org.nz/blog/
    Twitter: @classiccomputNZ ; YouTube Videos: (click here)


  6. #6
    Join Date
    Jan 2009
    Location
    At my computer
    Posts
    632
    Blog Entries
    2

    Default

    Quote Originally Posted by Chuck(G) View Post
    Where's the WET Binaries?
    [..RETRONET..] http://www.retro-box.net

    IRC, FTP, HTTP and Quake!

    Check us out (we have cookies)!

  7. #7

    Default

    Quote Originally Posted by Raven View Post
    I know that these operating systems are fairly similar, but I've never used CP/M. What exactly are it's differences from DOS, other than it's (somehow) different executable format?

    Is there a convenient webpage that explains this that you could point me to?

    Is there a CP/M for x86?
    There probably isn't a neat-and-tidy Web page that outlines all of the differences, but I bet there were articles published back in the day that did just that.

    Anyway, DOS and CP/M are as alike as they are different. Both presented applications with a consistent operating environment and a way to intreact with the user. Many of the perceived deficiencies in CP/M were borne out of the fact that there was no hardware standard at the time. S-100 was a buss standard, but not a configuration standard in the same fashion as the PC was.

    Ok, so each machine had a CPU card, a memory card, maybe a floppy disk interface card, a serial console card (or a parallel I/O card for an ASCII keyboard), and maybe a video card or an audio cassette interface. Problem is that there were dozens of vendors with no standard resource assignments. It was a mish-mosh of hardware -- and everyone's system was just a bit different. I could take 10 people from this forum and line-up their S100 crates and they would be all different. There were probably some exceptions to this -- if I bought a pre-made system from the BYTE Shop for example -- but largely it was mass confusion.

    Here's a few highlights of the differences. Again, this isn't Gospel, but my take on it after having used these machines for a while through this hobby:

    * CP/M was written for the 8080 processor (initially; Z80 and yes, there were versions for the 8086 and the 68000), while DOS was derived from QDOS, a CP/M-like operating system from Seattle Computer Products, and targeted towards the 8086. There were many difference in the architectures but the address space is the one I'll focus on. The 8080 had a 64k address space while the 8086 had a 1mb segmented address space (although only 640k was usable in the PC architecture).

    * Because of the address space and memory capacity differences, CP/M was designed to be a tightly-written OS. Further, CP/M programs were limited to much less than 64k in size because CP/M itself took up some of that space. The notable exception is banked CP/M, but my knowledge of it is very limited. With DOS, you could have very large programs because you could -- if you had lots of $$$ -- have lots of memory. CP/M had no "relocatable .exe" program format -- everything was a .COM file, which is a straight binary file with no header information.

    * Standard hardware support in CP/M was non-existent. You had to build your own CBIOS -- sort of a hardware abstraction layer -- which provided the link between your specific hardware and the CP/M system BDOS. I'd characterize CP/M as a "craft" operating system. You had to know assembly language and be intimate with your hardware so you could write drivers for floppy disk controllers, serial cards, printer interfaces, etc. Some cards came with the code pre-written, but you had to patch it into your CBIOS, reassemble it, and then patch all of your CP/M copies on disk. I've done it and it's a giant pain.

    * No installable device drivers like MSDOS.

    * No easy directory structure. CP/M had user areas which sort-of functioned like directories, but I don't find them easy to use.

    * Commands were different. For example -- and one that I hate -- you had to use a special external (CP/M "transient" program) to copy files. It was called PIP. DOS had a built-in "copy" command.

    This is all that I can think of at this point. I'm sure that others on the list can point out more similarities and differences, and correct me where I may be wrong.

  8. #8

    Default

    I never got to use CP/M much outside of trying to get it up on some vintage gear and trying out one of the CP/M emulators under linux (which after a few commands crashed so I didn't learn much).

    Didn't it have a bit more confusing argument structure? Sort of assembly style (good for programmers, bad for users)? Things were structured like a programmer would think. PIP destinationfile originalfile (similar to moving the value 43 to a register "mov ax, 43") which I found interesting.

    http://www.cpm.z80.de/manuals/cpm3-cmd.pdf Wikipedia has a fairly good description of the OS and this is a manual I found while googling around. The catch as noted by a few was the lack of standards in the computer industry. So you had to have a copy of CP/M for each system you owned for it to run. There was no BIOS back then until IBM developed it and quickly had many manufacturers try and reverse engineer it (Compaq and Columbia Data Products) which somewhat eased the market and programming of computers to be more compatible.

    It's kind of interesting looking at CP/M now, it almost seems like a linux like, hobbiest/geek OS.

    Did anyone here fight the DOS bandwagon and really like CP/M?? (Just curious).. I know I was fighting for DOS instead of Windows ("Why do I want everything covered up? I already know what I want to do and can type it quicker than I can find some stupid icon") although my dad appropriately argued with the PC User group at the time saying "this Windows is really going to take off" lol.

  9. #9
    Join Date
    Jan 2007
    Location
    Pacific Northwest, USA
    Posts
    34,970
    Blog Entries
    18

    Default

    CP/M-80 (1.x and 2.x) did, in fact, have a standard hardware platform--the Intel MDS-800. Every OEM version of it that shipped would run on the MDS right out of the box. The same goes for MP/M. The standard disk interchange format was IBM 3740 single-sided, single-density 128 byte sector, 77 track. At the time that CP/M was written, it was one of the few documented standard formats. See, for example Chapter 8 of the IBM System/32 Functions Reference Manual .

    The major difference between CP/M and MS-DOS internally is the filesystem organization. MS-DOS uses a linked-list allocation table separate from the file name directory; CP/M uses a unified flat directory that includes allocation information. On small systems with limited memory, the CP/M model makes a lot of sense (only one table to fool with). Microsoft or Seattle Computer did not invent the FAT; linked-list dynamic file allocation had been in use on many mainframe systems since the 1960s.

    MS-DOS versions prior to 3.0 are not tied to any particular hardware at least in their OEM form. The reseller wrote a BIOS (just like CP/M) and created his own IO.SYS to match his hardware. NEC PC98 is an example of a non-IBM-compatible distribution; there are several others. I still have the OEM notes for MS-DOS 2.00 somewhere, along with the BIOS routines for the Durango Poppy 80186 box driving a VT-220-compatible terminal.

    Microsoft had rather extreme licensing terms if you were an OEM. I recall that Bill Godbout (of the Compupro S-100 systems) couldn't stomach them, so to run DOS on his systems, you had to buy a copy of IBM PC-DOS and then replace the IBMBIO.COM file on the boot floppy.

  10. #10

    Default

    Quote Originally Posted by barythrin View Post
    Didn't it have a bit more confusing argument structure? Sort of assembly style (good for programmers, bad for users)? Things were structured like a programmer would think. PIP destinationfile originalfile (similar to moving the value 43 to a register "mov ax, 43") which I found interesting..
    Certainly, the PIP command was confusing to me at first, but yea...similar to reverse polish notation I think, which to a computer is quite logical. But not a human..lol

    Quote Originally Posted by barythrin View Post
    It's kind of interesting looking at CP/M now, it almost seems like a linux like, hobbiest/geek OS..
    Yes. I agree, and I think that's a reflection of the hardware at the time, both in terms of capability and lack of standards. There really wasn't any room for user-friendliness as such if you wanted to get your OS and your applications all running in just 64k or less.

    My feeling is there were only two types of CP/M users in the day (1977-1982)

    • Businesses who used the OS only to boot their applications (things like Wordstar, DBASe Visicalc etc.) and copy/backup data files.
    • The forementioned hobbiest/geeks who assembled or bought their own CP/M units and played around with assembler and other such languages.



    Quote Originally Posted by barythrin View Post
    Did anyone here fight the DOS bandwagon and really like CP/M?? (Just curious).. I know I was fighting for DOS instead of Windows ("Why do I want everything covered up? I already know what I want to do and can type it quicker than I can find some stupid icon") although my dad appropriately argued with the PC User group at the time saying "this Windows is really going to take off" lol.
    I don't think I ever stood in a corner and fought for just one OS. They all have their pluses and minuses and software will always evolve.

    The first OS for micros I got to know was NEWDOS 80/2.0 written for the TRS-80 Model 1. I like this OS a lot (It's a geek's OS) and remember being quite surprised at how favourably it compared to other, more widely used, OSs of the day such as CP/M and Apple DOS 3.3 when I finally got around to trying them!

    Tez
    ------------------------------------------------
    My vintage collection: https://classic-computers.org.nz/collection/
    My vintage activities blog: https://www.classic-computers.org.nz/blog/
    Twitter: @classiccomputNZ ; YouTube Videos: (click here)


Bookmarks

Posting Permissions

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts
  •