diff --git a/src/devices/machine/smartboard.cpp b/src/devices/machine/smartboard.cpp
index c91dbd0ca46..5ac68fea89e 100644
--- a/src/devices/machine/smartboard.cpp
+++ b/src/devices/machine/smartboard.cpp
@@ -15,7 +15,7 @@ SmartBoard II is SB20 (64 LEDs, digital chesspieces)
SmartBoard III is SB30 again, but digital
SB20 and the newer SB30 are not emulated. They're on different hardware, with
-embedded CPU to reduce I/O overhead. Note, These are not compatible with old
+embedded CPU to reduce I/O overhead. Note, those are not compatible with old
versions of Tasc R30.
******************************************************************************/
@@ -291,10 +291,9 @@ void tasc_sb30_device::data0_w(int state)
m_squares[i] = piece_id ? (1 << (piece_id - 1)) : 0;
}
+ m_scan_pending = false;
m_pos = 0;
update_output();
-
- m_scan_pending = false;
}
else
{
diff --git a/src/mame/drivers/saitek_risc2500.cpp b/src/mame/drivers/saitek_risc2500.cpp
index 0487dfd9824..ed8d6f2cbbf 100644
--- a/src/mame/drivers/saitek_risc2500.cpp
+++ b/src/mame/drivers/saitek_risc2500.cpp
@@ -56,6 +56,7 @@ TODO:
#include "speaker.h"
// internal artwork
+#include "mephisto_montreux.lh"
#include "saitek_risc2500.lh"
@@ -74,7 +75,7 @@ public:
, m_speaker(*this, "speaker")
, m_lcdc(*this, "lcdc")
, m_board(*this, "board")
- , m_inputs(*this, "P%u", 0)
+ , m_inputs(*this, "IN.%u", 0)
, m_digits(*this, "digit%u", 0U)
, m_syms(*this, "sym%u", 0U)
, m_leds(*this, "led%u", 0U)
@@ -84,6 +85,7 @@ public:
DECLARE_INPUT_CHANGED_MEMBER(on_button);
void risc2500(machine_config &config);
+ void montreux(machine_config &config);
protected:
virtual void machine_start() override;
@@ -366,35 +368,35 @@ void risc2500_state::risc2500_mem(address_map &map)
******************************************************************************/
static INPUT_PORTS_START( risc2500 )
- PORT_START("P0")
+ PORT_START("IN.0")
PORT_BIT(0x40, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_NAME("Pawn") PORT_CODE(KEYCODE_1) PORT_CODE(KEYCODE_1_PAD)
- PORT_BIT(0x80, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_NAME("BACK") PORT_CODE(KEYCODE_BACKSPACE)
+ PORT_BIT(0x80, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_NAME("BACK") PORT_CODE(KEYCODE_B) PORT_CODE(KEYCODE_BACKSPACE)
- PORT_START("P1")
+ PORT_START("IN.1")
PORT_BIT(0x40, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_NAME("Knight") PORT_CODE(KEYCODE_2) PORT_CODE(KEYCODE_2_PAD)
PORT_BIT(0x80, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_NAME("ENTER") PORT_CODE(KEYCODE_ENTER) PORT_CODE(KEYCODE_ENTER_PAD)
- PORT_START("P2")
+ PORT_START("IN.2")
PORT_BIT(0x40, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_NAME("Bishop") PORT_CODE(KEYCODE_3) PORT_CODE(KEYCODE_3_PAD)
PORT_BIT(0x80, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_NAME("DOWN") PORT_CODE(KEYCODE_DOWN)
- PORT_START("P3")
+ PORT_START("IN.3")
PORT_BIT(0x40, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_NAME("Rook") PORT_CODE(KEYCODE_4) PORT_CODE(KEYCODE_4_PAD)
PORT_BIT(0x80, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_NAME("UP") PORT_CODE(KEYCODE_UP)
- PORT_START("P4")
+ PORT_START("IN.4")
PORT_BIT(0x40, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_NAME("Queen") PORT_CODE(KEYCODE_5) PORT_CODE(KEYCODE_5_PAD)
PORT_BIT(0x80, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_NAME("MENU") PORT_CODE(KEYCODE_M)
- PORT_START("P5")
+ PORT_START("IN.5")
PORT_BIT(0x40, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_NAME("King") PORT_CODE(KEYCODE_6) PORT_CODE(KEYCODE_6_PAD)
PORT_BIT(0x80, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_NAME("PLAY") PORT_CODE(KEYCODE_L)
- PORT_START("P6")
+ PORT_START("IN.6")
PORT_BIT(0x40, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_NAME("RIGHT") PORT_CODE(KEYCODE_RIGHT)
PORT_BIT(0x80, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_NAME("NEW GAME") PORT_CODE(KEYCODE_N)
- PORT_START("P7")
+ PORT_START("IN.7")
PORT_BIT(0x40, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_NAME("LEFT") PORT_CODE(KEYCODE_LEFT)
PORT_BIT(0x80, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_NAME("OFF") PORT_CODE(KEYCODE_O)
@@ -403,6 +405,16 @@ static INPUT_PORTS_START( risc2500 )
PORT_BIT(0x02, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_NAME("ACL") PORT_CODE(KEYCODE_F1) PORT_CHANGED_MEMBER(DEVICE_SELF, risc2500_state, acl_button, 0)
INPUT_PORTS_END
+static INPUT_PORTS_START( montreux ) // on/off buttons have different labels
+ PORT_INCLUDE( risc2500 )
+
+ PORT_MODIFY("IN.7")
+ PORT_BIT(0x80, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_NAME("STOP") PORT_CODE(KEYCODE_S)
+
+ PORT_MODIFY("RESET")
+ PORT_BIT(0x01, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_NAME("GO") PORT_CODE(KEYCODE_G) PORT_CHANGED_MEMBER(DEVICE_SELF, risc2500_state, on_button, 0)
+INPUT_PORTS_END
+
/******************************************************************************
@@ -456,6 +468,12 @@ void risc2500_state::risc2500(machine_config &config)
m_speaker->set_levels(4, speaker_levels);
}
+void risc2500_state::montreux(machine_config &config)
+{
+ risc2500(config);
+ config.set_default_layout(layout_mephisto_montreux);
+}
+
/******************************************************************************
@@ -489,4 +507,4 @@ ROM_END
CONS( 1992, risc2500, 0, 0, risc2500, risc2500, risc2500_state, empty_init, "Saitek / Tasc", "Kasparov RISC 2500 (v1.04)", MACHINE_SUPPORTS_SAVE | MACHINE_CLICKABLE_ARTWORK )
CONS( 1992, risc2500a, risc2500, 0, risc2500, risc2500, risc2500_state, empty_init, "Saitek / Tasc", "Kasparov RISC 2500 (v1.03)", MACHINE_SUPPORTS_SAVE | MACHINE_CLICKABLE_ARTWORK )
-CONS( 1995, montreux, 0, 0, risc2500, risc2500, risc2500_state, empty_init, "Saitek / Tasc", "Mephisto Montreux", MACHINE_SUPPORTS_SAVE | MACHINE_CLICKABLE_ARTWORK ) // after Saitek bought Hegener + Glaser
+CONS( 1995, montreux, 0, 0, montreux, montreux, risc2500_state, empty_init, "Saitek / Tasc", "Mephisto Montreux", MACHINE_SUPPORTS_SAVE | MACHINE_CLICKABLE_ARTWORK ) // after Saitek bought Hegener + Glaser
diff --git a/src/mame/drivers/tasc.cpp b/src/mame/drivers/tasc.cpp
index 1e3a37524ca..0143bdd5c2e 100644
--- a/src/mame/drivers/tasc.cpp
+++ b/src/mame/drivers/tasc.cpp
@@ -277,24 +277,24 @@ void tasc_state::nvram_map(address_map &map)
static INPUT_PORTS_START( tasc )
PORT_START("IN.0")
- PORT_BIT(0x20, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_CODE(KEYCODE_G) PORT_NAME("PLAY")
- PORT_BIT(0x40, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_CODE(KEYCODE_LEFT) PORT_NAME("LEFT")
+ PORT_BIT(0x20, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_CODE(KEYCODE_G) PORT_NAME("PLAY")
+ PORT_BIT(0x40, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_CODE(KEYCODE_LEFT) PORT_NAME("LEFT")
PORT_BIT(0x80, IP_ACTIVE_HIGH, IPT_UNUSED)
PORT_START("IN.1")
- PORT_BIT(0x20, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_CODE(KEYCODE_BACKSPACE) PORT_NAME("BACK")
+ PORT_BIT(0x20, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_CODE(KEYCODE_B) PORT_CODE(KEYCODE_BACKSPACE) PORT_NAME("BACK")
PORT_BIT(0x40, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_CODE(KEYCODE_RIGHT) PORT_NAME("RIGHT")
PORT_BIT(0x80, IP_ACTIVE_HIGH, IPT_UNUSED)
PORT_START("IN.2")
- PORT_BIT(0x20, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_CODE(KEYCODE_M) PORT_NAME("MENU")
- PORT_BIT(0x40, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_CODE(KEYCODE_UP) PORT_NAME("UP")
- PORT_BIT(0x80, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_CODE(KEYCODE_L) PORT_NAME("Left Clock")
+ PORT_BIT(0x20, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_CODE(KEYCODE_M) PORT_NAME("MENU")
+ PORT_BIT(0x40, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_CODE(KEYCODE_UP) PORT_NAME("UP")
+ PORT_BIT(0x80, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_CODE(KEYCODE_L) PORT_NAME("Left Clock")
PORT_START("IN.3")
- PORT_BIT(0x20, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_CODE(KEYCODE_ENTER) PORT_NAME("ENTER")
- PORT_BIT(0x40, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_CODE(KEYCODE_DOWN) PORT_NAME("DOWN")
- PORT_BIT(0x80, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_CODE(KEYCODE_R) PORT_NAME("Right Clock")
+ PORT_BIT(0x20, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_CODE(KEYCODE_ENTER) PORT_CODE(KEYCODE_ENTER_PAD) PORT_NAME("ENTER")
+ PORT_BIT(0x40, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_CODE(KEYCODE_DOWN) PORT_NAME("DOWN")
+ PORT_BIT(0x80, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_CODE(KEYCODE_R) PORT_NAME("Right Clock")
PORT_START("FAKE")
PORT_CONFNAME( 0x01, 0x00, "CPU Frequency" ) PORT_CHANGED_MEMBER(DEVICE_SELF, tasc_state, switch_cpu_freq, 0)
diff --git a/src/mame/layout/mephisto_modena.lay b/src/mame/layout/mephisto_modena.lay
index 043921ccd28..d723be85b1f 100644
--- a/src/mame/layout/mephisto_modena.lay
+++ b/src/mame/layout/mephisto_modena.lay
@@ -431,6 +431,7 @@ license:CC0
+
diff --git a/src/mame/layout/mephisto_mondial.lay b/src/mame/layout/mephisto_mondial.lay
index 23f1d454190..fd8b13cbb89 100644
--- a/src/mame/layout/mephisto_mondial.lay
+++ b/src/mame/layout/mephisto_mondial.lay
@@ -350,6 +350,9 @@ license:CC0
+
+
+
@@ -413,6 +416,10 @@ license:CC0
+
+
+
+
@@ -436,6 +443,8 @@ license:CC0
+
+
@@ -455,11 +464,5 @@ license:CC0
-
-
-
-
-
-
diff --git a/src/mame/layout/mephisto_mondial2.lay b/src/mame/layout/mephisto_mondial2.lay
index 493e8c0f69e..1d4f995e5c6 100644
--- a/src/mame/layout/mephisto_mondial2.lay
+++ b/src/mame/layout/mephisto_mondial2.lay
@@ -350,6 +350,9 @@ license:CC0
+
+
+
@@ -413,6 +416,10 @@ license:CC0
+
+
+
+
@@ -436,6 +443,8 @@ license:CC0
+
+
@@ -455,11 +464,5 @@ license:CC0
-
-
-
-
-
-
diff --git a/src/mame/layout/mephisto_mondial68k.lay b/src/mame/layout/mephisto_mondial68k.lay
index 79bb8780067..4de8bef3044 100644
--- a/src/mame/layout/mephisto_mondial68k.lay
+++ b/src/mame/layout/mephisto_mondial68k.lay
@@ -348,6 +348,9 @@ license:CC0
+
+
+
@@ -437,8 +440,13 @@ license:CC0
+
+
+
+
+
@@ -458,11 +466,5 @@ license:CC0
-
-
-
-
-
-
diff --git a/src/mame/layout/mephisto_montec.lay b/src/mame/layout/mephisto_montec.lay
index 02d13f9594b..ae9692aad7e 100644
--- a/src/mame/layout/mephisto_montec.lay
+++ b/src/mame/layout/mephisto_montec.lay
@@ -396,6 +396,9 @@ license:CC0
+
+
+
@@ -482,6 +485,7 @@ license:CC0
+
diff --git a/src/mame/layout/mephisto_montreux.lay b/src/mame/layout/mephisto_montreux.lay
new file mode 100644
index 00000000000..f8bcdd818cf
--- /dev/null
+++ b/src/mame/layout/mephisto_montreux.lay
@@ -0,0 +1,533 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/src/mame/layout/mephisto_polgar.lay b/src/mame/layout/mephisto_polgar.lay
index e3618b188a8..5fdb939fa53 100644
--- a/src/mame/layout/mephisto_polgar.lay
+++ b/src/mame/layout/mephisto_polgar.lay
@@ -431,8 +431,7 @@ license:CC0
-
-
+
@@ -451,11 +450,10 @@ license:CC0
-
+
-
diff --git a/src/mame/layout/mephisto_risc.lay b/src/mame/layout/mephisto_risc.lay
index e3618b188a8..5fdb939fa53 100644
--- a/src/mame/layout/mephisto_risc.lay
+++ b/src/mame/layout/mephisto_risc.lay
@@ -431,8 +431,7 @@ license:CC0
-
-
+
@@ -451,11 +450,10 @@ license:CC0
-
+
-
diff --git a/src/mame/layout/mephisto_smondial.lay b/src/mame/layout/mephisto_smondial.lay
index a82503ba114..3660eab8f90 100644
--- a/src/mame/layout/mephisto_smondial.lay
+++ b/src/mame/layout/mephisto_smondial.lay
@@ -366,6 +366,9 @@ license:CC0
+
+
+
@@ -496,8 +499,13 @@ license:CC0
+
+
+
+
+
@@ -553,11 +561,5 @@ license:CC0
-
-
-
-
-
-
diff --git a/src/mame/layout/mephisto_smondial2.lay b/src/mame/layout/mephisto_smondial2.lay
index 7daf3e2d41e..43276750726 100644
--- a/src/mame/layout/mephisto_smondial2.lay
+++ b/src/mame/layout/mephisto_smondial2.lay
@@ -369,6 +369,9 @@ license:CC0
+
+
+
@@ -499,8 +502,13 @@ license:CC0
+
+
+
+
+
@@ -556,11 +564,5 @@ license:CC0
-
-
-
-
-
-
diff --git a/src/mame/layout/saitek_risc2500.lay b/src/mame/layout/saitek_risc2500.lay
index 265c42ed573..d2c806c90fb 100644
--- a/src/mame/layout/saitek_risc2500.lay
+++ b/src/mame/layout/saitek_risc2500.lay
@@ -13,10 +13,10 @@ license:CC0
-
+
-
+
@@ -30,93 +30,85 @@ license:CC0
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
-
+
+
-
+
-
+
-
+
-
+
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
-
+
+
@@ -153,8 +145,8 @@ license:CC0
-
-
+
+
@@ -276,34 +268,34 @@ license:CC0
-
+
-
+
-
+
-
+
-
+
-
+
-
+
@@ -402,12 +394,30 @@ license:CC0
-
-
-
+
+
+
+
+
+
+
+
+
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
@@ -423,112 +433,108 @@ license:CC0
-
-
-
-
-
-
-
-
-
-
+
-
+
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
-
-
-
-
-
+
+
+
+
+
+
+
+
+
-
-
-
-
-
-
+
+
+
+
+
-
-
-
-
-
+
+
+
+
+
+
-
-
-
-
-
-
+
+
+
+
+
-
-
-
-
-
-
+
+
+
+
+
+
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
-
+