Date: Mon, 9 Oct 2000 07:16:01 +0530 Message-Id: <200010090146.HAA01074@midpec.com> From: Prashant TR To: jeffw AT darwin DOT sfbr DOT org CC: djgpp AT delorie DOT com In-reply-to: <200010081611.LAA14033@darwin.sfbr.org> (message from jt williams on Sun, 8 Oct 2000 11:17:02 -0600) Subject: Re: When is a DOS app a "32-bit DOS" app? References: <200010081611 DOT LAA14033 AT darwin DOT sfbr DOT org> Reply-To: djgpp AT delorie DOT com Errors-To: nobody AT delorie DOT com X-Mailing-List: djgpp AT delorie DOT com X-Unsubscribes-To: listserv AT delorie DOT com Precedence: bulk | From: jt williams | Date: Sun, 8 Oct 2000 11:17:02 -0600 | | Strange question: When is a DOS app a "32-bit" app? Or does "32-bit DOS" | have meaning only with respect to the kernel and protected mode? | | Suppose a certain application program 'foo.c' is written to compile using | 16-bit tools (e.g., Borland). And suppose that by using '#ifdef __DJGPP__' | statements and DOS-specific DJGPP functions (e.g., _get_dos_version(), etc), | the code is also made to compile with DJGPP and to generate an executable that | works (with cwsdpmi). | | Is 'foo.exe' now a 32-bit DOS app? If not, why? Do these questions have any | meaning? Several others have answered, but here's what I have to say... A 32-bit app. is one that runs as a 32-bit prot. mode app, i.e. it has a code segment selector in which the segment descriptor has the "G" bit set to 1 (http://www.midpec.com/djgpp/protmode/). 16-bit programs, OTOH, are of two types - real and protected. 386 instructions behave entirely different in 32-bit mode and 16-bit mode. For example, if the opcode for MOV AX, BX was "xx yy" in 16-bit mode, the same opcode "xx yy" would perform the operation "MOV EAX, EBX" in 32-bit protected mode. This isn't the only difference. Stack alignment is different.... In the case you mentioned, the DJGPP app, is a mixture of real 16-bit, protected mode 16-bit and 32-bit, although it is mostly 32-bit. True 32-bit apps are the ones you run on Unix systems. This is just a short answer, though ;-) -- Prashant TR Web: http://www.midpec.com/