summaryrefslogtreecommitdiffstatshomepage
path: root/src/mame/drivers/eva.cpp
diff options
context:
space:
mode:
author hap <happppp@users.noreply.github.com>2017-05-31 20:53:14 +0200
committer hap <happppp@users.noreply.github.com>2017-05-31 20:53:37 +0200
commit92eb66d4a620817c6acfd4efd7f05b0fa8080ef4 (patch)
treed8db0187d7ae94b506815001b70d23ff4dcf659e /src/mame/drivers/eva.cpp
parent8b8f2db8c43fdc938f2d3e27e12a03fc86e91b63 (diff)
New NOT_WORKING clone added
------- Chrysler Electronic Voice Alert (24-function) [hap, Sean Riddle, David Viens]
Diffstat (limited to 'src/mame/drivers/eva.cpp')
-rw-r--r--src/mame/drivers/eva.cpp78
1 files changed, 72 insertions, 6 deletions
diff --git a/src/mame/drivers/eva.cpp b/src/mame/drivers/eva.cpp
index 0e50c4a47ed..900cc0885a9 100644
--- a/src/mame/drivers/eva.cpp
+++ b/src/mame/drivers/eva.cpp
@@ -11,16 +11,18 @@
- 2 Nat.Semi. 20-pin SDIP, I/O expanders?
24-function board "EVA-24"
- - COP400 family? MCU
- - TMS5110A, TMS6100 CM63002 (have dump)
+ - COP420 MCU (custom label)
+ - TMS5110A, TMS6100 CM63002
+ - VFD panel
TODO:
- - add sensors
- - add EVA-24 (need MCU dump)
+ - add eva11/eva24 sensors
+ - add eva24 VFD
***************************************************************************/
#include "emu.h"
+#include "cpu/cop400/cop400.h"
#include "cpu/tms1000/tms1000.h"
#include "machine/tms6100.h"
#include "sound/tms5110.h"
@@ -42,6 +44,13 @@ public:
required_device<tms5110_device> m_tms5100;
required_device<tms6100_device> m_tms6100;
+ // EVA-24
+ DECLARE_READ8_MEMBER(eva24_read_g);
+ DECLARE_WRITE8_MEMBER(eva24_write_g);
+ DECLARE_WRITE8_MEMBER(eva24_write_d);
+
+ u8 m_g;
+
// EVA-11
DECLARE_READ8_MEMBER(eva11_read_k);
DECLARE_WRITE16_MEMBER(eva11_write_o);
@@ -57,6 +66,11 @@ protected:
void eva_state::machine_start()
{
+ // zerofill
+ m_g = 0;
+
+ // register for savestates
+ save_item(NAME(m_g));
}
void eva_state::machine_reset()
@@ -71,6 +85,29 @@ void eva_state::machine_reset()
***************************************************************************/
+// EVA-24
+
+WRITE8_MEMBER(eva_state::eva24_write_g)
+{
+ // G3: TMS5100 PDC pin
+ m_tms5100->pdc_w(data >> 3 & 1);
+ m_g = data;
+}
+
+READ8_MEMBER(eva_state::eva24_read_g)
+{
+ return m_g;
+}
+
+WRITE8_MEMBER(eva_state::eva24_write_d)
+{
+ // D3210: TMS5100 CTL8421
+ m_tms5100->ctl_w(space, 0, data & 0xf);
+}
+
+
+// EVA-11
+
WRITE16_MEMBER(eva_state::eva11_write_r)
{
// R7: TMS5100 PDC pin
@@ -101,6 +138,9 @@ READ8_MEMBER(eva_state::eva11_read_k)
***************************************************************************/
+static INPUT_PORTS_START( eva24 )
+INPUT_PORTS_END
+
static INPUT_PORTS_START( eva11 )
INPUT_PORTS_END
@@ -123,6 +163,23 @@ static MACHINE_CONFIG_START( tms5110_route )
MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.5)
MACHINE_CONFIG_END
+static MACHINE_CONFIG_START( eva24 )
+
+ /* basic machine hardware */
+ MCFG_CPU_ADD("maincpu", COP420, XTAL_640kHz/2) // guessed
+ MCFG_COP400_CONFIG(COP400_CKI_DIVISOR_4, COP400_CKO_OSCILLATOR_OUTPUT, false) // guessed
+ MCFG_COP400_WRITE_D_CB(WRITE8(eva_state, eva24_write_d))
+ MCFG_COP400_WRITE_G_CB(WRITE8(eva_state, eva24_write_g))
+ MCFG_COP400_READ_G_CB(READ8(eva_state, eva24_read_g))
+
+ /* sound hardware */
+ MCFG_DEVICE_ADD("tms6100", TMS6100, XTAL_640kHz/4)
+
+ MCFG_SPEAKER_STANDARD_MONO("mono")
+ MCFG_SOUND_ADD("tms5100", TMS5110A, XTAL_640kHz)
+ MCFG_FRAGMENT_ADD(tms5110_route)
+MACHINE_CONFIG_END
+
static MACHINE_CONFIG_START( eva11 )
/* basic machine hardware */
@@ -147,6 +204,14 @@ MACHINE_CONFIG_END
***************************************************************************/
+ROM_START( eva24 )
+ ROM_REGION( 0x0400, "maincpu", 0 )
+ ROM_LOAD( "4232345", 0x0000, 0x0400, CRC(0326c2fe) SHA1(c4c73badee68f682871b42ba4f5ca115cd68fb8a) )
+
+ ROM_REGION( 0x4000, "tms6100", 0 )
+ ROM_LOAD( "cm63002.vsm", 0x0000, 0x4000, CRC(cb63c807) SHA1(df7323eebcd2a8a5401c2e0addbbabb700182302) )
+ROM_END
+
ROM_START( eva11 )
ROM_REGION( 0x0400, "maincpu", 0 )
ROM_LOAD( "32045b", 0x0000, 0x0400, CRC(eea36ebe) SHA1(094755b60965654ddc3e57cbd69f4749abd3b526) )
@@ -156,11 +221,12 @@ ROM_START( eva11 )
ROM_REGION( 365, "maincpu:opla", 0 )
ROM_LOAD( "tms1000_eva11_output.pla", 0, 365, CRC(f0f36970) SHA1(a6ad1f5e804ac98e5e1a1d07466b3db3a8d6c256) )
- ROM_REGION( 0x1000, "tms6100", ROMREGION_ERASEFF )
+ ROM_REGION( 0x1000, "tms6100", 0 )
ROM_LOAD( "cm73002.vsm", 0x0000, 0x1000, CRC(d5340bf8) SHA1(81195e8f870275d39a1abe1c8e2a6afdfdb15725) )
ROM_END
// YEAR NAME PARENT CMP MACHINE INPUT STATE INIT COMPANY, FULLNAME, FLAGS
-SYST( 1983, eva11, 0, 0, eva11, eva11, eva_state, 0, "Chrysler", "Electronic Voice Alert (11-function)", MACHINE_SUPPORTS_SAVE | MACHINE_IMPERFECT_SOUND | MACHINE_NOT_WORKING )
+SYST( 1984, eva24, 0, 0, eva24, eva24, eva_state, 0, "Chrysler", "Electronic Voice Alert (24-function)", MACHINE_SUPPORTS_SAVE | MACHINE_IMPERFECT_SOUND | MACHINE_NOT_WORKING )
+SYST( 1983, eva11, eva24, 0, eva11, eva11, eva_state, 0, "Chrysler", "Electronic Voice Alert (11-function)", MACHINE_SUPPORTS_SAVE | MACHINE_IMPERFECT_SOUND | MACHINE_NOT_WORKING )