diff options
author | 2015-05-22 21:35:51 +0200 | |
---|---|---|
committer | 2015-05-22 21:35:51 +0200 | |
commit | 3d66fa5ccff9a756f6174a7986c477316898bc22 (patch) | |
tree | aedad37a3b5d54d4e2e880221b9070611abfdd77 /src | |
parent | 7b341ed3ee28caa9cfeabfc58df9eb3e80e619b9 (diff) |
added entex efootb4 and ebaskb2 skeletons
Diffstat (limited to 'src')
-rw-r--r-- | src/emu/cpu/tms0980/tms0980.c | 5 | ||||
-rw-r--r-- | src/emu/cpu/tms0980/tms0980.h | 6 | ||||
-rw-r--r-- | src/mame/mess.lst | 2 | ||||
-rw-r--r-- | src/mess/drivers/hh_tms1k.c | 184 |
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 ) |