dionb wrote:1) the BIOS *is* the platform; that's my Sun/386 example - it's a bog-standard 386 but with firmware unlike PC BIOS, so effectively a completely different beast even if the CPU could run the same code; the code would run, but would be meaningless with completely different architecture.
Not necessarily.
The BIOS as we came to know it, was an almost 1:1 copy of the IBM BIOS. For strict CP/M-like compatibility, clones would not have had to have such an accurately cloned BIOS.
In fact, you could have your own type of BIOS, and merely offer the calls required for DOS as some 'compatibility layer', either in ROM or loaded from disk.
As long as the relevant int-APIs were resident before loading DOS, it works fine.
Technically that is what modern PCs do: they have UEFI, which is nothing like the legacy BIOS, but many of them still have a 'legacy' shim, where an IBM-compatible BIOS is loaded, so you can still run DOS or non-UEFI versions of Windows.
dionb wrote:2) direct hardware calls were always part of the DOS concept - DOS + BIOS covered the bare minimum of I/O, anything over that had to talk straight to the hardware, and was facilitated in doing so by the original PC design.
This is where we disagree.
I also am not sure what you mean by "facilitated by the original PC design". Obviously, with the limited hardware available at the time, it was not possible yet to have any kind of 'protected mode', where you could prevent software from accessing hardware directly.
That is not the same as this being the explicit goal of the platform.
dionb wrote:Even if no DOS developer had ever written directly to a peripheral, it still wouldn't have mattered, code for PC would not have run on other platforms.
This is wrong. Write a DOS program that doesn't access any hardware directly, and it will run just fine on the Tandy 2000, Philips : YES, and various other DOS-compatible machines, which are not IBM-compatible. That is a simple fact, and easy to check. That is the CP/M way.
In fact, even IBM's own PCjr falls into that category: its hardware is significantly different from a regular PC, yet you can run DOS applications on it.
Some examples: the keyboard interface is completely different, and works via the NMI. The floppy controller is also at a different address than on a regular PC. And it lacks the DMA controller. The video chip is also not regular CGA, but is an extended chip, which uses system memory for the framebuffer.
All these things are abstracted away by the BIOS and the OEM version of PC DOS.