summaryrefslogtreecommitdiffstatshomepage
path: root/src/devices/cpu/sm510/sm510op.cpp
diff options
context:
space:
mode:
author hap <happppp@users.noreply.github.com>2016-03-30 00:31:06 +0200
committer hap <happppp@users.noreply.github.com>2016-03-30 00:31:06 +0200
commit80615fa83e29d0fdb724cf1e49b3e66f8dd989c5 (patch)
tree954a07af9d0a9467e409c82f0fb8bab8317b9149 /src/devices/cpu/sm510/sm510op.cpp
parent742fa79792438d8ae35484faf826a73943468289 (diff)
SM511: small update to divider
Diffstat (limited to 'src/devices/cpu/sm510/sm510op.cpp')
-rw-r--r--src/devices/cpu/sm510/sm510op.cpp10
1 files changed, 8 insertions, 2 deletions
diff --git a/src/devices/cpu/sm510/sm510op.cpp b/src/devices/cpu/sm510/sm510op.cpp
index 3f0659bac16..05ba90522e4 100644
--- a/src/devices/cpu/sm510/sm510op.cpp
+++ b/src/devices/cpu/sm510/sm510op.cpp
@@ -450,10 +450,16 @@ void sm510_base_device::op_idiv()
m_div = 0;
}
+void sm510_base_device::op_dr()
+{
+ // DR: reset divider low 8 bits
+ m_div &= 0x7f;
+}
+
void sm510_base_device::op_dta()
{
- // DTA: transfer divider low bits to ACC
- m_acc = BITSWAP16(m_div,0,0,0,0, 0,0,0,0, 0,0,0,0, 7,8,9,10) & 0xf;
+ // DTA: transfer divider low 4 bits to ACC
+ m_acc = BITSWAP16(m_div,0,0,0,0, 0,0,0,0, 0,0,0,0, 14,13,12,11) & 0xf;
}
void sm510_base_device::op_illegal()