On Wed, 11 Feb 2004, Luchezar Georgiev wrote:
> I didn't check because I don't know what to check. Browsed entry.asm and
> understood nothing. Do apply your ideas and I'll be serving as a "live
> compiler", as I'm obviously only good for that.
try to disassemble entry.obj. Around line 220, entry.asm says:
reloc_call_int21_handler:
...
;
sti
PUSH$ALL
mov bp,sp
Protect386Registers
;
if you compile using Watcom with -3 the corresponding disassembly is:
00B9 reloc_call_int21_handler:
00B9 FB sti
00BA 06 push es
00BB 1E push ds
00BC 55 push bp
00BD 57 push di
00BE 56 push si
00BF 52 push dx
00C0 51 push cx
00C1 53 push bx
00C2 50 push ax
00C3 89 E5 mov bp,sp
at this place entry.obj for your Borland compilation *must* have
ror eax,16
push ax
ror eax,16
[...]
For watcom this protection is not necessary since its codegen does not use
eax, ebx, ... It does use fs and gs however.
00C5 0F A0 push fs
00C7 L$16:
00C7 0F A8 push gs
However from the makefiles I conclude this code should be present.
It will also be helpful if you can provide the assembly output of what
Borland C generates (*how* does it exactly use eax) for those functions
that you changed.
Bart
-------------------------------------------------------
The SF.Net email is sponsored by EclipseCon 2004
Premiere Conference on Open Tools Development and Integration
See the breadth of Eclipse activity. February 3-5 in Anaheim, CA.
http://www.eclipsecon.org/osdn
_______________________________________________
Freedos-kernel mailing list
[EMAIL PROTECTED]
https://lists.sourceforge.net/lists/listinfo/freedos-kernel