summaryrefslogtreecommitdiffstatshomepage
diff options
context:
space:
mode:
author hap <happppp@users.noreply.github.com>2017-04-22 16:01:50 +0200
committer hap <happppp@users.noreply.github.com>2017-04-22 16:02:13 +0200
commit9ab247d39e6780661af1a8c45f8583d851c34f84 (patch)
tree9ed463719579acb4b551bb871b4ad3bf97d14588
parentbb54e138e95d512103b283e724d7d9d19dc21064 (diff)
New working machine added
---------- Novag Presto/Octo [hap, Berger]
-rw-r--r--src/devices/cpu/mcs48/mcs48.cpp11
-rw-r--r--src/mame/drivers/fidelz80.cpp2
-rw-r--r--src/mame/drivers/novagmcs48.cpp50
-rw-r--r--src/mame/layout/novag_presto.lay325
-rw-r--r--src/mame/mame.lst1
5 files changed, 364 insertions, 25 deletions
diff --git a/src/devices/cpu/mcs48/mcs48.cpp b/src/devices/cpu/mcs48/mcs48.cpp
index fd14f473852..c06bd894508 100644
--- a/src/devices/cpu/mcs48/mcs48.cpp
+++ b/src/devices/cpu/mcs48/mcs48.cpp
@@ -1,10 +1,13 @@
// license:BSD-3-Clause
// copyright-holders:Mirko Buffoni
/*
-EA pin - defined by architecture, must implement:
- 1 means external access, bypassing internal ROM
- reimplement as a push, not a pull
-T0 output clock
+ TODO:
+ - EA pin - defined by architecture, must implement:
+ 1 means external access, bypassing internal ROM
+ reimplement as a push, not a pull
+ - T0 output clock
+ - get rid of i/o addressmap, use devcb for mcu pins
+ - add CMOS devices, 1 new opcode(01 HALT)
*/
/***************************************************************************
diff --git a/src/mame/drivers/fidelz80.cpp b/src/mame/drivers/fidelz80.cpp
index 4c6633c62a6..d4a3c950d46 100644
--- a/src/mame/drivers/fidelz80.cpp
+++ b/src/mame/drivers/fidelz80.cpp
@@ -1783,7 +1783,7 @@ static MACHINE_CONFIG_START( vbrc, fidelz80_state )
MCFG_CPU_IO_MAP(vbrc_main_io)
MCFG_QUANTUM_PERFECT_CPU("maincpu")
- MCFG_CPU_ADD("mcu", I8041, XTAL_5MHz) // or XTAL_5MHz/4?
+ MCFG_CPU_ADD("mcu", I8041, XTAL_5MHz)
MCFG_CPU_IO_MAP(vbrc_mcu_map)
MCFG_I8243_ADD("i8243", NOOP, WRITE8(fidelz80_state, vbrc_ioexp_port_w))
diff --git a/src/mame/drivers/novagmcs48.cpp b/src/mame/drivers/novagmcs48.cpp
index d4c1cb4cd6a..e463b035afc 100644
--- a/src/mame/drivers/novagmcs48.cpp
+++ b/src/mame/drivers/novagmcs48.cpp
@@ -11,12 +11,19 @@
such as Arena(in editmode).
TODO:
- - x
+ - is presto led handling correct? led data needs to be auto cleared
+ similar to novag6502 sforte/sexpert
******************************************************************************
Presto:
-- x
+- NEC D80C49C MCU(serial 186), OSC from LC circuit measured ~6MHz
+- buzzer, 16+4 LEDs, 8*8 chessboard buttons
+
+Octo:
+- NEC D80C49HC MCU(serial 111), OSC from LC circuit measured ~12MHz
+The buzzer has a little electronic circuit going on, not sure whatfor.
+Otherwise, it's identical to Presto. The MCU internal ROM is same too.
******************************************************************************/
@@ -58,8 +65,7 @@ WRITE8_MEMBER(novagmcs48_state::presto_mux_w)
{
// D0-D7: input mux low, led data
m_inp_mux = (m_inp_mux & ~0xff) | (~data & 0xff);
- m_led_data = data;
- display_matrix(8, 3, m_led_data, m_led_select);
+ m_led_data = ~data & 0xff;
}
WRITE8_MEMBER(novagmcs48_state::presto_control_w)
@@ -71,8 +77,9 @@ WRITE8_MEMBER(novagmcs48_state::presto_control_w)
m_dac->write(BIT(data, 2) & BIT(~data, 3));
// P24-P26: led select
- m_led_select = data >> 4 & 7;
+ m_led_select = ~data >> 4 & 7;
display_matrix(8, 3, m_led_data, m_led_select);
+ m_led_data = 0; // ?
}
READ8_MEMBER(novagmcs48_state::presto_input_r)
@@ -106,14 +113,14 @@ static INPUT_PORTS_START( presto )
PORT_INCLUDE( novag_cb_buttons )
PORT_START("IN.8")
- PORT_BIT(0x01, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_CODE(KEYCODE_1)
- PORT_BIT(0x02, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_CODE(KEYCODE_2)
- PORT_BIT(0x04, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_CODE(KEYCODE_3)
- PORT_BIT(0x08, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_CODE(KEYCODE_4)
- PORT_BIT(0x10, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_CODE(KEYCODE_5)
- PORT_BIT(0x20, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_CODE(KEYCODE_6)
- PORT_BIT(0x40, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_CODE(KEYCODE_7)
- PORT_BIT(0x80, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_CODE(KEYCODE_8)
+ PORT_BIT(0x01, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_CODE(KEYCODE_1) PORT_NAME("Black/White") // Octo calls it "Change Color"
+ PORT_BIT(0x02, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_CODE(KEYCODE_2) PORT_NAME("Verify / Pawn")
+ PORT_BIT(0x04, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_CODE(KEYCODE_3) PORT_NAME("Set Up / Rook")
+ PORT_BIT(0x08, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_CODE(KEYCODE_4) PORT_NAME("Knight")
+ PORT_BIT(0x10, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_CODE(KEYCODE_5) PORT_NAME("Set Level / Bishop")
+ PORT_BIT(0x20, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_CODE(KEYCODE_6) PORT_NAME("Queen")
+ PORT_BIT(0x40, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_CODE(KEYCODE_7) PORT_NAME("Take Back / King")
+ PORT_BIT(0x80, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_CODE(KEYCODE_8) PORT_NAME("Go")
INPUT_PORTS_END
@@ -138,6 +145,13 @@ static MACHINE_CONFIG_START( presto, novagmcs48_state )
MCFG_SOUND_ROUTE_EX(0, "dac", 1.0, DAC_VREF_POS_INPUT)
MACHINE_CONFIG_END
+static MACHINE_CONFIG_DERIVED( octo, presto )
+
+ /* basic machine hardware */
+ MCFG_CPU_MODIFY("maincpu")
+ MCFG_DEVICE_CLOCK(12000000) // LC circuit, measured
+MACHINE_CONFIG_END
+
/******************************************************************************
@@ -149,11 +163,17 @@ ROM_START( npresto )
ROM_LOAD("d80c49c_186", 0x0000, 0x0800, CRC(29a0eb4c) SHA1(e058d6018e53ddcaa3b5ec25b33b8bff091b04db) )
ROM_END
+ROM_START( nocto )
+ ROM_REGION( 0x0800, "maincpu", 0 )
+ ROM_LOAD("d80c49hc_111", 0x0000, 0x0800, CRC(29a0eb4c) SHA1(e058d6018e53ddcaa3b5ec25b33b8bff091b04db) ) // same program as npresto
+ROM_END
+
/******************************************************************************
Drivers
******************************************************************************/
-/* YEAR NAME PARENT COMPAT MACHINE INPUT INIT COMPANY, FULLNAME, FLAGS */
-CONS( 1984, npresto, 0, 0, presto, presto, driver_device, 0, "Novag", "Presto (Novag)", MACHINE_SUPPORTS_SAVE | MACHINE_CLICKABLE_ARTWORK | MACHINE_NOT_WORKING )
+/* YEAR NAME PARENT COMPAT MACHINE INPUT INIT COMPANY, FULLNAME, FLAGS */
+CONS( 1984, npresto, 0, 0, presto, presto, driver_device, 0, "Novag", "Presto (Novag)", MACHINE_SUPPORTS_SAVE | MACHINE_CLICKABLE_ARTWORK )
+CONS( 1987, nocto, npresto, 0, octo, presto, driver_device, 0, "Novag", "Octo (Novag)", MACHINE_SUPPORTS_SAVE | MACHINE_CLICKABLE_ARTWORK )
diff --git a/src/mame/layout/novag_presto.lay b/src/mame/layout/novag_presto.lay
index 9d3e4d2766a..2af9f558ca7 100644
--- a/src/mame/layout/novag_presto.lay
+++ b/src/mame/layout/novag_presto.lay
@@ -3,18 +3,333 @@
<!-- define elements -->
- <element name="led" defstate="0">
- <disk state="0"><color red="0.2" green="0.04" blue="0.046" /></disk>
- <disk state="1"><color red="1.0" green="0.2" blue="0.23" /></disk>
+ <element name="static_red"><rect><color red="0.7" green="0.13" blue="0.12" /></rect></element>
+
+ <element name="ledr" defstate="0">
+ <disk state="1"><color red="1.0" green="0.1" blue="0.15" /></disk>
+ <disk state="0"><color red="0.17" green="0.015" blue="0.02" /></disk>
+ </element>
+ <element name="ledg" defstate="0">
+ <disk state="1"><color red="0.1" green="0.95" blue="0.05" /></disk>
+ <disk state="0"><color red="0.015" green="0.16" blue="0.01" /></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.2466" y="0.12" width="0.5066" height="0.76" />
+ <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="text_1"><text string="1"><color red="0.9" green="0.9" blue="0.9" /></text></element>
+ <element name="text_2"><text string="2"><color red="0.9" green="0.9" blue="0.9" /></text></element>
+ <element name="text_3"><text string="3"><color red="0.9" green="0.9" blue="0.9" /></text></element>
+ <element name="text_4"><text string="4"><color red="0.9" green="0.9" blue="0.9" /></text></element>
+ <element name="text_5"><text string="5"><color red="0.9" green="0.9" blue="0.9" /></text></element>
+ <element name="text_6"><text string="6"><color red="0.9" green="0.9" blue="0.9" /></text></element>
+ <element name="text_7"><text string="7"><color red="0.9" green="0.9" blue="0.9" /></text></element>
+ <element name="text_8"><text string="8"><color red="0.9" green="0.9" blue="0.9" /></text></element>
+
+ <element name="text_a"><text string="A"><color red="0.9" green="0.9" blue="0.9" /></text></element>
+ <element name="text_b"><text string="B"><color red="0.9" green="0.9" blue="0.9" /></text></element>
+ <element name="text_c"><text string="C"><color red="0.9" green="0.9" blue="0.9" /></text></element>
+ <element name="text_d"><text string="D"><color red="0.9" green="0.9" blue="0.9" /></text></element>
+ <element name="text_e"><text string="E"><color red="0.9" green="0.9" blue="0.9" /></text></element>
+ <element name="text_f"><text string="F"><color red="0.9" green="0.9" blue="0.9" /></text></element>
+ <element name="text_g"><text string="G"><color red="0.9" green="0.9" blue="0.9" /></text></element>
+ <element name="text_h"><text string="H"><color red="0.9" green="0.9" blue="0.9" /></text></element>
+
+ <element name="text_l1"><text string="Mate"><color red="0.9" green="0.9" blue="0.9" /></text></element>
+ <element name="text_l2"><text string="Stale"><color red="0.9" green="0.9" blue="0.9" /></text></element>
+ <element name="text_l3"><text string="Check"><color red="0.9" green="0.9" blue="0.9" /></text></element>
+ <element name="text_l7"><text string="Error"><color red="0.9" green="0.9" blue="0.9" /></text></element>
+
+ <element name="text_r1">
+ <rect><color red="0.81" green="0.8" blue="0.79" /></rect>
+ <text string="Black/White"><color red="0.1" green="0.1" blue="0.1" /></text>
+ </element>
+ <element name="text_r2">
+ <rect><color red="0.81" green="0.8" blue="0.79" /></rect>
+ <text string="Verify"><color red="0.1" green="0.1" blue="0.1" /></text>
+ </element>
+ <element name="text_r3">
+ <rect><color red="0.81" green="0.8" blue="0.79" /></rect>
+ <text string="Set Up"><color red="0.1" green="0.1" blue="0.1" /></text>
+ </element>
+ <element name="text_r5">
+ <rect><color red="0.81" green="0.8" blue="0.79" /></rect>
+ <text string="Set Level"><color red="0.1" green="0.1" blue="0.1" /></text>
+ </element>
+ <element name="text_r7">
+ <rect><color red="0.81" green="0.8" blue="0.79" /></rect>
+ <text string="Take Back"><color red="0.1" green="0.1" blue="0.1" /></text>
+ </element>
+ <element name="text_r8">
+ <rect><color red="0.81" green="0.8" blue="0.79" /></rect>
+ <text string="Go"><color red="0.1" green="0.1" blue="0.1" /></text>
+ </element>
+
+ <element name="text_king">
+ <rect><color red="0.81" green="0.8" blue="0.79" /></rect>
+ <text string="&#x265a;"><color red="0.1" green="0.1" blue="0.1" /></text>
+ </element>
+ <element name="text_queen">
+ <rect><color red="0.81" green="0.8" blue="0.79" /></rect>
+ <text string="&#x265b;"><color red="0.1" green="0.1" blue="0.1" /></text>
+ </element>
+ <element name="text_rook">
+ <rect><color red="0.81" green="0.8" blue="0.79" /></rect>
+ <text string="&#x265c;"><color red="0.1" green="0.1" blue="0.1" /></text>
+ </element>
+ <element name="text_bishop">
+ <rect><color red="0.81" green="0.8" blue="0.79" /></rect>
+ <text string="&#x265d;"><color red="0.1" green="0.1" blue="0.1" /></text>
+ </element>
+ <element name="text_knight">
+ <rect><color red="0.81" green="0.8" blue="0.79" /></rect>
+ <text string="&#x265e;"><color red="0.1" green="0.1" blue="0.1" /></text>
+ </element>
+ <element name="text_pawn">
+ <rect><color red="0.81" green="0.8" blue="0.79" /></rect>
+ <text string="&#x265f;"><color red="0.1" green="0.1" blue="0.1" /></text>
</element>
<!-- build screen -->
<view name="Internal Layout">
- <bounds left="0" right="100" top="0" bottom="100" />
+ <bounds left="-6" right="100.5" top="-2" bottom="89" />
+
+ <!-- chessboard coords -->
+
+ <bezel element="text_8"><bounds x="-2.75" y="9" width="2" height="2" /></bezel>
+ <bezel element="text_7"><bounds x="-2.75" y="19" width="2" height="2" /></bezel>
+ <bezel element="text_6"><bounds x="-2.75" y="29" width="2" height="2" /></bezel>
+ <bezel element="text_5"><bounds x="-2.75" y="39" width="2" height="2" /></bezel>
+ <bezel element="text_4"><bounds x="-2.75" y="49" width="2" height="2" /></bezel>
+ <bezel element="text_3"><bounds x="-2.75" y="59" width="2" height="2" /></bezel>
+ <bezel element="text_2"><bounds x="-2.75" y="69" width="2" height="2" /></bezel>
+ <bezel element="text_1"><bounds x="-2.75" y="79" width="2" height="2" /></bezel>
+
+ <bezel element="text_l1"><bounds x="-6" y="74.75" width="8" height="2" /></bezel>
+ <bezel element="text_l2"><bounds x="-6" y="64.75" width="8" height="2" /></bezel>
+ <bezel element="text_l3"><bounds x="-6" y="54.75" width="8" height="2" /></bezel>
+ <bezel element="text_l7"><bounds x="-6" y="14.75" width="8" height="2" /></bezel>
+
+ <bezel element="text_a"><bounds x="8" y="84.75" width="2" height="2" /></bezel>
+ <bezel element="text_b"><bounds x="18" y="84.75" width="2" height="2" /></bezel>
+ <bezel element="text_c"><bounds x="28" y="84.75" width="2" height="2" /></bezel>
+ <bezel element="text_d"><bounds x="38" y="84.75" width="2" height="2" /></bezel>
+ <bezel element="text_e"><bounds x="48" y="84.75" width="2" height="2" /></bezel>
+ <bezel element="text_f"><bounds x="58" y="84.75" width="2" height="2" /></bezel>
+ <bezel element="text_g"><bounds x="68" y="84.75" width="2" height="2" /></bezel>
+ <bezel element="text_h"><bounds x="78" y="84.75" width="2" height="2" /></bezel>
+
+ <!-- chessboard leds -->
+
+ <bezel name="2.7" element="ledr"><bounds x="-2.5" y="7.25" width="1.5" height="1.5" /></bezel>
+ <bezel name="2.6" element="ledr"><bounds x="-2.5" y="17.25" width="1.5" height="1.5" /></bezel>
+ <bezel name="2.5" element="ledr"><bounds x="-2.5" y="27.25" width="1.5" height="1.5" /></bezel>
+ <bezel name="2.4" element="ledr"><bounds x="-2.5" y="37.25" width="1.5" height="1.5" /></bezel>
+ <bezel name="2.3" element="ledr"><bounds x="-2.5" y="47.25" width="1.5" height="1.5" /></bezel>
+ <bezel name="2.2" element="ledr"><bounds x="-2.5" y="57.25" width="1.5" height="1.5" /></bezel>
+ <bezel name="2.1" element="ledr"><bounds x="-2.5" y="67.25" width="1.5" height="1.5" /></bezel>
+ <bezel name="2.0" element="ledr"><bounds x="-2.5" y="77.25" width="1.5" height="1.5" /></bezel>
+
+ <bezel name="0.0" element="ledr"><bounds x="6" y="85" width="1.5" height="1.5" /></bezel>
+ <bezel name="0.1" element="ledr"><bounds x="16" y="85" width="1.5" height="1.5" /></bezel>
+ <bezel name="0.2" element="ledr"><bounds x="26" y="85" width="1.5" height="1.5" /></bezel>
+ <bezel name="0.3" element="ledr"><bounds x="36" y="85" width="1.5" height="1.5" /></bezel>
+ <bezel name="0.4" element="ledr"><bounds x="46" y="85" width="1.5" height="1.5" /></bezel>
+ <bezel name="0.5" element="ledr"><bounds x="56" y="85" width="1.5" height="1.5" /></bezel>
+ <bezel name="0.6" element="ledr"><bounds x="66" y="85" width="1.5" height="1.5" /></bezel>
+ <bezel name="0.7" element="ledr"><bounds x="76" y="85" width="1.5" height="1.5" /></bezel>
+
+ <bezel name="1.0" element="ledr"><bounds x="90.5" y="85" width="1.5" height="1.5" /></bezel>
+ <bezel name="1.1" element="ledg"><bounds x="86" y="85" width="1.5" height="1.5" /></bezel>
+ <bezel name="1.2" element="ledg"><bounds x="97" y="70.7" width="1.5" height="1.5" /></bezel>
+ <bezel name="1.3" element="ledg"><bounds x="97" y="60.7" width="1.5" height="1.5" /></bezel>
+
+ <!-- chessboard bezel -->
+
+ <bezel element="black"><bounds x="2" y="2" width="93" 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.7" inputmask="0x01"><bounds x="3" y="3" width="10" height="10" /><color alpha="0.4" /></bezel>
+ <bezel element="hl" inputtag="IN.7" inputmask="0x02"><bounds x="13" y="3" width="10" height="10" /><color alpha="0.2" /></bezel>
+ <bezel element="hl" inputtag="IN.7" inputmask="0x04"><bounds x="23" y="3" width="10" height="10" /><color alpha="0.4" /></bezel>
+ <bezel element="hl" inputtag="IN.7" inputmask="0x08"><bounds x="33" y="3" width="10" height="10" /><color alpha="0.2" /></bezel>
+ <bezel element="hl" inputtag="IN.7" inputmask="0x10"><bounds x="43" y="3" width="10" height="10" /><color alpha="0.4" /></bezel>
+ <bezel element="hl" inputtag="IN.7" inputmask="0x20"><bounds x="53" y="3" width="10" height="10" /><color alpha="0.2" /></bezel>
+ <bezel element="hl" inputtag="IN.7" inputmask="0x40"><bounds x="63" y="3" width="10" height="10" /><color alpha="0.4" /></bezel>
+ <bezel element="hl" inputtag="IN.7" inputmask="0x80"><bounds x="73" y="3" width="10" height="10" /><color alpha="0.2" /></bezel>
+
+ <bezel element="hl" inputtag="IN.6" inputmask="0x01"><bounds x="3" y="13" width="10" height="10" /><color alpha="0.2" /></bezel>
+ <bezel element="hl" inputtag="IN.6" inputmask="0x02"><bounds x="13" y="13" width="10" height="10" /><color alpha="0.4" /></bezel>
+ <bezel element="hl" inputtag="IN.6" inputmask="0x04"><bounds x="23" y="13" width="10" height="10" /><color alpha="0.2" /></bezel>
+ <bezel element="hl" inputtag="IN.6" inputmask="0x08"><bounds x="33" y="13" width="10" height="10" /><color alpha="0.4" /></bezel>
+ <bezel element="hl" inputtag="IN.6" inputmask="0x10"><bounds x="43" y="13" width="10" height="10" /><color alpha="0.2" /></bezel>
+ <bezel element="hl" inputtag="IN.6" inputmask="0x20"><bounds x="53" y="13" width="10" height="10" /><color alpha="0.4" /></bezel>
+ <bezel element="hl" inputtag="IN.6" inputmask="0x40"><bounds x="63" y="13" width="10" height="10" /><color alpha="0.2" /></bezel>
+ <bezel element="hl" inputtag="IN.6" inputmask="0x80"><bounds x="73" y="13" width="10" height="10" /><color alpha="0.4" /></bezel>
+
+ <bezel element="hl" inputtag="IN.5" inputmask="0x01"><bounds x="3" y="23" width="10" height="10" /><color alpha="0.4" /></bezel>
+ <bezel element="hl" inputtag="IN.5" inputmask="0x02"><bounds x="13" y="23" width="10" height="10" /><color alpha="0.2" /></bezel>
+ <bezel element="hl" inputtag="IN.5" inputmask="0x04"><bounds x="23" y="23" width="10" height="10" /><color alpha="0.4" /></bezel>
+ <bezel element="hl" inputtag="IN.5" inputmask="0x08"><bounds x="33" y="23" width="10" height="10" /><color alpha="0.2" /></bezel>
+ <bezel element="hl" inputtag="IN.5" inputmask="0x10"><bounds x="43" y="23" width="10" height="10" /><color alpha="0.4" /></bezel>
+ <bezel element="hl" inputtag="IN.5" inputmask="0x20"><bounds x="53" y="23" width="10" height="10" /><color alpha="0.2" /></bezel>
+ <bezel element="hl" inputtag="IN.5" inputmask="0x40"><bounds x="63" y="23" width="10" height="10" /><color alpha="0.4" /></bezel>
+ <bezel element="hl" inputtag="IN.5" inputmask="0x80"><bounds x="73" y="23" width="10" height="10" /><color alpha="0.2" /></bezel>
+
+ <bezel element="hl" inputtag="IN.4" inputmask="0x01"><bounds x="3" y="33" width="10" height="10" /><color alpha="0.2" /></bezel>
+ <bezel element="hl" inputtag="IN.4" inputmask="0x02"><bounds x="13" y="33" width="10" height="10" /><color alpha="0.4" /></bezel>
+ <bezel element="hl" inputtag="IN.4" inputmask="0x04"><bounds x="23" y="33" width="10" height="10" /><color alpha="0.2" /></bezel>
+ <bezel element="hl" inputtag="IN.4" inputmask="0x08"><bounds x="33" y="33" width="10" height="10" /><color alpha="0.4" /></bezel>
+ <bezel element="hl" inputtag="IN.4" inputmask="0x10"><bounds x="43" y="33" width="10" height="10" /><color alpha="0.2" /></bezel>
+ <bezel element="hl" inputtag="IN.4" inputmask="0x20"><bounds x="53" y="33" width="10" height="10" /><color alpha="0.4" /></bezel>
+ <bezel element="hl" inputtag="IN.4" inputmask="0x40"><bounds x="63" y="33" width="10" height="10" /><color alpha="0.2" /></bezel>
+ <bezel element="hl" inputtag="IN.4" inputmask="0x80"><bounds x="73" y="33" width="10" height="10" /><color alpha="0.4" /></bezel>
+
+ <bezel element="hl" inputtag="IN.3" inputmask="0x01"><bounds x="3" y="43" width="10" height="10" /><color alpha="0.4" /></bezel>
+ <bezel element="hl" inputtag="IN.3" inputmask="0x02"><bounds x="13" y="43" width="10" height="10" /><color alpha="0.2" /></bezel>
+ <bezel element="hl" inputtag="IN.3" inputmask="0x04"><bounds x="23" y="43" width="10" height="10" /><color alpha="0.4" /></bezel>
+ <bezel element="hl" inputtag="IN.3" inputmask="0x08"><bounds x="33" y="43" width="10" height="10" /><color alpha="0.2" /></bezel>
+ <bezel element="hl" inputtag="IN.3" inputmask="0x10"><bounds x="43" y="43" width="10" height="10" /><color alpha="0.4" /></bezel>
+ <bezel element="hl" inputtag="IN.3" inputmask="0x20"><bounds x="53" y="43" width="10" height="10" /><color alpha="0.2" /></bezel>
+ <bezel element="hl" inputtag="IN.3" inputmask="0x40"><bounds x="63" y="43" width="10" height="10" /><color alpha="0.4" /></bezel>
+ <bezel element="hl" inputtag="IN.3" inputmask="0x80"><bounds x="73" y="43" width="10" height="10" /><color alpha="0.2" /></bezel>
+
+ <bezel element="hl" inputtag="IN.2" inputmask="0x01"><bounds x="3" y="53" width="10" height="10" /><color alpha="0.2" /></bezel>
+ <bezel element="hl" inputtag="IN.2" inputmask="0x02"><bounds x="13" y="53" width="10" height="10" /><color alpha="0.4" /></bezel>
+ <bezel element="hl" inputtag="IN.2" inputmask="0x04"><bounds x="23" y="53" width="10" height="10" /><color alpha="0.2" /></bezel>
+ <bezel element="hl" inputtag="IN.2" inputmask="0x08"><bounds x="33" y="53" width="10" height="10" /><color alpha="0.4" /></bezel>
+ <bezel element="hl" inputtag="IN.2" inputmask="0x10"><bounds x="43" y="53" width="10" height="10" /><color alpha="0.2" /></bezel>
+ <bezel element="hl" inputtag="IN.2" inputmask="0x20"><bounds x="53" y="53" width="10" height="10" /><color alpha="0.4" /></bezel>
+ <bezel element="hl" inputtag="IN.2" inputmask="0x40"><bounds x="63" y="53" width="10" height="10" /><color alpha="0.2" /></bezel>
+ <bezel element="hl" inputtag="IN.2" inputmask="0x80"><bounds x="73" y="53" width="10" height="10" /><color alpha="0.4" /></bezel>
+
+ <bezel element="hl" inputtag="IN.1" inputmask="0x01"><bounds x="3" y="63" width="10" height="10" /><color alpha="0.4" /></bezel>
+ <bezel element="hl" inputtag="IN.1" inputmask="0x02"><bounds x="13" y="63" width="10" height="10" /><color alpha="0.2" /></bezel>
+ <bezel element="hl" inputtag="IN.1" inputmask="0x04"><bounds x="23" y="63" width="10" height="10" /><color alpha="0.4" /></bezel>
+ <bezel element="hl" inputtag="IN.1" inputmask="0x08"><bounds x="33" y="63" width="10" height="10" /><color alpha="0.2" /></bezel>
+ <bezel element="hl" inputtag="IN.1" inputmask="0x10"><bounds x="43" y="63" width="10" height="10" /><color alpha="0.4" /></bezel>
+ <bezel element="hl" inputtag="IN.1" inputmask="0x20"><bounds x="53" y="63" width="10" height="10" /><color alpha="0.2" /></bezel>
+ <bezel element="hl" inputtag="IN.1" inputmask="0x40"><bounds x="63" y="63" width="10" height="10" /><color alpha="0.4" /></bezel>
+ <bezel element="hl" inputtag="IN.1" inputmask="0x80"><bounds x="73" y="63" width="10" height="10" /><color alpha="0.2" /></bezel>
+
+ <bezel element="hl" inputtag="IN.0" inputmask="0x01"><bounds x="3" y="73" width="10" height="10" /><color alpha="0.2" /></bezel>
+ <bezel element="hl" inputtag="IN.0" inputmask="0x02"><bounds x="13" y="73" width="10" height="10" /><color alpha="0.4" /></bezel>
+ <bezel element="hl" inputtag="IN.0" inputmask="0x04"><bounds x="23" y="73" width="10" height="10" /><color alpha="0.2" /></bezel>
+ <bezel element="hl" inputtag="IN.0" inputmask="0x08"><bounds x="33" y="73" width="10" height="10" /><color alpha="0.4" /></bezel>
+ <bezel element="hl" inputtag="IN.0" inputmask="0x10"><bounds x="43" y="73" width="10" height="10" /><color alpha="0.2" /></bezel>
+ <bezel element="hl" inputtag="IN.0" inputmask="0x20"><bounds x="53" y="73" width="10" height="10" /><color alpha="0.4" /></bezel>
+ <bezel element="hl" inputtag="IN.0" inputmask="0x40"><bounds x="63" y="73" width="10" height="10" /><color alpha="0.2" /></bezel>
+ <bezel element="hl" inputtag="IN.0" inputmask="0x80"><bounds x="73" y="73" width="10" height="10" /><color alpha="0.4" /></bezel>
+
+ <!-- right side buttons -->
+
+ <bezel element="white"><bounds x="84" y="3" width="10" height="80" /></bezel>
+
+ <bezel element="text_r8"><bounds x="84.5" y="10.7" width="9" height="1.5" /></bezel>
+ <bezel element="text_r7"><bounds x="84.5" y="20.7" width="9" height="1.5" /></bezel>
+ <bezel element="text_r5"><bounds x="84.5" y="40.7" width="9" height="1.5" /></bezel>
+ <bezel element="text_r3"><bounds x="84.5" y="60.7" width="9" height="1.5" /></bezel>
+ <bezel element="text_r2"><bounds x="84.5" y="70.7" width="9" height="1.5" /></bezel>
+ <bezel element="text_r1"><bounds x="84.5" y="80.7" width="9" height="1.5" /></bezel>
+
+ <bezel element="black"><bounds x="85.5" y="5.5" width="7" height="5" /></bezel>
+ <bezel element="black"><bounds x="85.5" y="15.5" width="7" height="5" /></bezel>
+ <bezel element="black"><bounds x="85.5" y="25.5" width="7" height="5" /></bezel>
+ <bezel element="black"><bounds x="85.5" y="35.5" width="7" height="5" /></bezel>
+ <bezel element="black"><bounds x="85.5" y="45.5" width="7" height="5" /></bezel>
+ <bezel element="black"><bounds x="85.5" y="55.5" width="7" height="5" /></bezel>
+ <bezel element="black"><bounds x="85.5" y="65.5" width="7" height="5" /></bezel>
+ <bezel element="black"><bounds x="85.5" y="75.5" width="7" height="5" /></bezel>
+
+ <bezel element="static_red"><bounds x="86" y="6" width="6" height="4" /></bezel>
+ <bezel element="white"><bounds x="86" y="16" width="6" height="4" /></bezel>
+ <bezel element="white"><bounds x="86" y="26" width="6" height="4" /></bezel>
+ <bezel element="white"><bounds x="86" y="36" width="6" height="4" /></bezel>
+ <bezel element="white"><bounds x="86" y="46" width="6" height="4" /></bezel>
+ <bezel element="white"><bounds x="86" y="56" width="6" height="4" /></bezel>
+ <bezel element="white"><bounds x="86" y="66" width="6" height="4" /></bezel>
+ <bezel element="white"><bounds x="89" y="76" width="3" height="4" /></bezel>
+
+ <bezel element="text_king"><bounds x="86" y="16.1" width="6" height="3.5" /></bezel>
+ <bezel element="text_queen"><bounds x="86" y="26.1" width="6" height="3.5" /></bezel>
+ <bezel element="text_bishop"><bounds x="86" y="36.1" width="6" height="3.5" /></bezel>
+ <bezel element="text_knight"><bounds x="86" y="46.1" width="6" height="3.5" /></bezel>
+ <bezel element="text_rook"><bounds x="86" y="56.1" width="6" height="3.5" /></bezel>
+ <bezel element="text_pawn"><bounds x="86" y="66.1" width="6" height="3.5" /></bezel>
- <bezel name="0.0" element="led"><bounds x="1" y="1" width="1" height="1" /></bezel>
+ <bezel element="hlb" inputtag="IN.8" inputmask="0x80"><bounds x="86" y="6" width="6" height="4" /><color alpha="0.25" /></bezel>
+ <bezel element="hlb" inputtag="IN.8" inputmask="0x40"><bounds x="86" y="16" width="6" height="4" /><color alpha="0.4" /></bezel>
+ <bezel element="hlb" inputtag="IN.8" inputmask="0x20"><bounds x="86" y="26" width="6" height="4" /><color alpha="0.4" /></bezel>
+ <bezel element="hlb" inputtag="IN.8" inputmask="0x10"><bounds x="86" y="36" width="6" height="4" /><color alpha="0.4" /></bezel>
+ <bezel element="hlb" inputtag="IN.8" inputmask="0x08"><bounds x="86" y="46" width="6" height="4" /><color alpha="0.4" /></bezel>
+ <bezel element="hlb" inputtag="IN.8" inputmask="0x04"><bounds x="86" y="56" width="6" height="4" /><color alpha="0.4" /></bezel>
+ <bezel element="hlb" inputtag="IN.8" inputmask="0x02"><bounds x="86" y="66" width="6" height="4" /><color alpha="0.4" /></bezel>
+ <bezel element="hlb" inputtag="IN.8" inputmask="0x01"><bounds x="86" y="76" width="6" height="4" /><color alpha="0.4" /></bezel>
</view>
</mamelayout>
diff --git a/src/mame/mame.lst b/src/mame/mame.lst
index 818e0adced7..01b3f41f7ea 100644
--- a/src/mame/mame.lst
+++ b/src/mame/mame.lst
@@ -29461,6 +29461,7 @@ supercon //
diablo68 //
@source:novagmcs48.cpp
+nocto //
npresto //
@source:nsm.cpp