On Apr 18, 2007, at 4:43 PM, Jules Richardson wrote:
Interesting; did CP/M ship with a range of UART
and FDC drivers then,
so you just tell it what particular ICs you're using and at what port
addresses, and away it goes? Or was it more complex than that, and
realistically you'd have to write your own comms / FDC driver which
exposed some defined interface to CP/M itself?
The CP/M distribution, as shipped only boots & runs on one particular
type of machine: an Intel MDS-800 development system. If you (or a
computer manufacturer, say Kaypro for example) wanted your machine to
run CP/M, and it wasn't exactly like the MDS-800 in terms of what I/O
chips were used and at what addresses, you had to write the drivers to
support your hardware. These drivers form the BIOS. CP/M was shipped
with the intention that users would write their own BIOS code to support
their own systems.
In truth it is really not all that difficult. The BIOS interface is
very simple and well-defined. Under the tutelage of an experienced
mentor, I was writing BIOS code on my Imsai when I was about fourteen.
It's nothing like the complexity of, say, a device driver system for an
implementation of UNIX.
How does it differ? Aren't all drivers just fundamentally open, close,
read, write and ioctl?
Peace... Sridhar