Path: utzoo!utgpu!news-server.csri.toronto.edu!rpi!usc!cs.utexas.edu!uunet!bonnie.concordia.ca!thunder.mcrcim.mcgill.edu!McRCIM.McGill.EDU!xsession From: xsession@McRCIM.McGill.EDU (X session) Newsgroups: comp.os.msdos.programmer Subject: Re: How can a TSR detect if it has been installed? Message-ID: <1991Jun27.041153.17579@thunder.mcrcim.mcgill.edu> Date: 27 Jun 91 04:11:53 GMT References: <0094A83A.9AE8E1A0@MAPLE.CIRCA.UFL.EDU> Sender: news@thunder.mcrcim.mcgill.edu Reply-To: xsession@McRCIM.McGill.EDU (X session) Organization: McRCIM, McGill University Lines: 27 Nntp-Posting-Host: picasso.mcrcim.mcgill.edu Use int 2fh quoting Ping-Shun Huang: (1) Grab a completely unused interrupt/service and have your TSR return identification codes when that interrupt/service is called: e.g. Interrupt $21, AX=$FEED is probably unused, your TSR could grab it and return non-trivial data in the registers, BX=$DEAF and CX=$BEAD and DX=$FEED, the combination of which is unlikely to be accidentally duplicated by another program. Your TSR's installation routine can then check before continuing. Problem with this method: potential (although darn unlikely) conflicts with other TSR's if by chance two programmer decide on the same interrupt/service and ID codes. But use AH=2fh (I hope I got it right) instead DOS uses this one especially for this purpose (print graftabl append etc.) I might be able to find which program use which code, if I find it I'll post it. I always use anything above 80h and it seems to work. Hope this helps grtnx Martijn nykerk@mcrcim.mcgill.ca