From affef0120b789aff9a4707bd655bdf111b409f57 Mon Sep 17 00:00:00 2001 From: AJR Date: Sat, 9 Sep 2023 15:29:50 -0400 Subject: maygayv1.cpp: Use addressable latch device --- src/mame/maygay/maygayv1.cpp | 19 +++++++++---------- 1 file changed, 9 insertions(+), 10 deletions(-) diff --git a/src/mame/maygay/maygayv1.cpp b/src/mame/maygay/maygayv1.cpp index 335cbec5aef..8a62d3e0b99 100644 --- a/src/mame/maygay/maygayv1.cpp +++ b/src/mame/maygay/maygayv1.cpp @@ -133,6 +133,7 @@ Find lamps/reels after UPD changes. #include "cpu/m68000/m68000.h" #include "cpu/mcs51/mcs51.h" #include "machine/6821pia.h" +#include "machine/74259.h" #include "machine/i8279.h" #include "machine/mc68681.h" #include "machine/nvram.h" @@ -231,9 +232,8 @@ protected: private: void i82716_w(offs_t offset, uint16_t data, uint16_t mem_mask = ~0); uint16_t i82716_r(offs_t offset); - void write_odd(uint16_t data); uint16_t read_odd(); - void vsync_int_ctrl(uint16_t data); + void vsync_int_ctrl(int state); uint8_t b_read(); void b_writ(uint8_t data); void strobe_w(uint8_t data); @@ -507,10 +507,6 @@ void maygayv1_state::screen_vblank_maygayv1(int state) -void maygayv1_state::write_odd(uint16_t data) -{ -} - //;860008 is a latch of some sort uint16_t maygayv1_state::read_odd() { @@ -552,9 +548,9 @@ uint8_t maygayv1_state::kbd_r() return m_kbd_ports[m_lamp_strobe & 0x07]->read(); } -void maygayv1_state::vsync_int_ctrl(uint16_t data) +void maygayv1_state::vsync_int_ctrl(int state) { - m_vsync_latch_preset = data & 0x0100; + m_vsync_latch_preset = state; // Active low if (!(m_vsync_latch_preset)) @@ -568,8 +564,8 @@ void maygayv1_state::main_map(address_map &map) map(0x100000, 0x17ffff).rom().region("maincpu", 0x80000); map(0x800000, 0x800003).w("ymsnd", FUNC(ym2413_device::write)).umask16(0xff00); map(0x820000, 0x820003).rw("i8279", FUNC(i8279_device::read), FUNC(i8279_device::write)).umask16(0x00ff); - map(0x860000, 0x86000d).rw(FUNC(maygayv1_state::read_odd), FUNC(maygayv1_state::write_odd)); - map(0x86000e, 0x86000f).w(FUNC(maygayv1_state::vsync_int_ctrl)); + map(0x860000, 0x86000d).r(FUNC(maygayv1_state::read_odd)); + map(0x860000, 0x86000f).w("outlatch", FUNC(hc259_device::write_d0)).umask16(0xff00); map(0x880000, 0x89ffff).rw(FUNC(maygayv1_state::i82716_r), FUNC(maygayv1_state::i82716_w)); map(0x8a0000, 0x8a001f).rw(m_duart68681, FUNC(mc68681_device::read), FUNC(mc68681_device::write)).umask16(0x00ff); map(0x8c0000, 0x8c000f).r("pia", FUNC(pia6821_device::read)).umask16(0x00ff); @@ -848,6 +844,9 @@ void maygayv1_state::maygayv1(machine_config &config) m_maincpu->set_addrmap(AS_PROGRAM, &maygayv1_state::main_map); m_maincpu->set_addrmap(m68000_base_device::AS_CPU_SPACE, &maygayv1_state::cpu_space_map); + hc259_device &outlatch(HC259(config, "outlatch")); + outlatch.q_out_cb<7>().set(FUNC(maygayv1_state::vsync_int_ctrl)); + I8052(config, m_soundcpu, SOUND_CLOCK); m_soundcpu->port_in_cb<1>().set(FUNC(maygayv1_state::sound_p1_r)); m_soundcpu->port_out_cb<1>().set(FUNC(maygayv1_state::sound_p1_w)); -- cgit v1.2.3