Date: Mon, 15 Dec 1997 10:35:12 +0200 (IST) From: Eli Zaretskii To: "Diego J. Vilasuso" cc: djgpp AT delorie DOT com Subject: Re: 16 vs 32-bit code In-Reply-To: Message-ID: MIME-Version: 1.0 Content-Type: TEXT/PLAIN; charset=US-ASCII Precedence: bulk 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.