1
0
Fork 0

Some more 0x0f prefixed instructions related to protected mode.

Imported-from: https://svn.code.sf.net/p/dosbox/code-0/dosbox/trunk@1040
This commit is contained in:
Sjoerd van der Berg 2003-06-03 18:06:53 +00:00
parent f6e003c808
commit 40a4d72267

View file

@ -97,12 +97,38 @@ switch(Fetchb()) {
}
}
break;
case 0x20: /* MOV Rd.CRx */
{
GetRM;
Bitu which=(rm >> 3) & 7;
if (rm >= 0xc0 ) {
GetEArd;
*eard=CPU_GET_CRX(which);
} else {
GetEAa;
LOG(LOG_CPU,LOG_ERROR)("MOV XXX,CR%d with non-register",which);
}
}
break;
case 0x22: /* MOV CRx,Rd */
{
GetRM;
Bitu which=(rm >> 3) & 7;
if (rm >= 0xc0 ) {
GetEArd;
if (!CPU_SET_CRX(which,*eard)) goto decode_end;
} else {
GetEAa;
LOG(LOG_CPU,LOG_ERROR)("MOV CR%,XXX with non-register",which);
}
}
break;
case 0x23: /* MOV DRx,Rd */
{
GetRM;
Bitu which=(rm >> 3) & 7;
if (rm >= 0xc0 ) {
GetEArw;
GetEArd;
} else {
GetEAa;
LOG(LOG_CPU,LOG_ERROR)("MOV DR%,XXX with non-register",which);