Path: utzoo!utgpu!jarvis.csri.toronto.edu!mailrus!tut.cis.ohio-state.edu!ucbvax!decwrl!sun!pitstop!sundc!seismo!uunet!mcvax!cernvax!ethz!zu From: zu@ethz.UUCP (Urs Zurbuchen) Newsgroups: comp.sys.ibm.pc Subject: Re: problems trying to intercept msdos function requests Message-ID: <788@ethz.UUCP> Date: 20 Feb 89 12:04:24 GMT References: <3204@ttrdc.UUCP> Reply-To: zu@bernina.UUCP (Urs Zurbuchen) Organization: ETH Zuerich, Switzerland Lines: 22 In article <3204@ttrdc.UUCP> levy@ttrdc.UUCP (Daniel R. Levy) writes: >(Yes, I have verified that 88h is an unused interrupt vector [contains >0000:0000], at least at the time I run this program.) Verifying is one thing, being sure another :-) Why do you use an interrupt vector to store the old vector, anyway. Just get the old vector from DOS (AH=35h, AL=number, INT 21h) save it somewhere in your program's memory space. Then set your entry point via DOS (AH=25h,AL=number,INT 21h). You will then hopefully get called :-) To chain to the original interrupt handler issue a far JMP (or CALL, but I'd prefer JMP) indirect via the vector you stored in your program's work space. This way the original vector you saved doesn't get mungled up by some other program (BASIC is a likely candidate for that). Also, as others already pointed out, have a look at the FLAGS register if you're trying to substitute MS-DOS functions. ...urs UUCP: ...!mcvax!cernvax!ethz!zu