On Thu, 12 Aug 2004, Luchezar Georgiev wrote:

> [added by me]: Michael wrote:
>
> > Using the -X option bypasses the InDOS function call, so you don't see a
> > problem when you use that 32RTM option.
>
> But the InDOS call just does:
>
>       case 0x34:
>         lr.ES = FP_SEG(&InDOS);
>         lr.BX = FP_SEG(&InDOS);
>         break;
>
> What could be wrong here?

Copy and paste is broken where you are.

> The InDOS flag value itself?

with
          lr.BX = FP_OFF(&InDOS);
it would be correct. But that's what it does in my source so...

> Stack usage during the call?

that's what I suspected. Eric suggested (in a private email) to make
int21/ah=34 reentrant like we did for 25 and 35. However than it would
completely execute on the user stack and that stack seemed to have been
the problem (only 30 words?).

Since you said commenting out calls to the int2a handler didn't help...
The only other extra stack user is the macro for 386 registers. Perhaps
compiling for <386 or pushing/popping these on the kernel stack would work
around that.

Bart


-------------------------------------------------------
SF.Net email is sponsored by Shop4tech.com-Lowest price on Blank Media
100pk Sonic DVD-R 4x for only $29 -100pk Sonic DVD+R for only $33
Save 50% off Retail on Ink & Toner - Free Shipping and Free Gift.
http://www.shop4tech.com/z/Inkjet_Cartridges/9_108_r285
_______________________________________________
Freedos-kernel mailing list
[EMAIL PROTECTED]
https://lists.sourceforge.net/lists/listinfo/freedos-kernel

Reply via email to