On Fri, 6 Oct 2006, jf simon wrote:
2- The same code as seen from ndisasm:
000068DA A00080 mov al,[0x8000] 000068DD 04F5 add al,0xf5 000068DF 0002 add [bp+si],al 000068E1 C8008015 enter 0x8000,0x15 000068E5 0E push cs 000068E6 0106C800 add [0xc8],ax 000068EA 80100E adc byte [bx+si],0xe 000068ED 0105 add [di],ax 000068EF C800800B enter 0x8000,0xb 000068F3 0E push cs 000068F4 0104 add [si],ax 000068F6 C8008006 enter 0x8000,0x6 000068FA 0E push cs 000068FB 0102 add [bp+si],ax 000068FD E80080 call 0xe900 <<<<<!!!HERE AGAIN
This is probably data -- either font data or VGA register tables. Can you trace backwards any more and figure out how you got to 68DA?
You are right. I have found that the problem was on a JMP SHORT which was incorrectly landing in that part of the VGA BIOS. The relative displacement was negative (was 0xBA), but the JMP was considering it to be a jump to [PC]+0xBA rather than applying the signed arithmetic. Setting GCC "-fsigned-char " switch made the signed displacemnt correctly applied....and solved the problem. I didn't know that the "char" type was unsigned by default.
I've just committed a change to insulate x86emu against this.
Lastly, I have found that the VGA bios i use is doing CF8/CFC PCI configuration style accesses. Which doesn't work on my PowerPC plaftorm. (I think it is only to be seen in the x86 world, but not sure). So they need to be translated to whatever the platform is going to use as PCI configuration access. I just mention this for the record in case others are not aware of this.
The generic int10 modules already intercepts such accesses and emulates them using PCI accesses appropriate for the platform.
Marc. +----------------------------------+----------------------------------+ | Marc Aurele La France | work: 1-780-492-9310 | | Academic Information and | fax: 1-780-492-1729 | | Communications Technologies | email: tsi@xxxxxxxxxxx | | 352 General Services Building +----------------------------------+ | University of Alberta | | | Edmonton, Alberta | Standard disclaimers apply | | T6G 2H1 | | | CANADA | | +----------------------------------+----------------------------------+ XFree86 developer and VP. ATI driver and X server internals. _______________________________________________ Devel mailing list Devel@xxxxxxxxxxx http://XFree86.Org/mailman/listinfo/devel