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_nvrambank(*this, "nvrambank"),
m_board(*this, "board"),
m_dac(*this, "dac")
m_dac(*this, "dac"),
m_inputs(*this, "IN.%u", 0)
{ }
// machine drivers
@ -86,18 +87,19 @@ private:
required_memory_bank m_nvrambank;
required_device<sensorboard_device> m_board;
required_device<dac_bit_interface> m_dac;
required_ioport_array<8+1> m_inputs;
void main_map(address_map &map);
void update_leds();
// I/O handlers
void update_leds();
DECLARE_WRITE8_MEMBER(select_w);
DECLARE_READ8_MEMBER(chessboard_r);
DECLARE_WRITE8_MEMBER(sound_w);
DECLARE_WRITE8_MEMBER(leds_w);
DECLARE_READ8_MEMBER(control_r);
DECLARE_WRITE8_MEMBER(control_w);
DECLARE_READ8_MEMBER(lcd_r);
DECLARE_READ8_MEMBER(lcd_data_r);
DECLARE_READ8_MEMBER(extrom_r);
std::unique_ptr<u8[]> m_nvram_data;
@ -117,11 +119,13 @@ void saitek_stratos_state::machine_start()
// zerofill
m_power = false;
m_lcd_ready = false;
m_lcd_count = 0;
m_lcd_address = 0;
// register for savestates
save_item(NAME(m_power));
save_item(NAME(m_lcd_ready));
save_item(NAME(m_lcd_count));
save_item(NAME(m_lcd_address));
save_item(NAME(m_lcd_data));
@ -130,6 +134,7 @@ void saitek_stratos_state::machine_start()
void saitek_stratos_state::machine_reset()
{
m_power = true;
m_lcd_ready = false;
m_lcd_count = 0;
clear_lcd();
@ -241,16 +246,16 @@ void saitek_stratos_state::update_lcd()
m_out_digit[0] = 0; // where?
// upper digits
// upper digits (colon is at 0x00)
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;
// lower digits
// lower digits (colon is at 0x10)
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;
}
void saitek_stratos_state::lcd_w(u8 data)
void saitek_stratos_state::lcd_data_w(u8 data)
{
// d0-d3: lcd data
// d4-d7: unused?
@ -274,14 +279,12 @@ void saitek_stratos_state::lcd_w(u8 data)
}
else
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
return 0;
m_lcd_count = 0;
m_lcd_ready = true;
}
@ -294,7 +297,7 @@ void stratos_state::update_leds()
WRITE8_MEMBER(stratos_state::leds_w)
{
// d0-d7: button leds data
// d0-d7: button led data
m_led_data = data;
update_leds();
@ -327,11 +330,12 @@ READ8_MEMBER(stratos_state::control_r)
if (sel == 8)
{
// lcd busy flag?
if (m_lcd_busy->enabled())
// d5: lcd status flag?
if (m_lcd_ready)
data |= 0x20;
m_lcd_ready = false;
// battery low
// d7: battery low
data |= m_inputs[8]->read();
}
@ -354,7 +358,7 @@ WRITE8_MEMBER(stratos_state::control_w)
m_nvrambank->set_entry((data >> 1) & 1);
// d2: mode led state
// d5: button leds select
// d5: button led select
update_leds();
// d6 falling edge: power-off request
@ -362,6 +366,13 @@ WRITE8_MEMBER(stratos_state::control_w)
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(0x2600, 0x2600).rw(FUNC(stratos_state::control_r), FUNC(stratos_state::control_w));
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(0x8000, 0xffff).bankr("rombank");
}
@ -421,7 +432,7 @@ INPUT_PORTS_START( saitek_stratos )
PORT_START("IN.6")
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(0x04, IP_ACTIVE_LOW, IPT_CUSTOM) // freq sel
PORT_BIT(0x04, IP_ACTIVE_HIGH, IPT_CUSTOM) // freq sel
PORT_START("IN.7")
PORT_BIT(0x01, IP_ACTIVE_HIGH, IPT_UNUSED)
@ -443,9 +454,16 @@ INPUT_PORTS_START( saitek_stratos )
PORT_CONFSETTING( 0x01, "5.67MHz" )
INPUT_PORTS_END
static INPUT_PORTS_START( tking2 )
static INPUT_PORTS_START( 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_BIT(0x04, IP_ACTIVE_LOW, IPT_CUSTOM)
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);
config.set_default_layout(layout_saitek_stratos);
TIMER(config, "lcd_busy").configure_generic(timer_device::expired_delegate());
/* sound hardware */
SPEAKER(config, "speaker").front_center();
DAC_1BIT(config, m_dac).add_route(ALL_OUTPUTS, "speaker", 0.25);
@ -540,10 +556,10 @@ ROM_END
Drivers
******************************************************************************/
/* 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, stratosa, stratos, 0, stratos, saitek_stratos, stratos_state, empty_init, "SciSys", "Kasparov Stratos (set 2)", MACHINE_SUPPORTS_SAVE | MACHINE_IMPERFECT_GRAPHICS | MACHINE_CLICKABLE_ARTWORK )
/* YEAR NAME PARENT CMP MACHINE INPUT CLASS INIT COMPANY, FULLNAME, FLAGS */
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, 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( 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, 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( 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, 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, 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) :
driver_device(mconfig, type, tag),
m_maincpu(*this, "maincpu"),
m_lcd_busy(*this, "lcd_busy"),
m_display(*this, "display"),
m_extrom(*this, "extrom"),
m_out_digit(*this, "digit%u", 0U),
m_out_lcd(*this, "lcd%u.%u.%u", 0U, 0U, 0U),
m_inputs(*this, "IN.%u", 0)
m_out_lcd(*this, "lcd%u.%u.%u", 0U, 0U, 0U)
{ }
DECLARE_INPUT_CHANGED_MEMBER(cpu_freq) { set_cpu_freq(); }
@ -45,12 +43,10 @@ protected:
// devices/pointers
required_device<cpu_device> m_maincpu;
required_device<timer_device> m_lcd_busy;
required_device<pwm_display_device> m_display;
required_device<generic_slot_device> m_extrom;
output_finder<8+1> m_out_digit;
output_finder<4, 16, 4> m_out_lcd;
required_ioport_array<8+1> m_inputs;
// common handlers
void clear_lcd() { std::fill_n(m_lcd_data, ARRAY_LENGTH(m_lcd_data), 0); }
@ -59,9 +55,11 @@ protected:
void set_cpu_freq();
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_lcd_ready;
u8 m_lcd_count;
u8 m_lcd_address;
u8 m_lcd_data[0x40];

View File

@ -330,7 +330,7 @@
<repeat count="8">
<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>
</repeat>
</repeat>
@ -499,7 +499,7 @@
<group name="lcd1">
<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="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>
@ -598,39 +598,39 @@
<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="ledo"><bounds x="93" y="11" width="1.6" height="0.6" /></element>
<element ref="ledo"><bounds x="93" y="16" width="1.6" height="0.6" /></element>
<element ref="ledo"><bounds x="93" y="21" width="1.6" height="0.6" /></element>
<element ref="ledo"><bounds x="93" y="26" width="1.6" height="0.6" /></element>
<element ref="ledo"><bounds x="93" y="31" width="1.6" height="0.6" /></element>
<element ref="ledo"><bounds x="93" y="36" width="1.6" height="0.6" /></element>
<element ref="ledo"><bounds x="93" y="41" width="1.6" height="0.6" /></element>
<element ref="ledo"><bounds x="93" y="46" width="1.6" height="0.6" /></element>
<element ref="ledo"><bounds x="93" y="51" width="1.6" height="0.6" /></element>
<element ref="ledo"><bounds x="93" y="56" width="1.6" height="0.6" /></element>
<element ref="ledo"><bounds x="93" y="61" 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.8" height="0.7" /></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.8" height="0.7" /></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.8" height="0.7" /></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.8" height="0.7" /></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.8" height="0.7" /></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.6" blend="add"><bounds x="93" y="16" width="1.6" height="0.6" /></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.4" blend="add"><bounds x="93" y="26" width="1.6" height="0.6" /></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.2" blend="add"><bounds x="93" y="36" 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.8" height="0.7" /></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.8" height="0.7" /></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.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.6" blend="add"><bounds x="93" y="16" width="1.6" height="0.6" /></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.4" blend="add"><bounds x="93" y="26" width="1.6" height="0.6" /></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.2" blend="add"><bounds x="93" y="36" 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.8" height="0.7" /></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.8" height="0.7" /></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.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="1.8" blend="add"><bounds x="93" y="46" width="1.6" height="0.6" /></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="1.0" blend="add"><bounds x="93" y="56" 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="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.8" height="0.7" /></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="ledr" name="1.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.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="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.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.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>
</view>

View File

@ -478,7 +478,7 @@
<group name="lcd1">
<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="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>
@ -509,57 +509,57 @@
<bezel element="whitew"><bounds x="25.14" y="92.5" width="14.86" height="9" /><color alpha="0.125" /></bezel>
<!-- 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="24.2" width="0.6" height="1.6" /></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="44.2" width="0.6" height="1.6" /></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="64.2" width="0.6" height="1.6" /></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="84.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.15" width="0.7" height="1.8" /></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.15" width="0.7" height="1.8" /></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.15" width="0.7" height="1.8" /></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.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.6" blend="add"><bounds x="8.6" y="24.2" width="0.6" height="1.6" /></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.4" blend="add"><bounds x="8.6" y="44.2" width="0.6" height="1.6" /></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.2" blend="add"><bounds x="8.6" y="64.2" width="0.6" height="1.6" /></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.0" blend="add"><bounds x="8.6" y="84.2" width="0.6" height="1.6" /></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.6" blend="add"><bounds x="8.6" y="24.2" width="0.6" height="1.6" /></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.4" blend="add"><bounds x="8.6" y="44.2" width="0.6" height="1.6" /></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.2" blend="add"><bounds x="8.6" y="64.2" width="0.6" height="1.6" /></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.0" blend="add"><bounds x="8.6" y="84.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.1" width="0.7" height="1.8" /></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.1" width="0.7" height="1.8" /></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.1" width="0.7" height="1.8" /></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.1" width="0.7" height="1.8" /></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.1" width="0.7" height="1.8" /></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.1" width="0.7" height="1.8" /></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.1" width="0.7" height="1.8" /></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.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="24.2" y="90.8" width="1.6" height="0.6" /></element>
<element ref="ledo"><bounds x="34.2" y="90.8" width="1.6" height="0.6" /></element>
<element ref="ledo"><bounds x="44.2" y="90.8" width="1.6" height="0.6" /></element>
<element ref="ledo"><bounds x="54.2" y="90.8" width="1.6" height="0.6" /></element>
<element ref="ledo"><bounds x="64.2" y="90.8" width="1.6" height="0.6" /></element>
<element ref="ledo"><bounds x="74.2" y="90.8" width="1.6" height="0.6" /></element>
<element ref="ledo"><bounds x="84.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.1" y="90.7" width="1.8" height="0.7" /></element>
<element ref="ledo"><bounds x="34.1" y="90.7" width="1.8" height="0.7" /></element>
<element ref="ledo"><bounds x="44.1" y="90.7" width="1.8" height="0.7" /></element>
<element ref="ledo"><bounds x="54.1" y="90.7" width="1.8" height="0.7" /></element>
<element ref="ledo"><bounds x="64.1" y="90.7" width="1.8" height="0.7" /></element>
<element ref="ledo"><bounds x="74.1" y="90.7" width="1.8" height="0.7" /></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.1" blend="add"><bounds x="24.2" y="90.8" width="1.6" height="0.6" /></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.3" blend="add"><bounds x="44.2" y="90.8" width="1.6" height="0.6" /></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.5" blend="add"><bounds x="64.2" y="90.8" width="1.6" height="0.6" /></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.7" blend="add"><bounds x="84.2" y="90.8" width="1.6" height="0.6" /></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.1" blend="add"><bounds x="24.2" y="90.8" width="1.6" height="0.6" /></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.3" blend="add"><bounds x="44.2" y="90.8" width="1.6" height="0.6" /></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.5" blend="add"><bounds x="64.2" y="90.8" width="1.6" height="0.6" /></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.7" blend="add"><bounds x="84.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.1" y="90.7" width="1.8" height="0.7" /></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.1" y="90.7" width="1.8" height="0.7" /></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.1" y="90.7" width="1.8" height="0.7" /></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.1" y="90.7" width="1.8" height="0.7" /></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.1" y="90.7" width="1.8" height="0.7" /></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.1" y="90.7" width="1.8" height="0.7" /></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.1" y="90.7" width="1.8" height="0.7" /></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.1" y="90.7" width="1.8" height="0.7" /></element>
<!-- button panel -->
<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_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="16" width="1.6" height="0.6" /></element>
<element ref="ledo"><bounds x="93" y="21" width="1.6" height="0.6" /></element>
<element ref="ledo"><bounds x="93" y="26" width="1.6" height="0.6" /></element>
<element ref="ledo"><bounds x="93" y="31" width="1.6" height="0.6" /></element>
<element ref="ledo"><bounds x="93" y="36" width="1.6" height="0.6" /></element>
<element ref="ledo"><bounds x="93" y="41" width="1.6" height="0.6" /></element>
<element ref="ledo"><bounds x="93" y="46" width="1.6" height="0.6" /></element>
<element ref="ledo"><bounds x="93" y="51" width="1.6" height="0.6" /></element>
<element ref="ledo"><bounds x="93" y="56" width="1.6" height="0.6" /></element>
<element ref="ledo"><bounds x="93" y="61" 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.8" height="0.7" /></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.8" height="0.7" /></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.8" height="0.7" /></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.8" height="0.7" /></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.8" height="0.7" /></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.6" blend="add"><bounds x="93" y="16" width="1.6" height="0.6" /></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.4" blend="add"><bounds x="93" y="26" width="1.6" height="0.6" /></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.2" blend="add"><bounds x="93" y="36" 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.8" height="0.7" /></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.8" height="0.7" /></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.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.6" blend="add"><bounds x="93" y="16" width="1.6" height="0.6" /></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.4" blend="add"><bounds x="93" y="26" width="1.6" height="0.6" /></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.2" blend="add"><bounds x="93" y="36" 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.8" height="0.7" /></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.8" height="0.7" /></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.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="1.1" blend="add"><bounds x="93" y="46" width="1.6" height="0.6" /></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="1.0" blend="add"><bounds x="93" y="56" 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.8" height="0.7" /></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.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="ledr" name="0.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.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="0x01"><bounds x="92.5" y="15.5" width="9" height="4" /><color alpha="0.15" /></element>