summaryrefslogtreecommitdiffstatshomepage
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/mame/drivers/fidel_chesster.cpp2
-rw-r--r--src/mame/drivers/fidel_desdis.cpp2
-rw-r--r--src/mame/drivers/hh_sm510.cpp2
-rw-r--r--src/mame/drivers/hh_tms1k.cpp132
-rw-r--r--src/mame/layout/blastit.lay65
-rw-r--r--src/mame/mame.lst1
6 files changed, 188 insertions, 16 deletions
diff --git a/src/mame/drivers/fidel_chesster.cpp b/src/mame/drivers/fidel_chesster.cpp
index f468e4248ba..b46e41eabe2 100644
--- a/src/mame/drivers/fidel_chesster.cpp
+++ b/src/mame/drivers/fidel_chesster.cpp
@@ -164,7 +164,7 @@ void chesster_state::main_map(address_map &map)
static INPUT_PORTS_START( chesster )
PORT_START("IN.0")
- PORT_BIT(0x01, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_CODE(KEYCODE_DEL) PORT_NAME("Clear")
+ PORT_BIT(0x01, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_CODE(KEYCODE_BACKSPACE) PORT_CODE(KEYCODE_DEL) PORT_NAME("Clear")
PORT_BIT(0x02, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_CODE(KEYCODE_H) PORT_NAME("Move / No")
PORT_BIT(0x04, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_CODE(KEYCODE_G) PORT_NAME("Hint / Yes")
PORT_BIT(0x08, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_CODE(KEYCODE_F) PORT_NAME("Take Back / Repeat")
diff --git a/src/mame/drivers/fidel_desdis.cpp b/src/mame/drivers/fidel_desdis.cpp
index 12e244e0bc2..0442aff0b44 100644
--- a/src/mame/drivers/fidel_desdis.cpp
+++ b/src/mame/drivers/fidel_desdis.cpp
@@ -267,7 +267,7 @@ void desmas_state::fdes2325_map(address_map &map)
static INPUT_PORTS_START( desdis )
PORT_START("IN.0")
- PORT_BIT(0x01, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_CODE(KEYCODE_DEL) PORT_NAME("Clear")
+ PORT_BIT(0x01, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_CODE(KEYCODE_BACKSPACE) PORT_CODE(KEYCODE_DEL) PORT_NAME("Clear")
PORT_BIT(0x02, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_CODE(KEYCODE_H) PORT_NAME("Move / Alternate")
PORT_BIT(0x04, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_CODE(KEYCODE_G) PORT_NAME("Hint / Info")
PORT_BIT(0x08, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_CODE(KEYCODE_F) PORT_NAME("Take Back / Replay")
diff --git a/src/mame/drivers/hh_sm510.cpp b/src/mame/drivers/hh_sm510.cpp
index 0f1492d5fbe..b374ce1e4e7 100644
--- a/src/mame/drivers/hh_sm510.cpp
+++ b/src/mame/drivers/hh_sm510.cpp
@@ -1,6 +1,6 @@
// license:BSD-3-Clause
// copyright-holders:hap, Henrik Algestam
-// thanks-to:Sean Riddle, Igor, Lee Robson
+// thanks-to:Sean Riddle, Igor, Lee Robson, Milan Galcik
/***************************************************************************
Sharp SM5xx family handhelds.
diff --git a/src/mame/drivers/hh_tms1k.cpp b/src/mame/drivers/hh_tms1k.cpp
index 81968875a22..75fccdb1f6b 100644
--- a/src/mame/drivers/hh_tms1k.cpp
+++ b/src/mame/drivers/hh_tms1k.cpp
@@ -31,7 +31,7 @@ on Joerg Woerner's datamath.org: http://www.datamath.org/IC_List.htm
@MP0168 TMS1000 1979, Conic Multisport/Tandy Sports Arena (model 60-2158)
@MP0170 TMS1000 1979, Conic Football
*MP0220 TMS1000 1980, Tomy Teacher
- *MP0230 TMS1000 1980, Entex Blast It (6015)
+ @MP0230 TMS1000 1980, Entex Blast It (6015)
@MP0271 TMS1000 1982, Radio Shack Monkey See
@MP0907 TMS1000 1979, Conic Basketball (101-006)
@MP0908 TMS1000 1979, Conic Electronic I.Q.
@@ -211,6 +211,7 @@ TODO:
#include "bankshot.lh"
#include "bcheetah.lh"
#include "bigtrak.lh"
+#include "blastit.lh"
#include "bship.lh" // clickable
#include "cmsport.lh"
#include "cnbaskb.lh"
@@ -4036,15 +4037,15 @@ static INPUT_PORTS_START( ebball3 )
PORT_START("IN.2") // R2
PORT_CONFNAME( 0x01, 0x01, DEF_STR( Players ) )
- PORT_CONFSETTING( 0x01, "1" ) // Auto
- PORT_CONFSETTING( 0x00, "2" ) // Manual
+ PORT_CONFSETTING( 0x01, "1" ) // AUTO
+ PORT_CONFSETTING( 0x00, "2" ) // MAN
PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_BUTTON2 ) PORT_NAME("P1 Bunt")
PORT_BIT( 0x0c, IP_ACTIVE_HIGH, IPT_UNUSED )
PORT_START("IN.3") // fake
PORT_CONFNAME( 0x01, 0x00, DEF_STR( Difficulty ) ) PORT_CHANGED_MEMBER(DEVICE_SELF, ebball3_state, skill_switch, 0)
- PORT_CONFSETTING( 0x00, "Amateur" )
- PORT_CONFSETTING( 0x01, "Professional" )
+ PORT_CONFSETTING( 0x00, "1" ) // AM
+ PORT_CONFSETTING( 0x01, "2" ) // PRO
INPUT_PORTS_END
void ebball3_state::ebball3(machine_config &config)
@@ -4209,6 +4210,110 @@ ROM_END
/***************************************************************************
+ Entex Blast It
+ * TMS1000 MP0230 (die label 1000B, MP0230)
+ * 3 7seg LEDs, 49 other LEDs (both under an overlay mask), 1-bit sound
+
+***************************************************************************/
+
+class blastit_state : public hh_tms1k_state
+{
+public:
+ blastit_state(const machine_config &mconfig, device_type type, const char *tag) :
+ hh_tms1k_state(mconfig, type, tag)
+ { }
+
+ void update_display();
+ void write_r(u16 data);
+ void write_o(u16 data);
+ u8 read_k();
+ void blastit(machine_config &config);
+};
+
+// handlers
+
+void blastit_state::update_display()
+{
+ m_display->matrix(m_r >> 1, m_o);
+}
+
+void blastit_state::write_r(u16 data)
+{
+ // R3: input mux
+ m_inp_mux = data >> 3 & 1;
+
+ // R0: speaker out
+ m_speaker->level_w(data & 1);
+
+ // R1-R7: led select
+ // R8-R10: digit select
+ m_r = data;
+ update_display();
+}
+
+void blastit_state::write_o(u16 data)
+{
+ // O0-O6: led state
+ m_o = data;
+ update_display();
+}
+
+u8 blastit_state::read_k()
+{
+ // K: multiplexed inputs
+ return read_inputs(1);
+}
+
+// config
+
+static INPUT_PORTS_START( blastit )
+ PORT_START("IN.0") // R3
+ PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_JOYSTICK_RIGHT ) PORT_16WAY
+ PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_JOYSTICK_LEFT ) PORT_16WAY
+ PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_JOYSTICK_UP ) PORT_16WAY
+ PORT_CONFNAME( 0x08, 0x08, DEF_STR( Difficulty ) )
+ PORT_CONFSETTING( 0x08, "1" ) // AM
+ PORT_CONFSETTING( 0x00, "2" ) // PRO
+INPUT_PORTS_END
+
+void blastit_state::blastit(machine_config &config)
+{
+ /* basic machine hardware */
+ TMS1000(config, m_maincpu, 425000); // approximation - RC osc. R=47K, C=33pF
+ m_maincpu->k().set(FUNC(blastit_state::read_k));
+ m_maincpu->r().set(FUNC(blastit_state::write_r));
+ m_maincpu->o().set(FUNC(blastit_state::write_o));
+
+ /* video hardware */
+ PWM_DISPLAY(config, m_display).set_size(10, 7);
+ m_display->set_segmask(0x380, 0x7f);
+ m_display->set_bri_levels(0.01, 0.115); // ball/paddle is slightly brighter
+ config.set_default_layout(layout_blastit);
+
+ /* sound hardware */
+ SPEAKER(config, "mono").front_center();
+ SPEAKER_SOUND(config, m_speaker);
+ m_speaker->add_route(ALL_OUTPUTS, "mono", 0.25);
+}
+
+// roms
+
+ROM_START( blastit )
+ ROM_REGION( 0x0400, "maincpu", 0 )
+ ROM_LOAD( "mp0230", 0x0000, 0x0400, CRC(1eb5f473) SHA1(76cd8c0e04368aa2150d428018643e1d0b9adda0) )
+
+ ROM_REGION( 867, "maincpu:mpla", 0 )
+ ROM_LOAD( "tms1000_common2_micro.pla", 0, 867, CRC(d33da3cf) SHA1(13c4ebbca227818db75e6db0d45b66ba5e207776) )
+ ROM_REGION( 365, "maincpu:opla", 0 )
+ ROM_LOAD( "tms1000_blastit_output.pla", 0, 365, CRC(fa8081df) SHA1(99706d5ad58a76d47446576fac18964e602171c8) )
+ROM_END
+
+
+
+
+
+/***************************************************************************
+
Entex Space Invader
* TMS1100 MP1211 (die label same)
* 3 7seg LEDs, LED matrix and overlay mask, 1-bit sound
@@ -4285,8 +4390,8 @@ static INPUT_PORTS_START( einvader )
PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_JOYSTICK_LEFT ) PORT_16WAY
PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_JOYSTICK_RIGHT ) PORT_16WAY
PORT_CONFNAME( 0x08, 0x00, DEF_STR( Difficulty ) ) PORT_CHANGED_MEMBER(DEVICE_SELF, einvader_state, skill_switch, 0)
- PORT_CONFSETTING( 0x00, "Amateur" )
- PORT_CONFSETTING( 0x08, "Professional" )
+ PORT_CONFSETTING( 0x00, "1" ) // amateur
+ PORT_CONFSETTING( 0x08, "2" ) // professional
INPUT_PORTS_END
void einvader_state::einvader(machine_config &config)
@@ -4422,8 +4527,8 @@ static INPUT_PORTS_START( efootb4 )
PORT_CONFSETTING( 0x01, "1" ) // Auto
PORT_CONFSETTING( 0x00, "2" ) // Manual
PORT_CONFNAME( 0x02, 0x00, DEF_STR( Difficulty ) )
- PORT_CONFSETTING( 0x00, "Amateur" )
- PORT_CONFSETTING( 0x02, "Professional" )
+ PORT_CONFSETTING( 0x00, "1" ) // amateur
+ PORT_CONFSETTING( 0x02, "2" ) // professional
PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_START ) PORT_NAME("Status")
PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_UNUSED )
INPUT_PORTS_END
@@ -4544,8 +4649,8 @@ u8 ebaskb2_state::read_k()
static INPUT_PORTS_START( ebaskb2 )
PORT_START("IN.0") // R6
PORT_CONFNAME( 0x01, 0x01, DEF_STR( Difficulty ) )
- PORT_CONFSETTING( 0x01, "Amateur" )
- PORT_CONFSETTING( 0x00, "Professional" )
+ PORT_CONFSETTING( 0x01, "1" ) // amateur
+ PORT_CONFSETTING( 0x00, "2" ) // professional
PORT_CONFNAME( 0x02, 0x02, DEF_STR( Players ) )
PORT_CONFSETTING( 0x02, "1" ) // Auto
PORT_CONFSETTING( 0x00, "2" ) // Manual
@@ -5017,8 +5122,8 @@ static INPUT_PORTS_START( f3in1 )
PORT_START("IN.4") // fake
PORT_CONFNAME( 0x01, 0x00, DEF_STR( Difficulty ) ) PORT_CHANGED_MEMBER(DEVICE_SELF, f3in1_state, skill_switch, 0)
- PORT_CONFSETTING( 0x00, "Regular" ) // REG
- PORT_CONFSETTING( 0x01, "Professional" ) // PROF
+ PORT_CONFSETTING( 0x00, "1" ) // REG
+ PORT_CONFSETTING( 0x01, "2" ) // PROF
INPUT_PORTS_END
void f3in1_state::f3in1(machine_config &config)
@@ -13209,6 +13314,7 @@ CONS( 1979, ebball, 0, 0, ebball, ebball, ebball_state, emp
CONS( 1979, ebball2, 0, 0, ebball2, ebball2, ebball2_state, empty_init, "Entex", "Electronic Baseball 2 (Entex)", MACHINE_SUPPORTS_SAVE )
CONS( 1980, ebball3, 0, 0, ebball3, ebball3, ebball3_state, empty_init, "Entex", "Electronic Baseball 3 (Entex)", MACHINE_SUPPORTS_SAVE )
CONS( 1979, esbattle, 0, 0, esbattle, esbattle, esbattle_state, empty_init, "Entex", "Space Battle (Entex)", MACHINE_SUPPORTS_SAVE )
+CONS( 1980, blastit, 0, 0, blastit, blastit, blastit_state, empty_init, "Entex", "Blast It", MACHINE_SUPPORTS_SAVE )
CONS( 1980, einvader, 0, 0, einvader, einvader, einvader_state, empty_init, "Entex", "Space Invader (Entex, TMS1100 version)", MACHINE_SUPPORTS_SAVE )
CONS( 1980, efootb4 , 0, 0, efootb4, efootb4, efootb4_state, empty_init, "Entex", "Color Football 4 (Entex)", MACHINE_SUPPORTS_SAVE )
CONS( 1980, ebaskb2 , 0, 0, ebaskb2, ebaskb2, ebaskb2_state, empty_init, "Entex", "Electronic Basketball 2 (Entex)", MACHINE_SUPPORTS_SAVE )
diff --git a/src/mame/layout/blastit.lay b/src/mame/layout/blastit.lay
new file mode 100644
index 00000000000..6264dea6a99
--- /dev/null
+++ b/src/mame/layout/blastit.lay
@@ -0,0 +1,65 @@
+<?xml version="1.0"?>
+<!--
+license:CC0
+-->
+<mamelayout version="2">
+
+<!-- define elements -->
+
+ <element name="black"><rect><color red="0.0" green="0.0" blue="0.0" /></rect></element>
+ <element name="white"><rect><color red="0.8" green="0.8" blue="0.8" /></rect></element>
+ <element name="text_score"><text string="SCORE" align="2"><color red="0.8" green="0.8" blue="0.8" /></text></element>
+
+ <element name="digit" defstate="0">
+ <led7seg><color red="1.0" green="0.1" blue="0.15" /></led7seg>
+ </element>
+
+ <element name="led" defstate="0">
+ <rect state="0"><color red="0.1" green="0.01" blue="0.015" /></rect>
+ <rect state="1"><color red="0.8" green="0.08" blue="0.12" /></rect>
+ <rect state="2"><color red="1.0" green="0.2" blue="0.2" /></rect>
+ </element>
+
+
+<!-- build screen -->
+
+ <view name="Internal Layout">
+ <bounds left="5" right="71" top="4.5" bottom="81.1" />
+
+ <!-- score display -->
+ <element ref="white"><bounds x="24.5" y="9" width="27.5" height="13" /></element>
+ <element ref="black"><bounds x="25.0" y="9.5" width="26.5" height="12" /></element>
+ <element ref="text_score"><bounds x="3.5" y="12.75" width="20" height="5.5" /></element>
+ <element ref="digit"><bounds x="26" y="11" width="6" height="9" /></element> <!-- unpopulated -->
+ <element name="digit7" ref="digit"><bounds x="32" y="11" width="6" height="9" /></element>
+ <element name="digit8" ref="digit"><bounds x="38" y="11" width="6" height="9" /></element>
+ <element name="digit9" ref="digit"><bounds x="44" y="11" width="6" height="9" /></element>
+
+ <!-- other leds -->
+ <repeat count="7">
+ <param name="y" start="30" increment="7.3" />
+ <param name="i2" start="6" increment="-1" />
+
+ <repeat count="7">
+ <param name="x" start="10" increment="8.5" />
+ <param name="i1" start="0" increment="1" />
+ <element name="~i1~.~i2~" ref="led"><bounds x="~x~" y="~y~" width="5" height="1.7" /></element>
+ </repeat>
+ </repeat>
+
+ <!-- 3 of the rows have a different shape -->
+ <element ref="black"><bounds x="0" y="50" width="80" height="20" /></element>
+
+ <repeat count="3">
+ <param name="y" start="51.9" increment="7.3" />
+ <param name="i2" start="3" increment="-1" />
+
+ <repeat count="7">
+ <param name="x" start="11.5" increment="8.5" />
+ <param name="i1" start="0" increment="1" />
+ <element name="~i1~.~i2~" ref="led"><bounds x="~x~" y="~y~" width="2" height="2" /></element>
+ </repeat>
+ </repeat>
+
+ </view>
+</mamelayout>
diff --git a/src/mame/mame.lst b/src/mame/mame.lst
index 41354ff0373..a76e74997fa 100644
--- a/src/mame/mame.lst
+++ b/src/mame/mame.lst
@@ -16673,6 +16673,7 @@ bankshot // Parker Bros
bcheetah // Bandai
ebknight // Entex
bigtrak // Milton Bradley
+blastit // Entex
bship // Milton Bradley
bshipb // Milton Bradley
cmsport // Conic