Yes it's apocryphal. Please stop repeating it. It's disrespectful to the late great Dr Gary Kildall, for a start, and to his cofounder and business partner, the late Dorothy McEwen.
From memory and without consulting much in the way of references:
* Dr Kildall, as the CEO of the most significant microcomputer OS vendor in the world at that time, had his own plane, yes, and he piloted it himself. He was going on a site visit to a major customer. It wasn't for fun; it was a business trip, and it wasn't his job to deal with IBM.
* DR had good reasons to refuse the deal.
1. IBM wanted DR to sign a very restrictive NDA; DR had a policy against that. Ms Kidlall refused. MS, as a small company with nothing much to lose, happily signed.
2. IBM offered $250K for an unlimited license. DR quite rightly refused and so did MS. MS retained the rights to licence DOS to other vendors, and it did, a lot, and made a lot of money thereby. The deal IBM offered DR precluded that.
* AIUI, MS licensed SCP QDOS for $50K. It only bought it in later on, for a lot more money. It ended up paying $1M for it, and that was still a bargain.
This is not ancient history. It was only about 40 years ago. Many of the protagonists are still alive and active, notably Tim Paterson and a certain William H Gates the 3rd.
The IBM guys had gone to Seattle expecting to license CP/M. Their "benchmark" (in business terms) was the Apple II with Microsoft's Z80 SoftCard running CP/M. As far as they could tell, Microsoft owned CP/M. Bill Gates told them otherwise, phoned Gary Kildall but had to be vague and then sent the IBM guys on a plane to California. I can only guess they were pretty upset even before they ever got to DRI.
People's memories of what happened vary. One of the IBM guys claimed no meeting happened and they went back to Seattle even more upset (which is the most popular version). Gary claims that after some back and forth between Dorothy and her lawyer she did sign the NDA and that he arrived towards the end of the meeting and had a nice chat about the technical side with the IBM people.
The PC was launched with a choice of three operating systems: PC-DOS (the licensed MS-DOS), CP/M86 and UCSD Pascal. But the first cost less than a third of the other two.
As I recall, PC-DOS sold for $40. CP/M86 sold for $180. People overwhelmingly bought PC-DOS because it was cheaper and nobody was able to explain why CP/M86 was worth the much higher price.
The company I worked for bought both, and I tried CP/M86. There was no reason to prefer it over PC-DOS, and that was that.
PC-DOS's predecessor, 86-DOS, was allegedly reverse engineered from CP/M. The subsequent lower development costs probably account for at least some of the price difference between the two products.
CP/M was (mostly) written in the PL/M language and ran on the 8-bit 8080/Z80 processors. 86-DOS was written in pure assembly language and ran on the 16-bit 8086 processor. Tim Paterson, its author, wrote an 8086 assembler and an 8080-to-8086 source code translator that ran on a CP/M machine. He used these tools to bootstrap 86-DOS.
86-DOS was intentionally designed to mimic the CP/M APIs to make it easy to port CP/M applications to 86-DOS through mechanical translation of the source code.
(And, surprise surprise, much of the business software that was available for IBM PC-DOS in the first couple of years were direct ports of existing CP/M applications: SuperCalc, WordStar, dBase II, etc.)
> CP/M was (mostly) written in the PL/M language and ran on the 8-bit 8080/Z80 processors. 86-DOS was written in pure assembly language and ran on the 16-bit 8086 processor.
In CP/M-80 1.x, most of the OS was written in PL/M. By the time we get to CP/M-80 2.x, the core of the OS (BDOS) has been rewritten in assembler for improved speed, while utilities (such as PIP) remain in PL/M.
CP/M-68K was written in C (although possibly with an earlier version in Pascal???). CP/M-8000 was written in C, probably ported from CP/M-68K.
CP/M-86 was mostly written in assembler, possibly with some bits (especially utilities) in PL/M and/or C as well.
And CP/M copied from DEC's operating systems, most especially RT/11.
I haven't examined the code myself, but the source code to the original PC-DOS is available and can be compared with CP/M. I've been told they were not copies.
Tim Paterson, of Seattle Computer Products and later Microsoft, gave a good talk at VCF West 2019 where he describes the history of 86-DOS (licensed to become PC-DOS and MS-DOS). There was an intention for significant API compatibility with CP/M, but no code was taken from CP/M.
I did some work at DRI in 1984 (my group was housed in the old KMST television studio, on the outskirts of the DRI campus, for about four months while we ported GEM to the Atari ST).
My manager talked with Gary about the CP/M incident at one point. Apparently some "guys in suits" showed up without an appointment one day, wouldn't say who they were, wouldn't sign an NDA, and were demanding to see Gary. They were sent away without talking to anyone. Gary was in his office the whole time, and definitely not flying.
Occam's Razor suggests that what has been published as truth for a long, long time (since the actual events, in fact) is truth, rather than being made up by gullible people.
There has been several published accounts from different people involved, all of which differ. The story the GP published is one such version (I’ve read that account elsewhere, published as first hand).
AFAIK there isn’t even a popular opinion since most people tend to agree we will never know the truth. And of those who do have an opinion, those opinions have been largely split (as evidenced by the comments on here).
So I have no idea why you’re so confident in your assertion but it is entirely misplaced.
All of the many widely read and reviewed books on Gates' career tell the same story (i.e, the one I am suggesting). If they were wrong, surely someone other than a couple of randos on the internet would have got on the author's case. But nobody has done - hence Occams Razor.
> All of the many widely read and reviewed books on Gates' career tell the same story
Is it really that surprising that books specifically documenting Gates would cover his version of events? This is a very definition of selection bias right there.
> If they were wrong, surely someone other than a couple of randos on the internet would have got on the author's case. But nobody has done
There's plenty of contradictory accounts. People have literally posted them right here. You're just refusing to acknowledge they exist because you've never bothered to research this beyond Bill Gates own personal account. But I'd suggest you read some content written from the perspective of Kindall if you're genuinely interested in hearing the other side of the story. He has even written about it himself.
People are "randos on the internet" to you, but no one is actually a rando on the internet. Don't mistake your not knowing someone for them being unknowable.
We will never know what happened on that day. None of the witnesses can be considered reliable. Even if they consider their own accounts as honest, the eventual fallout would taint their memories of the events. The best we can hope for is documentation to support one hypothesis or another (e.g. contracts).
That said, I do agree the common account is both disrespectful and inaccurate. I never understood why people would believe that Gary Kildall or Dorthy McEwen would brush off a business meeting. They may not have been an empire builders, but they were successful business people who built a successful business.
> None of the witnesses can be considered reliable.
I find this to be a curious statement, as in not reliable in what way?
Gordon Eubanks company was acquired by Kildall and worked for them at the time. I found this interview to very interesting, he touches on those events and gives his perspective.
One thing that does seem almost certain is that, to whatever extent Kildall did intentionally skip or turn up late to the meeting, it was more likely an attempted power move or an expression of annoyance than the sort of genuine indifference or carelessness that the "Gary went flying" story usually tries to suggest. But naturally the IBM representatives would not have been happy to be deliberately flexed on by an SME owner, either.
There's a third reason why the DR/IBM deal didn't work out: CP-M/86 was extremely delayed. The reason why SCP QDOS even existed was that SCP had an S-100 machine with an 8086 in it and there was no OS that could run it.
Microsoft wasn't necessarily a "small company with nothing to lose", either. They had the best BASIC interpreter in the business[0] and everyone licensed from them already.
[0] This also allowed them to strong-arm Apple into making a few licensing deals that would kill all the "look and feel" shenanigans later into that decade.
> Microsoft wasn't necessarily a "small company with nothing to lose", either. They had the best BASIC interpreter in the business[0] and everyone licensed from them already.
Nope and nope.
The “best” is subjective but BBC Basic (as seen on Acorn BBC Micros) was fscking awesome. Far better than Microsoft BASIC in my opinion. Locomotive BASIC then took the BBC BASIC dialect and improved upon it. Amstrad shipped that on their CPC 464 models.
There was a BASIC for the Atari ST I’ve used too which was pretty awesome.
Microsoft BASIC might have been widely used but it was neither universal nor the “best”.
Yeah the parsing for some of the BASICs was weird at times. Some auto-capitalised terms whereas others would list that as a syntax error or some other error. Some even allowed you to abbreviate terms. Locomotive BASIC allowed you to use something like a question mark (I forget the exact punctuation but I think it was a question mark) in place of a PRINT command.
BBC Basic did not exist at the time; all Acorn had was Atom Basic.
By the time your later Basics came around, Microsoft and the PC were already the extinction-level event for small business micros of the sort that ran CP/M. It's sort of shocking leafing through say, BYTE magazine from the era and realizing how plain it should have been that was happening.
BBC BASIC is based on Atom BASIC. Atom BASIC was pretty fast (like BBC BASIC and Apple BASIC, it vastly out performed Microsoft BASIC). Atom BASIC also allowed you to do some really cool stuff too like in-line assembly.
Also the BBC Micro was released in the same year as the first IBM PC, so it’s a bit of an exaggeration to say Acorn didn’t have BBC BASIC at that time.
Let’s also not forget that the original few generations of the IBM PC was crap for all but business applications (I don’t need to lead though old magazines, I was there in that era). And that it took a while before the IBM-compatibles became reliable (for years there was uncertainty about which PC software would work on which PCs) or even safe from litigation (since IBM sued a few OEMs). It wasn’t until crafty developers (like Carmack and Romero) found ways to make stuff like scrolling PC games - software that before then people didn’t think was possible on a PC - that people started to take it seriously as a family computer. Before then BASIC micros were a much more attractive option; and cheaper too.
Edit: it’s also worth noting that the Apple Macintosh, Atari ST and Amiga all ran circles around IBM PCs too. Albeit we are now talking a few years later. Frankly IBM PC + DOS/Windows was amongst the worst micro computers on the market in my opinion. The only reason they dominated was because by the end of the 80s OEMs could build them more cheaply than designing their own hardware. So the market got saturated.
Well the obvious context here when talking about IBM's PC deals was "best" 1) "in the US" (eliminating BBC Basic), and 2) "at the time" (Atari ST happened after the IBM PC).
Their context wasn’t about IBM buying BASIC, it was about IBM buying DOS from Microsoft. Plus given IBM was a global brand it seems a bit self-congratulatory to argue that only US-developed BASICs count anyway. However even taking your comment at face value, it’s still not true. There were plenty of better US-developed BASICs too.
What IBM wanted was ubiquity rather than technical excellence.
IBM purchased BASIC and DOS from Microsoft in the same transaction. BASIC was the only "OS" installed by default in the first PCs and PC-DOS was an optional extra at launch.
Contextually here "best" also means "best fit for IBM to buy". Global brand or not, IBM certainly had US biases: a US headquarters, more engineers and managers in the US making purchasing decisions.
I can't argue with you on the subjective quality of other BASICs, and I can't speak to what IBM "wanted" other than what we know they eventually purchased. Their "best fit" may have indeed been entirely "pragmatic" things like "ubiquity" or "cheap" rather than "best technically".
> There were plenty of better US-developed BASICs too.
Citation needed on "plenty", I think. On the "microcomputer" Microsoft nearly cornered the market on MOS 6502 BASIC at the time and even the ones that didn't have a Microsoft banner at startup still had a licensed Microsoft interpreter under the hood ("Applesoft Basic" and "COMMODORE BASIC", for examples).
Of the Wikipedia documented "microcomputer" BASICs that weren't Microsoft's/Microsoft-licensed, two were UK-developed (BBC Basic and Sinclair BASIC), and the only other one (Atari BASIC) is listed as not having a stable release until 1983, two years after the first IBM PC.
> IBM purchased BASIC and DOS from Microsoft in the same transaction. BASIC was the only "OS" installed by default in the first PCs and PC-DOS was an optional extra at launch.
Yes, I'm already aware of that. You're building a strawman argument though because that has naff all to do with the statement I was directly responding to:
Microsoft wasn't necessarily a "small company with nothing to lose", either. They had the best BASIC interpreter in the business[0] and everyone licensed from them already.
> Citation needed on "plenty", I think.
BASIC has been around since the 60s, so yes there has been plenty.
> On the "microcomputer" Microsoft nearly cornered the market on MOS 6502 BASIC at the time and even the ones that didn't have a Microsoft banner at startup still had a licensed Microsoft interpreter under the hood ("Applesoft Basic" and "COMMODORE BASIC", for examples).
I know, I was writing software on those machines at the time. I also already acknowledged Microsoft BASIC was ubiquitous. I was disagreeing that Microsoft BASIC was the best, because it wasn't. It was slower than most others and lacked a lot of features too. Frankly, it was shit. But history seems to only remember the victors it seems.
> Of the Wikipedia documented "microcomputer" BASICs that weren't Microsoft's/Microsoft-licensed, two were UK-developed (BBC Basic and Sinclair BASIC), and the only other one (Atari BASIC) is listed as not having a stable release until 1983, two years after the first IBM PC.
Well that's clearly wrong then because there were loads. Apple/Integer BASIC (which was originally named GAME BASIC) which was inspired from HP BASIC (unlike Microsoft BASIC which was based from DEC BASIC). TI BASIC (Texas Instruments) was released in the late 70s too.
And on the UK side there was Locomotive BASIC, which was based on Mallard BASIC (1980) and inspired by BBC Basic, which was originally Atom BASIC (the Atom being released before the IBM PC and the BBC Micro being released the same year). Sinclair BASIC was also pre-PC (1979).
Mallard BASIC competed with CBASIC (mid 70s) and ZBASIC (1980) but I hadn't used those.
There were others too. Some for mainframes, some offered as alternative 3rd party ROMs for micro computers, some loadable from cassette or disk, some that compiled instead of interpreted code, etc. It was a really common language.
> They had the best BASIC interpreter in the business
Given the whole thread that spawned from this, I have to say that I think this was poorly-worded.
MS did not have the "best" BASIC by any measure except by one: it had the smallest BASIC in the business.
The early MS BASIC releases ran in 4 kB or so, and even later on after it expanded, it still ran in 8kB.
Bill Gates, Paul Allen and Monty Davidoff were famous for fitting a lot of code into a very small amount of space. That was the basis of the former two's extraordinarily successful careers.
But "best"? No.
By 1981, Acorn offered BBC BASIC, a drastically better language by any measure: structured programming, local variables inside named procedures, inline assembler and more. But it needed 16kB of ROM: a quarter of the memory map of an 8-bit CPU.
> and everyone licensed from them already.
"Everybody" did not license it. AFAICR Atari and Apple didn't; across the ocean, Sinclair and Acorn and Tangerine didn't.
But yes, MS BASIC was dominant on the early American 8-bit machines: it was on Commodore, and I think on Tandy, and of course on the IBM PC right in the ROM if you didn't have disk drives.
So would some Apple II owners. I don’t think MS BASIC was the best in the business, but it was the most ubiquitous.
If only Woz had been willing to add floating point support to his BASIC. He was perfectly capable of it! Would’ve saved Apple a lot of heartache later.
He wasn’t unwilling. The story I heard was that it’s the usual tail of time constraints. It was quicker to license Microsoft BASIC than it was to add floating points to Integer BASIC.
Not sure about that. C64 BASIC was not all that impressive even then. Mid-eighties, those interested in BASIC programming on the C64 preferred Simon's BASIC.
It was. This was because Commodore was trying to keep the cost of the machine down, and BASIC 2 (along with the Commodore "kernal" [sic], the closest thing the computer had to an OS) fitted into an 8 kB ROM.
CBM BASIC 2 was terrible. It didn't support any of the C64's excellent (for the time) sound and graphics. It didn't have structured command (IF... THEN... ELSE, REPEAT... UNTIL, WHILE... WEND etc.) or named procedures or local variables or anything.
But it was small.
This terrible BASIC is why most of the world became convinced that BASIC was a bad programming language. Other contemporaneous 8-bit home computers had much better BASICs, notably the Acorn 8-bits, but also Sinclair, Oric and others.
This is true but only a partial picture. MS-DOS was Microsoft's first OS.
In the early days (roughly, the 1970s) Microsoft only produced programming languages. So, yes, the company was known for it, but only inasmuch as it was known for nothing else.
At the time, IBM made very expensive mainframes and minicomputers, plus all the associated paraphernalia: terminals, printers, storage.
It didn't make microcomputers. It didn't really sell to the general public. It sold smaller kit to big businesses, and the bigger kit even they couldn't buy: you could only lease it.
Microcomputers were only just beginning to be a product sold to the public for home use. Up until the first few complete, integrated systems in around 1976-1977 (in the USA, the Apple ][, Commodore PET, and original TRS-80), microcomputers had been expensive modular devices, used in business.
That's the market DR sold to, and utterly dominated: relatively price S100-bus small business micros.
DR was not _a_ big player in microcomputer OSes, it was _the_ big player. Almost the only player: I can't think of any other cross-platform microcomputer OS available in the 1970s.
The PC was a highly atypical product for IBM, made from COTS parts, intended to be sold to the public, direct to end-users. It's not really something anyone expected IBM to do, and in this position, it was a company nervously trying to get into a totally new market for them, approaching the industry giant with caps in hands.
IBM offered to buy DOS first, but Gates & Allen rejected it. Gates, being an acquaintance of Gary Kildall, told them to give Digital Research a try. He phoned Gary and said, playfully "They're coming for you next". Gary took this to mean someone was coming for him, and jumped in his plane and left. When IBM showed up, he was mysteriously missing, and everyone involved was confused.
Usually truth is stranger than fiction, but in this case I think the fiction above is hilarious and top-notch alternate history.
You left out the part about SCP blatantly ripping off the CP/M OS to produce QDOS, which Bill Gates purchased in order to license to IBM. The CP/M source code was widely available, but still copyrighted by DRC. At the time, I recall having a CP/M-based x86 cross-assembler that did a pretty good job. It probably took Tim Paterson a day or two to hack QDOS together given the availability of the CP/M source code and tools. If QDOS was an original work, why use "5" as the system call interrupt? (CP/M used "call 5".) The QDOS system call function list and arguments are identical to CP/M. The FCB-based disk layout was also virtually the same as CP/M.
The analysis done by Robert Zeidman in 2014[1] published in the Journal of Software Engineering and Applications comes to the conclusion that no code was copied from CP/M by SCP.
Tim Paterson has stated that API and structure compatibility were explicit goals. That can be achieved w/o copying any code.
re: "5" as the system call interrupt - I've never seen an SCP machine or QDOS, but on an IBM PC interrupt 5 handled print screen (and on the 80186 and up it was a CPU-generated interrupt for BOUND exceptions).
> re: "5" as the system call interrupt - I've never seen an SCP machine or QDOS, but on an IBM PC interrupt 5 handled print screen (and on the 80186 and up it was a CPU-generated interrupt for BOUND exceptions).
Not an interrupt, a CALL. In 8080/Z80 systems, a system call is just a subroutine call to the OS kernel, there is no memory protection so no need for any special type of instruction. (I suppose on 8086 there is no memory protection either–but software interrupts are beneficial in isolating software from direct knowledge of memory addresses, which simplifies memory management; 8080 systems had far less need for simplified memory management–you can't fit much in so little memory, so there is not much to manage.)
So, on CP/M-80 and CP/M-8086, you CALL 5 (call to memory address 5), where there is a jump instruction which redirects your call to the actual entry system call dispatcher entrypoint in the OS kernel (CP/M BDOS). QDOS/PC-DOS 1.0 preserve the same mechanism for source backward compatibility with CP/M, and their system calls are a subset of CP/M's (with equivalent numbers/arguments). Except, of course, in 8086, it is not a CALL to absolute address 5 (0:5), since that would be calling into the IVT, it is a call to CS:5 – DOS puts at offset 5 in the PSP a JMP FAR which eventually lands you in MSDOS.SYS, via some bizarre mechanism involving address wraparound (the infamous "A20 gate" was introduced to keep this mechanism working on 286+). "CALL 5" ends up being essentially equivalent to INT 21, and very little software ever used it – basically only software directly ported from CP/M-80 (such as, possibly, very early versions of WordStar for DOS–surviving copies appear to use INT 21 instead, but the earliest versions are quite possibly lost.)
OP used the word "interrupt" so I was thinking about the INT 21h API into MS-DOS. I never did any coding under CP/M. What assembler coding I did under MS-DOS that touched the PSP was mostly concerned w/ pulling the command line out. I can't say that I ever noticed the stuff in there that's clearly for CP/M compatibility. I do remember exiting COM programs using "RET", which transferred control to CS:0000 where an INT 20h was always present. I'm reading that was for CP/M compatibility, too. Neat.
The 8086 was not object compatible with the 8080, but one could "assemble" 8080 code (or even Z80 code) into 8086 with an automated process. It might not be optimal code, but it would get a working application up and running rather quick on new hardware.
From memory and without consulting much in the way of references:
* Dr Kildall's personal and business partner Dorothy was the company's cofounder and dealt with contracts etc. https://en.wikipedia.org/wiki/Dorothy_McEwen_Kildall
* Dr Kildall, as the CEO of the most significant microcomputer OS vendor in the world at that time, had his own plane, yes, and he piloted it himself. He was going on a site visit to a major customer. It wasn't for fun; it was a business trip, and it wasn't his job to deal with IBM.
* DR had good reasons to refuse the deal.
1. IBM wanted DR to sign a very restrictive NDA; DR had a policy against that. Ms Kidlall refused. MS, as a small company with nothing much to lose, happily signed.
2. IBM offered $250K for an unlimited license. DR quite rightly refused and so did MS. MS retained the rights to licence DOS to other vendors, and it did, a lot, and made a lot of money thereby. The deal IBM offered DR precluded that.
* AIUI, MS licensed SCP QDOS for $50K. It only bought it in later on, for a lot more money. It ended up paying $1M for it, and that was still a bargain.
This is not ancient history. It was only about 40 years ago. Many of the protagonists are still alive and active, notably Tim Paterson and a certain William H Gates the 3rd.