Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]
Groups > comp.os.msdos.djgpp > #1728
| From | "Rod Pemberton" <dont_use_email@xnohavenotit.cnm> |
|---|---|
| Newsgroups | comp.os.msdos.djgpp |
| Subject | Is int86() designed and implemented correctly? |
| Date | 2014-02-15 05:16 -0500 |
| Organization | Aioe.org NNTP Server |
| Message-ID | <op.xbbitrq95zc71u@localhost> (permalink) |
For interrupts other than Int 21h, int86() calls _int86 in assembly which generates an interrupt in PM. For many, but not all, Int 21h sub-functions, int86() does the same. Supposedly, this is to allow installed PM interrupt routines to execute. However, there are thirteen Int 21h sub-functions which have been extended for setting up pointers, transfer buffer, return values etc within int86(). These thirteen sub-functions *do not* call the _int86 assembly routine which generates a PM interrupt. Instead, int86() calls __dpmi_int() for them. __dpmi_int() calls the DPMI host's simulate real mode interrupt DPMI API call, thereby generating a RM interrupt, instead of a PM interrupt. Shouldn't these extended Int 21h sub-functions have been designed to call int86() to generate a PM interrupt? Using __dpmi_int() would seem to *bypass* installed PM ISR routines for those Int 21h sub-functions, calling RM instead. Is this correct? Since it seems these sub-functions can't be called in PM via DJGPP, how does someone call installed custom ISRs for the thirteen Int 21h sub-functions? Does assembly need to be used to generate a PM Int 21h interrupt directly? Or, am I missing something, like these get reflected back to PM somewhere, somehow? Rod Pemberton
Back to comp.os.msdos.djgpp | Previous | Next — Next in thread | Find similar | Unroll thread
Is int86() designed and implemented correctly? "Rod Pemberton" <dont_use_email@xnohavenotit.cnm> - 2014-02-15 05:16 -0500 Re: Is int86() designed and implemented correctly? Eli Zaretskii <eliz@gnu.org> - 2014-02-15 16:52 +0200
csiph-web