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