Re: Linux has facilitated the cituation he is lamenting about
> I can just about remember the early days of "the PC",
Unfortunately you seem to have misremembered most of it.
> bought the company and stuck an IBM badge on it.
No. The IBM 5150 PC was an internal project based on their previous System 23 Datamaster and somewhat on their Displaywriter. While the System 23 was Z80 based Intel persuaded them to use the new 8088 which had an 8bit data bus and would not need much rejigging of the planar (motherboard), though it was redesigned somewhat for the 'Model B'.
> You caould buy loads of "PC"s from other vendors, that came with PC-Dos from MS, and would run "PC" software. But they really didn't have the uniformity of hardware that people think - there was a lot of variation and MS would provide each manufacturer with a PC-Dos tweaked to suit.
'PC-DOS' was strictly for IBM and only available from IBM (though it could later be used on clones). Many other 8088/8086 (or compatible such as V20/V30) machines could run MS-DOS and they did not need to be anything like an IBM-PC. They could be S100 based, or Wang or DEC Rainbows. But, no, MS would not provide a 'tweaked' version. Exactly like DRI's CP/M and CP/M-86, MS-DOS (which was actually written by SCP) was structured as a BDOS, a CCP (Command.COM), a BIOS and utilities. The BDOS and CCP was invariant, the manufacturer needed to write a BIOS to suit their hardware. It happened that the IBM-PC had a ROM BIOS which only required a small stub software BIOS to translate the BDOS calls to the ROM BIOS**.
> SHe worked on the basis that if you could take ${random_game} off the shelf, unwrap it, and boot the PC with that disk and be able to play the game - only then was it "PC Compatible".
Much software in the early days could run on any hardware that was running MS-DOS. Some came in 'PC-DOS' or 'MS-DOS' versions where the former required an IBM-PC or clone and the latter had a configuration program that could choose the appropriate way of using the screen or terminal. For example Wordstar and Borland Pascal 3 came in several versions (also for CP/M and CP/M-86). Because MS-DOS terminal handling was so poor, and so slow with ANSI.SYS, many software writers included to option of using BIOS terminal handling. This was also poor and, on IBM PC, they started doing direct screen writes to the CGA or MDA, or Hercules. _This_ is what changed the users to needing clones.
> IBM were geared up to "big stuff" (where productivity is measured in how many lines of code you make, not how small you make it !)
Many mainframes of the time had quite small memories. While LOC was one metric used to measure programmers productivity that does not imply that the programs were huge, nor that RAM was freely available.
> and as they could see the likes of Commodore and Apple eating their lunch in the small office - bought the company and stuck an IBM badge on it.
The small office was not the primary aim of the IBM 5150 PC. Apple IIs and Commodore Pets were appearing in the IBM sites running Visicalc, Wordstar and dBaseII. IBM wanted a machine that would keep these sites 'pure'. The IBM PC was designed (by IBM - NOT a bought-in company) to be just a bit better than the Apple II and to run the same software. It was also intended to be a terminal (which is why its serial ports were DTE when most other micro computers were DCE*). There were also versions of the IBM-PC that were 3740 terminals and 360 Emulators (with additional 680x0 boards).
IBM were also already in the small business market with the 5100, 5120, 5130 and small System 3s.
> As so, fairly quickly, all the manufacturers quickly learned that they had to mimic the IBM PC fairly closely (eg putting the serial ports at the same I/O addresses etc) or they'd be labelled as "not compatible" and would lose sales. Thus the "PC Compatible" standard "happened" !
The 'PC Compatible' was not just a few port addresses, it relied on having a compatible ROM BIOS and an internal address mapping of hardware, such as the video adaptor. Manufacturers could have licenced this from IBM (some 'stole' a copy) but a deliberate clean-room implementation by Phoenix provided a cheaper way of making clones.
> I deliberately say "happened" because it wasn't really designed, it sort of came into being in a very accidental way.
No. It was not even close to being 'accidental'.
* DTE= Data Terminal Equipment. DCE= Data Comms Equipment (eg a Modem). A 1-1 cable will connect a DTE to a DCE. S100 systems used DCE serial port to plug 'green screen' terminals into.
** The first version of MS-DOS that _required_ the machine to be an IBM-PC clone with a ROM BIOS was MS-DOS 5.