Path: utzoo!dptcdc!jarvis.csri.toronto.edu!mailrus!wasatch!ug.utah.edu!u-dmfloy From: u-dmfloy%ug.utah.edu@wasatch.utah.edu (Daniel M Floyd) Newsgroups: comp.sys.ibm.pc Subject: Re: Question 3 of 3 for assembly language programmers. Keywords: How to uninstall TSR's? Message-ID: <1606@wasatch.utah.edu> Date: 18 Apr 89 19:20:47 GMT References: <4498@tekigm2.MEN.TEK.COM> Sender: news@wasatch.utah.edu Distribution: na Organization: University of Utah CS Dept Lines: 28 In article <4498@tekigm2.MEN.TEK.COM> alanr@tekigm2.MEN.TEK.COM (Alan Rovner) writes: >Suppose I have a TSR already installed and working ok, and I want to disable >it and return its memory back to DOS. Can this be done without rebooting? >I was thinking of passing a command line argument like -u to uninstall >the TSR. But I don't know the assembly language details. Thanks in advance >for any info. It is no problem to disable the program, but completely unloading and returning memory is a tougher problem. With disable, you just keep track of which mode your program is in and simply pass through without processing when in disabled mode. Enabled you do the processing. Simple. To completely unload *only* your TSR, you have to restore all the interupts to what they would have been if you didn't load your program. That is you can't just put them back original because some other TSR may be loaded after yours. You would also have to tell the other TSRs that the interupt they got is no longer viable. Yes, this can be done, but the problem is so complex that no one wants to attempt it. Plus processing would be slowed in doing so. There is a PD program with mark and release that marks a TSR and then will release it along with any other TSRs loaded after that one. I would post it, but I've already got a back log. Someone probably already posted it anyway. If you want it, your making a few local calls to BBSs might get it quickly. Dan Floyd 8