Hello Tom,
apart from the drawbacks there is another problem:
---
mov bp, [bp + 20] ; store id (in SS:) unless it's NULL
or bp, bp
jz nostore
mov [bp], bx
nostore:
---
>
> if (*id)
> *id = r.b.x;
The first * in this part is wrong, and also id lives on the stack, but
SS!=DS here (!), see the comments elsewhere in nls.c.
it would need to be
if (id != NULL) /* or if (id) */
poke(_SS, id, r.b.x);
returning a "long" (or a struct with two ints, but I'm not sure if all
compilers we use put that in dx:ax) would be another way to avoid this,
and save a bit of stack space too.
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