b5000: add assert to multistep opcodes

This commit is contained in:
hap 2022-03-21 12:39:08 +01:00
parent d931fa9bde
commit 8a607beafd
3 changed files with 14 additions and 5 deletions

View File

@ -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)
{

View File

@ -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

View File

@ -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 )