From f65019462c11c6cc6a527db749f70fbf4ca1c889 Mon Sep 17 00:00:00 2001 From: Olivier Galibert Date: Thu, 5 Apr 2018 21:26:54 +0200 Subject: [PATCH] Add notd, used by vf2 collision (nw) --- src/devices/cpu/mb86233/mb86233.cpp | 18 +++++++++++++----- src/devices/cpu/mb86233/mb86233d.cpp | 2 +- 2 files changed, 14 insertions(+), 6 deletions(-) diff --git a/src/devices/cpu/mb86233/mb86233.cpp b/src/devices/cpu/mb86233/mb86233.cpp index 8808bf50e84..739cdf5a766 100644 --- a/src/devices/cpu/mb86233/mb86233.cpp +++ b/src/devices/cpu/mb86233/mb86233.cpp @@ -307,6 +307,14 @@ void mb86233_device::alu_pre(u32 alu) break; } + case 0x04: { + // notd + m_alu_stmask = F_ZRD|F_SGD|F_CPD|F_OVD|F_DVZD; + m_alu_r1 = ~m_d; + m_alu_stset = m_alu_r1 ? m_alu_r1 & 0x80000000 ? F_SGD : 0 : F_ZRD; + break; + } + case 0x05: { // fcpd m_alu_stmask = F_ZRD|F_SGD|F_CPD|F_OVD|F_DVZD; @@ -504,11 +512,11 @@ void mb86233_device::alu_post(u32 alu) alu_update_st(); break; - case 0x01: case 0x02: case 0x03: case 0x06: - case 0x07: case 0x0b: case 0x0c: case 0x0e: - case 0x0f: case 0x10: case 0x11: case 0x13: - case 0x14: case 0x16: case 0x17: case 0x18: - case 0x19: case 0x1a: case 0x1b: + case 0x01: case 0x02: case 0x03: case 0x04: + case 0x06: case 0x07: case 0x0b: case 0x0c: + case 0x0e: case 0x0f: case 0x10: case 0x11: + case 0x13: case 0x14: case 0x16: case 0x17: + case 0x18: case 0x19: case 0x1a: case 0x1b: // d update m_d = m_alu_r1; alu_update_st(); diff --git a/src/devices/cpu/mb86233/mb86233d.cpp b/src/devices/cpu/mb86233/mb86233d.cpp index a12bd4e4d8b..6fde2449449 100644 --- a/src/devices/cpu/mb86233/mb86233d.cpp +++ b/src/devices/cpu/mb86233/mb86233d.cpp @@ -222,7 +222,7 @@ std::string mb86233_disassembler::alu0_func(u32 alu) case 0x01: util::stream_format(stream, "andd"); break; case 0x02: util::stream_format(stream, "orad"); break; case 0x03: util::stream_format(stream, "eord"); break; - // 04 + case 0x04: util::stream_format(stream, "notd"); break; case 0x05: util::stream_format(stream, "fcpd"); break; case 0x06: util::stream_format(stream, "fadd"); break; case 0x07: util::stream_format(stream, "fsbd"); break;