On Mon, 26 Jul 2004, Eduardo Casino wrote:

> There are. If I understand it correctly, when calling DOS with ss:920,
> the flags and return address are trashed because DOS sets ss:920 on
> entry, again.

No. The whole point of calling int2f/ax=12xx is that this stack setup is
bypassed.

i.e. *without* any swapping in NLSFUNC you'd have
int21/ah=38 => DOS switches to internal stack =>
NLSFUNC (still uses DOS stack) => int2f/ax=12xx => back in DOS at a lower
place on the same stack.

Now it's just very easy to use too much stack in this setup and that's the
whole problem.

> - Switch to a local stack
> - copy anything in between the original ss:sp and ss:920 to a temp area
> - call DOS ints
> - restore from temp area
> - switch to original stack
> - return
>
> Does anybody see any additional problem with this?

you should not use a local stack when you call int2f/ax=12xx.
As RBIL states: SS = DOS DS (must be using a DOS internal stack)

Bart


-------------------------------------------------------
This SF.Net email is sponsored by BEA Weblogic Workshop
FREE Java Enterprise J2EE developer tools!
Get your free copy of BEA WebLogic Workshop 8.1 today.
http://ads.osdn.com/?ad_id=4721&alloc_id=10040&op=click
_______________________________________________
Freedos-kernel mailing list
[EMAIL PROTECTED]
https://lists.sourceforge.net/lists/listinfo/freedos-kernel

Reply via email to