共用方式為


24 years ago today (1985)

Way back in 1985 I was busy working on MS-DOS 4.0.  MS-DOS 4.0 was a multitasking derivative of MS-DOS 2.0 (during 1985 we integrated the changes for MS-DOS 3.1 to MS-DOS 4.1).

It’s important to remember the difference between MS-DOS and PC-DOS.  PC-DOS was an IBM OS offering which was largely written by Microsoft.  MS-DOS was Microsoft OEM version of PC-DOS (sold to companies like Compaq and DEC).  The MS-DOS releases always lagged behind the PC-DOS releases.

Back in the mid 1980s IBM called the shots in the development of DOS – DOS releases were directly tied to IBM hardware offerings because IBM wanted a new version of PC-DOS for each new piece of hardware they shipped.  For example, when IBM shipped the PC/XT, they added a hard disk (with a whopping 10M storage capacity) and they asked Microsoft to add support for hard disks.  The MS-DOS team decided that the best way to support a hard disk wasto add a *nix style hierarchical filesystem with PC-DOS 2.0.  When IBM created the PC/AT, they also delivered PC-DOS 3.1 which added support for the IBM PC Lan Adapter, a broadband networking adapter that IBM shipped at the same time as the PC/AT.  It’s also important to remember that MS-DOS wasn’t a complete PC OS experience.  Instead Microsoft provided the core OS and the command interpreter and a couple of utilities.  Other utilities (like mode.com) were provided by the OEM.  This changed with MS-DOS 3.2 which included a full set of the utilities that were provided by IBM.  For MS-DOS 3.3, we were working with IBM under the Joint Development Agreement and as such we were finally able to ship the actual binaries that shipped with PC-DOS thus making MS-DOS identical to PC-DOS in functionality – but that didn’t happen until 1987.

MS-DOS 4.0 was unique because it was developed “on spec” – IBM didn’t see a need for a multitasking version MS-DOS and didn’t have a new hardware offering on which to attach the product.  But IBM did have the PC/AT which was an 80286 based processor and it didn’t have an OS that took advantage of that hardware.  So IBM and Microsoft started negotiations to take the MS-DOS 4.0 code base and turn it into what eventually turned into OS/2.  I ended up not working on the OS/2 effort, instead I worked on finishing up MS-DOS 4.0 for the OEM partners who had licensed MS-DOS 4.0.

For MS-DOS 4.0 I worked on the BIOS (IO.SYS or IBMBIO.COM on PC-DOS).  In MS-DOS terms the BIOS was basically the binary which contained all the built-in drivers – keyboard, screen, printer, serial port.

Edit: Removed extra "Z" introduced because I wrote this with my laptop balanced on my knee and the "Z" kept creeping in especially when typing IZBM.

Over the summer of 1985, Valorie came out to visit me for an extended summer – she worked as a tester on the Windows and Word team testing printer drivers until she left in December.  And in December I proposed to her and she accepted my proposal, we got married in January 1987 (cue violins at this point :)).

Tomorrow: 1984.

Comments

  • Anonymous
    August 26, 2009
    The comment has been removed

  • Anonymous
    August 26, 2009
    Best decision I ever made :-) Definitely violin time...

  • Anonymous
    August 26, 2009
    You proposed in December 1985 and didn't get married until January 1987? That's a pretty long beta test.

  • Anonymous
    August 26, 2009
    Dave: It was a smidge over a year - if you've ever planned a wedding, that's not that long.

  • Anonymous
    August 26, 2009
    Not sure if it's relevant to this story, but I'm curious if you know... Why did DOS end up using "" as the path separator instead of "/" like Unix did?

  • Anonymous
    August 26, 2009
    Sc: http://blogs.msdn.com/larryosterman/archive/2005/06/24/432386.aspx

  • Anonymous
    August 27, 2009
    Thanks Larry. Now that I read that, it sounds familiar. I must have read it before and forgotten! Sorry for the redundancy ;-)

  • Anonymous
    August 31, 2009
    The comment has been removed

  • Anonymous
    August 31, 2009
    Yuhong: I wonder what if we designed MS-DOS for Pentiums sometime.  But it's kinda pointless since the Pentium didn't exist when MS-DOS was implemented. It wouldn't have mattered either - we couldn't use protected mode in MS-DOS because it would break too many applications.  You're too young to remember OS/2 1.0 which attempted (badly) to implement a virtual machine on a processor which had no virtualization support.

  • Anonymous
    August 31, 2009
    The comment has been removed

  • Anonymous
    August 31, 2009
    Yuhong, that's OS/2 1.3.  I'm talking about 1.0, which came out in 1987.  No GUI, just console support. And if you're running it in a VM, you don't know how hideously bad it was.

  • Anonymous
    August 31, 2009
    "Yuhong, that's OS/2 1.3.  I'm talking about 1.0, which came out in 1987.  No GUI, just console support." Yes, but OS/2 1.3 and OS/2 1.0 run DOS applications about the same way (that is why I said OS/2 1.x), so it doesn't matter. The only change was I think in 1.2 when some 386 support was added to save 32-bit registers and use the native 386-specific method to switch to real mode.