summaryrefslogtreecommitdiffstatshomepage
path: root/src/mess/drivers/hh_tms1k.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/mess/drivers/hh_tms1k.c')
-rw-r--r--src/mess/drivers/hh_tms1k.c39
1 files changed, 32 insertions, 7 deletions
diff --git a/src/mess/drivers/hh_tms1k.c b/src/mess/drivers/hh_tms1k.c
index b17b40e2035..3d67cf4a99c 100644
--- a/src/mess/drivers/hh_tms1k.c
+++ b/src/mess/drivers/hh_tms1k.c
@@ -7,7 +7,7 @@
part of a series is (or will be) in its own driver.
Let's use this driver for a list of known devices and their serials,
- excluding TI's own products (see for example ticalc1x.c, tispeak.c)
+ excluding TI's own products (see ticalc1x.c, tispeak.c)
serial device etc.
--------------------------------------------------------------------
@@ -21,8 +21,8 @@
@MP1204 TMS1100 1980, Entex Baseball 3
*MP1221 TMS1100 1980, Entex Raise The Devil
*MP1312 TMS1100 198?, Tandy/RadioShack Science Fair Microcomputer Trainer
- *MP2139 ? 1982, Gakken Galaxy Invader 1000
- *MP2788 ? 1980, Bandai Flight Time
+ *MP2139 ? 1982, Gakken Galaxy Invader 1000 (? note: VFD-capable)
+ *MP2788 ? 1980, Bandai Flight Time (? note: VFD-capable)
@MP3226 TMS1000 1978, Milton Bradley Simon
*MP3301 TMS1000 1979, Milton Bradley Bigtrak
*MP3320A TMS1000 1979, Coleco Head to Head Basketball
@@ -45,12 +45,14 @@
M34047 TMS1100 1982, MicroVision cartridge: Super Blockbuster
@MP6100A TMS0980 1979, Ideal Electronic Detective
@MP6101B TMS0980 1979, Parker Brothers Stop Thief
- *MP6361 ? 1983, Defender Strikes
+ *MP6361 ? 1983, Defender Strikes (? note: VFD-capable)
*MP7303 TMS1400? 19??, Tiger 7-in-1 Sports Stadium
@MP7313 TMS1400 1980, Parker Brothers Bank Shot
@MP7314 TMS1400 1980, Parker Brothers Split Second
MP7332 TMS1400 1981, Milton Bradley Dark Tower -> mbdtower.c
@MP7334 TMS1400 1981, Coleco Total Control 4
+ *MP7573 ? 1981, Entex Select-a-Game cartridge: Football (? note: 40-pin, VFD-capable)
+ *M95041 ? 1983, Tsukuda Game Pachinko (? note: 40-pin, VFD-capable)
inconsistent:
@@ -1049,7 +1051,7 @@ void hh_tms1k_state::ebball3_set_clock()
// MCU clock is from an RC circuit(R=47K, C=33pf) oscillating by default at ~340kHz,
// but on PRO, the difficulty switch adds an extra 150K resistor to Vdd to speed
// it up to around ~440kHz.
- m_maincpu->set_unscaled_clock(m_inp_matrix[3]->read() & 1 ? 440000 : 340000);
+ m_maincpu->set_unscaled_clock((m_inp_matrix[3]->read() & 1) ? 440000 : 340000);
}
INPUT_CHANGED_MEMBER(hh_tms1k_state::ebball3_difficulty_switch)
@@ -1568,17 +1570,38 @@ static INPUT_PORTS_START( ssimon )
PORT_BIT( 0x0d, IP_ACTIVE_HIGH, IPT_UNUSED )
PORT_START("IN.6") // fake
- PORT_CONFNAME( 0x03, 0x00, "Speed" ) //PORT_CHANGED_MEMBER(DEVICE_SELF, hh_tms1k_state, ssimon_speed_switch, NULL)
+ PORT_CONFNAME( 0x03, 0x01, "Speed" ) PORT_CHANGED_MEMBER(DEVICE_SELF, hh_tms1k_state, ssimon_speed_switch, NULL)
PORT_CONFSETTING( 0x00, "Simple" )
PORT_CONFSETTING( 0x01, "Normal" )
PORT_CONFSETTING( 0x02, "Super" )
INPUT_PORTS_END
+void hh_tms1k_state::ssimon_set_clock()
+{
+ // MCU clock is from an RC circuit with C=100pf, R=x depending on speed switch:
+ // 0 Simple: R=51K -> ~200kHz
+ // 1 Normal: R=37K -> ~275kHz
+ // 2 Super: R=22K -> ~400kHz
+ UINT8 inp = m_inp_matrix[6]->read();
+ m_maincpu->set_unscaled_clock((inp & 2) ? 400000 : ((inp & 1) ? 275000 : 200000));
+}
+
+INPUT_CHANGED_MEMBER(hh_tms1k_state::ssimon_speed_switch)
+{
+ ssimon_set_clock();
+}
+
+MACHINE_RESET_MEMBER(hh_tms1k_state, ssimon)
+{
+ machine_reset();
+ ssimon_set_clock();
+}
+
static MACHINE_CONFIG_START( ssimon, hh_tms1k_state )
/* basic machine hardware */
- MCFG_CPU_ADD("maincpu", TMS1100, 350000) // x
+ MCFG_CPU_ADD("maincpu", TMS1100, 275000) // see ssimon_set_clock
MCFG_TMS1XXX_READ_K_CB(READ8(hh_tms1k_state, ssimon_read_k))
MCFG_TMS1XXX_WRITE_R_CB(WRITE16(hh_tms1k_state, ssimon_write_r))
MCFG_TMS1XXX_WRITE_O_CB(WRITE16(hh_tms1k_state, ssimon_write_o))
@@ -1586,6 +1609,8 @@ static MACHINE_CONFIG_START( ssimon, hh_tms1k_state )
MCFG_TIMER_DRIVER_ADD_PERIODIC("display_decay", hh_tms1k_state, display_decay_tick, attotime::from_msec(1))
MCFG_DEFAULT_LAYOUT(layout_ssimon)
+ MCFG_MACHINE_RESET_OVERRIDE(hh_tms1k_state, ssimon)
+
/* no video! */
/* sound hardware */