delorie.com/archives/browse.cgi | search |
From: | "Peter Remmers" <Peter DOT Remmers AT t-online DOT de> |
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: | <Pine DOT SUN DOT 3 DOT 91 DOT 1001005075606 DOT 3958E-100000 AT is> <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 |
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" <eliz AT is DOT elta DOT co DOT il> 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
webmaster | delorie software privacy |
Copyright © 2019 by DJ Delorie | Updated Jul 2019 |