Message-ID: <38E0DC7C.CE330DAB@corel.com> Date: Tue, 28 Mar 2000 11:23:24 -0500 From: Jonathan Meunier X-Mailer: Mozilla 4.7 [en] (Win95; U) X-Accept-Language: en MIME-Version: 1.0 Newsgroups: comp.os.msdos.djgpp Subject: Re: Interrupt wrapper (was Re: keyboard interrupt) 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> <38E0BD61 DOT CF54CF91 AT mtu-net DOT ru> Content-Type: text/plain; charset=us-ascii Content-Transfer-Encoding: 7bit NNTP-Posting-Host: 120.150.3.42 X-Trace: 28 Mar 2000 11:22:44 -0500, 120.150.3.42 Lines: 35 To: djgpp AT delorie DOT com DJ-Gateway: from newsgroup comp.os.msdos.djgpp Reply-To: djgpp AT delorie DOT com "Alexei A. Frounze" wrote: > > 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? Oh, sorry, I just thought a wrapper would do more than that.. well, it's already doing enough (preventing program from potential crash). Thanks for sharing your knowledge ;) .(Trancelucid). . Jaune .