From: "Peter Remmers" Newsgroups: comp.os.msdos.djgpp Subject: Re: strange interrupt chaining problem with keyboard interrupt Date: Fri, 6 Oct 2000 02:21:07 +0200 Organization: T-Online Lines: 36 Message-ID: <8rj5td$l0o$14$1@news.t-online.com> References: <8rhi12$4up$10$1 AT news DOT t-online DOT com> <9003-Thu05Oct2000231854+0300-eliz AT is DOT elta DOT co DOT il> Mime-Version: 1.0 Content-Type: text/plain; charset=ISO-8859-1 Content-Transfer-Encoding: 8bit X-Trace: news.t-online.com 970791661 14 21528 320094726121-0001 001006 00:21:01 X-Complaints-To: abuse AT t-online DOT de X-Sender: 320094726121-0001 AT t-dialin DOT net X-Priority: 3 X-MSMail-Priority: Normal X-Newsreader: Microsoft Outlook Express 5.50.4133.2400 X-MimeOLE: Produced By Microsoft MimeOLE V5.50.4133.2400 To: djgpp AT delorie DOT com DJ-Gateway: from newsgroup comp.os.msdos.djgpp Reply-To: djgpp AT delorie DOT com "Eli Zaretskii" schrieb... > How about locking everything that the interrupt handler touches? Did > you do that? The code you posted doesn't show. I have a int _crt0_startup_flags = _CRT0_FLAG_LOCK_MEMORY; for starters, until everything works and I can care about locking. > Did you try to disable the keyboard hooking in the DJGPP startup code? > If so, did it change anything? How do I do that? There's no _CRT0_FLAG_SOMETHING for that in crt0.h... Meanwhile I got around it by writing my own wrapper in assembler. I took some inspiration by looking at the allegro sources. My C function returns a value that tells if the wrapper should chain to the original ISR or not, which BTW works. The problem with calling the old ISR directly from the C handler still persists, however. More precisely, after setting up the DJGPP execution environment (DS=ES=SS and setting up a new stack), calling the old ISR has said effects. Suggestion: integrate the idea of telling the wrapper with a return value if it should chain or not into _go32_dpmi_chain_protected_mode_interrupt_vector(). I think a lot of people would have a lot less trouble trying to do such interrupt things... Peter