diff options
author | hap <happppp@users.noreply.github.com> | 2017-12-17 11:22:07 +0100 |
---|---|---|
committer | hap <happppp@users.noreply.github.com> | 2017-12-17 11:22:26 +0100 |
commit | b3428ef5056082ff3725c531b2286158fc87385d (patch) | |
tree | f5b039ff76f505464fa1480e6980470552c875dd /src | |
parent | d818fd5eab9dda0138de5fa9661e0a5da04bbc39 (diff) |
New working machines
-----------
Chess King Master [hap, Berger]
Diffstat (limited to 'src')
-rw-r--r-- | src/mame/drivers/ckz80.cpp | 117 | ||||
-rw-r--r-- | src/mame/layout/ck_master.lay | 303 |
2 files changed, 390 insertions, 30 deletions
diff --git a/src/mame/drivers/ckz80.cpp b/src/mame/drivers/ckz80.cpp index 98155c6073d..5c7459d85b4 100644 --- a/src/mame/drivers/ckz80.cpp +++ b/src/mame/drivers/ckz80.cpp @@ -11,18 +11,24 @@ such as Arena(in editmode). TODO: - - x + - ckmaster 1 WAIT CLK per M1, workaround with z80_set_cycle_tables is possible + (wait state is similar to MSX) but I can't be bothered, better solution + is to add M1 pin to the z80 core. Until then, it'll run ~20% too fast. ****************************************************************************** Master: -- x +- Z80 CPU(NEC D780C-1) @ 4MHz(8MHz XTAL), IRQ from 555 timer +- 8KB ROM(NEC D2764C-3), 2KB RAM(NEC D4016C) +- simple I/O via 2*74373 and a 74145 +- 8*8 chessboard buttons, 32+1 border leds, piezo ******************************************************************************/ #include "emu.h" #include "cpu/z80/z80.h" #include "machine/timer.h" +#include "machine/bankdev.h" #include "sound/dac.h" #include "sound/volt_reg.h" #include "speaker.h" @@ -38,6 +44,7 @@ public: : driver_device(mconfig, type, tag), m_maincpu(*this, "maincpu"), m_dac(*this, "dac"), + m_master_map(*this, "master_map"), m_inp_matrix(*this, "IN.%u", 0), m_out_x(*this, "%u.%u", 0U, 0U), m_out_a(*this, "%u.a", 0U), @@ -49,7 +56,8 @@ public: // devices/pointers required_device<cpu_device> m_maincpu; - required_device<dac_bit_interface> m_dac; + required_device<dac_2bit_binary_weighted_ones_complement_device> m_dac; + optional_device<address_map_bank_device> m_master_map; optional_ioport_array<10> m_inp_matrix; // max 10 output_finder<0x20, 0x20> m_out_x; output_finder<0x20> m_out_a; @@ -80,8 +88,11 @@ public: void display_matrix(int maxx, int maxy, u32 setx, u32 sety, bool update = true); // Master - //DECLARE_READ8_MEMBER(master_input_r); + DECLARE_READ8_MEMBER(master_input_r); + DECLARE_WRITE8_MEMBER(master_control_w); DECLARE_DRIVER_INIT(master); + DECLARE_READ8_MEMBER(master_trampoline_r); + DECLARE_WRITE8_MEMBER(master_trampoline_w); protected: virtual void machine_start() override; @@ -220,6 +231,26 @@ u16 ckz80_state::read_inputs(int columns) // TTL/generic +WRITE8_MEMBER(ckz80_state::master_control_w) +{ + // d0-d3: 74145 A-D + // 74145 0-9: input mux, led select + u16 sel = 1 << (data & 0xf) & 0x3ff; + m_inp_mux = sel; + + // d4,d5: led data + display_matrix(2, 9, data >> 4 & 3, sel & 0x1ff); + + // d6,d7: speaker +/- + m_dac->write(data >> 6 & 3); +} + +READ8_MEMBER(ckz80_state::master_input_r) +{ + // d0-d7: multiplexed inputs (active low) + return ~read_inputs(10); +} + DRIVER_INIT_MEMBER(ckz80_state, master) { u8 *rom = memregion("maincpu")->base(); @@ -237,6 +268,7 @@ DRIVER_INIT_MEMBER(ckz80_state, master) } + /****************************************************************************** Address Maps ******************************************************************************/ @@ -244,8 +276,35 @@ DRIVER_INIT_MEMBER(ckz80_state, master) // Master static ADDRESS_MAP_START( master_map, AS_PROGRAM, 8, ckz80_state ) - AM_RANGE(0x0000, 0x1fff) AM_ROM - AM_RANGE(0xc000, 0xc7ff) AM_RAM + AM_RANGE(0x0000, 0x1fff) AM_MIRROR(0x6000) AM_ROM AM_REGION("maincpu", 0) // _A15 + AM_RANGE(0xa000, 0xa000) AM_MIRROR(0x1fff) AM_READWRITE(master_input_r, master_control_w) // A13 + AM_RANGE(0xc000, 0xc7ff) AM_MIRROR(0x3800) AM_RAM // A14 +ADDRESS_MAP_END + +// PCB design is prone to bus conflicts, but should be fine if software obeys +WRITE8_MEMBER(ckz80_state::master_trampoline_w) +{ + if (offset & 0x2000) + m_master_map->write8(space, (offset & 0x3fff) | 0x8000, data); + if (offset & 0x4000) + m_master_map->write8(space, (offset & 0x7fff) | 0x8000, data); +} + +READ8_MEMBER(ckz80_state::master_trampoline_r) +{ + u8 data = 0xff; + if (~offset & 0x8000) + data &= m_master_map->read8(space, offset); + if (offset & 0x2000) + data &= m_master_map->read8(space, (offset & 0x3fff) | 0x8000); + if (offset & 0x4000) + data &= m_master_map->read8(space, (offset & 0x7fff) | 0x8000); + + return data; +} + +static ADDRESS_MAP_START( master_trampoline, AS_PROGRAM, 8, ckz80_state ) + AM_RANGE(0x0000, 0xffff) AM_READWRITE(master_trampoline_r, master_trampoline_w) ADDRESS_MAP_END @@ -341,24 +400,24 @@ static INPUT_PORTS_START( master ) PORT_INCLUDE( cb_buttons ) PORT_START("IN.8") - PORT_BIT(0x01, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_CODE(KEYCODE_T) PORT_NAME("Black") - PORT_BIT(0x02, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_CODE(KEYCODE_2) PORT_NAME("King") - PORT_BIT(0x04, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_CODE(KEYCODE_3) PORT_NAME("Queen") - PORT_BIT(0x08, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_CODE(KEYCODE_4) PORT_NAME("Rook") - PORT_BIT(0x10, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_CODE(KEYCODE_W) PORT_NAME("Bishop") - PORT_BIT(0x20, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_CODE(KEYCODE_E) PORT_NAME("Knight") - PORT_BIT(0x40, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_CODE(KEYCODE_R) PORT_NAME("Pawn") - PORT_BIT(0x80, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_CODE(KEYCODE_5) PORT_NAME("White") + 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(0x80, IP_ACTIVE_HIGH, IPT_UNUSED) PORT_START("IN.9") - PORT_BIT(0x01, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_CODE(KEYCODE_1) PORT_NAME("Set up") - PORT_BIT(0x02, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_CODE(KEYCODE_Q) PORT_NAME("New Game") - PORT_BIT(0x04, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_CODE(KEYCODE_U) PORT_NAME("Take Back") - PORT_BIT(0x08, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_CODE(KEYCODE_Y) PORT_NAME("Forward") - PORT_BIT(0x10, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_CODE(KEYCODE_6) PORT_NAME("Hint") - PORT_BIT(0x20, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_CODE(KEYCODE_I) PORT_NAME("Move") - PORT_BIT(0x40, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_CODE(KEYCODE_8) PORT_NAME("Level") - PORT_BIT(0x80, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_CODE(KEYCODE_7) PORT_NAME("Sound") + 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") INPUT_PORTS_END @@ -371,19 +430,25 @@ static MACHINE_CONFIG_START( master ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", Z80, XTAL_8MHz/2) - MCFG_CPU_PROGRAM_MAP(master_map) + MCFG_CPU_PROGRAM_MAP(master_trampoline) MCFG_TIMER_DRIVER_ADD_PERIODIC("irq_on", ckz80_state, irq_on, attotime::from_hz(429)) // theoretical frequency from 555 timer (22nF, 150K, 1K5), measurement was 418Hz MCFG_TIMER_START_DELAY(attotime::from_hz(429) - attotime::from_nsec(22870)) // active for 22.87us MCFG_TIMER_DRIVER_ADD_PERIODIC("irq_off", ckz80_state, irq_off, attotime::from_hz(429)) + MCFG_DEVICE_ADD("master_map", ADDRESS_MAP_BANK, 0) + MCFG_DEVICE_PROGRAM_MAP(master_map) + MCFG_ADDRESS_MAP_BANK_ENDIANNESS(ENDIANNESS_LITTLE) + MCFG_ADDRESS_MAP_BANK_DATA_WIDTH(8) + MCFG_ADDRESS_MAP_BANK_ADDR_WIDTH(16) + MCFG_TIMER_DRIVER_ADD_PERIODIC("display_decay", ckz80_state, display_decay_tick, attotime::from_msec(1)) MCFG_DEFAULT_LAYOUT(layout_ck_master) /* sound hardware */ MCFG_SPEAKER_STANDARD_MONO("speaker") - MCFG_SOUND_ADD("dac", DAC_1BIT, 0) MCFG_SOUND_ROUTE(ALL_OUTPUTS, "speaker", 0.25) + MCFG_SOUND_ADD("dac", DAC_2BIT_BINARY_WEIGHTED_ONES_COMPLEMENT, 0) MCFG_SOUND_ROUTE(ALL_OUTPUTS, "speaker", 0.25) MCFG_DEVICE_ADD("vref", VOLTAGE_REGULATOR, 0) MCFG_VOLTAGE_REGULATOR_OUTPUT(5.0) - MCFG_SOUND_ROUTE_EX(0, "dac", 1.0, DAC_VREF_POS_INPUT) + MCFG_SOUND_ROUTE_EX(0, "dac", 1.0, DAC_VREF_POS_INPUT) MCFG_SOUND_ROUTE_EX(0, "dac", -1.0, DAC_VREF_NEG_INPUT) MACHINE_CONFIG_END @@ -394,7 +459,7 @@ MACHINE_CONFIG_END ROM_START( ckmaster ) ROM_REGION( 0x10000, "maincpu", 0 ) - ROM_LOAD("ckmaster.bin", 0x0000, 0x2000, CRC(59cbec9e) SHA1(2e0629e65778da62bed857406b91a334698d2fe8) ) // D2764C, no label + ROM_LOAD("ckmaster.ic2", 0x0000, 0x2000, CRC(59cbec9e) SHA1(2e0629e65778da62bed857406b91a334698d2fe8) ) // D2764C, no label ROM_END diff --git a/src/mame/layout/ck_master.lay b/src/mame/layout/ck_master.lay index 9d3e4d2766a..1b16de82f8a 100644 --- a/src/mame/layout/ck_master.lay +++ b/src/mame/layout/ck_master.lay @@ -4,17 +4,312 @@ <!-- define elements --> <element name="led" defstate="0"> - <disk state="0"><color red="0.2" green="0.04" blue="0.046" /></disk> - <disk state="1"><color red="1.0" green="0.2" blue="0.23" /></disk> + <disk state="1"><color red="1.0" green="0.1" blue="0.15" /></disk> + <disk state="0"><color red="0.1" green="0.01" blue="0.015" /></disk> + </element> + <element name="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> + </element> + + <element name="hl" defstate="0"> + <text string=" "> + <bounds x="0.0" y="0.0" width="1.0" height="1.0" /> + <color red="0.0" green="0.0" blue="0.0" /> + </text> + <disk state="1"> + <bounds x="0.12" y="0.12" width="0.76" height="0.76" /> + <color red="1.0" green="1.0" blue="1.0" /> + </disk> + </element> + <element name="hlb" defstate="0"> + <text string=" "> + <bounds x="0.0" y="0.0" width="1.0" height="1.0" /> + <color red="0.0" green="0.0" blue="0.0" /> + </text> + <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> + </element> + + <element name="black"><rect><color red="0.17" green="0.15" blue="0.15" /></rect></element> + <element name="white"><rect><color red="0.81" green="0.8" blue="0.79" /></rect></element> + + <element name="text_l1"> + <rect><color red="0.81" green="0.8" blue="0.79" /></rect> + <text string="CHANGE POSITION"><color red="0.17" green="0.15" blue="0.15" /></text> + </element> + <element name="text_l2"> + <rect><color red="0.81" green="0.8" blue="0.79" /></rect> + <text string="CLEAR BOARD"><color red="0.17" green="0.15" blue="0.15" /></text> + </element> + <element name="text_l3"> + <rect><color red="0.81" green="0.8" blue="0.79" /></rect> + <text string="NEW GAME"><color red="0.17" green="0.15" blue="0.15" /></text> + </element> + <element name="text_l4"> + <rect><color red="0.81" green="0.8" blue="0.79" /></rect> + <text string="TAKE BACK"><color red="0.17" green="0.15" blue="0.15" /></text> + </element> + <element name="text_l13"> + <rect><color red="0.81" green="0.8" blue="0.79" /></rect> + <text string="MOVE"><color red="0.17" green="0.15" blue="0.15" /></text> + </element> + <element name="text_l14"> + <rect><color red="0.81" green="0.8" blue="0.79" /></rect> + <text string="LEVEL"><color red="0.17" green="0.15" blue="0.15" /></text> + </element> + <element name="text_l15"> + <rect><color red="0.81" green="0.8" blue="0.79" /></rect> + <text string="SOUND"><color red="0.17" green="0.15" blue="0.15" /></text> + </element> + + <element name="text_king"> + <rect><color red="0.81" green="0.8" blue="0.79" /></rect> + <text string="♔"><color red="0.17" green="0.15" blue="0.15" /></text> + </element> + <element name="text_queen"> + <rect><color red="0.81" green="0.8" blue="0.79" /></rect> + <text string="♕"><color red="0.17" green="0.15" blue="0.15" /></text> + </element> + <element name="text_rook"> + <rect><color red="0.81" green="0.8" blue="0.79" /></rect> + <text string="♖"><color red="0.17" green="0.15" blue="0.15" /></text> + </element> + <element name="text_bishop"> + <rect><color red="0.81" green="0.8" blue="0.79" /></rect> + <text string="♗"><color red="0.17" green="0.15" blue="0.15" /></text> + </element> + <element name="text_knight"> + <rect><color red="0.81" green="0.8" blue="0.79" /></rect> + <text string="♘"><color red="0.17" green="0.15" blue="0.15" /></text> + </element> + <element name="text_pawn"> + <rect><color red="0.81" green="0.8" blue="0.79" /></rect> + <text string="♙"><color red="0.17" green="0.15" blue="0.15" /></text> </element> <!-- build screen --> <view name="Internal Layout"> - <bounds left="0" right="100" top="0" bottom="100" /> + <bounds left="-2.5" right="106.5" top="-2.5" bottom="88.5" /> + + <!-- chessboard leds --> + + <bezel name="0.0" element="led"><bounds x="-1" y="7.25" width="1.5" height="1.5" /></bezel> + <bezel name="1.0" element="led"><bounds x="-1" y="17.25" width="1.5" height="1.5" /></bezel> + <bezel name="2.0" element="led"><bounds x="-1" y="27.25" width="1.5" height="1.5" /></bezel> + <bezel name="3.0" element="led"><bounds x="-1" y="37.25" width="1.5" height="1.5" /></bezel> + <bezel name="4.0" element="led"><bounds x="-1" y="47.25" width="1.5" height="1.5" /></bezel> + <bezel name="5.0" element="led"><bounds x="-1" y="57.25" width="1.5" height="1.5" /></bezel> + <bezel name="6.0" element="led"><bounds x="-1" y="67.25" width="1.5" height="1.5" /></bezel> + <bezel name="7.0" element="led"><bounds x="-1" y="77.25" width="1.5" height="1.5" /></bezel> + + <bezel name="0.0" element="led"><bounds x="85.5" y="7.25" width="1.5" height="1.5" /></bezel> + <bezel name="1.0" element="led"><bounds x="85.5" y="17.25" width="1.5" height="1.5" /></bezel> + <bezel name="2.0" element="led"><bounds x="85.5" y="27.25" width="1.5" height="1.5" /></bezel> + <bezel name="3.0" element="led"><bounds x="85.5" y="37.25" width="1.5" height="1.5" /></bezel> + <bezel name="4.0" element="led"><bounds x="85.5" y="47.25" width="1.5" height="1.5" /></bezel> + <bezel name="5.0" element="led"><bounds x="85.5" y="57.25" width="1.5" height="1.5" /></bezel> + <bezel name="6.0" element="led"><bounds x="85.5" y="67.25" width="1.5" height="1.5" /></bezel> + <bezel name="7.0" element="led"><bounds x="85.5" y="77.25" width="1.5" height="1.5" /></bezel> + + <bezel name="0.1" element="led"><bounds x="7.25" y="-1" width="1.5" height="1.5" /></bezel> + <bezel name="1.1" element="led"><bounds x="17.25" y="-1" width="1.5" height="1.5" /></bezel> + <bezel name="2.1" element="led"><bounds x="27.25" y="-1" width="1.5" height="1.5" /></bezel> + <bezel name="3.1" element="led"><bounds x="37.25" y="-1" width="1.5" height="1.5" /></bezel> + <bezel name="4.1" element="led"><bounds x="47.25" y="-1" width="1.5" height="1.5" /></bezel> + <bezel name="5.1" element="led"><bounds x="57.25" y="-1" width="1.5" height="1.5" /></bezel> + <bezel name="6.1" element="led"><bounds x="67.25" y="-1" width="1.5" height="1.5" /></bezel> + <bezel name="7.1" element="led"><bounds x="77.25" y="-1" width="1.5" height="1.5" /></bezel> + + <bezel name="0.1" element="led"><bounds x="7.25" y="85.5" width="1.5" height="1.5" /></bezel> + <bezel name="1.1" element="led"><bounds x="17.25" y="85.5" width="1.5" height="1.5" /></bezel> + <bezel name="2.1" element="led"><bounds x="27.25" y="85.5" width="1.5" height="1.5" /></bezel> + <bezel name="3.1" element="led"><bounds x="37.25" y="85.5" width="1.5" height="1.5" /></bezel> + <bezel name="4.1" element="led"><bounds x="47.25" y="85.5" width="1.5" height="1.5" /></bezel> + <bezel name="5.1" element="led"><bounds x="57.25" y="85.5" width="1.5" height="1.5" /></bezel> + <bezel name="6.1" element="led"><bounds x="67.25" y="85.5" width="1.5" height="1.5" /></bezel> + <bezel name="7.1" element="led"><bounds x="77.25" y="85.5" width="1.5" height="1.5" /></bezel> + + <bezel name="8.1" element="ledg"><bounds x="85.5" y="3.5" width="1.5" height="1.5" /></bezel> + + <!-- chessboard bezel --> + + <bezel element="black"><bounds x="2" y="2" width="82" height="82" /></bezel> + <bezel element="white"><bounds x="3" y="3" width="80" height="80" /></bezel> + + <bezel element="black"><bounds x="13" y="2.5" width="10" height="10.5" /></bezel> + <bezel element="black"><bounds x="33" y="2.5" width="10" height="10.5" /></bezel> + <bezel element="black"><bounds x="53" y="2.5" width="10" height="10.5" /></bezel> + <bezel element="black"><bounds x="73" y="2.5" width="10.5" height="10.5" /></bezel> + + <bezel element="black"><bounds x="2.5" y="13" width="10.5" height="10" /></bezel> + <bezel element="black"><bounds x="23" y="13" width="10" height="10" /></bezel> + <bezel element="black"><bounds x="43" y="13" width="10" height="10" /></bezel> + <bezel element="black"><bounds x="63" y="13" width="10" height="10" /></bezel> + + <bezel element="black"><bounds x="13" y="23" width="10" height="10" /></bezel> + <bezel element="black"><bounds x="33" y="23" width="10" height="10" /></bezel> + <bezel element="black"><bounds x="53" y="23" width="10" height="10" /></bezel> + <bezel element="black"><bounds x="73" y="23" width="10.5" height="10" /></bezel> + + <bezel element="black"><bounds x="2.5" y="33" width="10.5" height="10" /></bezel> + <bezel element="black"><bounds x="23" y="33" width="10" height="10" /></bezel> + <bezel element="black"><bounds x="43" y="33" width="10" height="10" /></bezel> + <bezel element="black"><bounds x="63" y="33" width="10" height="10" /></bezel> + + <bezel element="black"><bounds x="13" y="43" width="10" height="10" /></bezel> + <bezel element="black"><bounds x="33" y="43" width="10" height="10" /></bezel> + <bezel element="black"><bounds x="53" y="43" width="10" height="10" /></bezel> + <bezel element="black"><bounds x="73" y="43" width="10.5" height="10" /></bezel> + + <bezel element="black"><bounds x="2.5" y="53" width="10.5" height="10" /></bezel> + <bezel element="black"><bounds x="23" y="53" width="10" height="10" /></bezel> + <bezel element="black"><bounds x="43" y="53" width="10" height="10" /></bezel> + <bezel element="black"><bounds x="63" y="53" width="10" height="10" /></bezel> + + <bezel element="black"><bounds x="13" y="63" width="10" height="10" /></bezel> + <bezel element="black"><bounds x="33" y="63" width="10" height="10" /></bezel> + <bezel element="black"><bounds x="53" y="63" width="10" height="10" /></bezel> + <bezel element="black"><bounds x="73" y="63" width="10.5" height="10" /></bezel> + + <bezel element="black"><bounds x="2.5" y="73" width="10.5" height="10.5" /></bezel> + <bezel element="black"><bounds x="23" y="73" width="10" height="10.5" /></bezel> + <bezel element="black"><bounds x="43" y="73" width="10" height="10.5" /></bezel> + <bezel element="black"><bounds x="63" y="73" width="10" height="10.5" /></bezel> + + <!-- chessboard sensors --> + + <bezel element="hl" inputtag="IN.0" inputmask="0x01"><bounds x="3" y="3" width="10" height="10" /><color alpha="0.4" /></bezel> + <bezel element="hl" inputtag="IN.1" inputmask="0x01"><bounds x="13" y="3" width="10" height="10" /><color alpha="0.2" /></bezel> + <bezel element="hl" inputtag="IN.2" inputmask="0x01"><bounds x="23" y="3" width="10" height="10" /><color alpha="0.4" /></bezel> + <bezel element="hl" inputtag="IN.3" inputmask="0x01"><bounds x="33" y="3" width="10" height="10" /><color alpha="0.2" /></bezel> + <bezel element="hl" inputtag="IN.4" inputmask="0x01"><bounds x="43" y="3" width="10" height="10" /><color alpha="0.4" /></bezel> + <bezel element="hl" inputtag="IN.5" inputmask="0x01"><bounds x="53" y="3" width="10" height="10" /><color alpha="0.2" /></bezel> + <bezel element="hl" inputtag="IN.6" inputmask="0x01"><bounds x="63" y="3" width="10" height="10" /><color alpha="0.4" /></bezel> + <bezel element="hl" inputtag="IN.7" inputmask="0x01"><bounds x="73" y="3" width="10" height="10" /><color alpha="0.2" /></bezel> + + <bezel element="hl" inputtag="IN.0" inputmask="0x02"><bounds x="3" y="13" width="10" height="10" /><color alpha="0.2" /></bezel> + <bezel element="hl" inputtag="IN.1" inputmask="0x02"><bounds x="13" y="13" width="10" height="10" /><color alpha="0.4" /></bezel> + <bezel element="hl" inputtag="IN.2" inputmask="0x02"><bounds x="23" y="13" width="10" height="10" /><color alpha="0.2" /></bezel> + <bezel element="hl" inputtag="IN.3" inputmask="0x02"><bounds x="33" y="13" width="10" height="10" /><color alpha="0.4" /></bezel> + <bezel element="hl" inputtag="IN.4" inputmask="0x02"><bounds x="43" y="13" width="10" height="10" /><color alpha="0.2" /></bezel> + <bezel element="hl" inputtag="IN.5" inputmask="0x02"><bounds x="53" y="13" width="10" height="10" /><color alpha="0.4" /></bezel> + <bezel element="hl" inputtag="IN.6" inputmask="0x02"><bounds x="63" y="13" width="10" height="10" /><color alpha="0.2" /></bezel> + <bezel element="hl" inputtag="IN.7" inputmask="0x02"><bounds x="73" y="13" width="10" height="10" /><color alpha="0.4" /></bezel> + + <bezel element="hl" inputtag="IN.0" inputmask="0x04"><bounds x="3" y="23" width="10" height="10" /><color alpha="0.4" /></bezel> + <bezel element="hl" inputtag="IN.1" inputmask="0x04"><bounds x="13" y="23" width="10" height="10" /><color alpha="0.2" /></bezel> + <bezel element="hl" inputtag="IN.2" inputmask="0x04"><bounds x="23" y="23" width="10" height="10" /><color alpha="0.4" /></bezel> + <bezel element="hl" inputtag="IN.3" inputmask="0x04"><bounds x="33" y="23" width="10" height="10" /><color alpha="0.2" /></bezel> + <bezel element="hl" inputtag="IN.4" inputmask="0x04"><bounds x="43" y="23" width="10" height="10" /><color alpha="0.4" /></bezel> + <bezel element="hl" inputtag="IN.5" inputmask="0x04"><bounds x="53" y="23" width="10" height="10" /><color alpha="0.2" /></bezel> + <bezel element="hl" inputtag="IN.6" inputmask="0x04"><bounds x="63" y="23" width="10" height="10" /><color alpha="0.4" /></bezel> + <bezel element="hl" inputtag="IN.7" inputmask="0x04"><bounds x="73" y="23" width="10" height="10" /><color alpha="0.2" /></bezel> + + <bezel element="hl" inputtag="IN.0" inputmask="0x08"><bounds x="3" y="33" width="10" height="10" /><color alpha="0.2" /></bezel> + <bezel element="hl" inputtag="IN.1" inputmask="0x08"><bounds x="13" y="33" width="10" height="10" /><color alpha="0.4" /></bezel> + <bezel element="hl" inputtag="IN.2" inputmask="0x08"><bounds x="23" y="33" width="10" height="10" /><color alpha="0.2" /></bezel> + <bezel element="hl" inputtag="IN.3" inputmask="0x08"><bounds x="33" y="33" width="10" height="10" /><color alpha="0.4" /></bezel> + <bezel element="hl" inputtag="IN.4" inputmask="0x08"><bounds x="43" y="33" width="10" height="10" /><color alpha="0.2" /></bezel> + <bezel element="hl" inputtag="IN.5" inputmask="0x08"><bounds x="53" y="33" width="10" height="10" /><color alpha="0.4" /></bezel> + <bezel element="hl" inputtag="IN.6" inputmask="0x08"><bounds x="63" y="33" width="10" height="10" /><color alpha="0.2" /></bezel> + <bezel element="hl" inputtag="IN.7" inputmask="0x08"><bounds x="73" y="33" width="10" height="10" /><color alpha="0.4" /></bezel> + + <bezel element="hl" inputtag="IN.0" inputmask="0x10"><bounds x="3" y="43" width="10" height="10" /><color alpha="0.4" /></bezel> + <bezel element="hl" inputtag="IN.1" inputmask="0x10"><bounds x="13" y="43" width="10" height="10" /><color alpha="0.2" /></bezel> + <bezel element="hl" inputtag="IN.2" inputmask="0x10"><bounds x="23" y="43" width="10" height="10" /><color alpha="0.4" /></bezel> + <bezel element="hl" inputtag="IN.3" inputmask="0x10"><bounds x="33" y="43" width="10" height="10" /><color alpha="0.2" /></bezel> + <bezel element="hl" inputtag="IN.4" inputmask="0x10"><bounds x="43" y="43" width="10" height="10" /><color alpha="0.4" /></bezel> + <bezel element="hl" inputtag="IN.5" inputmask="0x10"><bounds x="53" y="43" width="10" height="10" /><color alpha="0.2" /></bezel> + <bezel element="hl" inputtag="IN.6" inputmask="0x10"><bounds x="63" y="43" width="10" height="10" /><color alpha="0.4" /></bezel> + <bezel element="hl" inputtag="IN.7" inputmask="0x10"><bounds x="73" y="43" width="10" height="10" /><color alpha="0.2" /></bezel> + + <bezel element="hl" inputtag="IN.0" inputmask="0x20"><bounds x="3" y="53" width="10" height="10" /><color alpha="0.2" /></bezel> + <bezel element="hl" inputtag="IN.1" inputmask="0x20"><bounds x="13" y="53" width="10" height="10" /><color alpha="0.4" /></bezel> + <bezel element="hl" inputtag="IN.2" inputmask="0x20"><bounds x="23" y="53" width="10" height="10" /><color alpha="0.2" /></bezel> + <bezel element="hl" inputtag="IN.3" inputmask="0x20"><bounds x="33" y="53" width="10" height="10" /><color alpha="0.4" /></bezel> + <bezel element="hl" inputtag="IN.4" inputmask="0x20"><bounds x="43" y="53" width="10" height="10" /><color alpha="0.2" /></bezel> + <bezel element="hl" inputtag="IN.5" inputmask="0x20"><bounds x="53" y="53" width="10" height="10" /><color alpha="0.4" /></bezel> + <bezel element="hl" inputtag="IN.6" inputmask="0x20"><bounds x="63" y="53" width="10" height="10" /><color alpha="0.2" /></bezel> + <bezel element="hl" inputtag="IN.7" inputmask="0x20"><bounds x="73" y="53" width="10" height="10" /><color alpha="0.4" /></bezel> + + <bezel element="hl" inputtag="IN.0" inputmask="0x40"><bounds x="3" y="63" width="10" height="10" /><color alpha="0.4" /></bezel> + <bezel element="hl" inputtag="IN.1" inputmask="0x40"><bounds x="13" y="63" width="10" height="10" /><color alpha="0.2" /></bezel> + <bezel element="hl" inputtag="IN.2" inputmask="0x40"><bounds x="23" y="63" width="10" height="10" /><color alpha="0.4" /></bezel> + <bezel element="hl" inputtag="IN.3" inputmask="0x40"><bounds x="33" y="63" width="10" height="10" /><color alpha="0.2" /></bezel> + <bezel element="hl" inputtag="IN.4" inputmask="0x40"><bounds x="43" y="63" width="10" height="10" /><color alpha="0.4" /></bezel> + <bezel element="hl" inputtag="IN.5" inputmask="0x40"><bounds x="53" y="63" width="10" height="10" /><color alpha="0.2" /></bezel> + <bezel element="hl" inputtag="IN.6" inputmask="0x40"><bounds x="63" y="63" width="10" height="10" /><color alpha="0.4" /></bezel> + <bezel element="hl" inputtag="IN.7" inputmask="0x40"><bounds x="73" y="63" width="10" height="10" /><color alpha="0.2" /></bezel> + + <bezel element="hl" inputtag="IN.0" inputmask="0x80"><bounds x="3" y="73" width="10" height="10" /><color alpha="0.2" /></bezel> + <bezel element="hl" inputtag="IN.1" inputmask="0x80"><bounds x="13" y="73" width="10" height="10" /><color alpha="0.4" /></bezel> + <bezel element="hl" inputtag="IN.2" inputmask="0x80"><bounds x="23" y="73" width="10" height="10" /><color alpha="0.2" /></bezel> + <bezel element="hl" inputtag="IN.3" inputmask="0x80"><bounds x="33" y="73" width="10" height="10" /><color alpha="0.4" /></bezel> + <bezel element="hl" inputtag="IN.4" inputmask="0x80"><bounds x="43" y="73" width="10" height="10" /><color alpha="0.2" /></bezel> + <bezel element="hl" inputtag="IN.5" inputmask="0x80"><bounds x="53" y="73" width="10" height="10" /><color alpha="0.4" /></bezel> + <bezel element="hl" inputtag="IN.6" inputmask="0x80"><bounds x="63" y="73" width="10" height="10" /><color alpha="0.2" /></bezel> + <bezel element="hl" inputtag="IN.7" inputmask="0x80"><bounds x="73" y="73" width="10" height="10" /><color alpha="0.4" /></bezel> + + <!-- right side --> + + <bezel element="white"><bounds x="88.5" y="-2.5" width="18" height="91" /></bezel> + <bezel element="black"><bounds x="90.666" y="2.833" width="13.666" height="80.333" /></bezel> + + <bezel element="white"><bounds x="91" y="3.166" width="13" height="5" /></bezel> + <bezel element="white"><bounds x="91" y="8.500" width="13" height="5" /></bezel> + <bezel element="white"><bounds x="91" y="13.833" width="13" height="5" /></bezel> + <bezel element="white"><bounds x="91" y="19.166" width="13" height="5" /></bezel> + <bezel element="white"><bounds x="91" y="24.500" width="13" height="5" /></bezel> + <bezel element="white"><bounds x="91" y="29.833" width="13" height="5" /></bezel> + <bezel element="white"><bounds x="91" y="35.166" width="13" height="5" /></bezel> + <bezel element="white"><bounds x="91" y="40.500" width="13" height="5" /></bezel> + <bezel element="white"><bounds x="91" y="45.833" width="13" height="5" /></bezel> + <bezel element="white"><bounds x="91" y="51.166" width="13" height="5" /></bezel> + <bezel element="white"><bounds x="91" y="56.500" width="13" height="5" /></bezel> + <bezel element="white"><bounds x="91" y="61.833" width="13" height="5" /></bezel> + <bezel element="white"><bounds x="91" y="67.166" width="13" height="5" /></bezel> + <bezel element="white"><bounds x="91" y="72.500" width="13" height="5" /></bezel> + <bezel element="white"><bounds x="91" y="77.833" width="13" height="5" /></bezel> + + <bezel element="text_l1"><bounds x="91.4" y="4.916" width="12.5" height="1.5" /></bezel> + <bezel element="text_l2"><bounds x="91.4" y="10.250" width="12.5" height="1.5" /></bezel> + <bezel element="text_l3"><bounds x="91.4" y="15.583" width="12.5" height="1.5" /></bezel> + <bezel element="text_l4"><bounds x="91.4" y="20.916" width="12.5" height="1.5" /></bezel> + <bezel element="text_l13"><bounds x="91.4" y="68.916" width="12.5" height="1.5" /></bezel> + <bezel element="text_l14"><bounds x="91.4" y="74.250" width="12.5" height="1.5" /></bezel> + <bezel element="text_l15"><bounds x="91.4" y="79.583" width="12.5" height="1.5" /></bezel> + + <bezel element="text_king"><bounds x="91.4" y="24.500" width="12.5" height="5" /></bezel> + <bezel element="text_queen"><bounds x="91.4" y="29.833" width="12.5" height="5" /></bezel> + <bezel element="text_rook"><bounds x="91.4" y="35.166" width="12.5" height="5" /></bezel> + <bezel element="text_bishop"><bounds x="91.4" y="40.500" width="12.5" height="5" /></bezel> + <bezel element="text_knight"><bounds x="91.4" y="45.833" width="12.5" height="5" /></bezel> + <bezel element="text_pawn"><bounds x="91.4" y="51.166" width="12.5" height="5" /></bezel> + + <bezel element="black"><bounds x="96.25" y="57.75" width="2.5" height="2.5" /></bezel> + <bezel element="white"><bounds x="96.5" y="58" width="2.0" height="2.0" /></bezel> + <bezel element="black"><bounds x="96.25" y="63.083" width="2.5" height="2.5" /></bezel> - <bezel name="0.0" element="led"><bounds x="1" y="1" width="1" height="1" /></bezel> + <bezel element="hlb" inputtag="IN.8" inputmask="0x01"><bounds x="91" y="3.166" width="13" height="5" /><color alpha="0.4" /></bezel> + <bezel element="hlb" inputtag="IN.8" inputmask="0x02"><bounds x="91" y="8.500" width="13" height="5" /><color alpha="0.4" /></bezel> + <bezel element="hlb" inputtag="IN.8" inputmask="0x04"><bounds x="91" y="13.833" width="13" height="5" /><color alpha="0.4" /></bezel> + <bezel element="hlb" inputtag="IN.8" inputmask="0x08"><bounds x="91" y="19.166" width="13" height="5" /><color alpha="0.4" /></bezel> + <bezel element="hlb" inputtag="IN.8" inputmask="0x10"><bounds x="91" y="24.500" width="13" height="5" /><color alpha="0.4" /></bezel> + <bezel element="hlb" inputtag="IN.8" inputmask="0x20"><bounds x="91" y="29.833" width="13" height="5" /><color alpha="0.4" /></bezel> + <bezel element="hlb" inputtag="IN.8" inputmask="0x40"><bounds x="91" y="35.166" width="13" height="5" /><color alpha="0.4" /></bezel> + <bezel element="hlb" inputtag="IN.9" inputmask="0x01"><bounds x="91" y="40.500" width="13" height="5" /><color alpha="0.4" /></bezel> + <bezel element="hlb" inputtag="IN.9" inputmask="0x02"><bounds x="91" y="45.833" width="13" height="5" /><color alpha="0.4" /></bezel> + <bezel element="hlb" inputtag="IN.9" inputmask="0x04"><bounds x="91" y="51.166" width="13" height="5" /><color alpha="0.4" /></bezel> + <bezel element="hlb" inputtag="IN.9" inputmask="0x08"><bounds x="91" y="56.500" width="13" height="5" /><color alpha="0.4" /></bezel> + <bezel element="hlb" inputtag="IN.9" inputmask="0x10"><bounds x="91" y="61.833" width="13" height="5" /><color alpha="0.4" /></bezel> + <bezel element="hlb" inputtag="IN.9" inputmask="0x20"><bounds x="91" y="67.166" width="13" height="5" /><color alpha="0.4" /></bezel> + <bezel element="hlb" inputtag="IN.9" inputmask="0x40"><bounds x="91" y="72.500" width="13" height="5" /><color alpha="0.4" /></bezel> + <bezel element="hlb" inputtag="IN.9" inputmask="0x80"><bounds x="91" y="77.833" width="13" height="5" /><color alpha="0.4" /></bezel> </view> </mamelayout> |