1
0
Fork 0

Added safety to inhibit interrupt with mov ss and pop ss.

Changes to support the new repeat functions.


Imported-from: https://svn.code.sf.net/p/dosbox/code-0/dosbox/trunk@509
This commit is contained in:
Sjoerd van der Berg 2002-11-17 08:45:30 +00:00
parent 3885bee68b
commit 41d41fd696

View file

@ -66,7 +66,8 @@ restart:
case 0x16: /* PUSH SS */
Push_16(SegValue(ss));break;
case 0x17: /* POP SS */
SegSet16(ss,Pop_16());break;
SegSet16(ss,Pop_16());
goto restart;
case 0x18: /* SBB Eb,Gb */
RMEbGb(SBBB);break;
case 0x19: /* SBB Ew,Gw */
@ -538,7 +539,7 @@ restart:
case 0x28: /* MOV Ew,GS */
val=SegValue(gs);break;
default:
val=0;
val=0;
E_Exit("CPU:8c:Illegal RM Byte");
}
if (rm >= 0xc0 ) {GetEArw;*earw=val;}
@ -566,7 +567,9 @@ restart:
E_Exit("CPU:Illegal MOV CS Call");
break;
case 0x10: /* MOV SS,Ew */
SegSet16(ss,val);break;
SegSet16(ss,val);
goto restart;
break;
case 0x18: /* MOV DS,Ew */
SegSet16(ds,val);break;
case 0x20: /* MOV FS,Ew */
@ -1029,11 +1032,11 @@ restart:
E_Exit("CPU:F1:Not Handled");
break;
case 0xf2: /* REPNZ */
count-=Repeat_Normal(false,false,count);
break;
Repeat_Normal(false,false);
continue;
case 0xf3: /* REPZ */
count-=Repeat_Normal(true,false,count);
break;
Repeat_Normal(true,false);
continue;
case 0xf4: /* HLT */
break;
case 0xf5: /* CMC */
@ -1323,6 +1326,5 @@ restart:
default:
NOTDONE;
break;
}