From ee236be2e92b4008da2282e7da0b3b23a05e054e Mon Sep 17 00:00:00 2001 From: David Haywood Date: Mon, 15 Aug 2016 18:00:38 +0100 Subject: [PATCH] maygay m1a, MCU bones, commuication not hooked up yet. --- src/mame/drivers/maygay1b.cpp | 56 +++++++++++++++++++++++++++++++++++ src/mame/drivers/maygay1b.hxx | 6 ++-- src/mame/includes/maygay1b.h | 10 ++++++- 3 files changed, 68 insertions(+), 4 deletions(-) diff --git a/src/mame/drivers/maygay1b.cpp b/src/mame/drivers/maygay1b.cpp index a1d6231a238..563be23547a 100644 --- a/src/mame/drivers/maygay1b.cpp +++ b/src/mame/drivers/maygay1b.cpp @@ -447,6 +447,53 @@ static ADDRESS_MAP_START( m1_memmap, AS_PROGRAM, 8, maygay1b_state ) ADDRESS_MAP_END + + +WRITE8_MEMBER(maygay1b_state::mcu_port0_w) +{ + logerror("%s: mcu_port0_w %02x\n",machine().describe_context(),data); +} + +WRITE8_MEMBER(maygay1b_state::mcu_port1_w) +{ + logerror("%s: mcu_port1_w %02x\n",machine().describe_context(),data); +} + +WRITE8_MEMBER(maygay1b_state::mcu_port2_w) +{ + logerror("%s: mcu_port2_w %02x\n",machine().describe_context(),data); +} + +WRITE8_MEMBER(maygay1b_state::mcu_port3_w) +{ + logerror("%s: mcu_port3_w %02x\n",machine().describe_context(),data); +} + + +READ8_MEMBER(maygay1b_state::mcu_port0_r) +{ + logerror("%s: mcu_port0_r\n", machine().describe_context()); + return rand(); +} + +READ8_MEMBER(maygay1b_state::mcu_port1_r) +{ + logerror("%s: mcu_port1_r\n", machine().describe_context()); + return rand(); +} + +static ADDRESS_MAP_START( maygay_mcu_map, AS_PROGRAM, 8, maygay1b_state ) + AM_RANGE(0x0000, 0x0fff) AM_ROM +ADDRESS_MAP_END + +static ADDRESS_MAP_START( maygay_mcu_io, AS_IO, 8, maygay1b_state ) + AM_RANGE(MCS51_PORT_P0, MCS51_PORT_P0) AM_READWRITE( mcu_port0_r, mcu_port0_w ) + AM_RANGE(MCS51_PORT_P1, MCS51_PORT_P1) AM_READWRITE( mcu_port1_r, mcu_port1_w ) + AM_RANGE(MCS51_PORT_P2, MCS51_PORT_P2) AM_WRITE( mcu_port2_w ) + AM_RANGE(MCS51_PORT_P3, MCS51_PORT_P3) AM_WRITE( mcu_port3_w ) +ADDRESS_MAP_END + + /************************************************* * * NEC uPD7759 handling (used as OKI replacement) @@ -600,6 +647,12 @@ MACHINE_CONFIG_START( maygay_m1, maygay1b_state ) MCFG_CPU_ADD("maincpu", M6809, M1_MASTER_CLOCK/2) MCFG_CPU_PROGRAM_MAP(m1_memmap) + MCFG_CPU_ADD("mcu", I80C51, 2000000) // EP840034.A-P-80C51AVW + MCFG_CPU_PROGRAM_MAP(maygay_mcu_map) + MCFG_CPU_IO_MAP(maygay_mcu_io) +// MCFG_MCS51_SERIAL_TX_CB(WRITE8(maygay1b_state, mcs51_tx_callback)) + + MCFG_MC68681_ADD("duart68681", M1_DUART_CLOCK) MCFG_MC68681_IRQ_CALLBACK(WRITELINE(maygay1b_state, duart_irq_handler)) MCFG_MC68681_INPORT_CALLBACK(READ8(maygay1b_state, m1_duart_r)) @@ -625,10 +678,13 @@ MACHINE_CONFIG_START( maygay_m1, maygay1b_state ) MCFG_SOUND_ROUTE(ALL_OUTPUTS, "rspeaker", 1.0) MCFG_TIMER_DRIVER_ADD_PERIODIC("nmitimer", maygay1b_state, maygay1b_nmitimer_callback, attotime::from_hz(75)) // freq? + MCFG_DEVICE_ADD("i8279", I8279, M1_MASTER_CLOCK/4) // unknown clock MCFG_I8279_OUT_SL_CB(WRITE8(maygay1b_state, scanlines_w)) // scan SL lines MCFG_I8279_OUT_DISP_CB(WRITE8(maygay1b_state, lamp_data_w)) // display A&B MCFG_I8279_IN_RL_CB(READ8(maygay1b_state, kbd_r)) // kbd RL lines + + // there is no 2nd u8279! MCFG_DEVICE_ADD("i8279_2", I8279, M1_MASTER_CLOCK/4) // unknown clock MCFG_I8279_OUT_DISP_CB(WRITE8(maygay1b_state, lamp_data_2_w)) // display A&B diff --git a/src/mame/drivers/maygay1b.hxx b/src/mame/drivers/maygay1b.hxx index 7fede8ddd29..80f234dbc59 100644 --- a/src/mame/drivers/maygay1b.hxx +++ b/src/mame/drivers/maygay1b.hxx @@ -3334,8 +3334,8 @@ GAME( 1994, m1luxorc ,m1luxor ,maygay_m1,maygay_m1, maygay1b_state,m1, ROT0, "G /* missing or different sound system? */ -ROM_START( m1cashc ) ROM_REGION( 0x10000, "maincpu", 0 ) ROM_LOAD( "cash classic sa1-082 5p.bin", 0x0000, 0x010000, CRC(42d68675) SHA1(ed191e03bc7b42ae1884657b4559588eeedbdf31) ) m1_cashc_sound ROM_END -ROM_START( m1cashca ) ROM_REGION( 0x10000, "maincpu", 0 ) ROM_LOAD( "cash classic 2p sa1-083.bin", 0x0000, 0x010000, CRC(36a45c0d) SHA1(51eb91e42297894ae575502903833e219ac5add9) ) m1_cashc_sound ROM_END +ROM_START( m1cashc ) ROM_REGION( 0x10000, "maincpu", 0 ) ROM_LOAD( "cash classic sa1-082 5p.bin", 0x0000, 0x010000, CRC(42d68675) SHA1(ed191e03bc7b42ae1884657b4559588eeedbdf31) ) m1_cashc_sound ROM_END_M1A_MCU +ROM_START( m1cashca ) ROM_REGION( 0x10000, "maincpu", 0 ) ROM_LOAD( "cash classic 2p sa1-083.bin", 0x0000, 0x010000, CRC(36a45c0d) SHA1(51eb91e42297894ae575502903833e219ac5add9) ) m1_cashc_sound ROM_END_M1A_MCU GAME( 1994, m1cashc ,0 ,maygay_m1,maygay_m1, maygay1b_state,m1, ROT0, "Maygay", "Cash Classic (Maygay) (M1A/B) (set 1)",GAME_FLAGS ) GAME( 1994, m1cashca ,m1cashc ,maygay_m1,maygay_m1, maygay1b_state,m1, ROT0, "Maygay", "Cash Classic (Maygay) (M1A/B) (set 2)",GAME_FLAGS ) @@ -3382,6 +3382,6 @@ ROM_START( m1atunk ) ROM_LOAD( "grm_pl_2.bin", 0x0000, 0x010000, CRC(a26a6345) SHA1(70ededa58b92d32e0968bb326d6579146c3bd6cb) ) ROM_REGION( 0x100000, "msm6376", ROMREGION_ERASE00 ) -ROM_END +ROM_END_M1A_MCU GAME( 19??, m1atunk ,0 ,maygay_m1,maygay_m1, maygay1b_state,m1, ROT0, "Avantime?", "Random Runner (Avantime?)",GAME_FLAGS ) diff --git a/src/mame/includes/maygay1b.h b/src/mame/includes/maygay1b.h index 2f789443830..f94ecd9b283 100644 --- a/src/mame/includes/maygay1b.h +++ b/src/mame/includes/maygay1b.h @@ -23,7 +23,7 @@ #include "sound/okim6376.h" #include "machine/nvram.h" #include "sound/upd7759.h" - +#include "cpu/mcs51/mcs51.h" #include "sound/okim6295.h" class maygay1b_state : public driver_device @@ -32,6 +32,7 @@ public: maygay1b_state(const machine_config &mconfig, device_type type, const char *tag) : driver_device(mconfig, type, tag), m_maincpu(*this, "maincpu"), + m_mcu(*this, "mcu"), m_vfd(*this, "vfd"), m_ay(*this, "aysnd"), m_msm6376(*this, "msm6376"), @@ -53,6 +54,7 @@ public: {} required_device m_maincpu; + required_device m_mcu; optional_device m_vfd; required_device m_ay; optional_device m_msm6376; @@ -118,6 +120,12 @@ public: DECLARE_WRITE8_MEMBER(nec_bank1_w); DECLARE_WRITE_LINE_MEMBER(duart_irq_handler); DECLARE_READ8_MEMBER(m1_duart_r); + DECLARE_WRITE8_MEMBER(mcu_port0_w); + DECLARE_WRITE8_MEMBER(mcu_port1_w); + DECLARE_WRITE8_MEMBER(mcu_port2_w); + DECLARE_WRITE8_MEMBER(mcu_port3_w); + DECLARE_READ8_MEMBER(mcu_port0_r); + DECLARE_READ8_MEMBER(mcu_port1_r); DECLARE_DRIVER_INIT(m1); DECLARE_DRIVER_INIT(m1common); DECLARE_DRIVER_INIT(m1nec);