PDA

View Full Version : CP/M vs. DOS



Raven
April 30th, 2009, 10:19 AM
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?

gerrydoire
April 30th, 2009, 10:28 AM
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.

Vlad
April 30th, 2009, 10:35 AM
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.)

Chuck(G)
April 30th, 2009, 10:37 AM
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 (http://www.cpm.z80.de/binary.html)

tezza
April 30th, 2009, 10:48 AM
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

TandyMan100
April 30th, 2009, 10:51 AM
DRI Binaries (http://www.cpm.z80.de/binary.html)

Where's the WET Binaries? :p

RichCini
April 30th, 2009, 11:02 AM
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.

barythrin
April 30th, 2009, 11:56 AM
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.

Chuck(G)
April 30th, 2009, 02:00 PM
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 (http://bitsavers.vt100.net/pdf/ibm/system32/System32_floppy_ch8.txt).

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.

tezza
April 30th, 2009, 05:11 PM
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


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.





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

Chuck(G)
April 30th, 2009, 06:58 PM
CP/M didn't invent PIP or its syntax, or DDT or the drive:name.extension file naming convention. Those came from DEC's OSes, PDP-6 MONITOR, TOPS-10, RSX-11, etc. About 1965.

From the TOPS-10 (PDP 10) manual:

The general PIP command string is:

PIP>outfile=infile1[,infile2,infile3,...infileN][/switch][/subswitch]


The text goes on to talk about *.* notation and the meanings of the various switches.

This command description might as well have come from the CP/M system guide.

Contrast this with the "other" 8080 operating system one was likely to run into, ISIS-II. There, the COPY command looks like this:

COPY file1 TO file2

While the DEC filename convention was adopted, it was a bit different from CP/M. To copy a file, say, MYFILE.TXT from one floppy drive to another, you would key in:

COPY :D0:MYFILE.TXT TO :D1:

More verbose (the "TO" is not optional), while probably more intuitive.

ISIS used a different filesystem, more akin to Unix, and much slower than CP/M.

Ole Juul
April 30th, 2009, 07:38 PM
@Chuck(G): Did you mean *.* literally? I'm curious about the origin of the use of * as a wildcard. Also, where did the dot come in as a seperator. Was it introduced with the concept of a file extension?

Chuck(G)
April 30th, 2009, 08:07 PM
@Chuck(G): Did you mean *.* literally? I'm curious about the origin of the use of * as a wildcard. Also, where did the dot come in as a seperator. Was it introduced with the concept of a file extension?

Yes, literally. Take a look at the TOPS-10 Commands Manual (http://bitsavers.org/pdf/dec/pdp10/TOPS10_softwareNotebooks/vol02/AA_0916F_OS_Commands.pdf). Start with page 1-19 under "File Names" and 1-22 under "Wildcard Constructions".

Note also, that special file names for devices such as PUN:, RDR: TTY: etc. are also TOPS, as is the Control-C character to interrupt.

TOPS-10 is a multi-user OS that's considerably more sophisticated than CP/M, but it's very clear where Kildall got his inspiration. TOPS, in turn, is descended from PDP-6 MONITOR (http://www.bitsavers.org/pdf/dec/pdp6/PDP-6_TimsharingBroch.pdf).

Ole Juul
April 30th, 2009, 08:56 PM
I had always wondered where this vocabulary started. Now I have a good idea - thanks. It's interesting to see how Ctrl-C works in lots of places and even on modern Linux systems. Being a doshead, when I moved to Linux I found that some of the keystrokes that I had ingrained in my brain just worked when I needed them. Too bad the GUI world will probably never have such universal language. Forty years later I can hit Ctrl-C and it still works. WOW! These things run so deep that it would be worth knowing the "exact" date of introduction.

Wikipedia lists PDP-6 Monitor software as first being released in '64, and Tops-10 in '67. It also mentions the final release of Tops-10 as being 1988. Presumably it was used for some years after that, but even then, twentyone plus years is pretty impressive.

PS: Ctrl-C has even outlived the power switch which stopped working some years back. lol

Dr_Acula
April 30th, 2009, 09:01 PM
Some fascinating insights and history there.

I like CP/M because I can take a pile of ICs and turn them into a working computer that can print "hello world" on a vga monitor in about 1 hour. The other thing that is handy is that you are not tied to a particular language. Eg with modern chips, you are stuck with Basic on a picaxe, C on an arduino and Spin on a propeller. I like the flexibility of being able to code in various different languages. Especially if there is existing code already written - eg writing a neural network simulation in basic but doing the FFT analysis in C.

CP/M is like a simpler version of DOS. DOS kept evolving with more and more things being added so it has a lot more commands. CP/M kind of got frozen in time so there are not so many commmands to learn. ERA, DIR, TYPE, SAVE off the top of my head, and A:, B: etc for selecting drives. Then you can run programs like PIP to do the copy.

The source code for CP/M is also (just) able to be comprehensible in its entirity, and I don't think that applies to many operating systems that came after CP/M.

You can add commands to CP/M if you like. Eg the COPY above could always be written as a new program if you didn't like order PIP uses. And I have written a program called FORMAT (in assembly). which can format a ram drive. So there are synergies you can build with DOS. I'm in the process of integrating a uDrive into CP/M and that is going to involve some new programs like COPY and a special DIR that sends out the huge file list in pages to cope with the large file size of the uDrive. CP/M with 2Gb of sd card memory and a total power consumption of 1/4 of a watt!

Are you thinking of using CP/M for something or building a board?

Raven
April 30th, 2009, 09:40 PM
I am obsessed with computers, especially the older ones (as evidenced by my hanging around this forum so much), and I've never once encountered a PC with CP/M, nor had I heard of it until I began to delve into the world of Vintage Computing.

I'd like to know everything there is to know about all computers (an ambitious goal, to be sure, and probably unattainable), which gives me something to do at any given time. Today I found myself quite curious about CP/M and this has given me a great start, and started some great dialog. I'm curious where this thread will end up going, and have been enjoying it so far.

I'd like to get a VM going with CP/M to get some experience soon.

As well, I am going to be writing my own operating system (bit by bit over a long period of time). I have started with the shells, since that's my favorite, and am working my way down. I take inspiration from every GUI and CLI that I've used, and the more I add, the more useful my shells become, so CP/M is one I must explore.

MikeS
April 30th, 2009, 09:58 PM
A few computers came with both MS-DOS and CP/M in those days.

But if you can't find one of those, Chuck (G) has a little experience running a CP/M emulation on a DOS machine, exchanging disks between the two systems etc.

Check out 22NICE and 22DISK...

Fallo
April 30th, 2009, 10:01 PM
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.

On CP/M, you use the command ERASE to delete files. DOS will accept ERASE too, but almost no one uses it. CP/M also does not display the exact sizes of files in directory listings; it rounds them off.

Almost every Z80 computer had a version of CP/M available for it. The vendor would buy a copy of the CP/M kernel (which was always distributed on 8" SS/SD floppies) and add I/O routines for their machine.

Software like WordStar would come with a setup program you'd run to configure the video display and things of that nature. CP/M applications were usually generic and would run on any machine because most Z80-based computers had similar memory maps. One of the few exceptions was the TRS-80 Model I, which had it's video memory in the place where CP/M's TPA began. As a result, applications had to be rewritten for the Model I, and CP/M was never widely used on it.

And then non-Z80 machines like the Apple II, Commodore 64, and even PCs were available with Z80 cards or cartridges for the purpose of running CP/M. The Commodore 128 would then have an onboard Z80, although by the late '80s, CP/M was dying out. The C128 was also one of only two computers (the other being the MSX) to use CP/M with 3.5" floppies.

As for PCs, CP/M-86 was not only much more expensive than DOS, but was incompatible with it. Software companies had to support both OSes, and only a few applications such as WordStar had both DOS and CP/M-86 versions, and could run on non-IBM 80x86 machines like the Tandy 2000, Sanyo MBC, and HP 100-series. Subsequently, DR-DOS was introduced, and was compatible with both MS-DOS and CP/M-86.

Meanwhile, Gary Kildall felt that he'd been horribly cheated and that Bill Gates got credit for his work. In a 1983 magazine interview, he said something to the effect of "I'll bet Gates doesn't know why function 9 requires you to terminate strings with a dollar sign."

And then the poor guy ended his days by going into the wrong bar...

Chuck(G)
May 1st, 2009, 12:09 AM
I've done CP/M-86 BIOSes too. BIOSes for MS-DOS aren't any more difficult, unless you're interested in maintaining PC compatibility.

Quite a number of the early x86 systems ran their own customized version of MS-DOS (e.g. Tandy 2000, Eagle 1600, DEC Rainbow, HP 150, etc.). That lack of PC compatibility really doomed them when the cheap Far East clones flooded the market. It's that--and not the introduction of the 5150 that really killed off alternative PC architectures. Why pay $1700 for a Morrow Z80 box when you can spend $800 for a no-name PC clone?

There are lots of artifacts of CP/M in MS-DOS. Take a good hard look at the old FCB functions in MS-DOS and note how many of the FCB fields match those in CP/M, even though the CP/M version mimics the CP/M directory entry. Command line arguments are stashed in TPA+80H, just like CP/M did. The primary FCB is at 5CH and the default "DMA address" is 0080H. COM files load at 100H--all the same as CP/M. On and on...

CP/M's weakness is its file system. Flat, with a fixed number of directory entries and combined directory/allocation map, which means that large files can take up many directory slots. It was designed for floppies and worked well--but gets limited and awkward for hard disks--and is impossible on larger hard disks.

The other aspect of CP/M file problems is file granularity--file lengths are recorded in the directory as a multiple of 128 bytes. In text files, the convention was to end the file with a hex 1A character--something that many DOS utilities still support.

tezza
May 1st, 2009, 01:48 AM
That lack of PC compatibility really doomed them when the cheap Far East clones flooded the market. It's that--and not the introduction of the 5150 that really killed off alternative PC architectures. Why pay $1700 for a Morrow Z80 box when you can spend $800 for a no-name PC clone?


That's exactly right. It's something that a lot of people don't appreciate. It wasn't the IBM 5150 that doomed other systems. IBMs were expensive! It was the cheap clones that made the MS-DOS the unstoppable juggernaught it was.

Tez

Chuck(G)
May 1st, 2009, 09:09 AM
That's exactly right. It's something that a lot of people don't appreciate. It wasn't the IBM 5150 that doomed other systems. IBMs were expensive! It was the cheap clones that made the MS-DOS the unstoppable juggernaught it was.

One thing that I've never seen any documentation for was something a friend from Taiwan told me at the time. He claimed that the success of the PC clone (at least for the 5160s) was largely due to the efforts of the Taiwanese government, providing reference designs, documentation and even BIOS code.

This appears to have some truth--I've got several different flimsy no-name booklets for peripherals (printer cards, floppy controllers, MGAs, etc.) that are printed on different stock in different typefaces, but otherwise contain the same text and (wrong) illustrations.

And the Taiwan 5160 clones were "Clones", not "clones". You could run them with a 5160 BIOS and software could not tell the difference between one and the Real Thing.

Can anyone substantiate this government sponsorship and provide a bit of history behind it?

ziloo
May 1st, 2009, 10:51 AM
.......The source code for CP/M is also (just) able to be comprehensible
in its entirity, and I don't think that applies to many operating systems
that came after CP/M............


Nicely said....probably the most attractive aspect of cp/m, a one-man
operating system!

ziloo

patscc
May 1st, 2009, 11:13 AM
Ref. Chuck(G)'s post, I've wondered that myself. I've never really seen a ton of Taiwanese S-100 stuff, for example. (Just to my knowledge, I may definitely be wrong on this.)
I wonder if the Taiwanese government saw this as an opportunity to keep their new-found talent for electronics manufacturing gained from flooding the U.S. and Europe with cheap electronics from slowing down just as a lot of electronics items were having to contend with saturated markets. And here was a brand, new, free for all.
patscc

FloppySoftware
December 29th, 2010, 05:31 AM
CP/M didn't invent PIP or its syntax, or DDT or the drive:name.extension file naming convention. Those came from DEC's OSes, PDP-6 MONITOR, TOPS-10, RSX-11, etc. About 1965.

From the TOPS-10 (PDP 10) manual:


The text goes on to talk about *.* notation and the meanings of the various switches.

This command description might as well have come from the CP/M system guide.

Contrast this with the "other" 8080 operating system one was likely to run into, ISIS-II. There, the COPY command looks like this:


While the DEC filename convention was adopted, it was a bit different from CP/M. To copy a file, say, MYFILE.TXT from one floppy drive to another, you would key in:


More verbose (the "TO" is not optional), while probably more intuitive.

ISIS used a different filesystem, more akin to Unix, and much slower than CP/M.

Hello!

And... What about the character '$' as the end for printing strings in BDOS fn. 9?

leeb
January 1st, 2011, 11:54 PM
... Did anyone here fight the DOS bandwagon and really like CP/M?? (Just curious)..


Yes. Still do.
For those who remember PROLOG (corp) and the STD-bus, I learned Pascal while writing a Z80 assembler that duplicated the PROLOG format. It has recently (2010) undergone a 'Renaissance Edition' and cleaned/fixed/modified some important issues. :roll:

I regularly fire up the 'good ole Dinosaur' and make sure the date/time is right (and need to do so RE the new year!)

Working to build a CPM3 version that will work with my 3.5" drive and (G)IDE-based hard drive... possibly even rewriting the boot ROM to contain the CBIOS (tho LONG-TERM).

I have a design 'on-the-boards' for a new laptop-type machine with paged memory for just this reason!

Cheers and Happy New Year to everybody! :D

Chuck(G)
January 2nd, 2011, 09:20 AM
There's nothing wrong with CP/M for a resource-limited micro, but that wasn't the IBM PC. And I didn't consider DOS 1.x to be significantly superior to CP/M-86 (rather than a clone with a different filesystem) until DOS 2.0. That in my mind, is when DOS left CP/M in the dust because of filesystem limitations.

The release of Concurrent DOS seems to verify this.

Unknown_K
January 2nd, 2011, 10:21 AM
I have a boxed copy of Concurrent CP/M - 86 V 1.0 coming soon to check out, never used CP/M of any type.

Ole Juul
January 2nd, 2011, 01:41 PM
. . . And I didn't consider DOS 1.x to be significantly superior to CP/M-86 (rather than a clone with a different filesystem) until DOS 2.0. That in my mind, is when DOS left CP/M in the dust because of filesystem limitations.

Agreed, DOS 2.0 was apparently a complete rewrite. The earlier "DOS" was not the same OS. With 2.0 we got all the UNIX goodies like a hierarchical file system and support for device drivers. Not having a file system "tree" is a huge limitation, similar to a book library putting all their books in a pile inside the door. That is obviously impossible to use for professional information management purposes. The device drivers meant support for connecting both software and hardware to the system. In short, from March of 1983 DOS became a different world.

saundby
January 3rd, 2011, 04:14 AM
Ref. Chuck(G)'s post, I've wondered that myself. I've never really seen a ton of Taiwanese S-100 stuff, for example. (Just to my knowledge, I may definitely be wrong on this.)

I used to see them by the ton, literally. They were shipped as ballast, then would be left in cord-sized stacks on the dock under a tarp with a guy standing nearby. You would buy them by weight, picking boxes from the lot that had the least water damage. Duds were common, but you could buy 3-4 assembled and populated cards for a fraction of the price of a single card bought normally. If you were a techie, you could buy a bunch of cards and put together a couple of full-up systems. Keep one, sell the other, make a profit and still have spares plus scrapper boards. If you were lucky you could build 3 complete systems from buying 4 of each card.

But once the PC Clones started getting halfway reliable, they meant fewer parts to buy, easier integration, and an easier sell to customers that weren't invested in CP/M. By that time they were affordable when sold above-board, too. Which was a good thing since there'd been some crackdowns on the dockside sales.

Chuck(G)
January 3rd, 2011, 09:49 AM
I've never seen a Taiwanese S-100 board, period. The ERSO thing didn't get going until the early 80's.

CP/M User
January 3rd, 2011, 06:47 PM
I personally use CP/M in an unorthodox manner by making programs which aren't usually associated with CP/M. My website mostly contains programs which have been written using Turbo Pascal 3, though in recent times have been focusing on the Hardware provided from the Amstrad CPC computer range, needless to say there are some generic programs there as well and a Game which I've left Generic, I'm working on another one now which I'm hoping I'll be able to get away with using Generic Code and then enhancing it a little bit.

Depending on what your using though may depend on what you can get away with. CP/M is widespread across a number of platforms and it perhaps still holds the record for the number of CPUs it will range across. DOS on the other hand is a hack of CP/M and brought into existance though a Machine Code translator. In CP/M-86 for example, it's quite amazing how one can port a Turbo Pascal program from DOS and simply make it for CP/M-86, the only setback is Borland only made Turbo Pascal for CP/M-86 for Version 3 - just like the other Turbo Pascal versions for CP/M - in DOS this extends to Version 7. For an early operating system for the IBM PC & XT, CP/M-86 v1.1 in particular is very good to upgrade to support later hardware. How this compares to DOS I'm not sure, though CP/M-86 v1.1 can reckonise the full 640k and even have utilities and hardware patches made for it to cater for things like 1.44Mb Floppy Disks, Extended RAM to be used as a RAM Drive for instance and even support for lager Hard Disks. This last one though was done in such a way it would create separate partitions, CP/M-86 v1.1 is limited to support upto 8Mb, though 8Mb is actually quite a lot for CP/M-86, from memory the upgrade did upto 120Mb! It's still very good for an operating system which is nearly 30 years old though - without the support of FIDDs which is it's own version of DOS TSRs, it's interesting to see what could be done! :D

Chuck(G)
January 3rd, 2011, 07:16 PM
What stops CP/M-86 (which is really different from the 8 bit CP/Ms), is that there's no standard hardware platform, like there is (PC) with DOS (Yes, I know there are other also-rans, such as the DEC Rainbow, but let's face it, the PC is it).

As far as the number of CPUs, have a look at NetBSD and then get back to me on that one.

FWIW, DOS really is a port of CP/M 2.2 to the 8086 platform and even enjoys a similar interface. (i.e. put the function number in CL and jump to location 5 in your PSP).

At the time SCP got their DOS going, CP/M-86 hadn't escaped from Pacific Grove.

CP/M User
January 3rd, 2011, 09:21 PM
Chuck(G) wrote:

What stops CP/M-86 (which is really different from the 8 bit CP/Ms), is that there's no standard hardware platform, like there is (PC) with DOS (Yes, I know there are other also-rans, such as the DEC Rainbow, but let's face it, the PC is it).

Mainly because there aren't all that many 16bit processors floating around at the time, though numerous 8086 based systems do exist which CP/M-86 was on (likewise for MS-DOS).

As far as the number of CPUs, have a look at NetBSD and then get back to me on that one.

Likewise you should checkout the CP/M Family and the number of Systems (not CPUs) it covered. Though the CPU coverage is quite vast!

FWIW, DOS really is a port of CP/M 2.2 to the 8086 platform and even enjoys a similar interface. (i.e. put the function number in CL and jump to location 5 in your PSP).

I prefer a Hack of CP/M 2.2.

At the time SCP got their DOS going, CP/M-86 hadn't escaped from Pacific Grove.

And yet early versions of CP/M-86 have the same traits of 2.2!

Chuck(G)
January 3rd, 2011, 11:07 PM
Likewise you should checkout the CP/M Family and the number of Systems (not CPUs) it covered. Though the CPU coverage is quite vast!

I've been using CP/M since it came with my IMSAI disk drives (1.3). I've written custom production BIOSes for CP/M as well as MP/M and CP/M-86. I even have OEM materials for several DRI products. So I know the product line well.

As far as CPU coverage, nothing beats Unix. Unless you know of a version of CP/M that runs on a PDP-11 or a CRAY 3 or an IBM System/3.

vwestlife
January 4th, 2011, 09:19 AM
Agreed, DOS 2.0 was apparently a complete rewrite. The earlier "DOS" was not the same OS. With 2.0 we got all the UNIX goodies like a hierarchical file system and support for device drivers. Not having a file system "tree" is a huge limitation, similar to a book library putting all their books in a pile inside the door. That is obviously impossible to use for professional information management purposes. The device drivers meant support for connecting both software and hardware to the system. In short, from March of 1983 DOS became a different world.

It's funny to look back at some of the very early DOS utilities. I came across a copy of SDIR version 1.12 from 1982, for "IBM Internal Use Only". It provides a very nice two-column, alphabetically sorted DIRectory display, but is utterly useless in anything newer than DOS 1.x, because it does not recognize subdirectories! In DOS 2.0 or higher, it will show the files in the current directory, but totally ignores any subdirectories. It also provides only 7 digits for the free disk space count and doesn't display years above 1999 correctly (01-04-2011 shows up as "01-04-;1").