
CP/M and BIOS inventor adds to story how Microsoft's IBM deal shaped the PC forever
CP/M and BIOS inventor adds to story how Microsoft's IBM deal fucked the PC forever
FTFY
The Computer History Museum has revealed part of an unpublished memoir by Gary Kildall, a programmer and entrepreneur who made critical contributions to the personal computer industry in its formative years. Kildall died aged just 52, in 1994, but in his short life he earned fame for developing CP/M, an operating system that …
Yes back in the neolithic I ran CP\M on an industrial placement. The 'Office suite was the WordStar,DataStar,Calclstar suite which transitioned across to MS-DOS.
In a straight choice (excluding the IBM effect) I would probably have gone for CP\M as it seemed to offer a more developed growth path to the 16bit world, multi-users and the GEM GUI.
In a straight choice (excluding the IBM effect) I would probably have gone for CP\M as it seemed to offer a more developed growth path to the 16bit world, multi-users and the GEM GUI.
For multi-user you need MP/M. Worked rather well actually. The bank switching that enabled users to have reasonable amount of memory each, was later available in the single-user CP/M 3.0 which therefore could address more than 64KB RAM.
The CP/M consisted of three parts: the BIOS, which was mainly device drivers, the BDOS, which was mainly disc management, and CCP, which was the command interpreter. That part was overlaid when you loaded an application and reloaded when the application finished.
PC-DOS and MS-DOS kept the same architecture, but put the BIOS part into ROM, and the others were loaded from floppy disc. The BIOS acted as an abstraction layer: it had to be rewritten for every slightly different model of PC or compatible, while the DOS parts on floppy were generic.
Later you had MSX-DOS, an odd hybrid of MS-DOS and CP/M.
CP\M on a Lobo Systems Max-80 was a lot of fun. But the Max-80 also ran LDOS, which had the lion's share of available software. I remember reading about the BIOS debate in computer magazines. I think they were calling it something else still. The objection was that this in-between layer would double execution times because it had to make that standard call that made the proprietary call. Unthinkable! PCs were so slow back then that it was worth it to just make a custom version of the OS for each model.
Hats off to the guy.
And to Phoenix for having the balls to reverse engineer IBM's BIOS which I believe is an equally significant move in the history of computing.
I do not remember where I read the story long ago but I recall Phoenix had 2 sets of coders incommunicado in separate rooms. The first set looked at each line of code and shouted to an intermediary what it did, who then told the second set. They then wrote new code to perform the same action.
The pros will no doubt correct my phraseology and amplify the tale.
It is doubtful that this kind of "clean-room implementation" follows either the spirit or the letter of the law. One might as well have the cleaning lady (oops, "room rehabilitation engineer") drop by every 2 hours...
Did it come from this reimagining?
"And to Phoenix for having the balls to reverse engineer IBM's BIOS..."
That /is/ going to be an interesting read. Kildall did some good work when youger, but more than anything else any insights on how DR became such a pain to deal with in the mid 80s and how they lost their way completely before being bought by Novell will be very welcome.
> how they lost their way completely
It may well be that 'your way' was different from 'their way', but DRI were not 'lost'.
DRI had released MP/M multiuser/multitasking system by 1978, networking by 1979 and went on to produce Concurrent-CP/M and Concurrent-DOS, multitasking with virtual screens, which were demonstrated prior to the toy MS-DOS being released as version 2 that added hard disk support (which CP/M had in 1976).
DOS+, DR-DOS 3.x, and especially DR-DOS 5 and 6 drove MS to improve their products, though it took them 20 months to catch up.
I remember that too, following on from cp/m on various Amstrads (6128 and PPC1512?). My step father always seemed to come home with new OSs, everything from DR/MS DOS, GEM, Win 3, OS2 including Warp etc.
Every other month the magazines seemed to review the latest 'must have' OS. I must confess to loving Warp at the time, although the reasons why escape me today
CP/M may not have been much by today's standards, but it did the job just fine, and brought early computers into businesses, schools and homes. I had it on a Godbout CompuPro system.
I remember seeing MP/M (multitasking CP/M!!!) running on a system in a store downtown - impressive!
I wrote a *lot* of software on my CP/M system. It was an S-100 box, and I had bought a couple of graphics cards for it, plus expansion memory. So, I had my Draco compiler and utilities, my Ded editor, my Explore D&D-ish system (never really released), my RAM disk cache (hooks in BIOS) etc.
Things were so much simpler back then!
I wrote a *lot* of software on my CP/M system. It was an S-100 box, and I had bought a couple of graphics cards for it, plus expansion memory. So, I had my Draco compiler and utilities, my Ded editor, my Explore D&D-ish system (never really released), my RAM disk cache (hooks in BIOS) etc.
Things were so much simpler back then!
They were. That reminds me of when I wanted to get 'normal' 7-bit ASCII (as opposed to some characters replaced by local language variants) on my Kaypro, I dumped the character ROM, edited the contents which I then burned into EPROM. I then proceeded to solder two EPROMS (my modified one and copy of the original) together except for chip select which I wired into a SPDT switch.
Instant switching between real and localised ASCII.
I did spend some time trying to convert an IBM golfball typewriter to work on my MK14 but then got a Superbrain with CP/M and a C compiler on it. Whoo hoo!
ISTR using CP/M-86 on the first IBM PCs we had at work and then we moved to DOS for some reason.
Cheers Gary Kildall may your memory never be zero'd.
As hard as folks might find it to believe today, the BIOS on a typical CP/M machine actually worked, to provide a usable hardware abstraction layer. As opposed to the PC BIOS which was barely able to function at all outside of booting the disk, and was pig-slow to boot (er... "as well"). So applications on the PC/QDOS platform typically had to include their own I/O code (especially for video), and after Flight Simulator became the de facto acceptance test for "PC Compatible", the end was near for the sort of "Compatible, but better" machines that had flowered under CP/M (without requiring that developers write a separate version for every precious snowflake of mutant hardware. BIOS took care of that).
Of course, one result of this "must be bit-for-bit and bug-for-bug identical to a PC" situation was the rise of the clones. No point making things better, just make them cheaper. On the other, other, hand I can't help but feel that a lot of interesting ideas from the 60s/70s took until this millenium to make it to the desktop in such an environment.
I wrote a CP/M BIOS at least three times, and it always contained quite a lot of I/O code, including video unless it was just talking serial to a terminal. It had to do all the low level disk control. The example BIOS in the CP/M documentation was just a bare bones guide, capable of serial IO but not disk IO. That you had to do yourself.
Gary Kildall was a visionary and a notable figure in the early days of "microcomputers". I owned an Osborne 01. Thanks to the fact that many software companies were able to port their CP/M applications almost "as-is" to DOS 1.0, the Osborne was useful until around 1987. dBASE II and Wordstar content could be written on the Osborne, then copied to a DOS formatted floppy on the Osborne (using MediaMaster), and then used on a PC.
Other notable figures from the CP/M era also need some praise. Wayne Ratcliff wrote dBase II in his spare time, and created something infinitely better than MBASIC (or even CBASIC). Thank goodness Leor Zolman wrote BDS C and got people like me off 8080/Z80 assembler. These guys are never mentioned today.....they need some long overdue praise......along with Gary Kildall who made it all possible.