i86: Add 0x6x instruction shadows, used by DEC Rainbow MS-DOS 2.01. [R. Belmont, based on a patch by Bavarese]

This commit is contained in:
R. Belmont 2014-05-10 19:22:59 +00:00
parent 45189af3c8
commit dcf31bcf36

View File

@ -1137,68 +1137,86 @@ bool i8086_common_cpu_device::common_op(UINT8 op)
CLK(POP_R16); CLK(POP_R16);
break; break;
// 8086 'invalid opcodes', as documented at http://www.os2museum.com/wp/?p=2147
// 0x60 - 0x6f are an alias to 0x70 - 0x7f.
// These instructions are used in the boot sector for some versions of
// MS-DOS 2.01 (e.g. the DEC Rainbow version).
case 0x60:
case 0x70: // i_jo case 0x70: // i_jo
JMP( OF); JMP( OF);
break; break;
case 0x61:
case 0x71: // i_jno case 0x71: // i_jno
JMP(!OF); JMP(!OF);
break; break;
case 0x62:
case 0x72: // i_jc case 0x72: // i_jc
JMP( CF); JMP( CF);
break; break;
case 0x63:
case 0x73: // i_jnc case 0x73: // i_jnc
JMP(!CF); JMP(!CF);
break; break;
case 0x64:
case 0x74: // i_jz case 0x74: // i_jz
JMP( ZF); JMP( ZF);
break; break;
case 0x65:
case 0x75: // i_jnz case 0x75: // i_jnz
JMP(!ZF); JMP(!ZF);
break; break;
case 0x66:
case 0x76: // i_jce case 0x76: // i_jce
JMP(CF || ZF); JMP(CF || ZF);
break; break;
case 0x67:
case 0x77: // i_jnce case 0x77: // i_jnce
JMP(!(CF || ZF)); JMP(!(CF || ZF));
break; break;
case 0x68:
case 0x78: // i_js case 0x78: // i_js
JMP( SF); JMP( SF);
break; break;
case 0x69:
case 0x79: // i_jns case 0x79: // i_jns
JMP(!SF); JMP(!SF);
break; break;
case 0x6a:
case 0x7a: // i_jp case 0x7a: // i_jp
JMP( PF); JMP( PF);
break; break;
case 0x6b:
case 0x7b: // i_jnp case 0x7b: // i_jnp
JMP(!PF); JMP(!PF);
break; break;
case 0x6c:
case 0x7c: // i_jl case 0x7c: // i_jl
JMP((SF!=OF)&&(!ZF)); JMP((SF!=OF)&&(!ZF));
break; break;
case 0x6d:
case 0x7d: // i_jnl case 0x7d: // i_jnl
JMP((ZF)||(SF==OF)); JMP((ZF)||(SF==OF));
break; break;
case 0x6e:
case 0x7e: // i_jle case 0x7e: // i_jle
JMP((ZF)||(SF!=OF)); JMP((ZF)||(SF!=OF));
break; break;
case 0x6f:
case 0x7f: // i_jnle case 0x7f: // i_jnle
JMP((SF==OF)&&(!ZF)); JMP((SF==OF)&&(!ZF));
break; break;