summaryrefslogtreecommitdiffstatshomepage
path: root/src/devices/cpu/mb86233
diff options
context:
space:
mode:
author Olivier Galibert <galibert@pobox.com>2018-04-05 21:26:54 +0200
committer Olivier Galibert <galibert@pobox.com>2018-04-05 21:27:18 +0200
commitf65019462c11c6cc6a527db749f70fbf4ca1c889 (patch)
treef3603ff962519ca0074f6e5237e8166541b76e94 /src/devices/cpu/mb86233
parent26389b2bed4398d142fc8246000708c89b440d7f (diff)
Add notd, used by vf2 collision (nw)
Diffstat (limited to 'src/devices/cpu/mb86233')
-rw-r--r--src/devices/cpu/mb86233/mb86233.cpp18
-rw-r--r--src/devices/cpu/mb86233/mb86233d.cpp2
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;