Mail Archives: djgpp/1997/12/15/03:41:11
On Sun, 14 Dec 1997, Diego J. Vilasuso wrote:
> Programs compiled with djgpp are set to run at 32-bit, but the DOS
> in Win3.11 only runs at 16-bit.
You are mixing up two, possibly three, different things here. It is
true that DOS code is 16-bit; it is also true that Windows runs its
DOS sessions as 16-bit code. It is even true that Windows 3.X itself
is mostly 16-bit (albeit protected-mode) code as well.
But when a DJGPP program starts up, it uses the DPMI services built
into Windows to switch to 32-bit protected mode, and from there on
runs 32-bit code. So DOS and Windows run in 16 bit, but DJGPP
programs do not.
> I also have a small cpu monitor which can tell me that.
Your CPU monitor is probably not smart enough to see that DJGPP
programs run 32-bit code.
> From the web page I listed -- it says
> that the programs will run at 16-bit unliess a dos extender is
> used, that is why i was trying to get dos4wg to work.
It's not needed for DJGPP, see above. DJGPP uses the DOS extender
facilities built into Windows (its DPMI server) to switch into 32-bit
protected mode.
> Someone else suggested i try 'cwspmi' --- hopefully this will work.
They were wrong: CWSDPMI will not be used by DJGPP programs on
Windows, since Windows won't allow CWSDPMI to be loaded. CWSDPMI is a
DPMI server, and Windows doesn't allow any program to take over its
DPMI services. That's why DJGPP programs running on Windows use the
Windows DPMI services.
- Raw text -