roth@macom1.UUCP (dennis paul roth) (07/24/87)
I have an image processing workstation built around a Zenith 248 running under MS-DOS 3.1. The Device Drivers for the image capture board and the laser printer are such memory hogs that if they are both installed at the same time there isn't enough memory left over to run the image processing software. So two versions of the config.sys file exist, one that loads the laser printer driver with the DEVICE command, another that doesn't. Now if I want to capture, process, and print images I've got to boot the system with the config.sys file without the laser printer device driver capture and process the image, save the image, change the config.sys file to the one with the laser printer driver, reboot, print the image, then change the config.sys back again and reboot to capture the next image. There must be an easier way. No? My question is. Does anyone out there know how to uninstall a device driver and release the memory it was using without doing a warm boot? I will be eternally gratefull to anyone who can assist me with this problem. -- Dennis Roth @ CENTEL Information Systems, Inc. 5515 Security Lane, Rockville, Maryland, 20852, (301) 984-3636 uucp: {decuac, grebyn}!macom1!roth internet: macom1!roth@{ decuac.DEC.COM, seismo.CSS.GOV } backdoor: grebyn!macom1!roth@umd5.umd.edu
gwr@linus.UUCP (Gordon W. Ross) (07/24/87)
In article <238@macom1.UUCP> roth@macom1.UUCP (dennis paul roth) writes: > >I have an image processing workstation built around a Zenith 248 running >under MS-DOS 3.1. The Device Drivers for the image capture board and >the laser printer are such memory hogs that if they are both installed >at the same time there isn't enough memory left over to run the image >processing software. So two versions of the config.sys file exist, one that >loads the laser printer driver with the DEVICE command, another that doesn't. We have a similar situation here, using two config.sys versions. >Now if I want to capture, process, and print images I've got to boot the >system with the config.sys file without the laser printer device driver >capture and process the image, save the image, change the config.sys file >to the one with the laser printer driver, reboot, print the image, then >change the config.sys back again and reboot to capture the next image. > >There must be an easier way. No? No. Unfortunately, the DOS memory management system does not allow for removal of device drivers once they are installed. It is however possible write a device driver which prompts the user during boot load and allows the user to select whether the device driver should install itself normally, or pass a zero length back to DOS causing its installation to be skipped. This is in the DOS Tech. Ref. manual. >My question is. Does anyone out there know how to uninstall a device >driver and release the memory it was using without doing a warm boot? >I will be eternally gratefull to anyone who can assist me with this problem. A device driver which asks whether it should install could save you the trouble of boot loading twice if the the wrong copy of config.sys is in use, but beyond that you're pretty much stuck. There is probably much more in your device drivers than really needs to be there. A better design (at least from the memory usage standpoint) is to put only low-level device interface code in the device driver, and separate other functions into normal executable files. Some software vendors provide TSR (Terminate and Stay Resident) versions of their "drivers" which can remove themselves if they were the last installed. If you're lucky you might convice the people that wrote your software to provide such a version. (Good Luck!) It's too bad there's so much code that's not really device interface dumped into DOS device drivers. It is only slightly more complicated to put that code in regular executable files, and provide the user with batch files to set up the DOS piping if necessary. >-- >Dennis Roth @ CENTEL Information Systems, Inc. 5515 Security Lane, Rockville, >Maryland, 20852, (301) 984-3636 uucp: {decuac, grebyn}!macom1!roth >internet: macom1!roth@{ decuac.DEC.COM, seismo.CSS.GOV } >backdoor: grebyn!macom1!roth@umd5.umd.edu -- Gordon W. Ross Phone: (617) 271-3205 The MITRE Corporation ARPA: linus!gwr@MITRE-BEDFORD Bedford, MA 01730 UUCP: decvax!linus!gwr
martyl@rocksvax.UUCP (Marty Leisner) (07/25/87)
In article <238@macom1.UUCP> roth@macom1.UUCP (dennis paul roth) writes: > >My question is. Does anyone out there know how to uninstall a device >driver and release the memory it was using without doing a warm boot? >I will be eternally gratefull to anyone who can assist me with this problem. >-- Good question. I'm not sure its worth the trouble -- agood way to do device driver work is to use two machine -- ones for development and one for test. On PCs running without any protection, I have qualms about working on a machine where the device drivers are changing without any hardware protection. A few things to think about: 1) I don't think the memory could be released. But if the new image fits inside the old image, you could overwrite the image and rebuild the pointers and whatever else DOS did. 2) You could debug you device driver as an application program. Then when you're about done, you can install it. Hope this helps. marty leisner xerox corp leisner.henr@xerox.com martyl@rocksvax.uucp