novag_micro2: change npresto/nocto to nmicro2 (nw)

This commit is contained in:
hap 2020-05-16 22:09:23 +02:00
parent 3076488193
commit bb222482b6
5 changed files with 214 additions and 241 deletions

View File

@ -34,6 +34,7 @@ modules. The module overrides the internal ROM, by asserting the EA pin.
TODO:
- MSC MCU is currently emulated as I8039, due to missing EA pin emulation
- different button panel for fidel_msc_v2 artwork
******************************************************************************/

View File

@ -3,29 +3,51 @@
// thanks-to:Berger
/******************************************************************************
Novag Presto / Novag Octo
Novag Micro II (model 821)
Hardware notes (Presto):
This program was used in several Novag chesscomputers:
- Novag Micro II (1st use)
- Novag Presto
- Novag Octo
suspected, to be confirmed:
- Novag Micro III
- Novag Allegro
- Novag Piccolo
- Novag Alto
Hardware notes:
Micro II:
- Mitsubishi M5L8049-079P-6, 6MHz XTAL
- buzzer, 20 leds, 8*8 chessboard buttons
Presto (listed differences):
- NEC D80C49C MCU(serial 186), OSC from LC circuit measured ~6MHz
- buzzer, 16+4 LEDs, 8*8 chessboard buttons
Octo has a 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.
Octo (listed differences):
- NEC D80C49HC MCU(serial 111), 12MHz OSC from LC circuit, this was advertised
as 15MHz on the box, but measured ~12MHz (older Octo version is probably ~6MHz?)
- speaker circuit is a bit different, not sure why
Note that even though the MCUs are different, internal ROM contents is
identical for Micro II, Presto, Octo.
TODO:
- controls are too sensitive, is there a bug in the CPU core timer emulation?
6MHz: valid (single) button press registered between 307ms and 436ms,
12MHz: between 154ms and 218ms, 15MHz: between 123ms and 174ms.
12MHz: between 154ms and 218ms.
******************************************************************************/
#include "emu.h"
#include "cpu/mcs48/mcs48.h"
#include "machine/sensorboard.h"
#include "sound/dac.h"
#include "sound/volt_reg.h"
#include "video/pwm.h"
#include "speaker.h"
// internal artwork
@ -34,12 +56,10 @@ TODO:
namespace {
// Presto / shared
class presto_state : public driver_device
class micro2_state : public driver_device
{
public:
presto_state(const machine_config &mconfig, device_type type, const char *tag) :
micro2_state(const machine_config &mconfig, device_type type, const char *tag) :
driver_device(mconfig, type, tag),
m_maincpu(*this, "maincpu"),
m_display(*this, "display"),
@ -49,11 +69,16 @@ public:
{ }
// machine configs
void presto(machine_config &config);
void octo(machine_config &config);
void micro2(machine_config &config);
DECLARE_INPUT_CHANGED_MEMBER(cpu_freq) { set_cpu_freq(); }
protected:
virtual void machine_start() override;
virtual void machine_reset() override { set_cpu_freq(); }
private:
void set_cpu_freq();
// devices/pointers
required_device<mcs48_cpu_device> m_maincpu;
@ -68,50 +93,25 @@ protected:
DECLARE_WRITE8_MEMBER(control_w);
DECLARE_READ8_MEMBER(input_r);
bool m_kp_select;
u8 m_inp_mux;
u8 m_led_select;
bool m_kp_select = false;
u8 m_inp_mux = 0;
u8 m_led_select = 0;
};
void presto_state::machine_start()
void micro2_state::machine_start()
{
// zerofill
m_kp_select = false;
m_inp_mux = 0;
m_led_select = 0;
// register for savestates
save_item(NAME(m_kp_select));
save_item(NAME(m_inp_mux));
save_item(NAME(m_led_select));
}
// Octo
class octo_state : public presto_state
void micro2_state::set_cpu_freq()
{
public:
octo_state(const machine_config &mconfig, device_type type, const char *tag) :
presto_state(mconfig, type, tag)
{ }
DECLARE_INPUT_CHANGED_MEMBER(octo_cpu_freq) { octo_set_cpu_freq(); }
protected:
virtual void machine_reset() override;
void octo_set_cpu_freq();
};
void octo_state::machine_reset()
{
presto_state::machine_reset();
octo_set_cpu_freq();
}
void octo_state::octo_set_cpu_freq()
{
// Octo was released with either 12MHz or 15MHz CPU
m_maincpu->set_unscaled_clock((ioport("FAKE")->read() & 1) ? (15000000) : (12000000));
// known CPU speeds: 6MHz(XTAL), 6MHz(LC), 12MHz(LC)
u32 clock = (ioport("FAKE")->read() & 1) ? 12000000 : 6000000;
m_board->set_delay(attotime::from_ticks(2000000, clock)); // see TODO
m_maincpu->set_unscaled_clock(clock);
}
@ -122,19 +122,19 @@ void octo_state::octo_set_cpu_freq()
// MCU ports/generic
void presto_state::update_display()
void micro2_state::update_display()
{
m_display->matrix(m_led_select, m_inp_mux);
}
WRITE8_MEMBER(presto_state::mux_w)
WRITE8_MEMBER(micro2_state::mux_w)
{
// D0-D7: input mux, led data
m_inp_mux = ~data;
update_display();
}
WRITE8_MEMBER(presto_state::control_w)
WRITE8_MEMBER(micro2_state::control_w)
{
// P21: keypad select
m_kp_select = bool(~data & 2);
@ -147,7 +147,7 @@ WRITE8_MEMBER(presto_state::control_w)
update_display();
}
READ8_MEMBER(presto_state::input_r)
READ8_MEMBER(micro2_state::input_r)
{
u8 data = 0;
@ -170,25 +170,21 @@ READ8_MEMBER(presto_state::input_r)
Input Ports
******************************************************************************/
static INPUT_PORTS_START( presto )
static INPUT_PORTS_START( micro2 )
PORT_START("IN.0")
PORT_BIT(0x01, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_CODE(KEYCODE_1) PORT_CODE(KEYCODE_1_PAD) PORT_NAME("Black/White") // Octo calls it "Change Color"
PORT_BIT(0x01, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_CODE(KEYCODE_1) PORT_CODE(KEYCODE_1_PAD) PORT_NAME("B/W") // aka "Black/White" or "Change Color"
PORT_BIT(0x02, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_CODE(KEYCODE_2) PORT_CODE(KEYCODE_2_PAD) PORT_NAME("Verify / Pawn")
PORT_BIT(0x04, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_CODE(KEYCODE_3) PORT_CODE(KEYCODE_3_PAD) PORT_NAME("Set Up / Rook")
PORT_BIT(0x08, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_CODE(KEYCODE_4) PORT_CODE(KEYCODE_4_PAD) PORT_NAME("Knight")
PORT_BIT(0x10, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_CODE(KEYCODE_5) PORT_CODE(KEYCODE_5_PAD) PORT_NAME("Set Level / Bishop")
PORT_BIT(0x10, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_CODE(KEYCODE_5) PORT_CODE(KEYCODE_5_PAD) PORT_NAME("Level / Bishop")
PORT_BIT(0x20, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_CODE(KEYCODE_6) PORT_CODE(KEYCODE_6_PAD) PORT_NAME("Queen")
PORT_BIT(0x40, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_CODE(KEYCODE_7) PORT_CODE(KEYCODE_7_PAD) PORT_NAME("Take Back / King")
PORT_BIT(0x80, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_CODE(KEYCODE_8) PORT_CODE(KEYCODE_8_PAD) PORT_NAME("Go")
INPUT_PORTS_END
static INPUT_PORTS_START( octo )
PORT_INCLUDE( presto )
PORT_START("FAKE")
PORT_CONFNAME( 0x01, 0x00, "CPU Frequency" ) PORT_CHANGED_MEMBER(DEVICE_SELF, octo_state, octo_cpu_freq, 0) // factory set
PORT_CONFSETTING( 0x00, "12MHz" )
PORT_CONFSETTING( 0x01, "15MHz" )
PORT_CONFNAME( 0x01, 0x00, "CPU Frequency" ) PORT_CHANGED_MEMBER(DEVICE_SELF, micro2_state, cpu_freq, 0) // factory set
PORT_CONFSETTING( 0x00, "6MHz" )
PORT_CONFSETTING( 0x01, "12MHz" )
INPUT_PORTS_END
@ -197,17 +193,16 @@ INPUT_PORTS_END
Machine Configs
******************************************************************************/
void presto_state::presto(machine_config &config)
void micro2_state::micro2(machine_config &config)
{
/* basic machine hardware */
I8049(config, m_maincpu, 6000000); // LC circuit, measured 6MHz
m_maincpu->p1_in_cb().set(FUNC(presto_state::input_r));
m_maincpu->p2_out_cb().set(FUNC(presto_state::control_w));
m_maincpu->bus_out_cb().set(FUNC(presto_state::mux_w));
I8049(config, m_maincpu, 6_MHz_XTAL); // see set_cpu_freq
m_maincpu->p1_in_cb().set(FUNC(micro2_state::input_r));
m_maincpu->p2_out_cb().set(FUNC(micro2_state::control_w));
m_maincpu->bus_out_cb().set(FUNC(micro2_state::mux_w));
SENSORBOARD(config, m_board).set_type(sensorboard_device::BUTTONS);
m_board->init_cb().set(m_board, FUNC(sensorboard_device::preset_chess));
m_board->set_delay(attotime::from_msec(320));
/* video hardware */
PWM_DISPLAY(config, m_display).set_size(3, 8);
@ -219,30 +214,15 @@ void presto_state::presto(machine_config &config)
VOLTAGE_REGULATOR(config, "vref").add_route(0, "dac", 1.0, DAC_VREF_POS_INPUT);
}
void presto_state::octo(machine_config &config)
{
presto(config);
/* basic machine hardware */
m_maincpu->set_clock(12000000); // LC circuit, measured, see octo_set_cpu_freq
m_board->set_delay(attotime::from_msec(160));
}
/******************************************************************************
ROM Definitions
******************************************************************************/
ROM_START( npresto )
ROM_START( nmicro2 )
ROM_REGION( 0x0800, "maincpu", 0 )
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_LOAD("8049_8210", 0x0000, 0x0800, CRC(29a0eb4c) SHA1(e058d6018e53ddcaa3b5ec25b33b8bff091b04db) )
ROM_END
} // anonymous namespace
@ -254,5 +234,4 @@ ROM_END
******************************************************************************/
// YEAR NAME PARENT COMPAT MACHINE INPUT CLASS INIT COMPANY, FULLNAME, FLAGS
CONS( 1984, npresto, 0, 0, presto, presto, presto_state, empty_init, "Novag", "Presto (Novag)", MACHINE_SUPPORTS_SAVE | MACHINE_CLICKABLE_ARTWORK )
CONS( 1987, nocto, npresto, 0, octo, octo, octo_state, empty_init, "Novag", "Octo (Novag)", MACHINE_SUPPORTS_SAVE | MACHINE_CLICKABLE_ARTWORK )
CONS( 1982, nmicro2, 0, 0, micro2, micro2, micro2_state, empty_init, "Novag", "Micro II (Novag)", MACHINE_SUPPORTS_SAVE | MACHINE_CLICKABLE_ARTWORK )

View File

@ -498,6 +498,8 @@ license:CC0
<!-- right side -->
<bezel element="black"><bounds x="85.3" y="14" width="2.7" height="3" /></bezel>
<bezel element="text_king"><bounds x="84.01" y="22.8" width="5.5" height="3" /></bezel>
<bezel element="text_queen"><bounds x="84.01" y="31.6" width="5.5" height="3" /></bezel>
<bezel element="text_rook"><bounds x="84.01" y="40.4" width="5.5" height="3" /></bezel>

View File

@ -6,7 +6,11 @@ license:CC0
<!-- define elements -->
<element name="static_red"><rect><color red="0.7" green="0.13" blue="0.12" /></rect></element>
<element name="whitew"><rect><color red="1" green="1" blue="1" /></rect></element>
<element name="white2"><rect><color red="0.9" green="0.9" blue="0.92" /></rect></element>
<element name="whitem"><rect><color red="0.69" green="0.68" blue="0.67" /></rect></element>
<element name="blackb"><rect><color red="0" green="0" blue="0" /></rect></element>
<element name="blacka"><rect><color red="0.12" green="0.12" blue="0.12" /></rect></element>
<element name="ledr" defstate="0">
<disk state="1"><color red="1.0" green="0.1" blue="0.15" /></disk>
@ -17,89 +21,70 @@ license:CC0
<disk state="0"><color red="0.015" green="0.16" blue="0.01" /></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 name="button" defstate="0">
<rect state="0"><color red="1.0" green="1.0" blue="1.0" /></rect>
<rect state="1"><color red="0.82" green="0.82" blue="0.82" /></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_1"><text string="1"><color red="0.85" green="0.85" blue="0.85" /></text></element>
<element name="text_2"><text string="2"><color red="0.85" green="0.85" blue="0.85" /></text></element>
<element name="text_3"><text string="3"><color red="0.85" green="0.85" blue="0.85" /></text></element>
<element name="text_4"><text string="4"><color red="0.85" green="0.85" blue="0.85" /></text></element>
<element name="text_5"><text string="5"><color red="0.85" green="0.85" blue="0.85" /></text></element>
<element name="text_6"><text string="6"><color red="0.85" green="0.85" blue="0.85" /></text></element>
<element name="text_7"><text string="7"><color red="0.85" green="0.85" blue="0.85" /></text></element>
<element name="text_8"><text string="8"><color red="0.85" green="0.85" blue="0.85" /></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_a"><text string="A"><color red="0.85" green="0.85" blue="0.85" /></text></element>
<element name="text_b"><text string="B"><color red="0.85" green="0.85" blue="0.85" /></text></element>
<element name="text_c"><text string="C"><color red="0.85" green="0.85" blue="0.85" /></text></element>
<element name="text_d"><text string="D"><color red="0.85" green="0.85" blue="0.85" /></text></element>
<element name="text_e"><text string="E"><color red="0.85" green="0.85" blue="0.85" /></text></element>
<element name="text_f"><text string="F"><color red="0.85" green="0.85" blue="0.85" /></text></element>
<element name="text_g"><text string="G"><color red="0.85" green="0.85" blue="0.85" /></text></element>
<element name="text_h"><text string="H"><color red="0.85" green="0.85" blue="0.85" /></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_l1"><text string="MATE" align="2"><color red="0.85" green="0.85" blue="0.85" /></text></element>
<element name="text_l2"><text string="STALE" align="2"><color red="0.85" green="0.85" blue="0.85" /></text></element>
<element name="text_l3"><text string="CHECK" align="2"><color red="0.85" green="0.85" blue="0.85" /></text></element>
<element name="text_l4"><text string="ERROR" align="2"><color red="0.85" green="0.85" blue="0.85" /></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.5" green="0.37" blue="0.3" /></text>
<element name="text_l5"><text string="WHITE" align="1"><color red="0.85" green="0.85" blue="0.85" /></text></element>
<element name="text_l6"><text string="BLACK" align="1"><color red="0.85" green="0.85" blue="0.85" /></text></element>
<element name="text_l7"><text string="VERIFY" align="1"><color red="0.85" green="0.85" blue="0.85" /></text></element>
<element name="text_l8"><text string="SET UP" align="1"><color red="0.85" green="0.85" blue="0.85" /></text></element>
<element name="text_b1">
<rect><color red="1" green="1" blue="1" /></rect>
<text string="B/W"><color red="0" green="0" blue="0" /></text>
</element>
<element name="text_r2">
<rect><color red="0.81" green="0.8" blue="0.79" /></rect>
<text string="Verify"><color red="0.5" green="0.37" blue="0.3" /></text>
<element name="text_b2">
<rect><color red="1" green="1" blue="1" /></rect>
<text string="VERIFY"><color red="0" green="0" blue="0" /></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.5" green="0.37" blue="0.3" /></text>
<element name="text_b3">
<rect><color red="1" green="1" blue="1" /></rect>
<text string="SET UP"><color red="0" green="0" blue="0" /></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.5" green="0.37" blue="0.3" /></text>
<element name="text_b4">
<rect><color red="1" green="1" blue="1" /></rect>
<text string="LEVEL"><color red="0" green="0" blue="0" /></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.5" green="0.37" blue="0.3" /></text>
<element name="text_b5">
<rect><color red="1" green="1" blue="1" /></rect>
<text string="TAKE BACK"><color red="0" green="0" blue="0" /></text>
</element>
<element name="text_r8">
<rect><color red="0.81" green="0.8" blue="0.79" /></rect>
<text string="Go"><color red="0.5" green="0.37" blue="0.3" /></text>
<element name="text_b6">
<rect><color red="1" green="1" blue="1" /></rect>
<text string="GO"><color red="0" green="0" blue="0" /></text>
</element>
<element name="text_king">
<rect><color red="0.81" green="0.8" blue="0.79" /></rect>
<text string="[K]"><color red="0.5" green="0.37" blue="0.3" /></text>
</element>
<element name="text_queen">
<rect><color red="0.81" green="0.8" blue="0.79" /></rect>
<text string="[Q]"><color red="0.5" green="0.37" blue="0.3" /></text>
</element>
<element name="text_rook">
<rect><color red="0.81" green="0.8" blue="0.79" /></rect>
<text string="[R]"><color red="0.5" green="0.37" blue="0.3" /></text>
</element>
<element name="text_bishop">
<rect><color red="0.81" green="0.8" blue="0.79" /></rect>
<text string="[B]"><color red="0.5" green="0.37" blue="0.3" /></text>
</element>
<element name="text_knight">
<rect><color red="0.81" green="0.8" blue="0.79" /></rect>
<text string="[N]"><color red="0.5" green="0.37" blue="0.3" /></text>
</element>
<element name="text_pawn">
<rect><color red="0.81" green="0.8" blue="0.79" /></rect>
<text string="[P]"><color red="0.5" green="0.37" blue="0.3" /></text>
</element>
<element name="text_p1"><image file="chess/bk.png"></image></element>
<element name="text_p2"><image file="chess/bq.png"></image></element>
<element name="text_p3"><image file="chess/br.png"></image></element>
<element name="text_p4"><image file="chess/bb.png"></image></element>
<element name="text_p5"><image file="chess/bn.png"></image></element>
<element name="text_p6"><image file="chess/bp.png"></image></element>
<!-- sb board -->
@ -384,106 +369,113 @@ license:CC0
<!-- build screen -->
<view name="Internal Layout">
<bounds left="-16" right="99.5" top="-1" bottom="88" />
<bounds left="-16" right="87" top="-1" bottom="106.5" />
<bezel element="cblack"><bounds x="3" y="3" width="90" height="80" /></bezel>
<group ref="sb_board"><bounds x="3" y="3" width="80" height="80" /></group>
<group ref="sb_ui"><bounds x="-14.5" y="3" width="10" height="80" /></group>
<!-- chessboard coords -->
<bezel element="text_8"><bounds x="-1.75" y="9" width="2" height="2" /></bezel>
<bezel element="text_7"><bounds x="-1.75" y="19" width="2" height="2" /></bezel>
<bezel element="text_6"><bounds x="-1.75" y="29" width="2" height="2" /></bezel>
<bezel element="text_5"><bounds x="-1.75" y="39" width="2" height="2" /></bezel>
<bezel element="text_4"><bounds x="-1.75" y="49" width="2" height="2" /></bezel>
<bezel element="text_3"><bounds x="-1.75" y="59" width="2" height="2" /></bezel>
<bezel element="text_2"><bounds x="-1.75" y="69" width="2" height="2" /></bezel>
<bezel element="text_1"><bounds x="-1.75" y="79" width="2" height="2" /></bezel>
<bezel element="text_8"><bounds x="83.5" y="7" width="2" height="2" /></bezel>
<bezel element="text_7"><bounds x="83.5" y="17" width="2" height="2" /></bezel>
<bezel element="text_6"><bounds x="83.5" y="27" width="2" height="2" /></bezel>
<bezel element="text_5"><bounds x="83.5" y="37" width="2" height="2" /></bezel>
<bezel element="text_4"><bounds x="83.5" y="47" width="2" height="2" /></bezel>
<bezel element="text_3"><bounds x="83.5" y="57" width="2" height="2" /></bezel>
<bezel element="text_2"><bounds x="83.5" y="67" width="2" height="2" /></bezel>
<bezel element="text_1"><bounds x="83.5" y="77" width="2" height="2" /></bezel>
<bezel element="text_l1"><bounds x="-5" y="74.75" width="8" height="2" /></bezel>
<bezel element="text_l2"><bounds x="-5" y="64.75" width="8" height="2" /></bezel>
<bezel element="text_l3"><bounds x="-5" y="54.75" width="8" height="2" /></bezel>
<bezel element="text_l7"><bounds x="-5" y="14.75" width="8" height="2" /></bezel>
<bezel element="text_a"><bounds x="7" y="0.4" width="2" height="2" /></bezel>
<bezel element="text_b"><bounds x="17" y="0.4" width="2" height="2" /></bezel>
<bezel element="text_c"><bounds x="27" y="0.4" width="2" height="2" /></bezel>
<bezel element="text_d"><bounds x="37" y="0.4" width="2" height="2" /></bezel>
<bezel element="text_e"><bounds x="47" y="0.4" width="2" height="2" /></bezel>
<bezel element="text_f"><bounds x="57" y="0.4" width="2" height="2" /></bezel>
<bezel element="text_g"><bounds x="67" y="0.4" width="2" height="2" /></bezel>
<bezel element="text_h"><bounds x="77" y="0.4" width="2" height="2" /></bezel>
<bezel element="text_a"><bounds x="8" y="83.75" width="2" height="2" /></bezel>
<bezel element="text_b"><bounds x="18" y="83.75" width="2" height="2" /></bezel>
<bezel element="text_c"><bounds x="28" y="83.75" width="2" height="2" /></bezel>
<bezel element="text_d"><bounds x="38" y="83.75" width="2" height="2" /></bezel>
<bezel element="text_e"><bounds x="48" y="83.75" width="2" height="2" /></bezel>
<bezel element="text_f"><bounds x="58" y="83.75" width="2" height="2" /></bezel>
<bezel element="text_g"><bounds x="68" y="83.75" width="2" height="2" /></bezel>
<bezel element="text_h"><bounds x="78" y="83.75" width="2" height="2" /></bezel>
<!-- chessboard leds, labels -->
<!-- chessboard leds -->
<bezel name="0.7" element="ledr"><bounds x="0.5" y="7.25" width="1.5" height="1.5" /></bezel>
<bezel name="0.6" element="ledr"><bounds x="0.5" y="17.25" width="1.5" height="1.5" /></bezel>
<bezel name="0.5" element="ledr"><bounds x="0.5" y="27.25" width="1.5" height="1.5" /></bezel>
<bezel name="0.4" element="ledr"><bounds x="0.5" y="37.25" width="1.5" height="1.5" /></bezel>
<bezel name="0.3" element="ledr"><bounds x="0.5" y="47.25" width="1.5" height="1.5" /></bezel>
<bezel name="0.2" element="ledr"><bounds x="0.5" y="57.25" width="1.5" height="1.5" /></bezel>
<bezel name="0.1" element="ledr"><bounds x="0.5" y="67.25" width="1.5" height="1.5" /></bezel>
<bezel name="0.0" element="ledr"><bounds x="0.5" y="77.25" width="1.5" height="1.5" /></bezel>
<bezel name="0.7" element="ledr"><bounds x="-1.5" y="7.25" width="1.5" height="1.5" /></bezel>
<bezel name="0.6" element="ledr"><bounds x="-1.5" y="17.25" width="1.5" height="1.5" /></bezel>
<bezel name="0.5" element="ledr"><bounds x="-1.5" y="27.25" width="1.5" height="1.5" /></bezel>
<bezel name="0.4" element="ledr"><bounds x="-1.5" y="37.25" width="1.5" height="1.5" /></bezel>
<bezel name="0.3" element="ledr"><bounds x="-1.5" y="47.25" width="1.5" height="1.5" /></bezel>
<bezel name="0.2" element="ledr"><bounds x="-1.5" y="57.25" width="1.5" height="1.5" /></bezel>
<bezel name="0.1" element="ledr"><bounds x="-1.5" y="67.25" width="1.5" height="1.5" /></bezel>
<bezel name="0.0" element="ledr"><bounds x="-1.5" y="77.25" width="1.5" height="1.5" /></bezel>
<bezel name="1.0" element="ledr"><bounds x="7.25" y="84" width="1.5" height="1.5" /></bezel>
<bezel name="1.1" element="ledr"><bounds x="17.25" y="84" width="1.5" height="1.5" /></bezel>
<bezel name="1.2" element="ledr"><bounds x="27.25" y="84" width="1.5" height="1.5" /></bezel>
<bezel name="1.3" element="ledr"><bounds x="37.25" y="84" width="1.5" height="1.5" /></bezel>
<bezel name="1.4" element="ledr"><bounds x="47.25" y="84" width="1.5" height="1.5" /></bezel>
<bezel name="1.5" element="ledr"><bounds x="57.25" y="84" width="1.5" height="1.5" /></bezel>
<bezel name="1.6" element="ledr"><bounds x="67.25" y="84" width="1.5" height="1.5" /></bezel>
<bezel name="1.7" element="ledr"><bounds x="77.25" y="84" width="1.5" height="1.5" /></bezel>
<bezel name="1.0" element="ledr"><bounds x="6" y="84" width="1.5" height="1.5" /></bezel>
<bezel name="1.1" element="ledr"><bounds x="16" y="84" width="1.5" height="1.5" /></bezel>
<bezel name="1.2" element="ledr"><bounds x="26" y="84" width="1.5" height="1.5" /></bezel>
<bezel name="1.3" element="ledr"><bounds x="36" y="84" width="1.5" height="1.5" /></bezel>
<bezel name="1.4" element="ledr"><bounds x="46" y="84" width="1.5" height="1.5" /></bezel>
<bezel name="1.5" element="ledr"><bounds x="56" y="84" width="1.5" height="1.5" /></bezel>
<bezel name="1.6" element="ledr"><bounds x="66" y="84" width="1.5" height="1.5" /></bezel>
<bezel name="1.7" element="ledr"><bounds x="76" y="84" width="1.5" height="1.5" /></bezel>
<bezel name="2.0" element="ledg"><bounds x="12.25" y="87" width="1.5" height="1.5" /></bezel>
<bezel name="2.1" element="ledg"><bounds x="32.25" y="87" width="1.5" height="1.5" /></bezel>
<bezel name="2.2" element="ledg"><bounds x="52.25" y="87" width="1.5" height="1.5" /></bezel>
<bezel name="2.3" element="ledg"><bounds x="72.25" y="87" width="1.5" height="1.5" /></bezel>
<bezel name="2.0" element="ledr"><bounds x="90.5" y="84" width="1.5" height="1.5" /></bezel>
<bezel name="2.1" element="ledg"><bounds x="86" y="84" width="1.5" height="1.5" /></bezel>
<bezel name="2.2" element="ledg"><bounds x="96" y="70.7" width="1.5" height="1.5" /></bezel>
<bezel name="2.3" element="ledg"><bounds x="96" y="60.7" width="1.5" height="1.5" /></bezel>
<bezel element="text_l1"><bounds x="-5.8" y="79.5" width="8" height="2" /></bezel>
<bezel element="text_l2"><bounds x="-5.8" y="69.5" width="8" height="2" /></bezel>
<bezel element="text_l3"><bounds x="-5.8" y="59.5" width="8" height="2" /></bezel>
<bezel element="text_l4"><bounds x="-5.8" y="19.5" width="8" height="2" /></bezel>
<!-- right side buttons -->
<bezel element="text_l5"><bounds x="14.5" y="86.8" width="8" height="2" /></bezel>
<bezel element="text_l6"><bounds x="34.5" y="86.8" width="8" height="2" /></bezel>
<bezel element="text_l7"><bounds x="54.5" y="86.8" width="8" height="2" /></bezel>
<bezel element="text_l8"><bounds x="74.5" y="86.8" width="8" height="2" /></bezel>
<bezel element="cwhite"><bounds x="84" y="3" width="10" height="80" /></bezel>
<!-- bottom side buttons -->
<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>
<element ref="whitew"><bounds x="-1" y="90" width="88" height="16.5" /></element>
<bezel element="cblack"><bounds x="85.5" y="5.5" width="7" height="5" /></bezel>
<bezel element="cblack"><bounds x="85.5" y="15.5" width="7" height="5" /></bezel>
<bezel element="cblack"><bounds x="85.5" y="25.5" width="7" height="5" /></bezel>
<bezel element="cblack"><bounds x="85.5" y="35.5" width="7" height="5" /></bezel>
<bezel element="cblack"><bounds x="85.5" y="45.5" width="7" height="5" /></bezel>
<bezel element="cblack"><bounds x="85.5" y="55.5" width="7" height="5" /></bezel>
<bezel element="cblack"><bounds x="85.5" y="65.5" width="7" height="5" /></bezel>
<bezel element="cblack"><bounds x="85.5" y="75.5" width="7" height="5" /></bezel>
<element ref="text_b1"><bounds x="3" y="92.5" width="10" height="2" /></element>
<element ref="text_b2"><bounds x="13" y="92.5" width="10" height="2" /></element>
<element ref="text_b3"><bounds x="23" y="92.5" width="10" height="2" /></element>
<element ref="text_b4"><bounds x="43" y="92.5" width="10" height="2" /></element>
<element ref="text_b6"><bounds x="73" y="92.5" width="10" height="2" /></element>
<element ref="text_b5"><bounds x="62" y="92.5" width="12" height="2" /></element>
<bezel element="static_red"><bounds x="86" y="6" width="6" height="4" /></bezel>
<bezel element="cwhite"><bounds x="86" y="16" width="6" height="4" /></bezel>
<bezel element="cwhite"><bounds x="86" y="26" width="6" height="4" /></bezel>
<bezel element="cwhite"><bounds x="86" y="36" width="6" height="4" /></bezel>
<bezel element="cwhite"><bounds x="86" y="46" width="6" height="4" /></bezel>
<bezel element="cwhite"><bounds x="86" y="56" width="6" height="4" /></bezel>
<bezel element="cwhite"><bounds x="86" y="66" width="6" height="4" /></bezel>
<bezel element="cwhite"><bounds x="89" y="76" width="3" height="4" /></bezel>
<element ref="text_p6"><bounds x="15.75" y="98.8" width="4.5" height="4.5" /></element>
<element ref="text_p3"><bounds x="25.75" y="98.8" width="4.5" height="4.5" /></element>
<element ref="text_p5"><bounds x="35.75" y="98.8" width="4.5" height="4.5" /></element>
<element ref="text_p4"><bounds x="45.75" y="98.8" width="4.5" height="4.5" /></element>
<element ref="text_p2"><bounds x="55.75" y="98.8" width="4.5" height="4.5" /></element>
<element ref="text_p1"><bounds x="65.75" y="98.8" width="4.5" height="4.5" /></element>
<bezel element="text_king"><bounds x="86" y="16.6" width="6" height="2.4" /></bezel>
<bezel element="text_queen"><bounds x="86" y="26.6" width="6" height="2.4" /></bezel>
<bezel element="text_bishop"><bounds x="86" y="36.6" width="6" height="2.4" /></bezel>
<bezel element="text_knight"><bounds x="86" y="46.6" width="6" height="2.4" /></bezel>
<bezel element="text_rook"><bounds x="86" y="56.6" width="6" height="2.4" /></bezel>
<bezel element="text_pawn"><bounds x="86" y="66.6" width="6" height="2.4" /></bezel>
<element ref="blackb"><bounds x="4.5" y="95" width="7" height="3.5" /></element>
<element ref="blackb"><bounds x="14.5" y="95" width="7" height="3.5" /></element>
<element ref="blackb"><bounds x="24.5" y="95" width="7" height="3.5" /></element>
<element ref="blackb"><bounds x="34.5" y="95" width="7" height="3.5" /></element>
<element ref="blackb"><bounds x="44.5" y="95" width="7" height="3.5" /></element>
<element ref="blackb"><bounds x="54.5" y="95" width="7" height="3.5" /></element>
<element ref="blackb"><bounds x="64.5" y="95" width="7" height="3.5" /></element>
<element ref="blackb"><bounds x="74.5" y="95" width="7" height="3.5" /></element>
<bezel element="hlb" inputtag="IN.0" inputmask="0x80"><bounds x="86" y="6" width="6" height="4" /><color alpha="0.25" /></bezel>
<bezel element="hlb" inputtag="IN.0" inputmask="0x40"><bounds x="86" y="16" width="6" height="4" /><color alpha="0.4" /></bezel>
<bezel element="hlb" inputtag="IN.0" inputmask="0x20"><bounds x="86" y="26" width="6" height="4" /><color alpha="0.4" /></bezel>
<bezel element="hlb" inputtag="IN.0" inputmask="0x10"><bounds x="86" y="36" width="6" height="4" /><color alpha="0.4" /></bezel>
<bezel element="hlb" inputtag="IN.0" inputmask="0x08"><bounds x="86" y="46" width="6" height="4" /><color alpha="0.4" /></bezel>
<bezel element="hlb" inputtag="IN.0" inputmask="0x04"><bounds x="86" y="56" width="6" height="4" /><color alpha="0.4" /></bezel>
<bezel element="hlb" inputtag="IN.0" inputmask="0x02"><bounds x="86" y="66" width="6" height="4" /><color alpha="0.4" /></bezel>
<bezel element="hlb" inputtag="IN.0" inputmask="0x01"><bounds x="86" y="76" width="6" height="4" /><color alpha="0.4" /></bezel>
<element ref="whitem" blend="multiply"><bounds x="-1" y="90" width="88" height="16.5" /></element>
<element ref="blacka" blend="add"><bounds x="-1" y="90" width="88" height="16.5" /></element>
<element ref="white2"><bounds x="4.9" y="95.4" width="6.2" height="2.7" /></element>
<element ref="white2"><bounds x="14.9" y="95.4" width="6.2" height="2.7" /></element>
<element ref="white2"><bounds x="24.9" y="95.4" width="6.2" height="2.7" /></element>
<element ref="white2"><bounds x="34.9" y="95.4" width="6.2" height="2.7" /></element>
<element ref="white2"><bounds x="44.9" y="95.4" width="6.2" height="2.7" /></element>
<element ref="white2"><bounds x="54.9" y="95.4" width="6.2" height="2.7" /></element>
<element ref="white2"><bounds x="64.9" y="95.4" width="6.2" height="2.7" /></element>
<element ref="white2"><bounds x="74.9" y="95.4" width="6.2" height="2.7" /></element>
<element ref="button" blend="multiply" inputtag="IN.0" inputmask="0x01"><bounds x="4.5" y="95" width="7" height="3.5" /></element>
<element ref="button" blend="multiply" inputtag="IN.0" inputmask="0x02"><bounds x="14.5" y="95" width="7" height="3.5" /></element>
<element ref="button" blend="multiply" inputtag="IN.0" inputmask="0x04"><bounds x="24.5" y="95" width="7" height="3.5" /></element>
<element ref="button" blend="multiply" inputtag="IN.0" inputmask="0x08"><bounds x="34.5" y="95" width="7" height="3.5" /></element>
<element ref="button" blend="multiply" inputtag="IN.0" inputmask="0x10"><bounds x="44.5" y="95" width="7" height="3.5" /></element>
<element ref="button" blend="multiply" inputtag="IN.0" inputmask="0x20"><bounds x="54.5" y="95" width="7" height="3.5" /></element>
<element ref="button" blend="multiply" inputtag="IN.0" inputmask="0x40"><bounds x="64.5" y="95" width="7" height="3.5" /></element>
<element ref="button" blend="multiply" inputtag="IN.0" inputmask="0x80"><bounds x="74.5" y="95" width="7" height="3.5" /></element>
</view>
</mamelayout>

View File

@ -31962,8 +31962,7 @@ diablo68 //
scorpio68 //
@source:novag_micro2.cpp
nocto //
npresto //
nmicro2
@source:novag_savant.cpp
savant //