Date: Sun, 25 Feb 1996 22:20:15 -0500 From: dj (DJ Delorie) Message-Id: <199602260320.WAA28198@delorie.com> To: oandico AT eee DOT upd DOT edu DOT ph CC: djgpp AT delorie DOT com In-reply-to: (message from Orlando Andico on Mon, 26 Feb 1996 10:45:15 -0800 (GMT)) Subject: Re: dpmi invocations > What's the difference between the old __go32_... calls and the new > __dpmi_... ones? I suppose the old calls are now just wrappers for the > new ones? how do I convert my old code to the new code without a great > deal of pain? are there any advantages to doing this? In general, we used __dpmi_ whenever we could. The __dpmi_ calls tend to go directly to DPMI, whereas the __go32_ ones usually are intelligent helper functions (at least, *old* intelligent helper functions :-) Some of them have been #defined to new __dpmi_ versions. You shouldn't have to convert your code; the old __go32_ functions still exist. > On another note: I call a real-mode interrupt handler and I want to give > it a big stack. However, it says in the Info file that if SS=0 (or some > such thing) a *small* default stack will be given. Exactly *how* small is > this stack? and how do I get a bigger one? (right now, I just memset() > the register struct to zero, then set up those which I need, which > doesn't include the stack register). From the DPMI spec (http://www.delorie.com/djgpp/doc/dpmi/) : The real mode stack is also provided by the DPMI host, and is usually located in the DPMI host data area allocated by the client prior to its initial switch into protected mode. The real mode stack is at least 200H bytes in size and is always located in locked memory. Interrupts that are reflected to real mode, as well as calls to real mode interrupt handlers or procedures via Int 31H Functions 0300H, 0301H, or 0302H, will use this stack. Allocate dos memory (or use the transfer buffer) if you need a bigger stack.