Oh flip, another of our greybeards gone
In my head they're immortal.
A conspiracy theorist might see a pattern emerging
We're sorry to bring news that John Wharton, a popular and influential figure in Silicon Valley, died last week. Wharton was the architect of the machine-language instruction set of the Intel 8051 micro-controller, one of the most widely used (for a time, the most widely used) chip in history (PDF). In a 1999 profile, The New …
I wrote so much micro controller code in my early days that I could run the assembler in my head and just jot down the hex code and fill in the assembler mnemonics afterwards - not any longer, those days have passed.
There are some interesting similarities between the CPM/MSDOS event and the current Android squabble.
Yeah, I used to be able to jot down 6502 hex codes directly as well.
For Z80, iAPX86, 68K and DEC I needed an assembler.
The x86 was horrible, from a programmers point of view. 6502 and 68K were much more aimed at assembler / machine code programmers. I always had the feeling that the iAPX86 was designed for high level languages and was downright hostile to machine code programmers.
At the time of these events, I owned a Xerox 820 (a Z-80 based machine) and soon thereafter a Kaypro (pretty much the same thing in a nice box - the 820's we got as bare boards, surplus). At my job for a "beltway bandit" we'd been doing embedded work for various parts of the US government, and were embedding Z-80 and other similar things, and had an Intel Dev system (insanely overpriced but it was gov money).
I had the source code for CP/M (a friend in the government...) and basically used that as documentation for the Intel DOS system. We had phone support on that Intel system and even spoke with Gary Kildall a few times - nudging him (without success) to look into our interrupt driven and in most cases re-entrant system hardware drivers, developed for our customers, as they would have made the Intel system a lot better. He didn't go there - Gary was Gary and it seemed, working well below what should have been his pay grade, soon to leave Intel. He didn't think it worth the effort and frankly, that class of ideas was pretty blue-sky given the capabilities of the existing hardware.
At the time we didn't think much about how similar the opsys were - and it wasn't just the int 21 calls that were identical - int 10h also - the bios...that entire concept. We were super enthused about having actual disk drives (FAT 12!) - remember that back then people were fiddling with dodgy cassette things, or were old school users of restored/surplus PDP-8's and teletypes/paper tape. BYTE magazine hadn't started up yet, quite. Everything we saw, or nearly, was following the obvious trend of filling some utterly obvious need - adding storage - there's never enough memory - adding I/O and so on, and any framework that helped make that happen was welcome. Whatever-you-call that opsys (CP/M, DOS) didn't matter, and it didn't seem weird that they were really all the same thing inside - not just the api (glad Oracle wasn't around!) but the bits, the source, same stuff. There were only so many ways to skin a cat when every byte (all semiconductor ram was static then, as god intended) and clock tick seriously mattered.
MS claim to fame then - and make no mistake, they weren't bad guys then - was the very best tools to program the little 8 bit guys - M80 and L80. Nothing else out there "just worked".
There plain wasn't enough of this stuff around, or adoption of what there was for other than hobby use (and some avionics and other things my outfit built) for us to even think of IP issues (which weren't named at all then) or the fact that this would snowball into a huge effect on the world with attendant redistribution of $$$. That was the thing Gates got right....not necessarily in a pleasing way.
Similar to Jobs real main contribution was getting the **AA's to partly remove their crania from their anus and make digital sales of some content legal. In both cases the rest simply followed.
Over the years I pointed out the similarity or near identical nature of MS-DOS to CPM and Kildall's dev system only to receive scorn and "no way, it couldn't have been " and even saw wikipedia articles explaining parallel development and that this wasn't just copied from Kildall's work.
All I wish is that A: he'd listened to us and created the basis for real multitasking as a result, and B: Microsoft's blatant copying would have resulted in a lot better initial windows instead of how things did go. But Gary was Gary - from a little bit of contact as a customer, I tend to believe the tales of his "loose cannon" exploits. He was a real character.
Pretty sure no one really wants to hear possibly misremembered history from one who was THERE, so I'll just get that coat now. We'll all miss the guys who made this all go, and in my case created the chance at a really good and long career in the biz.
Yes, they were all the same, but different...
I remember programming a system for DEC CP/M86, HP125 (CP/M), HP150 (MS-DOS), HP Vectra (MS-DOS) and IBM PC (PC-DOS). The code was pretty much the same, only different. Each used its own video card escape sequences, for example. Converting the core code was quick, it was the UI modules that took the work.
Then there were the exotics, like BTOS.
I remember at one stage, my desk had a Burroughs BTOS workstation, DEC Rainbow, DEC VT100 (connected to a Gandalf running in our data center), Apple Mac Plus, HP 150 and a Vectra, with an IBM-PC XT on another desk at the side of the room. I was supporting systems on all of them. All slightly (or very) different.
That was the first system I worked on professionally, close to 40 years ago. I was an apprentice programmer at Satchwell Control Systems writing very bad code for a building management system. We developed under ISIS and cross-compiled to RMX, if memory serves.
The offices were in Slough, just on the fringe of the famous Slough Trading Estate, and at the time we were a subsidiary of GEC.
Ah good old Satchwells, I cut my teeth in the world of commercial embedded systems engineering there 20 years ago, just after it'd become part of the almighty Invensys corporate empire, moving on a few years later when the US-centric beancounters decided that having R&D teams across the globe was a really silly idea and wouldn't it just marvellous if everything could be consolidated in one location, like, say, the US...
Keeping on topic for this article, one of the last bits of work I did there was writing some code modules for the last iteration of their 8051-based Micronet controller series. Fortunately for my sanity, that's the last time I've had to go anywhere near that architecture whilst wearing my R&D hat - these days it's only the occasional venture into PIC territory that reminds me how lucky I am to have spent most of my career working on processors which behave the way processors ought to behave.
"Doesn't QDOS stand for Quick n Dirty OS ?"
Another OS name like that - for a mainframe - was SGOS. It used the virtual machine capabilities of the ICL System 4-75 for a commercial online TP system. It was developed when the official ICL OS release for such tasks on that hardware was not going to meet the project's timescales.
When a customer asked what SGOS meant - they were told "Specially Generated Operating System". Internally it was "Stop Gap Operating System".
until fairly recently, all FTDI chips were basically an embedded 8051 with built-in USB peripheral
as recently as last week I was playing around with graphics LCD modules as part of my day job, and the manufacturer's reference code is in 8051 assembler
I have no problem at all believing this...
The last commercial product I worked on had not one, but three 8051s in it. _Somebody_ has to tune the SerDes DSPs that makes PCIe reliable. Ditto the "supervisor" in some 10Gb Ethernet (and probably Infiniband) switches. And as has been pointed out, lots of USB gear has an 8051 inside. They don't call it "embedded Computing" for nothing.
The 8051 architecture and the miriad of variation including the 8052 variations were used in things that needed just enough processing power and no more, especially for controlling simple display and button inputs. A couple of interrupts and a few bytes of memory can support a lot of functionality.
Things like corporate PBX handsets with a 2x16 display and 8/16 buttons almost certainly had an 805x controller, and less obvious things like petrol pumps had an 805x in them somewhere.
Even the Tini Java computer on a stick had an 8051 based core (https://en.wikipedia.org/wiki/Tiny_Internet_Interface)
Think it was a good enough architecture with enough scope for variations of features/expansions that it could be considered an industry standard, a developer and the tools developers just had to understand the variations to be able to use them effectively.
I am sorry to hear of Mr. Wharton's death, and perhaps should not bring disputes over MS-DOS into this. However, following the provided links, I find a certain inconsistency in The Register's accounts of the creation of MS-DOS:
In August 2012:
'"If [Kildall] was not as successful as Bill Gates, it wasn’t because Microsoft stole the CP/M source code," concludes Zeidman. But nobody has ever made such a claim: not even Paterson.'
In January 2014:
'Worse, it seems clear that Mr Fry is also unaware that the QDOS which Gates so hastily bought up to offer to IBM under the name MS-DOS was a poor-quality effort (QDOS actually stands for Quick and Dirty Operating System) which had been created by simply copying code straight out of CP/M.'
CP/M -- "Control Program / Monitor" -- was a very simple piece of code that was easy to reverse engineer. Its essentially no different from the monitor you'd use to set up and run programs on your PDP minicomputer. Since everything has a common root its not surprising that it gets copied; I'm pretty sure that if QDOS wasn't available to Microsoft they'd have written their own.
As it happens the CP/M knockoff only lasted for MS-DOS 1.4. The CP/M system calls were rapidly replaced by those knocked off from UNIX for MS-DOS 2.0 and up although Microsoft kept the call mechanism (software interrupt and that A20 wraparound) for years afterwards.
Knocking off code was commonplace at that time. The early IBM-PC clone makers were helped in their efforts by IBM supplying a manual with their PC that included the source code of their BIOS. This code turned up in every clone until IBM noticed and their lawyers put a stop to it (in a rather gentlemanly way by modern standards -- they gave these companies a several month deadline to develop their own BIOS).
As I understand it, no code was lifted "wholesale" from CP/M to QDOS.
However, the basic principles (not a secret) and interface (evidently, this being a clone) indeed were. Code underneath was hacked anew, and if the mystery was too great, a debugger would be used to inspect what CP/M was actually doing in there. It's a honest-to-God reverse engineering effort by Tim Paterson that every backstreet China dev shooppe would recognize. And maybe a few Open Source projects, too.
There is no need to polarize.
That little OS was years ahead of its time. Intel had a sort of CP/M it used it its MDS (development) systems but neither the system nor their emulators were up to the challenge of using the architecture of the 286 and beyond. iRMX filled the gap. Too bad that Intel did what they always seem to do with useful products -- they just dropped it.
I also had some contact with Microsoft's code in the early days thanks to their networking support in MS-DOS. The less said about MS-NET the better; my impression of Microsoft's programming capabilities was similar to that in the quote and I've not got more comfortable with their technologies in the intervening 30+ years. Still, software's like pop music -- there's no apparent correlation between ability to play and ability to make money, the key skill is 'showman' with talent being a useful, if secondary, capability.
"The three Intel staff looked at each other with astonishment, one asking John: "Did we just hear a classic antitrust carve-up?""
This is what happens when neophytes enter the arena. Like Trump in the presidency. No, there are certain things that you cannot do and cannot say, and you are not going to know it until you do it or say it.
I was mod for the online resource 8052.com (now 8052mcu.com) for more than 20 years. Made many friends there, and learned the 8052 inside out. And yes, Silabs and others are still making very fast silicon based on the core.
And Intel processors are apparently configured internally by embedded 8052 cores - because the guy responsble for desgning them was a member of our site.