Relay-Version: version B 2.10 5/3/83; site utzoo.UUCP Path: utzoo!utgpu!water!watmath!clyde!cbatt!ihnp4!homxb!houxm!mtuxo!mtgzz!rosen From: rosen@mtgzz.UUCP Newsgroups: comp.sys.ibm.pc Subject: Re: interrupts Message-ID: <2680@mtgzz.UUCP> Date: Mon, 11-May-87 11:48:30 EDT Article-I.D.: mtgzz.2680 Posted: Mon May 11 11:48:30 1987 Date-Received: Wed, 13-May-87 07:33:58 EDT References: <266@sdcc14.UUCP> Organization: AT&T, Middletown NJ Lines: 19 Keywords: interrupts Summary: use IRET In article <266@sdcc14.UUCP>, ee65xta@sdcc14.UUCP (Steve Burnap) writes: > [...] > in Microsoft C, and have been having some difficulty. Presently, I am > installing a short assembly language routine that saves registers, > and then calls my C routine. Once it is installed, my program then > tries to call the interrupt trhough the Microsoft C int86() function. > [...] > works fine. Unfortunately, it never makes it back to the main program Are you sure that all your CALLs and RETs match up. That is are they all far and near. Specifically, after you return to the assembly routine do you restore all registers and do an IRET instead of a regular RET. (IRET pops 3 words, the saved return address, and the flags). -- Tom Rosenfeld @ AT&T Information Systems Labs, Middletown, NJ (201) 957-5867 UUCP: {harpo,ihnp4,burl,akgua}!mtgzz!rosen Disclaimer: I don't claim anything.