Mail Archives: djgpp/1997/01/09/13:20:19
> 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 -