diff --git a/src/devices/cpu/mb86235/mb86235drc.cpp b/src/devices/cpu/mb86235/mb86235drc.cpp index fd1e627a478..fa0b2edf87e 100644 --- a/src/devices/cpu/mb86235/mb86235drc.cpp +++ b/src/devices/cpu/mb86235/mb86235drc.cpp @@ -1336,6 +1336,24 @@ void mb86235_device::generate_alu(drcuml_block *block, compiler_state *compiler, if (AU_CALC_REQUIRED) UML_MOV(block, FLAGS_AU, 0); break; + case 0x19: // OR + generate_alumul_input(block, compiler, desc, i2, I0, false, false); + UML_OR(block, alutemp ? mem(&m_core->alutemp) : get_alu_output(io), I0, get_alu1_input(i1)); + if (AN_CALC_REQUIRED) UML_SETc(block, COND_S, FLAGS_AN); + if (AZ_CALC_REQUIRED) UML_SETc(block, COND_Z, FLAGS_AZ); + if (AV_CALC_REQUIRED) UML_MOV(block, FLAGS_AV, 0); + if (AU_CALC_REQUIRED) UML_MOV(block, FLAGS_AU, 0); + break; + + case 0x1a: // XOR + generate_alumul_input(block, compiler, desc, i2, I0, false, false); + UML_XOR(block, alutemp ? mem(&m_core->alutemp) : get_alu_output(io), I0, get_alu1_input(i1)); + if (AN_CALC_REQUIRED) UML_SETc(block, COND_S, FLAGS_AN); + if (AZ_CALC_REQUIRED) UML_SETc(block, COND_Z, FLAGS_AZ); + if (AV_CALC_REQUIRED) UML_MOV(block, FLAGS_AV, 0); + if (AU_CALC_REQUIRED) UML_MOV(block, FLAGS_AU, 0); + break; + case 0x1c: // LSR generate_alumul_input(block, compiler, desc, i1, I0, false, false); UML_SHR(block, I0, I0, i2);