New working systems

-------------------
Triomphe [hap, Berger, Sean Riddle]
This commit is contained in:
hap 2024-01-23 20:56:28 +01:00
parent 654dbd8285
commit 9ca1b442a0
13 changed files with 643 additions and 76 deletions

View File

@ -470,8 +470,7 @@ void m6800_cpu_device::enter_interrupt(uint16_t irq_vector)
SEI;
PCD = RM16(irq_vector);
if (cycles_to_eat > 0)
increment_counter(cycles_to_eat);
increment_counter(cycles_to_eat);
}
/* check the IRQ lines for pending interrupts */
@ -483,22 +482,19 @@ void m6800_cpu_device::check_irq_lines()
m_nmi_pending = false;
enter_interrupt(0xfffc);
}
else
else if (m_irq_state[M6800_IRQ_LINE] != CLEAR_LINE)
{
if (m_irq_state[M6800_IRQ_LINE] != CLEAR_LINE)
{
/* standard IRQ */
m_wai_state &= ~M6800_SLP;
/* standard IRQ */
m_wai_state &= ~M6800_SLP;
if (!(CC & 0x10))
{
standard_irq_callback(M6800_IRQ_LINE, m_pc.w.l);
enter_interrupt(0xfff8);
}
if (!(CC & 0x10))
{
standard_irq_callback(M6800_IRQ_LINE, m_pc.w.l);
enter_interrupt(0xfff8);
}
else
check_irq2();
}
else
check_irq2();
}
void m6800_cpu_device::increment_counter(int amount)

View File

@ -2010,8 +2010,7 @@ void hd6301y_cpu_device::p6_csr_w(uint8_t data)
LOGPORT("Port 6 Control/Status Register: %02x\n", data);
m_p6csr = (m_p6csr & 0x80) | (data & 0x7f);
if (!(m_cc & 0x10) && data & 0x40)
check_irq2();
check_irq2();
}

View File

@ -5,9 +5,9 @@
Chess King Master (yes, it's plainly named "Master")
Chess King was a UK business formed by Intelligent Software, so logically,
all the programs were by them. According to the manual, the chess engine is
Cyrus (by Richard Lang).
Chess King was a UK business formed by Intelligent Software (aka Intelligent Chess
Software), so logically, all the programs were by them. According to the manual,
the chess engine is Cyrus (by Richard Lang).
To start a new game, press CHANGE POSITION, NEW GAME, and CHANGE POSITION again.
@ -191,24 +191,24 @@ void master_state::main_trampoline(address_map &map)
static INPUT_PORTS_START( master )
PORT_START("IN.0")
PORT_BIT(0x01, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_CODE(KEYCODE_1) PORT_NAME("Change Position")
PORT_BIT(0x02, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_CODE(KEYCODE_2) PORT_NAME("Clear Board")
PORT_BIT(0x04, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_CODE(KEYCODE_3) PORT_NAME("New Game")
PORT_BIT(0x08, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_CODE(KEYCODE_4) PORT_NAME("Take Back")
PORT_BIT(0x10, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_CODE(KEYCODE_5) PORT_NAME("King")
PORT_BIT(0x20, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_CODE(KEYCODE_6) PORT_NAME("Queen")
PORT_BIT(0x40, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_CODE(KEYCODE_7) PORT_NAME("Rook")
PORT_BIT(0x01, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_CODE(KEYCODE_C) PORT_NAME("Change Position")
PORT_BIT(0x02, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_CODE(KEYCODE_R) PORT_NAME("Clear Board")
PORT_BIT(0x04, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_CODE(KEYCODE_N) PORT_NAME("New Game")
PORT_BIT(0x08, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_CODE(KEYCODE_T) PORT_NAME("Take Back")
PORT_BIT(0x10, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_CODE(KEYCODE_6) PORT_CODE(KEYCODE_6_PAD) PORT_NAME("King")
PORT_BIT(0x20, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_CODE(KEYCODE_5) PORT_CODE(KEYCODE_5_PAD) PORT_NAME("Queen")
PORT_BIT(0x40, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_CODE(KEYCODE_4) PORT_CODE(KEYCODE_4_PAD) PORT_NAME("Rook")
PORT_BIT(0x80, IP_ACTIVE_HIGH, IPT_UNUSED)
PORT_START("IN.1")
PORT_BIT(0x01, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_CODE(KEYCODE_8) PORT_NAME("Bishop")
PORT_BIT(0x02, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_CODE(KEYCODE_9) PORT_NAME("Knight")
PORT_BIT(0x04, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_CODE(KEYCODE_0) PORT_NAME("Pawn")
PORT_BIT(0x08, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_CODE(KEYCODE_Q) PORT_NAME("White")
PORT_BIT(0x10, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_CODE(KEYCODE_W) PORT_NAME("Black")
PORT_BIT(0x20, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_CODE(KEYCODE_E) PORT_NAME("Move")
PORT_BIT(0x40, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_CODE(KEYCODE_R) PORT_NAME("Level")
PORT_BIT(0x80, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_CODE(KEYCODE_T) PORT_NAME("Sound")
PORT_BIT(0x01, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_CODE(KEYCODE_3) PORT_CODE(KEYCODE_3_PAD) PORT_NAME("Bishop")
PORT_BIT(0x02, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_CODE(KEYCODE_2) PORT_CODE(KEYCODE_2_PAD) PORT_NAME("Knight")
PORT_BIT(0x04, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_CODE(KEYCODE_1) PORT_CODE(KEYCODE_1_PAD) PORT_NAME("Pawn")
PORT_BIT(0x08, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_CODE(KEYCODE_W) PORT_NAME("White")
PORT_BIT(0x10, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_CODE(KEYCODE_B) PORT_NAME("Black")
PORT_BIT(0x20, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_CODE(KEYCODE_M) PORT_NAME("Move")
PORT_BIT(0x40, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_CODE(KEYCODE_L) PORT_NAME("Level")
PORT_BIT(0x80, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_CODE(KEYCODE_S) PORT_NAME("Sound")
INPUT_PORTS_END
@ -262,4 +262,4 @@ ROM_END
*******************************************************************************/
// YEAR NAME PARENT COMPAT MACHINE INPUT CLASS INIT COMPANY, FULLNAME, FLAGS
SYST( 1984, ckmaster, 0, 0, master, master, master_state, init_master, "Chess King / Intelligent Software", "Master (Chess King)", MACHINE_SUPPORTS_SAVE | MACHINE_CLICKABLE_ARTWORK )
SYST( 1983, ckmaster, 0, 0, master, master, master_state, init_master, "Chess King / Intelligent Software", "Master (Chess King)", MACHINE_SUPPORTS_SAVE | MACHINE_CLICKABLE_ARTWORK )

View File

@ -0,0 +1,186 @@
// license:BSD-3-Clause
// copyright-holders:hap
// thanks-to:Berger
/*******************************************************************************
Chess King Triomphe
For some reason, the programmer decided to (ab)use the HD6301 undefined opcode
TRAP interrupt for the beeper routine. Very strange.
Hardware notes:
- PCB label: TRIUMPHE CHESS KING
- Hitachi HD6301V1P, 4MHz XTAL
- 8*8 chessboard buttons, 32 LEDs (not counting power-on LED, piezo
*******************************************************************************/
#include "emu.h"
#include "cpu/m6800/m6801.h"
#include "machine/sensorboard.h"
#include "sound/dac.h"
#include "video/pwm.h"
#include "speaker.h"
// internal artwork
#include "cking_triomphe.lh"
namespace {
class triomphe_state : public driver_device
{
public:
triomphe_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_display(*this, "display"),
m_dac(*this, "dac"),
m_inputs(*this, "IN.%u", 0)
{ }
void triomphe(machine_config &config);
protected:
virtual void machine_start() override;
private:
// devices/pointers
required_device<hd6301v1_cpu_device> m_maincpu;
required_device<sensorboard_device> m_board;
required_device<pwm_display_device> m_display;
required_device<dac_bit_interface> m_dac;
required_ioport_array<2> m_inputs;
u16 m_inp_mux = 0;
u8 input_r();
void board_w(u8 data);
void control_w(u8 data);
};
void triomphe_state::machine_start()
{
save_item(NAME(m_inp_mux));
}
/*******************************************************************************
I/O
*******************************************************************************/
u8 triomphe_state::input_r()
{
// P10-P17: multiplexed inputs
u8 data = 0;
// read buttons
for (int i = 0; i < 2; i++)
if (BIT(m_inp_mux, i + 8))
data |= m_inputs[i]->read();
// read chessboard
for (int i = 0; i < 8; i++)
if (BIT(m_inp_mux, i))
data |= m_board->read_file(i);
return ~data;
}
void triomphe_state::board_w(u8 data)
{
// P30-P37: input mux (chessboard), led data
m_inp_mux = (m_inp_mux & 0x300) | (data ^ 0xff);
m_display->write_mx(~data);
}
void triomphe_state::control_w(u8 data)
{
// P40,P41: input mux (buttons)
m_inp_mux = (m_inp_mux & 0xff) | (~data << 8 & 0x300);
// P44,P45: led select
m_display->write_my(~data >> 4 & 3);
// P47: speaker out
m_dac->write(BIT(~data, 7));
}
/*******************************************************************************
Input Ports
*******************************************************************************/
static INPUT_PORTS_START( triomphe )
PORT_START("IN.0")
PORT_BIT(0x01, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_CODE(KEYCODE_1) PORT_CODE(KEYCODE_1_PAD) PORT_NAME("Pawn")
PORT_BIT(0x02, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_CODE(KEYCODE_2) PORT_CODE(KEYCODE_2_PAD) PORT_NAME("Knight")
PORT_BIT(0x04, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_CODE(KEYCODE_3) PORT_CODE(KEYCODE_3_PAD) PORT_NAME("Bishop")
PORT_BIT(0x08, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_CODE(KEYCODE_4) PORT_CODE(KEYCODE_4_PAD) PORT_NAME("Rook")
PORT_BIT(0x10, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_CODE(KEYCODE_5) PORT_CODE(KEYCODE_5_PAD) PORT_NAME("Queen")
PORT_BIT(0x20, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_CODE(KEYCODE_6) PORT_CODE(KEYCODE_6_PAD) PORT_NAME("King")
PORT_BIT(0xc0, IP_ACTIVE_HIGH, IPT_UNUSED)
PORT_START("IN.1")
PORT_BIT(0x01, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_CODE(KEYCODE_S) PORT_NAME("Sound")
PORT_BIT(0x02, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_CODE(KEYCODE_M) PORT_NAME("Move")
PORT_BIT(0x04, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_CODE(KEYCODE_T) PORT_NAME("Take Back")
PORT_BIT(0x08, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_CODE(KEYCODE_L) PORT_NAME("Level")
PORT_BIT(0x10, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_CODE(KEYCODE_N) PORT_NAME("New Game")
PORT_BIT(0xe0, IP_ACTIVE_HIGH, IPT_UNUSED)
INPUT_PORTS_END
/*******************************************************************************
Machine Configs
*******************************************************************************/
void triomphe_state::triomphe(machine_config &config)
{
// basic machine hardware
HD6301V1(config, m_maincpu, 4_MHz_XTAL);
m_maincpu->in_p1_cb().set(FUNC(triomphe_state::input_r));
m_maincpu->out_p3_cb().set(FUNC(triomphe_state::board_w));
m_maincpu->in_p4_cb().set_constant(0); // freq sel
m_maincpu->out_p4_cb().set(FUNC(triomphe_state::control_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(150));
// video hardware
PWM_DISPLAY(config, m_display).set_size(2, 8);
config.set_default_layout(layout_cking_triomphe);
// sound hardware
SPEAKER(config, "speaker").front_center();
DAC_1BIT(config, m_dac).add_route(ALL_OUTPUTS, "speaker", 0.25);
}
/*******************************************************************************
ROM Definitions
*******************************************************************************/
ROM_START( triomphe )
ROM_REGION( 0x1000, "maincpu", 0 )
ROM_LOAD("chessking_triomphe_m1_hd6301v1e53p", 0x0000, 0x1000, CRC(01f30f08) SHA1(5d8949b8e0a5d15024bb2c13ee6f3eb2ed02f94b) )
ROM_END
} // anonymous namespace
/*******************************************************************************
Drivers
*******************************************************************************/
// YEAR NAME PARENT COMPAT MACHINE INPUT CLASS INIT COMPANY, FULLNAME, FLAGS
SYST( 1985, triomphe, 0, 0, triomphe, triomphe, triomphe_state, empty_init, "Chess King / Intelligent Software", "Triomphe", MACHINE_SUPPORTS_SAVE | MACHINE_CLICKABLE_ARTWORK )

View File

@ -8,8 +8,8 @@ Yeno 301 XL
NOTE: It triggers an IRQ when the power switch is changed from ON to SAVE.
If this is not done, NVRAM won't save properly.
For some reason, the programmer decided to (ab)use the HD6301 undefined opcode
TRAP interrupt for the beeper routine. Very strange.
It's by the same programmer as Chess King Triomphe / Counter Gambit, also using
the TRAP interrupt for the beeper routine.
Hardware notes:
- PCB label: WSE 8108A
@ -108,7 +108,7 @@ INPUT_CHANGED_MEMBER(y301xl_state::power_off)
{
// IRQ1 when power switch is set to SAVE, followed by STBY after a short delay
m_maincpu->set_input_line(HD6301_IRQ_LINE, ASSERT_LINE);
m_standbytimer->adjust(attotime::from_msec(50), M6801_STBY_LINE);
m_standbytimer->adjust(attotime::from_msec(50));
}
}

View File

@ -36,7 +36,7 @@ hardware overview:
*In West Germany, some distributors released it with overclocked CPUs,
advertised as 3.2, 3.6, or 4MHz. Unmodified EAS PCB photos show only a 3MHz XTAL.
Though model EWC(improved Budapest) had a 3.57MHz XTAL and EAS-C(Glasgow) had
a 4MHz XTAL.
a 4MHz XTAL. Model E4.0 is also assumed to be 4MHz.
A condensator/battery keeps RAM contents alive for a while when powered off.

View File

@ -11,31 +11,24 @@ license:CC0-1.0
<element name="led" defstate="0">
<disk state="1"><color red="1.0" green="0.1" blue="0.15" /></disk>
<disk state="0"><color red="0.1" green="0.01" blue="0.015" /></disk>
<disk state="0"><color red="0.17" green="0.015" blue="0.02" /></disk>
</element>
<element name="ledg" defstate="0">
<disk state="1"><color red="0.15" green="1.0" blue="0.1" /></disk>
<disk state="0"><color red="0.015" green="0.1" blue="0.01" /></disk>
<disk state="0"><color red="0.02" green="0.17" blue="0.015" /></disk>
</element>
<element name="hlb" defstate="0">
<text string=" ">
<bounds x="0.0" y="0.0" width="1.0" height="1.0" />
<color red="0.0" green="0.0" blue="0.0" />
</text>
<rect 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" />
</rect>
<rect state="1"><color red="0" green="0" blue="0" /></rect>
</element>
<element name="text_l1"><text string="CHANGE POSITION"><color red="0.15" green="0.15" blue="0.15" /></text></element>
<element name="text_l2"><text string="CLEAR BOARD"><color red="0.15" green="0.15" blue="0.15" /></text></element>
<element name="text_l3"><text string="NEW GAME"><color red="0.15" green="0.15" blue="0.15" /></text></element>
<element name="text_l4"><text string="TAKE BACK"><color red="0.15" green="0.15" blue="0.15" /></text></element>
<element name="text_l13"><text string="MOVE"><color red="0.15" green="0.15" blue="0.15" /></text></element>
<element name="text_l14"><text string="LEVEL"><color red="0.15" green="0.15" blue="0.15" /></text></element>
<element name="text_l15"><text string="SOUND"><color red="0.15" green="0.15" blue="0.15" /></text></element>
<element name="text_l1"><text string="CHANGE POSITION"><color red="0.12" green="0.12" blue="0.12" /></text></element>
<element name="text_l2"><text string="CLEAR BOARD"><color red="0.12" green="0.12" blue="0.12" /></text></element>
<element name="text_l3"><text string="NEW GAME"><color red="0.12" green="0.12" blue="0.12" /></text></element>
<element name="text_l4"><text string="TAKE BACK"><color red="0.12" green="0.12" blue="0.12" /></text></element>
<element name="text_l13"><text string="MOVE"><color red="0.12" green="0.12" blue="0.12" /></text></element>
<element name="text_l14"><text string="LEVEL"><color red="0.12" green="0.12" blue="0.12" /></text></element>
<element name="text_l15"><text string="SOUND"><color red="0.12" green="0.12" blue="0.12" /></text></element>
<element name="text_p1"><rect><color red="1" green="1" blue="1" /></rect><image file="chess/wk.svg" /><rect><color red="1" green="1" blue="1" alpha="0.13" /></rect></element>
<element name="text_p2"><rect><color red="1" green="1" blue="1" /></rect><image file="chess/wq.svg" /><rect><color red="1" green="1" blue="1" alpha="0.13" /></rect></element>
@ -389,21 +382,21 @@ license:CC0-1.0
<element ref="white"><bounds x="96.5" y="58" width="2.0" height="2.0" /></element>
<element ref="black"><bounds x="96.25" y="63.083" width="2.5" height="2.5" /></element>
<element ref="hlb" inputtag="IN.0" inputmask="0x01"><bounds x="91" y="3.166" width="13" height="5" /><color alpha="0.4" /></element>
<element ref="hlb" inputtag="IN.0" inputmask="0x02"><bounds x="91" y="8.500" width="13" height="5" /><color alpha="0.4" /></element>
<element ref="hlb" inputtag="IN.0" inputmask="0x04"><bounds x="91" y="13.833" width="13" height="5" /><color alpha="0.4" /></element>
<element ref="hlb" inputtag="IN.0" inputmask="0x08"><bounds x="91" y="19.166" width="13" height="5" /><color alpha="0.4" /></element>
<element ref="hlb" inputtag="IN.0" inputmask="0x10"><bounds x="91" y="24.500" width="13" height="5" /><color alpha="0.4" /></element>
<element ref="hlb" inputtag="IN.0" inputmask="0x20"><bounds x="91" y="29.833" width="13" height="5" /><color alpha="0.4" /></element>
<element ref="hlb" inputtag="IN.0" inputmask="0x40"><bounds x="91" y="35.166" width="13" height="5" /><color alpha="0.4" /></element>
<element ref="hlb" inputtag="IN.1" inputmask="0x01"><bounds x="91" y="40.500" width="13" height="5" /><color alpha="0.4" /></element>
<element ref="hlb" inputtag="IN.1" inputmask="0x02"><bounds x="91" y="45.833" width="13" height="5" /><color alpha="0.4" /></element>
<element ref="hlb" inputtag="IN.1" inputmask="0x04"><bounds x="91" y="51.166" width="13" height="5" /><color alpha="0.4" /></element>
<element ref="hlb" inputtag="IN.1" inputmask="0x08"><bounds x="91" y="56.500" width="13" height="5" /><color alpha="0.4" /></element>
<element ref="hlb" inputtag="IN.1" inputmask="0x10"><bounds x="91" y="61.833" width="13" height="5" /><color alpha="0.4" /></element>
<element ref="hlb" inputtag="IN.1" inputmask="0x20"><bounds x="91" y="67.166" width="13" height="5" /><color alpha="0.4" /></element>
<element ref="hlb" inputtag="IN.1" inputmask="0x40"><bounds x="91" y="72.500" width="13" height="5" /><color alpha="0.4" /></element>
<element ref="hlb" inputtag="IN.1" inputmask="0x80"><bounds x="91" y="77.833" width="13" height="5" /><color alpha="0.4" /></element>
<element ref="hlb" inputtag="IN.0" inputmask="0x01"><bounds x="91" y="3.166" width="13" height="5" /><color alpha="0.12" /></element>
<element ref="hlb" inputtag="IN.0" inputmask="0x02"><bounds x="91" y="8.500" width="13" height="5" /><color alpha="0.12" /></element>
<element ref="hlb" inputtag="IN.0" inputmask="0x04"><bounds x="91" y="13.833" width="13" height="5" /><color alpha="0.12" /></element>
<element ref="hlb" inputtag="IN.0" inputmask="0x08"><bounds x="91" y="19.166" width="13" height="5" /><color alpha="0.12" /></element>
<element ref="hlb" inputtag="IN.0" inputmask="0x10"><bounds x="91" y="24.500" width="13" height="5" /><color alpha="0.12" /></element>
<element ref="hlb" inputtag="IN.0" inputmask="0x20"><bounds x="91" y="29.833" width="13" height="5" /><color alpha="0.12" /></element>
<element ref="hlb" inputtag="IN.0" inputmask="0x40"><bounds x="91" y="35.166" width="13" height="5" /><color alpha="0.12" /></element>
<element ref="hlb" inputtag="IN.1" inputmask="0x01"><bounds x="91" y="40.500" width="13" height="5" /><color alpha="0.12" /></element>
<element ref="hlb" inputtag="IN.1" inputmask="0x02"><bounds x="91" y="45.833" width="13" height="5" /><color alpha="0.12" /></element>
<element ref="hlb" inputtag="IN.1" inputmask="0x04"><bounds x="91" y="51.166" width="13" height="5" /><color alpha="0.12" /></element>
<element ref="hlb" inputtag="IN.1" inputmask="0x08"><bounds x="91" y="56.500" width="13" height="5" /><color alpha="0.12" /></element>
<element ref="hlb" inputtag="IN.1" inputmask="0x10"><bounds x="91" y="61.833" width="13" height="5" /><color alpha="0.12" /></element>
<element ref="hlb" inputtag="IN.1" inputmask="0x20"><bounds x="91" y="67.166" width="13" height="5" /><color alpha="0.12" /></element>
<element ref="hlb" inputtag="IN.1" inputmask="0x40"><bounds x="91" y="72.500" width="13" height="5" /><color alpha="0.12" /></element>
<element ref="hlb" inputtag="IN.1" inputmask="0x80"><bounds x="91" y="77.833" width="13" height="5" /><color alpha="0.12" /></element>
</view>
</mamelayout>

View File

@ -0,0 +1,390 @@
<?xml version="1.0"?>
<!--
license:CC0-1.0
-->
<mamelayout version="2">
<!-- define elements -->
<element name="black"><rect><color red="0.15" green="0.15" blue="0.15" /></rect></element>
<element name="white"><rect><color red="0.81" green="0.8" blue="0.79" /></rect></element>
<element name="led" defstate="0">
<disk state="1"><color red="1.0" green="0.1" blue="0.15" /></disk>
<disk state="0"><color red="0.17" green="0.015" blue="0.02" /></disk>
</element>
<element name="ledg">
<disk><color red="0.15" green="1.0" blue="0.1" /></disk>
</element>
<element name="hlb" defstate="0">
<rect state="1"><color red="0" green="0" blue="0" /></rect>
</element>
<element name="text_l1"><text string="NEW GAME"><color red="0.12" green="0.12" blue="0.12" /></text></element>
<element name="text_l2"><text string="LEVEL"><color red="0.12" green="0.12" blue="0.12" /></text></element>
<element name="text_l3"><text string="TAKE BACK"><color red="0.12" green="0.12" blue="0.12" /></text></element>
<element name="text_l4"><text string="MOVE"><color red="0.12" green="0.12" blue="0.12" /></text></element>
<element name="text_l5"><text string="SOUND"><color red="0.12" green="0.12" blue="0.12" /></text></element>
<element name="text_p1"><rect><color red="1" green="1" blue="1" /></rect><image file="chess/wk.svg" /><rect><color red="1" green="1" blue="1" alpha="0.13" /></rect></element>
<element name="text_p2"><rect><color red="1" green="1" blue="1" /></rect><image file="chess/wq.svg" /><rect><color red="1" green="1" blue="1" alpha="0.13" /></rect></element>
<element name="text_p3"><rect><color red="1" green="1" blue="1" /></rect><image file="chess/wr.svg" /><rect><color red="1" green="1" blue="1" alpha="0.13" /></rect></element>
<element name="text_p4"><rect><color red="1" green="1" blue="1" /></rect><image file="chess/wb.svg" /><rect><color red="1" green="1" blue="1" alpha="0.13" /></rect></element>
<element name="text_p5"><rect><color red="1" green="1" blue="1" /></rect><image file="chess/wn.svg" /><rect><color red="1" green="1" blue="1" alpha="0.13" /></rect></element>
<element name="text_p6"><rect><color red="1" green="1" blue="1" /></rect><image file="chess/wp.svg" /><rect><color red="1" green="1" blue="1" alpha="0.13" /></rect></element>
<!-- sb board -->
<element name="cblack"><rect><color red="0.41" green="0.4" blue="0.39" /></rect></element>
<element name="cwhite"><rect><color red="0.81" green="0.8" blue="0.79" /></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>
<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>
<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: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>
<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"><text string="RESET"><color red="0.01" green="0.01" blue="0.01" /></text></element>
<element name="text_uib3"><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"><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"><text string=" &lt;&lt;"><color red="0.01" green="0.01" blue="0.01" /></text></element>
<element name="text_uiu2b"><text string=" &lt; "><color red="0.01" green="0.01" blue="0.01" /></text></element>
<element name="text_uiu2c"><text string=" &gt;"><color red="0.01" green="0.01" blue="0.01" /></text></element>
<element name="text_uiu2d"><text string=" &gt;&gt;"><color red="0.01" green="0.01" blue="0.01" /></text></element>
<element name="text_uiu3b"><text string="/"><color red="0.81" green="0.8" blue="0.79" /></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_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: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>
<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: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>
<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: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: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>
<element ref="text_uiu3b"><bounds x="4" y="75" width="2" height="2" /></element>
</group>
<!-- build screen -->
<view name="Internal Layout">
<bounds left="-12.5" right="106.5" top="-1.5" bottom="87.5" />
<group ref="sb_board"><bounds x="4" y="3" width="80" height="80" /></group>
<group ref="sb_ui"><bounds x="-11" y="3" width="10" height="80" /></group>
<!-- chessboard leds -->
<element name="1.7" ref="led"><bounds x="1" y="7.25" width="1.5" height="1.5" /></element>
<element name="1.6" ref="led"><bounds x="1" y="17.25" width="1.5" height="1.5" /></element>
<element name="1.5" ref="led"><bounds x="1" y="27.25" width="1.5" height="1.5" /></element>
<element name="1.4" ref="led"><bounds x="1" y="37.25" width="1.5" height="1.5" /></element>
<element name="1.3" ref="led"><bounds x="1" y="47.25" width="1.5" height="1.5" /></element>
<element name="1.2" ref="led"><bounds x="1" y="57.25" width="1.5" height="1.5" /></element>
<element name="1.1" ref="led"><bounds x="1" y="67.25" width="1.5" height="1.5" /></element>
<element name="1.0" ref="led"><bounds x="1" y="77.25" width="1.5" height="1.5" /></element>
<element name="1.7" ref="led"><bounds x="85.5" y="7.25" width="1.5" height="1.5" /></element>
<element name="1.6" ref="led"><bounds x="85.5" y="17.25" width="1.5" height="1.5" /></element>
<element name="1.5" ref="led"><bounds x="85.5" y="27.25" width="1.5" height="1.5" /></element>
<element name="1.4" ref="led"><bounds x="85.5" y="37.25" width="1.5" height="1.5" /></element>
<element name="1.3" ref="led"><bounds x="85.5" y="47.25" width="1.5" height="1.5" /></element>
<element name="1.2" ref="led"><bounds x="85.5" y="57.25" width="1.5" height="1.5" /></element>
<element name="1.1" ref="led"><bounds x="85.5" y="67.25" width="1.5" height="1.5" /></element>
<element name="1.0" ref="led"><bounds x="85.5" y="77.25" width="1.5" height="1.5" /></element>
<element name="0.0" ref="led"><bounds x="8.25" y="0" width="1.5" height="1.5" /></element>
<element name="0.1" ref="led"><bounds x="18.25" y="0" width="1.5" height="1.5" /></element>
<element name="0.2" ref="led"><bounds x="28.25" y="0" width="1.5" height="1.5" /></element>
<element name="0.3" ref="led"><bounds x="38.25" y="0" width="1.5" height="1.5" /></element>
<element name="0.4" ref="led"><bounds x="48.25" y="0" width="1.5" height="1.5" /></element>
<element name="0.5" ref="led"><bounds x="58.25" y="0" width="1.5" height="1.5" /></element>
<element name="0.6" ref="led"><bounds x="68.25" y="0" width="1.5" height="1.5" /></element>
<element name="0.7" ref="led"><bounds x="78.25" y="0" width="1.5" height="1.5" /></element>
<element name="0.0" ref="led"><bounds x="8.25" y="84.5" width="1.5" height="1.5" /></element>
<element name="0.1" ref="led"><bounds x="18.25" y="84.5" width="1.5" height="1.5" /></element>
<element name="0.2" ref="led"><bounds x="28.25" y="84.5" width="1.5" height="1.5" /></element>
<element name="0.3" ref="led"><bounds x="38.25" y="84.5" width="1.5" height="1.5" /></element>
<element name="0.4" ref="led"><bounds x="48.25" y="84.5" width="1.5" height="1.5" /></element>
<element name="0.5" ref="led"><bounds x="58.25" y="84.5" width="1.5" height="1.5" /></element>
<element name="0.6" ref="led"><bounds x="68.25" y="84.5" width="1.5" height="1.5" /></element>
<element name="0.7" ref="led"><bounds x="78.25" y="84.5" width="1.5" height="1.5" /></element>
<element ref="ledg"><bounds x="85.5" y="3.5" width="1.5" height="1.5" /></element> <!-- power led -->
<!-- right side -->
<element ref="white"><bounds x="88.5" y="-1.5" width="18" height="89" /></element>
<element ref="black"><bounds x="90.666" y="2.833" width="13.666" height="80.333" /></element>
<element ref="white"><bounds x="91" y="3.166" width="13" height="5" /></element>
<element ref="white"><bounds x="91" y="8.500" width="13" height="5" /></element>
<element ref="white"><bounds x="91" y="13.833" width="13" height="5" /></element>
<element ref="white"><bounds x="91" y="19.166" width="13" height="5" /></element>
<element ref="white"><bounds x="91" y="24.500" width="13" height="5" /></element>
<element ref="white"><bounds x="91" y="29.833" width="13" height="5" /></element>
<element ref="white"><bounds x="91" y="35.166" width="13" height="5" /></element>
<element ref="white"><bounds x="91" y="40.500" width="13" height="5" /></element>
<element ref="white"><bounds x="91" y="45.833" width="13" height="5" /></element>
<element ref="white"><bounds x="91" y="51.166" width="13" height="5" /></element>
<element ref="white"><bounds x="91" y="56.500" width="13" height="5" /></element>
<element ref="white"><bounds x="91" y="61.833" width="13" height="5" /></element>
<element ref="white"><bounds x="91" y="67.166" width="13" height="5" /></element>
<element ref="white"><bounds x="91" y="72.500" width="13" height="5" /></element>
<element ref="white"><bounds x="91" y="77.833" width="13" height="5" /></element>
<repeat count="5">
<param name="y" start="52.916" increment="5.333333" />
<param name="i" start="1" increment="1" />
<element ref="text_l~i~"><bounds x="91.4" y="~y~" width="12.5" height="1.5" /></element>
</repeat>
<repeat count="6">
<param name="y" start="8.7" increment="5.333333" />
<param name="i" start="1" increment="1" />
<element ref="text_p~i~" blend="multiply"><bounds x="95.25" y="~y~" width="4.5" height="4.5" /></element>
</repeat>
<element ref="hlb" inputtag="IN.0" inputmask="0x20"><bounds x="91" y="8.500" width="13" height="5" /><color alpha="0.12" /></element>
<element ref="hlb" inputtag="IN.0" inputmask="0x10"><bounds x="91" y="13.833" width="13" height="5" /><color alpha="0.12" /></element>
<element ref="hlb" inputtag="IN.0" inputmask="0x08"><bounds x="91" y="19.166" width="13" height="5" /><color alpha="0.12" /></element>
<element ref="hlb" inputtag="IN.0" inputmask="0x04"><bounds x="91" y="24.500" width="13" height="5" /><color alpha="0.12" /></element>
<element ref="hlb" inputtag="IN.0" inputmask="0x02"><bounds x="91" y="29.833" width="13" height="5" /><color alpha="0.12" /></element>
<element ref="hlb" inputtag="IN.0" inputmask="0x01"><bounds x="91" y="35.166" width="13" height="5" /><color alpha="0.12" /></element>
<element ref="hlb" inputtag="IN.1" inputmask="0x10"><bounds x="91" y="51.166" width="13" height="5" /><color alpha="0.12" /></element>
<element ref="hlb" inputtag="IN.1" inputmask="0x08"><bounds x="91" y="56.500" width="13" height="5" /><color alpha="0.12" /></element>
<element ref="hlb" inputtag="IN.1" inputmask="0x04"><bounds x="91" y="61.833" width="13" height="5" /><color alpha="0.12" /></element>
<element ref="hlb" inputtag="IN.1" inputmask="0x02"><bounds x="91" y="67.166" width="13" height="5" /><color alpha="0.12" /></element>
<element ref="hlb" inputtag="IN.1" inputmask="0x01"><bounds x="91" y="72.500" width="13" height="5" /><color alpha="0.12" /></element>
</view>
</mamelayout>

View File

@ -15983,6 +15983,9 @@ arbv2 //
@source:chess/cking_master.cpp
ckmaster //
@source:chess/cking_triomphe.cpp
triomphe
@source:chess/compuchess.cpp
ccmk1 // Chess Champion MK I
cmpchess

View File

@ -110,7 +110,7 @@ INPUT_CHANGED_MEMBER(accord_state::power_off)
{
// NMI when power goes off, followed by STBY after a short delay
m_maincpu->set_input_line(INPUT_LINE_NMI, ASSERT_LINE);
m_standbytimer->adjust(attotime::from_msec(50), M6801_STBY_LINE);
m_standbytimer->adjust(attotime::from_msec(10));
}
}

View File

@ -115,7 +115,7 @@ INPUT_CHANGED_MEMBER(constjr_state::power_off)
{
// NMI when power goes off, followed by STBY after a short delay
m_maincpu->set_input_line(INPUT_LINE_NMI, ASSERT_LINE);
m_standbytimer->adjust(attotime::from_msec(50), M6801_STBY_LINE);
m_standbytimer->adjust(attotime::from_msec(10));
}
}

View File

@ -26,7 +26,7 @@ be entered first (from eg. a terminal), and then the Comm. LED will turn on.
Hardware notes:
Leonardo (1986):
- 6301Y0 MCU @ 12MHz
- HD6301Y0P MCU @ 12MHz
- 32KB ROM(27C256)
- 8KB RAM(M5M5165P-15 or compatible)
- magnet sensors chessboard with 16 leds
@ -34,7 +34,7 @@ Leonardo (1986):
The 6301Y0 was seen with internal maskrom serial A96 and B40. It is actually
one from another SciSys chesscomputer (Turbo 16K or Turbo S-24K). It appears to
be running in mode 1 (expanded mode): the internal ROM is disabled and the MCU
can be emulated as if it's a HD6303Y.
can be emulated as if it's a 6303Y.
Galileo (1988):
- HD6303YP MCU @ 12MHz

View File

@ -13,7 +13,7 @@ the chesscomputer before exiting MAME. Unlike Leonardo/Galileo, it looks like
it will always do a cold boot if you reset without having pressed STOP.
Hardware notes:
- 6301Y0(mode 1) or HD6303YP MCU @ 10MHz
- HD6301Y0P (mode 1) or HD6303YP MCU @ 10MHz
- 8KB RAM, 32KB ROM
- "HELIOS" I/O (NEC gate array)
- Epson SED1502F, LCD screen