diff options
-rw-r--r-- | src/emu/cpu/sm510/sm510.c | 4 | ||||
-rw-r--r-- | src/emu/cpu/sm510/sm510op.c | 5 |
2 files changed, 6 insertions, 3 deletions
diff --git a/src/emu/cpu/sm510/sm510.c b/src/emu/cpu/sm510/sm510.c index ec1fa85fd77..c428eb76e40 100644 --- a/src/emu/cpu/sm510/sm510.c +++ b/src/emu/cpu/sm510/sm510.c @@ -17,8 +17,8 @@ TODO: - proper support for LFSR program counter in debugger - callback for lcd screen as MAME bitmap (when needed) - - LCD bs pin blink mode via Y register - - LB opcode + - LCD bs pin blink mode via Y register (0.5s off, 0.5s on) + - LB/SBM is correct? - SM511 unknown opcodes */ diff --git a/src/emu/cpu/sm510/sm510op.c b/src/emu/cpu/sm510/sm510op.c index eb877b594c2..91dd26d1ccb 100644 --- a/src/emu/cpu/sm510/sm510op.c +++ b/src/emu/cpu/sm510/sm510op.c @@ -57,7 +57,10 @@ inline UINT8 sm510_base_device::bitmask(UINT16 param) void sm510_base_device::op_lb() { // LB x: load BM/BL with 4-bit immediate value (partial) - op_illegal(); + m_bm = (m_bm & 4) | (m_op & 3); + m_bl = m_op >> 2 & 3; + if (m_bl == 3) + m_bl |= 0xc; } void sm510_base_device::op_lbl() |