On Sat, 24 Jul 2004, Eduardo Casino wrote:

> Tom, your patch seems to cause some problems (now the wrong DS is passed
> to some nlsfunc calls. It happens with a modified nls.c, I can send you
> the code and the details if you are interested)

If you don't initialize r.ds in a call to intr there is garbage in there.
  r.ds = FP_SEG(&nlsInfo)
is also necessary if you go that route. Using direct assembly DS will just
stay that.

> Now, guys, if you could only give me a hint on how to implement this:
> 
> http://sourceforge.net/mailarchive/message.php?msg_id=8809361

It's a difficult question. Essentially there are two ways we can go:
1. if the kernel very carefully minimizes stack usage on the code path 
   taken and NLSFUNC itself only uses a couple bytes of stack in between 
   it's possible to just do it.
or
2. nlsfunc would have to copy anything in between ss:sp and ss:920
   (_disk_api_tos, that's the top of the stack used here in any DOS >= 
    4.0) to a temp area (max 384 bytes), set sp to 920, and with that call 
    DOS. Then after the call adjust the stack pointer, then swap it back,
    then return.

2. is probably easiest unless we also like to experiment with 3rd party 
    NSLFUNCs. There may be funny problems I didn't think of but can't 
    think of any though.

> In return, I promise you a tour through the best tapas bars in Madrid
> next time you come. I'll pay the bill, of course! ;-)

Madrid is a long way and a lot warmer than here from what I heard :)
Although 40 C is too hot.

Greetings from Auckland NZ (10 C, but clear skies).
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