summaryrefslogtreecommitdiffstatshomepage
diff options
context:
space:
mode:
author AJR <ajrhacker@users.noreply.github.com>2018-01-12 21:38:10 -0500
committer AJR <ajrhacker@users.noreply.github.com>2018-01-12 21:38:10 -0500
commit21a36b689bdd9750491c0404e1191625b16ef4ac (patch)
tree86d33c41f7e8cc275faea644f9151f4d4231c179
parent95c2fab37d9a73dc31375b19773a45c03d486d65 (diff)
maygay1b.cpp: Add addressable latch (nw)
-rw-r--r--src/mame/drivers/maygay1b.cpp83
-rw-r--r--src/mame/includes/maygay1b.h8
2 files changed, 55 insertions, 36 deletions
diff --git a/src/mame/drivers/maygay1b.cpp b/src/mame/drivers/maygay1b.cpp
index 143de6d02df..0c176878fe0 100644
--- a/src/mame/drivers/maygay1b.cpp
+++ b/src/mame/drivers/maygay1b.cpp
@@ -73,6 +73,7 @@
******************************************************************************************/
#include "emu.h"
#include "includes/maygay1b.h"
+#include "machine/74259.h"
#include "speaker.h"
#include "maygay1b.lh"
@@ -395,42 +396,45 @@ WRITE8_MEMBER(maygay1b_state::m1_meter_w)
}
}
-WRITE8_MEMBER(maygay1b_state::m1_latch_w)
+WRITE_LINE_MEMBER(maygay1b_state::ramen_w)
{
- switch ( offset )
+ m_RAMEN = state;
+}
+
+WRITE_LINE_MEMBER(maygay1b_state::alarmen_w)
+{
+ m_ALARMEN = state;
+}
+
+WRITE_LINE_MEMBER(maygay1b_state::nmien_w)
+{
+ if (m_NMIENABLE == 0 && state)
{
- case 0: // m_RAMEN
- m_RAMEN = (data & 1);
- break;
- case 1: // AlarmEn
- m_ALARMEN = (data & 1);
- break;
- case 2: // Enable
- {
- if ( m_NMIENABLE == 0 && ( data & 1 ))
- {
- m_NMIENABLE = (data & 1);
- cpu0_nmi();
- }
- m_NMIENABLE = (data & 1);
- }
- break;
- case 3: // RTS
- {
- }
- break;
- case 4: // PSURelay
- m_PSUrelay = (data & 1);
- break;
- case 5: // WDog
- m_WDOG = (data & 1);
- break;
- case 6: // Srsel
- // this is the ROM banking?
- printf("rom bank %02x\n",data);
- m_bank1->set_entry(data & 1);
- break;
+ m_NMIENABLE = state;
+ cpu0_nmi();
}
+ m_NMIENABLE = state;
+}
+
+WRITE_LINE_MEMBER(maygay1b_state::rts_w)
+{
+}
+
+WRITE_LINE_MEMBER(maygay1b_state::psurelay_w)
+{
+ m_PSUrelay = state;
+}
+
+WRITE_LINE_MEMBER(maygay1b_state::wdog_w)
+{
+ m_WDOG = state;
+}
+
+WRITE_LINE_MEMBER(maygay1b_state::srsel_w)
+{
+ // this is the ROM banking?
+ logerror("rom bank %02x\n", state);
+ m_bank1->set_entry(state);
}
WRITE8_MEMBER(maygay1b_state::latch_ch2_w)
@@ -500,7 +504,7 @@ static ADDRESS_MAP_START( m1_memmap, AS_PROGRAM, 8, maygay1b_state )
AM_RANGE(0x20A0, 0x20A3) AM_DEVWRITE("pia", pia6821_device, write)
AM_RANGE(0x20A0, 0x20A3) AM_DEVREAD("pia", pia6821_device, read)
- AM_RANGE(0x20C0, 0x20C7) AM_WRITE(m1_latch_w)
+ AM_RANGE(0x20C0, 0x20C7) AM_DEVWRITE("mainlatch", hc259_device, write_d0)
AM_RANGE(0x2400, 0x2401) AM_DEVWRITE("ymsnd", ym2413_device, write)
AM_RANGE(0x2404, 0x2405) AM_READ(latch_st_lo)
@@ -585,7 +589,7 @@ static ADDRESS_MAP_START( m1_nec_memmap, AS_PROGRAM, 8, maygay1b_state )
AM_RANGE(0x20A0, 0x20A3) AM_DEVWRITE("pia", pia6821_device, write)
AM_RANGE(0x20A0, 0x20A3) AM_DEVREAD("pia", pia6821_device, read)
- AM_RANGE(0x20C0, 0x20C7) AM_WRITE(m1_latch_w)
+ AM_RANGE(0x20C0, 0x20C7) AM_DEVWRITE("mainlatch", hc259_device, write_d0)
AM_RANGE(0x2400, 0x2401) AM_DEVWRITE("ymsnd", ym2413_device, write)
AM_RANGE(0x2404, 0x2405) AM_WRITE(nec_bank0_w)
@@ -784,6 +788,15 @@ MACHINE_CONFIG_START( maygay_m1 )
MCFG_PIA_WRITEPA_HANDLER(WRITE8(maygay1b_state, m1_pia_porta_w))
MCFG_PIA_WRITEPB_HANDLER(WRITE8(maygay1b_state, m1_pia_portb_w))
+ MCFG_DEVICE_ADD("mainlatch", HC259, 0) // U29
+ MCFG_ADDRESSABLE_LATCH_Q0_OUT_CB(WRITELINE(maygay1b_state, ramen_w)) // m_RAMEN
+ MCFG_ADDRESSABLE_LATCH_Q1_OUT_CB(WRITELINE(maygay1b_state, alarmen_w)) // AlarmEn
+ MCFG_ADDRESSABLE_LATCH_Q2_OUT_CB(WRITELINE(maygay1b_state, nmien_w)) // Enable
+ MCFG_ADDRESSABLE_LATCH_Q3_OUT_CB(WRITELINE(maygay1b_state, rts_w)) // RTS
+ MCFG_ADDRESSABLE_LATCH_Q4_OUT_CB(WRITELINE(maygay1b_state, psurelay_w)) // PSURelay
+ MCFG_ADDRESSABLE_LATCH_Q5_OUT_CB(WRITELINE(maygay1b_state, wdog_w)) // WDog
+ MCFG_ADDRESSABLE_LATCH_Q6_OUT_CB(WRITELINE(maygay1b_state, srsel_w)) // Srsel
+
MCFG_S16LF01_ADD("vfd",0)
MCFG_SPEAKER_STANDARD_STEREO("lspeaker", "rspeaker")
MCFG_SOUND_ADD("aysnd", YM2149, M1_MASTER_CLOCK)
diff --git a/src/mame/includes/maygay1b.h b/src/mame/includes/maygay1b.h
index bb6cacbd912..4dd2ae4f0fc 100644
--- a/src/mame/includes/maygay1b.h
+++ b/src/mame/includes/maygay1b.h
@@ -104,7 +104,13 @@ public:
DECLARE_WRITE8_MEMBER(reel12_w);
DECLARE_WRITE8_MEMBER(reel34_w);
DECLARE_WRITE8_MEMBER(reel56_w);
- DECLARE_WRITE8_MEMBER(m1_latch_w);
+ DECLARE_WRITE_LINE_MEMBER(ramen_w);
+ DECLARE_WRITE_LINE_MEMBER(alarmen_w);
+ DECLARE_WRITE_LINE_MEMBER(nmien_w);
+ DECLARE_WRITE_LINE_MEMBER(rts_w);
+ DECLARE_WRITE_LINE_MEMBER(psurelay_w);
+ DECLARE_WRITE_LINE_MEMBER(wdog_w);
+ DECLARE_WRITE_LINE_MEMBER(srsel_w);
DECLARE_WRITE8_MEMBER(latch_ch2_w);
DECLARE_READ8_MEMBER(latch_st_hi);
DECLARE_READ8_MEMBER(latch_st_lo);