Hi! 15-Фев-2004 14:23 [EMAIL PROTECTED] (Luchezar Georgiev) wrote to [EMAIL PROTECTED]:
>> LG> It only depends on what CPU fmemcpy in main.c is compiled for. If it's compiled >> for 80386, it crashes. >> Now check from which places main::fmemcpy is called and check which place (may) >> depend on 32-bit registers. LG> There is none! Not only have I checked all fmemcpy calls, ensuring that EAX LG> need NOT be preserved accross all the calls, but as I wrote, I deliberately LG> compiled ALL the kernel for 80186 and ONLY fmemcpy for 80386 (so EAX is used LG> ONLY in it and in NO other place in the kernel!) and it still crashed! This bug (probably) may be not in kernel itself, but in some code, which calls kernel _and expects_ that _any_ (including 32-bit) register, which not declared as "modified", will not be modified. Just hint: check if in all external entry points to kernel preserved 32-bit registers, if you compile kernel with support of 386. LG> thought it MIGHT for the future - anyway, not important!), it removes ALL LG> initialisation code string functions from main.c, config.c, iprf.c and LG> inithma.c, and intrud! LG> uces a LG> new file called ISTR.ASM that includes the already existing ASMSUPT.ASM Good step. Such very well defined functions _should_ be written in asm. ------------------------------------------------------- SF.Net is sponsored by: Speed Start Your Linux Apps Now. Build and deploy apps & Web services for Linux with a free DVD software kit from IBM. Click Now! http://ads.osdn.com/?ad_id56&alloc_id438&op=click _______________________________________________ Freedos-kernel mailing list [EMAIL PROTECTED] https://lists.sourceforge.net/lists/listinfo/freedos-kernel