From 8a607beafd9945eedc647f88b14adcc37813dfa5 Mon Sep 17 00:00:00 2001 From: hap Date: Mon, 21 Mar 2022 12:39:08 +0100 Subject: b5000: add assert to multistep opcodes --- src/devices/cpu/b5000/b5000op.cpp | 11 ++++++++++- src/devices/cpu/b5000/b6100.cpp | 2 +- src/mame/drivers/hh_b5000.cpp | 6 +++--- 3 files changed, 14 insertions(+), 5 deletions(-) diff --git a/src/devices/cpu/b5000/b5000op.cpp b/src/devices/cpu/b5000/b5000op.cpp index 656061ea7bd..257a716eed9 100644 --- a/src/devices/cpu/b5000/b5000op.cpp +++ b/src/devices/cpu/b5000/b5000op.cpp @@ -28,7 +28,7 @@ void b5000_cpu_device::set_bu(u8 bu) { m_bu = bu & 3; - // changing from 0 to non-0 or vice versa delays RAM address modification + // changing to or from 0 delays RAM address modification if ((m_bu && !m_prev_bu) || (!m_bu && m_prev_bu)) m_bu_delay = true; } @@ -54,6 +54,8 @@ void b5000_cpu_device::op_tl() void b5000_cpu_device::op_tra() { + assert(m_tra_step > 0); + // TRA 0/1,x: call/jump to x (multi step) switch (m_tra_step) { @@ -90,10 +92,13 @@ void b5000_cpu_device::op_tra() void b5000_cpu_device::op_ret() { + assert(m_ret_step > 0); + // RET: return from subroutine (multi step) switch (m_ret_step) { // step 1: skip next opcode + // a TL after RET will return to the page specified by TL case 1: m_skip = true; break; @@ -261,6 +266,8 @@ void b5000_cpu_device::op_kseg() void b5000_cpu_device::op_atbz() { + assert(m_atbz_step > 0); + // ATBZ (aka ATB on B5xxx): ATB + load strobe (multi step) switch (m_atbz_step) { @@ -295,6 +302,8 @@ void b5000_cpu_device::op_tkb() void b5000_cpu_device::op_tkbs() { + assert(m_tkbs_step > 0); + // TKBS: TKB + load segments (multi step) switch (m_tkbs_step) { diff --git a/src/devices/cpu/b5000/b6100.cpp b/src/devices/cpu/b5000/b6100.cpp index 879026d9061..87d4b51822c 100644 --- a/src/devices/cpu/b5000/b6100.cpp +++ b/src/devices/cpu/b5000/b6100.cpp @@ -53,7 +53,7 @@ u16 b6100_cpu_device::decode_digit(u8 data) { static u16 lut_segs[0x10] = { - // 0-9 same as B5000 + // 0-9 same as B6000 0x3f, 0x06, 0x5b, 0x4f, 0x66, 0x6d, 0x7d, 0x07, 0x7f, 0x6f, // EFG, BCG, none, SEG8, SEG9, SEG10 diff --git a/src/mame/drivers/hh_b5000.cpp b/src/mame/drivers/hh_b5000.cpp index 08b1c61f591..2af5af20932 100644 --- a/src/mame/drivers/hh_b5000.cpp +++ b/src/mame/drivers/hh_b5000.cpp @@ -195,7 +195,7 @@ ROM_END /*************************************************************************** Mattel Missile Attack / Battlestar Galactica: Space Alert - * B6000 MCU (label B6001, die label B6001) + * B6000 MCU (label B6001CA/EA, die label B6001) * 2-digit 7seg display, 21 other leds, 1-bit sound The initial release was titled Missile Attack, it didn't sell well (Mattel @@ -270,7 +270,7 @@ void misatk_state::misatk(machine_config &config) ROM_START( misatk ) ROM_REGION( 0x200, "maincpu", 0 ) - ROM_LOAD( "b6001", 0x000, 0x200, CRC(56564b79) SHA1(6f33f57ea312cb2018fb59f72eaff3a9642e74a2) ) + ROM_LOAD( "b6001ea", 0x000, 0x200, CRC(56564b79) SHA1(6f33f57ea312cb2018fb59f72eaff3a9642e74a2) ) ROM_END @@ -641,7 +641,7 @@ ROM_END // YEAR NAME PARENT CMP MACHINE INPUT CLASS INIT COMPANY, FULLNAME, FLAGS CONS( 1976, autorace, 0, 0, autorace, autorace, autorace_state, empty_init, "Mattel Electronics", "Auto Race", MACHINE_SUPPORTS_SAVE | MACHINE_NOT_WORKING ) -CONS( 1976, misatk, 0, 0, misatk, misatk, misatk_state, empty_init, "Mattel Electronics", "Missile Attack (Mattel)", MACHINE_SUPPORTS_SAVE | MACHINE_NOT_WORKING ) +CONS( 1977, misatk, 0, 0, misatk, misatk, misatk_state, empty_init, "Mattel Electronics", "Missile Attack (Mattel)", MACHINE_SUPPORTS_SAVE | MACHINE_NOT_WORKING ) CONS( 1977, mfootb, 0, 0, mfootb, mfootb, mfootb_state, empty_init, "Mattel Electronics", "Football (Mattel)", MACHINE_SUPPORTS_SAVE | MACHINE_NOT_WORKING ) CONS( 1978, mbaseb, 0, 0, mbaseb, mbaseb, mbaseb_state, empty_init, "Mattel Electronics", "Baseball (Mattel)", MACHINE_SUPPORTS_SAVE | MACHINE_NOT_WORKING ) CONS( 1980, gravity, 0, 0, gravity, gravity, gravity_state, empty_init, "Mattel Electronics", "Gravity (Mattel)", MACHINE_SUPPORTS_SAVE | MACHINE_NOT_WORKING ) -- cgit v1.2.3