diff options
Diffstat (limited to 'src')
-rw-r--r-- | src/mame/misc/flower.cpp | 34 |
1 files changed, 14 insertions, 20 deletions
diff --git a/src/mame/misc/flower.cpp b/src/mame/misc/flower.cpp index 06244671fd5..836d16c29df 100644 --- a/src/mame/misc/flower.cpp +++ b/src/mame/misc/flower.cpp @@ -5,7 +5,7 @@ Flower (c) 1986 Clarue (licensed to Komax/Sega) driver by Angelo Salese, - original "wiped off due of not anymore licenseable" driver by insideoutboy. + original "wiped off due of not anymore licensable" driver by insideoutboy. TODO: - priority might be wrong in some places (title screen stars around the @@ -30,7 +30,7 @@ There is a PCB picture that shows two stickers, the first says FLOWER CHIP PLACEMENT XTAL: 18.4320 MHz -USES THREE Z80A CPU'S +USES THREE Z80A (or D780C-1) CPU'S CHIP # POSITION TYPE ------------------------ @@ -130,8 +130,8 @@ private: void bgvram_w(offs_t offset, u8 data); void fgvram_w(offs_t offset, u8 data); void txvram_w(offs_t offset, u8 data); - void master_irq_enable_w(int state); - void slave_irq_enable_w(int state); + void master_irq_ack_w(int state); + void slave_irq_ack_w(int state); void vblank_irq_w(int state); TILE_GET_INFO_MEMBER(get_tx_tile_info); TILE_GET_INFO_MEMBER(get_bg_tile_info); @@ -165,8 +165,6 @@ private: void draw_sprites(bitmap_ind16 &bitmap,const rectangle &cliprect); - bool m_master_irq_enable = false; - bool m_slave_irq_enable = false; bool m_audio_nmi_enable = false; bool m_flip_screen = false; tilemap_t *m_bg_tilemap = nullptr; @@ -219,8 +217,6 @@ void flower_state::video_start() m_fg_tilemap->set_transparent_pen(15); m_tx_tilemap->set_transparent_pen(3); - save_item(NAME(m_master_irq_enable)); - save_item(NAME(m_slave_irq_enable)); save_item(NAME(m_flip_screen)); m_bg_tilemap->set_scrolldx(16, 0); @@ -493,39 +489,37 @@ void flower_state::machine_reset() m_audio_nmi_enable = false; } -void flower_state::master_irq_enable_w(int state) +void flower_state::master_irq_ack_w(int state) { - m_master_irq_enable = state; if (!state) m_mastercpu->set_input_line(0, CLEAR_LINE); } -void flower_state::slave_irq_enable_w(int state) +void flower_state::slave_irq_ack_w(int state) { - m_slave_irq_enable = state; if (!state) m_slavecpu->set_input_line(0, CLEAR_LINE); } void flower_state::vblank_irq_w(int state) { - if (state && m_master_irq_enable) + if (state) + { m_mastercpu->set_input_line(0, ASSERT_LINE); - - if (state && m_slave_irq_enable) m_slavecpu->set_input_line(0, ASSERT_LINE); + } } void flower_state::flower(machine_config &config) { - Z80(config, m_mastercpu, MASTER_CLOCK / 4); // divider unknown + Z80(config, m_mastercpu, MASTER_CLOCK / 6); // divider unknown m_mastercpu->set_addrmap(AS_PROGRAM, &flower_state::shared_map); - Z80(config, m_slavecpu, MASTER_CLOCK / 4); // divider unknown + Z80(config, m_slavecpu, MASTER_CLOCK / 6); // divider unknown m_slavecpu->set_addrmap(AS_PROGRAM, &flower_state::shared_map); - Z80(config, m_audiocpu, MASTER_CLOCK / 4); // divider unknown + Z80(config, m_audiocpu, MASTER_CLOCK / 6); // divider unknown m_audiocpu->set_addrmap(AS_PROGRAM, &flower_state::audio_map); m_audiocpu->set_periodic_int(FUNC(flower_state::irq0_line_hold), attotime::from_hz(90)); @@ -534,8 +528,8 @@ void flower_state::flower(machine_config &config) ls259_device &outlatch(LS259(config, "outlatch")); // M74LS259P @ 11K outlatch.q_out_cb<0>().set_nop(); outlatch.q_out_cb<1>().set(FUNC(flower_state::flipscreen_w)); - outlatch.q_out_cb<2>().set(FUNC(flower_state::master_irq_enable_w)); - outlatch.q_out_cb<3>().set(FUNC(flower_state::slave_irq_enable_w)); + outlatch.q_out_cb<2>().set(FUNC(flower_state::master_irq_ack_w)); + outlatch.q_out_cb<3>().set(FUNC(flower_state::slave_irq_ack_w)); outlatch.q_out_cb<4>().set(FUNC(flower_state::coin_counter_w)); outlatch.q_out_cb<5>().set_nop(); |