Obligatory Casablanca reference
"I am shocked, SHOCKED, to find there is gambling going on in this casino!"
The IEEE's Spectrum magazine has admitted that a recent contributor, who wrote an eyebrow-raising revisionist history of MS-DOS, is paid by Microsoft. Eagle-eyed readers have spotted that the notorious article about the development of Microsoft's early operating system, which we discussed here, is now prefaced with the following …
"I am shocked, SHOCKED, to find there is gambling going on in this casino!"
While we're here, I vote for a new 'Casablanca' icon that is used when you need to
'Round up the usual suspects'
Come on el reg, how 'bout it ?
Paterson is innocent - QDOS ("Quick and Dirty OS, the OS Bill Gates licensed to turn around and resell to IBM as MS-DOS) would not have sucked as hard as it did if it actually had CP/M code in it.
That would be true if it were a bit for bit copy. Not so much if you've gone in and mucked around a bit so you can claim it's yours.
Theoretically could still be innocent, it's just you haven't really proved that he is.
Did I manage to write that last bit and never loose the straight face?
Retained as expert witness is not the same as corporate shill.
You haven't seen how much M$ pays its expert witnesses have you?
Actually, it does.
But neither is it the same as "independent, impartial observer"
Expert witnesses are worse than shills. What amazes me is the porkies they are prepared to tell in court. It surprises me that none are charged with perjury and/or contempt.
I recently had to review what some expert witnesses were saying and it stunned me how far they'd go to to bolster their client's case. At over $400 per hour you have to deliver something I guess....
It all makes a complete mockery of the courts and the law in general.
"Retained as expert witness is not the same as corporate shill."
err... yes it is.
Now, now. Everybody knows it's only the rubes who aren't allowed to lie or mock the law in court. If you've been licensed (a judge, a lawyer, or an expert witness) you're allowed to do just about anything you want to.
But now we still don't know whether QDOS was ripped off CP/M and by how much.
Just the numbers please, using the standard "diff".
If CP/M and DOS were coded in assembler, there's little to compare easily if DRI didn't release a 8086 version *before* DOS. Even the 8080 instruction set is different enough from the 8086 to make such a comparison not easy. The very differences in the instruction set and registers available will make code different enough for a simple "diff" comparison. You would need to analize semantically similar group of instructions to spot code that could have been borrowed instead of written from scratch to perform the same functionality - and even then some code for tasks simple enough could look similar just because there may be very few different ways to implement it.
It's inconceivable that Tim Patterson did not have a copy of the CP/M source code to study - there were several versions of the source floating around when QDOS was written - I did my own dis-assembly of CP/M at the time and later compared it to ZCPR, a Z80 version of CP/M. I'm pretty sure I still have the line-printer listings for at least a couple of the sources.
But to say that Tim copied the CP/M source code is misleading - he used the same set of BDOS access points but then who wouldn't have done? The CP/M entry points were well documented and re-inventing them would have made it unnecessarily harder to port programs to QDOS (and later MSDOS). I can't say for certain that the QDOS code was not a direct rip of CP/M because I haven't looked at the sources for many years but a straing 8080 to 8088 cross compile would have been a right pigs ear.
The reality is the QDOS was never that popular and, but for Bill Gates realizing that he could buy it cheap and resell it to IBM for $$$$$$$$$$$$$$$$$, it would have been another footnote in history.
"He used the same set of BDOS access points but then who wouldn't have done? "
Well Oracle wouldn't have liked it if CP/M has been theirs.....
True - but those were kinder, gentler days when we wrote code and released it "open source" years before the phrase "open source" even existed. At the time we kinda thought that Tim was a bit cheeky using the same basic BDOS calls but Gary hadn't copyrighted the sequence so it was fair game if you didn't care too much about your reputation.
You have to remember that, at the time, QDOS was a very small bit player - the main market for QDOS was the few people who'd built S-100 boards with 8088 processors (I wire-wrapped mine - that should tell you something) ...
Now, to imagine a different world - what would have happened if DEC had built the first PC and used their own RSX11M as the operating system - a real-time, multitasking Operating System that beat the pants off every other OS at that time...
it is important to remember that at the time of the 5150 IBM did not want the 5150 to have enough guts to threaten its regular business products. that is why CP/M was NOT authorized for the 5150. Rather the junk O/S was scrounged up from experimenters. too you'll remember the segment offset was carefully limited to 4 bits -- limiting the 5150 and derivitives to 1MB memory
> It is important to remember that at the time of the 5150 IBM did not want the 5150 to have enough guts to threaten its regular business products.
That is almost true, though it did use the fastest available 8088 chip. It was designed to be used as a terminal (which is why the serial ports are configured as DTE) with local processing capability.
> that is why CP/M was NOT authorized for the 5150.
Wrong. IBM branded CP/M-86 was available on day of release alongside PC-DOS and UCSD.
> Rather the junk O/S was scrounged up from experimenters.
> too you'll remember the segment offset was carefully limited to 4 bits -- limiting the 5150 and derivitives to 1MB memory
The 8086 and 8088 were limited to 1Mb address space, compared to 64Kb for 8080 and Z80, but you are wrong about the segment offset which was 16bit. The segment registers were also 16 bit. The limit came from the address pins because there were only 20 of them.
In fact the 5150 Model A (the original) had a limit of 256Kb because the planar (mother board) only had 18 address tracks. That was still 4 times most other machines of the time. The Model B (I have one here) was revised to have 20 tracks and the card connectors were closer together among other things.
I think he meant that the segment size was 16 bytes.
Segment * 16 + offset gives you the exact memory address. (or indeed, shift the segment register left by 4 bits before adding the offset)
That leads to (on the 80286, if not also the 80186?) a strange memory space just above 1MB (commonly referred to as "A20"): A 64KB segment addressable that you won't be able to reach with the 8086.
="The limit came from the address pins because there were only 20 of them."
the decision to use 20 rather than 24 address lines was taken during the design phase of the chip.
> I think he meant that the segment size was 16 bytes.
Segment size was 64Kb. It happened that segments could start at any address divisible by 16bytes, and could overlap. This led in DOS programs to use of segment manipulation. Instead of programs (or compilers) dealing with the limitation of 64Kb segments they recalculated (normalised) addresses to give the effect of larger blocks of data.
> (if not also the 80186?)
The 80186 and 80188 (I have examples of both here) had the same addressing as 8086/8088.
> on the 80286 ... a strange memory space just above 1MB (commonly referred to as "A20"):
The 80286 had a protected mode address space of 16Mbytes. However the segment model was completely different from the 8088 and this made it impossible to move MS-DOS into protected mode because 'segment normalisation' did not work and too much software did that.
MS did attempt to write a better MS-DOS that would use 80286 and started with a multi-tasking MS-DOS 4.0 and 4.1 (not to be confused with the much later 4.01). But these were dumped when MS turned MS-DOS 5.0 (not to be confused with the much later 5) into OS/2.
The whole software world was 'borrowing' from each other back then. I have 86-DOS, CP/M, Cromemco DOS, SuperSoft DOS, and DR-DOS on my bookshelf, and used to run them all. They probably still boot in my old systems, although I rolled my own customized 'DOS' and that is what boots these days, when I blow the dust off the old Z80 and 8086 boxes...
Copyright was and Compaq made damned sure they weren't copying IBM's BIOS.
You do realize that DR-DOS - Digital Research DOS - was written by Digital Research, the company behind CP/M?
> Digital Research DOS - was written by Digital Research,
You may note that Microsoft did not sue over copyright or anything else even though DR-DOS (and Concurrent-DOS before it) cloned the 'API' and the FAT file system. The reason that they could not sue is that DRI had the rights to do that granted by IBM and Microsoft as part of the settlement when DRI demonstrated that PC-DOS 1.0 could produce evidence of copying from CP/M.
Other settlement items were money, that IBM would sell CP/M-86 alongside PC-DOS, and that IBM would rewrite relevant parts of PC-DOS to produce PC-DOS 1.1 without infringing code. This went back to MS as MS-DOS 1.25.
I looked at Compaq computers many years ago when they first came out. They made it very clear it was not a clone of IBM. They gave me a long list of programs that the Computer would run without issue, but it was not a clone. ( yeah right)
"You may note that Microsoft did not sue (DR) over copyright or anything else "
They didn't need to, it was easier to just add some code to Windows along the lines of;
if($os = "drdos")
I'm pretty sure you missed out the ELSE statement that causes windows to crash anyway even if you use it with their own DOS.
So there was a settlement? Why are people still bleating about it?
Bob Zeidman (the author of the article) should be thrown out of the IEEE (IE his membership revoked) for bringing the IEEE into disrepute and not upholding the standards required of the membership.
Well since Microsoft has already made a mockery of ISO and Ecma why not add another 4 letter org to the list? Keep believing there is any major organization in western civilization not completely corrupted by money. If you ever hear Gartner or IDC fyi mention a specific company know that company paid big bucks to get that mention.
The article in question wasn't published in one of the IEEE's peer-reviewed journals, but in Spectrum, hardly a paragon of technical excellence or unbiased journalism.
According to Wikipedia Harold Evans used Kindall's memories for his story - may look biased as well if true.
Whatever has been, Kindall mismanaged the IBM PC affair wholly. When the largest computer company in the world comes to deal something with you, you attend - unless your mother is dying, and maybe even so.
When it comes to business, the cowboy/hippie attitude usually doesn't work.
MS-DOS and CP/M code have been around for tens of years, and nobody still is able to show evidences of a copy or not. Identical APIs interfaces are not enough - it's the implementation that matters.
> to deal something with you, you attend
DRI did 'attend'. The IBM negotiators met with the DRI negotiator, the VP in charge of OEM negotiations. It happened that was Gary's wife and the IBMers would not deal with a mere woman.
I don't know that I'd have bothered talking to them - for all the talk, it was almost 5 years before an IBM PC worked as well as my own S-100 boxes ...
OK, so I was running CP/M with 512kB of memory (yes, really - I wrote my own system exec and swapper) but all the same, most CP/M programs were assembler code and loaded and ran fast. With DBase, WordStar and SuperCalc I ran the entire company and cross-complied for other processors using CP/M and later ZCPR.
It was several years before the actual user experience on an IBM-PC came even close to what I had under CP/M - check the head seek times on 5.25" versus 8" floppies if you need a clue.
"DRI did 'attend'. The IBM negotiators met with the DRI negotiator, the VP in charge of OEM negotiations. It happened that was Gary's wife and the IBMers would not deal with a mere woman."
Then he should have went himself. But he didn't and he really showed 'em, eh? If IBM decided that they they wanted to negotiate with a talking mule he should have gone and gotten a donkey suit.
They were not dealing with a small micro manufacturer run by people probably very much alike them, they were talking to IBM - and their whole "corporate" expectations - and it looks Kendall's wife didn't have full powers to make the deal alone, and had to wait for Kendall's return. That's not the way you manage such kind of business. Probably he didn't understood because he didn't have the needed mindset, and maybe - who knows - he liked to snob the IBM guys.
Kendall was the mind behind CP/M, and it should have been there to reassure IBM they could trust DRI and their committment fully.
"...Kindall mismanaged the IBM PC affair wholly."
The way I see it, IBM mismanaged the "getting the best possible OS for their PC" affair.
Cobbling it together out of commodity hardware is one thing, but taking the attitude that they could take any old crap and sell it by slapping an IBM label on it because of the IBM reputation is a good way to devalue that reputation.
> Then he should have went himself.
It wasn't until the meeting that IBM's prejudices were shown. You are expecting precognition.
> OK, so I was running CP/M with 512kB of memory (yes, really - I wrote my own system exec and swapper)
DRI's multiuser/multitasking MP/M was first available in 1978 and used bank switching on 8080/Z80 systems to give 'instant' context switching.
MP/M and CP/M could use hard disks long before IBM-PC/XT and PC-DOS 2 'introduced' them.
The way I remember it, "no one" took the IBM PC seriously anyway because it had an Intel 8/16-bit CPU. CP/M was certainly written for the 8080, but everyone was running it a Z80 by then and the 16/32-bit space was shaping up as a race between the Z8000 (logical successor in people's minds) and the 68000 (and lesser known mini-architectures like the TMS-9900 series). Intel's 8080 was already 8-bit CPU you didn't want, and 8088 looked like the worst 16-bit upgrade available. So, a logical choice for IBM to go with, and while you're building a dead-end architecture, why not go for a quick-and-dirty, single-user OS just got make sure.
Going for (say) a UNIX clone on a 32-bit CPU, as was available elsewhere at that price point, might have had a negative impact on IBM's mini computer sales. Cock-up or conspiracy?
As I recall reading about those very early days (I only got into computing around the time DOS 3.0 came out) This one goes down to a "failure" of the vision thing. IBM didn't see a big space for small computers. So they gave their Boca Raton office a meager budget and said "build us a micro so we have something in that market space." Because they didn't see a big market, they didn't see a need to be all IBMy and have locked in, expensive proprietary stuff. With no real R&D budget, they did what good engineers everywhere do: looked for the cheapest off the shelf options they thought could be cobbled together to make a working system at a reasonable (YMMV as to what constitutes reasonable) price. The IBM PC was the result. Because it had IBM's name on it, it could be put in offices everywhere.
I think this is one of those great irony stories. If IBM had put the usual proper IBM R&D and proprietary stuff on it, it wouldn't have been cheap enough to be as successful as it became. If it hadn't had the IBM name on it, it wouldn't have been as successful as it became. So I'm not quite sure it is fair to call it either a 'cock-up' or a 'failure' but those seem to be the words we're stuck with in trying to describe it.
Note to El Reg: We need an old fart icon for postings like this. None of the ones here quite fits.
> Going for (say) a UNIX clone on a 32-bit CPU, as was available elsewhere at that price point,
I don't know where you got your pricing information from but it is way off.
For example a 10Mbyte hard disk drive in cabinet, as required for Unix, from Corvus ($5350) or Lobo ($4795) would cost as much as a complete IBM PC with dual diskette.
Prices from "Business System Buyer's Guide" by Adam Osbourne and Steven Cook 1981.
While failure to disclose a potential conflict of interest is a serious matter in itself, I've not seen anything that suggests he wasn't playing with a straight bat on this issue.
Obviously the Interface was copied. It wasn't then a huge OS. So not that hard to re-write some of it.
Intel released an 8080 to 8086 translation tool. What match is there if you you pass the source 8080 Assembler of CP/M through that and compare the produced 8086 code with MSDOS 1.0?
I did not see the CP/M source code. tick
I ran a debugger on the binary tick
I made a workalike O/S tick
You could convert CP/M progs to DOS wearing a blindfold. tick
Then some schmuk comes along with "If you copy MY Basic, I won't get rich"
You could convert CP/M progs to DOS wearing a blindfold. tick
For that matter, a friend of mine converted TRS-80 Scott Adams text adventures (TRSDOS versions) to CP/M (8-bit)
There was certainly a lot of commonality and "sharing" at the OS level back then.
No one ever denied it - DOS was designed to ease the port of CP/M applications. Like Linux was designed to work like Unix and thus simplify recompiling Unix apps on it. Or SAMBA is designed to work like MS SMB. One of the things that killed OS/2 was that Presentation Manager APIs were very different from Win32 ones - requiring a deep rewriting to port applications, and thereby very few companies attempted the port.
If DOS simply copied CP/M API interfaces it didn't infringe any IP.
OS/2 died because the twitterati of the time landed on it like a ton of bricks because IBM was the unconvicted monopolist of the age and MS was the underdog fighting to take them down.
I still remember OS/2 reviews balking at the 2x floppy disk count. Six months later MS released 95 and it was 2x +4 floppy disks and nary a word was spoken. CD version came about 6 months later.