Path: utzoo!attcan!telly!problem!skypod!spocom!luns From: luns@spocom.guild.org (Luns Tee) Newsgroups: comp.os.msdos.programmer Subject: Re: Writing a device driver in TP Message-ID: <7e3131w164w@spocom.guild.org> Date: 4 Jun 91 17:29:05 GMT References: <1991May30.022659.23896@maytag.waterloo.edu> Organization: The Spocom Group Lines: 29 dmurdoch@watstat.waterloo.edu (Duncan Murdoch) writes: > In article <1991May30.002543.13967@midway.uchicago.edu> valley@gsbsun.uchicag > >dmurdoch@watstat.waterloo.edu (Duncan Murdoch) writes: > > > >> - They [.EXE format device drivers] work in MSDOS, but not PCDOS, > > because the .EXE loader is part of COMMAND.COM in PCDOS. > >really??? ---------^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ > > > >> - They only work in version 3 or higher. > > > >That's interesting. Does this mean that you can't exec() a .EXE file > >directly (from another program) in PC/DOS? (I.e., that you would have > >to run it via system() ?) > > I haven't tested either claim, but the first one is kind of hard to believe. > In fact, my PC DOS 3.1 tech ref manual specifically mentions that .EXE format > device drivers are allowed, though it doesn't say much about them. However, > I have heard it before, so the tech ref could be wrong. The distinction isn't quite that clear. .EXE format drivers will work in all generic versions of MSDOS. And most versions of PCDOS. There are certain versions of PCDOS where the .EXE loader was part of COMMAND.COM, but I have yet to hear a list of version numbers. I don't think it was very clear-cut, but I'd imagine it was only in certain 1.x and 2.x versions. As for the second claim, the .EXE loader in COMMAND.COM stays in memory when outside of COMMAND.COM, so as far as any program you write is concerned, it's part of the Kernal. I think.