Mail Archives: djgpp/1997/09/10/17:34:14
MN Daya schrieb:
> In <01bcb749$4f28c9a0$e18033cf AT markov> "George Kinney" <goober AT mail DOT net>
> writes:
> >ALL programs compiled with DJGPP require DPMI.
>
> >Now this will either be provided by the OS, or will be provided by an
> >extender.
>
> >When you compile a program with DJGPP, it attaches the resulting COFF
> >image to a stub, which is responsible for checking for DPMI availability,
> >and if not found, finding and loading an appropriate extender. This is
> >by default CWSDPMI, but you can change the stub to use other extenderd,
> >and can also use PMODE/DJ which is a stub with DPMI built in.
>
> >So your program checked for DPMI, didn't find it, and loaded an extender
> >and continued. Either that or you have another extender loaded, such as
> >QDPMI.
>
> >Also, all output from DJGPP is 32bit, flat memory model. It doesn't matter
> >at all which functions you do or do not use, it is still 32bit.
>
> I think you may have misunderstood the question. I think he knows that a DPMI
> server is needed for DJGPP programs. What I think he's asking why the program
> still runs when apparently no DPMI is loaded.
>
> The answer to the question *I* think he's asking is that when you exit to dos
> from windows95 (as opposed to rebooting the machine) windows is still lurking
> in the background. So it's DPMI (I assume) is still active.
I think you should read the answer again, especially this: '...and if not found,
finding and loading an appropriate extender...'
This just means that a program compiled with djgpp will (usually) search for
'CWSDPMI.EXE' in any PATHed directory and in the current one (if it doesn't find
a dpmi host in memory). If this file is not found, it will just print an
error message.
- Raw text -