summaryrefslogtreecommitdiffstatshomepage
diff options
context:
space:
mode:
author hap <happppp@users.noreply.github.com>2016-10-23 20:29:51 +0200
committer hap <happppp@users.noreply.github.com>2016-10-23 20:30:11 +0200
commit7f7ea72bf49a453e59f1c9e55ad6d68452585437 (patch)
tree90797d71abe6e2a91c780f88493f05cd1cd8878f
parent347b8cd92563b2925488098e38ddc79dac07ce89 (diff)
New working machine added
------------ Fidelity Designer 2100 Display [hap, Berger]
-rw-r--r--src/mame/drivers/fidel6502.cpp185
-rw-r--r--src/mame/includes/fidelz80.h2
-rw-r--r--src/mame/layout/fidel_chesster.lay48
-rw-r--r--src/mame/layout/fidel_des.lay (renamed from src/mame/layout/fidel_des2000.lay)0
-rw-r--r--src/mame/layout/fidel_desdis.lay459
-rw-r--r--src/mame/mame.lst1
6 files changed, 637 insertions, 58 deletions
diff --git a/src/mame/drivers/fidel6502.cpp b/src/mame/drivers/fidel6502.cpp
index f3a01f8b7d9..c1c64361ec4 100644
--- a/src/mame/drivers/fidel6502.cpp
+++ b/src/mame/drivers/fidel6502.cpp
@@ -238,7 +238,7 @@ CPU is a R65C02P4, running at 4MHz
NE556 dual-timer IC:
- timer#1, one-shot at power-on, to CPU _RESET
-- timer#2: R1=82K, R2=1K, C=22nf, to CPU _IRQ: ~780Hz, active low=15.25us
+- timer#2: R1=82K+50K pot at 26K, R2=1K, C=22nf, to CPU _IRQ: ~596Hz, active low=15.25us
Memory map:
-----------
@@ -356,11 +356,18 @@ Ricoh RP65C02G CPU, 3MHz XTAL
PCB label 510-1129A01
basically same as Excellence hardware, reskinned board
-Designer 1500 is on 80C50 hardware
+Designer 2100 (model 6103): same hardware, XTAL 5MHz?, ROMs unknown
Designer 2100 Display (model 6106)
----------------
-TODO
+8KB RAM(MS6264L-10), 2*32KB ROM(27C256)
+WDC W65C02P-6 CPU, 6MHz XTAL
+4-digit LCD panel
+PCB label 510-1130A01
+
+Designer 2000 Display (model 6105): same hardware, XTAL and ROMs unknown
+
+Designer 1500 is on 80C50 hardware
******************************************************************************
@@ -375,7 +382,7 @@ Ricoh RP65C02G CPU, 5MHz XTAL
8-bit DAC speech timed via IRQ, 128KB ROM(AMI custom label)
PCB label 510-1141C01
-I/O is via TTL, see source code for more info
+I/O is via TTL, very similar to Designer Display
******************************************************************************/
@@ -392,7 +399,8 @@ I/O is via TTL, see source code for more info
// internal artwork
#include "fidel_chesster.lh" // clickable
#include "fidel_csc.lh" // clickable, with preliminary boardpieces simulation
-#include "fidel_des2000.lh" // clickable
+#include "fidel_des.lh" // clickable
+#include "fidel_desdis.lh" // clickable
#include "fidel_eag.lh" // clickable
#include "fidel_eas.lh" // clickable
#include "fidel_ex.lh" // clickable
@@ -419,7 +427,7 @@ public:
TIMER_DEVICE_CALLBACK_MEMBER(irq_on) { m_maincpu->set_input_line(M6502_IRQ_LINE, ASSERT_LINE); }
TIMER_DEVICE_CALLBACK_MEMBER(irq_off) { m_maincpu->set_input_line(M6502_IRQ_LINE, CLEAR_LINE); }
-
+
// CSC, SU9, RSC
void csc_prepare_display();
DECLARE_READ8_MEMBER(csc_speech_r);
@@ -462,9 +470,14 @@ public:
DECLARE_READ8_MEMBER(fexcelb_ttl_r);
DECLARE_READ8_MEMBER(fexcel_ttl_r);
+ // Designer Display
+ DECLARE_WRITE8_MEMBER(fdesdis_control_w);
+ DECLARE_WRITE8_MEMBER(fdesdis_lcd_w);
+ DECLARE_READ8_MEMBER(fdesdis_input_r);
+ DECLARE_DRIVER_INIT(fdesdis);
+
// Chesster
DECLARE_WRITE8_MEMBER(chesster_control_w);
- DECLARE_READ8_MEMBER(chesster_input_r);
DECLARE_DRIVER_INIT(chesster);
};
@@ -802,7 +815,7 @@ WRITE8_MEMBER(fidel6502_state::fexcel_ttl_w)
uint8_t led_data = sel & 0xff;
m_inp_mux = sel & 0x1ff;
- // 7442 9: speaker out (optional?)
+ // 7442 9: speaker out
m_dac->write(BIT(sel, 9));
// 74259 Q4-Q7,Q2,Q1: digit/led select (active low)
@@ -861,6 +874,70 @@ READ8_MEMBER(fidel6502_state::fexcel_ttl_r)
/******************************************************************************
+ Designer Display
+******************************************************************************/
+
+// TTL/generic
+
+WRITE8_MEMBER(fidel6502_state::fdesdis_control_w)
+{
+ uint8_t q3_old = m_led_select & 8;
+
+ // a0-a2,d7: 74259
+ uint8_t mask = 1 << offset;
+ m_led_select = (m_led_select & ~mask) | ((data & 0x80) ? mask : 0);
+
+ // 74259 Q4-Q7: 7442 a0-a3
+ // 7442 0-8: led data, input mux
+ uint16_t sel = 1 << (m_led_select >> 4 & 0xf) & 0x3ff;
+ m_inp_mux = sel & 0x1ff;
+
+ // 7442 9: speaker out
+ m_dac->write(BIT(sel, 9));
+
+ // 74259 Q0,Q1: led select (active low)
+ display_matrix(9, 2, m_inp_mux, ~m_led_select & 3, false);
+
+ // 74259 Q2: book rom A14
+ membank("bank1")->set_entry(m_led_select >> 2 & 1);
+
+ // 74259 Q3: lcd common, update on rising edge
+ if (~q3_old & m_led_select & 8)
+ {
+ for (int i = 0; i < 4; i++)
+ m_display_state[i+2] = m_7seg_data >> (8*i) & 0xff;
+ }
+
+ m_display_maxy += 4;
+ set_display_segmask(0x3c, 0x7f);
+ display_update();
+}
+
+WRITE8_MEMBER(fidel6502_state::fdesdis_lcd_w)
+{
+ // a0-a2,d0-d3: 4*74259 to lcd digit segments
+ uint32_t mask = BITSWAP8(1 << offset,3,7,6,0,1,2,4,5);
+ for (int i = 0; i < 4; i++)
+ {
+ m_7seg_data = (m_7seg_data & ~mask) | ((data >> i & 1) ? 0 : mask);
+ mask <<= 8;
+ }
+}
+
+READ8_MEMBER(fidel6502_state::fdesdis_input_r)
+{
+ // a0-a2,d7: multiplexed inputs (active low)
+ return (read_inputs(9) >> offset & 1) ? 0 : 0x80;
+}
+
+DRIVER_INIT_MEMBER(fidel6502_state, fdesdis)
+{
+ membank("bank1")->configure_entries(0, 2, memregion("user1")->base(), 0x4000);
+}
+
+
+
+/******************************************************************************
Chesster
******************************************************************************/
@@ -886,15 +963,9 @@ WRITE8_MEMBER(fidel6502_state::chesster_control_w)
membank("bank1")->set_entry((m_led_select >> 2 & 3) | (m_speech_bank >> 1 & 4));
}
-READ8_MEMBER(fidel6502_state::chesster_input_r)
-{
- // a0-a2,d7: multiplexed inputs (active low)
- return (read_inputs(9) >> offset & 1) ? 0 : 0x80;
-}
-
DRIVER_INIT_MEMBER(fidel6502_state, chesster)
{
- membank("bank1")->configure_entries(0, 8, memregion("speech")->base(), 0x4000);
+ membank("bank1")->configure_entries(0, 8, memregion("user1")->base(), 0x4000);
}
@@ -1013,11 +1084,19 @@ static ADDRESS_MAP_START( fexcelb_map, AS_PROGRAM, 8, fidel6502_state )
ADDRESS_MAP_END
-// Chesster
+// Designer Display, Chesster
+
+static ADDRESS_MAP_START( fdesdis_map, AS_PROGRAM, 8, fidel6502_state )
+ AM_RANGE(0x0000, 0x1fff) AM_RAM
+ AM_RANGE(0x2000, 0x2007) AM_MIRROR(0x1ff8) AM_READWRITE(fdesdis_input_r, fdesdis_control_w)
+ AM_RANGE(0x4000, 0x7fff) AM_ROMBANK("bank1")
+ AM_RANGE(0x6000, 0x6007) AM_MIRROR(0x1ff8) AM_WRITE(fdesdis_lcd_w)
+ AM_RANGE(0x8000, 0xffff) AM_ROM
+ADDRESS_MAP_END
static ADDRESS_MAP_START( chesster_map, AS_PROGRAM, 8, fidel6502_state )
AM_RANGE(0x0000, 0x1fff) AM_RAM
- AM_RANGE(0x2000, 0x2007) AM_MIRROR(0x1ff8) AM_READWRITE(chesster_input_r, chesster_control_w)
+ AM_RANGE(0x2000, 0x2007) AM_MIRROR(0x1ff8) AM_READWRITE(fdesdis_input_r, chesster_control_w)
AM_RANGE(0x4000, 0x7fff) AM_ROMBANK("bank1")
AM_RANGE(0x6000, 0x6000) AM_MIRROR(0x1fff) AM_DEVWRITE("dac8", dac_byte_interface, write)
AM_RANGE(0x8000, 0xffff) AM_ROM
@@ -1422,7 +1501,7 @@ static INPUT_PORTS_START( fexcel )
PORT_CONFSETTING( 0x00, DEF_STR( Normal ) )
INPUT_PORTS_END
-static INPUT_PORTS_START( fdes2000 )
+static INPUT_PORTS_START( fdes )
PORT_INCLUDE( fexcel )
PORT_MODIFY("IN.9")
@@ -1430,18 +1509,28 @@ static INPUT_PORTS_START( fdes2000 )
INPUT_PORTS_END
-static INPUT_PORTS_START( chesster )
+static INPUT_PORTS_START( fdesdis )
PORT_INCLUDE( cb_buttons )
PORT_START("IN.8")
PORT_BIT(0x01, IP_ACTIVE_HIGH, IPT_KEYPAD) 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")
+ PORT_BIT(0x10, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_CODE(KEYCODE_C) PORT_NAME("Level / New")
+ PORT_BIT(0x20, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_CODE(KEYCODE_B) PORT_NAME("Option / Time")
+ PORT_BIT(0x40, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_CODE(KEYCODE_A) PORT_NAME("Verify / Problem")
+ PORT_BIT(0x80, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_CODE(KEYCODE_LSHIFT) PORT_CODE(KEYCODE_RSHIFT) PORT_NAME("Shift")
+INPUT_PORTS_END
+
+static INPUT_PORTS_START( chesster )
+ PORT_INCLUDE( fdesdis )
+
+ PORT_MODIFY("IN.8")
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")
- PORT_BIT(0x10, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_CODE(KEYCODE_C) PORT_NAME("Level / New")
PORT_BIT(0x20, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_CODE(KEYCODE_B) PORT_NAME("Option / Replay")
- PORT_BIT(0x40, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_CODE(KEYCODE_A) PORT_NAME("Verify / Problem")
- PORT_BIT(0x80, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_CODE(KEYCODE_LSHIFT) PORT_CODE(KEYCODE_RSHIFT) PORT_NAME("Shift")
INPUT_PORTS_END
@@ -1572,9 +1661,9 @@ static MACHINE_CONFIG_START( sc9, fidel6502_state )
/* basic machine hardware */
MCFG_CPU_ADD("maincpu", M6502, 1400000) // from ceramic resonator "681 JSA", measured
MCFG_CPU_PROGRAM_MAP(sc9_map)
- MCFG_TIMER_DRIVER_ADD_PERIODIC("irq_on", fidel6502_state, irq_on, attotime::from_hz(602)) // from 555 timer, measured
- MCFG_TIMER_START_DELAY(attotime::from_hz(602) - attotime::from_usec(42)) // active for 42us
- MCFG_TIMER_DRIVER_ADD_PERIODIC("irq_off", fidel6502_state, irq_off, attotime::from_hz(602))
+ MCFG_TIMER_DRIVER_ADD_PERIODIC("irq_on", fidel6502_state, irq_on, attotime::from_hz(610)) // from 555 timer (22nf, 102K, 2.7K)
+ MCFG_TIMER_START_DELAY(attotime::from_hz(610) - attotime::from_usec(41)) // active for 41us
+ MCFG_TIMER_DRIVER_ADD_PERIODIC("irq_off", fidel6502_state, irq_off, attotime::from_hz(610))
MCFG_TIMER_DRIVER_ADD_PERIODIC("display_decay", fidelz80base_state, display_decay_tick, attotime::from_msec(1))
MCFG_DEFAULT_LAYOUT(layout_fidel_sc9)
@@ -1613,9 +1702,9 @@ static MACHINE_CONFIG_START( sc12, fidel6502_state )
/* basic machine hardware */
MCFG_CPU_ADD("maincpu", R65C02, XTAL_4MHz)
MCFG_CPU_PROGRAM_MAP(sc12_map)
- MCFG_TIMER_DRIVER_ADD_PERIODIC("irq_on", fidel6502_state, irq_on, attotime::from_hz(780)) // from 556 timer (22nf, 82kohm, 1kohm)
- MCFG_TIMER_START_DELAY(attotime::from_hz(780) - attotime::from_nsec(15250)) // active for 15.25us
- MCFG_TIMER_DRIVER_ADD_PERIODIC("irq_off", fidel6502_state, irq_off, attotime::from_hz(780))
+ MCFG_TIMER_DRIVER_ADD_PERIODIC("irq_on", fidel6502_state, irq_on, attotime::from_hz(596)) // from 556 timer (22nf, 82K+26K, 1K)
+ MCFG_TIMER_START_DELAY(attotime::from_hz(596) - attotime::from_nsec(15250)) // active for 15.25us
+ MCFG_TIMER_DRIVER_ADD_PERIODIC("irq_off", fidel6502_state, irq_off, attotime::from_hz(596))
MCFG_TIMER_DRIVER_ADD_PERIODIC("display_decay", fidelz80base_state, display_decay_tick, attotime::from_msec(1))
MCFG_DEFAULT_LAYOUT(layout_fidel_sc12)
@@ -1638,7 +1727,7 @@ static MACHINE_CONFIG_START( fexcel, fidel6502_state )
/* basic machine hardware */
MCFG_CPU_ADD("maincpu", M65SC02, XTAL_12MHz/4) // G65SC102P-3, 12.0M ceramic resonator
MCFG_CPU_PROGRAM_MAP(fexcel_map)
- MCFG_TIMER_DRIVER_ADD_PERIODIC("irq_on", fidel6502_state, irq_on, attotime::from_hz(630)) // from 556 timer (22nf, 102kohm, 1kohm)
+ MCFG_TIMER_DRIVER_ADD_PERIODIC("irq_on", fidel6502_state, irq_on, attotime::from_hz(630)) // from 556 timer (22nf, 102K, 1K)
MCFG_TIMER_START_DELAY(attotime::from_hz(630) - attotime::from_nsec(15250)) // active for 15.25us
MCFG_TIMER_DRIVER_ADD_PERIODIC("irq_off", fidel6502_state, irq_off, attotime::from_hz(630))
@@ -1675,11 +1764,11 @@ static MACHINE_CONFIG_DERIVED( fdes2000, fexcel )
// change irq timer frequency
MCFG_DEVICE_REMOVE("irq_on")
MCFG_DEVICE_REMOVE("irq_off")
- MCFG_TIMER_DRIVER_ADD_PERIODIC("irq_on", fidel6502_state, irq_on, attotime::from_hz(585)) // from 556 timer (22nf, 110kohm, 1kohm)
+ MCFG_TIMER_DRIVER_ADD_PERIODIC("irq_on", fidel6502_state, irq_on, attotime::from_hz(585)) // from 556 timer (22nf, 110K, 1K)
MCFG_TIMER_START_DELAY(attotime::from_hz(585) - attotime::from_nsec(15250)) // active for 15.25us
MCFG_TIMER_DRIVER_ADD_PERIODIC("irq_off", fidel6502_state, irq_off, attotime::from_hz(585))
- MCFG_DEFAULT_LAYOUT(layout_fidel_des2000)
+ MCFG_DEFAULT_LAYOUT(layout_fidel_des)
MACHINE_CONFIG_END
static MACHINE_CONFIG_DERIVED( fexcelv, fexcelb )
@@ -1696,6 +1785,25 @@ static MACHINE_CONFIG_DERIVED( fexceld, fexcelb )
MCFG_DEFAULT_LAYOUT(layout_fidel_exd)
MACHINE_CONFIG_END
+static MACHINE_CONFIG_START( fdes2100d, fidel6502_state )
+
+ /* basic machine hardware */
+ MCFG_CPU_ADD("maincpu", M65C02, XTAL_6MHz) // W65C02P-6
+ MCFG_CPU_PROGRAM_MAP(fdesdis_map)
+ MCFG_TIMER_DRIVER_ADD_PERIODIC("irq_on", fidel6502_state, irq_on, attotime::from_hz(630)) // from 556 timer (22nf, 102K, 1K)
+ MCFG_TIMER_START_DELAY(attotime::from_hz(630) - attotime::from_nsec(15250)) // active for 15.25us
+ MCFG_TIMER_DRIVER_ADD_PERIODIC("irq_off", fidel6502_state, irq_off, attotime::from_hz(630))
+
+ MCFG_TIMER_DRIVER_ADD_PERIODIC("display_decay", fidelz80base_state, display_decay_tick, attotime::from_msec(1))
+ MCFG_DEFAULT_LAYOUT(layout_fidel_desdis)
+
+ /* sound hardware */
+ MCFG_SPEAKER_STANDARD_MONO("speaker")
+ MCFG_SOUND_ADD("dac", DAC_1BIT, 0) MCFG_SOUND_ROUTE(ALL_OUTPUTS, "speaker", 0.25)
+ MCFG_DEVICE_ADD("vref", VOLTAGE_REGULATOR, 0) MCFG_VOLTAGE_REGULATOR_OUTPUT(5.0)
+ MCFG_SOUND_ROUTE_EX(0, "dac", 1.0, DAC_VREF_POS_INPUT)
+MACHINE_CONFIG_END
+
static MACHINE_CONFIG_START( chesster, fidel6502_state )
/* basic machine hardware */
@@ -2060,11 +2168,20 @@ ROM_START( fdes2000 )
ROM_END
+ROM_START( fdes2100d ) // The 'rev B' dump came from a post-release bugfix by Fidelity
+ ROM_REGION( 0x10000, "maincpu", 0 )
+ ROM_LOAD("i9_orange.ic9", 0x8000, 0x8000, CRC(83fec02a) SHA1(6f43ab05bc605061989b05d0592dbd184efff9d4) ) // WSI 27C256L-12
+
+ ROM_REGION( 0x8000, "user1", 0 )
+ ROM_LOAD("bk3_white.ic10", 0x0000, 0x8000, CRC(3857cc35) SHA1(f073dafb9fd885c7ddb7fbff10e3653f343ef1c6) ) // WSI 27C256L-12
+ROM_END
+
+
ROM_START( chesster )
ROM_REGION( 0x10000, "maincpu", 0 )
ROM_LOAD("chesster.ic9", 0x8000, 0x8000, CRC(29f9a698) SHA1(4c83ca46fd5fc9c40302e9c7f16b4ae2c18b06e6) ) // M27C256B, sticker but no label
- ROM_REGION( 0x20000, "speech", 0 )
+ ROM_REGION( 0x20000, "user1", 0 )
ROM_LOAD("101-1091a02.ic10", 0x0000, 0x20000, CRC(2b4d243c) SHA1(921e51978facb502b207b4f64a73b1e74127e826) ) // AMI, 27C010 or equivalent
ROM_END
@@ -2114,6 +2231,8 @@ CONS( 1985, fexcela, fexcel, 0, fexcel, fexcel, driver_device, 0
CONS( 1985, fexcelb, fexcel, 0, fexcel, fexcel, driver_device, 0, "Fidelity Electronics", "The Excellence (model 6080)", MACHINE_SUPPORTS_SAVE | MACHINE_CLICKABLE_ARTWORK )
CONS( 1986, fexcelp, fexcel, 0, fexcelp, fexcel, driver_device, 0, "Fidelity Electronics", "The Par Excellence", MACHINE_SUPPORTS_SAVE | MACHINE_CLICKABLE_ARTWORK )
-CONS( 1989, fdes2000, 0, 0, fdes2000, fdes2000, driver_device, 0, "Fidelity Electronics", "Designer 2000", MACHINE_SUPPORTS_SAVE | MACHINE_CLICKABLE_ARTWORK ) // Excellence series hardware
+CONS( 1989, fdes2000, 0, 0, fdes2000, fdes, driver_device, 0, "Fidelity Electronics", "Designer 2000", MACHINE_SUPPORTS_SAVE | MACHINE_CLICKABLE_ARTWORK ) // Excellence series hardware
+
+CONS( 1988, fdes2100d, 0, 0, fdes2100d, fdesdis, fidel6502_state, fdesdis, "Fidelity Electronics", "Designer 2100 Display (rev. B)", MACHINE_SUPPORTS_SAVE | MACHINE_CLICKABLE_ARTWORK )
CONS( 1990, chesster, 0, 0, chesster, chesster, fidel6502_state, chesster, "Fidelity Electronics", "Chesster Challenger", MACHINE_SUPPORTS_SAVE | MACHINE_CLICKABLE_ARTWORK )
diff --git a/src/mame/includes/fidelz80.h b/src/mame/includes/fidelz80.h
index 5889c0f3b6d..5ce7e1f6c82 100644
--- a/src/mame/includes/fidelz80.h
+++ b/src/mame/includes/fidelz80.h
@@ -41,7 +41,7 @@ public:
// misc common
uint16_t m_inp_mux; // multiplexed keypad/leds mask
uint16_t m_led_select;
- uint16_t m_7seg_data; // data for seg leds
+ uint32_t m_7seg_data; // data for seg leds
uint16_t m_led_data;
uint8_t m_speech_data;
uint8_t m_speech_bank; // speech rom higher address bits
diff --git a/src/mame/layout/fidel_chesster.lay b/src/mame/layout/fidel_chesster.lay
index cd2044bf41e..22bfb3bc735 100644
--- a/src/mame/layout/fidel_chesster.lay
+++ b/src/mame/layout/fidel_chesster.lay
@@ -375,45 +375,45 @@
<bezel element="text_black"><bounds x="43" y="87.5" width="10" height="2" /></bezel>
<bezel element="text_s1"><bounds x="3" y="89.7" width="10" height="1.8" /></bezel>
- <bezel element="text_s2"><bounds x="13" y="89.7" width="10" height="1.8" /></bezel>
- <bezel element="text_s3"><bounds x="23" y="89.7" width="10" height="1.8" /></bezel>
- <bezel element="text_s4"><bounds x="53" y="89.7" width="10" height="1.8" /></bezel>
- <bezel element="text_s5"><bounds x="63" y="89.7" width="10" height="1.8" /></bezel>
+ <bezel element="text_s2"><bounds x="12" y="89.7" width="10" height="1.8" /></bezel>
+ <bezel element="text_s3"><bounds x="21" y="89.7" width="10" height="1.8" /></bezel>
+ <bezel element="text_s4"><bounds x="55" y="89.7" width="10" height="1.8" /></bezel>
+ <bezel element="text_s5"><bounds x="64" y="89.7" width="10" height="1.8" /></bezel>
<bezel element="text_s6"><bounds x="73" y="89.7" width="10" height="1.8" /></bezel>
<bezel element="text_u1"><bounds x="3" y="96.3" width="10" height="1.8" /></bezel>
- <bezel element="text_u2"><bounds x="13" y="96.3" width="10" height="1.8" /></bezel>
- <bezel element="text_u3"><bounds x="23" y="96.3" width="10" height="1.8" /></bezel>
- <bezel element="text_u4"><bounds x="53" y="96.3" width="10" height="1.8" /></bezel>
- <bezel element="text_u5"><bounds x="63" y="96.3" width="10" height="1.8" /></bezel>
+ <bezel element="text_u2"><bounds x="12" y="96.3" width="10" height="1.8" /></bezel>
+ <bezel element="text_u3"><bounds x="21" y="96.3" width="10" height="1.8" /></bezel>
+ <bezel element="text_u4"><bounds x="55" y="96.3" width="10" height="1.8" /></bezel>
+ <bezel element="text_u5"><bounds x="64" y="96.3" width="10" height="1.8" /></bezel>
<bezel element="text_u6"><bounds x="73" y="96.3" width="10" height="1.8" /></bezel>
<bezel element="text_king"><bounds x="3" y="98" width="10" height="4" /></bezel>
- <bezel element="text_queen"><bounds x="13" y="98" width="10" height="4" /></bezel>
- <bezel element="text_rook"><bounds x="23" y="98" width="10" height="4" /></bezel>
- <bezel element="text_bishop"><bounds x="53" y="98" width="10" height="4" /></bezel>
- <bezel element="text_knight"><bounds x="63" y="98" width="10" height="4" /></bezel>
+ <bezel element="text_queen"><bounds x="12" y="98" width="10" height="4" /></bezel>
+ <bezel element="text_rook"><bounds x="21" y="98" width="10" height="4" /></bezel>
+ <bezel element="text_bishop"><bounds x="55" y="98" width="10" height="4" /></bezel>
+ <bezel element="text_knight"><bounds x="64" y="98" width="10" height="4" /></bezel>
<bezel element="text_pion"><bounds x="73" y="98" width="10" height="4" /></bezel>
<bezel element="disk_black"><bounds x="6" y="92" width="4" height="4" /></bezel>
- <bezel element="disk_black"><bounds x="16" y="92" width="4" height="4" /></bezel>
- <bezel element="disk_black"><bounds x="26" y="92" width="4" height="4" /></bezel>
- <bezel element="disk_black"><bounds x="56" y="92" width="4" height="4" /></bezel>
- <bezel element="disk_black"><bounds x="66" y="92" width="4" height="4" /></bezel>
+ <bezel element="disk_black"><bounds x="15" y="92" width="4" height="4" /></bezel>
+ <bezel element="disk_black"><bounds x="24" y="92" width="4" height="4" /></bezel>
+ <bezel element="disk_black"><bounds x="58" y="92" width="4" height="4" /></bezel>
+ <bezel element="disk_black"><bounds x="67" y="92" width="4" height="4" /></bezel>
<bezel element="disk_black"><bounds x="76" y="92" width="4" height="4" /></bezel>
<bezel element="disk_white"><bounds x="6.5" y="92.5" width="3" height="3" /></bezel>
- <bezel element="disk_white"><bounds x="16.5" y="92.5" width="3" height="3" /></bezel>
- <bezel element="disk_white"><bounds x="26.5" y="92.5" width="3" height="3" /></bezel>
- <bezel element="disk_white"><bounds x="56.5" y="92.5" width="3" height="3" /></bezel>
- <bezel element="disk_white"><bounds x="66.5" y="92.5" width="3" height="3" /></bezel>
+ <bezel element="disk_white"><bounds x="15.5" y="92.5" width="3" height="3" /></bezel>
+ <bezel element="disk_white"><bounds x="24.5" y="92.5" width="3" height="3" /></bezel>
+ <bezel element="disk_white"><bounds x="58.5" y="92.5" width="3" height="3" /></bezel>
+ <bezel element="disk_white"><bounds x="67.5" y="92.5" width="3" height="3" /></bezel>
<bezel element="disk_white"><bounds x="76.5" y="92.5" width="3" height="3" /></bezel>
<bezel element="hlb" inputtag="IN.8" inputmask="0x40"><bounds x="6" y="92" width="4" height="4" /><color alpha="0.3" /></bezel>
- <bezel element="hlb" inputtag="IN.8" inputmask="0x20"><bounds x="16" y="92" width="4" height="4" /><color alpha="0.3" /></bezel>
- <bezel element="hlb" inputtag="IN.8" inputmask="0x10"><bounds x="26" y="92" width="4" height="4" /><color alpha="0.3" /></bezel>
- <bezel element="hlb" inputtag="IN.8" inputmask="0x08"><bounds x="56" y="92" width="4" height="4" /><color alpha="0.3" /></bezel>
- <bezel element="hlb" inputtag="IN.8" inputmask="0x04"><bounds x="66" y="92" width="4" height="4" /><color alpha="0.3" /></bezel>
+ <bezel element="hlb" inputtag="IN.8" inputmask="0x20"><bounds x="15" y="92" width="4" height="4" /><color alpha="0.3" /></bezel>
+ <bezel element="hlb" inputtag="IN.8" inputmask="0x10"><bounds x="24" y="92" width="4" height="4" /><color alpha="0.3" /></bezel>
+ <bezel element="hlb" inputtag="IN.8" inputmask="0x08"><bounds x="58" y="92" width="4" height="4" /><color alpha="0.3" /></bezel>
+ <bezel element="hlb" inputtag="IN.8" inputmask="0x04"><bounds x="67" y="92" width="4" height="4" /><color alpha="0.3" /></bezel>
<bezel element="hlb" inputtag="IN.8" inputmask="0x02"><bounds x="76" y="92" width="4" height="4" /><color alpha="0.3" /></bezel>
<bezel element="redb"><bounds x="-5" y="91" width="8" height="6" /></bezel>
diff --git a/src/mame/layout/fidel_des2000.lay b/src/mame/layout/fidel_des.lay
index 238b0b5562d..238b0b5562d 100644
--- a/src/mame/layout/fidel_des2000.lay
+++ b/src/mame/layout/fidel_des.lay
diff --git a/src/mame/layout/fidel_desdis.lay b/src/mame/layout/fidel_desdis.lay
new file mode 100644
index 00000000000..18921dbee47
--- /dev/null
+++ b/src/mame/layout/fidel_desdis.lay
@@ -0,0 +1,459 @@
+<?xml version="1.0"?>
+<mamelayout version="2">
+
+<!-- define elements -->
+
+ <element name="static_black"><rect><color red="0" green="0" blue="0" /></rect></element>
+
+<!-- our digit element is bright-on-dark, this means the lcd panel is the wrong colour here -->
+
+ <element name="digit" defstate="0">
+ <led7seg><color red="1.0" green="1.0" blue="1.0" /></led7seg>
+ </element>
+ <element name="ldot" defstate="0">
+ <rect state="1"><color red="1.0" green="1.0" blue="1.0" /></rect>
+ <rect state="0"><color red="0.1" green="0.1" blue="0.1" /></rect>
+ </element>
+
+ <element name="led" defstate="0">
+ <disk state="1"><color red="1.0" green="0.1" blue="0.15" /></disk>
+ <disk state="0"><color red="0.1" green="0.01" blue="0.015" /></disk>
+ </element>
+
+ <element name="hl" defstate="0">
+ <text string=" ">
+ <bounds x="0.0" y="0.0" width="1.0" height="1.0" />
+ <color red="0.0" green="0.0" blue="0.0" />
+ </text>
+ <disk state="1">
+ <bounds x="0.12" y="0.12" width="0.76" height="0.76" />
+ <color red="1.0" green="1.0" blue="1.0" />
+ </disk>
+ </element>
+ <element name="hlb" defstate="0">
+ <text string=" ">
+ <bounds x="0.0" y="0.0" width="1.0" height="1.0" />
+ <color red="0.0" green="0.0" blue="0.0" />
+ </text>
+ <disk state="1">
+ <bounds x="0.0" y="0.0" width="1.0" height="1.0" />
+ <color red="1.0" green="1.0" blue="1.0" />
+ </disk>
+ </element>
+ <element name="hlr" defstate="0">
+ <text string=" ">
+ <bounds x="0" y="0" width="8" height="6" />
+ <color red="0.0" green="0.0" blue="0.0" />
+ </text>
+ <disk state="1">
+ <bounds x="2" y="1" width="4" height="4" />
+ <color red="1.0" green="1.0" blue="1.0" />
+ </disk>
+ </element>
+
+ <element name="black"><rect><color red="0.17" green="0.15" blue="0.15" /></rect></element>
+ <element name="white"><rect><color red="0.81" green="0.8" blue="0.79" /></rect></element>
+ <element name="redb"><rect><color red="0.81" green="0.3" blue="0.29" /></rect></element>
+ <element name="disk_black"><disk><color red="0.17" green="0.15" blue="0.15" /></disk></element>
+ <element name="disk_white"><disk><color red="0.81" green="0.8" blue="0.79" /></disk></element>
+
+ <element name="text_1">
+ <rect><color red="0.81" green="0.8" blue="0.79" /></rect>
+ <text string="1"><color red="0.01" green="0.01" blue="0.01" /></text>
+ </element>
+ <element name="text_2">
+ <rect><color red="0.81" green="0.8" blue="0.79" /></rect>
+ <text string="2"><color red="0.01" green="0.01" blue="0.01" /></text>
+ </element>
+ <element name="text_3">
+ <rect><color red="0.81" green="0.8" blue="0.79" /></rect>
+ <text string="3"><color red="0.01" green="0.01" blue="0.01" /></text>
+ </element>
+ <element name="text_4">
+ <rect><color red="0.81" green="0.8" blue="0.79" /></rect>
+ <text string="4"><color red="0.01" green="0.01" blue="0.01" /></text>
+ </element>
+ <element name="text_5">
+ <rect><color red="0.81" green="0.8" blue="0.79" /></rect>
+ <text string="5"><color red="0.01" green="0.01" blue="0.01" /></text>
+ </element>
+ <element name="text_6">
+ <rect><color red="0.81" green="0.8" blue="0.79" /></rect>
+ <text string="6"><color red="0.01" green="0.01" blue="0.01" /></text>
+ </element>
+ <element name="text_7">
+ <rect><color red="0.81" green="0.8" blue="0.79" /></rect>
+ <text string="7"><color red="0.01" green="0.01" blue="0.01" /></text>
+ </element>
+ <element name="text_8">
+ <rect><color red="0.81" green="0.8" blue="0.79" /></rect>
+ <text string="8"><color red="0.01" green="0.01" blue="0.01" /></text>
+ </element>
+
+ <element name="text_a">
+ <rect><color red="0.81" green="0.8" blue="0.79" /></rect>
+ <text string="A"><color red="0.01" green="0.01" blue="0.01" /></text>
+ </element>
+ <element name="text_b">
+ <rect><color red="0.81" green="0.8" blue="0.79" /></rect>
+ <text string="B"><color red="0.01" green="0.01" blue="0.01" /></text>
+ </element>
+ <element name="text_c">
+ <rect><color red="0.81" green="0.8" blue="0.79" /></rect>
+ <text string="C"><color red="0.01" green="0.01" blue="0.01" /></text>
+ </element>
+ <element name="text_d">
+ <rect><color red="0.81" green="0.8" blue="0.79" /></rect>
+ <text string="D"><color red="0.01" green="0.01" blue="0.01" /></text>
+ </element>
+ <element name="text_e">
+ <rect><color red="0.81" green="0.8" blue="0.79" /></rect>
+ <text string="E"><color red="0.01" green="0.01" blue="0.01" /></text>
+ </element>
+ <element name="text_f">
+ <rect><color red="0.81" green="0.8" blue="0.79" /></rect>
+ <text string="F"><color red="0.01" green="0.01" blue="0.01" /></text>
+ </element>
+ <element name="text_g">
+ <rect><color red="0.81" green="0.8" blue="0.79" /></rect>
+ <text string="G"><color red="0.01" green="0.01" blue="0.01" /></text>
+ </element>
+ <element name="text_h">
+ <rect><color red="0.81" green="0.8" blue="0.79" /></rect>
+ <text string="H"><color red="0.01" green="0.01" blue="0.01" /></text>
+ </element>
+
+ <element name="text_white">
+ <rect><color red="0.81" green="0.8" blue="0.79" /></rect>
+ <text string="WHITE"><color red="0.01" green="0.01" blue="0.01" /></text>
+ </element>
+ <element name="text_black">
+ <rect><color red="0.81" green="0.8" blue="0.79" /></rect>
+ <text string="BLACK"><color red="0.01" green="0.01" blue="0.01" /></text>
+ </element>
+ <element name="text_clear">
+ <rect><color red="0.81" green="0.8" blue="0.79" /></rect>
+ <text string="CLEAR"><color red="0.01" green="0.01" blue="0.01" /></text>
+ </element>
+ <element name="text_u1">
+ <rect><color red="0.81" green="0.8" blue="0.79" /></rect>
+ <text string="VERIFY"><color red="0.01" green="0.01" blue="0.01" /></text>
+ </element>
+ <element name="text_u2">
+ <rect><color red="0.81" green="0.8" blue="0.79" /></rect>
+ <text string="OPTION"><color red="0.01" green="0.01" blue="0.01" /></text>
+ </element>
+ <element name="text_u3">
+ <rect><color red="0.81" green="0.8" blue="0.79" /></rect>
+ <text string="LEVEL"><color red="0.01" green="0.01" blue="0.01" /></text>
+ </element>
+ <element name="text_u4">
+ <rect><color red="0.81" green="0.8" blue="0.79" /></rect>
+ <text string="TAKE BACK"><color red="0.01" green="0.01" blue="0.01" /></text>
+ </element>
+ <element name="text_u5">
+ <rect><color red="0.81" green="0.8" blue="0.79" /></rect>
+ <text string="HINT"><color red="0.01" green="0.01" blue="0.01" /></text>
+ </element>
+ <element name="text_u6">
+ <rect><color red="0.81" green="0.8" blue="0.79" /></rect>
+ <text string="MOVE"><color red="0.01" green="0.01" blue="0.01" /></text>
+ </element>
+
+ <element name="text_shift">
+ <rect><color red="0.81" green="0.8" blue="0.79" /></rect>
+ <text string="SHIFT"><color red="0.81" green="0.3" blue="0.29" /></text>
+ </element>
+ <element name="text_s1">
+ <rect><color red="0.81" green="0.8" blue="0.79" /></rect>
+ <text string="PROBLEM"><color red="0.81" green="0.3" blue="0.29" /></text>
+ </element>
+ <element name="text_s2">
+ <rect><color red="0.81" green="0.8" blue="0.79" /></rect>
+ <text string="TIME"><color red="0.81" green="0.3" blue="0.29" /></text>
+ </element>
+ <element name="text_s3">
+ <rect><color red="0.81" green="0.8" blue="0.79" /></rect>
+ <text string="NEW"><color red="0.81" green="0.3" blue="0.29" /></text>
+ </element>
+ <element name="text_s4">
+ <rect><color red="0.81" green="0.8" blue="0.79" /></rect>
+ <text string="REPLAY"><color red="0.81" green="0.3" blue="0.29" /></text>
+ </element>
+ <element name="text_s5">
+ <rect><color red="0.81" green="0.8" blue="0.79" /></rect>
+ <text string="INFO"><color red="0.81" green="0.3" blue="0.29" /></text>
+ </element>
+ <element name="text_s6">
+ <rect><color red="0.81" green="0.8" blue="0.79" /></rect>
+ <text string="ALTERNATE"><color red="0.81" green="0.3" blue="0.29" /></text>
+ </element>
+
+ <element name="text_king">
+ <rect><color red="0.81" green="0.8" blue="0.79" /></rect>
+ <text string="&#x265a;"><color red="0.17" green="0.15" blue="0.15" /></text>
+ </element>
+ <element name="text_queen">
+ <rect><color red="0.81" green="0.8" blue="0.79" /></rect>
+ <text string="&#x265b;"><color red="0.17" green="0.15" blue="0.15" /></text>
+ </element>
+ <element name="text_rook">
+ <rect><color red="0.81" green="0.8" blue="0.79" /></rect>
+ <text string="&#x265c;"><color red="0.17" green="0.15" blue="0.15" /></text>
+ </element>
+ <element name="text_bishop">
+ <rect><color red="0.81" green="0.8" blue="0.79" /></rect>
+ <text string="&#x265d;"><color red="0.17" green="0.15" blue="0.15" /></text>
+ </element>
+ <element name="text_knight">
+ <rect><color red="0.81" green="0.8" blue="0.79" /></rect>
+ <text string="&#x265e;"><color red="0.17" green="0.15" blue="0.15" /></text>
+ </element>
+ <element name="text_pion">
+ <rect><color red="0.81" green="0.8" blue="0.79" /></rect>
+ <text string="&#x265f;"><color red="0.17" green="0.15" blue="0.15" /></text>
+ </element>
+
+
+<!-- build screen -->
+
+ <view name="Internal Layout">
+ <bounds left="-7" right="93" top="-2" bottom="103" />
+
+ <bezel element="white"><bounds x="-7.5" y="-2.5" width="101" height="106" /></bezel>
+
+ <!-- chessboard coords -->
+
+ <bezel element="text_8"><bounds x="-3.25" y="7" width="2" height="2" /></bezel>
+ <bezel element="text_7"><bounds x="-3.25" y="17" width="2" height="2" /></bezel>
+ <bezel element="text_6"><bounds x="-3.25" y="27" width="2" height="2" /></bezel>
+ <bezel element="text_5"><bounds x="-3.25" y="37" width="2" height="2" /></bezel>
+ <bezel element="text_4"><bounds x="-3.25" y="47" width="2" height="2" /></bezel>
+ <bezel element="text_3"><bounds x="-3.25" y="57" width="2" height="2" /></bezel>
+ <bezel element="text_2"><bounds x="-3.25" y="67" width="2" height="2" /></bezel>
+ <bezel element="text_1"><bounds x="-3.25" y="77" width="2" height="2" /></bezel>
+
+ <bezel element="text_a"><bounds x="5" y="85" width="2" height="2" /></bezel>
+ <bezel element="text_b"><bounds x="15" y="85" width="2" height="2" /></bezel>
+ <bezel element="text_c"><bounds x="25" y="85" width="2" height="2" /></bezel>
+ <bezel element="text_d"><bounds x="35" y="85" width="2" height="2" /></bezel>
+ <bezel element="text_e"><bounds x="45" y="85" width="2" height="2" /></bezel>
+ <bezel element="text_f"><bounds x="55" y="85" width="2" height="2" /></bezel>
+ <bezel element="text_g"><bounds x="65" y="85" width="2" height="2" /></bezel>
+ <bezel element="text_h"><bounds x="75" y="85" width="2" height="2" /></bezel>
+
+ <!-- chessboard leds -->
+
+ <bezel name="0.7" element="led"><bounds x="-1" y="7.25" width="1.5" height="1.5" /></bezel>
+ <bezel name="0.6" element="led"><bounds x="-1" y="17.25" width="1.5" height="1.5" /></bezel>
+ <bezel name="0.5" element="led"><bounds x="-1" y="27.25" width="1.5" height="1.5" /></bezel>
+ <bezel name="0.4" element="led"><bounds x="-1" y="37.25" width="1.5" height="1.5" /></bezel>
+ <bezel name="0.3" element="led"><bounds x="-1" y="47.25" width="1.5" height="1.5" /></bezel>
+ <bezel name="0.2" element="led"><bounds x="-1" y="57.25" width="1.5" height="1.5" /></bezel>
+ <bezel name="0.1" element="led"><bounds x="-1" y="67.25" width="1.5" height="1.5" /></bezel>
+ <bezel name="0.0" element="led"><bounds x="-1" y="77.25" width="1.5" height="1.5" /></bezel>
+
+ <bezel name="1.0" element="led"><bounds x="7.25" y="85.5" width="1.5" height="1.5" /></bezel>
+ <bezel name="1.1" element="led"><bounds x="17.25" y="85.5" width="1.5" height="1.5" /></bezel>
+ <bezel name="1.2" element="led"><bounds x="27.25" y="85.5" width="1.5" height="1.5" /></bezel>
+ <bezel name="1.3" element="led"><bounds x="37.25" y="85.5" width="1.5" height="1.5" /></bezel>
+ <bezel name="1.4" element="led"><bounds x="47.25" y="85.5" width="1.5" height="1.5" /></bezel>
+ <bezel name="1.5" element="led"><bounds x="57.25" y="85.5" width="1.5" height="1.5" /></bezel>
+ <bezel name="1.6" element="led"><bounds x="67.25" y="85.5" width="1.5" height="1.5" /></bezel>
+ <bezel name="1.7" element="led"><bounds x="77.25" y="85.5" width="1.5" height="1.5" /></bezel>
+
+ <!-- chessboard bezel -->
+
+ <bezel element="black"><bounds x="2" y="2" width="82" height="82" /></bezel>
+ <bezel element="white"><bounds x="3" y="3" width="80" height="80" /></bezel>
+
+ <bezel element="black"><bounds x="13" y="2.5" width="10" height="10.5" /></bezel>
+ <bezel element="black"><bounds x="33" y="2.5" width="10" height="10.5" /></bezel>
+ <bezel element="black"><bounds x="53" y="2.5" width="10" height="10.5" /></bezel>
+ <bezel element="black"><bounds x="73" y="2.5" width="10.5" height="10.5" /></bezel>
+
+ <bezel element="black"><bounds x="2.5" y="13" width="10.5" height="10" /></bezel>
+ <bezel element="black"><bounds x="23" y="13" width="10" height="10" /></bezel>
+ <bezel element="black"><bounds x="43" y="13" width="10" height="10" /></bezel>
+ <bezel element="black"><bounds x="63" y="13" width="10" height="10" /></bezel>
+
+ <bezel element="black"><bounds x="13" y="23" width="10" height="10" /></bezel>
+ <bezel element="black"><bounds x="33" y="23" width="10" height="10" /></bezel>
+ <bezel element="black"><bounds x="53" y="23" width="10" height="10" /></bezel>
+ <bezel element="black"><bounds x="73" y="23" width="10.5" height="10" /></bezel>
+
+ <bezel element="black"><bounds x="2.5" y="33" width="10.5" height="10" /></bezel>
+ <bezel element="black"><bounds x="23" y="33" width="10" height="10" /></bezel>
+ <bezel element="black"><bounds x="43" y="33" width="10" height="10" /></bezel>
+ <bezel element="black"><bounds x="63" y="33" width="10" height="10" /></bezel>
+
+ <bezel element="black"><bounds x="13" y="43" width="10" height="10" /></bezel>
+ <bezel element="black"><bounds x="33" y="43" width="10" height="10" /></bezel>
+ <bezel element="black"><bounds x="53" y="43" width="10" height="10" /></bezel>
+ <bezel element="black"><bounds x="73" y="43" width="10.5" height="10" /></bezel>
+
+ <bezel element="black"><bounds x="2.5" y="53" width="10.5" height="10" /></bezel>
+ <bezel element="black"><bounds x="23" y="53" width="10" height="10" /></bezel>
+ <bezel element="black"><bounds x="43" y="53" width="10" height="10" /></bezel>
+ <bezel element="black"><bounds x="63" y="53" width="10" height="10" /></bezel>
+
+ <bezel element="black"><bounds x="13" y="63" width="10" height="10" /></bezel>
+ <bezel element="black"><bounds x="33" y="63" width="10" height="10" /></bezel>
+ <bezel element="black"><bounds x="53" y="63" width="10" height="10" /></bezel>
+ <bezel element="black"><bounds x="73" y="63" width="10.5" height="10" /></bezel>
+
+ <bezel element="black"><bounds x="2.5" y="73" width="10.5" height="10.5" /></bezel>
+ <bezel element="black"><bounds x="23" y="73" width="10" height="10.5" /></bezel>
+ <bezel element="black"><bounds x="43" y="73" width="10" height="10.5" /></bezel>
+ <bezel element="black"><bounds x="63" y="73" width="10" height="10.5" /></bezel>
+
+ <!-- chessboard sensors -->
+
+ <bezel element="hl" inputtag="IN.0" inputmask="0x80"><bounds x="3" y="3" width="10" height="10" /><color alpha="0.4" /></bezel>
+ <bezel element="hl" inputtag="IN.0" inputmask="0x40"><bounds x="13" y="3" width="10" height="10" /><color alpha="0.2" /></bezel>
+ <bezel element="hl" inputtag="IN.0" inputmask="0x20"><bounds x="23" y="3" width="10" height="10" /><color alpha="0.4" /></bezel>
+ <bezel element="hl" inputtag="IN.0" inputmask="0x10"><bounds x="33" y="3" width="10" height="10" /><color alpha="0.2" /></bezel>
+ <bezel element="hl" inputtag="IN.0" inputmask="0x08"><bounds x="43" y="3" width="10" height="10" /><color alpha="0.4" /></bezel>
+ <bezel element="hl" inputtag="IN.0" inputmask="0x04"><bounds x="53" y="3" width="10" height="10" /><color alpha="0.2" /></bezel>
+ <bezel element="hl" inputtag="IN.0" inputmask="0x02"><bounds x="63" y="3" width="10" height="10" /><color alpha="0.4" /></bezel>
+ <bezel element="hl" inputtag="IN.0" inputmask="0x01"><bounds x="73" y="3" width="10" height="10" /><color alpha="0.2" /></bezel>
+
+ <bezel element="hl" inputtag="IN.1" inputmask="0x80"><bounds x="3" y="13" width="10" height="10" /><color alpha="0.2" /></bezel>
+ <bezel element="hl" inputtag="IN.1" inputmask="0x40"><bounds x="13" y="13" width="10" height="10" /><color alpha="0.4" /></bezel>
+ <bezel element="hl" inputtag="IN.1" inputmask="0x20"><bounds x="23" y="13" width="10" height="10" /><color alpha="0.2" /></bezel>
+ <bezel element="hl" inputtag="IN.1" inputmask="0x10"><bounds x="33" y="13" width="10" height="10" /><color alpha="0.4" /></bezel>
+ <bezel element="hl" inputtag="IN.1" inputmask="0x08"><bounds x="43" y="13" width="10" height="10" /><color alpha="0.2" /></bezel>
+ <bezel element="hl" inputtag="IN.1" inputmask="0x04"><bounds x="53" y="13" width="10" height="10" /><color alpha="0.4" /></bezel>
+ <bezel element="hl" inputtag="IN.1" inputmask="0x02"><bounds x="63" y="13" width="10" height="10" /><color alpha="0.2" /></bezel>
+ <bezel element="hl" inputtag="IN.1" inputmask="0x01"><bounds x="73" y="13" width="10" height="10" /><color alpha="0.4" /></bezel>
+
+ <bezel element="hl" inputtag="IN.2" inputmask="0x80"><bounds x="3" y="23" width="10" height="10" /><color alpha="0.4" /></bezel>
+ <bezel element="hl" inputtag="IN.2" inputmask="0x40"><bounds x="13" y="23" width="10" height="10" /><color alpha="0.2" /></bezel>
+ <bezel element="hl" inputtag="IN.2" inputmask="0x20"><bounds x="23" y="23" width="10" height="10" /><color alpha="0.4" /></bezel>
+ <bezel element="hl" inputtag="IN.2" inputmask="0x10"><bounds x="33" y="23" width="10" height="10" /><color alpha="0.2" /></bezel>
+ <bezel element="hl" inputtag="IN.2" inputmask="0x08"><bounds x="43" y="23" width="10" height="10" /><color alpha="0.4" /></bezel>
+ <bezel element="hl" inputtag="IN.2" inputmask="0x04"><bounds x="53" y="23" width="10" height="10" /><color alpha="0.2" /></bezel>
+ <bezel element="hl" inputtag="IN.2" inputmask="0x02"><bounds x="63" y="23" width="10" height="10" /><color alpha="0.4" /></bezel>
+ <bezel element="hl" inputtag="IN.2" inputmask="0x01"><bounds x="73" y="23" width="10" height="10" /><color alpha="0.2" /></bezel>
+
+ <bezel element="hl" inputtag="IN.3" inputmask="0x80"><bounds x="3" y="33" width="10" height="10" /><color alpha="0.2" /></bezel>
+ <bezel element="hl" inputtag="IN.3" inputmask="0x40"><bounds x="13" y="33" width="10" height="10" /><color alpha="0.4" /></bezel>
+ <bezel element="hl" inputtag="IN.3" inputmask="0x20"><bounds x="23" y="33" width="10" height="10" /><color alpha="0.2" /></bezel>
+ <bezel element="hl" inputtag="IN.3" inputmask="0x10"><bounds x="33" y="33" width="10" height="10" /><color alpha="0.4" /></bezel>
+ <bezel element="hl" inputtag="IN.3" inputmask="0x08"><bounds x="43" y="33" width="10" height="10" /><color alpha="0.2" /></bezel>
+ <bezel element="hl" inputtag="IN.3" inputmask="0x04"><bounds x="53" y="33" width="10" height="10" /><color alpha="0.4" /></bezel>
+ <bezel element="hl" inputtag="IN.3" inputmask="0x02"><bounds x="63" y="33" width="10" height="10" /><color alpha="0.2" /></bezel>
+ <bezel element="hl" inputtag="IN.3" inputmask="0x01"><bounds x="73" y="33" width="10" height="10" /><color alpha="0.4" /></bezel>
+
+ <bezel element="hl" inputtag="IN.4" inputmask="0x80"><bounds x="3" y="43" width="10" height="10" /><color alpha="0.4" /></bezel>
+ <bezel element="hl" inputtag="IN.4" inputmask="0x40"><bounds x="13" y="43" width="10" height="10" /><color alpha="0.2" /></bezel>
+ <bezel element="hl" inputtag="IN.4" inputmask="0x20"><bounds x="23" y="43" width="10" height="10" /><color alpha="0.4" /></bezel>
+ <bezel element="hl" inputtag="IN.4" inputmask="0x10"><bounds x="33" y="43" width="10" height="10" /><color alpha="0.2" /></bezel>
+ <bezel element="hl" inputtag="IN.4" inputmask="0x08"><bounds x="43" y="43" width="10" height="10" /><color alpha="0.4" /></bezel>
+ <bezel element="hl" inputtag="IN.4" inputmask="0x04"><bounds x="53" y="43" width="10" height="10" /><color alpha="0.2" /></bezel>
+ <bezel element="hl" inputtag="IN.4" inputmask="0x02"><bounds x="63" y="43" width="10" height="10" /><color alpha="0.4" /></bezel>
+ <bezel element="hl" inputtag="IN.4" inputmask="0x01"><bounds x="73" y="43" width="10" height="10" /><color alpha="0.2" /></bezel>
+
+ <bezel element="hl" inputtag="IN.5" inputmask="0x80"><bounds x="3" y="53" width="10" height="10" /><color alpha="0.2" /></bezel>
+ <bezel element="hl" inputtag="IN.5" inputmask="0x40"><bounds x="13" y="53" width="10" height="10" /><color alpha="0.4" /></bezel>
+ <bezel element="hl" inputtag="IN.5" inputmask="0x20"><bounds x="23" y="53" width="10" height="10" /><color alpha="0.2" /></bezel>
+ <bezel element="hl" inputtag="IN.5" inputmask="0x10"><bounds x="33" y="53" width="10" height="10" /><color alpha="0.4" /></bezel>
+ <bezel element="hl" inputtag="IN.5" inputmask="0x08"><bounds x="43" y="53" width="10" height="10" /><color alpha="0.2" /></bezel>
+ <bezel element="hl" inputtag="IN.5" inputmask="0x04"><bounds x="53" y="53" width="10" height="10" /><color alpha="0.4" /></bezel>
+ <bezel element="hl" inputtag="IN.5" inputmask="0x02"><bounds x="63" y="53" width="10" height="10" /><color alpha="0.2" /></bezel>
+ <bezel element="hl" inputtag="IN.5" inputmask="0x01"><bounds x="73" y="53" width="10" height="10" /><color alpha="0.4" /></bezel>
+
+ <bezel element="hl" inputtag="IN.6" inputmask="0x80"><bounds x="3" y="63" width="10" height="10" /><color alpha="0.4" /></bezel>
+ <bezel element="hl" inputtag="IN.6" inputmask="0x40"><bounds x="13" y="63" width="10" height="10" /><color alpha="0.2" /></bezel>
+ <bezel element="hl" inputtag="IN.6" inputmask="0x20"><bounds x="23" y="63" width="10" height="10" /><color alpha="0.4" /></bezel>
+ <bezel element="hl" inputtag="IN.6" inputmask="0x10"><bounds x="33" y="63" width="10" height="10" /><color alpha="0.2" /></bezel>
+ <bezel element="hl" inputtag="IN.6" inputmask="0x08"><bounds x="43" y="63" width="10" height="10" /><color alpha="0.4" /></bezel>
+ <bezel element="hl" inputtag="IN.6" inputmask="0x04"><bounds x="53" y="63" width="10" height="10" /><color alpha="0.2" /></bezel>
+ <bezel element="hl" inputtag="IN.6" inputmask="0x02"><bounds x="63" y="63" width="10" height="10" /><color alpha="0.4" /></bezel>
+ <bezel element="hl" inputtag="IN.6" inputmask="0x01"><bounds x="73" y="63" width="10" height="10" /><color alpha="0.2" /></bezel>
+
+ <bezel element="hl" inputtag="IN.7" inputmask="0x80"><bounds x="3" y="73" width="10" height="10" /><color alpha="0.2" /></bezel>
+ <bezel element="hl" inputtag="IN.7" inputmask="0x40"><bounds x="13" y="73" width="10" height="10" /><color alpha="0.4" /></bezel>
+ <bezel element="hl" inputtag="IN.7" inputmask="0x20"><bounds x="23" y="73" width="10" height="10" /><color alpha="0.2" /></bezel>
+ <bezel element="hl" inputtag="IN.7" inputmask="0x10"><bounds x="33" y="73" width="10" height="10" /><color alpha="0.4" /></bezel>
+ <bezel element="hl" inputtag="IN.7" inputmask="0x08"><bounds x="43" y="73" width="10" height="10" /><color alpha="0.2" /></bezel>
+ <bezel element="hl" inputtag="IN.7" inputmask="0x04"><bounds x="53" y="73" width="10" height="10" /><color alpha="0.4" /></bezel>
+ <bezel element="hl" inputtag="IN.7" inputmask="0x02"><bounds x="63" y="73" width="10" height="10" /><color alpha="0.2" /></bezel>
+ <bezel element="hl" inputtag="IN.7" inputmask="0x01"><bounds x="73" y="73" width="10" height="10" /><color alpha="0.4" /></bezel>
+
+ <!-- bottom side -->
+
+ <bezel element="text_white"><bounds x="33" y="87.5" width="10" height="2" /></bezel>
+ <bezel element="text_black"><bounds x="43" y="87.5" width="10" height="2" /></bezel>
+
+ <bezel element="text_s1"><bounds x="3" y="89.7" width="10" height="1.8" /></bezel>
+ <bezel element="text_s2"><bounds x="12" y="89.7" width="10" height="1.8" /></bezel>
+ <bezel element="text_s3"><bounds x="21" y="89.7" width="10" height="1.8" /></bezel>
+ <bezel element="text_s4"><bounds x="55" y="89.7" width="10" height="1.8" /></bezel>
+ <bezel element="text_s5"><bounds x="64" y="89.7" width="10" height="1.8" /></bezel>
+ <bezel element="text_s6"><bounds x="73" y="89.7" width="10" height="1.8" /></bezel>
+
+ <bezel element="text_u1"><bounds x="3" y="96.3" width="10" height="1.8" /></bezel>
+ <bezel element="text_u2"><bounds x="12" y="96.3" width="10" height="1.8" /></bezel>
+ <bezel element="text_u3"><bounds x="21" y="96.3" width="10" height="1.8" /></bezel>
+ <bezel element="text_u4"><bounds x="55" y="96.3" width="10" height="1.8" /></bezel>
+ <bezel element="text_u5"><bounds x="64" y="96.3" width="10" height="1.8" /></bezel>
+ <bezel element="text_u6"><bounds x="73" y="96.3" width="10" height="1.8" /></bezel>
+
+ <bezel element="text_king"><bounds x="3" y="98" width="10" height="4" /></bezel>
+ <bezel element="text_queen"><bounds x="12" y="98" width="10" height="4" /></bezel>
+ <bezel element="text_rook"><bounds x="21" y="98" width="10" height="4" /></bezel>
+ <bezel element="text_bishop"><bounds x="55" y="98" width="10" height="4" /></bezel>
+ <bezel element="text_knight"><bounds x="64" y="98" width="10" height="4" /></bezel>
+ <bezel element="text_pion"><bounds x="73" y="98" width="10" height="4" /></bezel>
+
+ <bezel element="disk_black"><bounds x="6" y="92" width="4" height="4" /></bezel>
+ <bezel element="disk_black"><bounds x="15" y="92" width="4" height="4" /></bezel>
+ <bezel element="disk_black"><bounds x="24" y="92" width="4" height="4" /></bezel>
+ <bezel element="disk_black"><bounds x="58" y="92" width="4" height="4" /></bezel>
+ <bezel element="disk_black"><bounds x="67" y="92" width="4" height="4" /></bezel>
+ <bezel element="disk_black"><bounds x="76" y="92" width="4" height="4" /></bezel>
+
+ <bezel element="disk_white"><bounds x="6.5" y="92.5" width="3" height="3" /></bezel>
+ <bezel element="disk_white"><bounds x="15.5" y="92.5" width="3" height="3" /></bezel>
+ <bezel element="disk_white"><bounds x="24.5" y="92.5" width="3" height="3" /></bezel>
+ <bezel element="disk_white"><bounds x="58.5" y="92.5" width="3" height="3" /></bezel>
+ <bezel element="disk_white"><bounds x="67.5" y="92.5" width="3" height="3" /></bezel>
+ <bezel element="disk_white"><bounds x="76.5" y="92.5" width="3" height="3" /></bezel>
+
+ <bezel element="hlb" inputtag="IN.8" inputmask="0x40"><bounds x="6" y="92" width="4" height="4" /><color alpha="0.3" /></bezel>
+ <bezel element="hlb" inputtag="IN.8" inputmask="0x20"><bounds x="15" y="92" width="4" height="4" /><color alpha="0.3" /></bezel>
+ <bezel element="hlb" inputtag="IN.8" inputmask="0x10"><bounds x="24" y="92" width="4" height="4" /><color alpha="0.3" /></bezel>
+ <bezel element="hlb" inputtag="IN.8" inputmask="0x08"><bounds x="58" y="92" width="4" height="4" /><color alpha="0.3" /></bezel>
+ <bezel element="hlb" inputtag="IN.8" inputmask="0x04"><bounds x="67" y="92" width="4" height="4" /><color alpha="0.3" /></bezel>
+ <bezel element="hlb" inputtag="IN.8" inputmask="0x02"><bounds x="76" y="92" width="4" height="4" /><color alpha="0.3" /></bezel>
+
+ <bezel element="redb"><bounds x="-5" y="91" width="8" height="6" /></bezel>
+ <bezel element="white"><bounds x="-4.25" y="91.75" width="6.5" height="4.5" /></bezel>
+ <bezel element="text_shift"><bounds x="-4" y="93" width="6" height="2" /></bezel>
+ <bezel name="1.8" element="led"><bounds x="0.65" y="94.65" width="1.5" height="1.5" /></bezel>
+ <bezel element="hlr" inputtag="IN.8" inputmask="0x80"><bounds x="-5" y="91" width="8" height="6" /><color alpha="0.3" /></bezel>
+
+ <bezel element="black"><bounds x="83" y="91" width="8" height="6" /></bezel>
+ <bezel element="white"><bounds x="83.75" y="91.75" width="6.5" height="4.5" /></bezel>
+ <bezel element="text_clear"><bounds x="84" y="93" width="6" height="2" /></bezel>
+ <bezel element="hlr" inputtag="IN.8" inputmask="0x01"><bounds x="83" y="91" width="8" height="6" /><color alpha="0.3" /></bezel>
+
+ <!-- lcd panel -->
+
+ <bezel element="static_black"><bounds x="30.5" y="90" width="25" height="8" /></bezel>
+
+ <bezel name="digit2" element="digit"><bounds x="32" y="91" width="4" height="6" /></bezel>
+ <bezel name="digit3" element="digit"><bounds x="38" y="91" width="4" height="6" /></bezel>
+ <bezel name="digit4" element="digit"><bounds x="44" y="91" width="4" height="6" /></bezel>
+ <bezel name="digit5" element="digit"><bounds x="50" y="91" width="4" height="6" /></bezel>
+
+ <bezel name="2.7" element="ldot"><bounds x="36.5" y="96.5" width="0.6" height="0.6" /></bezel>
+ <bezel name="3.7" element="ldot"><bounds x="42.5" y="96.5" width="0.6" height="0.6" /></bezel>
+ <bezel name="4.7" element="ldot"><bounds x="48.5" y="96.5" width="0.6" height="0.6" /></bezel>
+
+ <bezel name="5.7" element="ldot"><bounds x="42.9" y="92.8" width="0.6" height="0.6" /></bezel>
+ <bezel name="5.7" element="ldot"><bounds x="42.7" y="94.65" width="0.6" height="0.6" /></bezel>
+
+ </view>
+</mamelayout>
diff --git a/src/mame/mame.lst b/src/mame/mame.lst
index 61a10f3379a..77494c77917 100644
--- a/src/mame/mame.lst
+++ b/src/mame/mame.lst
@@ -12218,6 +12218,7 @@ cscfr // * French
cscg // * German
cscsp // * Spanish
fdes2000 //
+fdes2100d //
feasbu // EAS: Elite A/S Challenger (Budapest program, English)
feasbufr // * French
feasbug // * German