summaryrefslogtreecommitdiffstatshomepage
path: root/src/devices/cpu/sm510/sm510op.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/devices/cpu/sm510/sm510op.cpp')
-rw-r--r--src/devices/cpu/sm510/sm510op.cpp21
1 files changed, 6 insertions, 15 deletions
diff --git a/src/devices/cpu/sm510/sm510op.cpp b/src/devices/cpu/sm510/sm510op.cpp
index 672209861aa..9c7aa24c85c 100644
--- a/src/devices/cpu/sm510/sm510op.cpp
+++ b/src/devices/cpu/sm510/sm510op.cpp
@@ -11,17 +11,13 @@
u8 sm510_base_device::ram_r()
{
- int blh = (m_sbl) ? 8 : 0; // from SBL (optional)
- int bmh = (m_sbm) ? (1 << (m_datawidth-1)) : 0; // from SBM
- u8 address = (bmh | blh | m_bm << 4 | m_bl) & m_datamask;
+ u8 address = (m_bmask | m_bm << 4 | m_bl) & m_datamask;
return m_data->read_byte(address) & 0xf;
}
void sm510_base_device::ram_w(u8 data)
{
- int blh = (m_sbl) ? 8 : 0; // from SBL (optional)
- int bmh = (m_sbm) ? (1 << (m_datawidth-1)) : 0; // from SBM
- u8 address = (bmh | blh | m_bm << 4 | m_bl) & m_datamask;
+ u8 address = (m_bmask | m_bm << 4 | m_bl) & m_datamask;
m_data->write_byte(address, data & 0xf);
}
@@ -70,11 +66,6 @@ void sm510_base_device::op_lbl()
m_bm = (m_param & m_datamask) >> 4;
}
-void sm510_base_device::op_sbl()
-{
- // SBL: set BL high bit for next opcode - handled in execute_one()
-}
-
void sm510_base_device::op_sbm()
{
// SBM: set BM high bit for next opcode - handled in execute_one()
@@ -229,8 +220,8 @@ void sm510_base_device::op_kta()
void sm510_base_device::op_atbp()
{
- // ATBP: output ACC to BP(internal LCD backplate signal)
- m_bp = m_acc & 1;
+ // ATBP: output ACC to BP LCD flag(s)
+ m_bp = m_acc;
}
void sm510_base_device::op_atx()
@@ -352,8 +343,8 @@ void sm510_base_device::op_tabl()
void sm510_base_device::op_tis()
{
// TIS: skip next if 1S(gamma flag) is clear, reset it after
- m_skip = !m_1s;
- m_1s = false;
+ m_skip = !m_gamma;
+ m_gamma = 0;
}
void sm510_base_device::op_tal()