delorie.com/archives/browse.cgi   search  
Mail Archives: djgpp/1997/12/15/03:41:11

Date: Mon, 15 Dec 1997 10:35:12 +0200 (IST)
From: Eli Zaretskii <eliz AT is DOT elta DOT co DOT il>
To: "Diego J. Vilasuso" <rilic AT wwa DOT com>
cc: djgpp AT delorie DOT com
Subject: Re: 16 vs 32-bit code
In-Reply-To: <m0xhLlB-001HD7C@tekka.wwa.com>
Message-ID: <Pine.SUN.3.91.971215103423.22478G-100000@is>
MIME-Version: 1.0

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 -


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