From: "Charles Sandmann" Newsgroups: comp.os.msdos.djgpp Subject: Re: RE: Help! - INT x22 problem. Date: Fri, 31 Aug 2001 11:06:49 Organization: Aspen Technology, Inc. Lines: 22 Message-ID: <3b8f6fc9.sandmann@clio.rice.edu> References: <68C4CF842BD2D411AC1600902740B6DA02CDC54E AT mcoexc02 DOT mlm DOT maxtor DOT com> NNTP-Posting-Host: dcloan.hou.aspentech.com X-Trace: selma.aspentech.com 999275081 17428 10.32.115.107 (31 Aug 2001 16:24:41 GMT) X-Complaints-To: postmaster AT aspentech DOT com NNTP-Posting-Date: 31 Aug 2001 16:24:41 GMT X-NewsEditor: ED-1.5.8 To: djgpp AT delorie DOT com DJ-Gateway: from newsgroup comp.os.msdos.djgpp Reply-To: djgpp AT delorie DOT com Quick recommendations without a lot of analysis: 1) Try hooking instead of chaining (hook is faster) 2) Try getting rid of the disable/enable calls (in wrapper?) 3) If all else fails let's look at wrapper code details > The interrupt frequency is about 1 interrupt every 40us - 70us. A fairly high rate if certain high overhead things happen which might cause back to back stacked interrupts (next one fires right after EOI and interrupts enabled, so you don't finish). Also high enough that I would be worried about one happening in real mode (during a timer interrupt or something) and having to be reflected back. > One of the other reasons for > using C code is that I call back into the app (another reason I suspect the > stack might be corrupted). Can I still do this if I write the handler > assembly? You will also notice that I have a handler for each possible IRQ. > This is for performance reasons, but I am only hooking one at the moment. Yes, you could call back to C code from an assembly wrapper - that's what the DJGPP provided wrappers do. But I would rather fix the DJGPP wrappers and then everyone benefits :-)