summaryrefslogtreecommitdiffstatshomepage
path: root/src
diff options
context:
space:
mode:
author hap <happppp@users.noreply.github.com>2015-05-22 21:35:51 +0200
committer hap <happppp@users.noreply.github.com>2015-05-22 21:35:51 +0200
commit3d66fa5ccff9a756f6174a7986c477316898bc22 (patch)
treeaedad37a3b5d54d4e2e880221b9070611abfdd77 /src
parent7b341ed3ee28caa9cfeabfc58df9eb3e80e619b9 (diff)
added entex efootb4 and ebaskb2 skeletons
Diffstat (limited to 'src')
-rw-r--r--src/emu/cpu/tms0980/tms0980.c5
-rw-r--r--src/emu/cpu/tms0980/tms0980.h6
-rw-r--r--src/mame/mess.lst2
-rw-r--r--src/mess/drivers/hh_tms1k.c184
4 files changed, 192 insertions, 5 deletions
diff --git a/src/emu/cpu/tms0980/tms0980.c b/src/emu/cpu/tms0980/tms0980.c
index 3c1db6c8a3d..d7b13db1d62 100644
--- a/src/emu/cpu/tms0980/tms0980.c
+++ b/src/emu/cpu/tms0980/tms0980.c
@@ -140,6 +140,7 @@ unknown cycle: CME, SSE, SSS
// - the ALU is between the opla and mpla
const device_type TMS1000 = &device_creator<tms1000_cpu_device>; // 28-pin DIP, 11 R pins
const device_type TMS1070 = &device_creator<tms1070_cpu_device>; // high voltage version
+const device_type TMS1040 = &device_creator<tms1040_cpu_device>; // same as TMS1070 with just a different pinout?
const device_type TMS1200 = &device_creator<tms1200_cpu_device>; // 40-pin DIP, 13 R pins
// TMS1270 has 10 O pins, how does that work?
@@ -230,6 +231,10 @@ tms1070_cpu_device::tms1070_cpu_device(const machine_config &mconfig, const char
: tms1000_cpu_device(mconfig, TMS1070, "TMS1070", tag, owner, clock, 8, 11, 6, 8, 2, 10, ADDRESS_MAP_NAME(program_10bit_8), 6, ADDRESS_MAP_NAME(data_64x4), "tms1070", __FILE__)
{ }
+tms1040_cpu_device::tms1040_cpu_device(const machine_config &mconfig, const char *tag, device_t *owner, UINT32 clock)
+ : tms1000_cpu_device(mconfig, TMS1040, "TMS1040", tag, owner, clock, 8, 11, 6, 8, 2, 10, ADDRESS_MAP_NAME(program_10bit_8), 6, ADDRESS_MAP_NAME(data_64x4), "tms1040", __FILE__)
+{ }
+
tms1200_cpu_device::tms1200_cpu_device(const machine_config &mconfig, const char *tag, device_t *owner, UINT32 clock)
: tms1000_cpu_device(mconfig, TMS1200, "TMS1200", tag, owner, clock, 8, 13, 6, 8, 2, 10, ADDRESS_MAP_NAME(program_10bit_8), 6, ADDRESS_MAP_NAME(data_64x4), "tms1200", __FILE__)
{ }
diff --git a/src/emu/cpu/tms0980/tms0980.h b/src/emu/cpu/tms0980/tms0980.h
index 15caeedeedb..7ea8a4afd96 100644
--- a/src/emu/cpu/tms0980/tms0980.h
+++ b/src/emu/cpu/tms0980/tms0980.h
@@ -226,6 +226,12 @@ public:
tms1070_cpu_device(const machine_config &mconfig, const char *tag, device_t *owner, UINT32 clock);
};
+class tms1040_cpu_device : public tms1000_cpu_device
+{
+public:
+ tms1040_cpu_device(const machine_config &mconfig, const char *tag, device_t *owner, UINT32 clock);
+};
+
class tms1200_cpu_device : public tms1000_cpu_device
{
diff --git a/src/mame/mess.lst b/src/mame/mess.lst
index 0b9ebc0b18d..772d99d920e 100644
--- a/src/mame/mess.lst
+++ b/src/mame/mess.lst
@@ -2189,6 +2189,8 @@ ebball // Entex
ebball2 // Entex
ebball3 // Entex
einvader // Entex
+efootb4 // Entex
+ebaskb2 // Entex
raisedvl // Entex
gpoker // Gakken
gjackpot // Gakken
diff --git a/src/mess/drivers/hh_tms1k.c b/src/mess/drivers/hh_tms1k.c
index 95544ed7bc8..f84077cb388 100644
--- a/src/mess/drivers/hh_tms1k.c
+++ b/src/mess/drivers/hh_tms1k.c
@@ -19,8 +19,8 @@
@MP1030 TMS1100 1980, APF Mathemagician
@MP1133 TMS1470 1979, Kosmos Astro
@MP1204 TMS1100 1980, Entex Baseball 3 (6007)
- *MP1218 TMS1100 1980, Entex Basketball 2 (6010)
@MP1211 TMS1100 1980, Entex Space Invader
+ @MP1218 TMS1100 1980, Entex Basketball 2 (6010)
@MP1221 TMS1100 1980, Entex Raise The Devil
*MP1296 TMS1100? 1982, Entex Black Knight
*MP1312 TMS1100 198?, Tandy/RadioShack Science Fair Microcomputer Trainer
@@ -66,7 +66,7 @@
MP7332 TMS1400 1981, Milton Bradley Dark Tower -> mbdtower.c
@MP7334 TMS1400 1981, Coleco Total Control 4
@MP7351 TMS1400CR 1982, Parker Brothers Master Merlin
- *MP7551 TMS1670 1980, Entex Color Football 4 (6009)
+ @MP7551 TMS1670 1980, Entex Color Football 4 (6009)
*MP7573 TMS1670? 1981, Entex Select-a-Game cartridge: Football 4 (? note: 40-pin, VFD-capable)
inconsistent:
@@ -1054,7 +1054,7 @@ MACHINE_CONFIG_END
/***************************************************************************
- Entex Electronic Baseball (1)
+ Entex (Electronic) Baseball (1)
* TMS1000NLP MP0914 (die labeled MP0914A)
* 1 7seg LED, and other LEDs behind bezel, 1bit sound
@@ -1191,7 +1191,7 @@ MACHINE_CONFIG_END
/***************************************************************************
- Entex Electronic Baseball 2
+ Entex (Electronic) Baseball 2
* PCBs are labeled: ZENY
* TMS1000 MCU, MP0923 (die labeled MP0923)
* 3 7seg LEDs, and other LEDs behind bezel, 1bit sound
@@ -1318,7 +1318,7 @@ MACHINE_CONFIG_END
/***************************************************************************
- Entex Electronic Baseball 3
+ Entex (Electronic) Baseball 3
* PCBs are labeled: ZENY
* TMS1100NLL 6007 MP1204 (rev. E!) (die labeled MP1204)
* 2*SN75492N LED display driver
@@ -1617,6 +1617,156 @@ MACHINE_CONFIG_END
/***************************************************************************
+ Entex Color Football 4
+ * TMS1670 6009 MP7551 (die also labeled MP7551)
+ * 4 7seg LEDs, 60 red and green LEDs behind bezel, 1bit sound
+
+***************************************************************************/
+
+class efootb4_state : public hh_tms1k_state
+{
+public:
+ efootb4_state(const machine_config &mconfig, device_type type, const char *tag)
+ : hh_tms1k_state(mconfig, type, tag)
+ { }
+
+ void prepare_display();
+ DECLARE_WRITE16_MEMBER(write_r);
+ DECLARE_WRITE16_MEMBER(write_o);
+ DECLARE_READ8_MEMBER(read_k);
+};
+
+// handlers
+
+void efootb4_state::prepare_display()
+{
+}
+
+WRITE16_MEMBER(efootb4_state::write_r)
+{
+}
+
+WRITE16_MEMBER(efootb4_state::write_o)
+{
+ // O7: speaker out
+ m_speaker->level_w(data >> 7 & 1);
+
+ // O0-O6: led state
+ m_o = data & 0x7f;
+ prepare_display();
+}
+
+READ8_MEMBER(efootb4_state::read_k)
+{
+ return 0;
+}
+
+
+// config
+
+static INPUT_PORTS_START( efootb4 )
+INPUT_PORTS_END
+
+static MACHINE_CONFIG_START( efootb4, efootb4_state )
+
+ /* basic machine hardware */
+ MCFG_CPU_ADD("maincpu", TMS1670, 400000) // RC osc. R=42K, C=47pf -> ~000kHz
+ MCFG_TMS1XXX_READ_K_CB(READ8(efootb4_state, read_k))
+ MCFG_TMS1XXX_WRITE_R_CB(WRITE16(efootb4_state, write_r))
+ MCFG_TMS1XXX_WRITE_O_CB(WRITE16(efootb4_state, write_o))
+
+ MCFG_TIMER_DRIVER_ADD_PERIODIC("display_decay", hh_tms1k_state, display_decay_tick, attotime::from_msec(1))
+// MCFG_DEFAULT_LAYOUT(layout_efootb4)
+ MCFG_DEFAULT_LAYOUT(layout_hh_tms1k_test)
+
+ /* no video! */
+
+ /* sound hardware */
+ MCFG_SPEAKER_STANDARD_MONO("mono")
+ MCFG_SOUND_ADD("speaker", SPEAKER_SOUND, 0)
+ MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.25)
+MACHINE_CONFIG_END
+
+
+
+
+
+/***************************************************************************
+
+ Entex (Electronic) Basketball 2
+ * TMS1100 6010 MP1218 (die also labeled MP1218)
+ * 4 7seg LEDs, and other LEDs behind bezel, 1bit sound
+
+***************************************************************************/
+
+class ebaskb2_state : public hh_tms1k_state
+{
+public:
+ ebaskb2_state(const machine_config &mconfig, device_type type, const char *tag)
+ : hh_tms1k_state(mconfig, type, tag)
+ { }
+
+ void prepare_display();
+ DECLARE_WRITE16_MEMBER(write_r);
+ DECLARE_WRITE16_MEMBER(write_o);
+ DECLARE_READ8_MEMBER(read_k);
+};
+
+// handlers
+
+void ebaskb2_state::prepare_display()
+{
+}
+
+WRITE16_MEMBER(ebaskb2_state::write_r)
+{
+}
+
+WRITE16_MEMBER(ebaskb2_state::write_o)
+{
+ // O0-O6: led state
+ // O7: N/C
+ m_o = data & 0x7f;
+ prepare_display();
+}
+
+READ8_MEMBER(ebaskb2_state::read_k)
+{
+ return 0;
+}
+
+
+// config
+
+static INPUT_PORTS_START( ebaskb2 )
+INPUT_PORTS_END
+
+static MACHINE_CONFIG_START( ebaskb2, ebaskb2_state )
+
+ /* basic machine hardware */
+ MCFG_CPU_ADD("maincpu", TMS1100, 400000) // RC osc. R=33K, C=82pf -> ~000kHz
+ MCFG_TMS1XXX_READ_K_CB(READ8(ebaskb2_state, read_k))
+ MCFG_TMS1XXX_WRITE_R_CB(WRITE16(ebaskb2_state, write_r))
+ MCFG_TMS1XXX_WRITE_O_CB(WRITE16(ebaskb2_state, write_o))
+
+ MCFG_TIMER_DRIVER_ADD_PERIODIC("display_decay", hh_tms1k_state, display_decay_tick, attotime::from_msec(1))
+// MCFG_DEFAULT_LAYOUT(layout_ebaskb2)
+ MCFG_DEFAULT_LAYOUT(layout_hh_tms1k_test)
+
+ /* no video! */
+
+ /* sound hardware */
+ MCFG_SPEAKER_STANDARD_MONO("mono")
+ MCFG_SOUND_ADD("speaker", SPEAKER_SOUND, 0)
+ MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.25)
+MACHINE_CONFIG_END
+
+
+
+
+
+/***************************************************************************
+
Entex Raise The Devil
* TMS1100 MP1221 (die labeled MP1221)
* 4 7seg LEDs(rightmost one unused), and other LEDs behind bezel, 1bit sound
@@ -3859,6 +4009,28 @@ ROM_START( einvader )
ROM_END
+ROM_START( efootb4 )
+ ROM_REGION( 0x1000, "maincpu", 0 )
+ ROM_LOAD( "6009_mp7551", 0x0000, 0x1000, CRC(54fa7244) SHA1(4d16bd825c4a2db76ca8a263c373ade15c20e270) )
+
+ ROM_REGION( 867, "maincpu:mpla", 0 )
+ ROM_LOAD( "tms1400_efootb4_mpla.pla", 0, 867, CRC(7cc90264) SHA1(c6e1cf1ffb178061da9e31858514f7cd94e86990) )
+ ROM_REGION( 557, "maincpu:opla", 0 )
+ ROM_LOAD( "tms1400_efootb4_opla.pla", 0, 557, CRC(5c87c753) SHA1(bde9d4aa1e57a718affd969475c0a1edcf60f444) )
+ROM_END
+
+
+ROM_START( ebaskb2 )
+ ROM_REGION( 0x0800, "maincpu", 0 )
+ ROM_LOAD( "6010_mp1218", 0x0000, 0x0800, CRC(0089ede8) SHA1(c8a79d5aca7e37b637a4d152150acba9f41aad96) )
+
+ ROM_REGION( 867, "maincpu:mpla", 0 )
+ ROM_LOAD( "tms1100_ebaskb2_mpla.pla", 0, 867, CRC(7cc90264) SHA1(c6e1cf1ffb178061da9e31858514f7cd94e86990) )
+ ROM_REGION( 365, "maincpu:opla", 0 )
+ ROM_LOAD( "tms1100_ebaskb2_opla.pla", 0, 365, CRC(c18103ae) SHA1(5a9bb8e1d95a9f6919b05ff9471fa0a8014b8b81) )
+ROM_END
+
+
ROM_START( raisedvl )
ROM_REGION( 0x0800, "maincpu", 0 )
ROM_LOAD( "mp1221", 0x0000, 0x0800, CRC(782791cc) SHA1(214249406fcaf44efc6350022bd534e59ec69c88) )
@@ -4099,6 +4271,8 @@ CONS( 1979, ebball, 0, 0, ebball, ebball, driver_device, 0, "Ent
CONS( 1979, ebball2, 0, 0, ebball2, ebball2, driver_device, 0, "Entex", "Electronic Baseball 2 (Entex)", GAME_SUPPORTS_SAVE )
CONS( 1980, ebball3, 0, 0, ebball3, ebball3, driver_device, 0, "Entex", "Electronic Baseball 3 (Entex)", GAME_SUPPORTS_SAVE )
CONS( 1980, einvader, 0, 0, einvader, einvader, driver_device, 0, "Entex", "Space Invader (Entex, TMS1100)", GAME_SUPPORTS_SAVE | GAME_REQUIRES_ARTWORK )
+CONS( 1980, efootb4 , 0, 0, efootb4, efootb4, driver_device, 0, "Entex", "Color Football 4 (Entex)", GAME_SUPPORTS_SAVE | GAME_NOT_WORKING )
+CONS( 1980, ebaskb2 , 0, 0, ebaskb2, ebaskb2, driver_device, 0, "Entex", "Electronic Basketball 2 (Entex)", GAME_SUPPORTS_SAVE | GAME_NOT_WORKING )
CONS( 1980, raisedvl, 0, 0, raisedvl, raisedvl, driver_device, 0, "Entex", "Raise The Devil", GAME_SUPPORTS_SAVE | GAME_REQUIRES_ARTWORK )
CONS( 1979, gpoker, 0, 0, gpoker, gpoker, driver_device, 0, "Gakken", "Poker (Gakken, 1979 version)", GAME_SUPPORTS_SAVE )