If you look closely (and know anything about the nitty-gritty of the
IA-Px processor architecture) you will notice that the current extended
instruction pointer (eip) is set to 0x10001h (which is outside of the
code segment 0xc000h).  Real mode code (ie, a VGA BIOS) needs to all
either:
1) be in the same segment,
2) have the proper code included to change segments & instruction
pointers when needed .
Why your code would be jumping outside of a 64KB segment isn't something
that I should take time to theorize about yet, since I don't know much
about the guts of your code--but I can tell you that it'd have to be one
big BIOS to be needing to jump that far!!!

The most useful fix would be to fix your code so that it stays in the
code segment, at least until there is some other way (and your assembler
doesn't need to be as optimised).  In any case, it isn't the addb that is
the problem (itself anyway).

I would try using something not written to create DOS executables, gcc
for example.  You may have better luck with one of those packages.

Kenton Groombridge wrote:

> christophe Bothamy wrote:
> > For my tests, on a debian 2.2 box, last plex86 cvs, i tried to
> > use Turbo C 2.0, but it stops with a :
> >
> > ::plex86 panic:
> > ::sbe: guest EIP > CS.limit
> > eip:0x10001
> > cs:s=0xc000, dl=0xffff, dh=0x9f0c, valid=1
> > Stack dump:
> > Current instruction:
> >  C000.00010001  0000                     addb    %al, (%bx,%si)
> >
> > I know there was a thread on such problem on the ml, but
> > i thought it was solved... I will try to see if MS-C works better...
> >
> > Ciao
> >
> > --
> > Christophe Bothamy.
>
> --
> Kenton Groombridge
> [EMAIL PROTECTED]
> http://web.infoave.net/~kgroombr/

--
Drew Northup, N1XIM




Reply via email to