mirror of
https://github.com/holub/mame
synced 2025-04-24 01:11:11 +03:00
bublbobl.cpp, kikikai.cpp: Eliminate set_input_line_vector
This commit is contained in:
parent
7b7303773b
commit
d5af76fd3c
@ -1004,6 +1004,8 @@ void bublbobl_state::bublbobl_nomcu(machine_config &config)
|
||||
void bublbobl_state::bublbobl(machine_config &config)
|
||||
{
|
||||
bublbobl_nomcu(config);
|
||||
m_maincpu->set_irq_acknowledge_callback(FUNC(bublbobl_state::mcram_vect_r));
|
||||
|
||||
M6801(config, m_mcu, XTAL(4'000'000)); // actually 6801U4 - xtal is 4MHz, divided by 4 internally
|
||||
m_mcu->set_addrmap(AS_PROGRAM, &bublbobl_state::mcu_map);
|
||||
|
||||
@ -1065,6 +1067,7 @@ MACHINE_RESET_MEMBER(bub68705_state, bub68705)
|
||||
void bub68705_state::bub68705(machine_config &config)
|
||||
{
|
||||
bublbobl_nomcu(config);
|
||||
m_maincpu->set_irq_acknowledge_callback(FUNC(bublbobl_state::mcram_vect_r));
|
||||
|
||||
/* basic machine hardware */
|
||||
M68705P3(config, m_mcu, XTAL(4'000'000)); // xtal is 4MHz, divided by 4 internally
|
||||
|
@ -637,6 +637,7 @@ void kikikai_state::kicknrun(machine_config& config)
|
||||
|
||||
// Not too sure IRQs are triggered by MCU..
|
||||
m_maincpu->set_vblank_int("screen", FUNC(kikikai_state::kikikai_interrupt));
|
||||
m_maincpu->set_irq_acknowledge_callback(FUNC(kikikai_state::mcram_vect_r));
|
||||
|
||||
M6801(config, m_mcu, XTAL(4'000'000)); // actually 6801U4 - xtal is 4MHz, divided by 4 internally
|
||||
m_mcu->set_addrmap(AS_PROGRAM, &kikikai_state::mcu_map);
|
||||
@ -656,12 +657,14 @@ void kikikai_simulation_state::kikikai(machine_config &config)
|
||||
|
||||
// IRQs should be triggered by the MCU, but we don't have it
|
||||
m_maincpu->set_vblank_int("screen", FUNC(kikikai_simulation_state::kikikai_interrupt));
|
||||
m_maincpu->set_irq_acknowledge_callback(FUNC(kikikai_simulation_state::mcram_vect_r));
|
||||
}
|
||||
|
||||
|
||||
void mexico86_state::mexico86_68705(machine_config& config)
|
||||
{
|
||||
base(config);
|
||||
m_maincpu->set_irq_acknowledge_callback(FUNC(mexico86_state::mcram_vect_r));
|
||||
|
||||
M68705P3(config, m_68705mcu, 4000000); /* xtal is 4MHz, divided by 4 internally */
|
||||
m_68705mcu->portc_r().set_ioport("IN0");
|
||||
|
@ -99,6 +99,7 @@ public:
|
||||
uint8_t tokiob_mcu_r();
|
||||
void bublbobl_soundcpu_reset_w(uint8_t data);
|
||||
uint8_t common_sound_semaphores_r();
|
||||
IRQ_CALLBACK_MEMBER(mcram_vect_r);
|
||||
uint8_t bublbobl_mcu_ddr1_r();
|
||||
void bublbobl_mcu_ddr1_w(uint8_t data);
|
||||
uint8_t bublbobl_mcu_ddr2_r();
|
||||
|
@ -41,6 +41,8 @@ protected:
|
||||
virtual void machine_start() override;
|
||||
virtual void machine_reset() override;
|
||||
|
||||
IRQ_CALLBACK_MEMBER(mcram_vect_r);
|
||||
|
||||
private:
|
||||
/* memory pointers */
|
||||
required_shared_ptr<u8> m_mainram;
|
||||
|
@ -153,6 +153,11 @@ uint8_t bublbobl_state::common_sound_semaphores_r()
|
||||
return ret;
|
||||
}
|
||||
|
||||
IRQ_CALLBACK_MEMBER(bublbobl_state::mcram_vect_r)
|
||||
{
|
||||
m_maincpu->set_input_line(INPUT_LINE_IRQ0, CLEAR_LINE);
|
||||
return m_mcu_sharedram[0];
|
||||
}
|
||||
|
||||
|
||||
/***************************************************************************
|
||||
@ -222,8 +227,7 @@ void bublbobl_state::bublbobl_mcu_port1_w(uint8_t data)
|
||||
if ((m_port1_out & 0x40) && (~data & 0x40))
|
||||
{
|
||||
// logerror("triggering IRQ on main CPU\n");
|
||||
m_maincpu->set_input_line_vector(0, m_mcu_sharedram[0]); // Z80
|
||||
m_maincpu->set_input_line(0, HOLD_LINE);
|
||||
m_maincpu->set_input_line(0, ASSERT_LINE);
|
||||
}
|
||||
|
||||
// bit 7: select read or write shared RAM
|
||||
@ -473,8 +477,7 @@ void bub68705_state::port_b_w(offs_t offset, uint8_t data, uint8_t mem_mask)
|
||||
/* hack to get random EXTEND letters (who is supposed to do this? 68705? PAL?) */
|
||||
m_mcu_sharedram[0x7c] = machine().rand() % 6;
|
||||
|
||||
m_maincpu->set_input_line_vector(0, m_mcu_sharedram[0]); // Z80
|
||||
m_maincpu->set_input_line(0, HOLD_LINE);
|
||||
m_maincpu->set_input_line(0, ASSERT_LINE);
|
||||
}
|
||||
|
||||
if (BIT(mem_mask, 6) && !BIT(data, 6) && BIT(m_port_b_out, 6))
|
||||
|
@ -187,8 +187,7 @@ void kikikai_simulation_state::mcu_simulate( )
|
||||
|
||||
INTERRUPT_GEN_MEMBER(kikikai_state::kikikai_interrupt)
|
||||
{
|
||||
device.execute().set_input_line_vector(0, m_mcu_sharedram[0]); // Z80
|
||||
device.execute().set_input_line(0, HOLD_LINE);
|
||||
device.execute().set_input_line(0, ASSERT_LINE);
|
||||
}
|
||||
|
||||
|
||||
@ -197,8 +196,14 @@ INTERRUPT_GEN_MEMBER(kikikai_simulation_state::kikikai_interrupt)
|
||||
if (m_kikikai_simulated_mcu_running)
|
||||
mcu_simulate();
|
||||
|
||||
device.execute().set_input_line_vector(0, m_mcu_sharedram[0]); // Z80
|
||||
device.execute().set_input_line(0, HOLD_LINE);
|
||||
device.execute().set_input_line(0, ASSERT_LINE);
|
||||
}
|
||||
|
||||
|
||||
IRQ_CALLBACK_MEMBER(kikikai_state::mcram_vect_r)
|
||||
{
|
||||
m_maincpu->set_input_line(INPUT_LINE_IRQ0, CLEAR_LINE);
|
||||
return m_mcu_sharedram[0];
|
||||
}
|
||||
|
||||
#if 0
|
||||
@ -323,8 +328,7 @@ void mexico86_state::mexico86_68705_port_b_w(offs_t offset, u8 data, u8 mem_mask
|
||||
|
||||
if (BIT(mem_mask, 5) && BIT(data, 5) && !BIT(m_port_b_out, 5))
|
||||
{
|
||||
m_maincpu->set_input_line_vector(0, m_mcu_sharedram[0]); // Z80
|
||||
m_maincpu->set_input_line(0, HOLD_LINE); // HOLD_LINE works better in Z80 interrupt mode 1.
|
||||
m_maincpu->set_input_line(0, ASSERT_LINE);
|
||||
m_68705mcu->set_input_line(M68705_IRQ_LINE, CLEAR_LINE);
|
||||
}
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user