El lun, 26-07-2004 a las 14:09, Bart Oldeman escribió: > 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)
I understood all of this the wrong way. I thought that you were saying to call _int21_, that's the reason for the local stack. > > Excuse me if I'm a bit thick in the head. Do you mean that it makes no > > sense to implement the int 2f122[6-9b] functions in FreeDOS and it is > > better to do what you suggested in your previous post? > > No, it makes sense to implement them, but you're understanding of RBIL > apparently was wrong -- it isn't talking about switching stacks but about > pointing to a different stack frame. So, now that I know how to solve the stack problem, is my implementation of int2f/ax122[6-9] correct? (http://sourceforge.net/mailarchive/message.php?msg_id=8802703) Eduardo. ------------------------------------------------------- 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_idG21&alloc_id040&op=click _______________________________________________ Freedos-kernel mailing list [EMAIL PROTECTED] https://lists.sourceforge.net/lists/listinfo/freedos-kernel