Relay-Version: version B 2.10 5/3/83; site utzoo.UUCP Path: utzoo!mnetor!uunet!tektronix!gvgpsa!gvgspd!mrk From: mrk@gvgspd.UUCP (Michael R. Kesti) Newsgroups: comp.sys.ibm.pc Subject: unexpected "TSR's" Message-ID: <307@gvgspd.UUCP> Date: Sat, 10-Oct-87 03:30:31 EDT Article-I.D.: gvgspd.307 Posted: Sat Oct 10 03:30:31 1987 Date-Received: Mon, 12-Oct-87 06:15:10 EDT Reply-To: mrk@gvgspd.UUCP (Michael R. Kesti) Organization: Grass Valley Group, Grass Valley, CA Lines: 54 Since I have begun to use Bob Frolick's AT program, I have discovered that some programs (notably Procomm and TurboC) appear to attach themselves to DOS in TSR fashion. Especially, they reassign the vector for interrupt 16 (keyboard services) in the course of their execution, and do *NOT* restore this vector upon termination. This causes failure of AT, as it compares the code pointed to by this vector to determine whether it is already installed. When this vector is changed, it fails to recognize itself, and re-installs itself, losing any previously scheduled events! I am happy to report, however, that I have found a work around for this problem. In both cases (Procomm and TurboC, that is), I was already using batch files to invoke these programs, and have found that the TSR management utilities INSTALL and REMOVE, recently published in PC Magazine; along with FAKEY, recently posted here, could be used to advantage in them. INSTALL saves the current state of the interrupt vectors and free memory prior to TSR installation , so that REMOVE may later be used to restore the system to the state it was in prior to the installation, effectively removing the TSR in question. FAKEY provides a means to supply keystrokes to susequently invoked programs when run from batch files. The fundamental scheme goes something like this: Suppose Procomm is invoked from CALL.BAT. CALL.BAT would include: echo off install procomm . . . other commands, as required . . :end fakey "\r" remove cls The invocation of INSTALL need not include the program name parameter ("procomm" in this example), but is a convenience. INSTALL does its thing with the vectors and free memory specs, then, upon execution of the commands following the label "end", REMOVE is used to restore the system. The FAKEY invocation is used to automagically supply the affirmative response to REMOVE's prompt "Press ESC to abort or ENTER to remove procomm". The only caveat to all this is that you must not invoke AT or REMOVE while "shelled out" of Procomm, TurboC, or what-have-you; but this should be fairly easy to live with (at least it is for me!). I hope that this information saves at least one of you fine people some grief! If need be, I would be happy to (re?)post INSTALL, REMOVE, and FAKEY. Just let me know if this is justified. -- =================================================================== Michael Kesti Grass Valley Group, Inc. P.O. Box 1114 Grass Valley, CA 95945 UUCP: ...!tektronix!gvgpsa!gvgspd!mrk