saitek_corona: add IO 1/2 (nw)

This commit is contained in:
hap 2019-07-21 14:44:22 +02:00
parent 5733eb5488
commit 360b6bf9d1
4 changed files with 157 additions and 143 deletions

View File

@ -68,7 +68,8 @@ public:
m_rombank(*this, "rombank"), m_rombank(*this, "rombank"),
m_nvrambank(*this, "nvrambank"), m_nvrambank(*this, "nvrambank"),
m_board(*this, "board"), m_board(*this, "board"),
m_dac(*this, "dac") m_dac(*this, "dac"),
m_inputs(*this, "IN.%u", 0)
{ } { }
// machine drivers // machine drivers
@ -86,18 +87,19 @@ private:
required_memory_bank m_nvrambank; required_memory_bank m_nvrambank;
required_device<sensorboard_device> m_board; required_device<sensorboard_device> m_board;
required_device<dac_bit_interface> m_dac; required_device<dac_bit_interface> m_dac;
required_ioport_array<8+1> m_inputs;
void main_map(address_map &map); void main_map(address_map &map);
void update_leds();
// I/O handlers // I/O handlers
void update_leds();
DECLARE_WRITE8_MEMBER(select_w); DECLARE_WRITE8_MEMBER(select_w);
DECLARE_READ8_MEMBER(chessboard_r); DECLARE_READ8_MEMBER(chessboard_r);
DECLARE_WRITE8_MEMBER(sound_w); DECLARE_WRITE8_MEMBER(sound_w);
DECLARE_WRITE8_MEMBER(leds_w); DECLARE_WRITE8_MEMBER(leds_w);
DECLARE_READ8_MEMBER(control_r); DECLARE_READ8_MEMBER(control_r);
DECLARE_WRITE8_MEMBER(control_w); DECLARE_WRITE8_MEMBER(control_w);
DECLARE_READ8_MEMBER(lcd_r); DECLARE_READ8_MEMBER(lcd_data_r);
DECLARE_READ8_MEMBER(extrom_r); DECLARE_READ8_MEMBER(extrom_r);
std::unique_ptr<u8[]> m_nvram_data; std::unique_ptr<u8[]> m_nvram_data;
@ -117,11 +119,13 @@ void saitek_stratos_state::machine_start()
// zerofill // zerofill
m_power = false; m_power = false;
m_lcd_ready = false;
m_lcd_count = 0; m_lcd_count = 0;
m_lcd_address = 0; m_lcd_address = 0;
// register for savestates // register for savestates
save_item(NAME(m_power)); save_item(NAME(m_power));
save_item(NAME(m_lcd_ready));
save_item(NAME(m_lcd_count)); save_item(NAME(m_lcd_count));
save_item(NAME(m_lcd_address)); save_item(NAME(m_lcd_address));
save_item(NAME(m_lcd_data)); save_item(NAME(m_lcd_data));
@ -130,6 +134,7 @@ void saitek_stratos_state::machine_start()
void saitek_stratos_state::machine_reset() void saitek_stratos_state::machine_reset()
{ {
m_power = true; m_power = true;
m_lcd_ready = false;
m_lcd_count = 0; m_lcd_count = 0;
clear_lcd(); clear_lcd();
@ -241,16 +246,16 @@ void saitek_stratos_state::update_lcd()
m_out_digit[0] = 0; // where? m_out_digit[0] = 0; // where?
// upper digits // upper digits (colon is at 0x00)
for (int i = 0; i < 4; i++) for (int i = 0; i < 4; i++)
m_out_digit[i + 1] = (m_lcd_data[0x01 + i * 2] << 4 | m_lcd_data[0x01 + i * 2 + 1]) & 0x7f; m_out_digit[i + 1] = (m_lcd_data[0x01 + i * 2] << 4 | m_lcd_data[0x01 + i * 2 + 1]) & 0x7f;
// lower digits // lower digits (colon is at 0x10)
for (int i = 0; i < 4; i++) for (int i = 0; i < 4; i++)
m_out_digit[i + 5] = (m_lcd_data[0x11 + i * 2] << 4 | m_lcd_data[0x11 + i * 2 + 1]) & 0x7f; m_out_digit[i + 5] = (m_lcd_data[0x11 + i * 2] << 4 | m_lcd_data[0x11 + i * 2 + 1]) & 0x7f;
} }
void saitek_stratos_state::lcd_w(u8 data) void saitek_stratos_state::lcd_data_w(u8 data)
{ {
// d0-d3: lcd data // d0-d3: lcd data
// d4-d7: unused? // d4-d7: unused?
@ -274,14 +279,12 @@ void saitek_stratos_state::lcd_w(u8 data)
} }
else else
m_lcd_count++; m_lcd_count++;
m_lcd_busy->adjust(attotime::from_usec(50)); // ?
} }
READ8_MEMBER(stratos_state::lcd_r) void saitek_stratos_state::lcd_reset_w(u8 data)
{ {
// unknown, maybe resets lcd controller m_lcd_count = 0;
return 0; m_lcd_ready = true;
} }
@ -294,7 +297,7 @@ void stratos_state::update_leds()
WRITE8_MEMBER(stratos_state::leds_w) WRITE8_MEMBER(stratos_state::leds_w)
{ {
// d0-d7: button leds data // d0-d7: button led data
m_led_data = data; m_led_data = data;
update_leds(); update_leds();
@ -327,11 +330,12 @@ READ8_MEMBER(stratos_state::control_r)
if (sel == 8) if (sel == 8)
{ {
// lcd busy flag? // d5: lcd status flag?
if (m_lcd_busy->enabled()) if (m_lcd_ready)
data |= 0x20; data |= 0x20;
m_lcd_ready = false;
// battery low // d7: battery low
data |= m_inputs[8]->read(); data |= m_inputs[8]->read();
} }
@ -354,7 +358,7 @@ WRITE8_MEMBER(stratos_state::control_w)
m_nvrambank->set_entry((data >> 1) & 1); m_nvrambank->set_entry((data >> 1) & 1);
// d2: mode led state // d2: mode led state
// d5: button leds select // d5: button led select
update_leds(); update_leds();
// d6 falling edge: power-off request // d6 falling edge: power-off request
@ -362,6 +366,13 @@ WRITE8_MEMBER(stratos_state::control_w)
power_off(); power_off();
} }
READ8_MEMBER(stratos_state::lcd_data_r)
{
// reset lcd?
lcd_reset_w();
return 0;
}
/****************************************************************************** /******************************************************************************
@ -376,7 +387,7 @@ void stratos_state::main_map(address_map &map)
map(0x2400, 0x2400).w(FUNC(stratos_state::leds_w)); map(0x2400, 0x2400).w(FUNC(stratos_state::leds_w));
map(0x2600, 0x2600).rw(FUNC(stratos_state::control_r), FUNC(stratos_state::control_w)); map(0x2600, 0x2600).rw(FUNC(stratos_state::control_r), FUNC(stratos_state::control_w));
map(0x2800, 0x37ff).bankrw("nvrambank"); map(0x2800, 0x37ff).bankrw("nvrambank");
map(0x3800, 0x3800).rw(FUNC(stratos_state::lcd_r), FUNC(stratos_state::lcd_w)); map(0x3800, 0x3800).rw(FUNC(stratos_state::lcd_data_r), FUNC(stratos_state::lcd_data_w));
map(0x4000, 0x7fff).r(FUNC(stratos_state::extrom_r)); map(0x4000, 0x7fff).r(FUNC(stratos_state::extrom_r));
map(0x8000, 0xffff).bankr("rombank"); map(0x8000, 0xffff).bankr("rombank");
} }
@ -421,7 +432,7 @@ INPUT_PORTS_START( saitek_stratos )
PORT_START("IN.6") PORT_START("IN.6")
PORT_BIT(0x01, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_CODE(KEYCODE_T) PORT_NAME("Library") PORT_BIT(0x01, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_CODE(KEYCODE_T) PORT_NAME("Library")
PORT_BIT(0x02, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_CODE(KEYCODE_Y) PORT_NAME("Info") PORT_BIT(0x02, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_CODE(KEYCODE_Y) PORT_NAME("Info")
PORT_BIT(0x04, IP_ACTIVE_LOW, IPT_CUSTOM) // freq sel PORT_BIT(0x04, IP_ACTIVE_HIGH, IPT_CUSTOM) // freq sel
PORT_START("IN.7") PORT_START("IN.7")
PORT_BIT(0x01, IP_ACTIVE_HIGH, IPT_UNUSED) PORT_BIT(0x01, IP_ACTIVE_HIGH, IPT_UNUSED)
@ -443,9 +454,16 @@ INPUT_PORTS_START( saitek_stratos )
PORT_CONFSETTING( 0x01, "5.67MHz" ) PORT_CONFSETTING( 0x01, "5.67MHz" )
INPUT_PORTS_END INPUT_PORTS_END
static INPUT_PORTS_START( tking2 ) static INPUT_PORTS_START( stratos )
PORT_INCLUDE( saitek_stratos ) PORT_INCLUDE( saitek_stratos )
PORT_MODIFY("IN.6")
PORT_BIT(0x04, IP_ACTIVE_LOW, IPT_CUSTOM)
INPUT_PORTS_END
static INPUT_PORTS_START( tking2 )
PORT_INCLUDE( stratos )
PORT_MODIFY("IN.5") PORT_MODIFY("IN.5")
PORT_BIT(0x04, IP_ACTIVE_LOW, IPT_CUSTOM) PORT_BIT(0x04, IP_ACTIVE_LOW, IPT_CUSTOM)
INPUT_PORTS_END INPUT_PORTS_END
@ -474,8 +492,6 @@ void stratos_state::stratos(machine_config &config)
PWM_DISPLAY(config, m_display).set_size(2+4, 8+1); PWM_DISPLAY(config, m_display).set_size(2+4, 8+1);
config.set_default_layout(layout_saitek_stratos); config.set_default_layout(layout_saitek_stratos);
TIMER(config, "lcd_busy").configure_generic(timer_device::expired_delegate());
/* sound hardware */ /* sound hardware */
SPEAKER(config, "speaker").front_center(); SPEAKER(config, "speaker").front_center();
DAC_1BIT(config, m_dac).add_route(ALL_OUTPUTS, "speaker", 0.25); DAC_1BIT(config, m_dac).add_route(ALL_OUTPUTS, "speaker", 0.25);
@ -540,10 +556,10 @@ ROM_END
Drivers Drivers
******************************************************************************/ ******************************************************************************/
/* YEAR NAME PARENT CMP MACHINE INPUT CLASS INIT COMPANY, FULLNAME, FLAGS */ /* YEAR NAME PARENT CMP MACHINE INPUT CLASS INIT COMPANY, FULLNAME, FLAGS */
CONS( 1986, stratos, 0, 0, stratos, saitek_stratos, stratos_state, empty_init, "SciSys", "Kasparov Stratos (set 1)", MACHINE_SUPPORTS_SAVE | MACHINE_IMPERFECT_GRAPHICS | MACHINE_CLICKABLE_ARTWORK ) CONS( 1986, stratos, 0, 0, stratos, stratos, stratos_state, empty_init, "SciSys", "Kasparov Stratos (set 1)", MACHINE_SUPPORTS_SAVE | MACHINE_IMPERFECT_GRAPHICS | MACHINE_CLICKABLE_ARTWORK )
CONS( 1986, stratosa, stratos, 0, stratos, saitek_stratos, stratos_state, empty_init, "SciSys", "Kasparov Stratos (set 2)", MACHINE_SUPPORTS_SAVE | MACHINE_IMPERFECT_GRAPHICS | MACHINE_CLICKABLE_ARTWORK ) CONS( 1986, stratosa, stratos, 0, stratos, stratos, stratos_state, empty_init, "SciSys", "Kasparov Stratos (set 2)", MACHINE_SUPPORTS_SAVE | MACHINE_IMPERFECT_GRAPHICS | MACHINE_CLICKABLE_ARTWORK )
CONS( 1990, tking, 0, 0, tking2, tking2, stratos_state, empty_init, "Saitek", "Kasparov Turbo King (set 1, ver. D)", MACHINE_SUPPORTS_SAVE | MACHINE_IMPERFECT_GRAPHICS | MACHINE_CLICKABLE_ARTWORK ) // aka Turbo King II CONS( 1990, tking, 0, 0, tking2, tking2, stratos_state, empty_init, "Saitek", "Kasparov Turbo King (set 1, ver. D)", MACHINE_SUPPORTS_SAVE | MACHINE_IMPERFECT_GRAPHICS | MACHINE_CLICKABLE_ARTWORK ) // aka Turbo King II
CONS( 1988, tkinga, tking, 0, stratos, saitek_stratos, stratos_state, empty_init, "Saitek", "Kasparov Turbo King (set 2)", MACHINE_SUPPORTS_SAVE | MACHINE_IMPERFECT_GRAPHICS | MACHINE_CLICKABLE_ARTWORK ) // oldest? CONS( 1988, tkinga, tking, 0, stratos, stratos, stratos_state, empty_init, "Saitek", "Kasparov Turbo King (set 2)", MACHINE_SUPPORTS_SAVE | MACHINE_IMPERFECT_GRAPHICS | MACHINE_CLICKABLE_ARTWORK ) // oldest?
CONS( 1988, tkingb, tking, 0, stratos, saitek_stratos, stratos_state, empty_init, "Saitek", "Kasparov Turbo King (set 3)", MACHINE_SUPPORTS_SAVE | MACHINE_IMPERFECT_GRAPHICS | MACHINE_CLICKABLE_ARTWORK ) CONS( 1988, tkingb, tking, 0, stratos, stratos, stratos_state, empty_init, "Saitek", "Kasparov Turbo King (set 3)", MACHINE_SUPPORTS_SAVE | MACHINE_IMPERFECT_GRAPHICS | MACHINE_CLICKABLE_ARTWORK )

View File

@ -26,12 +26,10 @@ public:
saitek_stratos_state(const machine_config &mconfig, device_type type, const char *tag) : saitek_stratos_state(const machine_config &mconfig, device_type type, const char *tag) :
driver_device(mconfig, type, tag), driver_device(mconfig, type, tag),
m_maincpu(*this, "maincpu"), m_maincpu(*this, "maincpu"),
m_lcd_busy(*this, "lcd_busy"),
m_display(*this, "display"), m_display(*this, "display"),
m_extrom(*this, "extrom"), m_extrom(*this, "extrom"),
m_out_digit(*this, "digit%u", 0U), m_out_digit(*this, "digit%u", 0U),
m_out_lcd(*this, "lcd%u.%u.%u", 0U, 0U, 0U), m_out_lcd(*this, "lcd%u.%u.%u", 0U, 0U, 0U)
m_inputs(*this, "IN.%u", 0)
{ } { }
DECLARE_INPUT_CHANGED_MEMBER(cpu_freq) { set_cpu_freq(); } DECLARE_INPUT_CHANGED_MEMBER(cpu_freq) { set_cpu_freq(); }
@ -45,12 +43,10 @@ protected:
// devices/pointers // devices/pointers
required_device<cpu_device> m_maincpu; required_device<cpu_device> m_maincpu;
required_device<timer_device> m_lcd_busy;
required_device<pwm_display_device> m_display; required_device<pwm_display_device> m_display;
required_device<generic_slot_device> m_extrom; required_device<generic_slot_device> m_extrom;
output_finder<8+1> m_out_digit; output_finder<8+1> m_out_digit;
output_finder<4, 16, 4> m_out_lcd; output_finder<4, 16, 4> m_out_lcd;
required_ioport_array<8+1> m_inputs;
// common handlers // common handlers
void clear_lcd() { std::fill_n(m_lcd_data, ARRAY_LENGTH(m_lcd_data), 0); } void clear_lcd() { std::fill_n(m_lcd_data, ARRAY_LENGTH(m_lcd_data), 0); }
@ -59,9 +55,11 @@ protected:
void set_cpu_freq(); void set_cpu_freq();
DECLARE_DEVICE_IMAGE_LOAD_MEMBER(extrom_load); DECLARE_DEVICE_IMAGE_LOAD_MEMBER(extrom_load);
void lcd_w(u8 data); void lcd_data_w(u8 data);
void lcd_reset_w(u8 data = 0);
bool m_power; bool m_power;
bool m_lcd_ready;
u8 m_lcd_count; u8 m_lcd_count;
u8 m_lcd_address; u8 m_lcd_address;
u8 m_lcd_data[0x40]; u8 m_lcd_data[0x40];

View File

@ -330,7 +330,7 @@
<repeat count="8"> <repeat count="8">
<param name="x" start="0.2" increment="10" /> <param name="x" start="0.2" increment="10" />
<param name="i1" start="2" increment="1" /> <param name="i1" start="3" increment="1" />
<bezel name="~i1~.~i2~" element="led"><bounds x="~x~" y="~y~" width="1.5" height="1.5" /></bezel> <bezel name="~i1~.~i2~" element="led"><bounds x="~x~" y="~y~" width="1.5" height="1.5" /></bezel>
</repeat> </repeat>
</repeat> </repeat>
@ -499,7 +499,7 @@
<group name="lcd1"> <group name="lcd1">
<bounds x="15.5" y="0" width="22.5" height="14" /> <bounds x="15.5" y="0" width="22.5" height="14" />
<bezel name="digit0" element="digit"><bounds x="15.5" y="0" width="4" height="6" /></bezel> <bezel name="digit0" element="digit"><bounds x="15" y="0" width="4" height="6" /></bezel>
<bezel name="digit1" element="digit"><bounds x="20" y="0" width="4" height="6" /></bezel> <bezel name="digit1" element="digit"><bounds x="20" y="0" width="4" height="6" /></bezel>
<bezel name="digit2" element="digit"><bounds x="24" y="0" width="4" height="6" /></bezel> <bezel name="digit2" element="digit"><bounds x="24" y="0" width="4" height="6" /></bezel>
<bezel name="digit3" element="digit"><bounds x="30" y="0" width="4" height="6" /></bezel> <bezel name="digit3" element="digit"><bounds x="30" y="0" width="4" height="6" /></bezel>
@ -598,39 +598,39 @@
<element ref="text_library"> <bounds x="92.6" y="81.5" width="8.8" height="2" /></element> <element ref="text_library"> <bounds x="92.6" y="81.5" width="8.8" height="2" /></element>
<element ref="text_info"> <bounds x="92.6" y="86.5" width="8.8" height="2" /></element> <element ref="text_info"> <bounds x="92.6" y="86.5" width="8.8" height="2" /></element>
<element ref="ledo"><bounds x="93" y="11" width="1.6" height="0.6" /></element> <element ref="ledo"><bounds x="93" y="11" width="1.8" height="0.7" /></element>
<element ref="ledo"><bounds x="93" y="16" width="1.6" height="0.6" /></element> <element ref="ledo"><bounds x="93" y="16" width="1.8" height="0.7" /></element>
<element ref="ledo"><bounds x="93" y="21" width="1.6" height="0.6" /></element> <element ref="ledo"><bounds x="93" y="21" width="1.8" height="0.7" /></element>
<element ref="ledo"><bounds x="93" y="26" width="1.6" height="0.6" /></element> <element ref="ledo"><bounds x="93" y="26" width="1.8" height="0.7" /></element>
<element ref="ledo"><bounds x="93" y="31" width="1.6" height="0.6" /></element> <element ref="ledo"><bounds x="93" y="31" width="1.8" height="0.7" /></element>
<element ref="ledo"><bounds x="93" y="36" width="1.6" height="0.6" /></element> <element ref="ledo"><bounds x="93" y="36" width="1.8" height="0.7" /></element>
<element ref="ledo"><bounds x="93" y="41" width="1.6" height="0.6" /></element> <element ref="ledo"><bounds x="93" y="41" width="1.8" height="0.7" /></element>
<element ref="ledo"><bounds x="93" y="46" width="1.6" height="0.6" /></element> <element ref="ledo"><bounds x="93" y="46" width="1.8" height="0.7" /></element>
<element ref="ledo"><bounds x="93" y="51" width="1.6" height="0.6" /></element> <element ref="ledo"><bounds x="93" y="51" width="1.8" height="0.7" /></element>
<element ref="ledo"><bounds x="93" y="56" width="1.6" height="0.6" /></element> <element ref="ledo"><bounds x="93" y="56" width="1.8" height="0.7" /></element>
<element ref="ledo"><bounds x="93" y="61" width="1.6" height="0.6" /></element> <element ref="ledo"><bounds x="93" y="61" width="1.8" height="0.7" /></element>
<element ref="ledr" name="1.7" blend="add"><bounds x="93" y="11" width="1.6" height="0.6" /></element> <element ref="ledr" name="1.7" blend="add"><bounds x="93" y="11" width="1.8" height="0.7" /></element>
<element ref="ledr" name="1.6" blend="add"><bounds x="93" y="16" width="1.6" height="0.6" /></element> <element ref="ledr" name="1.6" blend="add"><bounds x="93" y="16" width="1.8" height="0.7" /></element>
<element ref="ledr" name="1.5" blend="add"><bounds x="93" y="21" width="1.6" height="0.6" /></element> <element ref="ledr" name="1.5" blend="add"><bounds x="93" y="21" width="1.8" height="0.7" /></element>
<element ref="ledr" name="1.4" blend="add"><bounds x="93" y="26" width="1.6" height="0.6" /></element> <element ref="ledr" name="1.4" blend="add"><bounds x="93" y="26" width="1.8" height="0.7" /></element>
<element ref="ledr" name="1.3" blend="add"><bounds x="93" y="31" width="1.6" height="0.6" /></element> <element ref="ledr" name="1.3" blend="add"><bounds x="93" y="31" width="1.8" height="0.7" /></element>
<element ref="ledr" name="1.2" blend="add"><bounds x="93" y="36" width="1.6" height="0.6" /></element> <element ref="ledr" name="1.2" blend="add"><bounds x="93" y="36" width="1.8" height="0.7" /></element>
<element ref="ledg" name="0.7" blend="add"><bounds x="93" y="11" width="1.6" height="0.6" /></element> <element ref="ledg" name="0.7" blend="add"><bounds x="93" y="11" width="1.8" height="0.7" /></element>
<element ref="ledg" name="0.6" blend="add"><bounds x="93" y="16" width="1.6" height="0.6" /></element> <element ref="ledg" name="0.6" blend="add"><bounds x="93" y="16" width="1.8" height="0.7" /></element>
<element ref="ledg" name="0.5" blend="add"><bounds x="93" y="21" width="1.6" height="0.6" /></element> <element ref="ledg" name="0.5" blend="add"><bounds x="93" y="21" width="1.8" height="0.7" /></element>
<element ref="ledg" name="0.4" blend="add"><bounds x="93" y="26" width="1.6" height="0.6" /></element> <element ref="ledg" name="0.4" blend="add"><bounds x="93" y="26" width="1.8" height="0.7" /></element>
<element ref="ledg" name="0.3" blend="add"><bounds x="93" y="31" width="1.6" height="0.6" /></element> <element ref="ledg" name="0.3" blend="add"><bounds x="93" y="31" width="1.8" height="0.7" /></element>
<element ref="ledg" name="0.2" blend="add"><bounds x="93" y="36" width="1.6" height="0.6" /></element> <element ref="ledg" name="0.2" blend="add"><bounds x="93" y="36" width="1.8" height="0.7" /></element>
<element ref="ledr" name="0.8" blend="add"><bounds x="93" y="41" width="1.6" height="0.6" /></element> <element ref="ledr" name="2.1" blend="add"><bounds x="93" y="41" width="1.8" height="0.7" /></element>
<element ref="ledr" name="1.8" blend="add"><bounds x="93" y="46" width="1.6" height="0.6" /></element> <element ref="ledr" name="2.0" blend="add"><bounds x="93" y="46" width="1.8" height="0.7" /></element>
<element ref="ledr" name="0.0" blend="add"><bounds x="93" y="51" width="1.6" height="0.6" /></element> <element ref="ledr" name="0.0" blend="add"><bounds x="93" y="51" width="1.8" height="0.7" /></element>
<element ref="ledr" name="1.0" blend="add"><bounds x="93" y="56" width="1.6" height="0.6" /></element> <element ref="ledr" name="1.0" blend="add"><bounds x="93" y="56" width="1.8" height="0.7" /></element>
<element ref="ledg" name="0.1" blend="add"><bounds x="93" y="61" width="1.6" height="0.6" /></element> <element ref="ledg" name="0.1" blend="add"><bounds x="93" y="61" width="1.8" height="0.7" /></element>
<element ref="ledr" name="1.1" blend="add"><bounds x="93" y="61" width="1.6" height="0.6" /></element> <element ref="ledr" name="1.1" blend="add"><bounds x="93" y="61" width="1.8" height="0.7" /></element>
<element ref="hl" inputtag="IN.3" inputmask="0x04"><bounds x="92.5" y="10.5" width="9" height="4" /><color alpha="0.15" /></element> <element ref="hl" inputtag="IN.3" inputmask="0x04"><bounds x="92.5" y="10.5" width="9" height="4" /><color alpha="0.15" /></element>
<element ref="hl" inputtag="IN.3" inputmask="0x01"><bounds x="92.5" y="15.5" width="9" height="4" /><color alpha="0.15" /></element> <element ref="hl" inputtag="IN.3" inputmask="0x01"><bounds x="92.5" y="15.5" width="9" height="4" /><color alpha="0.15" /></element>
@ -654,7 +654,7 @@
<element ref="hl" inputtag="IN.4" inputmask="0x04"><bounds x="70.5" y="96.5" width="9" height="4" /><color alpha="0.15" /></element> <element ref="hl" inputtag="IN.4" inputmask="0x04"><bounds x="70.5" y="96.5" width="9" height="4" /><color alpha="0.15" /></element>
<element ref="hl" inputtag="IN.5" inputmask="0x02"><bounds x="80.5" y="91.5" width="9" height="4" /><color alpha="0.15" /></element> <element ref="hl" inputtag="IN.5" inputmask="0x02"><bounds x="80.5" y="91.5" width="9" height="4" /><color alpha="0.15" /></element>
<element ref="hl" inputtag="IN.4" inputmask="0x02"><bounds x="80.5" y="96.5" width="9" height="4" /><color alpha="0.15" /></element> <element ref="hl" inputtag="IN.4" inputmask="0x02"><bounds x="80.5" y="96.5" width="9" height="4" /><color alpha="0.15" /></element>
<element ref="hl" inputtag="IN.x" inputmask="0x01"><bounds x="92.5" y="91.5" width="9" height="4" /><color alpha="0.15" /></element> <element ref="hl" inputtag="IN.5" inputmask="0x04"><bounds x="92.5" y="91.5" width="9" height="4" /><color alpha="0.15" /></element>
<element ref="hl" inputtag="IN.4" inputmask="0x01"><bounds x="92.5" y="96.5" width="9" height="4" /><color alpha="0.15" /></element> <element ref="hl" inputtag="IN.4" inputmask="0x01"><bounds x="92.5" y="96.5" width="9" height="4" /><color alpha="0.15" /></element>
</view> </view>

View File

@ -478,7 +478,7 @@
<group name="lcd1"> <group name="lcd1">
<bounds x="15.5" y="0" width="22.5" height="14" /> <bounds x="15.5" y="0" width="22.5" height="14" />
<bezel name="digit0" element="digit"><bounds x="15.5" y="0" width="4" height="6" /></bezel> <bezel name="digit0" element="digit"><bounds x="15" y="0" width="4" height="6" /></bezel>
<bezel name="digit1" element="digit"><bounds x="20" y="0" width="4" height="6" /></bezel> <bezel name="digit1" element="digit"><bounds x="20" y="0" width="4" height="6" /></bezel>
<bezel name="digit2" element="digit"><bounds x="24" y="0" width="4" height="6" /></bezel> <bezel name="digit2" element="digit"><bounds x="24" y="0" width="4" height="6" /></bezel>
<bezel name="digit3" element="digit"><bounds x="30" y="0" width="4" height="6" /></bezel> <bezel name="digit3" element="digit"><bounds x="30" y="0" width="4" height="6" /></bezel>
@ -509,57 +509,57 @@
<bezel element="whitew"><bounds x="25.14" y="92.5" width="14.86" height="9" /><color alpha="0.125" /></bezel> <bezel element="whitew"><bounds x="25.14" y="92.5" width="14.86" height="9" /><color alpha="0.125" /></bezel>
<!-- chessboard leds --> <!-- chessboard leds -->
<element ref="ledo"><bounds x="8.6" y="14.2" width="0.6" height="1.6" /></element> <element ref="ledo"><bounds x="8.6" y="14.15" width="0.7" height="1.8" /></element>
<element ref="ledo"><bounds x="8.6" y="24.2" width="0.6" height="1.6" /></element> <element ref="ledo"><bounds x="8.6" y="24.15" width="0.7" height="1.8" /></element>
<element ref="ledo"><bounds x="8.6" y="34.2" width="0.6" height="1.6" /></element> <element ref="ledo"><bounds x="8.6" y="34.15" width="0.7" height="1.8" /></element>
<element ref="ledo"><bounds x="8.6" y="44.2" width="0.6" height="1.6" /></element> <element ref="ledo"><bounds x="8.6" y="44.15" width="0.7" height="1.8" /></element>
<element ref="ledo"><bounds x="8.6" y="54.2" width="0.6" height="1.6" /></element> <element ref="ledo"><bounds x="8.6" y="54.15" width="0.7" height="1.8" /></element>
<element ref="ledo"><bounds x="8.6" y="64.2" width="0.6" height="1.6" /></element> <element ref="ledo"><bounds x="8.6" y="64.15" width="0.7" height="1.8" /></element>
<element ref="ledo"><bounds x="8.6" y="74.2" width="0.6" height="1.6" /></element> <element ref="ledo"><bounds x="8.6" y="74.15" width="0.7" height="1.8" /></element>
<element ref="ledo"><bounds x="8.6" y="84.2" width="0.6" height="1.6" /></element> <element ref="ledo"><bounds x="8.6" y="84.15" width="0.7" height="1.8" /></element>
<element ref="ledr" name="2.7" blend="add"><bounds x="8.6" y="14.2" width="0.6" height="1.6" /></element> <element ref="ledr" name="2.7" blend="add"><bounds x="8.6" y="14.1" width="0.7" height="1.8" /></element>
<element ref="ledr" name="2.6" blend="add"><bounds x="8.6" y="24.2" width="0.6" height="1.6" /></element> <element ref="ledr" name="2.6" blend="add"><bounds x="8.6" y="24.1" width="0.7" height="1.8" /></element>
<element ref="ledr" name="2.5" blend="add"><bounds x="8.6" y="34.2" width="0.6" height="1.6" /></element> <element ref="ledr" name="2.5" blend="add"><bounds x="8.6" y="34.1" width="0.7" height="1.8" /></element>
<element ref="ledr" name="2.4" blend="add"><bounds x="8.6" y="44.2" width="0.6" height="1.6" /></element> <element ref="ledr" name="2.4" blend="add"><bounds x="8.6" y="44.1" width="0.7" height="1.8" /></element>
<element ref="ledr" name="2.3" blend="add"><bounds x="8.6" y="54.2" width="0.6" height="1.6" /></element> <element ref="ledr" name="2.3" blend="add"><bounds x="8.6" y="54.1" width="0.7" height="1.8" /></element>
<element ref="ledr" name="2.2" blend="add"><bounds x="8.6" y="64.2" width="0.6" height="1.6" /></element> <element ref="ledr" name="2.2" blend="add"><bounds x="8.6" y="64.1" width="0.7" height="1.8" /></element>
<element ref="ledr" name="2.1" blend="add"><bounds x="8.6" y="74.2" width="0.6" height="1.6" /></element> <element ref="ledr" name="2.1" blend="add"><bounds x="8.6" y="74.1" width="0.7" height="1.8" /></element>
<element ref="ledr" name="2.0" blend="add"><bounds x="8.6" y="84.2" width="0.6" height="1.6" /></element> <element ref="ledr" name="2.0" blend="add"><bounds x="8.6" y="84.1" width="0.7" height="1.8" /></element>
<element ref="ledg" name="3.7" blend="add"><bounds x="8.6" y="14.2" width="0.6" height="1.6" /></element> <element ref="ledg" name="3.7" blend="add"><bounds x="8.6" y="14.1" width="0.7" height="1.8" /></element>
<element ref="ledg" name="3.6" blend="add"><bounds x="8.6" y="24.2" width="0.6" height="1.6" /></element> <element ref="ledg" name="3.6" blend="add"><bounds x="8.6" y="24.1" width="0.7" height="1.8" /></element>
<element ref="ledg" name="3.5" blend="add"><bounds x="8.6" y="34.2" width="0.6" height="1.6" /></element> <element ref="ledg" name="3.5" blend="add"><bounds x="8.6" y="34.1" width="0.7" height="1.8" /></element>
<element ref="ledg" name="3.4" blend="add"><bounds x="8.6" y="44.2" width="0.6" height="1.6" /></element> <element ref="ledg" name="3.4" blend="add"><bounds x="8.6" y="44.1" width="0.7" height="1.8" /></element>
<element ref="ledg" name="3.3" blend="add"><bounds x="8.6" y="54.2" width="0.6" height="1.6" /></element> <element ref="ledg" name="3.3" blend="add"><bounds x="8.6" y="54.1" width="0.7" height="1.8" /></element>
<element ref="ledg" name="3.2" blend="add"><bounds x="8.6" y="64.2" width="0.6" height="1.6" /></element> <element ref="ledg" name="3.2" blend="add"><bounds x="8.6" y="64.1" width="0.7" height="1.8" /></element>
<element ref="ledg" name="3.1" blend="add"><bounds x="8.6" y="74.2" width="0.6" height="1.6" /></element> <element ref="ledg" name="3.1" blend="add"><bounds x="8.6" y="74.1" width="0.7" height="1.8" /></element>
<element ref="ledg" name="3.0" blend="add"><bounds x="8.6" y="84.2" width="0.6" height="1.6" /></element> <element ref="ledg" name="3.0" blend="add"><bounds x="8.6" y="84.1" width="0.7" height="1.8" /></element>
<element ref="ledo"><bounds x="14.2" y="90.8" width="1.6" height="0.6" /></element> <element ref="ledo"><bounds x="14.1" y="90.7" width="1.8" height="0.7" /></element>
<element ref="ledo"><bounds x="24.2" y="90.8" width="1.6" height="0.6" /></element> <element ref="ledo"><bounds x="24.1" y="90.7" width="1.8" height="0.7" /></element>
<element ref="ledo"><bounds x="34.2" y="90.8" width="1.6" height="0.6" /></element> <element ref="ledo"><bounds x="34.1" y="90.7" width="1.8" height="0.7" /></element>
<element ref="ledo"><bounds x="44.2" y="90.8" width="1.6" height="0.6" /></element> <element ref="ledo"><bounds x="44.1" y="90.7" width="1.8" height="0.7" /></element>
<element ref="ledo"><bounds x="54.2" y="90.8" width="1.6" height="0.6" /></element> <element ref="ledo"><bounds x="54.1" y="90.7" width="1.8" height="0.7" /></element>
<element ref="ledo"><bounds x="64.2" y="90.8" width="1.6" height="0.6" /></element> <element ref="ledo"><bounds x="64.1" y="90.7" width="1.8" height="0.7" /></element>
<element ref="ledo"><bounds x="74.2" y="90.8" width="1.6" height="0.6" /></element> <element ref="ledo"><bounds x="74.1" y="90.7" width="1.8" height="0.7" /></element>
<element ref="ledo"><bounds x="84.2" y="90.8" width="1.6" height="0.6" /></element> <element ref="ledo"><bounds x="84.1" y="90.7" width="1.8" height="0.7" /></element>
<element ref="ledr" name="4.0" blend="add"><bounds x="14.2" y="90.8" width="1.6" height="0.6" /></element> <element ref="ledr" name="4.0" blend="add"><bounds x="14.1" y="90.7" width="1.8" height="0.7" /></element>
<element ref="ledr" name="4.1" blend="add"><bounds x="24.2" y="90.8" width="1.6" height="0.6" /></element> <element ref="ledr" name="4.1" blend="add"><bounds x="24.1" y="90.7" width="1.8" height="0.7" /></element>
<element ref="ledr" name="4.2" blend="add"><bounds x="34.2" y="90.8" width="1.6" height="0.6" /></element> <element ref="ledr" name="4.2" blend="add"><bounds x="34.1" y="90.7" width="1.8" height="0.7" /></element>
<element ref="ledr" name="4.3" blend="add"><bounds x="44.2" y="90.8" width="1.6" height="0.6" /></element> <element ref="ledr" name="4.3" blend="add"><bounds x="44.1" y="90.7" width="1.8" height="0.7" /></element>
<element ref="ledr" name="4.4" blend="add"><bounds x="54.2" y="90.8" width="1.6" height="0.6" /></element> <element ref="ledr" name="4.4" blend="add"><bounds x="54.1" y="90.7" width="1.8" height="0.7" /></element>
<element ref="ledr" name="4.5" blend="add"><bounds x="64.2" y="90.8" width="1.6" height="0.6" /></element> <element ref="ledr" name="4.5" blend="add"><bounds x="64.1" y="90.7" width="1.8" height="0.7" /></element>
<element ref="ledr" name="4.6" blend="add"><bounds x="74.2" y="90.8" width="1.6" height="0.6" /></element> <element ref="ledr" name="4.6" blend="add"><bounds x="74.1" y="90.7" width="1.8" height="0.7" /></element>
<element ref="ledr" name="4.7" blend="add"><bounds x="84.2" y="90.8" width="1.6" height="0.6" /></element> <element ref="ledr" name="4.7" blend="add"><bounds x="84.1" y="90.7" width="1.8" height="0.7" /></element>
<element ref="ledg" name="5.0" blend="add"><bounds x="14.2" y="90.8" width="1.6" height="0.6" /></element> <element ref="ledg" name="5.0" blend="add"><bounds x="14.1" y="90.7" width="1.8" height="0.7" /></element>
<element ref="ledg" name="5.1" blend="add"><bounds x="24.2" y="90.8" width="1.6" height="0.6" /></element> <element ref="ledg" name="5.1" blend="add"><bounds x="24.1" y="90.7" width="1.8" height="0.7" /></element>
<element ref="ledg" name="5.2" blend="add"><bounds x="34.2" y="90.8" width="1.6" height="0.6" /></element> <element ref="ledg" name="5.2" blend="add"><bounds x="34.1" y="90.7" width="1.8" height="0.7" /></element>
<element ref="ledg" name="5.3" blend="add"><bounds x="44.2" y="90.8" width="1.6" height="0.6" /></element> <element ref="ledg" name="5.3" blend="add"><bounds x="44.1" y="90.7" width="1.8" height="0.7" /></element>
<element ref="ledg" name="5.4" blend="add"><bounds x="54.2" y="90.8" width="1.6" height="0.6" /></element> <element ref="ledg" name="5.4" blend="add"><bounds x="54.1" y="90.7" width="1.8" height="0.7" /></element>
<element ref="ledg" name="5.5" blend="add"><bounds x="64.2" y="90.8" width="1.6" height="0.6" /></element> <element ref="ledg" name="5.5" blend="add"><bounds x="64.1" y="90.7" width="1.8" height="0.7" /></element>
<element ref="ledg" name="5.6" blend="add"><bounds x="74.2" y="90.8" width="1.6" height="0.6" /></element> <element ref="ledg" name="5.6" blend="add"><bounds x="74.1" y="90.7" width="1.8" height="0.7" /></element>
<element ref="ledg" name="5.7" blend="add"><bounds x="84.2" y="90.8" width="1.6" height="0.6" /></element> <element ref="ledg" name="5.7" blend="add"><bounds x="84.1" y="90.7" width="1.8" height="0.7" /></element>
<!-- button panel --> <!-- button panel -->
<element ref="black"><bounds x="92.5" y="40.5" width="9" height="0.25" /></element> <element ref="black"><bounds x="92.5" y="40.5" width="9" height="0.25" /></element>
@ -628,39 +628,39 @@
<element ref="text_info"> <bounds x="92.6" y="86.5" width="8.8" height="2" /></element> <element ref="text_info"> <bounds x="92.6" y="86.5" width="8.8" height="2" /></element>
<element ref="text_play"> <bounds x="92.6" y="96" width="8.8" height="2" /></element> <element ref="text_play"> <bounds x="92.6" y="96" width="8.8" height="2" /></element>
<element ref="ledo"><bounds x="93" y="11" width="1.6" height="0.6" /></element> <element ref="ledo"><bounds x="93" y="11" width="1.8" height="0.7" /></element>
<element ref="ledo"><bounds x="93" y="16" width="1.6" height="0.6" /></element> <element ref="ledo"><bounds x="93" y="16" width="1.8" height="0.7" /></element>
<element ref="ledo"><bounds x="93" y="21" width="1.6" height="0.6" /></element> <element ref="ledo"><bounds x="93" y="21" width="1.8" height="0.7" /></element>
<element ref="ledo"><bounds x="93" y="26" width="1.6" height="0.6" /></element> <element ref="ledo"><bounds x="93" y="26" width="1.8" height="0.7" /></element>
<element ref="ledo"><bounds x="93" y="31" width="1.6" height="0.6" /></element> <element ref="ledo"><bounds x="93" y="31" width="1.8" height="0.7" /></element>
<element ref="ledo"><bounds x="93" y="36" width="1.6" height="0.6" /></element> <element ref="ledo"><bounds x="93" y="36" width="1.8" height="0.7" /></element>
<element ref="ledo"><bounds x="93" y="41" width="1.6" height="0.6" /></element> <element ref="ledo"><bounds x="93" y="41" width="1.8" height="0.7" /></element>
<element ref="ledo"><bounds x="93" y="46" width="1.6" height="0.6" /></element> <element ref="ledo"><bounds x="93" y="46" width="1.8" height="0.7" /></element>
<element ref="ledo"><bounds x="93" y="51" width="1.6" height="0.6" /></element> <element ref="ledo"><bounds x="93" y="51" width="1.8" height="0.7" /></element>
<element ref="ledo"><bounds x="93" y="56" width="1.6" height="0.6" /></element> <element ref="ledo"><bounds x="93" y="56" width="1.8" height="0.7" /></element>
<element ref="ledo"><bounds x="93" y="61" width="1.6" height="0.6" /></element> <element ref="ledo"><bounds x="93" y="61" width="1.8" height="0.7" /></element>
<element ref="ledg" name="1.7" blend="add"><bounds x="93" y="11" width="1.6" height="0.6" /></element> <element ref="ledg" name="1.7" blend="add"><bounds x="93" y="11" width="1.8" height="0.7" /></element>
<element ref="ledg" name="1.6" blend="add"><bounds x="93" y="16" width="1.6" height="0.6" /></element> <element ref="ledg" name="1.6" blend="add"><bounds x="93" y="16" width="1.8" height="0.7" /></element>
<element ref="ledg" name="1.5" blend="add"><bounds x="93" y="21" width="1.6" height="0.6" /></element> <element ref="ledg" name="1.5" blend="add"><bounds x="93" y="21" width="1.8" height="0.7" /></element>
<element ref="ledg" name="1.4" blend="add"><bounds x="93" y="26" width="1.6" height="0.6" /></element> <element ref="ledg" name="1.4" blend="add"><bounds x="93" y="26" width="1.8" height="0.7" /></element>
<element ref="ledg" name="1.3" blend="add"><bounds x="93" y="31" width="1.6" height="0.6" /></element> <element ref="ledg" name="1.3" blend="add"><bounds x="93" y="31" width="1.8" height="0.7" /></element>
<element ref="ledg" name="1.2" blend="add"><bounds x="93" y="36" width="1.6" height="0.6" /></element> <element ref="ledg" name="1.2" blend="add"><bounds x="93" y="36" width="1.8" height="0.7" /></element>
<element ref="ledr" name="0.7" blend="add"><bounds x="93" y="11" width="1.6" height="0.6" /></element> <element ref="ledr" name="0.7" blend="add"><bounds x="93" y="11" width="1.8" height="0.7" /></element>
<element ref="ledr" name="0.6" blend="add"><bounds x="93" y="16" width="1.6" height="0.6" /></element> <element ref="ledr" name="0.6" blend="add"><bounds x="93" y="16" width="1.8" height="0.7" /></element>
<element ref="ledr" name="0.5" blend="add"><bounds x="93" y="21" width="1.6" height="0.6" /></element> <element ref="ledr" name="0.5" blend="add"><bounds x="93" y="21" width="1.8" height="0.7" /></element>
<element ref="ledr" name="0.4" blend="add"><bounds x="93" y="26" width="1.6" height="0.6" /></element> <element ref="ledr" name="0.4" blend="add"><bounds x="93" y="26" width="1.8" height="0.7" /></element>
<element ref="ledr" name="0.3" blend="add"><bounds x="93" y="31" width="1.6" height="0.6" /></element> <element ref="ledr" name="0.3" blend="add"><bounds x="93" y="31" width="1.8" height="0.7" /></element>
<element ref="ledr" name="0.2" blend="add"><bounds x="93" y="36" width="1.6" height="0.6" /></element> <element ref="ledr" name="0.2" blend="add"><bounds x="93" y="36" width="1.8" height="0.7" /></element>
<element ref="ledr" name="0.1" blend="add"><bounds x="93" y="41" width="1.6" height="0.6" /></element> <element ref="ledr" name="0.1" blend="add"><bounds x="93" y="41" width="1.8" height="0.7" /></element>
<element ref="ledr" name="1.1" blend="add"><bounds x="93" y="46" width="1.6" height="0.6" /></element> <element ref="ledr" name="1.1" blend="add"><bounds x="93" y="46" width="1.8" height="0.7" /></element>
<element ref="ledr" name="0.0" blend="add"><bounds x="93" y="51" width="1.6" height="0.6" /></element> <element ref="ledr" name="0.0" blend="add"><bounds x="93" y="51" width="1.8" height="0.7" /></element>
<element ref="ledr" name="1.0" blend="add"><bounds x="93" y="56" width="1.6" height="0.6" /></element> <element ref="ledr" name="1.0" blend="add"><bounds x="93" y="56" width="1.8" height="0.7" /></element>
<element ref="ledg" name="1.8" blend="add"><bounds x="93" y="61" width="1.6" height="0.6" /></element> <element ref="ledg" name="1.8" blend="add"><bounds x="93" y="61" width="1.8" height="0.7" /></element>
<element ref="ledr" name="0.8" blend="add"><bounds x="93" y="61" width="1.6" height="0.6" /></element> <element ref="ledr" name="0.8" blend="add"><bounds x="93" y="61" width="1.8" height="0.7" /></element>
<element ref="hl" inputtag="IN.3" inputmask="0x04"><bounds x="92.5" y="10.5" width="9" height="4" /><color alpha="0.15" /></element> <element ref="hl" inputtag="IN.3" inputmask="0x04"><bounds x="92.5" y="10.5" width="9" height="4" /><color alpha="0.15" /></element>
<element ref="hl" inputtag="IN.3" inputmask="0x01"><bounds x="92.5" y="15.5" width="9" height="4" /><color alpha="0.15" /></element> <element ref="hl" inputtag="IN.3" inputmask="0x01"><bounds x="92.5" y="15.5" width="9" height="4" /><color alpha="0.15" /></element>