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

Reply via email to