delorie.com/archives/browse.cgi   search  
Mail Archives: djgpp/1999/02/05/07:14:10

From: gsm77 AT aol DOT com (GSM77)
Newsgroups: comp.os.msdos.djgpp
Subject: Re : keyboard handler...
Lines: 32
NNTP-Posting-Host: ladder01.news.aol.com
X-Admin: news AT aol DOT com
Date: 05 Feb 1999 08:16:01 GMT
References: <796eor$ja$1 AT pedraforca DOT cesca DOT es>
Organization: AOL, http://www.aol.fr
X-Newsreader: AOL Offline Reader
Message-ID: <19990205031601.08686.00000533@ngol02.aol.com>
To: djgpp AT delorie DOT com
DJ-Gateway: from newsgroup comp.os.msdos.djgpp
Reply-To: djgpp AT delorie DOT com

is05562 AT salleURL DOT edu wrote :

>OK then... I think that I knew then what an iret_wrapper was, (it's "more or
>less the same that adding the interrupt" keyword in borland for example ).

Ok , Just smalls precisions on the "interrupt" of Borland and the wrapper of
DJGPP...

"interrupt" in Borland mean that this function will be able to be call by an
Interrupt mecanism.
so at the start of the function, the compiler add piece of code to save the
registers. 
And a the end of the function (and at every "return") it add a piece of code
for restore 
any registers it saved, and return with the "IRET" assembly instruction.

The wrapper in DJGPP is the REAL interrupt handler, it'll be the only one to be
call
when the interrupt occur.
It saved the registers, 
and make the environnement back to the C++ normal flow and then , call your
function.
After your function returned, it restore the registers to protected normal
flow.
But DJGPP need one Wrapper for any interrupt Handler, so you add to allocate it

( and deallocate it ) by yourself ...

Hope thats help ...

KAMY

- Raw text -


  webmaster     delorie software   privacy  
  Copyright © 2019   by DJ Delorie     Updated Jul 2019