From: "Alexei A. Frounze" Newsgroups: comp.os.msdos.djgpp Subject: Re: Interrupt wrapper (was Re: keyboard interrupt) Date: Tue, 28 Mar 2000 18:10:41 +0400 Organization: MTU-Intel ISP Lines: 33 Message-ID: <38E0BD61.CF54CF91@mtu-net.ru> References: <8bod7h$rj1$1 AT gxsn DOT com> <38DFBF98 DOT 8BEB44EB AT corel DOT com> <38DFE9E5 DOT 37B0F318 AT mtu-net DOT ru> <38E0B41D DOT 4046948D AT corel DOT com> NNTP-Posting-Host: ppp105-186.dialup.mtu-net.ru Mime-Version: 1.0 Content-Type: text/plain; charset=koi8-r Content-Transfer-Encoding: 7bit X-Trace: gavrilo.mtu.ru 954256201 17748 212.188.105.186 (28 Mar 2000 15:10:01 GMT) X-Complaints-To: usenet-abuse AT mtu DOT ru NNTP-Posting-Date: 28 Mar 2000 15:10:01 GMT X-Mailer: Mozilla 4.61 [en] (Win95; I) X-Accept-Language: en,ru To: djgpp AT delorie DOT com DJ-Gateway: from newsgroup comp.os.msdos.djgpp Reply-To: djgpp AT delorie DOT com Jonathan Meunier wrote: > > In this case, wouldn't the _go32_dpmi_allocate_iret_wrapper() wrapper > take care of this? I don't see why it shouldn't work... I do not know. Btw, as a programmer that works with low-level stuff, I like clear stuff just like typical IRQ ISR. I.e. with saving registers, loading segments, performing I/O, acknowleging IRQ, returning back via IRET(D). > > (and to merge your other post).. > As for your wrapper source code you posted, I would like some > clarification.. What is ___djgpp_ds_alias? is it just some sort of > pointer to the data segment? Yes, it's a variable where program's data selector is stored. > > But what exactly is a wrapper; why do we need one? I already answered this question... Since, DJGPP/GCC doesn't support definitions of Interrupt Service Routines (using "interrupt" reserved word or something similar) with register save/load, ... and IRET(D), we should do this with ASM. Clear? Alexei A. Frounze -- Homepage: http://alexfru.chat.ru Mirror: http://members.xoom.com/alexfru