On Sat, 15 Apr 2000, Bart Oldeman wrote:
> On Fri, 14 Apr 2000, Josef Drexler wrote:
>
> > So, does anybody have any idea why this is happening, and what I can do to
> > fix it? Why does a prefixed int xx cause a segfault when a regular one
> > works fine?
>
> The following patch fixes this for me: (but move the line containing
> "esi,edi,ecx" behind "should use ")
>
> I hope I haven't looked over something in this quick patch.
No, you haven't, it works perfectly. Thanks a lot!
> Bart
>
> diff -u dosemu-1.0.0-orig/src/emu-i386/do_vm86.c
> dosemu-1.0.0/src/emu-i386/do_vm86.c
> --- dosemu-1.0.0-orig/src/emu-i386/do_vm86.c Sun Mar 5 19:41:09 2000
> +++ dosemu-1.0.0/src/emu-i386/do_vm86.c Sat Apr 15 15:28:30 2000
> @@ -193,6 +193,11 @@
> LWORD(eip) += (csp-lina);
>
> switch (*csp) {
> +
> + case 0xcd: /* int */
> + do_int(*(csp+1));
> + LWORD(eip)+=2;
> + break;
>
> case 0x6c: /* insb */
> /* NOTE: ES can't be overwritten; prefixes 66,67 should use
> esi,edi,ecx
>
--
Josef Drexler