delorie.com/archives/browse.cgi   search  
Mail Archives: djgpp/1997/01/09/13:20:19

From: sandmann AT clio DOT rice DOT edu (Charles Sandmann)
Message-Id: <9701091746.AA14637@clio.rice.edu>
Subject: Re: WinSock in Dos with WIn95
To: markiv AT rangenet DOT com
Date: Thu, 9 Jan 1997 11:46:23 -0600 (CST)
Cc: djgpp AT delorie DOT com
In-Reply-To: <32D4842D.72A3@rangenet.com> from "Dan Hedlund" at Jan 8, 97 11:37:49 pm

> Also, I think as long as you have the big bit set in the stack's LDT
> entry, push's and pop's will work.  The problem is when you call a 16bit
> function wirh a 32 bit stack, it might use [sp + 4] or something.  

Or move sp to bp and reference with that, or do a 16-bit leave which
messes up the upper bits.  The only safe thing to do is to have SS:ESP
be less than 64K when running in 16-bit mode.  One workaround I have
used is to overwrite the DJGPP startup code in crt0 with a temporary
stack (look at crt0.S for the code layout to see what is one time only)
or to disable null pointer protection and use the low 4K.

> Do you think call gates could solve this problem?  Is that intel prog
> refrence availiable on the internet?

I would keep it as simple as possible, since the semi-protected W95
type environment may get more protected.  I don't know of an entire
intel reference on the net, no.  There are some docs on Intel's site,
but not complete.

- Raw text -


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