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

Reply via email to