From 0822d1ee2b69289517fc722b730d7c5cecd7e2fd Mon Sep 17 00:00:00 2001 From: hap Date: Fri, 5 Apr 2019 01:18:03 +0200 Subject: [PATCH] fidel_eag68k: disable_interrupt_mixer for feagv5 (nw) --- src/devices/cpu/m68000/m68000.h | 4 ++++ src/mame/drivers/cps2.cpp | 2 +- src/mame/drivers/fidel_eag68k.cpp | 12 +++++++++--- 3 files changed, 14 insertions(+), 4 deletions(-) diff --git a/src/devices/cpu/m68000/m68000.h b/src/devices/cpu/m68000/m68000.h index 5dd032d28ea..8138b2a1450 100644 --- a/src/devices/cpu/m68000/m68000.h +++ b/src/devices/cpu/m68000/m68000.h @@ -35,6 +35,10 @@ constexpr int M68K_IRQ_5 = 5; constexpr int M68K_IRQ_6 = 6; constexpr int M68K_IRQ_7 = 7; +constexpr int M68K_IRQ_IPL0 = 0; +constexpr int M68K_IRQ_IPL1 = 1; +constexpr int M68K_IRQ_IPL2 = 2; + constexpr int M68K_SZ_LONG = 0; constexpr int M68K_SZ_BYTE = 1; constexpr int M68K_SZ_WORD = 2; diff --git a/src/mame/drivers/cps2.cpp b/src/mame/drivers/cps2.cpp index 605d14e4ab3..e26ae1aa7b8 100644 --- a/src/mame/drivers/cps2.cpp +++ b/src/mame/drivers/cps2.cpp @@ -657,7 +657,7 @@ Stephh's inputs notes (based on some tests on the "parent" set) : TIMER_DEVICE_CALLBACK_MEMBER(cps2_state::cps2_interrupt) { - /* direct irq line connection, irq1 is vblank, irq2 is some sort of scanline interrupt. */ + /* direct irq line connection, IPL1 is vblank, IPL2 is some sort of scanline interrupt. */ if (param == 0) m_scancalls = 0; diff --git a/src/mame/drivers/fidel_eag68k.cpp b/src/mame/drivers/fidel_eag68k.cpp index 6405d2fc4b1..b6cb60bb2c6 100644 --- a/src/mame/drivers/fidel_eag68k.cpp +++ b/src/mame/drivers/fidel_eag68k.cpp @@ -173,6 +173,7 @@ class eag_state : public fidelbase_state public: eag_state(const machine_config &mconfig, device_type type, const char *tag) : fidelbase_state(mconfig, type, tag), + m_maincpu(*this, "maincpu"), m_ram(*this, "ram") { } @@ -191,6 +192,7 @@ protected: void eag_base(machine_config &config); // devices/pointers + required_device m_maincpu; optional_device m_ram; // address maps @@ -519,12 +521,13 @@ void eag_state::eag_base(machine_config &config) { /* basic machine hardware */ M68000(config, m_maincpu, 16_MHz_XTAL); + m_maincpu->disable_interrupt_mixer(); m_maincpu->set_addrmap(AS_PROGRAM, &eag_state::eag_map); const attotime irq_period = attotime::from_hz(4.9152_MHz_XTAL/0x2000); // 4060 Q13, 600Hz - TIMER(config, m_irq_on).configure_periodic(FUNC(eag_state::irq_on), irq_period); + TIMER(config, m_irq_on).configure_periodic(FUNC(eag_state::irq_on), irq_period); m_irq_on->set_start_delay(irq_period - attotime::from_nsec(8250)); // active for 8.25us - TIMER(config, "irq_off").configure_periodic(FUNC(eag_state::irq_off), irq_period); + TIMER(config, "irq_off").configure_periodic(FUNC(eag_state::irq_off), irq_period); NVRAM(config, "nvram", nvram_device::DEFAULT_ALL_1); @@ -573,7 +576,7 @@ void eagv5_state::eagv5(machine_config &config) GENERIC_LATCH_8(config, m_mainlatch); GENERIC_LATCH_8(config, m_sublatch); - m_sublatch->data_pending_callback().set_inputline(m_maincpu, M68K_IRQ_1); // IPL0 + m_sublatch->data_pending_callback().set_inputline(m_maincpu, M68K_IRQ_IPL0); // gen_latch syncs on write, but this is still needed with tight cpu comms // (not that it locks up or anything, but it will calculate moves much slower if timing is off) @@ -586,6 +589,7 @@ void eag_state::eagv7(machine_config &config) /* basic machine hardware */ M68020(config.replace(), m_maincpu, 20_MHz_XTAL); // also seen with 25MHz XTAL + m_maincpu->disable_interrupt_mixer(); m_maincpu->set_addrmap(AS_PROGRAM, &eag_state::eagv7_map); } @@ -595,6 +599,7 @@ void eag_state::eagv9(machine_config &config) /* basic machine hardware */ M68030(config.replace(), m_maincpu, 32_MHz_XTAL/2); // also seen with 40MHz XTAL + m_maincpu->disable_interrupt_mixer(); m_maincpu->set_addrmap(AS_PROGRAM, &eag_state::eagv7_map); } @@ -604,6 +609,7 @@ void eag_state::eagv10(machine_config &config) /* basic machine hardware */ M68040(config.replace(), m_maincpu, 25_MHz_XTAL); + m_maincpu->disable_interrupt_mixer(); m_maincpu->set_addrmap(AS_PROGRAM, &eag_state::eagv10_map); }