mephisto_montec.cpp: split driver file into montec/smondial

This commit is contained in:
hap 2021-04-12 00:36:41 +02:00
parent b3e581c8f9
commit f498f61295
37 changed files with 1030 additions and 1151 deletions

View File

@ -2550,6 +2550,7 @@ files {
MAME_DIR .. "src/mame/drivers/mephisto_montec.cpp",
MAME_DIR .. "src/mame/drivers/mephisto_polgar.cpp",
MAME_DIR .. "src/mame/drivers/mephisto_risc.cpp",
MAME_DIR .. "src/mame/drivers/mephisto_smondial.cpp",
MAME_DIR .. "src/mame/machine/mmboard.cpp",
MAME_DIR .. "src/mame/machine/mmboard.h",
MAME_DIR .. "src/mame/video/mmdisplay1.cpp",

View File

@ -161,6 +161,9 @@ B0000x-xxxxxx: see V7, -800000
******************************************************************************/
#include "emu.h"
#include "bus/generic/slot.h"
#include "bus/generic/carts.h"
#include "cpu/m68000/m68000.h"
#include "machine/gen_latch.h"
#include "machine/ram.h"
@ -169,8 +172,6 @@ B0000x-xxxxxx: see V7, -800000
#include "machine/sensorboard.h"
#include "sound/dac.h"
#include "video/pwm.h"
#include "bus/generic/slot.h"
#include "bus/generic/carts.h"
#include "softlist.h"
#include "speaker.h"

View File

@ -205,20 +205,14 @@ private:
void ttl_w(offs_t offset, u8 data);
u8 ttl_r(offs_t offset);
u8 m_select;
u8 m_7seg_data;
u8 m_speech_data;
u8 m_speech_bank;
u8 m_select = 0;
u8 m_7seg_data = 0;
u8 m_speech_data = 0;
u8 m_speech_bank = 0;
};
void excel_state::machine_start()
{
// zerofill
m_select = 0;
m_7seg_data = 0;
m_speech_data = 0;
m_speech_bank = 0;
// register for savestates
save_item(NAME(m_select));
save_item(NAME(m_7seg_data));

View File

@ -142,6 +142,7 @@ void phantom_state::init_fphantom()
}
/******************************************************************************
Motor Sim
******************************************************************************/
@ -206,6 +207,7 @@ void phantom_state::update_pieces_position(int state)
}
/******************************************************************************
I/O
******************************************************************************/
@ -336,6 +338,7 @@ u8 phantom_state::vmotor_ff_clear_r()
}
/******************************************************************************
Address Maps
******************************************************************************/

View File

@ -1,7 +1,7 @@
// license:BSD-3-Clause
// copyright-holders:Sandro Ronco, hap
// thanks-to:yoyo_chessboard
/***************************************************************************
/******************************************************************************
Mephisto Academy
@ -18,7 +18,7 @@ Since the program is on an external module, it appears it was meant to be
a modular chesscomputer. However, no extra modules were sold separately.
Module PCB is the same as Super Mondial II College, label HGS 10 116 05.
***************************************************************************/
******************************************************************************/
#include "emu.h"
@ -126,6 +126,7 @@ INPUT_PORTS_END
void academy_state::academy(machine_config &config)
{
/* basic machine hardware */
M65C02(config, m_maincpu, 4.9152_MHz_XTAL);
m_maincpu->set_addrmap(AS_PROGRAM, &academy_state::main_map);
@ -140,6 +141,7 @@ void academy_state::academy(machine_config &config)
MEPHISTO_SENSORS_BOARD(config, "board"); // internal
MEPHISTO_DISPLAY_MODULE2(config, "display"); // internal
/* video hardware */
PWM_DISPLAY(config, m_led_pwm).set_size(4, 4);
config.set_default_layout(layout_mephisto_academy);
}
@ -176,7 +178,7 @@ ROM_END
Game Drivers
***************************************************************************/
/* YEAR, NAME, PARENT COMPAT MACHINE INPUT CLASS INIT COMPANY FULLNAME FLAGS */
/* YEAR NAME PARENT COMPAT MACHINE INPUT CLASS INIT COMPANY FULLNAME FLAGS */
CONS( 1989, academy, 0, 0, academy, academy, academy_state, empty_init, "Hegener + Glaser", "Mephisto Academy (English)", MACHINE_SUPPORTS_SAVE | MACHINE_CLICKABLE_ARTWORK )
CONS( 1989, academyg, academy, 0, academy, academy, academy_state, empty_init, "Hegener + Glaser", "Mephisto Academy (German, 06-03-89)", MACHINE_SUPPORTS_SAVE | MACHINE_CLICKABLE_ARTWORK )
CONS( 1989, academyga, academy, 0, academy, academy, academy_state, empty_init, "Hegener + Glaser", "Mephisto Academy (German, 04-10-88)", MACHINE_SUPPORTS_SAVE | MACHINE_CLICKABLE_ARTWORK )

View File

@ -253,7 +253,7 @@ ROM_END
Drivers
******************************************************************************/
/* YEAR, NAME, PARENT COMPAT MACHINE INPUT CLASS INIT COMPANY FULLNAME FLAGS */
/* YEAR NAME PARENT COMPAT MACHINE INPUT CLASS INIT COMPANY FULLNAME FLAGS */
CONS( 1985, amsterd, 0, 0, amsterdam, amsterdam, amsterdam_state, empty_init, "Hegener + Glaser", "Mephisto Amsterdam", MACHINE_SUPPORTS_SAVE | MACHINE_CLICKABLE_ARTWORK )
CONS( 1986, dallas32, 0, 0, dallas32, amsterdam, amsterdam_state, empty_init, "Hegener + Glaser", "Mephisto Dallas 68020", MACHINE_SUPPORTS_SAVE | MACHINE_CLICKABLE_ARTWORK )

View File

@ -111,7 +111,8 @@ u8 glasgow_state::keys_r()
data |= 1 << i;
// reading keypad also clears irq
m_maincpu->set_input_line(M68K_IRQ_5, CLEAR_LINE);
if (!machine().side_effects_disabled())
m_maincpu->set_input_line(M68K_IRQ_5, CLEAR_LINE);
return ~data;
}
@ -239,7 +240,7 @@ ROM_END
Drivers
******************************************************************************/
/* YEAR, NAME, PARENT COMPAT MACHINE INPUT CLASS INIT COMPANY FULLNAME FLAGS */
/* YEAR NAME PARENT COMPAT MACHINE INPUT CLASS INIT COMPANY FULLNAME FLAGS */
CONS( 1984, glasgow, 0, 0, glasgow, glasgow, glasgow_state, empty_init, "Hegener + Glaser", "Mephisto III-S Glasgow", MACHINE_SUPPORTS_SAVE | MACHINE_CLICKABLE_ARTWORK )
// newer chesscomputers on 4-ROM hardware (see mephisto_amsterdam.cpp for parent sets)

View File

@ -113,7 +113,7 @@ u8 milano_state::board_r()
u8 milano_state::keys_r(offs_t offset)
{
return (BIT(m_keys->read(), offset) << 7) | 0x7f;
return ~(BIT(m_keys->read(), offset) << 7);
}
@ -142,14 +142,14 @@ void milano_state::milano_mem(address_map &map)
static INPUT_PORTS_START( milano )
PORT_START("KEY")
PORT_BIT(0x01, IP_ACTIVE_LOW, IPT_KEYPAD) PORT_NAME("Training / Pawn") PORT_CODE(KEYCODE_T)
PORT_BIT(0x02, IP_ACTIVE_LOW, IPT_KEYPAD) PORT_NAME("Info / Knight") PORT_CODE(KEYCODE_I)
PORT_BIT(0x04, IP_ACTIVE_LOW, IPT_KEYPAD) PORT_NAME("Memory / Bishop") PORT_CODE(KEYCODE_M)
PORT_BIT(0x08, IP_ACTIVE_LOW, IPT_KEYPAD) PORT_NAME("Position / Rook") PORT_CODE(KEYCODE_O)
PORT_BIT(0x10, IP_ACTIVE_LOW, IPT_KEYPAD) PORT_NAME("Level / Queen") PORT_CODE(KEYCODE_L)
PORT_BIT(0x20, IP_ACTIVE_LOW, IPT_KEYPAD) PORT_NAME("Function / King") PORT_CODE(KEYCODE_F)
PORT_BIT(0x40, IP_ACTIVE_LOW, IPT_KEYPAD) PORT_NAME("Enter / New Game") PORT_CODE(KEYCODE_ENTER) PORT_CODE(KEYCODE_F1) // combine for NEW GAME
PORT_BIT(0x80, IP_ACTIVE_LOW, IPT_KEYPAD) PORT_NAME("Clear / New Game") PORT_CODE(KEYCODE_BACKSPACE) PORT_CODE(KEYCODE_DEL) PORT_CODE(KEYCODE_F1) // "
PORT_BIT(0x01, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_NAME("Training / Pawn") PORT_CODE(KEYCODE_T)
PORT_BIT(0x02, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_NAME("Info / Knight") PORT_CODE(KEYCODE_I)
PORT_BIT(0x04, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_NAME("Memory / Bishop") PORT_CODE(KEYCODE_M)
PORT_BIT(0x08, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_NAME("Position / Rook") PORT_CODE(KEYCODE_O)
PORT_BIT(0x10, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_NAME("Level / Queen") PORT_CODE(KEYCODE_L)
PORT_BIT(0x20, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_NAME("Function / King") PORT_CODE(KEYCODE_F)
PORT_BIT(0x40, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_NAME("Enter / New Game") PORT_CODE(KEYCODE_ENTER) PORT_CODE(KEYCODE_F1) // combine for NEW GAME
PORT_BIT(0x80, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_NAME("Clear / New Game") PORT_CODE(KEYCODE_BACKSPACE) PORT_CODE(KEYCODE_DEL) PORT_CODE(KEYCODE_F1) // "
INPUT_PORTS_END

View File

@ -6,13 +6,14 @@ Mephisto 4 + 5 Chess Computer
2007 Dirk V.
TODO:
- rebel5 unknown read from 0x4002, looks like leftover bookrom check
- need to emulate TurboKit properly, also for mm5p (it's not as simple as a CPU
overclock plus ROM patch)
===============================================================================
Hardware notes:
- CPU: G65SC02P-4 or R65C02P3/R65C02P4
- CPU: R65C02P3/R65C02P4 or G65SC02P-4
- Clock: 4.9152 MHz
- NMI CLK: 600 Hz
- IRQ Line is set to VSS
@ -85,7 +86,7 @@ MM VI (Saitek, 1994) is on different hardware, H8 CPU.
#include "bus/generic/slot.h"
#include "bus/generic/carts.h"
#include "cpu/m6502/m65sc02.h"
#include "cpu/m6502/r65c02.h"
#include "machine/74259.h"
#include "machine/mmboard.h"
#include "sound/dac.h"
@ -169,7 +170,7 @@ void mm2_state::lcd_irqack_w(u8 data)
{
m_display->data_w(data);
// writing to 0x2800 also clears irq
// accessing 0x2800 also clears irq
m_maincpu->set_input_line(0, CLEAR_LINE);
}
@ -205,9 +206,9 @@ void mm2_state::mm2_mem(address_map &map)
void mm2_state::rebel5_mem(address_map &map)
{
map(0x0000, 0x1fff).ram();
map(0x2000, 0x2007).w("outlatch", FUNC(hc259_device::write_d7));
map(0x3000, 0x4000).r("board", FUNC(mephisto_board_device::input_r));
map(0x2000, 0x2007).w("outlatch", FUNC(hc259_device::write_d7)).nopr();
map(0x3000, 0x3007).r(FUNC(mm2_state::keys_r));
map(0x4000, 0x4000).r("board", FUNC(mephisto_board_device::input_r));
map(0x5000, 0x5000).w(m_display, FUNC(mephisto_display1_device::data_w));
map(0x6000, 0x6000).w("board", FUNC(mephisto_board_device::led_w));
map(0x7000, 0x7000).w("board", FUNC(mephisto_board_device::mux_w));
@ -218,7 +219,7 @@ void mm2_state::mm5p_mem(address_map &map)
{
map(0x0000, 0x1fff).ram();
map(0x2000, 0x2000).w(m_display, FUNC(mephisto_display1_device::data_w));
map(0x2400, 0x2407).w("board", FUNC(mephisto_board_device::led_w)).nopr();
map(0x2400, 0x2400).w("board", FUNC(mephisto_board_device::led_w));
map(0x2800, 0x2800).w("board", FUNC(mephisto_board_device::mux_w));
map(0x2c00, 0x2c07).r(FUNC(mm2_state::keys_r));
map(0x3000, 0x3000).r("board", FUNC(mephisto_board_device::input_r));
@ -300,7 +301,7 @@ INPUT_PORTS_END
void mm2_state::rebel5(machine_config &config)
{
/* basic machine hardware */
M65SC02(config, m_maincpu, 9.8304_MHz_XTAL / 2);
R65C02(config, m_maincpu, 9.8304_MHz_XTAL / 2);
m_maincpu->set_addrmap(AS_PROGRAM, &mm2_state::rebel5_mem);
const attotime nmi_period = attotime::from_hz(9.8304_MHz_XTAL / 2 / 0x2000); // 600Hz
@ -504,7 +505,7 @@ CONS( 1985, bup, 0, 0, bup, bup, mm2_state, empty_init, "He
CONS( 1985, bupa, bup, 0, bup, bup, mm2_state, empty_init, "Hegener + Glaser", u8"Mephisto Blitz- und Problemlösungs-Modul (set 2)", MACHINE_SUPPORTS_SAVE | MACHINE_CLICKABLE_ARTWORK )
CONS( 1986, rebel5, 0, 0, rebel5, mm2, mm2_state, empty_init, "Hegener + Glaser", "Mephisto Rebell 5,0 (set 1)", MACHINE_SUPPORTS_SAVE | MACHINE_CLICKABLE_ARTWORK ) // aka MM III
CONS( 1986, rebel5a, rebel5, 0, rebel5, mm2, mm2_state, empty_init, "Hegener + Glaser", "Mephisto Rebell 5,0 (set 2)", MACHINE_SUPPORTS_SAVE | MACHINE_CLICKABLE_ARTWORK )
CONS( 1986, rebel5a, rebel5, 0, rebel5, mm2, mm2_state, empty_init, "Hegener + Glaser", "Mephisto Rebell 5,0 (set 2)", MACHINE_SUPPORTS_SAVE | MACHINE_CLICKABLE_ARTWORK ) // "
CONS( 1987, mm4, 0, 0, mm4, mm2, mm2_state, empty_init, "Hegener + Glaser", "Mephisto MM IV (v7.10)", MACHINE_SUPPORTS_SAVE | MACHINE_CLICKABLE_ARTWORK )
CONS( 1987, mm4a, mm4, 0, mm4, mm2, mm2_state, empty_init, "Hegener + Glaser", "Mephisto MM IV (v7.00)", MACHINE_SUPPORTS_SAVE | MACHINE_CLICKABLE_ARTWORK )

View File

@ -12,7 +12,6 @@ Hardware notes:
TODO:
- verify XTAL (or maybe RC or LC circuit), 2MHz is correct
- unknown read from 0x2000
- dump/add MM 1000 module
******************************************************************************/
@ -61,6 +60,7 @@ private:
void mondial_mem(address_map &map);
void control_w(u8 data);
u8 irq_ack_r();
u8 input_r(offs_t offset);
u8 m_inp_mux = 0;
@ -77,6 +77,25 @@ void mondial_state::machine_start()
I/O
******************************************************************************/
void mondial_state::control_w(u8 data)
{
// d0-d3: input mux, led select
// d4-d6: led data
m_inp_mux = data & 0xf;
m_led_pwm->matrix(1 << m_inp_mux, ~data >> 4 & 7);
// d7: enable beeper
m_beeper->set_state(BIT(data, 7));
}
u8 mondial_state::irq_ack_r()
{
if (!machine().side_effects_disabled())
m_maincpu->set_input_line(0, CLEAR_LINE);
return 0;
}
u8 mondial_state::input_r(offs_t offset)
{
u8 data = 0;
@ -92,17 +111,6 @@ u8 mondial_state::input_r(offs_t offset)
return ~(BIT(data, offset) << 7);
}
void mondial_state::control_w(u8 data)
{
// d0-d3: input mux, led select
// d4-d6: led data
m_inp_mux = data & 0xf;
m_led_pwm->matrix(1 << m_inp_mux, ~data >> 4 & 7);
// d7: enable beeper
m_beeper->set_state(BIT(data, 7));
}
/******************************************************************************
@ -114,7 +122,7 @@ void mondial_state::mondial_mem(address_map &map)
map(0x0000, 0x07ff).ram();
map(0x1000, 0x1000).w(FUNC(mondial_state::control_w));
map(0x1800, 0x1807).r(FUNC(mondial_state::input_r));
map(0x2000, 0x2000).nopr(); // ?
map(0x2000, 0x2000).r(FUNC(mondial_state::irq_ack_r));
map(0xc000, 0xffff).rom();
}
@ -126,24 +134,24 @@ void mondial_state::mondial_mem(address_map &map)
static INPUT_PORTS_START( mondial )
PORT_START("KEY.0")
PORT_BIT(0x01, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_NAME("Pawn / 1") PORT_CODE(KEYCODE_1)
PORT_BIT(0x02, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_NAME("Knight / 2") PORT_CODE(KEYCODE_2)
PORT_BIT(0x04, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_NAME("Bishop / 3") PORT_CODE(KEYCODE_3)
PORT_BIT(0x08, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_NAME("Rook / 4") PORT_CODE(KEYCODE_4)
PORT_BIT(0x10, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_NAME("Queen / 5") PORT_CODE(KEYCODE_5)
PORT_BIT(0x20, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_NAME("King / 6") PORT_CODE(KEYCODE_6)
PORT_BIT(0x40, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_NAME("Black / 7") PORT_CODE(KEYCODE_7)
PORT_BIT(0x80, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_NAME("White / 8") PORT_CODE(KEYCODE_8)
PORT_BIT(0x01, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_NAME("Pawn / 1") PORT_CODE(KEYCODE_1) PORT_CODE(KEYCODE_1_PAD)
PORT_BIT(0x02, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_NAME("Knight / 2") PORT_CODE(KEYCODE_2) PORT_CODE(KEYCODE_2_PAD)
PORT_BIT(0x04, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_NAME("Bishop / 3") PORT_CODE(KEYCODE_3) PORT_CODE(KEYCODE_3_PAD)
PORT_BIT(0x08, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_NAME("Rook / 4") PORT_CODE(KEYCODE_4) PORT_CODE(KEYCODE_4_PAD)
PORT_BIT(0x10, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_NAME("Queen / 5") PORT_CODE(KEYCODE_5) PORT_CODE(KEYCODE_5_PAD)
PORT_BIT(0x20, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_NAME("King / 6") PORT_CODE(KEYCODE_6) PORT_CODE(KEYCODE_6_PAD)
PORT_BIT(0x40, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_NAME("Black / 7") PORT_CODE(KEYCODE_7) PORT_CODE(KEYCODE_7_PAD)
PORT_BIT(0x80, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_NAME("White / 8") PORT_CODE(KEYCODE_8) PORT_CODE(KEYCODE_8_PAD)
PORT_START("KEY.1")
PORT_BIT(0x01, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_NAME("PLAY") PORT_CODE(KEYCODE_Y)
PORT_BIT(0x02, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_NAME("POS") PORT_CODE(KEYCODE_O)
PORT_BIT(0x04, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_NAME("MEM") PORT_CODE(KEYCODE_M)
PORT_BIT(0x08, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_NAME("INFO") PORT_CODE(KEYCODE_I)
PORT_BIT(0x10, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_NAME("CL") PORT_CODE(KEYCODE_BACKSPACE)
PORT_BIT(0x10, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_NAME("CL") PORT_CODE(KEYCODE_DEL) PORT_CODE(KEYCODE_BACKSPACE)
PORT_BIT(0x20, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_NAME("LEV") PORT_CODE(KEYCODE_L)
PORT_BIT(0x40, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_NAME("ENT") PORT_CODE(KEYCODE_ENTER)
PORT_BIT(0x80, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_NAME("RES") PORT_CODE(KEYCODE_DEL)
PORT_BIT(0x40, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_NAME("ENT") PORT_CODE(KEYCODE_ENTER) PORT_CODE(KEYCODE_ENTER_PAD)
PORT_BIT(0x80, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_NAME("RES") PORT_CODE(KEYCODE_F1)
INPUT_PORTS_END
@ -159,7 +167,7 @@ void mondial_state::mondial(machine_config &config)
m_maincpu->set_addrmap(AS_PROGRAM, &mondial_state::mondial_mem);
const attotime irq_period = attotime::from_hz(2000000 / 0x1000);
m_maincpu->set_periodic_int(FUNC(mondial_state::irq0_line_hold), irq_period);
m_maincpu->set_periodic_int(FUNC(mondial_state::irq0_line_assert), irq_period);
SENSORBOARD(config, m_board).set_type(sensorboard_device::BUTTONS);
m_board->init_cb().set(m_board, FUNC(sensorboard_device::preset_chess));

View File

@ -55,9 +55,9 @@ private:
void mondial2_mem(address_map &map);
void update_leds();
u8 input_r(offs_t offset);
void control_w(u8 data);
void board_w(u8 data);
u8 input_r(offs_t offset);
u8 m_keypad_mux = 0;
u8 m_board_mux = 0;
@ -83,23 +83,6 @@ void mondial2_state::update_leds()
m_led_pwm->matrix(m_board_mux, m_led_data);
}
u8 mondial2_state::input_r(offs_t offset)
{
u8 data = 0;
// read chessboard sensors
for (int i = 0; i < 8; i++)
if (BIT(m_board_mux, i))
data |= BIT(m_board->read_rank(i), offset);
// read keypad
for (int i = 0; i < 4; i++)
if (BIT(m_keypad_mux, i))
data |= BIT(m_keys[i]->read(), offset & 3);
return ~(data << 7);
}
void mondial2_state::control_w(u8 data)
{
// d0-d3: keypad mux
@ -120,6 +103,23 @@ void mondial2_state::board_w(u8 data)
update_leds();
}
u8 mondial2_state::input_r(offs_t offset)
{
u8 data = 0;
// read chessboard sensors
for (int i = 0; i < 8; i++)
if (BIT(m_board_mux, i))
data |= BIT(m_board->read_rank(i), offset);
// read keypad
for (int i = 0; i < 4; i++)
if (BIT(m_keypad_mux, i))
data |= BIT(m_keys[i]->read(), offset & 3);
return ~(data << 7);
}
/******************************************************************************
@ -143,16 +143,16 @@ void mondial2_state::mondial2_mem(address_map &map)
static INPUT_PORTS_START( mondial2 )
PORT_START("KEY.0")
PORT_BIT(0x01, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_NAME("Pawn / 1") PORT_CODE(KEYCODE_1)
PORT_BIT(0x02, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_NAME("Knight / 2") PORT_CODE(KEYCODE_2)
PORT_BIT(0x04, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_NAME("Bishop / 3") PORT_CODE(KEYCODE_3)
PORT_BIT(0x08, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_NAME("Rook / 4") PORT_CODE(KEYCODE_4)
PORT_BIT(0x01, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_NAME("Pawn / 1") PORT_CODE(KEYCODE_1) PORT_CODE(KEYCODE_1_PAD)
PORT_BIT(0x02, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_NAME("Knight / 2") PORT_CODE(KEYCODE_2) PORT_CODE(KEYCODE_2_PAD)
PORT_BIT(0x04, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_NAME("Bishop / 3") PORT_CODE(KEYCODE_3) PORT_CODE(KEYCODE_3_PAD)
PORT_BIT(0x08, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_NAME("Rook / 4") PORT_CODE(KEYCODE_4) PORT_CODE(KEYCODE_4_PAD)
PORT_START("KEY.1")
PORT_BIT(0x01, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_NAME("Queen / 5") PORT_CODE(KEYCODE_5)
PORT_BIT(0x02, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_NAME("King / 6") PORT_CODE(KEYCODE_6)
PORT_BIT(0x04, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_NAME("Black / 7") PORT_CODE(KEYCODE_7)
PORT_BIT(0x08, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_NAME("White / 8") PORT_CODE(KEYCODE_8)
PORT_BIT(0x01, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_NAME("Queen / 5") PORT_CODE(KEYCODE_5) PORT_CODE(KEYCODE_5_PAD)
PORT_BIT(0x02, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_NAME("King / 6") PORT_CODE(KEYCODE_6) PORT_CODE(KEYCODE_6_PAD)
PORT_BIT(0x04, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_NAME("Black / 7") PORT_CODE(KEYCODE_7) PORT_CODE(KEYCODE_7_PAD)
PORT_BIT(0x08, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_NAME("White / 8") PORT_CODE(KEYCODE_8) PORT_CODE(KEYCODE_8_PAD)
PORT_START("KEY.2")
PORT_BIT(0x01, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_NAME("PLAY") PORT_CODE(KEYCODE_Y)
@ -161,10 +161,10 @@ static INPUT_PORTS_START( mondial2 )
PORT_BIT(0x08, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_NAME("INFO") PORT_CODE(KEYCODE_I)
PORT_START("KEY.3")
PORT_BIT(0x01, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_NAME("CL") PORT_CODE(KEYCODE_BACKSPACE)
PORT_BIT(0x01, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_NAME("CL") PORT_CODE(KEYCODE_DEL) PORT_CODE(KEYCODE_BACKSPACE)
PORT_BIT(0x02, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_NAME("LEV") PORT_CODE(KEYCODE_L)
PORT_BIT(0x04, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_NAME("ENT") PORT_CODE(KEYCODE_ENTER)
PORT_BIT(0x08, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_NAME("RES") PORT_CODE(KEYCODE_DEL)
PORT_BIT(0x04, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_NAME("ENT") PORT_CODE(KEYCODE_ENTER) PORT_CODE(KEYCODE_ENTER_PAD)
PORT_BIT(0x08, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_NAME("RES") PORT_CODE(KEYCODE_F1)
INPUT_PORTS_END

View File

@ -6,7 +6,7 @@
Mephisto Mondial 68000XL
The chess engine is actually the one from Mephisto Dallas.
Hardware:
Hardware notes:
- TS68000CP12 @ 12MHz
- 64KB ROM
- 16KB RAM
@ -38,7 +38,8 @@ public:
: driver_device(mconfig, type, tag)
, m_maincpu(*this, "maincpu")
, m_board(*this, "board")
, m_display(*this, "display")
, m_lcd_latch(*this, "lcd_latch")
, m_led_pwm(*this, "led_pwm")
, m_lcd(*this, "lcd")
, m_inputs(*this, "IN.%u", 0)
, m_digits(*this, "digit%u", 0U)
@ -51,15 +52,16 @@ protected:
void mondial68k_mem(address_map &map);
void lcd_s_w(u32 data);
void update_leds();
void lcd_output_w(u32 data);
void input_mux_w(u8 data);
void board_mux_w(u8 data);
u8 inputs_r();
void update_display();
required_device<cpu_device> m_maincpu;
required_device<sensorboard_device> m_board;
required_device<pwm_display_device> m_display;
required_device<hc259_device> m_lcd_latch;
required_device<pwm_display_device> m_led_pwm;
required_device<pcf2112_device> m_lcd;
required_ioport_array<4> m_inputs;
output_finder<4> m_digits;
@ -83,12 +85,12 @@ void mondial68k_state::machine_start()
I/O
******************************************************************************/
void mondial68k_state::update_display()
void mondial68k_state::update_leds()
{
m_display->matrix(m_input_mux >> 6, ~m_board_mux);
m_led_pwm->matrix(m_input_mux >> 6, ~m_board_mux);
}
void mondial68k_state::lcd_s_w(u32 data)
void mondial68k_state::lcd_output_w(u32 data)
{
// output LCD digits (note: last digit DP segment is unused)
for (int i = 0; i < 4; i++)
@ -99,7 +101,7 @@ void mondial68k_state::board_mux_w(u8 data)
{
// d0-d7: chessboard mux, led data
m_board_mux = data;
update_display();
update_leds();
}
void mondial68k_state::input_mux_w(u8 data)
@ -107,7 +109,7 @@ void mondial68k_state::input_mux_w(u8 data)
// d0-d3: button mux
// d6,d7: led select
m_input_mux = data;
update_display();
update_leds();
}
u8 mondial68k_state::inputs_r()
@ -137,7 +139,7 @@ void mondial68k_state::mondial68k_mem(address_map &map)
{
map(0x000000, 0x00ffff).rom();
map(0x800000, 0x800000).r(FUNC(mondial68k_state::inputs_r));
map(0x820000, 0x82000f).nopr().w("outlatch", FUNC(hc259_device::write_d0)).umask16(0xff00);
map(0x820000, 0x82000f).nopr().w(m_lcd_latch, FUNC(hc259_device::write_d0)).umask16(0xff00);
map(0x840000, 0x840000).w(FUNC(mondial68k_state::input_mux_w));
map(0x860000, 0x860000).w(FUNC(mondial68k_state::board_mux_w));
map(0xc00000, 0xc03fff).ram();
@ -188,12 +190,12 @@ void mondial68k_state::mondial68k(machine_config &config)
m_maincpu->set_addrmap(AS_PROGRAM, &mondial68k_state::mondial68k_mem);
m_maincpu->set_periodic_int(FUNC(mondial68k_state::irq5_line_hold), attotime::from_hz(128));
hc259_device &outlatch(HC259(config, "outlatch"));
outlatch.q_out_cb<0>().set(m_lcd, FUNC(pcf2112_device::clb_w));
outlatch.q_out_cb<1>().set(m_lcd, FUNC(pcf2112_device::data_w));
outlatch.q_out_cb<2>().set(m_lcd, FUNC(pcf2112_device::dlen_w));
outlatch.q_out_cb<6>().set_nop(); // another DAC input?
outlatch.q_out_cb<7>().set("dac", FUNC(dac_1bit_device::write));
HC259(config, m_lcd_latch);
m_lcd_latch->q_out_cb<0>().set(m_lcd, FUNC(pcf2112_device::clb_w));
m_lcd_latch->q_out_cb<1>().set(m_lcd, FUNC(pcf2112_device::data_w));
m_lcd_latch->q_out_cb<2>().set(m_lcd, FUNC(pcf2112_device::dlen_w));
m_lcd_latch->q_out_cb<6>().set_nop(); // another DAC input?
m_lcd_latch->q_out_cb<7>().set("dac", FUNC(dac_1bit_device::write));
SENSORBOARD(config, m_board).set_type(sensorboard_device::BUTTONS);
m_board->init_cb().set(m_board, FUNC(sensorboard_device::preset_chess));
@ -201,9 +203,9 @@ void mondial68k_state::mondial68k(machine_config &config)
/* video hardware */
PCF2112(config, m_lcd, 50); // frequency guessed
m_lcd->write_segs().set(FUNC(mondial68k_state::lcd_s_w));
m_lcd->write_segs().set(FUNC(mondial68k_state::lcd_output_w));
PWM_DISPLAY(config, m_display).set_size(2, 8);
PWM_DISPLAY(config, m_led_pwm).set_size(2, 8);
config.set_default_layout(layout_mephisto_mondial68k);
/* sound hardware */
@ -231,5 +233,5 @@ ROM_END
Game Drivers
***************************************************************************/
/* YEAR, NAME, PARENT COMPAT MACHINE INPUT CLASS INIT COMPANY FULLNAME FLAGS */
CONS( 1988, mondl68k, 0, 0, mondial68k, mondial68k, mondial68k_state, empty_init, "Hegener + Glaser", "Mephisto Mondial 68000XL", MACHINE_SUPPORTS_SAVE | MACHINE_CLICKABLE_ARTWORK )
/* YEAR NAME PARENT COMPAT MACHINE INPUT CLASS INIT COMPANY FULLNAME FLAGS */
CONS( 1988, mondl68k, 0, 0, mondial68k, mondial68k, mondial68k_state, empty_init, "Hegener + Glaser", "Mephisto Mondial 68000XL", MACHINE_SUPPORTS_SAVE | MACHINE_CLICKABLE_ARTWORK )

View File

@ -1,435 +1,240 @@
// license:BSD-3-Clause
// copyright-holders:Sandro Ronco
// thanks-to:yoyo_chessboard
/**************************************************************************************************
// copyright-holders:Sandro Ronco, hap
/******************************************************************************
Mephisto Monte Carlo
Mephisto Mega IV
Mephisto Monte Carlo IV LE
Mephisto Super Mondial
Mephisto Super Mondial II
Mephisto Monte Carlo
Mephisto Monte Carlo IV
Mephisto Monte Carlo IV - Limited Edition
smondialb notes:
- holding CL+INFO+BOOK on boot load the test mode
The chess engine is by Frans Morsch, but for the IV version it's by Ed Schroeder.
Limited Edition has a twice faster CPU.
TODO:
- split driver into several files?
- megaiv/smondial leds are tri-color
- why are megaiv/smondial2 beeps noisy?
- what is montec 0x2000? (it can't be nmi ack)
- add Monte Carlo IV (non-LE)
Hardware notes:
- R65C02P4 @ 4MHz
- 8KB RAM(battery-backed), 32KB ROM
- expansion slot at underside (not used)
- 2*PCF2112, 2 7seg LCD screens
- 8 tri-color leds (like academy, always 6 red and 2 green?)
- magnetic chessboard with 64 leds, piezo
**************************************************************************************************/
TODO:
- dump/add the standard Monte Carlo IV
******************************************************************************/
#include "emu.h"
#include "bus/generic/slot.h"
#include "bus/generic/carts.h"
#include "cpu/m6502/m65c02.h"
#include "cpu/m6502/r65c02.h"
#include "machine/74259.h"
#include "machine/nvram.h"
#include "machine/mmboard.h"
#include "sound/dac.h"
#include "video/pcf2100.h"
#include "video/pwm.h"
#include "screen.h"
#include "speaker.h"
#include "softlist.h"
// internal artwork
#include "mephisto_montec.lh"
#include "mephisto_megaiv.lh"
#include "mephisto_smondial.lh"
#include "mephisto_smondial2.lh"
class mephisto_montec_state : public driver_device
namespace {
class montec_state : public driver_device
{
public:
mephisto_montec_state(const machine_config &mconfig, device_type type, const char *tag)
montec_state(const machine_config &mconfig, device_type type, const char *tag)
: driver_device(mconfig, type, tag)
, m_maincpu(*this, "maincpu")
, m_board(*this, "board")
, m_muxlatch(*this, "muxlatch")
, m_lcd_latch(*this, "lcd_latch")
, m_led_pwm(*this, "led_pwm")
, m_lcd(*this, "lcd%u", 0)
, m_dac(*this, "dac")
, m_keys(*this, "KEY.%u", 0)
, m_digits(*this, "digit%u", 0U)
, m_low_leds(*this, "led%u", 0U)
, m_high_leds(*this, "led%u", 100U)
{ }
void smondial2(machine_config &config);
void montec(machine_config &config);
void monteciv(machine_config &config);
void megaiv(machine_config &config);
void montec4le(machine_config &config);
protected:
uint8_t montec_input_r();
void montec_led_w(uint8_t data);
template<int N> void montec_lcd_s_w(uint32_t data);
uint8_t megaiv_input_r(offs_t offset);
void megaiv_led_w(uint8_t data);
void megaiv_mem(address_map &map);
void montec_mem(address_map &map);
void smondial2_mem(address_map &map);
virtual void machine_start() override;
virtual void machine_reset() override;
private:
required_device<cpu_device> m_maincpu;
required_device<mephisto_board_device> m_board;
required_device<hc259_device> m_muxlatch;
required_device<hc259_device> m_lcd_latch;
required_device<pwm_display_device> m_led_pwm;
required_device_array<pcf2112_device, 2> m_lcd;
required_device<dac_bit_interface> m_dac;
required_ioport_array<2> m_keys;
output_finder<8> m_digits;
output_finder<16> m_low_leds, m_high_leds;
uint8_t m_leds_mux;
void montec_mem(address_map &map);
template<int N> void lcd_output_w(u32 data);
void led_w(u8 data);
void irq_ack_w(u8 data) { irq_ack_r(); }
u8 irq_ack_r();
u8 input_r();
};
class mephisto_smondial_state : public mephisto_montec_state
{
public:
mephisto_smondial_state(const machine_config &mconfig, device_type type, const char *tag)
: mephisto_montec_state(mconfig, type, tag)
, m_ledlatch(*this, "ledlatch")
, m_boardlatch(*this, "boardlatch")
{ }
void smondial(machine_config &config);
private:
template<int N> DECLARE_WRITE_LINE_MEMBER(led_mux_w);
DECLARE_WRITE_LINE_MEMBER(leds_a_w);
DECLARE_WRITE_LINE_MEMBER(leds_b_w);
DECLARE_WRITE_LINE_MEMBER(leds_c_w);
void smondial_mem(address_map &map);
required_device<hc259_device> m_ledlatch;
required_device<hc259_device> m_boardlatch;
};
void mephisto_montec_state::machine_start()
void montec_state::machine_start()
{
m_digits.resolve();
m_low_leds.resolve();
m_high_leds.resolve();
save_item(NAME(m_leds_mux));
}
void mephisto_montec_state::machine_reset()
{
m_leds_mux = 0x00;
}
void mephisto_montec_state::montec_led_w(uint8_t data)
{
for(int i=0; i<4; i++)
for(int j=0; j<4; j++)
if (BIT(data, i))
m_high_leds[(i << 2) | j] = BIT(~data, 4 + j);
}
/******************************************************************************
I/O
******************************************************************************/
template<int N>
void mephisto_montec_state::montec_lcd_s_w(uint32_t data)
void montec_state::lcd_output_w(u32 data)
{
for (int i=0; i<4; i++)
// lcd segment outputs
for (int i = 0; i < 4; i++)
m_digits[i + N*4] = bitswap<8>(data >> (8 * i), 7,4,5,0,1,2,3,6);
}
uint8_t mephisto_montec_state::montec_input_r()
void montec_state::led_w(u8 data)
{
if (!m_muxlatch->q0_r()) return m_keys[1]->read();
else if (!m_muxlatch->q1_r()) return m_keys[0]->read();
return m_board->input_r() ^ 0xff;
// d0-d3: keypad led select
// d4-d7: keypad led data
m_led_pwm->matrix(data & 0xf, ~data >> 4 & 0xf);
}
void mephisto_montec_state::megaiv_led_w(uint8_t data)
u8 montec_state::irq_ack_r()
{
if (m_leds_mux != m_board->mux_r())
{
m_leds_mux = m_board->mux_r();
for (int i=0; i<8; i++)
{
if (!BIT(m_leds_mux, i))
{
m_high_leds[i] = BIT(data, 0) | BIT(data, 1);
m_low_leds[0 + i] = BIT(data, 2) | BIT(data, 3);
m_low_leds[8 + i] = BIT(data, 4) | BIT(data, 5);
}
}
}
if (!machine().side_effects_disabled())
m_maincpu->set_input_line(0, CLEAR_LINE);
m_dac->write(BIT(data, 7));
return 0;
}
uint8_t mephisto_montec_state::megaiv_input_r(offs_t offset)
u8 montec_state::input_r()
{
if (!m_muxlatch->q0_r()) return BIT(m_keys[1]->read(), 0 + offset) << 7;
else if (!m_muxlatch->q1_r()) return BIT(m_keys[1]->read(), 4 + offset) << 7;
else if (!m_muxlatch->q2_r()) return BIT(m_keys[0]->read(), 0 + offset) << 7;
else if (!m_muxlatch->q3_r()) return BIT(m_keys[0]->read(), 4 + offset) << 7;
u8 data = 0;
return BIT(m_board->input_r(), offset) << 7;
// 74259 q0/q1 selects keypad
for (int i = 0; i < 2; i++)
if (!BIT(m_lcd_latch->output_state(), i))
data |= m_keys[i]->read();
return ~m_board->input_r() | data;
}
void mephisto_montec_state::montec_mem(address_map &map)
/******************************************************************************
Address Maps
******************************************************************************/
void montec_state::montec_mem(address_map &map)
{
map(0x0000, 0x1fff).ram().share("nvram");
map(0x2000, 0x2000).nopr(); // ?
map(0x2400, 0x2400).r(FUNC(mephisto_montec_state::montec_input_r));
map(0x2000, 0x2000).rw(FUNC(montec_state::irq_ack_r), FUNC(montec_state::irq_ack_w));
map(0x2400, 0x2400).r(FUNC(montec_state::input_r));
map(0x2800, 0x2800).w(m_board, FUNC(mephisto_board_device::mux_w));
map(0x2c00, 0x2c00).w(m_board, FUNC(mephisto_board_device::led_w));
map(0x3000, 0x3007).w(m_muxlatch, FUNC(hc259_device::write_d7)).nopr();
map(0x3400, 0x3400).w(FUNC(mephisto_montec_state::montec_led_w));
map(0x8000, 0xffff).rom();
}
void mephisto_montec_state::megaiv_mem(address_map &map)
{
map(0x0000, 0x1fff).ram().share("nvram");
map(0x2400, 0x2400).w(FUNC(mephisto_montec_state::megaiv_led_w));
map(0x2800, 0x2800).w(m_board, FUNC(mephisto_board_device::mux_w));
map(0x2c00, 0x2c07).w(m_muxlatch, FUNC(hc259_device::write_d7)).nopr();
map(0x3000, 0x3007).r(FUNC(mephisto_montec_state::megaiv_input_r));
map(0x3000, 0x3007).w(m_lcd_latch, FUNC(hc259_device::write_d7)).nopr();
map(0x3400, 0x3400).w(FUNC(montec_state::led_w));
map(0x8000, 0xffff).rom();
}
void mephisto_montec_state::smondial2_mem(address_map &map)
{
megaiv_mem(map);
map(0x4000, 0x7fff).r("cartslot", FUNC(generic_slot_device::read_rom));
}
template<int N>
WRITE_LINE_MEMBER(mephisto_smondial_state::led_mux_w)
{
uint8_t leds_mux = ~m_ledlatch->output_state();
if (leds_mux & 0x03) m_high_leds[N] = state;
if (leds_mux & 0x0c) m_low_leds[8 + N] = state;
if (leds_mux & 0x30) m_low_leds[0 + N] = state;
}
WRITE_LINE_MEMBER(mephisto_smondial_state::leds_a_w)
{
if (!m_ledlatch->q0_r() || !m_ledlatch->q1_r())
for (int i = 0; i < 8; i++)
m_high_leds[i] = BIT(m_boardlatch->output_state(), i);
}
WRITE_LINE_MEMBER(mephisto_smondial_state::leds_b_w)
{
if (!m_ledlatch->q2_r() || !m_ledlatch->q3_r())
for (int i = 0; i < 8; i++)
m_low_leds[8 + i] = BIT(m_boardlatch->output_state(), i);
}
WRITE_LINE_MEMBER(mephisto_smondial_state::leds_c_w)
{
if (!m_ledlatch->q4_r() || !m_ledlatch->q5_r())
for (int i = 0; i < 8; i++)
m_low_leds[0 + i] = BIT(m_boardlatch->output_state(), i);
}
void mephisto_smondial_state::smondial_mem(address_map &map)
{
map(0x0000, 0x1fff).ram().share("nvram");
map(0x4000, 0x4007).r(FUNC(mephisto_smondial_state::megaiv_input_r));
map(0x6400, 0x6407).w(m_ledlatch, FUNC(hc259_device::write_d7));
map(0x6800, 0x6807).w(m_boardlatch, FUNC(hc259_device::write_d7));
map(0x6c00, 0x6c07).w(m_muxlatch, FUNC(hc259_device::write_d7));
map(0x8000, 0xffff).rom();
}
/******************************************************************************
Input Ports
******************************************************************************/
static INPUT_PORTS_START( montec )
PORT_START("KEY.0")
PORT_BIT(0x01, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_NAME("1 Pawn") PORT_CODE(KEYCODE_1)
PORT_BIT(0x02, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_NAME("2 Knight") PORT_CODE(KEYCODE_2)
PORT_BIT(0x04, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_NAME("3 Bishop") PORT_CODE(KEYCODE_3)
PORT_BIT(0x08, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_NAME("4 Rook") PORT_CODE(KEYCODE_4)
PORT_BIT(0x10, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_NAME("5 Queen") PORT_CODE(KEYCODE_5)
PORT_BIT(0x20, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_NAME("6 King") PORT_CODE(KEYCODE_6)
PORT_BIT(0x40, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_NAME("7 Black") PORT_CODE(KEYCODE_7)
PORT_BIT(0x80, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_NAME("8 White") PORT_CODE(KEYCODE_8)
PORT_BIT(0x01, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_NAME("BOOK / 9") PORT_CODE(KEYCODE_9) PORT_CODE(KEYCODE_9_PAD) PORT_CODE(KEYCODE_B)
PORT_BIT(0x02, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_NAME("POS / 0") PORT_CODE(KEYCODE_0) PORT_CODE(KEYCODE_0_PAD) PORT_CODE(KEYCODE_O)
PORT_BIT(0x04, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_NAME("MEM") PORT_CODE(KEYCODE_M)
PORT_BIT(0x08, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_NAME("INFO") PORT_CODE(KEYCODE_I)
PORT_BIT(0x10, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_NAME("CL") PORT_CODE(KEYCODE_DEL) PORT_CODE(KEYCODE_BACKSPACE)
PORT_BIT(0x20, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_NAME("LEV") PORT_CODE(KEYCODE_L)
PORT_BIT(0x40, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_NAME("ENT") PORT_CODE(KEYCODE_ENTER) PORT_CODE(KEYCODE_ENTER_PAD)
PORT_BIT(0x80, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_NAME("RES") PORT_CODE(KEYCODE_F1)
PORT_START("KEY.1")
PORT_BIT(0x01, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_NAME("9 Book") PORT_CODE(KEYCODE_9) PORT_CODE(KEYCODE_B)
PORT_BIT(0x02, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_NAME("0 Pos") PORT_CODE(KEYCODE_0) PORT_CODE(KEYCODE_O)
PORT_BIT(0x04, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_NAME("Mem") PORT_CODE(KEYCODE_M)
PORT_BIT(0x08, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_NAME("Info") PORT_CODE(KEYCODE_I)
PORT_BIT(0x10, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_NAME("Clear") PORT_CODE(KEYCODE_BACKSPACE)
PORT_BIT(0x20, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_NAME("Level") PORT_CODE(KEYCODE_L)
PORT_BIT(0x40, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_NAME("Enter") PORT_CODE(KEYCODE_ENTER)
PORT_BIT(0x80, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_NAME("Reset") PORT_CODE(KEYCODE_DEL)
PORT_BIT(0x01, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_NAME("Pawn / 1") PORT_CODE(KEYCODE_1)
PORT_BIT(0x02, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_NAME("Knight / 2") PORT_CODE(KEYCODE_2)
PORT_BIT(0x04, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_NAME("Bishop / 3") PORT_CODE(KEYCODE_3)
PORT_BIT(0x08, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_NAME("Rook / 4") PORT_CODE(KEYCODE_4)
PORT_BIT(0x10, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_NAME("Queen / 5") PORT_CODE(KEYCODE_5)
PORT_BIT(0x20, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_NAME("King / 6") PORT_CODE(KEYCODE_6)
PORT_BIT(0x40, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_NAME("Black / 7") PORT_CODE(KEYCODE_7)
PORT_BIT(0x80, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_NAME("White / 8") PORT_CODE(KEYCODE_8)
INPUT_PORTS_END
static INPUT_PORTS_START( megaiv )
PORT_START("KEY.0")
PORT_BIT(0x01, IP_ACTIVE_LOW, IPT_KEYPAD) PORT_NAME("3 Bishop") PORT_CODE(KEYCODE_3)
PORT_BIT(0x02, IP_ACTIVE_LOW, IPT_KEYPAD) PORT_NAME("7 Black") PORT_CODE(KEYCODE_7)
PORT_BIT(0x04, IP_ACTIVE_LOW, IPT_KEYPAD) PORT_NAME("Mem") PORT_CODE(KEYCODE_M)
PORT_BIT(0x08, IP_ACTIVE_LOW, IPT_KEYPAD) PORT_NAME("Enter") PORT_CODE(KEYCODE_ENTER)
PORT_BIT(0x10, IP_ACTIVE_LOW, IPT_KEYPAD) PORT_NAME("4 Rook") PORT_CODE(KEYCODE_4)
PORT_BIT(0x20, IP_ACTIVE_LOW, IPT_KEYPAD) PORT_NAME("8 White") PORT_CODE(KEYCODE_8)
PORT_BIT(0x40, IP_ACTIVE_LOW, IPT_KEYPAD) PORT_NAME("Info") PORT_CODE(KEYCODE_I)
PORT_BIT(0x80, IP_ACTIVE_LOW, IPT_KEYPAD) PORT_NAME("Reset") PORT_CODE(KEYCODE_DEL)
PORT_START("KEY.1")
PORT_BIT(0x01, IP_ACTIVE_LOW, IPT_KEYPAD) PORT_NAME("1 Pawn") PORT_CODE(KEYCODE_1)
PORT_BIT(0x02, IP_ACTIVE_LOW, IPT_KEYPAD) PORT_NAME("5 Queen") PORT_CODE(KEYCODE_5)
PORT_BIT(0x04, IP_ACTIVE_LOW, IPT_KEYPAD) PORT_NAME("9 Book") PORT_CODE(KEYCODE_9) PORT_CODE(KEYCODE_B)
PORT_BIT(0x08, IP_ACTIVE_LOW, IPT_KEYPAD) PORT_NAME("Clear") PORT_CODE(KEYCODE_BACKSPACE)
PORT_BIT(0x10, IP_ACTIVE_LOW, IPT_KEYPAD) PORT_NAME("2 Knight") PORT_CODE(KEYCODE_2)
PORT_BIT(0x20, IP_ACTIVE_LOW, IPT_KEYPAD) PORT_NAME("6 King") PORT_CODE(KEYCODE_6)
PORT_BIT(0x40, IP_ACTIVE_LOW, IPT_KEYPAD) PORT_NAME("0 Pos") PORT_CODE(KEYCODE_0) PORT_CODE(KEYCODE_O)
PORT_BIT(0x80, IP_ACTIVE_LOW, IPT_KEYPAD) PORT_NAME("Level") PORT_CODE(KEYCODE_L)
INPUT_PORTS_END
static INPUT_PORTS_START( smondial2 )
PORT_START("KEY.0")
PORT_BIT(0x01, IP_ACTIVE_LOW, IPT_KEYPAD) PORT_NAME("3 Bishop") PORT_CODE(KEYCODE_3)
PORT_BIT(0x02, IP_ACTIVE_LOW, IPT_KEYPAD) PORT_NAME("7 Black") PORT_CODE(KEYCODE_7)
PORT_BIT(0x04, IP_ACTIVE_LOW, IPT_KEYPAD) PORT_NAME("Pos") PORT_CODE(KEYCODE_O)
PORT_BIT(0x08, IP_ACTIVE_LOW, IPT_KEYPAD) PORT_NAME("Enter") PORT_CODE(KEYCODE_ENTER)
PORT_BIT(0x10, IP_ACTIVE_LOW, IPT_KEYPAD) PORT_NAME("4 Rook") PORT_CODE(KEYCODE_4)
PORT_BIT(0x20, IP_ACTIVE_LOW, IPT_KEYPAD) PORT_NAME("8 White") PORT_CODE(KEYCODE_8)
PORT_BIT(0x40, IP_ACTIVE_LOW, IPT_KEYPAD) PORT_NAME("Mem") PORT_CODE(KEYCODE_M)
PORT_BIT(0x80, IP_ACTIVE_LOW, IPT_KEYPAD) PORT_NAME("Reset") PORT_CODE(KEYCODE_DEL)
/******************************************************************************
Machine Configs
******************************************************************************/
PORT_START("KEY.1")
PORT_BIT(0x01, IP_ACTIVE_LOW, IPT_KEYPAD) PORT_NAME("1 Pawn") PORT_CODE(KEYCODE_1)
PORT_BIT(0x02, IP_ACTIVE_LOW, IPT_KEYPAD) PORT_NAME("5 Queen") PORT_CODE(KEYCODE_5)
PORT_BIT(0x04, IP_ACTIVE_LOW, IPT_KEYPAD) PORT_NAME("9 Help") PORT_CODE(KEYCODE_9) PORT_CODE(KEYCODE_H)
PORT_BIT(0x08, IP_ACTIVE_LOW, IPT_KEYPAD) PORT_NAME("Level") PORT_CODE(KEYCODE_L)
PORT_BIT(0x10, IP_ACTIVE_LOW, IPT_KEYPAD) PORT_NAME("2 Knight") PORT_CODE(KEYCODE_2)
PORT_BIT(0x20, IP_ACTIVE_LOW, IPT_KEYPAD) PORT_NAME("6 King") PORT_CODE(KEYCODE_6)
PORT_BIT(0x40, IP_ACTIVE_LOW, IPT_KEYPAD) PORT_NAME("0 Info") PORT_CODE(KEYCODE_0) PORT_CODE(KEYCODE_I)
PORT_BIT(0x80, IP_ACTIVE_LOW, IPT_KEYPAD) PORT_NAME("Clear") PORT_CODE(KEYCODE_BACKSPACE)
INPUT_PORTS_END
void mephisto_montec_state::montec(machine_config &config)
void montec_state::montec(machine_config &config)
{
M65C02(config, m_maincpu, XTAL(8'000'000) / 2); // R65C02P4
m_maincpu->set_addrmap(AS_PROGRAM, &mephisto_montec_state::montec_mem);
m_maincpu->set_periodic_int(FUNC(mephisto_montec_state::nmi_line_pulse), attotime::from_hz(XTAL(8'000'000) / (1 << 14)));
/* basic machine hardware */
R65C02(config, m_maincpu, 8_MHz_XTAL / 2); // R65C02P4
m_maincpu->set_addrmap(AS_PROGRAM, &montec_state::montec_mem);
const attotime irq_period = attotime::from_hz(8_MHz_XTAL / 2 / 0x2000);
m_maincpu->set_periodic_int(FUNC(montec_state::irq0_line_assert), irq_period);
NVRAM(config, "nvram", nvram_device::DEFAULT_ALL_0);
HC259(config, m_muxlatch);
m_muxlatch->q_out_cb<2>().set(m_dac, FUNC(dac_bit_interface::write));
m_muxlatch->q_out_cb<4>().set(m_lcd[0], FUNC(pcf2112_device::data_w));
m_muxlatch->q_out_cb<4>().append(m_lcd[1], FUNC(pcf2112_device::data_w));
m_muxlatch->q_out_cb<5>().set(m_lcd[1], FUNC(pcf2112_device::dlen_w));
m_muxlatch->q_out_cb<6>().set(m_lcd[0], FUNC(pcf2112_device::clb_w));
m_muxlatch->q_out_cb<6>().append(m_lcd[1], FUNC(pcf2112_device::clb_w));
m_muxlatch->q_out_cb<7>().set(m_lcd[0], FUNC(pcf2112_device::dlen_w));
HC259(config, m_lcd_latch);
m_lcd_latch->q_out_cb<2>().set(m_dac, FUNC(dac_bit_interface::write)).invert();
m_lcd_latch->q_out_cb<4>().set(m_lcd[0], FUNC(pcf2112_device::data_w));
m_lcd_latch->q_out_cb<4>().append(m_lcd[1], FUNC(pcf2112_device::data_w));
m_lcd_latch->q_out_cb<5>().set(m_lcd[1], FUNC(pcf2112_device::dlen_w));
m_lcd_latch->q_out_cb<6>().set(m_lcd[0], FUNC(pcf2112_device::clb_w));
m_lcd_latch->q_out_cb<6>().append(m_lcd[1], FUNC(pcf2112_device::clb_w));
m_lcd_latch->q_out_cb<7>().set(m_lcd[0], FUNC(pcf2112_device::dlen_w));
PCF2112(config, m_lcd[0], 50); // frequency guessed
m_lcd[0]->write_segs().set(FUNC(mephisto_montec_state::montec_lcd_s_w<0>));
PCF2112(config, m_lcd[1], 50); // "
m_lcd[1]->write_segs().set(FUNC(mephisto_montec_state::montec_lcd_s_w<1>));
SPEAKER(config, "speaker").front_center();
DAC_1BIT(config, m_dac).add_route(ALL_OUTPUTS, "speaker", 0.25);
MEPHISTO_SENSORS_BOARD(config, m_board);
MEPHISTO_SENSORS_BOARD(config, m_board); // internal
m_board->set_delay(attotime::from_msec(300));
/* video hardware */
PCF2112(config, m_lcd[0], 50); // frequency guessed
m_lcd[0]->write_segs().set(FUNC(montec_state::lcd_output_w<0>));
PCF2112(config, m_lcd[1], 50); // "
m_lcd[1]->write_segs().set(FUNC(montec_state::lcd_output_w<1>));
PWM_DISPLAY(config, m_led_pwm).set_size(4, 4);
config.set_default_layout(layout_mephisto_montec);
/* sound hardware */
SPEAKER(config, "speaker").front_center();
DAC_1BIT(config, m_dac).add_route(ALL_OUTPUTS, "speaker", 0.25);
}
void mephisto_montec_state::monteciv(machine_config &config)
void montec_state::montec4le(machine_config &config)
{
montec(config);
m_maincpu->set_clock(XTAL(8'000'000));
/* basic machine hardware */
M65C02(config.replace(), m_maincpu, 8_MHz_XTAL);
m_maincpu->set_addrmap(AS_PROGRAM, &montec_state::montec_mem);
const attotime irq_period = attotime::from_hz(8_MHz_XTAL / 0x4000);
m_maincpu->set_periodic_int(FUNC(montec_state::irq0_line_assert), irq_period);
m_board->set_delay(attotime::from_msec(150));
}
void mephisto_montec_state::megaiv(machine_config &config)
{
montec(config);
m_maincpu->set_clock(XTAL(4'915'200));
m_maincpu->set_addrmap(AS_PROGRAM, &mephisto_montec_state::megaiv_mem);
m_maincpu->set_periodic_int(FUNC(mephisto_montec_state::nmi_line_pulse), attotime::from_hz(XTAL(4'915'200) / (1 << 13)));
m_muxlatch->q_out_cb<2>().set_nop();
MEPHISTO_BUTTONS_BOARD(config.replace(), m_board);
m_board->set_delay(attotime::from_msec(250));
m_board->set_disable_leds(true);
config.set_default_layout(layout_mephisto_megaiv);
}
void mephisto_smondial_state::smondial(machine_config &config)
{
megaiv(config);
m_maincpu->set_clock(XTAL(4'000'000));
m_maincpu->set_addrmap(AS_PROGRAM, &mephisto_smondial_state::smondial_mem);
m_maincpu->set_periodic_int(FUNC(mephisto_montec_state::nmi_line_pulse), attotime::from_hz(XTAL(4'000'000) / (1 << 13)));
HC259(config, m_ledlatch);
m_ledlatch->q_out_cb<0>().set(FUNC(mephisto_smondial_state::leds_a_w));
m_ledlatch->q_out_cb<1>().set(FUNC(mephisto_smondial_state::leds_a_w));
m_ledlatch->q_out_cb<2>().set(FUNC(mephisto_smondial_state::leds_b_w));
m_ledlatch->q_out_cb<3>().set(FUNC(mephisto_smondial_state::leds_b_w));
m_ledlatch->q_out_cb<4>().set(FUNC(mephisto_smondial_state::leds_c_w));
m_ledlatch->q_out_cb<5>().set(FUNC(mephisto_smondial_state::leds_c_w));
m_ledlatch->q_out_cb<7>().set(m_dac, FUNC(dac_bit_interface::write));
HC259(config, m_boardlatch);
m_boardlatch->parallel_out_cb().set(m_board, FUNC(mephisto_board_device::mux_w)).invert();
m_boardlatch->q_out_cb<0>().set(FUNC(mephisto_smondial_state::led_mux_w<0>));
m_boardlatch->q_out_cb<1>().set(FUNC(mephisto_smondial_state::led_mux_w<1>));
m_boardlatch->q_out_cb<2>().set(FUNC(mephisto_smondial_state::led_mux_w<2>));
m_boardlatch->q_out_cb<3>().set(FUNC(mephisto_smondial_state::led_mux_w<3>));
m_boardlatch->q_out_cb<4>().set(FUNC(mephisto_smondial_state::led_mux_w<4>));
m_boardlatch->q_out_cb<5>().set(FUNC(mephisto_smondial_state::led_mux_w<5>));
m_boardlatch->q_out_cb<6>().set(FUNC(mephisto_smondial_state::led_mux_w<6>));
m_boardlatch->q_out_cb<7>().set(FUNC(mephisto_smondial_state::led_mux_w<7>));
config.set_default_layout(layout_mephisto_smondial);
}
void mephisto_montec_state::smondial2(machine_config &config)
{
megaiv(config);
m_maincpu->set_clock(XTAL(4'000'000));
m_maincpu->set_addrmap(AS_PROGRAM, &mephisto_montec_state::smondial2_mem);
m_maincpu->set_periodic_int(FUNC(mephisto_montec_state::nmi_line_pulse), attotime::from_hz(XTAL(4'000'000) / (1 << 13)));
GENERIC_CARTSLOT(config, "cartslot", generic_plain_slot, "smondial2_cart");
SOFTWARE_LIST(config, "cart_list").set_original("mephisto_smondial2");
config.set_default_layout(layout_mephisto_smondial2);
}
ROM_START( megaiv )
ROM_REGION( 0x10000, "maincpu", 0 )
ROM_LOAD("megaiv.bin", 0x8000, 0x8000, CRC(dee355d2) SHA1(6bc79c0fb169020f017412f5f9696b9ecafbf99f) )
ROM_END
ROM_START( megaiva )
ROM_REGION( 0x10000, "maincpu", 0 )
ROM_LOAD("mega_iv_17.03.88", 0x8000, 0x8000, CRC(85267e82) SHA1(654c9cf84bf2165fc94f8c4cf9c662786ef3283b) )
ROM_END
ROM_START( monteciv )
ROM_REGION( 0x10000, "maincpu", 0 )
ROM_LOAD("mciv.bin", 0x8000, 0x8000, CRC(c4887694) SHA1(7f482d2a40fcb3125266e7a5407da315b4f9b49c) )
ROM_END
/******************************************************************************
ROM Definitions
******************************************************************************/
ROM_START( montec )
ROM_REGION( 0x10000, "maincpu", 0 )
@ -441,36 +246,22 @@ ROM_START( monteca )
ROM_LOAD("mc2_20.7.87", 0x8000, 0x8000, CRC(05524da9) SHA1(bee2ffe09a27095f733584e0fb1203b95c23e17e) )
ROM_END
ROM_START( smondial )
ROM_START( montec4le )
ROM_REGION( 0x10000, "maincpu", 0 )
ROM_LOAD("supermondial_a.bin", 0x8000, 0x8000, CRC(c1d7d0a5) SHA1(d7f0da6938458c06925f0936e63915319144d7e0) )
ROM_LOAD("mc4le.bin", 0x8000, 0x8000, CRC(c4887694) SHA1(7f482d2a40fcb3125266e7a5407da315b4f9b49c) )
ROM_END
ROM_START( smondialab )
ROM_REGION( 0x10000, "maincpu", 0 )
ROM_LOAD("supermondial_ab.bin", 0x8000, 0x8000, CRC(a8781685) SHA1(fd4c97e13bd398dc4c85e3e1778bf7e59fccd71e) )
ROM_END
ROM_START( smondialb )
ROM_REGION( 0x10000, "maincpu", 0 )
ROM_LOAD("supermondial_b.bin", 0x8000, 0x8000, CRC(6fb89e97) SHA1(b001e657b4fdc097322b28a25c31814f3da7b124) )
ROM_END
ROM_START( smondial2 )
ROM_REGION( 0x10000, "maincpu", 0 )
ROM_LOAD("supermondial_ii.bin", 0x8000, 0x8000, CRC(cd73df4a) SHA1(bad786074be613d7f48bf98b6fdf8178a4a85f5b) )
ROM_END
} // anonymous namespace
/* YEAR NAME PARENT COMPAT MACHINE INPUT CLASS INIT COMPANY FULLNAME FLAGS */
CONS( 1988, megaiv, 0, 0, megaiv, megaiv, mephisto_montec_state, empty_init, "Hegener + Glaser", "Mephisto Mega IV (set 1)", MACHINE_SUPPORTS_SAVE | MACHINE_CLICKABLE_ARTWORK )
CONS( 1988, megaiva, megaiv, 0, megaiv, megaiv, mephisto_montec_state, empty_init, "Hegener + Glaser", "Mephisto Mega IV (set 2)", MACHINE_SUPPORTS_SAVE | MACHINE_CLICKABLE_ARTWORK )
CONS( 1986, smondial, 0, 0, smondial, megaiv, mephisto_smondial_state, empty_init, "Hegener + Glaser", "Mephisto Super Mondial (ver. A)", MACHINE_SUPPORTS_SAVE | MACHINE_CLICKABLE_ARTWORK )
CONS( 1986, smondialab, smondial, 0, smondial, megaiv, mephisto_smondial_state, empty_init, "Hegener + Glaser", "Mephisto Super Mondial (ver. AB)", MACHINE_SUPPORTS_SAVE | MACHINE_CLICKABLE_ARTWORK )
CONS( 1986, smondialb, smondial, 0, megaiv, megaiv, mephisto_montec_state, empty_init, "Hegener + Glaser", "Mephisto Super Mondial (ver. B)", MACHINE_SUPPORTS_SAVE | MACHINE_CLICKABLE_ARTWORK )
CONS( 1988, smondial2, 0, 0, smondial2, smondial2, mephisto_montec_state, empty_init, "Hegener + Glaser", "Mephisto Super Mondial II", MACHINE_SUPPORTS_SAVE | MACHINE_CLICKABLE_ARTWORK )
/***************************************************************************
Game Drivers
***************************************************************************/
CONS( 1987, montec, 0, 0, montec, montec, mephisto_montec_state, empty_init, "Hegener + Glaser", "Mephisto Monte Carlo (ver. MC3)", MACHINE_SUPPORTS_SAVE | MACHINE_CLICKABLE_ARTWORK )
CONS( 1987, monteca, montec, 0, montec, montec, mephisto_montec_state, empty_init, "Hegener + Glaser", "Mephisto Monte Carlo (ver. MC2)", MACHINE_SUPPORTS_SAVE | MACHINE_CLICKABLE_ARTWORK )
CONS( 1990, monteciv, 0, 0, monteciv, montec, mephisto_montec_state, empty_init, "Hegener + Glaser", "Mephisto Monte Carlo IV - Limited Edition", MACHINE_SUPPORTS_SAVE | MACHINE_CLICKABLE_ARTWORK )
/* YEAR NAME PARENT COMPAT MACHINE INPUT CLASS INIT COMPANY FULLNAME FLAGS */
CONS( 1987, montec, 0, 0, montec, montec, montec_state, empty_init, "Hegener + Glaser", "Mephisto Monte Carlo (ver. MC3)", MACHINE_SUPPORTS_SAVE | MACHINE_CLICKABLE_ARTWORK )
CONS( 1987, monteca, montec, 0, montec, montec, montec_state, empty_init, "Hegener + Glaser", "Mephisto Monte Carlo (ver. MC2)", MACHINE_SUPPORTS_SAVE | MACHINE_CLICKABLE_ARTWORK )
CONS( 1990, montec4le, 0, 0, montec4le, montec, montec_state, empty_init, "Hegener + Glaser", "Mephisto Monte Carlo IV - Limited Edition", MACHINE_SUPPORTS_SAVE | MACHINE_CLICKABLE_ARTWORK )

View File

@ -0,0 +1,407 @@
// license:BSD-3-Clause
// copyright-holders:Sandro Ronco, hap
// thanks-to:yoyo_chessboard
/******************************************************************************
Mephisto Super Mondial
Mephisto Super Mondial II
Mephisto Mega IV
Hardware notes:
- G65SC02P-4 @ 4MHz
- 8KB RAMbattery-backed), 32KB ROM
- expansion slot at underside (only used for smondial2)
- 2*PCF2112, 2 7seg LCD screens
- 8*8 chessboard buttons, 24 tri-color leds, piezo
Undocumented buttons:
- smondialb: holding CL+INFO on boot runs diagnostics
******************************************************************************/
#include "emu.h"
#include "bus/generic/slot.h"
#include "bus/generic/carts.h"
#include "cpu/m6502/m65sc02.h"
#include "cpu/m6502/r65c02.h"
#include "machine/74259.h"
#include "machine/nvram.h"
#include "machine/sensorboard.h"
#include "sound/dac.h"
#include "video/pcf2100.h"
#include "video/pwm.h"
#include "softlist.h"
#include "speaker.h"
// internal artwork
#include "mephisto_smondial.lh"
#include "mephisto_smondial2.lh"
namespace {
// Super Mondial B / shared
class smondialb_state : public driver_device
{
public:
smondialb_state(const machine_config &mconfig, device_type type, const char *tag)
: driver_device(mconfig, type, tag)
, m_maincpu(*this, "maincpu")
, m_board(*this, "board")
, m_lcd_latch(*this, "lcd_latch")
, m_led_pwm(*this, "led_pwm")
, m_lcd(*this, "lcd%u", 0)
, m_dac(*this, "dac")
, m_keys(*this, "KEY.%u", 0)
, m_digits(*this, "digit%u", 0U)
{ }
// machine configs
void smondial2(machine_config &config);
void mega4(machine_config &config);
void smondialb(machine_config &config);
protected:
virtual void machine_start() override;
// devices/pointers
required_device<cpu_device> m_maincpu;
required_device<sensorboard_device> m_board;
required_device<hc259_device> m_lcd_latch;
required_device<pwm_display_device> m_led_pwm;
required_device_array<pcf2112_device, 2> m_lcd;
required_device<dac_bit_interface> m_dac;
required_ioport_array<4> m_keys;
output_finder<8> m_digits;
// address maps
void smondialb_mem(address_map &map);
void smondial2_mem(address_map &map);
// I/O handlers
template<int N> void lcd_output_w(u32 data);
void update_leds();
u8 input_r(offs_t offset);
virtual void led_w(u8 data);
void board_w(u8 data);
INTERRUPT_GEN_MEMBER(nmi_handler);
u8 m_led_data = 0;
u8 m_board_mux = 0;
};
void smondialb_state::machine_start()
{
m_digits.resolve();
save_item(NAME(m_led_data));
save_item(NAME(m_board_mux));
}
// Super Mondial A
class smondiala_state : public smondialb_state
{
public:
smondiala_state(const machine_config &mconfig, device_type type, const char *tag) :
smondialb_state(mconfig, type, tag)
{ }
void smondiala(machine_config &config);
private:
void smondiala_mem(address_map &map);
// led row/column is switched around, do a trampoline here instead of making a different .lay file
virtual void led_w(u8 data) override { smondialb_state::led_w(bitswap<8>(data, 7,6,3,2,5,4,1,0)); }
void irq_ack_w(u8 data);
};
/******************************************************************************
I/O
******************************************************************************/
template<int N>
void smondialb_state::lcd_output_w(u32 data)
{
// lcd segment outputs
for (int i = 0; i < 4; i++)
m_digits[i + N*4] = bitswap<8>(data >> (8 * i), 7,4,5,0,1,2,3,6);
}
void smondialb_state::update_leds()
{
m_led_pwm->matrix(m_board_mux, m_led_data);
}
void smondialb_state::board_w(u8 data)
{
m_board_mux = ~data;
update_leds();
}
void smondialb_state::led_w(u8 data)
{
// d0-d5: led data
m_led_data = data;
update_leds();
// d6: nmi enable (does not apply to smondiala)
// d7: speaker out
m_dac->write(BIT(data, 7));
}
u8 smondialb_state::input_r(offs_t offset)
{
u8 data = 0;
// read keypad
for (int i = 0; i < 4; i++)
if (!BIT(m_lcd_latch->output_state(), i))
data |= BIT(m_keys[i]->read(), offset & 3);
// read chessboard sensors
for (int i = 0; i < 8; i++)
if (BIT(m_board_mux, i))
data |= BIT(m_board->read_rank(i), offset);
return ~(data << 7);
}
INTERRUPT_GEN_MEMBER(smondialb_state::nmi_handler)
{
if (m_led_data & 0x40)
m_maincpu->pulse_input_line(INPUT_LINE_NMI, attotime::zero);
}
void smondiala_state::irq_ack_w(u8 data)
{
m_maincpu->set_input_line(0, CLEAR_LINE);
}
/******************************************************************************
Address Maps
******************************************************************************/
void smondialb_state::smondialb_mem(address_map &map)
{
map(0x0000, 0x1fff).ram().share("nvram");
map(0x2400, 0x2400).w(FUNC(smondialb_state::led_w));
map(0x2800, 0x2800).w(FUNC(smondialb_state::board_w));
map(0x2c00, 0x2c07).w(m_lcd_latch, FUNC(hc259_device::write_d7)).nopr();
map(0x3000, 0x3007).r(FUNC(smondialb_state::input_r));
map(0x8000, 0xffff).rom();
}
void smondialb_state::smondial2_mem(address_map &map)
{
smondialb_mem(map);
map(0x4000, 0x7fff).r("cartslot", FUNC(generic_slot_device::read_rom));
}
void smondiala_state::smondiala_mem(address_map &map)
{
map(0x0000, 0x1fff).ram().share("nvram");
map(0x4000, 0x4007).r(FUNC(smondiala_state::input_r));
map(0x6000, 0x6000).w(FUNC(smondiala_state::irq_ack_w));
map(0x6400, 0x6407).w("led_latch", FUNC(hc259_device::write_d7)).nopr();
map(0x6800, 0x6807).w("board_latch", FUNC(hc259_device::write_d7)).nopr();
map(0x6c00, 0x6c07).w(m_lcd_latch, FUNC(hc259_device::write_d7)).nopr();
map(0x8000, 0xffff).rom();
}
/******************************************************************************
Input Ports
******************************************************************************/
static INPUT_PORTS_START( smondial )
PORT_START("KEY.0")
PORT_BIT(0x01, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_NAME("Pawn / 1") PORT_CODE(KEYCODE_1) PORT_CODE(KEYCODE_1_PAD)
PORT_BIT(0x02, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_NAME("Queen / 5") PORT_CODE(KEYCODE_5) PORT_CODE(KEYCODE_5_PAD)
PORT_BIT(0x04, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_NAME("BOOK / 9") PORT_CODE(KEYCODE_9) PORT_CODE(KEYCODE_9_PAD) PORT_CODE(KEYCODE_B)
PORT_BIT(0x08, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_NAME("CL") PORT_CODE(KEYCODE_DEL) PORT_CODE(KEYCODE_BACKSPACE)
PORT_START("KEY.1")
PORT_BIT(0x01, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_NAME("Knight / 2") PORT_CODE(KEYCODE_2) PORT_CODE(KEYCODE_2_PAD)
PORT_BIT(0x02, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_NAME("King / 6") PORT_CODE(KEYCODE_6) PORT_CODE(KEYCODE_6_PAD)
PORT_BIT(0x04, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_NAME("POS / 0") PORT_CODE(KEYCODE_0) PORT_CODE(KEYCODE_0_PAD) PORT_CODE(KEYCODE_O)
PORT_BIT(0x08, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_NAME("LEV") PORT_CODE(KEYCODE_L)
PORT_START("KEY.2")
PORT_BIT(0x01, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_NAME("Bishop / 3") PORT_CODE(KEYCODE_3) PORT_CODE(KEYCODE_3_PAD)
PORT_BIT(0x02, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_NAME("Black / 7") PORT_CODE(KEYCODE_7) PORT_CODE(KEYCODE_7_PAD)
PORT_BIT(0x04, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_NAME("MEM") PORT_CODE(KEYCODE_M)
PORT_BIT(0x08, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_NAME("ENT") PORT_CODE(KEYCODE_ENTER) PORT_CODE(KEYCODE_ENTER_PAD)
PORT_START("KEY.3")
PORT_BIT(0x01, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_NAME("Rook / 4") PORT_CODE(KEYCODE_4) PORT_CODE(KEYCODE_4_PAD)
PORT_BIT(0x02, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_NAME("White / 8") PORT_CODE(KEYCODE_8) PORT_CODE(KEYCODE_8_PAD)
PORT_BIT(0x04, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_NAME("INFO") PORT_CODE(KEYCODE_I)
PORT_BIT(0x08, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_NAME("RES") PORT_CODE(KEYCODE_F1)
INPUT_PORTS_END
static INPUT_PORTS_START( smondial2 )
PORT_INCLUDE( smondial )
PORT_MODIFY("KEY.0")
PORT_BIT(0x04, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_NAME("HELP / 9") PORT_CODE(KEYCODE_9) PORT_CODE(KEYCODE_9_PAD) PORT_CODE(KEYCODE_H)
PORT_BIT(0x08, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_NAME("LEV") PORT_CODE(KEYCODE_L)
PORT_MODIFY("KEY.1")
PORT_BIT(0x04, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_NAME("INFO / 0") PORT_CODE(KEYCODE_0) PORT_CODE(KEYCODE_0_PAD) PORT_CODE(KEYCODE_I)
PORT_BIT(0x08, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_NAME("CL") PORT_CODE(KEYCODE_DEL) PORT_CODE(KEYCODE_BACKSPACE)
PORT_MODIFY("KEY.2")
PORT_BIT(0x04, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_NAME("POS") PORT_CODE(KEYCODE_O)
PORT_MODIFY("KEY.3")
PORT_BIT(0x04, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_NAME("MEM") PORT_CODE(KEYCODE_M)
INPUT_PORTS_END
/******************************************************************************
Machine Configs
******************************************************************************/
void smondialb_state::smondialb(machine_config &config)
{
/* basic machine hardware */
M65SC02(config, m_maincpu, 4_MHz_XTAL);
m_maincpu->set_addrmap(AS_PROGRAM, &smondialb_state::smondialb_mem);
const attotime nmi_period = attotime::from_hz(4_MHz_XTAL / 0x2000);
m_maincpu->set_periodic_int(FUNC(smondialb_state::nmi_handler), nmi_period);
NVRAM(config, "nvram", nvram_device::DEFAULT_ALL_0);
HC259(config, m_lcd_latch);
m_lcd_latch->q_out_cb<4>().set(m_lcd[0], FUNC(pcf2112_device::data_w));
m_lcd_latch->q_out_cb<4>().append(m_lcd[1], FUNC(pcf2112_device::data_w));
m_lcd_latch->q_out_cb<5>().set(m_lcd[1], FUNC(pcf2112_device::dlen_w));
m_lcd_latch->q_out_cb<6>().set(m_lcd[0], FUNC(pcf2112_device::clb_w));
m_lcd_latch->q_out_cb<6>().append(m_lcd[1], FUNC(pcf2112_device::clb_w));
m_lcd_latch->q_out_cb<7>().set(m_lcd[0], FUNC(pcf2112_device::dlen_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(250));
/* video hardware */
PCF2112(config, m_lcd[0], 50); // frequency guessed
m_lcd[0]->write_segs().set(FUNC(smondialb_state::lcd_output_w<0>));
PCF2112(config, m_lcd[1], 50); // "
m_lcd[1]->write_segs().set(FUNC(smondialb_state::lcd_output_w<1>));
PWM_DISPLAY(config, m_led_pwm).set_size(8, 6);
config.set_default_layout(layout_mephisto_smondial);
/* sound hardware */
SPEAKER(config, "speaker").front_center();
DAC_1BIT(config, m_dac).add_route(ALL_OUTPUTS, "speaker", 0.25);
}
void smondiala_state::smondiala(machine_config &config)
{
smondialb(config);
/* basic machine hardware */
m_maincpu->set_addrmap(AS_PROGRAM, &smondiala_state::smondiala_mem);
const attotime irq_period = attotime::from_hz(4_MHz_XTAL / 0x2000);
m_maincpu->set_periodic_int(FUNC(smondiala_state::irq0_line_assert), irq_period);
HC259(config, "led_latch").parallel_out_cb().set(FUNC(smondiala_state::led_w)).invert();
HC259(config, "board_latch").parallel_out_cb().set(FUNC(smondiala_state::board_w)).invert();
}
void smondialb_state::smondial2(machine_config &config)
{
smondialb(config);
/* basic machine hardware */
m_maincpu->set_addrmap(AS_PROGRAM, &smondialb_state::smondial2_mem);
GENERIC_CARTSLOT(config, "cartslot", generic_plain_slot, "smondial2_cart");
SOFTWARE_LIST(config, "cart_list").set_original("mephisto_smondial2");
config.set_default_layout(layout_mephisto_smondial2);
}
void smondialb_state::mega4(machine_config &config)
{
smondialb(config);
/* basic machine hardware */
R65C02(config.replace(), m_maincpu, 4.9152_MHz_XTAL);
m_maincpu->set_addrmap(AS_PROGRAM, &smondialb_state::smondialb_mem);
const attotime nmi_period = attotime::from_hz(4.9152_MHz_XTAL / 0x2000);
m_maincpu->set_periodic_int(FUNC(smondialb_state::nmi_handler), nmi_period);
}
/******************************************************************************
ROM Definitions
******************************************************************************/
ROM_START( smondial )
ROM_REGION( 0x10000, "maincpu", 0 )
ROM_LOAD("supermondial_a.bin", 0x8000, 0x8000, CRC(c1d7d0a5) SHA1(d7f0da6938458c06925f0936e63915319144d7e0) )
ROM_END
ROM_START( smondialab )
ROM_REGION( 0x10000, "maincpu", 0 )
ROM_LOAD("supermondial_ab.bin", 0x8000, 0x8000, CRC(a8781685) SHA1(fd4c97e13bd398dc4c85e3e1778bf7e59fccd71e) )
ROM_END
ROM_START( smondialb )
ROM_REGION( 0x10000, "maincpu", 0 )
ROM_LOAD("supermondial_b.bin", 0x8000, 0x8000, CRC(6fb89e97) SHA1(b001e657b4fdc097322b28a25c31814f3da7b124) )
ROM_END
ROM_START( smondial2 )
ROM_REGION( 0x10000, "maincpu", 0 )
ROM_LOAD("supermondial_ii.bin", 0x8000, 0x8000, CRC(cd73df4a) SHA1(bad786074be613d7f48bf98b6fdf8178a4a85f5b) )
ROM_END
ROM_START( mega4 )
ROM_REGION( 0x10000, "maincpu", 0 )
ROM_LOAD("mega_iv.bin", 0x8000, 0x8000, CRC(dee355d2) SHA1(6bc79c0fb169020f017412f5f9696b9ecafbf99f) )
ROM_END
ROM_START( mega4a )
ROM_REGION( 0x10000, "maincpu", 0 )
ROM_LOAD("mega_iv_17.03.88", 0x8000, 0x8000, CRC(85267e82) SHA1(654c9cf84bf2165fc94f8c4cf9c662786ef3283b) )
ROM_END
} // anonymous namespace
/***************************************************************************
Game Drivers
***************************************************************************/
/* YEAR NAME PARENT COMPAT MACHINE INPUT CLASS INIT COMPANY FULLNAME FLAGS */
CONS( 1986, smondial, 0, 0, smondiala, smondial, smondiala_state, empty_init, "Hegener + Glaser", "Mephisto Super Mondial (ver. A)", MACHINE_SUPPORTS_SAVE | MACHINE_CLICKABLE_ARTWORK )
CONS( 1986, smondialab, smondial, 0, smondiala, smondial, smondiala_state, empty_init, "Hegener + Glaser", "Mephisto Super Mondial (ver. AB)", MACHINE_SUPPORTS_SAVE | MACHINE_CLICKABLE_ARTWORK )
CONS( 1986, smondialb, smondial, 0, smondialb, smondial, smondialb_state, empty_init, "Hegener + Glaser", "Mephisto Super Mondial (ver. B)", MACHINE_SUPPORTS_SAVE | MACHINE_CLICKABLE_ARTWORK )
CONS( 1988, smondial2, 0, 0, smondial2, smondial2, smondialb_state, empty_init, "Hegener + Glaser", "Mephisto Super Mondial II", MACHINE_SUPPORTS_SAVE | MACHINE_CLICKABLE_ARTWORK )
CONS( 1988, mega4, 0, 0, mega4, smondial, smondialb_state, empty_init, "Hegener + Glaser", "Mephisto Mega IV (set 1)", MACHINE_SUPPORTS_SAVE | MACHINE_CLICKABLE_ARTWORK )
CONS( 1988, mega4a, mega4, 0, mega4, smondial, smondialb_state, empty_init, "Hegener + Glaser", "Mephisto Mega IV (set 2)", MACHINE_SUPPORTS_SAVE | MACHINE_CLICKABLE_ARTWORK )

View File

@ -20,10 +20,10 @@ license:CC0
<element name="led" defstate="0">
<disk state="0">
<color red="0.20" green="0.0" blue="0.0" />
<color red="0.2" green="0" blue="0" />
</disk>
<disk state="1">
<color red="0.95" green="0.0" blue="0.0" />
<color red="1" green="0.1" blue="0.1" />
</disk>
</element>
<element name="hlbr" defstate="0">

View File

@ -11,7 +11,7 @@ license:CC0
<color red="0.20" green="0.0" blue="0.0" />
</disk>
<disk state="1">
<color red="0.95" green="0.0" blue="0.0" />
<color red="1" green="0.1" blue="0.1" />
</disk>
</element>

View File

@ -11,7 +11,7 @@ license:CC0
<color red="0.20" green="0.0" blue="0.0" />
</disk>
<disk state="1">
<color red="0.95" green="0.0" blue="0.0" />
<color red="1" green="0.1" blue="0.1" />
</disk>
</element>

View File

@ -11,7 +11,7 @@ license:CC0
<color red="0.20" green="0.0" blue="0.0" />
</disk>
<disk state="1">
<color red="0.95" green="0.0" blue="0.0" />
<color red="1" green="0.1" blue="0.1" />
</disk>
</element>
<element name="hlb" defstate="0">

View File

@ -11,7 +11,7 @@ license:CC0
<color red="0.20" green="0.0" blue="0.0" />
</disk>
<disk state="1">
<color red="0.95" green="0.0" blue="0.0" />
<color red="1" green="0.1" blue="0.1" />
</disk>
</element>
<element name="hlb" defstate="0">

View File

@ -11,7 +11,7 @@ license:CC0
<color red="0.20" green="0.0" blue="0.0" />
</disk>
<disk state="1">
<color red="0.95" green="0.0" blue="0.0" />
<color red="1" green="0.1" blue="0.1" />
</disk>
</element>
<element name="hlb" defstate="0">

View File

@ -11,7 +11,7 @@ license:CC0
<color red="0.20" green="0.0" blue="0.0" />
</disk>
<disk state="1">
<color red="0.95" green="0.0" blue="0.0" />
<color red="1" green="0.1" blue="0.1" />
</disk>
</element>

View File

@ -11,7 +11,7 @@ license:CC0
<color red="0.20" green="0.0" blue="0.0" />
</disk>
<disk state="1">
<color red="0.95" green="0.0" blue="0.0" />
<color red="1" green="0.1" blue="0.1" />
</disk>
</element>
<element name="hlb" defstate="0">

View File

@ -1,497 +0,0 @@
<?xml version="1.0"?>
<!--
license:CC0
-->
<mamelayout version="2">
<!-- define elements -->
<element name="digit" defstate="0">
<led7seg><color red="0.2" green="0.16" blue="0.16" /></led7seg>
</element>
<element name="led" defstate="0">
<rect state="0">
<color red="0.20" green="0.0" blue="0.0" />
</rect>
<rect state="1">
<color red="0.95" green="0.0" blue="0.0" />
</rect>
</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="led7seg_background"><rect><color red="0.54" green="0.57" blue="0.58" /> </rect></element>
<element name="background"> <rect><color red="0.9" green="0.9" blue="0.9" /></rect></element>
<element name="black"> <rect><color red="0" green="0" blue="0" /> </rect></element>
<element name="red"> <rect><color red="0.8" green="0.2" blue="0.2" /> </rect></element>
<element name="text_1"> <rect><color red="0.9" green="0.9" blue="0.9" /></rect> <text string="1"> <color red="0" green="0" blue="0" /></text> </element>
<element name="text_2"> <rect><color red="0.9" green="0.9" blue="0.9" /></rect> <text string="2"> <color red="0" green="0" blue="0" /></text> </element>
<element name="text_3"> <rect><color red="0.9" green="0.9" blue="0.9" /></rect> <text string="3"> <color red="0" green="0" blue="0" /></text> </element>
<element name="text_4"> <rect><color red="0.9" green="0.9" blue="0.9" /></rect> <text string="4"> <color red="0" green="0" blue="0" /></text> </element>
<element name="text_5"> <rect><color red="0.9" green="0.9" blue="0.9" /></rect> <text string="5"> <color red="0" green="0" blue="0" /></text> </element>
<element name="text_6"> <rect><color red="0.9" green="0.9" blue="0.9" /></rect> <text string="6"> <color red="0" green="0" blue="0" /></text> </element>
<element name="text_7"> <rect><color red="0.9" green="0.9" blue="0.9" /></rect> <text string="7"> <color red="0" green="0" blue="0" /></text> </element>
<element name="text_8"> <rect><color red="0.9" green="0.9" blue="0.9" /></rect> <text string="8"> <color red="0" green="0" blue="0" /></text> </element>
<element name="text_a"> <rect><color red="0.9" green="0.9" blue="0.9" /></rect> <text string="A"> <color red="0" green="0" blue="0" /></text> </element>
<element name="text_b"> <rect><color red="0.9" green="0.9" blue="0.9" /></rect> <text string="B"> <color red="0" green="0" blue="0" /></text> </element>
<element name="text_c"> <rect><color red="0.9" green="0.9" blue="0.9" /></rect> <text string="C"> <color red="0" green="0" blue="0" /></text> </element>
<element name="text_d"> <rect><color red="0.9" green="0.9" blue="0.9" /></rect> <text string="D"> <color red="0" green="0" blue="0" /></text> </element>
<element name="text_e"> <rect><color red="0.9" green="0.9" blue="0.9" /></rect> <text string="E"> <color red="0" green="0" blue="0" /></text> </element>
<element name="text_f"> <rect><color red="0.9" green="0.9" blue="0.9" /></rect> <text string="F"> <color red="0" green="0" blue="0" /></text> </element>
<element name="text_g"> <rect><color red="0.9" green="0.9" blue="0.9" /></rect> <text string="G"> <color red="0" green="0" blue="0" /></text> </element>
<element name="text_h"> <rect><color red="0.9" green="0.9" blue="0.9" /></rect> <text string="H"> <color red="0" green="0" blue="0" /></text> </element>
<element name="text_book"> <rect><color red="0.9" green="0.9" blue="0.9" /></rect> <text string="BOOK"> <color red="0" green="0" blue="0" /></text> </element>
<element name="text_pos"> <rect><color red="0.9" green="0.9" blue="0.9" /></rect> <text string="POS"> <color red="0" green="0" blue="0" /></text> </element>
<element name="text_mem"> <rect><color red="0.9" green="0.9" blue="0.9" /></rect> <text string="MEM"> <color red="0" green="0" blue="0" /></text> </element>
<element name="text_info"> <rect><color red="0.9" green="0.9" blue="0.9" /></rect> <text string="INFO"> <color red="0" green="0" blue="0" /></text> </element>
<element name="text_err"> <rect><color red="0.9" green="0.9" blue="0.9" /></rect> <text string="ERR"> <color red="0" green="0" blue="0" /></text> </element>
<element name="text_lev"> <rect><color red="0.9" green="0.9" blue="0.9" /></rect> <text string="LEV"> <color red="0" green="0" blue="0" /></text> </element>
<element name="text_black"> <rect><color red="0.9" green="0.9" blue="0.9" /></rect> <text string="&#x25a0;"> <color red="0" green="0" blue="0" /></text> </element>
<element name="text_white"> <rect><color red="0.9" green="0.9" blue="0.9" /></rect> <text string="&#x25a1;"> <color red="0" green="0" blue="0" /></text> </element>
<element name="text_b1"> <rect><color red="0.9" green="0.9" blue="0.9" /></rect> <text string="[P] 1"> <color red="0" green="0" blue="0" /></text> </element>
<element name="text_b2"> <rect><color red="0.9" green="0.9" blue="0.9" /></rect> <text string="[N] 2"> <color red="0" green="0" blue="0" /></text> </element>
<element name="text_b3"> <rect><color red="0.9" green="0.9" blue="0.9" /></rect> <text string="[B] 3"> <color red="0" green="0" blue="0" /></text> </element>
<element name="text_b4"> <rect><color red="0.9" green="0.9" blue="0.9" /></rect> <text string="[R] 4"> <color red="0" green="0" blue="0" /></text> </element>
<element name="text_b5"> <rect><color red="0.9" green="0.9" blue="0.9" /></rect> <text string="[Q] 5"> <color red="0" green="0" blue="0" /></text> </element>
<element name="text_b6"> <rect><color red="0.9" green="0.9" blue="0.9" /></rect> <text string="[K] 6"> <color red="0" green="0" blue="0" /></text> </element>
<element name="text_b7"> <rect><color red="0.9" green="0.9" blue="0.9" /></rect> <text string="&#x25a0; 7 &#x25c4;"> <color red="0" green="0" blue="0" /></text> </element>
<element name="text_b8"> <rect><color red="0.9" green="0.9" blue="0.9" /></rect> <text string="&#x25a1; 8 &#x25ba;"> <color red="0" green="0" blue="0" /></text> </element>
<element name="text_book9"> <rect><color red="0.9" green="0.9" blue="0.9" /></rect> <text string="BOOK 9"> <color red="0" green="0" blue="0" /></text> </element>
<element name="text_pos0"> <rect><color red="0.9" green="0.9" blue="0.9" /></rect> <text string="POS 0"> <color red="0" green="0" blue="0" /></text> </element>
<element name="text_cl"> <rect><color red="0.9" green="0.9" blue="0.9" /></rect> <text string="CL"> <color red="0" green="0" blue="0" /></text> </element>
<element name="text_ent"> <rect><color red="0.9" green="0.9" blue="0.9" /></rect> <text string="ENT"> <color red="0" green="0" blue="0" /></text> </element>
<element name="text_res"> <rect><color red="0.9" green="0.9" blue="0.9" /></rect> <text string="RES"> <color red="0" green="0" blue="0" /></text> </element>
<element name="text_lcd"> <rect><color red="0.9" green="0.9" blue="0.9" /></rect> <text string="MULTI INFO LCD"> <color red="0" green="0" blue="0" /></text> </element>
<element name="piece" defstate="0">
<image file="chess/wp.svg" state="1"/>
<image file="chess/wn.svg" state="2"/>
<image file="chess/wb.svg" state="3"/>
<image file="chess/wr.svg" state="4"/>
<image file="chess/wq.svg" state="5"/>
<image file="chess/wk.svg" state="6"/>
<image file="chess/bp.svg" state="7"/>
<image file="chess/bn.svg" state="8"/>
<image file="chess/bb.svg" state="9"/>
<image file="chess/br.svg" state="10"/>
<image file="chess/bq.svg" state="11"/>
<image file="chess/bk.svg" state="12"/>
<!-- selected pieces -->
<image file="chess/wp.svg" state="13"><color alpha="0.5" /></image>
<image file="chess/wn.svg" state="14"><color alpha="0.5" /></image>
<image file="chess/wb.svg" state="15"><color alpha="0.5" /></image>
<image file="chess/wr.svg" state="16"><color alpha="0.5" /></image>
<image file="chess/wq.svg" state="17"><color alpha="0.5" /></image>
<image file="chess/wk.svg" state="18"><color alpha="0.5" /></image>
<image file="chess/bp.svg" state="19"><color alpha="0.5" /></image>
<image file="chess/bn.svg" state="20"><color alpha="0.5" /></image>
<image file="chess/bb.svg" state="21"><color alpha="0.5" /></image>
<image file="chess/br.svg" state="22"><color alpha="0.5" /></image>
<image file="chess/bq.svg" state="23"><color alpha="0.5" /></image>
<image file="chess/bk.svg" state="24"><color alpha="0.5" /></image>
</element>
<!-- sb board -->
<element name="cwhite"><rect><color red="0.9" green="0.9" blue="0.9" /></rect></element>
<element name="cblack"><rect><color red="0.4" green="0.4" blue="0.4" /></rect></element>
<element name="hlbb" defstate="0">
<text string=" "><bounds x="0" y="0" width="1" height="1" /></text>
<disk state="1">
<bounds x="0.12" y="0.12" width="0.76" height="0.76" />
<color red="0" green="0" blue="0" />
</disk>
</element>
<group name="sb_board">
<bounds x="0" y="0" width="80" height="80" />
<!-- squares (avoid seams) -->
<element ref="cwhite"><bounds x="0" y="0" width="11" height="11" /></element>
<element ref="cblack"><bounds x="10" y="0" width="11" height="11" /></element>
<element ref="cwhite"><bounds x="20" y="0" width="11" height="11" /></element>
<element ref="cblack"><bounds x="30" y="0" width="11" height="11" /></element>
<element ref="cwhite"><bounds x="40" y="0" width="11" height="11" /></element>
<element ref="cblack"><bounds x="50" y="0" width="11" height="11" /></element>
<element ref="cwhite"><bounds x="60" y="0" width="11" height="11" /></element>
<element ref="cblack"><bounds x="70" y="0" width="10" height="11" /></element>
<element ref="cblack"><bounds x="0" y="10" width="11" height="11" /></element>
<element ref="cwhite"><bounds x="10" y="10" width="11" height="11" /></element>
<element ref="cblack"><bounds x="20" y="10" width="11" height="11" /></element>
<element ref="cwhite"><bounds x="30" y="10" width="11" height="11" /></element>
<element ref="cblack"><bounds x="40" y="10" width="11" height="11" /></element>
<element ref="cwhite"><bounds x="50" y="10" width="11" height="11" /></element>
<element ref="cblack"><bounds x="60" y="10" width="11" height="11" /></element>
<element ref="cwhite"><bounds x="70" y="10" width="10" height="11" /></element>
<element ref="cwhite"><bounds x="0" y="20" width="11" height="11" /></element>
<element ref="cblack"><bounds x="10" y="20" width="11" height="11" /></element>
<element ref="cwhite"><bounds x="20" y="20" width="11" height="11" /></element>
<element ref="cblack"><bounds x="30" y="20" width="11" height="11" /></element>
<element ref="cwhite"><bounds x="40" y="20" width="11" height="11" /></element>
<element ref="cblack"><bounds x="50" y="20" width="11" height="11" /></element>
<element ref="cwhite"><bounds x="60" y="20" width="11" height="11" /></element>
<element ref="cblack"><bounds x="70" y="20" width="10" height="11" /></element>
<element ref="cblack"><bounds x="0" y="30" width="11" height="11" /></element>
<element ref="cwhite"><bounds x="10" y="30" width="11" height="11" /></element>
<element ref="cblack"><bounds x="20" y="30" width="11" height="11" /></element>
<element ref="cwhite"><bounds x="30" y="30" width="11" height="11" /></element>
<element ref="cblack"><bounds x="40" y="30" width="11" height="11" /></element>
<element ref="cwhite"><bounds x="50" y="30" width="11" height="11" /></element>
<element ref="cblack"><bounds x="60" y="30" width="11" height="11" /></element>
<element ref="cwhite"><bounds x="70" y="30" width="10" height="11" /></element>
<element ref="cwhite"><bounds x="0" y="40" width="11" height="11" /></element>
<element ref="cblack"><bounds x="10" y="40" width="11" height="11" /></element>
<element ref="cwhite"><bounds x="20" y="40" width="11" height="11" /></element>
<element ref="cblack"><bounds x="30" y="40" width="11" height="11" /></element>
<element ref="cwhite"><bounds x="40" y="40" width="11" height="11" /></element>
<element ref="cblack"><bounds x="50" y="40" width="11" height="11" /></element>
<element ref="cwhite"><bounds x="60" y="40" width="11" height="11" /></element>
<element ref="cblack"><bounds x="70" y="40" width="10" height="11" /></element>
<element ref="cblack"><bounds x="0" y="50" width="11" height="11" /></element>
<element ref="cwhite"><bounds x="10" y="50" width="11" height="11" /></element>
<element ref="cblack"><bounds x="20" y="50" width="11" height="11" /></element>
<element ref="cwhite"><bounds x="30" y="50" width="11" height="11" /></element>
<element ref="cblack"><bounds x="40" y="50" width="11" height="11" /></element>
<element ref="cwhite"><bounds x="50" y="50" width="11" height="11" /></element>
<element ref="cblack"><bounds x="60" y="50" width="11" height="11" /></element>
<element ref="cwhite"><bounds x="70" y="50" width="10" height="11" /></element>
<element ref="cwhite"><bounds x="0" y="60" width="11" height="11" /></element>
<element ref="cblack"><bounds x="10" y="60" width="11" height="11" /></element>
<element ref="cwhite"><bounds x="20" y="60" width="11" height="11" /></element>
<element ref="cblack"><bounds x="30" y="60" width="11" height="11" /></element>
<element ref="cwhite"><bounds x="40" y="60" width="11" height="11" /></element>
<element ref="cblack"><bounds x="50" y="60" width="11" height="11" /></element>
<element ref="cwhite"><bounds x="60" y="60" width="11" height="11" /></element>
<element ref="cblack"><bounds x="70" y="60" width="10" height="11" /></element>
<element ref="cblack"><bounds x="0" y="70" width="11" height="10" /></element>
<element ref="cwhite"><bounds x="10" y="70" width="11" height="10" /></element>
<element ref="cblack"><bounds x="20" y="70" width="11" height="10" /></element>
<element ref="cwhite"><bounds x="30" y="70" width="11" height="10" /></element>
<element ref="cblack"><bounds x="40" y="70" width="11" height="10" /></element>
<element ref="cwhite"><bounds x="50" y="70" width="11" height="10" /></element>
<element ref="cblack"><bounds x="60" y="70" width="11" height="10" /></element>
<element ref="cwhite"><bounds x="70" y="70" width="10" height="10" /></element>
<!-- sensors, pieces -->
<repeat count="8">
<param name="y" start="0" increment="10" />
<param name="i" start="8" increment="-1" />
<element ref="hlbb" inputtag="board:board:RANK.~i~" inputmask="0x01"><bounds x="0" y="~y~" width="10" height="10" /><color alpha="0.04" /></element>
<element ref="hlbb" inputtag="board:board:RANK.~i~" inputmask="0x02"><bounds x="10" y="~y~" width="10" height="10" /><color alpha="0.04" /></element>
<element ref="hlbb" inputtag="board:board:RANK.~i~" inputmask="0x04"><bounds x="20" y="~y~" width="10" height="10" /><color alpha="0.04" /></element>
<element ref="hlbb" inputtag="board:board:RANK.~i~" inputmask="0x08"><bounds x="30" y="~y~" width="10" height="10" /><color alpha="0.04" /></element>
<element ref="hlbb" inputtag="board:board:RANK.~i~" inputmask="0x10"><bounds x="40" y="~y~" width="10" height="10" /><color alpha="0.04" /></element>
<element ref="hlbb" inputtag="board:board:RANK.~i~" inputmask="0x20"><bounds x="50" y="~y~" width="10" height="10" /><color alpha="0.04" /></element>
<element ref="hlbb" inputtag="board:board:RANK.~i~" inputmask="0x40"><bounds x="60" y="~y~" width="10" height="10" /><color alpha="0.04" /></element>
<element ref="hlbb" inputtag="board:board:RANK.~i~" inputmask="0x80"><bounds x="70" y="~y~" width="10" height="10" /><color alpha="0.04" /></element>
<element name="piece_a~i~" ref="piece"><bounds x="0" y="~y~" width="10" height="10" /></element>
<element name="piece_b~i~" ref="piece"><bounds x="10" y="~y~" width="10" height="10" /></element>
<element name="piece_c~i~" ref="piece"><bounds x="20" y="~y~" width="10" height="10" /></element>
<element name="piece_d~i~" ref="piece"><bounds x="30" y="~y~" width="10" height="10" /></element>
<element name="piece_e~i~" ref="piece"><bounds x="40" y="~y~" width="10" height="10" /></element>
<element name="piece_f~i~" ref="piece"><bounds x="50" y="~y~" width="10" height="10" /></element>
<element name="piece_g~i~" ref="piece"><bounds x="60" y="~y~" width="10" height="10" /></element>
<element name="piece_h~i~" ref="piece"><bounds x="70" y="~y~" width="10" height="10" /></element>
</repeat>
</group>
<!-- sb ui -->
<element name="hlub" defstate="0">
<rect state="1"><color red="0" green="0" blue="0" /></rect>
</element>
<element name="text_uit1"><text string="S.BOARD"><color red="0.81" green="0.8" blue="0.79" /></text></element>
<element name="text_uit2"><text string="INTERFACE"><color red="0.81" green="0.8" blue="0.79" /></text></element>
<element name="text_uib1"><text string="BOARD:"><color red="0.81" green="0.8" blue="0.79" /></text></element>
<element name="text_uib2">
<rect><color red="0.9" green="0.9" blue="0.9" /></rect>
<text string="RESET"><color red="0.01" green="0.01" blue="0.01" /></text>
</element>
<element name="text_uib3">
<rect><color red="0.9" green="0.9" blue="0.9" /></rect>
<text string="CLEAR"><color red="0.01" green="0.01" blue="0.01" /></text>
</element>
<element name="text_uis1"><text string="SPAWN:"><color red="0.81" green="0.8" blue="0.79" /></text></element>
<element name="text_uih1"><text string="HAND:"><color red="0.81" green="0.8" blue="0.79" /></text></element>
<element name="text_uih2">
<rect><color red="0.9" green="0.9" blue="0.9" /></rect>
<text string="REMOVE"><color red="0.01" green="0.01" blue="0.01" /></text>
</element>
<element name="text_uiu1"><text string="UNDO:"><color red="0.81" green="0.8" blue="0.79" /></text></element>
<element name="text_uiu2a">
<rect><color red="0.9" green="0.9" blue="0.9" /></rect>
<text string=" &lt;&lt;"><color red="0.01" green="0.01" blue="0.01" /></text>
</element>
<element name="text_uiu2b">
<rect><color red="0.9" green="0.9" blue="0.9" /></rect>
<text string=" &lt; "><color red="0.01" green="0.01" blue="0.01" /></text>
</element>
<element name="text_uiu2c">
<rect><color red="0.9" green="0.9" blue="0.9" /></rect>
<text string=" &gt;"><color red="0.01" green="0.01" blue="0.01" /></text>
</element>
<element name="text_uiu2d">
<rect><color red="0.9" green="0.9" blue="0.9" /></rect>
<text string=" &gt;&gt;"><color red="0.01" green="0.01" blue="0.01" /></text>
</element>
<element name="text_uiu3a" defstate="0">
<simplecounter maxstate="999" digits="1" align="2">
<color red="0.81" green="0.8" blue="0.79" />
</simplecounter>
</element>
<element name="text_uiu3b"><text string="/"><color red="0.81" green="0.8" blue="0.79" /></text></element>
<element name="text_uiu3c" defstate="0">
<simplecounter maxstate="999" digits="1" align="1">
<color red="0.81" green="0.8" blue="0.79" />
</simplecounter>
</element>
<group name="sb_ui">
<bounds x="0" y="0" width="10" height="80" />
<element ref="cblack"><bounds x="0" y="0" width="10" height="1" /></element>
<element ref="cblack"><bounds x="0" y="7" width="10" height="1" /></element>
<element ref="cblack"><bounds x="0" y="79" width="10" height="1" /></element>
<element ref="text_uit1"><bounds x="0" y="2" width="10" height="2" /></element>
<element ref="text_uit2"><bounds x="0" y="4" width="10" height="2" /></element>
<!-- board -->
<element ref="text_uib1"><bounds x="0" y="9" width="10" height="2" /></element>
<element ref="cwhite"><bounds x="1" y="11.5" width="8" height="2.5" /></element>
<element ref="cwhite"><bounds x="1" y="15" width="8" height="2.5" /></element>
<element ref="text_uib2"><bounds x="1.5" y="11.75" width="7" height="2" /></element>
<element ref="text_uib3"><bounds x="1.5" y="15.25" width="7" height="2" /></element>
<element ref="hlub" inputtag="board:board:UI" inputmask="0x200"><bounds x="1" y="11.5" width="8" height="2.5" /><color alpha="0.25" /></element>
<element ref="hlub" inputtag="board:board:UI" inputmask="0x100"><bounds x="1" y="15" width="8" height="2.5" /><color alpha="0.25" /></element>
<!-- spawn -->
<element ref="text_uis1"><bounds x="0" y="20.5" width="10" height="2" /></element>
<element ref="cwhite"><bounds x="1" y="23" width="8" height="12" /></element>
<element ref="cwhite"><bounds x="1" y="36" width="8" height="12" /></element>
<element name="piece_ui1" ref="piece"><bounds x="1" y="23" width="4" height="4" /></element>
<element name="piece_ui2" ref="piece"><bounds x="1" y="27" width="4" height="4" /></element>
<element name="piece_ui3" ref="piece"><bounds x="1" y="31" width="4" height="4" /></element>
<element name="piece_ui4" ref="piece"><bounds x="5" y="23" width="4" height="4" /></element>
<element name="piece_ui5" ref="piece"><bounds x="5" y="27" width="4" height="4" /></element>
<element name="piece_ui6" ref="piece"><bounds x="5" y="31" width="4" height="4" /></element>
<element name="piece_ui7" ref="piece"><bounds x="1" y="36" width="4" height="4" /></element>
<element name="piece_ui8" ref="piece"><bounds x="1" y="40" width="4" height="4" /></element>
<element name="piece_ui9" ref="piece"><bounds x="1" y="44" width="4" height="4" /></element>
<element name="piece_ui10" ref="piece"><bounds x="5" y="36" width="4" height="4" /></element>
<element name="piece_ui11" ref="piece"><bounds x="5" y="40" width="4" height="4" /></element>
<element name="piece_ui12" ref="piece"><bounds x="5" y="44" width="4" height="4" /></element>
<element ref="hlub" inputtag="board:board:SPAWN" inputmask="0x0001"><bounds x="1" y="23" width="4" height="4" /><color alpha="0.25" /></element>
<element ref="hlub" inputtag="board:board:SPAWN" inputmask="0x0002"><bounds x="1" y="27" width="4" height="4" /><color alpha="0.25" /></element>
<element ref="hlub" inputtag="board:board:SPAWN" inputmask="0x0004"><bounds x="1" y="31" width="4" height="4" /><color alpha="0.25" /></element>
<element ref="hlub" inputtag="board:board:SPAWN" inputmask="0x0008"><bounds x="5" y="23" width="4" height="4" /><color alpha="0.25" /></element>
<element ref="hlub" inputtag="board:board:SPAWN" inputmask="0x0010"><bounds x="5" y="27" width="4" height="4" /><color alpha="0.25" /></element>
<element ref="hlub" inputtag="board:board:SPAWN" inputmask="0x0020"><bounds x="5" y="31" width="4" height="4" /><color alpha="0.25" /></element>
<element ref="hlub" inputtag="board:board:SPAWN" inputmask="0x0040"><bounds x="1" y="36" width="4" height="4" /><color alpha="0.25" /></element>
<element ref="hlub" inputtag="board:board:SPAWN" inputmask="0x0080"><bounds x="1" y="40" width="4" height="4" /><color alpha="0.25" /></element>
<element ref="hlub" inputtag="board:board:SPAWN" inputmask="0x0100"><bounds x="1" y="44" width="4" height="4" /><color alpha="0.25" /></element>
<element ref="hlub" inputtag="board:board:SPAWN" inputmask="0x0200"><bounds x="5" y="36" width="4" height="4" /><color alpha="0.25" /></element>
<element ref="hlub" inputtag="board:board:SPAWN" inputmask="0x0400"><bounds x="5" y="40" width="4" height="4" /><color alpha="0.25" /></element>
<element ref="hlub" inputtag="board:board:SPAWN" inputmask="0x0800"><bounds x="5" y="44" width="4" height="4" /><color alpha="0.25" /></element>
<!-- hand -->
<element ref="text_uih1"><bounds x="0" y="51" width="10" height="2" /></element>
<element ref="cblack"><bounds x="1" y="53.5" width="8" height="6" /></element>
<element name="piece_ui0" ref="piece"><bounds x="2" y="53.5" width="6" height="6" /></element>
<element ref="cwhite"><bounds x="1" y="60.5" width="8" height="2.5" /></element>
<element ref="text_uih2"><bounds x="1.5" y="60.75" width="7" height="2" /></element>
<element ref="hlub" inputtag="board:board:UI" inputmask="0x08"><bounds x="1" y="60.5" width="8" height="2.5" /><color alpha="0.25" /></element>
<!-- undo -->
<element ref="text_uiu1"><bounds x="0" y="66" width="10" height="2" /></element>
<element ref="cwhite"><bounds x="1" y="68.5" width="1.7" height="6" /></element>
<element ref="cwhite"><bounds x="3.1" y="68.5" width="1.7" height="6" /></element>
<element ref="cwhite"><bounds x="5.2" y="68.5" width="1.7" height="6" /></element>
<element ref="cwhite"><bounds x="7.3" y="68.5" width="1.7" height="6" /></element>
<element ref="text_uiu2a"><bounds x="1" y="69.5" width="1.7" height="4" /></element>
<element ref="text_uiu2b"><bounds x="3.1" y="69.5" width="1.7" height="4" /></element>
<element ref="text_uiu2c"><bounds x="5.2" y="69.5" width="1.7" height="4" /></element>
<element ref="text_uiu2d"><bounds x="7.3" y="69.5" width="1.7" height="4" /></element>
<element ref="hlub" inputtag="board:board:UI" inputmask="0x10"><bounds x="1" y="68.5" width="1.7" height="6" /><color alpha="0.25" /></element>
<element ref="hlub" inputtag="board:board:UI" inputmask="0x20"><bounds x="3.1" y="68.5" width="1.7" height="6" /><color alpha="0.25" /></element>
<element ref="hlub" inputtag="board:board:UI" inputmask="0x40"><bounds x="5.2" y="68.5" width="1.7" height="6" /><color alpha="0.25" /></element>
<element ref="hlub" inputtag="board:board:UI" inputmask="0x80"><bounds x="7.3" y="68.5" width="1.7" height="6" /><color alpha="0.25" /></element>
<element name="count_ui0" ref="text_uiu3a"><bounds x="0" y="75" width="4" height="2" /></element>
<element name="count_ui1" ref="text_uiu3c"><bounds x="6" y="75" width="4" height="2" /></element>
<element ref="text_uiu3b"><bounds x="4" y="75" width="2" height="2" /></element>
</group>
<group name="panel">
<bounds left="0" right="79" top="0" bottom="13" />
<element ref="background"><bounds x="0" y="0" width="79" height="13" /></element>
<element ref="black"> <bounds x="0" y="1.5" width="10" height="10.5" /> </element>
<element ref="text_lcd"> <bounds x="0.5" y="0" width="10" height="1.5" /> </element>
<element ref="led7seg_background"> <bounds x="0.5" y="2" width="9" height="4" /> </element>
<element name="digit0" ref="digit"> <bounds x="1" y="2.5" width="2" height="3" /> </element>
<element name="digit1" ref="digit"> <bounds x="3" y="2.5" width="2" height="3" /> </element>
<element name="digit2" ref="digit"> <bounds x="5" y="2.5" width="2" height="3" /> </element>
<element name="digit3" ref="digit"> <bounds x="7" y="2.5" width="2" height="3" /> </element>
<element ref="led7seg_background"> <bounds x="0.5" y="7.5" width="9" height="4" /> </element>
<element name="digit4" ref="digit"> <bounds x="1" y="8" width="2" height="3" /> </element>
<element name="digit5" ref="digit"> <bounds x="3" y="8" width="2" height="3" /> </element>
<element name="digit6" ref="digit"> <bounds x="5" y="8" width="2" height="3" /> </element>
<element name="digit7" ref="digit"> <bounds x="7" y="8" width="2" height="3" /> </element>
<element name="led100" ref="led"> <bounds x="13.0" y="0.4" width="1.3" height="0.8" /> </element>
<element name="led101" ref="led"> <bounds x="21.5" y="0.4" width="1.3" height="0.8" /> </element>
<element name="led102" ref="led"> <bounds x="30.0" y="0.4" width="1.3" height="0.8" /> </element>
<element name="led103" ref="led"> <bounds x="38.5" y="0.4" width="1.3" height="0.8" /> </element>
<element name="led104" ref="led"> <bounds x="47.0" y="0.4" width="1.3" height="0.8" /> </element>
<element name="led105" ref="led"> <bounds x="55.5" y="0.4" width="1.3" height="0.8" /> </element>
<element name="led106" ref="led"> <bounds x="64.0" y="0.4" width="1.3" height="0.8" /> </element>
<element name="led107" ref="led"> <bounds x="72.5" y="0.4" width="1.3" height="0.8" /> </element>
<element ref="black"> <bounds x="13" y="2" width="6" height="4" /> </element>
<element ref="black"> <bounds x="21.5" y="2" width="6" height="4" /> </element>
<element ref="black"> <bounds x="30" y="2" width="6" height="4" /> </element>
<element ref="black"> <bounds x="38.5" y="2" width="6" height="4" /> </element>
<element ref="black"> <bounds x="47" y="2" width="6" height="4" /> </element>
<element ref="black"> <bounds x="55.5" y="2" width="6" height="4" /> </element>
<element ref="black"> <bounds x="64" y="2" width="6" height="4" /> </element>
<element ref="black"> <bounds x="72.5" y="2" width="6" height="4" /> </element>
<element ref="black"> <bounds x="13" y="7.5" width="6" height="4" /> </element>
<element ref="black"> <bounds x="21.5" y="7.5" width="6" height="4" /> </element>
<element ref="black"> <bounds x="30" y="7.5" width="6" height="4" /> </element>
<element ref="black"> <bounds x="38.5" y="7.5" width="6" height="4" /> </element>
<element ref="black"> <bounds x="47" y="7.5" width="6" height="4" /> </element>
<element ref="black"> <bounds x="55.5" y="7.5" width="6" height="4" /> </element>
<element ref="red"> <bounds x="64" y="7.5" width="6" height="4" /> </element>
<element ref="red"> <bounds x="72.5" y="7.5" width="6" height="4" /> </element>
<element ref="text_book"> <bounds x="15" y="0" width="4" height="1.5" /> </element>
<element ref="text_pos"> <bounds x="23.5" y="0" width="3" height="1.5" /> </element>
<element ref="text_mem"> <bounds x="32" y="0" width="3" height="1.5" /> </element>
<element ref="text_info"> <bounds x="40.5" y="0" width="4" height="1.5" /> </element>
<element ref="text_err"> <bounds x="49" y="0" width="3" height="1.5" /> </element>
<element ref="text_lev"> <bounds x="57.5" y="0" width="3" height="1.5" /> </element>
<element ref="text_black"> <bounds x="66" y="0" width="1" height="1.5" /> </element>
<element ref="text_white"> <bounds x="74.5" y="0" width="1" height="1.5" /> </element>
<element ref="text_b1"> <bounds x="13.5" y="2.5" width="5" height="1.5" /> </element>
<element ref="text_b2"> <bounds x="22" y="2.5" width="5" height="1.5" /> </element>
<element ref="text_b3"> <bounds x="30.5" y="2.5" width="5" height="1.5" /> </element>
<element ref="text_b4"> <bounds x="39" y="2.5" width="5" height="1.5" /> </element>
<element ref="text_b5"> <bounds x="47.5" y="2.5" width="5" height="1.5" /> </element>
<element ref="text_b6"> <bounds x="56" y="2.5" width="5" height="1.5" /> </element>
<element ref="text_b7"> <bounds x="64.5" y="2.5" width="5" height="1.5" /> </element>
<element ref="text_b8"> <bounds x="73" y="2.5" width="5" height="1.5" /> </element>
<element ref="text_book9"> <bounds x="13.5" y="8" width="5" height="1.5" /> </element>
<element ref="text_pos0"> <bounds x="22" y="8" width="5" height="1.5" /> </element>
<element ref="text_mem"> <bounds x="30.5" y="8" width="5" height="1.5" /> </element>
<element ref="text_info"> <bounds x="39" y="8" width="5" height="1.5" /> </element>
<element ref="text_cl"> <bounds x="47.5" y="8" width="5" height="1.5" /> </element>
<element ref="text_lev"> <bounds x="56" y="8" width="5" height="1.5" /> </element>
<element ref="text_ent"> <bounds x="64.5" y="8" width="5" height="1.5" /> </element>
<element ref="text_res"> <bounds x="73" y="8" width="5" height="1.5" /> </element>
<element ref="hlb" inputtag="KEY.1" inputmask="0x01"> <bounds x="13" y="2" width="6" height="4" /> <color alpha="0.3"/></element>
<element ref="hlb" inputtag="KEY.1" inputmask="0x10"> <bounds x="21.5" y="2" width="6" height="4" /> <color alpha="0.3"/></element>
<element ref="hlb" inputtag="KEY.0" inputmask="0x01"> <bounds x="30" y="2" width="6" height="4" /> <color alpha="0.3"/></element>
<element ref="hlb" inputtag="KEY.0" inputmask="0x10"> <bounds x="38.5" y="2" width="6" height="4" /> <color alpha="0.3"/></element>
<element ref="hlb" inputtag="KEY.1" inputmask="0x02"> <bounds x="47" y="2" width="6" height="4" /> <color alpha="0.3"/></element>
<element ref="hlb" inputtag="KEY.1" inputmask="0x20"> <bounds x="55.5" y="2" width="6" height="4" /> <color alpha="0.3"/></element>
<element ref="hlb" inputtag="KEY.0" inputmask="0x02"> <bounds x="64" y="2" width="6" height="4" /> <color alpha="0.3"/></element>
<element ref="hlb" inputtag="KEY.0" inputmask="0x20"> <bounds x="72.5" y="2" width="6" height="4" /> <color alpha="0.3"/></element>
<element ref="hlb" inputtag="KEY.1" inputmask="0x04"> <bounds x="13" y="7.5" width="6" height="4" /> <color alpha="0.3"/></element>
<element ref="hlb" inputtag="KEY.1" inputmask="0x40"> <bounds x="21.5" y="7.5" width="6" height="4" /> <color alpha="0.3"/></element>
<element ref="hlb" inputtag="KEY.0" inputmask="0x04"> <bounds x="30" y="7.5" width="6" height="4" /> <color alpha="0.3"/></element>
<element ref="hlb" inputtag="KEY.0" inputmask="0x40"> <bounds x="38.5" y="7.5" width="6" height="4" /> <color alpha="0.3"/></element>
<element ref="hlb" inputtag="KEY.1" inputmask="0x08"> <bounds x="47" y="7.5" width="6" height="4" /> <color alpha="0.3"/></element>
<element ref="hlb" inputtag="KEY.1" inputmask="0x80"> <bounds x="55.5" y="7.5" width="6" height="4" /> <color alpha="0.3"/></element>
<element ref="hlb" inputtag="KEY.0" inputmask="0x08"> <bounds x="64" y="7.5" width="6" height="4" /> <color alpha="0.3"/></element>
<element ref="hlb" inputtag="KEY.0" inputmask="0x80"> <bounds x="72.5" y="7.5" width="6" height="4" /> <color alpha="0.3"/></element>
</group>
<!-- build screen -->
<view name="Internal Layout">
<bounds left="0" right="103" top="-2" bottom="102" />
<element ref="background"><bounds x="13" y="-2" width="90" height="104" /></element>
<!-- chessboard coords -->
<element ref="text_8"><bounds x="13.6" y="7" width="2" height="2" /></element>
<element ref="text_7"><bounds x="13.6" y="17" width="2" height="2" /></element>
<element ref="text_6"><bounds x="13.6" y="27" width="2" height="2" /></element>
<element ref="text_5"><bounds x="13.6" y="37" width="2" height="2" /></element>
<element ref="text_4"><bounds x="13.6" y="47" width="2" height="2" /></element>
<element ref="text_3"><bounds x="13.6" y="57" width="2" height="2" /></element>
<element ref="text_2"><bounds x="13.6" y="67" width="2" height="2" /></element>
<element ref="text_1"><bounds x="13.6" y="77" width="2" height="2" /></element>
<element ref="text_a"><bounds x="22" y="85.7" width="2" height="2" /></element>
<element ref="text_b"><bounds x="32" y="85.7" width="2" height="2" /></element>
<element ref="text_c"><bounds x="42" y="85.7" width="2" height="2" /></element>
<element ref="text_d"><bounds x="52" y="85.7" width="2" height="2" /></element>
<element ref="text_e"><bounds x="62" y="85.7" width="2" height="2" /></element>
<element ref="text_f"><bounds x="72" y="85.7" width="2" height="2" /></element>
<element ref="text_g"><bounds x="82" y="85.7" width="2" height="2" /></element>
<element ref="text_h"><bounds x="92" y="85.7" width="2" height="2" /></element>
<!-- chessboard bezel -->
<element ref="black"><bounds x="17.5" y="2.5" width="81" height="81" /></element>
<!-- chessboard leds -->
<element name="led0" ref="led"><bounds x="15.7" y="77.25" width="0.8" height="1.5" /></element>
<element name="led1" ref="led"><bounds x="15.7" y="67.25" width="0.8" height="1.5" /></element>
<element name="led2" ref="led"><bounds x="15.7" y="57.25" width="0.8" height="1.5" /></element>
<element name="led3" ref="led"><bounds x="15.7" y="47.25" width="0.8" height="1.5" /></element>
<element name="led4" ref="led"><bounds x="15.7" y="37.25" width="0.8" height="1.5" /></element>
<element name="led5" ref="led"><bounds x="15.7" y="27.25" width="0.8" height="1.5" /></element>
<element name="led6" ref="led"><bounds x="15.7" y="17.25" width="0.8" height="1.5" /></element>
<element name="led7" ref="led"><bounds x="15.7" y="7.25" width="0.8" height="1.5" /></element>
<element name="led8" ref="led"><bounds x="22.25" y="84.5" width="1.5" height="0.8" /></element>
<element name="led9" ref="led"><bounds x="32.25" y="84.5" width="1.5" height="0.8" /></element>
<element name="led10" ref="led"><bounds x="42.25" y="84.5" width="1.5" height="0.8" /></element>
<element name="led11" ref="led"><bounds x="52.25" y="84.5" width="1.5" height="0.8" /></element>
<element name="led12" ref="led"><bounds x="62.25" y="84.5" width="1.5" height="0.8" /></element>
<element name="led13" ref="led"><bounds x="72.25" y="84.5" width="1.5" height="0.8" /></element>
<element name="led14" ref="led"><bounds x="82.25" y="84.5" width="1.5" height="0.8" /></element>
<element name="led15" ref="led"><bounds x="92.25" y="84.5" width="1.5" height="0.8" /></element>
<!-- LCD panel -->
<group ref="panel"><bounds x="18" y="89" width="79" height="13" /></group>
<group ref="sb_board"><bounds x="18" y="3" width="80" height="80" /></group>
<group ref="sb_ui"><bounds x="1.5" y="3" width="10" height="80" /></group>
</view>
</mamelayout>

View File

@ -14,7 +14,7 @@ license:CC0
<color red="0.20" green="0.0" blue="0.0" />
</disk>
<disk state="1">
<color red="0.95" green="0.0" blue="0.0" />
<color red="1" green="0.1" blue="0.1" />
</disk>
</element>
<element name="ledr" defstate="0">
@ -22,7 +22,7 @@ license:CC0
<color red="0.20" green="0.0" blue="0.0" />
</rect>
<rect state="1">
<color red="0.95" green="0.0" blue="0.0" />
<color red="1" green="0.1" blue="0.1" />
</rect>
</element>
<element name="hlb" defstate="0">

View File

@ -11,7 +11,7 @@ license:CC0
<color red="0.20" green="0.0" blue="0.0" />
</disk>
<disk state="1">
<color red="0.95" green="0.0" blue="0.0" />
<color red="1" green="0.1" blue="0.1" />
</disk>
</element>
<element name="hlb" defstate="0">

View File

@ -14,7 +14,7 @@ license:CC0
<color red="0.20" green="0.0" blue="0.0" />
</disk>
<disk state="1">
<color red="0.95" green="0.0" blue="0.0" />
<color red="1" green="0.1" blue="0.1" />
</disk>
</element>
<element name="ledr" defstate="0">
@ -22,7 +22,7 @@ license:CC0
<color red="0.20" green="0.0" blue="0.0" />
</rect>
<rect state="1">
<color red="0.95" green="0.0" blue="0.0" />
<color red="1" green="0.1" blue="0.1" />
</rect>
</element>
<element name="hlb" defstate="0">

View File

@ -11,7 +11,7 @@ license:CC0
<color red="0.20" green="0.0" blue="0.0" />
</disk>
<disk state="1">
<color red="0.95" green="0.0" blue="0.0" />
<color red="1" green="0.1" blue="0.1" />
</disk>
</element>

View File

@ -11,7 +11,7 @@ license:CC0
<color red="0.20" green="0.0" blue="0.0" />
</rect>
<rect state="1">
<color red="0.95" green="0.0" blue="0.0" />
<color red="1" green="0.1" blue="0.1" />
</rect>
</element>
<element name="hlb" defstate="0">

View File

@ -11,7 +11,7 @@ license:CC0
<color red="0.20" green="0.0" blue="0.0" />
</rect>
<rect state="1">
<color red="0.95" green="0.0" blue="0.0" />
<color red="1" green="0.1" blue="0.1" />
</rect>
</element>
<element name="hlb" defstate="0">

View File

@ -15,7 +15,7 @@ license:CC0
<color red="0.20" green="0.0" blue="0.0" />
</rect>
<rect state="1">
<color red="0.95" green="0.0" blue="0.0" />
<color red="1" green="0.1" blue="0.1" />
</rect>
</element>
<element name="hlb" defstate="0">

View File

@ -10,12 +10,24 @@ license:CC0
<led7seg><color red="0.2" green="0.16" blue="0.16" /></led7seg>
</element>
<element name="ledo">
<disk><color red="0.1" green="0.1" blue="0.1" /></disk>
</element>
<element name="ledr" defstate="0">
<disk state="0"><color red="0" green="0" blue="0" /></disk>
<disk state="1"><color red="1" green="0" blue="0" /></disk>
</element>
<element name="ledg" defstate="0">
<disk state="0"><color red="0" green="0" blue="0" /></disk>
<disk state="1"><color red="0" green="1" blue="0" /></disk>
</element>
<element name="led" defstate="0">
<disk state="0">
<color red="0.20" green="0.0" blue="0.0" />
<color red="0.2" green="0" blue="0" />
</disk>
<disk state="1">
<color red="0.95" green="0.0" blue="0.0" />
<color red="1" green="0.1" blue="0.1" />
</disk>
</element>
<element name="hlbr" defstate="0">
@ -400,14 +412,32 @@ license:CC0
<element name="digit6" ref="digit"> <bounds x="5" y="8" width="2" height="3" /> </element>
<element name="digit7" ref="digit"> <bounds x="7" y="8" width="2" height="3" /> </element>
<element name="led100" ref="led"> <bounds x="13.1" y="-0.4" width="1.3" height="1.3" /> </element>
<element name="led104" ref="led"> <bounds x="22.1" y="-0.4" width="1.3" height="1.3" /> </element>
<element name="led108" ref="led"> <bounds x="31.1" y="-0.4" width="1.3" height="1.3" /> </element>
<element name="led112" ref="led"> <bounds x="40.1" y="-0.4" width="1.3" height="1.3" /> </element>
<element name="led102" ref="led"> <bounds x="49.1" y="-0.4" width="1.3" height="1.3" /> </element>
<element name="led106" ref="led"> <bounds x="58.1" y="-0.4" width="1.3" height="1.3" /> </element>
<element name="led111" ref="led"> <bounds x="67.1" y="-0.4" width="1.3" height="1.3" /> </element>
<element name="led115" ref="led"> <bounds x="76.1" y="-0.4" width="1.3" height="1.3" /> </element>
<element ref="ledo"><bounds x="13.1" y="-0.4" width="1.3" height="1.3" /></element>
<element ref="ledo"><bounds x="22.1" y="-0.4" width="1.3" height="1.3" /></element>
<element ref="ledo"><bounds x="31.1" y="-0.4" width="1.3" height="1.3" /></element>
<element ref="ledo"><bounds x="40.1" y="-0.4" width="1.3" height="1.3" /></element>
<element ref="ledo"><bounds x="49.1" y="-0.4" width="1.3" height="1.3" /></element>
<element ref="ledo"><bounds x="58.1" y="-0.4" width="1.3" height="1.3" /></element>
<element ref="ledo"><bounds x="67.1" y="-0.4" width="1.3" height="1.3" /></element>
<element ref="ledo"><bounds x="76.1" y="-0.4" width="1.3" height="1.3" /></element>
<element name="0.0" ref="ledr" blend="add"><bounds x="13.1" y="-0.4" width="1.3" height="1.3" /></element>
<element name="1.0" ref="ledr" blend="add"><bounds x="22.1" y="-0.4" width="1.3" height="1.3" /></element>
<element name="2.0" ref="ledr" blend="add"><bounds x="31.1" y="-0.4" width="1.3" height="1.3" /></element>
<element name="3.0" ref="ledr" blend="add"><bounds x="40.1" y="-0.4" width="1.3" height="1.3" /></element>
<element name="0.2" ref="ledr" blend="add"><bounds x="49.1" y="-0.4" width="1.3" height="1.3" /></element>
<element name="1.2" ref="ledr" blend="add"><bounds x="58.1" y="-0.4" width="1.3" height="1.3" /></element>
<element name="2.2" ref="ledr" blend="add"><bounds x="67.1" y="-0.4" width="1.3" height="1.3" /></element>
<element name="3.2" ref="ledr" blend="add"><bounds x="76.1" y="-0.4" width="1.3" height="1.3" /></element>
<element name="0.1" ref="ledg" blend="add"><bounds x="13.1" y="-0.4" width="1.3" height="1.3" /></element>
<element name="1.1" ref="ledg" blend="add"><bounds x="22.1" y="-0.4" width="1.3" height="1.3" /></element>
<element name="2.1" ref="ledg" blend="add"><bounds x="31.1" y="-0.4" width="1.3" height="1.3" /></element>
<element name="3.1" ref="ledg" blend="add"><bounds x="40.1" y="-0.4" width="1.3" height="1.3" /></element>
<element name="0.3" ref="ledg" blend="add"><bounds x="49.1" y="-0.4" width="1.3" height="1.3" /></element>
<element name="1.3" ref="ledg" blend="add"><bounds x="58.1" y="-0.4" width="1.3" height="1.3" /></element>
<element name="2.3" ref="ledg" blend="add"><bounds x="67.1" y="-0.4" width="1.3" height="1.3" /></element>
<element name="3.3" ref="ledg" blend="add"><bounds x="76.1" y="-0.4" width="1.3" height="1.3" /></element>
<element ref="text_book"> <bounds x="15" y="-0.5" width="4" height="1.5" /> </element>
<element ref="text_pos"> <bounds x="24" y="-0.5" width="3" height="1.5" /> </element>
@ -434,22 +464,22 @@ license:CC0
<element ref="text_ent"> <bounds x="65.25" y="11" width="5" height="1.5" /> </element>
<element ref="text_res"> <bounds x="74.25" y="11" width="5" height="1.5" /> </element>
<element ref="hlb" inputtag="KEY.0" inputmask="0x01"> <bounds x="13" y="2" width="1.5" height="2.5" /> </element>
<element ref="hlb" inputtag="KEY.0" inputmask="0x02"> <bounds x="22" y="2" width="1.5" height="2.5" /> </element>
<element ref="hlb" inputtag="KEY.0" inputmask="0x04"> <bounds x="31" y="2" width="1.5" height="2.5" /> </element>
<element ref="hlb" inputtag="KEY.0" inputmask="0x08"> <bounds x="40" y="2" width="1.5" height="2.5" /> </element>
<element ref="hlb" inputtag="KEY.0" inputmask="0x10"> <bounds x="49" y="2" width="1.5" height="2.5" /> </element>
<element ref="hlb" inputtag="KEY.0" inputmask="0x20"> <bounds x="58" y="2" width="1.5" height="2.5" /> </element>
<element ref="hlb" inputtag="KEY.0" inputmask="0x40"> <bounds x="67" y="2" width="1.5" height="2.5" /> </element>
<element ref="hlb" inputtag="KEY.0" inputmask="0x80"> <bounds x="76" y="2" width="1.5" height="2.5" /> </element>
<element ref="hlb" inputtag="KEY.1" inputmask="0x01"> <bounds x="13" y="8" width="1.5" height="2.5" /> </element>
<element ref="hlb" inputtag="KEY.1" inputmask="0x02"> <bounds x="22" y="8" width="1.5" height="2.5" /> </element>
<element ref="hlb" inputtag="KEY.1" inputmask="0x04"> <bounds x="31" y="8" width="1.5" height="2.5" /> </element>
<element ref="hlb" inputtag="KEY.1" inputmask="0x08"> <bounds x="40" y="8" width="1.5" height="2.5" /> </element>
<element ref="hlb" inputtag="KEY.1" inputmask="0x10"> <bounds x="49" y="8" width="1.5" height="2.5" /> </element>
<element ref="hlb" inputtag="KEY.1" inputmask="0x20"> <bounds x="58" y="8" width="1.5" height="2.5" /> </element>
<element ref="hlb" inputtag="KEY.1" inputmask="0x40"> <bounds x="67" y="8" width="1.5" height="2.5" /> </element>
<element ref="hlbr" inputtag="KEY.1" inputmask="0x80"> <bounds x="76" y="8" width="1.5" height="2.5" /> </element>
<element ref="hlb" inputtag="KEY.1" inputmask="0x01"> <bounds x="13" y="2" width="1.5" height="2.5" /> </element>
<element ref="hlb" inputtag="KEY.1" inputmask="0x02"> <bounds x="22" y="2" width="1.5" height="2.5" /> </element>
<element ref="hlb" inputtag="KEY.1" inputmask="0x04"> <bounds x="31" y="2" width="1.5" height="2.5" /> </element>
<element ref="hlb" inputtag="KEY.1" inputmask="0x08"> <bounds x="40" y="2" width="1.5" height="2.5" /> </element>
<element ref="hlb" inputtag="KEY.1" inputmask="0x10"> <bounds x="49" y="2" width="1.5" height="2.5" /> </element>
<element ref="hlb" inputtag="KEY.1" inputmask="0x20"> <bounds x="58" y="2" width="1.5" height="2.5" /> </element>
<element ref="hlb" inputtag="KEY.1" inputmask="0x40"> <bounds x="67" y="2" width="1.5" height="2.5" /> </element>
<element ref="hlb" inputtag="KEY.1" inputmask="0x80"> <bounds x="76" y="2" width="1.5" height="2.5" /> </element>
<element ref="hlb" inputtag="KEY.0" inputmask="0x01"> <bounds x="13" y="8" width="1.5" height="2.5" /> </element>
<element ref="hlb" inputtag="KEY.0" inputmask="0x02"> <bounds x="22" y="8" width="1.5" height="2.5" /> </element>
<element ref="hlb" inputtag="KEY.0" inputmask="0x04"> <bounds x="31" y="8" width="1.5" height="2.5" /> </element>
<element ref="hlb" inputtag="KEY.0" inputmask="0x08"> <bounds x="40" y="8" width="1.5" height="2.5" /> </element>
<element ref="hlb" inputtag="KEY.0" inputmask="0x10"> <bounds x="49" y="8" width="1.5" height="2.5" /> </element>
<element ref="hlb" inputtag="KEY.0" inputmask="0x20"> <bounds x="58" y="8" width="1.5" height="2.5" /> </element>
<element ref="hlb" inputtag="KEY.0" inputmask="0x40"> <bounds x="67" y="8" width="1.5" height="2.5" /> </element>
<element ref="hlbr" inputtag="KEY.0" inputmask="0x80"> <bounds x="76" y="8" width="1.5" height="2.5" /> </element>
</group>
<!-- build screen -->

View File

@ -14,7 +14,7 @@ license:CC0
<color red="0.20" green="0.0" blue="0.0" />
</disk>
<disk state="1">
<color red="0.95" green="0.0" blue="0.0" />
<color red="1" green="0.1" blue="0.1" />
</disk>
</element>
<element name="hlb" defstate="0">

View File

@ -14,7 +14,7 @@ license:CC0
<color red="0.20" green="0.0" blue="0.0" />
</disk>
<disk state="1">
<color red="0.95" green="0.0" blue="0.0" />
<color red="1" green="0.1" blue="0.1" />
</disk>
</element>
<element name="hlb" defstate="0">

View File

@ -10,12 +10,24 @@ license:CC0
<led7seg><color red="0.2" green="0.16" blue="0.16" /></led7seg>
</element>
<element name="ledo">
<rect><color red="0.1" green="0.1" blue="0.1" /></rect>
</element>
<element name="ledr" defstate="0">
<rect state="0"><color red="0" green="0" blue="0" /></rect>
<rect state="1"><color red="1" green="0" blue="0" /></rect>
</element>
<element name="ledg" defstate="0">
<rect state="0"><color red="0" green="0" blue="0" /></rect>
<rect state="1"><color red="0" green="1" blue="0" /></rect>
</element>
<element name="led" defstate="0">
<rect state="0">
<color red="0.20" green="0.0" blue="0.0" />
</rect>
<rect state="1">
<color red="0.95" green="0.0" blue="0.0" />
<color red="1" green="0.1" blue="0.1" />
</rect>
</element>
<element name="hlb" defstate="0">
@ -201,14 +213,14 @@ license:CC0
<param name="y" start="0" increment="10" />
<param name="i" start="8" increment="-1" />
<element ref="hlbb" inputtag="board:board:RANK.~i~" inputmask="0x01"><bounds x="0" y="~y~" width="10" height="10" /><color alpha="0.04" /></element>
<element ref="hlbb" inputtag="board:board:RANK.~i~" inputmask="0x02"><bounds x="10" y="~y~" width="10" height="10" /><color alpha="0.04" /></element>
<element ref="hlbb" inputtag="board:board:RANK.~i~" inputmask="0x04"><bounds x="20" y="~y~" width="10" height="10" /><color alpha="0.04" /></element>
<element ref="hlbb" inputtag="board:board:RANK.~i~" inputmask="0x08"><bounds x="30" y="~y~" width="10" height="10" /><color alpha="0.04" /></element>
<element ref="hlbb" inputtag="board:board:RANK.~i~" inputmask="0x10"><bounds x="40" y="~y~" width="10" height="10" /><color alpha="0.04" /></element>
<element ref="hlbb" inputtag="board:board:RANK.~i~" inputmask="0x20"><bounds x="50" y="~y~" width="10" height="10" /><color alpha="0.04" /></element>
<element ref="hlbb" inputtag="board:board:RANK.~i~" inputmask="0x40"><bounds x="60" y="~y~" width="10" height="10" /><color alpha="0.04" /></element>
<element ref="hlbb" inputtag="board:board:RANK.~i~" inputmask="0x80"><bounds x="70" y="~y~" width="10" height="10" /><color alpha="0.04" /></element>
<element ref="hlbb" inputtag="board:RANK.~i~" inputmask="0x01"><bounds x="0" y="~y~" width="10" height="10" /><color alpha="0.04" /></element>
<element ref="hlbb" inputtag="board:RANK.~i~" inputmask="0x02"><bounds x="10" y="~y~" width="10" height="10" /><color alpha="0.04" /></element>
<element ref="hlbb" inputtag="board:RANK.~i~" inputmask="0x04"><bounds x="20" y="~y~" width="10" height="10" /><color alpha="0.04" /></element>
<element ref="hlbb" inputtag="board:RANK.~i~" inputmask="0x08"><bounds x="30" y="~y~" width="10" height="10" /><color alpha="0.04" /></element>
<element ref="hlbb" inputtag="board:RANK.~i~" inputmask="0x10"><bounds x="40" y="~y~" width="10" height="10" /><color alpha="0.04" /></element>
<element ref="hlbb" inputtag="board:RANK.~i~" inputmask="0x20"><bounds x="50" y="~y~" width="10" height="10" /><color alpha="0.04" /></element>
<element ref="hlbb" inputtag="board:RANK.~i~" inputmask="0x40"><bounds x="60" y="~y~" width="10" height="10" /><color alpha="0.04" /></element>
<element ref="hlbb" inputtag="board:RANK.~i~" inputmask="0x80"><bounds x="70" y="~y~" width="10" height="10" /><color alpha="0.04" /></element>
<element name="piece_a~i~" ref="piece"><bounds x="0" y="~y~" width="10" height="10" /></element>
<element name="piece_b~i~" ref="piece"><bounds x="10" y="~y~" width="10" height="10" /></element>
@ -290,8 +302,8 @@ license:CC0
<element ref="text_uib2"><bounds x="1.5" y="11.75" width="7" height="2" /></element>
<element ref="text_uib3"><bounds x="1.5" y="15.25" width="7" height="2" /></element>
<element ref="hlub" inputtag="board:board:UI" inputmask="0x200"><bounds x="1" y="11.5" width="8" height="2.5" /><color alpha="0.25" /></element>
<element ref="hlub" inputtag="board:board:UI" inputmask="0x100"><bounds x="1" y="15" width="8" height="2.5" /><color alpha="0.25" /></element>
<element ref="hlub" inputtag="board:UI" inputmask="0x200"><bounds x="1" y="11.5" width="8" height="2.5" /><color alpha="0.25" /></element>
<element ref="hlub" inputtag="board:UI" inputmask="0x100"><bounds x="1" y="15" width="8" height="2.5" /><color alpha="0.25" /></element>
<!-- spawn -->
<element ref="text_uis1"><bounds x="0" y="20.5" width="10" height="2" /></element>
@ -311,18 +323,18 @@ license:CC0
<element name="piece_ui11" ref="piece"><bounds x="5" y="40" width="4" height="4" /></element>
<element name="piece_ui12" ref="piece"><bounds x="5" y="44" width="4" height="4" /></element>
<element ref="hlub" inputtag="board:board:SPAWN" inputmask="0x0001"><bounds x="1" y="23" width="4" height="4" /><color alpha="0.25" /></element>
<element ref="hlub" inputtag="board:board:SPAWN" inputmask="0x0002"><bounds x="1" y="27" width="4" height="4" /><color alpha="0.25" /></element>
<element ref="hlub" inputtag="board:board:SPAWN" inputmask="0x0004"><bounds x="1" y="31" width="4" height="4" /><color alpha="0.25" /></element>
<element ref="hlub" inputtag="board:board:SPAWN" inputmask="0x0008"><bounds x="5" y="23" width="4" height="4" /><color alpha="0.25" /></element>
<element ref="hlub" inputtag="board:board:SPAWN" inputmask="0x0010"><bounds x="5" y="27" width="4" height="4" /><color alpha="0.25" /></element>
<element ref="hlub" inputtag="board:board:SPAWN" inputmask="0x0020"><bounds x="5" y="31" width="4" height="4" /><color alpha="0.25" /></element>
<element ref="hlub" inputtag="board:board:SPAWN" inputmask="0x0040"><bounds x="1" y="36" width="4" height="4" /><color alpha="0.25" /></element>
<element ref="hlub" inputtag="board:board:SPAWN" inputmask="0x0080"><bounds x="1" y="40" width="4" height="4" /><color alpha="0.25" /></element>
<element ref="hlub" inputtag="board:board:SPAWN" inputmask="0x0100"><bounds x="1" y="44" width="4" height="4" /><color alpha="0.25" /></element>
<element ref="hlub" inputtag="board:board:SPAWN" inputmask="0x0200"><bounds x="5" y="36" width="4" height="4" /><color alpha="0.25" /></element>
<element ref="hlub" inputtag="board:board:SPAWN" inputmask="0x0400"><bounds x="5" y="40" width="4" height="4" /><color alpha="0.25" /></element>
<element ref="hlub" inputtag="board:board:SPAWN" inputmask="0x0800"><bounds x="5" y="44" width="4" height="4" /><color alpha="0.25" /></element>
<element ref="hlub" inputtag="board:SPAWN" inputmask="0x0001"><bounds x="1" y="23" width="4" height="4" /><color alpha="0.25" /></element>
<element ref="hlub" inputtag="board:SPAWN" inputmask="0x0002"><bounds x="1" y="27" width="4" height="4" /><color alpha="0.25" /></element>
<element ref="hlub" inputtag="board:SPAWN" inputmask="0x0004"><bounds x="1" y="31" width="4" height="4" /><color alpha="0.25" /></element>
<element ref="hlub" inputtag="board:SPAWN" inputmask="0x0008"><bounds x="5" y="23" width="4" height="4" /><color alpha="0.25" /></element>
<element ref="hlub" inputtag="board:SPAWN" inputmask="0x0010"><bounds x="5" y="27" width="4" height="4" /><color alpha="0.25" /></element>
<element ref="hlub" inputtag="board:SPAWN" inputmask="0x0020"><bounds x="5" y="31" width="4" height="4" /><color alpha="0.25" /></element>
<element ref="hlub" inputtag="board:SPAWN" inputmask="0x0040"><bounds x="1" y="36" width="4" height="4" /><color alpha="0.25" /></element>
<element ref="hlub" inputtag="board:SPAWN" inputmask="0x0080"><bounds x="1" y="40" width="4" height="4" /><color alpha="0.25" /></element>
<element ref="hlub" inputtag="board:SPAWN" inputmask="0x0100"><bounds x="1" y="44" width="4" height="4" /><color alpha="0.25" /></element>
<element ref="hlub" inputtag="board:SPAWN" inputmask="0x0200"><bounds x="5" y="36" width="4" height="4" /><color alpha="0.25" /></element>
<element ref="hlub" inputtag="board:SPAWN" inputmask="0x0400"><bounds x="5" y="40" width="4" height="4" /><color alpha="0.25" /></element>
<element ref="hlub" inputtag="board:SPAWN" inputmask="0x0800"><bounds x="5" y="44" width="4" height="4" /><color alpha="0.25" /></element>
<!-- hand -->
<element ref="text_uih1"><bounds x="0" y="51" width="10" height="2" /></element>
@ -331,7 +343,7 @@ license:CC0
<element ref="cwhite"><bounds x="1" y="60.5" width="8" height="2.5" /></element>
<element ref="text_uih2"><bounds x="1.5" y="60.75" width="7" height="2" /></element>
<element ref="hlub" inputtag="board:board:UI" inputmask="0x08"><bounds x="1" y="60.5" width="8" height="2.5" /><color alpha="0.25" /></element>
<element ref="hlub" inputtag="board:UI" inputmask="0x08"><bounds x="1" y="60.5" width="8" height="2.5" /><color alpha="0.25" /></element>
<!-- undo -->
<element ref="text_uiu1"><bounds x="0" y="66" width="10" height="2" /></element>
@ -344,10 +356,10 @@ license:CC0
<element ref="text_uiu2c"><bounds x="5.2" y="69.5" width="1.7" height="4" /></element>
<element ref="text_uiu2d"><bounds x="7.3" y="69.5" width="1.7" height="4" /></element>
<element ref="hlub" inputtag="board:board:UI" inputmask="0x10"><bounds x="1" y="68.5" width="1.7" height="6" /><color alpha="0.25" /></element>
<element ref="hlub" inputtag="board:board:UI" inputmask="0x20"><bounds x="3.1" y="68.5" width="1.7" height="6" /><color alpha="0.25" /></element>
<element ref="hlub" inputtag="board:board:UI" inputmask="0x40"><bounds x="5.2" y="68.5" width="1.7" height="6" /><color alpha="0.25" /></element>
<element ref="hlub" inputtag="board:board:UI" inputmask="0x80"><bounds x="7.3" y="68.5" width="1.7" height="6" /><color alpha="0.25" /></element>
<element ref="hlub" inputtag="board:UI" inputmask="0x10"><bounds x="1" y="68.5" width="1.7" height="6" /><color alpha="0.25" /></element>
<element ref="hlub" inputtag="board:UI" inputmask="0x20"><bounds x="3.1" y="68.5" width="1.7" height="6" /><color alpha="0.25" /></element>
<element ref="hlub" inputtag="board:UI" inputmask="0x40"><bounds x="5.2" y="68.5" width="1.7" height="6" /><color alpha="0.25" /></element>
<element ref="hlub" inputtag="board:UI" inputmask="0x80"><bounds x="7.3" y="68.5" width="1.7" height="6" /><color alpha="0.25" /></element>
<element name="count_ui0" ref="text_uiu3a"><bounds x="0" y="75" width="4" height="2" /></element>
<element name="count_ui1" ref="text_uiu3c"><bounds x="6" y="75" width="4" height="2" /></element>
@ -371,14 +383,32 @@ license:CC0
<element name="digit6" ref="digit"> <bounds x="5" y="8" width="2" height="3" /> </element>
<element name="digit7" ref="digit"> <bounds x="7" y="8" width="2" height="3" /> </element>
<element name="led100" ref="led"> <bounds x="13.0" y="0.4" width="1.3" height="0.8" /> </element>
<element name="led101" ref="led"> <bounds x="21.5" y="0.4" width="1.3" height="0.8" /> </element>
<element name="led102" ref="led"> <bounds x="30.0" y="0.4" width="1.3" height="0.8" /> </element>
<element name="led103" ref="led"> <bounds x="38.5" y="0.4" width="1.3" height="0.8" /> </element>
<element name="led104" ref="led"> <bounds x="47.0" y="0.4" width="1.3" height="0.8" /> </element>
<element name="led105" ref="led"> <bounds x="55.5" y="0.4" width="1.3" height="0.8" /> </element>
<element name="led106" ref="led"> <bounds x="64.0" y="0.4" width="1.3" height="0.8" /> </element>
<element name="led107" ref="led"> <bounds x="72.5" y="0.4" width="1.3" height="0.8" /> </element>
<element ref="ledo"><bounds x="13.0" y="0.4" width="1.3" height="0.8" /> </element>
<element ref="ledo"><bounds x="21.5" y="0.4" width="1.3" height="0.8" /> </element>
<element ref="ledo"><bounds x="30.0" y="0.4" width="1.3" height="0.8" /> </element>
<element ref="ledo"><bounds x="38.5" y="0.4" width="1.3" height="0.8" /> </element>
<element ref="ledo"><bounds x="47.0" y="0.4" width="1.3" height="0.8" /> </element>
<element ref="ledo"><bounds x="55.5" y="0.4" width="1.3" height="0.8" /> </element>
<element ref="ledo"><bounds x="64.0" y="0.4" width="1.3" height="0.8" /> </element>
<element ref="ledo"><bounds x="72.5" y="0.4" width="1.3" height="0.8" /> </element>
<element name="0.0" ref="ledg" blend="add"><bounds x="13.0" y="0.4" width="1.3" height="0.8" /> </element>
<element name="1.0" ref="ledg" blend="add"><bounds x="21.5" y="0.4" width="1.3" height="0.8" /> </element>
<element name="2.0" ref="ledg" blend="add"><bounds x="30.0" y="0.4" width="1.3" height="0.8" /> </element>
<element name="3.0" ref="ledg" blend="add"><bounds x="38.5" y="0.4" width="1.3" height="0.8" /> </element>
<element name="4.0" ref="ledg" blend="add"><bounds x="47.0" y="0.4" width="1.3" height="0.8" /> </element>
<element name="5.0" ref="ledg" blend="add"><bounds x="55.5" y="0.4" width="1.3" height="0.8" /> </element>
<element name="6.0" ref="ledg" blend="add"><bounds x="64.0" y="0.4" width="1.3" height="0.8" /> </element>
<element name="7.0" ref="ledg" blend="add"><bounds x="72.5" y="0.4" width="1.3" height="0.8" /> </element>
<element name="0.1" ref="ledr" blend="add"><bounds x="13.0" y="0.4" width="1.3" height="0.8" /> </element>
<element name="1.1" ref="ledr" blend="add"><bounds x="21.5" y="0.4" width="1.3" height="0.8" /> </element>
<element name="2.1" ref="ledr" blend="add"><bounds x="30.0" y="0.4" width="1.3" height="0.8" /> </element>
<element name="3.1" ref="ledr" blend="add"><bounds x="38.5" y="0.4" width="1.3" height="0.8" /> </element>
<element name="4.1" ref="ledr" blend="add"><bounds x="47.0" y="0.4" width="1.3" height="0.8" /> </element>
<element name="5.1" ref="ledr" blend="add"><bounds x="55.5" y="0.4" width="1.3" height="0.8" /> </element>
<element name="6.1" ref="ledr" blend="add"><bounds x="64.0" y="0.4" width="1.3" height="0.8" /> </element>
<element name="7.1" ref="ledr" blend="add"><bounds x="72.5" y="0.4" width="1.3" height="0.8" /> </element>
<element ref="black"> <bounds x="13" y="2" width="6" height="4" /> </element>
<element ref="black"> <bounds x="21.5" y="2" width="6" height="4" /> </element>
@ -394,7 +424,7 @@ license:CC0
<element ref="black"> <bounds x="38.5" y="7.5" width="6" height="4" /> </element>
<element ref="black"> <bounds x="47" y="7.5" width="6" height="4" /> </element>
<element ref="black"> <bounds x="55.5" y="7.5" width="6" height="4" /> </element>
<element ref="black"> <bounds x="64" y="7.5" width="6" height="4" /> </element>
<element ref="black"> <bounds x="64" y="7.5" width="6" height="4" /> </element> <!-- on Mega IV, this button is red, but that's not worth another .lay file -->
<element ref="red"> <bounds x="72.5" y="7.5" width="6" height="4" /> </element>
<element ref="text_book"> <bounds x="15" y="0" width="4" height="1.5" /> </element>
@ -422,22 +452,22 @@ license:CC0
<element ref="text_ent"> <bounds x="64.5" y="8" width="5" height="1.5" /> </element>
<element ref="text_res"> <bounds x="73" y="8" width="5" height="1.5" /> </element>
<element ref="hlb" inputtag="KEY.1" inputmask="0x01"> <bounds x="13" y="2" width="6" height="4" /> <color alpha="0.3"/></element>
<element ref="hlb" inputtag="KEY.1" inputmask="0x10"> <bounds x="21.5" y="2" width="6" height="4" /> <color alpha="0.3"/></element>
<element ref="hlb" inputtag="KEY.0" inputmask="0x01"> <bounds x="30" y="2" width="6" height="4" /> <color alpha="0.3"/></element>
<element ref="hlb" inputtag="KEY.0" inputmask="0x10"> <bounds x="38.5" y="2" width="6" height="4" /> <color alpha="0.3"/></element>
<element ref="hlb" inputtag="KEY.1" inputmask="0x02"> <bounds x="47" y="2" width="6" height="4" /> <color alpha="0.3"/></element>
<element ref="hlb" inputtag="KEY.1" inputmask="0x20"> <bounds x="55.5" y="2" width="6" height="4" /> <color alpha="0.3"/></element>
<element ref="hlb" inputtag="KEY.0" inputmask="0x02"> <bounds x="64" y="2" width="6" height="4" /> <color alpha="0.3"/></element>
<element ref="hlb" inputtag="KEY.0" inputmask="0x20"> <bounds x="72.5" y="2" width="6" height="4" /> <color alpha="0.3"/></element>
<element ref="hlb" inputtag="KEY.1" inputmask="0x04"> <bounds x="13" y="7.5" width="6" height="4" /> <color alpha="0.3"/></element>
<element ref="hlb" inputtag="KEY.1" inputmask="0x40"> <bounds x="21.5" y="7.5" width="6" height="4" /> <color alpha="0.3"/></element>
<element ref="hlb" inputtag="KEY.0" inputmask="0x04"> <bounds x="30" y="7.5" width="6" height="4" /> <color alpha="0.3"/></element>
<element ref="hlb" inputtag="KEY.0" inputmask="0x40"> <bounds x="38.5" y="7.5" width="6" height="4" /> <color alpha="0.3"/></element>
<element ref="hlb" inputtag="KEY.1" inputmask="0x08"> <bounds x="47" y="7.5" width="6" height="4" /> <color alpha="0.3"/></element>
<element ref="hlb" inputtag="KEY.1" inputmask="0x80"> <bounds x="55.5" y="7.5" width="6" height="4" /> <color alpha="0.3"/></element>
<element ref="hlb" inputtag="KEY.0" inputmask="0x08"> <bounds x="64" y="7.5" width="6" height="4" /> <color alpha="0.3"/></element>
<element ref="hlb" inputtag="KEY.0" inputmask="0x80"> <bounds x="72.5" y="7.5" width="6" height="4" /> <color alpha="0.3"/></element>
<element ref="hlb" inputtag="KEY.0" inputmask="0x01"> <bounds x="13" y="2" width="6" height="4" /> <color alpha="0.3"/></element>
<element ref="hlb" inputtag="KEY.1" inputmask="0x01"> <bounds x="21.5" y="2" width="6" height="4" /> <color alpha="0.3"/></element>
<element ref="hlb" inputtag="KEY.2" inputmask="0x01"> <bounds x="30" y="2" width="6" height="4" /> <color alpha="0.3"/></element>
<element ref="hlb" inputtag="KEY.3" inputmask="0x01"> <bounds x="38.5" y="2" width="6" height="4" /> <color alpha="0.3"/></element>
<element ref="hlb" inputtag="KEY.0" inputmask="0x02"> <bounds x="47" y="2" width="6" height="4" /> <color alpha="0.3"/></element>
<element ref="hlb" inputtag="KEY.1" inputmask="0x02"> <bounds x="55.5" y="2" width="6" height="4" /> <color alpha="0.3"/></element>
<element ref="hlb" inputtag="KEY.2" inputmask="0x02"> <bounds x="64" y="2" width="6" height="4" /> <color alpha="0.3"/></element>
<element ref="hlb" inputtag="KEY.3" inputmask="0x02"> <bounds x="72.5" y="2" width="6" height="4" /> <color alpha="0.3"/></element>
<element ref="hlb" inputtag="KEY.0" inputmask="0x04"> <bounds x="13" y="7.5" width="6" height="4" /> <color alpha="0.3"/></element>
<element ref="hlb" inputtag="KEY.1" inputmask="0x04"> <bounds x="21.5" y="7.5" width="6" height="4" /> <color alpha="0.3"/></element>
<element ref="hlb" inputtag="KEY.2" inputmask="0x04"> <bounds x="30" y="7.5" width="6" height="4" /> <color alpha="0.3"/></element>
<element ref="hlb" inputtag="KEY.3" inputmask="0x04"> <bounds x="38.5" y="7.5" width="6" height="4" /> <color alpha="0.3"/></element>
<element ref="hlb" inputtag="KEY.0" inputmask="0x08"> <bounds x="47" y="7.5" width="6" height="4" /> <color alpha="0.3"/></element>
<element ref="hlb" inputtag="KEY.1" inputmask="0x08"> <bounds x="55.5" y="7.5" width="6" height="4" /> <color alpha="0.3"/></element>
<element ref="hlb" inputtag="KEY.2" inputmask="0x08"> <bounds x="64" y="7.5" width="6" height="4" /> <color alpha="0.3"/></element>
<element ref="hlb" inputtag="KEY.3" inputmask="0x08"> <bounds x="72.5" y="7.5" width="6" height="4" /> <color alpha="0.3"/></element>
</group>
@ -448,7 +478,7 @@ license:CC0
<element ref="background"><bounds x="13" y="-2" width="90" height="104" /></element>
<!-- chessboard coords -->
<element ref="text_8"><bounds x="13.6" y="7" width="2" height="2" /></element>
<element ref="text_8"><bounds x="13.6" y="7" width="2" height="2" /></element>
<element ref="text_7"><bounds x="13.6" y="17" width="2" height="2" /></element>
<element ref="text_6"><bounds x="13.6" y="27" width="2" height="2" /></element>
<element ref="text_5"><bounds x="13.6" y="37" width="2" height="2" /></element>
@ -470,23 +500,59 @@ license:CC0
<element ref="black"><bounds x="17.5" y="2.5" width="81" height="81" /></element>
<!-- chessboard leds -->
<element name="led0" ref="led"><bounds x="15.7" y="77.25" width="0.8" height="1.5" /></element>
<element name="led1" ref="led"><bounds x="15.7" y="67.25" width="0.8" height="1.5" /></element>
<element name="led2" ref="led"><bounds x="15.7" y="57.25" width="0.8" height="1.5" /></element>
<element name="led3" ref="led"><bounds x="15.7" y="47.25" width="0.8" height="1.5" /></element>
<element name="led4" ref="led"><bounds x="15.7" y="37.25" width="0.8" height="1.5" /></element>
<element name="led5" ref="led"><bounds x="15.7" y="27.25" width="0.8" height="1.5" /></element>
<element name="led6" ref="led"><bounds x="15.7" y="17.25" width="0.8" height="1.5" /></element>
<element name="led7" ref="led"><bounds x="15.7" y="7.25" width="0.8" height="1.5" /></element>
<element ref="ledo"><bounds x="15.7" y="77.25" width="0.8" height="1.5" /></element>
<element ref="ledo"><bounds x="15.7" y="67.25" width="0.8" height="1.5" /></element>
<element ref="ledo"><bounds x="15.7" y="57.25" width="0.8" height="1.5" /></element>
<element ref="ledo"><bounds x="15.7" y="47.25" width="0.8" height="1.5" /></element>
<element ref="ledo"><bounds x="15.7" y="37.25" width="0.8" height="1.5" /></element>
<element ref="ledo"><bounds x="15.7" y="27.25" width="0.8" height="1.5" /></element>
<element ref="ledo"><bounds x="15.7" y="17.25" width="0.8" height="1.5" /></element>
<element ref="ledo"><bounds x="15.7" y="7.25" width="0.8" height="1.5" /></element>
<element name="led8" ref="led"><bounds x="22.25" y="84.5" width="1.5" height="0.8" /></element>
<element name="led9" ref="led"><bounds x="32.25" y="84.5" width="1.5" height="0.8" /></element>
<element name="led10" ref="led"><bounds x="42.25" y="84.5" width="1.5" height="0.8" /></element>
<element name="led11" ref="led"><bounds x="52.25" y="84.5" width="1.5" height="0.8" /></element>
<element name="led12" ref="led"><bounds x="62.25" y="84.5" width="1.5" height="0.8" /></element>
<element name="led13" ref="led"><bounds x="72.25" y="84.5" width="1.5" height="0.8" /></element>
<element name="led14" ref="led"><bounds x="82.25" y="84.5" width="1.5" height="0.8" /></element>
<element name="led15" ref="led"><bounds x="92.25" y="84.5" width="1.5" height="0.8" /></element>
<element name="0.2" ref="ledg" blend="add"><bounds x="15.7" y="77.25" width="0.8" height="1.5" /></element>
<element name="1.2" ref="ledg" blend="add"><bounds x="15.7" y="67.25" width="0.8" height="1.5" /></element>
<element name="2.2" ref="ledg" blend="add"><bounds x="15.7" y="57.25" width="0.8" height="1.5" /></element>
<element name="3.2" ref="ledg" blend="add"><bounds x="15.7" y="47.25" width="0.8" height="1.5" /></element>
<element name="4.2" ref="ledg" blend="add"><bounds x="15.7" y="37.25" width="0.8" height="1.5" /></element>
<element name="5.2" ref="ledg" blend="add"><bounds x="15.7" y="27.25" width="0.8" height="1.5" /></element>
<element name="6.2" ref="ledg" blend="add"><bounds x="15.7" y="17.25" width="0.8" height="1.5" /></element>
<element name="7.2" ref="ledg" blend="add"><bounds x="15.7" y="7.25" width="0.8" height="1.5" /></element>
<element name="0.3" ref="ledr" blend="add"><bounds x="15.7" y="77.25" width="0.8" height="1.5" /></element>
<element name="1.3" ref="ledr" blend="add"><bounds x="15.7" y="67.25" width="0.8" height="1.5" /></element>
<element name="2.3" ref="ledr" blend="add"><bounds x="15.7" y="57.25" width="0.8" height="1.5" /></element>
<element name="3.3" ref="ledr" blend="add"><bounds x="15.7" y="47.25" width="0.8" height="1.5" /></element>
<element name="4.3" ref="ledr" blend="add"><bounds x="15.7" y="37.25" width="0.8" height="1.5" /></element>
<element name="5.3" ref="ledr" blend="add"><bounds x="15.7" y="27.25" width="0.8" height="1.5" /></element>
<element name="6.3" ref="ledr" blend="add"><bounds x="15.7" y="17.25" width="0.8" height="1.5" /></element>
<element name="7.3" ref="ledr" blend="add"><bounds x="15.7" y="7.25" width="0.8" height="1.5" /></element>
<element ref="ledo"><bounds x="22.25" y="84.5" width="1.5" height="0.8" /></element>
<element ref="ledo"><bounds x="32.25" y="84.5" width="1.5" height="0.8" /></element>
<element ref="ledo"><bounds x="42.25" y="84.5" width="1.5" height="0.8" /></element>
<element ref="ledo"><bounds x="52.25" y="84.5" width="1.5" height="0.8" /></element>
<element ref="ledo"><bounds x="62.25" y="84.5" width="1.5" height="0.8" /></element>
<element ref="ledo"><bounds x="72.25" y="84.5" width="1.5" height="0.8" /></element>
<element ref="ledo"><bounds x="82.25" y="84.5" width="1.5" height="0.8" /></element>
<element ref="ledo"><bounds x="92.25" y="84.5" width="1.5" height="0.8" /></element>
<element name="0.4" ref="ledg" blend="add"><bounds x="22.25" y="84.5" width="1.5" height="0.8" /></element>
<element name="1.4" ref="ledg" blend="add"><bounds x="32.25" y="84.5" width="1.5" height="0.8" /></element>
<element name="2.4" ref="ledg" blend="add"><bounds x="42.25" y="84.5" width="1.5" height="0.8" /></element>
<element name="3.4" ref="ledg" blend="add"><bounds x="52.25" y="84.5" width="1.5" height="0.8" /></element>
<element name="4.4" ref="ledg" blend="add"><bounds x="62.25" y="84.5" width="1.5" height="0.8" /></element>
<element name="5.4" ref="ledg" blend="add"><bounds x="72.25" y="84.5" width="1.5" height="0.8" /></element>
<element name="6.4" ref="ledg" blend="add"><bounds x="82.25" y="84.5" width="1.5" height="0.8" /></element>
<element name="7.4" ref="ledg" blend="add"><bounds x="92.25" y="84.5" width="1.5" height="0.8" /></element>
<element name="0.5" ref="ledr" blend="add"><bounds x="22.25" y="84.5" width="1.5" height="0.8" /></element>
<element name="1.5" ref="ledr" blend="add"><bounds x="32.25" y="84.5" width="1.5" height="0.8" /></element>
<element name="2.5" ref="ledr" blend="add"><bounds x="42.25" y="84.5" width="1.5" height="0.8" /></element>
<element name="3.5" ref="ledr" blend="add"><bounds x="52.25" y="84.5" width="1.5" height="0.8" /></element>
<element name="4.5" ref="ledr" blend="add"><bounds x="62.25" y="84.5" width="1.5" height="0.8" /></element>
<element name="5.5" ref="ledr" blend="add"><bounds x="72.25" y="84.5" width="1.5" height="0.8" /></element>
<element name="6.5" ref="ledr" blend="add"><bounds x="82.25" y="84.5" width="1.5" height="0.8" /></element>
<element name="7.5" ref="ledr" blend="add"><bounds x="92.25" y="84.5" width="1.5" height="0.8" /></element>
<!-- LCD panel -->
<group ref="panel"><bounds x="18" y="89" width="79" height="13" /></group>

View File

@ -10,12 +10,24 @@ license:CC0
<led7seg><color red="0.2" green="0.16" blue="0.16" /></led7seg>
</element>
<element name="ledo">
<rect><color red="0.1" green="0.1" blue="0.1" /></rect>
</element>
<element name="ledr" defstate="0">
<rect state="0"><color red="0" green="0" blue="0" /></rect>
<rect state="1"><color red="1" green="0" blue="0" /></rect>
</element>
<element name="ledg" defstate="0">
<rect state="0"><color red="0" green="0" blue="0" /></rect>
<rect state="1"><color red="0" green="1" blue="0" /></rect>
</element>
<element name="led" defstate="0">
<rect state="0">
<color red="0.20" green="0.0" blue="0.0" />
</rect>
<rect state="1">
<color red="0.95" green="0.0" blue="0.0" />
<color red="1" green="0.1" blue="0.1" />
</rect>
</element>
<element name="hlb" defstate="0">
@ -204,14 +216,14 @@ license:CC0
<param name="y" start="0" increment="10" />
<param name="i" start="8" increment="-1" />
<element ref="hlbb" inputtag="board:board:RANK.~i~" inputmask="0x01"><bounds x="0" y="~y~" width="10" height="10" /><color alpha="0.04" /></element>
<element ref="hlbb" inputtag="board:board:RANK.~i~" inputmask="0x02"><bounds x="10" y="~y~" width="10" height="10" /><color alpha="0.04" /></element>
<element ref="hlbb" inputtag="board:board:RANK.~i~" inputmask="0x04"><bounds x="20" y="~y~" width="10" height="10" /><color alpha="0.04" /></element>
<element ref="hlbb" inputtag="board:board:RANK.~i~" inputmask="0x08"><bounds x="30" y="~y~" width="10" height="10" /><color alpha="0.04" /></element>
<element ref="hlbb" inputtag="board:board:RANK.~i~" inputmask="0x10"><bounds x="40" y="~y~" width="10" height="10" /><color alpha="0.04" /></element>
<element ref="hlbb" inputtag="board:board:RANK.~i~" inputmask="0x20"><bounds x="50" y="~y~" width="10" height="10" /><color alpha="0.04" /></element>
<element ref="hlbb" inputtag="board:board:RANK.~i~" inputmask="0x40"><bounds x="60" y="~y~" width="10" height="10" /><color alpha="0.04" /></element>
<element ref="hlbb" inputtag="board:board:RANK.~i~" inputmask="0x80"><bounds x="70" y="~y~" width="10" height="10" /><color alpha="0.04" /></element>
<element ref="hlbb" inputtag="board:RANK.~i~" inputmask="0x01"><bounds x="0" y="~y~" width="10" height="10" /><color alpha="0.04" /></element>
<element ref="hlbb" inputtag="board:RANK.~i~" inputmask="0x02"><bounds x="10" y="~y~" width="10" height="10" /><color alpha="0.04" /></element>
<element ref="hlbb" inputtag="board:RANK.~i~" inputmask="0x04"><bounds x="20" y="~y~" width="10" height="10" /><color alpha="0.04" /></element>
<element ref="hlbb" inputtag="board:RANK.~i~" inputmask="0x08"><bounds x="30" y="~y~" width="10" height="10" /><color alpha="0.04" /></element>
<element ref="hlbb" inputtag="board:RANK.~i~" inputmask="0x10"><bounds x="40" y="~y~" width="10" height="10" /><color alpha="0.04" /></element>
<element ref="hlbb" inputtag="board:RANK.~i~" inputmask="0x20"><bounds x="50" y="~y~" width="10" height="10" /><color alpha="0.04" /></element>
<element ref="hlbb" inputtag="board:RANK.~i~" inputmask="0x40"><bounds x="60" y="~y~" width="10" height="10" /><color alpha="0.04" /></element>
<element ref="hlbb" inputtag="board:RANK.~i~" inputmask="0x80"><bounds x="70" y="~y~" width="10" height="10" /><color alpha="0.04" /></element>
<element name="piece_a~i~" ref="piece"><bounds x="0" y="~y~" width="10" height="10" /></element>
<element name="piece_b~i~" ref="piece"><bounds x="10" y="~y~" width="10" height="10" /></element>
@ -293,8 +305,8 @@ license:CC0
<element ref="text_uib2"><bounds x="1.5" y="11.75" width="7" height="2" /></element>
<element ref="text_uib3"><bounds x="1.5" y="15.25" width="7" height="2" /></element>
<element ref="hlub" inputtag="board:board:UI" inputmask="0x200"><bounds x="1" y="11.5" width="8" height="2.5" /><color alpha="0.25" /></element>
<element ref="hlub" inputtag="board:board:UI" inputmask="0x100"><bounds x="1" y="15" width="8" height="2.5" /><color alpha="0.25" /></element>
<element ref="hlub" inputtag="board:UI" inputmask="0x200"><bounds x="1" y="11.5" width="8" height="2.5" /><color alpha="0.25" /></element>
<element ref="hlub" inputtag="board:UI" inputmask="0x100"><bounds x="1" y="15" width="8" height="2.5" /><color alpha="0.25" /></element>
<!-- spawn -->
<element ref="text_uis1"><bounds x="0" y="20.5" width="10" height="2" /></element>
@ -314,18 +326,18 @@ license:CC0
<element name="piece_ui11" ref="piece"><bounds x="5" y="40" width="4" height="4" /></element>
<element name="piece_ui12" ref="piece"><bounds x="5" y="44" width="4" height="4" /></element>
<element ref="hlub" inputtag="board:board:SPAWN" inputmask="0x0001"><bounds x="1" y="23" width="4" height="4" /><color alpha="0.25" /></element>
<element ref="hlub" inputtag="board:board:SPAWN" inputmask="0x0002"><bounds x="1" y="27" width="4" height="4" /><color alpha="0.25" /></element>
<element ref="hlub" inputtag="board:board:SPAWN" inputmask="0x0004"><bounds x="1" y="31" width="4" height="4" /><color alpha="0.25" /></element>
<element ref="hlub" inputtag="board:board:SPAWN" inputmask="0x0008"><bounds x="5" y="23" width="4" height="4" /><color alpha="0.25" /></element>
<element ref="hlub" inputtag="board:board:SPAWN" inputmask="0x0010"><bounds x="5" y="27" width="4" height="4" /><color alpha="0.25" /></element>
<element ref="hlub" inputtag="board:board:SPAWN" inputmask="0x0020"><bounds x="5" y="31" width="4" height="4" /><color alpha="0.25" /></element>
<element ref="hlub" inputtag="board:board:SPAWN" inputmask="0x0040"><bounds x="1" y="36" width="4" height="4" /><color alpha="0.25" /></element>
<element ref="hlub" inputtag="board:board:SPAWN" inputmask="0x0080"><bounds x="1" y="40" width="4" height="4" /><color alpha="0.25" /></element>
<element ref="hlub" inputtag="board:board:SPAWN" inputmask="0x0100"><bounds x="1" y="44" width="4" height="4" /><color alpha="0.25" /></element>
<element ref="hlub" inputtag="board:board:SPAWN" inputmask="0x0200"><bounds x="5" y="36" width="4" height="4" /><color alpha="0.25" /></element>
<element ref="hlub" inputtag="board:board:SPAWN" inputmask="0x0400"><bounds x="5" y="40" width="4" height="4" /><color alpha="0.25" /></element>
<element ref="hlub" inputtag="board:board:SPAWN" inputmask="0x0800"><bounds x="5" y="44" width="4" height="4" /><color alpha="0.25" /></element>
<element ref="hlub" inputtag="board:SPAWN" inputmask="0x0001"><bounds x="1" y="23" width="4" height="4" /><color alpha="0.25" /></element>
<element ref="hlub" inputtag="board:SPAWN" inputmask="0x0002"><bounds x="1" y="27" width="4" height="4" /><color alpha="0.25" /></element>
<element ref="hlub" inputtag="board:SPAWN" inputmask="0x0004"><bounds x="1" y="31" width="4" height="4" /><color alpha="0.25" /></element>
<element ref="hlub" inputtag="board:SPAWN" inputmask="0x0008"><bounds x="5" y="23" width="4" height="4" /><color alpha="0.25" /></element>
<element ref="hlub" inputtag="board:SPAWN" inputmask="0x0010"><bounds x="5" y="27" width="4" height="4" /><color alpha="0.25" /></element>
<element ref="hlub" inputtag="board:SPAWN" inputmask="0x0020"><bounds x="5" y="31" width="4" height="4" /><color alpha="0.25" /></element>
<element ref="hlub" inputtag="board:SPAWN" inputmask="0x0040"><bounds x="1" y="36" width="4" height="4" /><color alpha="0.25" /></element>
<element ref="hlub" inputtag="board:SPAWN" inputmask="0x0080"><bounds x="1" y="40" width="4" height="4" /><color alpha="0.25" /></element>
<element ref="hlub" inputtag="board:SPAWN" inputmask="0x0100"><bounds x="1" y="44" width="4" height="4" /><color alpha="0.25" /></element>
<element ref="hlub" inputtag="board:SPAWN" inputmask="0x0200"><bounds x="5" y="36" width="4" height="4" /><color alpha="0.25" /></element>
<element ref="hlub" inputtag="board:SPAWN" inputmask="0x0400"><bounds x="5" y="40" width="4" height="4" /><color alpha="0.25" /></element>
<element ref="hlub" inputtag="board:SPAWN" inputmask="0x0800"><bounds x="5" y="44" width="4" height="4" /><color alpha="0.25" /></element>
<!-- hand -->
<element ref="text_uih1"><bounds x="0" y="51" width="10" height="2" /></element>
@ -334,7 +346,7 @@ license:CC0
<element ref="cwhite"><bounds x="1" y="60.5" width="8" height="2.5" /></element>
<element ref="text_uih2"><bounds x="1.5" y="60.75" width="7" height="2" /></element>
<element ref="hlub" inputtag="board:board:UI" inputmask="0x08"><bounds x="1" y="60.5" width="8" height="2.5" /><color alpha="0.25" /></element>
<element ref="hlub" inputtag="board:UI" inputmask="0x08"><bounds x="1" y="60.5" width="8" height="2.5" /><color alpha="0.25" /></element>
<!-- undo -->
<element ref="text_uiu1"><bounds x="0" y="66" width="10" height="2" /></element>
@ -347,10 +359,10 @@ license:CC0
<element ref="text_uiu2c"><bounds x="5.2" y="69.5" width="1.7" height="4" /></element>
<element ref="text_uiu2d"><bounds x="7.3" y="69.5" width="1.7" height="4" /></element>
<element ref="hlub" inputtag="board:board:UI" inputmask="0x10"><bounds x="1" y="68.5" width="1.7" height="6" /><color alpha="0.25" /></element>
<element ref="hlub" inputtag="board:board:UI" inputmask="0x20"><bounds x="3.1" y="68.5" width="1.7" height="6" /><color alpha="0.25" /></element>
<element ref="hlub" inputtag="board:board:UI" inputmask="0x40"><bounds x="5.2" y="68.5" width="1.7" height="6" /><color alpha="0.25" /></element>
<element ref="hlub" inputtag="board:board:UI" inputmask="0x80"><bounds x="7.3" y="68.5" width="1.7" height="6" /><color alpha="0.25" /></element>
<element ref="hlub" inputtag="board:UI" inputmask="0x10"><bounds x="1" y="68.5" width="1.7" height="6" /><color alpha="0.25" /></element>
<element ref="hlub" inputtag="board:UI" inputmask="0x20"><bounds x="3.1" y="68.5" width="1.7" height="6" /><color alpha="0.25" /></element>
<element ref="hlub" inputtag="board:UI" inputmask="0x40"><bounds x="5.2" y="68.5" width="1.7" height="6" /><color alpha="0.25" /></element>
<element ref="hlub" inputtag="board:UI" inputmask="0x80"><bounds x="7.3" y="68.5" width="1.7" height="6" /><color alpha="0.25" /></element>
<element name="count_ui0" ref="text_uiu3a"><bounds x="0" y="75" width="4" height="2" /></element>
<element name="count_ui1" ref="text_uiu3c"><bounds x="6" y="75" width="4" height="2" /></element>
@ -374,14 +386,32 @@ license:CC0
<element name="digit6" ref="digit"> <bounds x="5" y="8" width="2" height="3" /> </element>
<element name="digit7" ref="digit"> <bounds x="7" y="8" width="2" height="3" /> </element>
<element name="led100" ref="led"> <bounds x="13.0" y="0.4" width="1.3" height="0.8" /> </element>
<element name="led101" ref="led"> <bounds x="21.5" y="0.4" width="1.3" height="0.8" /> </element>
<element name="led102" ref="led"> <bounds x="30.0" y="0.4" width="1.3" height="0.8" /> </element>
<element name="led103" ref="led"> <bounds x="38.5" y="0.4" width="1.3" height="0.8" /> </element>
<element name="led104" ref="led"> <bounds x="47.0" y="0.4" width="1.3" height="0.8" /> </element>
<element name="led105" ref="led"> <bounds x="55.5" y="0.4" width="1.3" height="0.8" /> </element>
<element name="led106" ref="led"> <bounds x="64.0" y="0.4" width="1.3" height="0.8" /> </element>
<element name="led107" ref="led"> <bounds x="72.5" y="0.4" width="1.3" height="0.8" /> </element>
<element ref="ledo"><bounds x="13.0" y="0.4" width="1.3" height="0.8" /> </element>
<element ref="ledo"><bounds x="21.5" y="0.4" width="1.3" height="0.8" /> </element>
<element ref="ledo"><bounds x="30.0" y="0.4" width="1.3" height="0.8" /> </element>
<element ref="ledo"><bounds x="38.5" y="0.4" width="1.3" height="0.8" /> </element>
<element ref="ledo"><bounds x="47.0" y="0.4" width="1.3" height="0.8" /> </element>
<element ref="ledo"><bounds x="55.5" y="0.4" width="1.3" height="0.8" /> </element>
<element ref="ledo"><bounds x="64.0" y="0.4" width="1.3" height="0.8" /> </element>
<element ref="ledo"><bounds x="72.5" y="0.4" width="1.3" height="0.8" /> </element>
<element name="0.0" ref="ledg" blend="add"><bounds x="13.0" y="0.4" width="1.3" height="0.8" /> </element>
<element name="1.0" ref="ledg" blend="add"><bounds x="21.5" y="0.4" width="1.3" height="0.8" /> </element>
<element name="2.0" ref="ledg" blend="add"><bounds x="30.0" y="0.4" width="1.3" height="0.8" /> </element>
<element name="3.0" ref="ledg" blend="add"><bounds x="38.5" y="0.4" width="1.3" height="0.8" /> </element>
<element name="4.0" ref="ledg" blend="add"><bounds x="47.0" y="0.4" width="1.3" height="0.8" /> </element>
<element name="5.0" ref="ledg" blend="add"><bounds x="55.5" y="0.4" width="1.3" height="0.8" /> </element>
<element name="6.0" ref="ledg" blend="add"><bounds x="64.0" y="0.4" width="1.3" height="0.8" /> </element>
<element name="7.0" ref="ledg" blend="add"><bounds x="72.5" y="0.4" width="1.3" height="0.8" /> </element>
<element name="0.1" ref="ledr" blend="add"><bounds x="13.0" y="0.4" width="1.3" height="0.8" /> </element>
<element name="1.1" ref="ledr" blend="add"><bounds x="21.5" y="0.4" width="1.3" height="0.8" /> </element>
<element name="2.1" ref="ledr" blend="add"><bounds x="30.0" y="0.4" width="1.3" height="0.8" /> </element>
<element name="3.1" ref="ledr" blend="add"><bounds x="38.5" y="0.4" width="1.3" height="0.8" /> </element>
<element name="4.1" ref="ledr" blend="add"><bounds x="47.0" y="0.4" width="1.3" height="0.8" /> </element>
<element name="5.1" ref="ledr" blend="add"><bounds x="55.5" y="0.4" width="1.3" height="0.8" /> </element>
<element name="6.1" ref="ledr" blend="add"><bounds x="64.0" y="0.4" width="1.3" height="0.8" /> </element>
<element name="7.1" ref="ledr" blend="add"><bounds x="72.5" y="0.4" width="1.3" height="0.8" /> </element>
<element ref="black"> <bounds x="13" y="2" width="6" height="4" /> </element>
<element ref="black"> <bounds x="21.5" y="2" width="6" height="4" /> </element>
@ -425,22 +455,22 @@ license:CC0
<element ref="text_ent"> <bounds x="64.5" y="8.75" width="5" height="1.5" /> </element>
<element ref="text_res"> <bounds x="73" y="8.75" width="5" height="1.5" /> </element>
<element ref="hlb" inputtag="KEY.1" inputmask="0x01"> <bounds x="13" y="2" width="6" height="4" /> <color alpha="0.3" /></element>
<element ref="hlb" inputtag="KEY.1" inputmask="0x10"> <bounds x="21.5" y="2" width="6" height="4" /> <color alpha="0.3" /></element>
<element ref="hlb" inputtag="KEY.0" inputmask="0x01"> <bounds x="30" y="2" width="6" height="4" /> <color alpha="0.3" /></element>
<element ref="hlb" inputtag="KEY.0" inputmask="0x10"> <bounds x="38.5" y="2" width="6" height="4" /> <color alpha="0.3" /></element>
<element ref="hlb" inputtag="KEY.1" inputmask="0x02"> <bounds x="47" y="2" width="6" height="4" /> <color alpha="0.3" /></element>
<element ref="hlb" inputtag="KEY.1" inputmask="0x20"> <bounds x="55.5" y="2" width="6" height="4" /> <color alpha="0.3" /></element>
<element ref="hlb" inputtag="KEY.0" inputmask="0x02"> <bounds x="64" y="2" width="6" height="4" /> <color alpha="0.3" /></element>
<element ref="hlb" inputtag="KEY.0" inputmask="0x20"> <bounds x="72.5" y="2" width="6" height="4" /> <color alpha="0.3" /></element>
<element ref="hlb" inputtag="KEY.1" inputmask="0x04"> <bounds x="13" y="7.5" width="6" height="4" /> <color alpha="0.3" /></element>
<element ref="hlb" inputtag="KEY.1" inputmask="0x40"> <bounds x="21.5" y="7.5" width="6" height="4" /> <color alpha="0.3" /></element>
<element ref="hlb" inputtag="KEY.0" inputmask="0x04"> <bounds x="30" y="7.5" width="6" height="4" /> <color alpha="0.3" /></element>
<element ref="hlb" inputtag="KEY.0" inputmask="0x40"> <bounds x="38.5" y="7.5" width="6" height="4" /> <color alpha="0.3" /></element>
<element ref="hlb" inputtag="KEY.1" inputmask="0x08"> <bounds x="47" y="7.5" width="6" height="4" /> <color alpha="0.3" /></element>
<element ref="hlb" inputtag="KEY.1" inputmask="0x80"> <bounds x="55.5" y="7.5" width="6" height="4" /> <color alpha="0.3" /></element>
<element ref="hlb" inputtag="KEY.0" inputmask="0x08"> <bounds x="64" y="7.5" width="6" height="4" /> <color alpha="0.3" /></element>
<element ref="hlb" inputtag="KEY.0" inputmask="0x80"> <bounds x="72.5" y="7.5" width="6" height="4" /> <color alpha="0.3" /></element>
<element ref="hlb" inputtag="KEY.0" inputmask="0x01"> <bounds x="13" y="2" width="6" height="4" /> <color alpha="0.3" /></element>
<element ref="hlb" inputtag="KEY.1" inputmask="0x01"> <bounds x="21.5" y="2" width="6" height="4" /> <color alpha="0.3" /></element>
<element ref="hlb" inputtag="KEY.2" inputmask="0x01"> <bounds x="30" y="2" width="6" height="4" /> <color alpha="0.3" /></element>
<element ref="hlb" inputtag="KEY.3" inputmask="0x01"> <bounds x="38.5" y="2" width="6" height="4" /> <color alpha="0.3" /></element>
<element ref="hlb" inputtag="KEY.0" inputmask="0x02"> <bounds x="47" y="2" width="6" height="4" /> <color alpha="0.3" /></element>
<element ref="hlb" inputtag="KEY.1" inputmask="0x02"> <bounds x="55.5" y="2" width="6" height="4" /> <color alpha="0.3" /></element>
<element ref="hlb" inputtag="KEY.2" inputmask="0x02"> <bounds x="64" y="2" width="6" height="4" /> <color alpha="0.3" /></element>
<element ref="hlb" inputtag="KEY.3" inputmask="0x02"> <bounds x="72.5" y="2" width="6" height="4" /> <color alpha="0.3" /></element>
<element ref="hlb" inputtag="KEY.0" inputmask="0x04"> <bounds x="13" y="7.5" width="6" height="4" /> <color alpha="0.3" /></element>
<element ref="hlb" inputtag="KEY.1" inputmask="0x04"> <bounds x="21.5" y="7.5" width="6" height="4" /> <color alpha="0.3" /></element>
<element ref="hlb" inputtag="KEY.2" inputmask="0x04"> <bounds x="30" y="7.5" width="6" height="4" /> <color alpha="0.3" /></element>
<element ref="hlb" inputtag="KEY.3" inputmask="0x04"> <bounds x="38.5" y="7.5" width="6" height="4" /> <color alpha="0.3" /></element>
<element ref="hlb" inputtag="KEY.0" inputmask="0x08"> <bounds x="47" y="7.5" width="6" height="4" /> <color alpha="0.3" /></element>
<element ref="hlb" inputtag="KEY.1" inputmask="0x08"> <bounds x="55.5" y="7.5" width="6" height="4" /> <color alpha="0.3" /></element>
<element ref="hlb" inputtag="KEY.2" inputmask="0x08"> <bounds x="64" y="7.5" width="6" height="4" /> <color alpha="0.3" /></element>
<element ref="hlb" inputtag="KEY.3" inputmask="0x08"> <bounds x="72.5" y="7.5" width="6" height="4" /> <color alpha="0.3" /></element>
</group>
@ -473,23 +503,59 @@ license:CC0
<element ref="black"><bounds x="17.5" y="2.5" width="81" height="81" /></element>
<!-- chessboard leds -->
<element name="led0" ref="led"><bounds x="15.7" y="77.25" width="0.8" height="1.5" /></element>
<element name="led1" ref="led"><bounds x="15.7" y="67.25" width="0.8" height="1.5" /></element>
<element name="led2" ref="led"><bounds x="15.7" y="57.25" width="0.8" height="1.5" /></element>
<element name="led3" ref="led"><bounds x="15.7" y="47.25" width="0.8" height="1.5" /></element>
<element name="led4" ref="led"><bounds x="15.7" y="37.25" width="0.8" height="1.5" /></element>
<element name="led5" ref="led"><bounds x="15.7" y="27.25" width="0.8" height="1.5" /></element>
<element name="led6" ref="led"><bounds x="15.7" y="17.25" width="0.8" height="1.5" /></element>
<element name="led7" ref="led"><bounds x="15.7" y="7.25" width="0.8" height="1.5" /></element>
<element ref="ledo"><bounds x="15.7" y="77.25" width="0.8" height="1.5" /></element>
<element ref="ledo"><bounds x="15.7" y="67.25" width="0.8" height="1.5" /></element>
<element ref="ledo"><bounds x="15.7" y="57.25" width="0.8" height="1.5" /></element>
<element ref="ledo"><bounds x="15.7" y="47.25" width="0.8" height="1.5" /></element>
<element ref="ledo"><bounds x="15.7" y="37.25" width="0.8" height="1.5" /></element>
<element ref="ledo"><bounds x="15.7" y="27.25" width="0.8" height="1.5" /></element>
<element ref="ledo"><bounds x="15.7" y="17.25" width="0.8" height="1.5" /></element>
<element ref="ledo"><bounds x="15.7" y="7.25" width="0.8" height="1.5" /></element>
<element name="led8" ref="led"><bounds x="22.25" y="84.5" width="1.5" height="0.8" /></element>
<element name="led9" ref="led"><bounds x="32.25" y="84.5" width="1.5" height="0.8" /></element>
<element name="led10" ref="led"><bounds x="42.25" y="84.5" width="1.5" height="0.8" /></element>
<element name="led11" ref="led"><bounds x="52.25" y="84.5" width="1.5" height="0.8" /></element>
<element name="led12" ref="led"><bounds x="62.25" y="84.5" width="1.5" height="0.8" /></element>
<element name="led13" ref="led"><bounds x="72.25" y="84.5" width="1.5" height="0.8" /></element>
<element name="led14" ref="led"><bounds x="82.25" y="84.5" width="1.5" height="0.8" /></element>
<element name="led15" ref="led"><bounds x="92.25" y="84.5" width="1.5" height="0.8" /></element>
<element name="0.2" ref="ledg" blend="add"><bounds x="15.7" y="77.25" width="0.8" height="1.5" /></element>
<element name="1.2" ref="ledg" blend="add"><bounds x="15.7" y="67.25" width="0.8" height="1.5" /></element>
<element name="2.2" ref="ledg" blend="add"><bounds x="15.7" y="57.25" width="0.8" height="1.5" /></element>
<element name="3.2" ref="ledg" blend="add"><bounds x="15.7" y="47.25" width="0.8" height="1.5" /></element>
<element name="4.2" ref="ledg" blend="add"><bounds x="15.7" y="37.25" width="0.8" height="1.5" /></element>
<element name="5.2" ref="ledg" blend="add"><bounds x="15.7" y="27.25" width="0.8" height="1.5" /></element>
<element name="6.2" ref="ledg" blend="add"><bounds x="15.7" y="17.25" width="0.8" height="1.5" /></element>
<element name="7.2" ref="ledg" blend="add"><bounds x="15.7" y="7.25" width="0.8" height="1.5" /></element>
<element name="0.3" ref="ledr" blend="add"><bounds x="15.7" y="77.25" width="0.8" height="1.5" /></element>
<element name="1.3" ref="ledr" blend="add"><bounds x="15.7" y="67.25" width="0.8" height="1.5" /></element>
<element name="2.3" ref="ledr" blend="add"><bounds x="15.7" y="57.25" width="0.8" height="1.5" /></element>
<element name="3.3" ref="ledr" blend="add"><bounds x="15.7" y="47.25" width="0.8" height="1.5" /></element>
<element name="4.3" ref="ledr" blend="add"><bounds x="15.7" y="37.25" width="0.8" height="1.5" /></element>
<element name="5.3" ref="ledr" blend="add"><bounds x="15.7" y="27.25" width="0.8" height="1.5" /></element>
<element name="6.3" ref="ledr" blend="add"><bounds x="15.7" y="17.25" width="0.8" height="1.5" /></element>
<element name="7.3" ref="ledr" blend="add"><bounds x="15.7" y="7.25" width="0.8" height="1.5" /></element>
<element ref="ledo"><bounds x="22.25" y="84.5" width="1.5" height="0.8" /></element>
<element ref="ledo"><bounds x="32.25" y="84.5" width="1.5" height="0.8" /></element>
<element ref="ledo"><bounds x="42.25" y="84.5" width="1.5" height="0.8" /></element>
<element ref="ledo"><bounds x="52.25" y="84.5" width="1.5" height="0.8" /></element>
<element ref="ledo"><bounds x="62.25" y="84.5" width="1.5" height="0.8" /></element>
<element ref="ledo"><bounds x="72.25" y="84.5" width="1.5" height="0.8" /></element>
<element ref="ledo"><bounds x="82.25" y="84.5" width="1.5" height="0.8" /></element>
<element ref="ledo"><bounds x="92.25" y="84.5" width="1.5" height="0.8" /></element>
<element name="0.4" ref="ledg" blend="add"><bounds x="22.25" y="84.5" width="1.5" height="0.8" /></element>
<element name="1.4" ref="ledg" blend="add"><bounds x="32.25" y="84.5" width="1.5" height="0.8" /></element>
<element name="2.4" ref="ledg" blend="add"><bounds x="42.25" y="84.5" width="1.5" height="0.8" /></element>
<element name="3.4" ref="ledg" blend="add"><bounds x="52.25" y="84.5" width="1.5" height="0.8" /></element>
<element name="4.4" ref="ledg" blend="add"><bounds x="62.25" y="84.5" width="1.5" height="0.8" /></element>
<element name="5.4" ref="ledg" blend="add"><bounds x="72.25" y="84.5" width="1.5" height="0.8" /></element>
<element name="6.4" ref="ledg" blend="add"><bounds x="82.25" y="84.5" width="1.5" height="0.8" /></element>
<element name="7.4" ref="ledg" blend="add"><bounds x="92.25" y="84.5" width="1.5" height="0.8" /></element>
<element name="0.5" ref="ledr" blend="add"><bounds x="22.25" y="84.5" width="1.5" height="0.8" /></element>
<element name="1.5" ref="ledr" blend="add"><bounds x="32.25" y="84.5" width="1.5" height="0.8" /></element>
<element name="2.5" ref="ledr" blend="add"><bounds x="42.25" y="84.5" width="1.5" height="0.8" /></element>
<element name="3.5" ref="ledr" blend="add"><bounds x="52.25" y="84.5" width="1.5" height="0.8" /></element>
<element name="4.5" ref="ledr" blend="add"><bounds x="62.25" y="84.5" width="1.5" height="0.8" /></element>
<element name="5.5" ref="ledr" blend="add"><bounds x="72.25" y="84.5" width="1.5" height="0.8" /></element>
<element name="6.5" ref="ledr" blend="add"><bounds x="82.25" y="84.5" width="1.5" height="0.8" /></element>
<element name="7.5" ref="ledr" blend="add"><bounds x="92.25" y="84.5" width="1.5" height="0.8" /></element>
<!-- LCD panel -->
<group ref="panel"><bounds x="18" y="89" width="79" height="13" /></group>

View File

@ -22792,15 +22792,9 @@ mondial2 // 1987 Mephisto Mondial II
mondl68k // 1988 Mephisto Mondial 68000XL
@source:mephisto_montec.cpp
smondial // 1986 Mephisto Super Mondial (Ver A)
smondialab // 1986 Mephisto Super Mondial (Ver AB)
smondialb // 1986 Mephisto Super Mondial (Ver B)
montec // 1987 Mephisto Monte Carlo
monteca // 1987 Mephisto Monte Carlo
smondial2 // 1989 Mephisto Super Mondial II
megaiv // 1989 Mephisto Mega IV
megaiva // 1989 Mephisto Mega IV
monteciv // 1990 Mephisto Monte Carlo IV LE
montec4le // 1990 Mephisto Monte Carlo IV LE
@source:mephisto_polgar.cpp
polgar // 1990 Mephisto Polgar
@ -22812,6 +22806,14 @@ polgar101 // 1990 Mephisto Polgar 10MHz
mrisc // 1992 Mephisto RISC 1MB
mrisc2 // 1994 Mephisto RISC II
@source:mephisto_smondial.cpp
mega4 // 1989 Mephisto Mega IV
mega4a // 1989 Mephisto Mega IV
smondial // 1986 Mephisto Super Mondial (Ver A)
smondialab // 1986 Mephisto Super Mondial (Ver AB)
smondialb // 1986 Mephisto Super Mondial (Ver B)
smondial2 // 1989 Mephisto Super Mondial II
@source:mephistp.cpp
mephistp //
mephistp1 //

View File

@ -592,6 +592,7 @@ mephisto_mondial68k.cpp
mephisto_montec.cpp
mephisto_polgar.cpp
mephisto_risc.cpp
mephisto_smondial.cpp
meritum.cpp
mes.cpp
mfabfz.cpp