Subject: Re: "CP/M compatible" vs. "MS-DOS Compatible" machines?
From: "Chuck Guzis" <cclist at sydex.com>
Date: Thu, 31 Jan 2008 02:06:29 -0800
To: cctalk at
classiccmp.org
Date: Wed, 30 Jan 2008 15:44:40 +0100
From: Holger Veit <holger.veit at iais.fraunhofer.de>
MSDOS was much better in abstracting hardware,
because it had a loadable
driver concept.
Loadable drivers didn't come along until MS/PC DOS 2.0. Before that,
adding another device, say an extra disk drive, was a brutal
patchwork affair. CP/M 86 was far more advanced (for that matter,
CP/M Plus was too) than MS DOS 1.x. As a matter of fact, the DOS 1.1
reference material included information not only on commands, but
system table layout, .EXE file structure and system requests. ONE
disk buffer for blocking/deblocking. Read and write transferred one
record to and from the DTA. Flat file structure; file I/O done with
FCBs. As a matter of fact, if you didn't know any better, you'd have
sworn that someone took CP/M 2.2 and ported it to the 8086.
MS-DOS 2.0 was a huge advance over 1.1; by Microsoft's own admission,
the goal was to get closer to Xenix in operability.
Roger that.
Point is there
in both cases: the hardware designers did not foresee how
their hardware could or should be used by software, so they basically
implanted the bare chips, not even respecting IRQ and DMA requirements;
the OS developers did not foresee usable and extensible interfaces to
access and abstract various hardware and just hacked something that it
would somehow work; and finally the application designers found the whole
base OS functions where plain unusable and reinvented, each one
differently, the wheel, leaving burnt ground for others that somehow
required similar functions - "thou shall not use the printer port for your
dongle, I have it already."
20-20 hindsight is great, but let's take it from the viewpoint of the
times. There were very many CP/M systems around at the time with
*no* interrupt or DMA support. Remember that the 5150 made extensive
use of peripheral chips that were from the 8-bit world (8237, 8253,
8259, 8255, not to mention the NS8250), so the fact that DMA and an
interrupt controller (with 8 interrupt levels yet) and a timer was
somewhat remarkable considering the competition.
DING! Thats is the point. the 5150 was running at 4.77mhz which by
8088 standard of the day was SLOW. but it wasnt sitting the cpu in
tight loops waiting for keypressed or FDC data ready.
Every Z80 system that did exactly that was nothing short of phenominal
to use and could easily blow the doors off a 5150. I worked with a
one off Multibus system at that time that had Z80/6mhz 64k shadow rom
DMA floppy controller and later ST506 hard disk. For text based work,
cross assemblers it was light years faster.
Although the BIOS functions came a long way as the PC
evolved, MS-DOS
still ran on a 5150, so the added BIOS functionality couldn't be
exploited.
Also the early bios was only 16k than even two years later it was
twice the size. Reason ram and rom became cheaper and larger.
More space more functions.
The parallel port was designed as a printer port; the
fact that it
was used for other things can hardly be blamed on MS-DOS. The
printer port does what it was designed to do extremely well. The
fact that a dongle designer was so short-sighted as to not provide
printer pass-through functionality can hardly be laid on the
designers of the PC.
Personally, I'm surprised the light pen interface
wasn't used for
more things.
That never caught on. I think when it could have the CPU was still
too slow to do the work.
Allison