Refactored a few things related to reels and use of layouts allowing for more function with less work [David Haywood]

Comment:  I need to check a few more things, see how bad performance gets if we force some elements to render each update rather than using cached bitmaps, the idea of ending up with up to 200,000 temporary bitmaps for each 16 segment LED with the existing code is quite frankly horrendous, but from what I understand it's entirely possible it could happen.
This commit is contained in:
Scott Stone 2012-04-20 14:51:24 +00:00
parent f841751e50
commit 4d32568ca0
6 changed files with 171 additions and 434 deletions

View File

@ -482,6 +482,10 @@ layout_element::layout_element(running_machine &machine, xml_data_node &elemnode
m_maxstate = 262143;
if (newcomp.m_type == component::CTYPE_DOTMATRIX)
m_maxstate = 255;
if (newcomp.m_type == component::CTYPE_SIMPLECOUNTER)
{
m_maxstate = xml_get_attribute_int_with_subst(machine, *compnode, "maxstate", 999);
}
}
// determine the scale/offset for normalization
@ -632,6 +636,13 @@ layout_element::component::component(running_machine &machine, xml_data_node &co
else if (strcmp(compnode.name, "dotmatrix") == 0)
m_type = CTYPE_DOTMATRIX;
// simplecounter nodes
else if (strcmp(compnode.name, "simplecounter") == 0)
{
m_type = CTYPE_SIMPLECOUNTER;
m_digits = xml_get_attribute_int_with_subst(machine, compnode, "digits", 2);
}
// led7seg nodes
else if (strcmp(compnode.name, "led7seg") == 0)
m_type = CTYPE_LED7SEG;
@ -729,6 +740,10 @@ void layout_element::component::draw(running_machine &machine, bitmap_argb32 &de
draw_dotmatrix(dest, bounds, state);
break;
case CTYPE_SIMPLECOUNTER:
draw_simplecounter(machine, dest, bounds, state);
break;
default:
throw emu_fatalerror("Unknown component type requested draw()");
}
@ -840,6 +855,8 @@ void layout_element::component::draw_text(running_machine &machine, bitmap_argb3
render_font *font = machine.render().font_alloc("default");
float aspect = 1.0f;
INT32 width;
while (1)
{
width = font->string_width(bounds.height(), aspect, m_string);
@ -848,6 +865,7 @@ void layout_element::component::draw_text(running_machine &machine, bitmap_argb3
aspect *= 0.9f;
}
// get alignment
INT32 curx;
switch (m_textalign)
@ -914,6 +932,14 @@ void layout_element::component::draw_text(running_machine &machine, bitmap_argb3
machine.render().font_free(font);
}
void layout_element::component::draw_simplecounter(running_machine &machine, bitmap_argb32 &dest, const rectangle &bounds, int state)
{
char temp[256];
sprintf(temp, "%0*d", m_digits, state);
m_string = astring(temp);
draw_text(machine, dest, bounds);
}
//-------------------------------------------------
// load_bitmap - load a PNG file with artwork for

View File

@ -121,6 +121,7 @@ private:
CTYPE_LED14SEGSC,
CTYPE_LED16SEGSC,
CTYPE_DOTMATRIX,
CTYPE_SIMPLECOUNTER,
CTYPE_MAX
};
@ -128,6 +129,7 @@ private:
void draw_rect(bitmap_argb32 &dest, const rectangle &bounds);
void draw_disk(bitmap_argb32 &dest, const rectangle &bounds);
void draw_text(running_machine &machine, bitmap_argb32 &dest, const rectangle &bounds);
void draw_simplecounter(running_machine &machine, bitmap_argb32 &dest, const rectangle &bounds, int state);
void load_bitmap();
void draw_led7seg(bitmap_argb32 &dest, const rectangle &bounds, int pattern);
void draw_led14seg(bitmap_argb32 &dest, const rectangle &bounds, int pattern);
@ -152,6 +154,7 @@ private:
render_bounds m_bounds; // bounds of the element
render_color m_color; // color of the element
astring m_string; // string for text components
int m_digits; // number of digits for simple counters
int m_textalign; // text alignment to box
bitmap_argb32 m_bitmap; // source bitmap for images
astring m_dirname; // directory name of image file (for lazy loading)

View File

@ -22648,8 +22648,6 @@ ROM_START( sc_unsrt )
// 95008423.bin sc4goldw Golden Winner (Bellfruit) (Scorpion 4)
// Champion Chips (Bellfruit)
ROM_LOAD( "95008558.bin", 0x0000, 0x100000, CRC(6c032de9) SHA1(3aed801f8b6f2d62fffa03054afd8ff1c3ff3ac3) )
// Clever Clogs (Mazooma)
ROM_LOAD( "95008361.bin", 0x0000, 0x0ff54f, CRC(d1cc7b58) SHA1(32328e0e56bbf65e91e32de8802edce38f0abc65) )
// Costa Del Dosh (Bellfruit)
ROM_LOAD( "95008420.bin", 0x0000, 0x100000, CRC(cce5f09a) SHA1(8b1f30eb1c48a3e3c6c403f28e97918ddac51033) )
// Deal Or No Deal Red Hot (Bellfruit)
@ -22754,31 +22752,63 @@ GAME( 200?, sc4pstatj ,sc4pstat, sc4, sc4, sc4, ROT0, "QPS","Paystation (V041) (
GAME( 200?, sc4pstato ,sc4pstat, sc4, sc4, sc4, ROT0, "QPS","Paystation (V042) (Qps) (Scorpion 4) (set 1)", GAME_IS_SKELETON_MECHANICAL )
GAME( 200?, sc4pstatq ,sc4pstat, sc4, sc4, sc4, ROT0, "QPS","Paystation (V042) (Qps) (Scorpion 4) (set 2)", GAME_IS_SKELETON_MECHANICAL )
const stepper_interface* sc4cvani_reel_configs[6] =
{
&starpoint_interface_48step,
&starpoint_interface_48step,
&starpoint_interface_48step,
0,
&starpoint_interface_200step_reel,
0,
};
static DRIVER_INIT( sc4cvani )
{
sc4_state *state = machine.driver_data<sc4_state>();
DRIVER_INIT_CALL( sc4 );
state->m_reel_setup = sc4cvani_reel_configs;
}
// PR2052 CASHLVANIA VANIASND CASH'!'VANIA
GAME( 200?, sc4cvani ,0, sc4, sc4, sc4, ROT0, "QPS","Cashvania (Qps) (Scorpion 4) (set 1)", GAME_IS_SKELETON_MECHANICAL )
GAME( 200?, sc4cvania ,sc4cvani, sc4, sc4, sc4, ROT0, "QPS","Cashvania (Qps) (Scorpion 4) (set 2)", GAME_IS_SKELETON_MECHANICAL )
GAME( 200?, sc4cvanib ,sc4cvani, sc4, sc4, sc4, ROT0, "QPS","Cashvania (Qps) (Scorpion 4) (set 3)", GAME_IS_SKELETON_MECHANICAL )
GAME( 200?, sc4cvanic ,sc4cvani, sc4, sc4, sc4, ROT0, "QPS","Cashvania (Qps) (Scorpion 4) (set 4)", GAME_IS_SKELETON_MECHANICAL )
GAME( 200?, sc4cvanid ,sc4cvani, sc4, sc4, sc4, ROT0, "QPS","Cashvania (Qps) (Scorpion 4) (set 5)", GAME_IS_SKELETON_MECHANICAL )
GAME( 200?, sc4cvanie ,sc4cvani, sc4, sc4, sc4, ROT0, "QPS","Cashvania (Qps) (Scorpion 4) (set 6)", GAME_IS_SKELETON_MECHANICAL )
GAME( 200?, sc4cvanif ,sc4cvani, sc4, sc4, sc4, ROT0, "QPS","Cashvania (Qps) (Scorpion 4) (set 7)", GAME_IS_SKELETON_MECHANICAL )
GAME( 200?, sc4cvanig ,sc4cvani, sc4, sc4, sc4, ROT0, "QPS","Cashvania (Qps) (Scorpion 4) (set 8)", GAME_IS_SKELETON_MECHANICAL )
GAME( 200?, sc4cvanih ,sc4cvani, sc4, sc4, sc4, ROT0, "QPS","Cashvania (Qps) (Scorpion 4) (set 9)", GAME_IS_SKELETON_MECHANICAL )
GAME( 200?, sc4cvanii ,sc4cvani, sc4, sc4, sc4, ROT0, "QPS","Cashvania (Qps) (Scorpion 4) (set 10)", GAME_IS_SKELETON_MECHANICAL )
GAME( 200?, sc4cvani ,0, sc4, sc4, sc4cvani, ROT0, "QPS","Cashvania (Qps) (Scorpion 4) (set 1)", GAME_IS_SKELETON_MECHANICAL )
GAME( 200?, sc4cvania ,sc4cvani, sc4, sc4, sc4cvani, ROT0, "QPS","Cashvania (Qps) (Scorpion 4) (set 2)", GAME_IS_SKELETON_MECHANICAL )
GAME( 200?, sc4cvanib ,sc4cvani, sc4, sc4, sc4cvani, ROT0, "QPS","Cashvania (Qps) (Scorpion 4) (set 3)", GAME_IS_SKELETON_MECHANICAL )
GAME( 200?, sc4cvanic ,sc4cvani, sc4, sc4, sc4cvani, ROT0, "QPS","Cashvania (Qps) (Scorpion 4) (set 4)", GAME_IS_SKELETON_MECHANICAL )
GAME( 200?, sc4cvanid ,sc4cvani, sc4, sc4, sc4cvani, ROT0, "QPS","Cashvania (Qps) (Scorpion 4) (set 5)", GAME_IS_SKELETON_MECHANICAL )
GAME( 200?, sc4cvanie ,sc4cvani, sc4, sc4, sc4cvani, ROT0, "QPS","Cashvania (Qps) (Scorpion 4) (set 6)", GAME_IS_SKELETON_MECHANICAL )
GAME( 200?, sc4cvanif ,sc4cvani, sc4, sc4, sc4cvani, ROT0, "QPS","Cashvania (Qps) (Scorpion 4) (set 7)", GAME_IS_SKELETON_MECHANICAL )
GAME( 200?, sc4cvanig ,sc4cvani, sc4, sc4, sc4cvani, ROT0, "QPS","Cashvania (Qps) (Scorpion 4) (set 8)", GAME_IS_SKELETON_MECHANICAL )
GAME( 200?, sc4cvanih ,sc4cvani, sc4, sc4, sc4cvani, ROT0, "QPS","Cashvania (Qps) (Scorpion 4) (set 9)", GAME_IS_SKELETON_MECHANICAL )
GAME( 200?, sc4cvanii ,sc4cvani, sc4, sc4, sc4cvani, ROT0, "QPS","Cashvania (Qps) (Scorpion 4) (set 10)", GAME_IS_SKELETON_MECHANICAL )
const stepper_interface* sc4cvclb_reel_configs[6] =
{
&starpoint_interface_48step,
&starpoint_interface_48step,
&starpoint_interface_48step,
&starpoint_interface_48step,
0,
&starpoint_interface_200step_reel,
};
static DRIVER_INIT( sc4cvclb )
{
sc4_state *state = machine.driver_data<sc4_state>();
DRIVER_INIT_CALL( sc4 );
state->m_reel_setup = sc4cvclb_reel_configs;
}
// PRXXXX CLUBCASHLVANIA V1.0 CLUBVANIASND CLUB CASH!VANIA
GAME( 200?, sc4cvclb ,0, sc4, sc4, sc4, ROT0, "QPS","Cashvania Club (V1.0) (Qps) (Scorpion 4) (set 1)", GAME_IS_SKELETON_MECHANICAL )
GAME( 200?, sc4cvclba ,sc4cvclb, sc4, sc4, sc4, ROT0, "QPS","Cashvania Club (V1.0) (Qps) (Scorpion 4) (set 2)", GAME_IS_SKELETON_MECHANICAL )
GAME( 200?, sc4cvclbc ,sc4cvclb, sc4, sc4, sc4, ROT0, "QPS","Cashvania Club (V1.0) (Qps) (Scorpion 4) (set 3)", GAME_IS_SKELETON_MECHANICAL )
GAME( 200?, sc4cvclbd ,sc4cvclb, sc4, sc4, sc4, ROT0, "QPS","Cashvania Club (V1.0) (Qps) (Scorpion 4) (set 4)", GAME_IS_SKELETON_MECHANICAL )
GAME( 200?, sc4cvclb ,0, sc4, sc4, sc4cvclb, ROT0, "QPS","Cashvania Club (V1.0) (Qps) (Scorpion 4) (set 1)", GAME_IS_SKELETON_MECHANICAL )
GAME( 200?, sc4cvclba ,sc4cvclb, sc4, sc4, sc4cvclb, ROT0, "QPS","Cashvania Club (V1.0) (Qps) (Scorpion 4) (set 2)", GAME_IS_SKELETON_MECHANICAL )
GAME( 200?, sc4cvclbc ,sc4cvclb, sc4, sc4, sc4cvclb, ROT0, "QPS","Cashvania Club (V1.0) (Qps) (Scorpion 4) (set 3)", GAME_IS_SKELETON_MECHANICAL )
GAME( 200?, sc4cvclbd ,sc4cvclb, sc4, sc4, sc4cvclb, ROT0, "QPS","Cashvania Club (V1.0) (Qps) (Scorpion 4) (set 4)", GAME_IS_SKELETON_MECHANICAL )
// PRXXXX CLUBCASHLVANIA V2.0 CLUBVANIASND CLUB CASH!VANIA
GAME( 200?, sc4cvclbb ,sc4cvclb, sc4, sc4, sc4, ROT0, "QPS","Cashvania Club (V2.0) (Qps) (Scorpion 4) (set 1)", GAME_IS_SKELETON_MECHANICAL )
GAME( 200?, sc4cvclbe ,sc4cvclb, sc4, sc4, sc4, ROT0, "QPS","Cashvania Club (V2.0) (Qps) (Scorpion 4) (set 2)", GAME_IS_SKELETON_MECHANICAL )
GAME( 200?, sc4cvclbb ,sc4cvclb, sc4, sc4, sc4cvclb, ROT0, "QPS","Cashvania Club (V2.0) (Qps) (Scorpion 4) (set 1)", GAME_IS_SKELETON_MECHANICAL )
GAME( 200?, sc4cvclbe ,sc4cvclb, sc4, sc4, sc4cvclb, ROT0, "QPS","Cashvania Club (V2.0) (Qps) (Scorpion 4) (set 2)", GAME_IS_SKELETON_MECHANICAL )
// PRXXXX CLUBCASHLVANIA 411 CLUBVANIASND CLUB CASH!VANIA
GAME( 200?, sc4cvclbf ,sc4cvclb, sc4, sc4, sc4, ROT0, "QPS","Cashvania Club (V411) (Qps) (Scorpion 4) (set 1)", GAME_IS_SKELETON_MECHANICAL )
GAME( 200?, sc4cvclbg ,sc4cvclb, sc4, sc4, sc4, ROT0, "QPS","Cashvania Club (V411) (Qps) (Scorpion 4) (set 2)", GAME_IS_SKELETON_MECHANICAL )
GAME( 200?, sc4cvclbf ,sc4cvclb, sc4, sc4, sc4cvclb, ROT0, "QPS","Cashvania Club (V411) (Qps) (Scorpion 4) (set 1)", GAME_IS_SKELETON_MECHANICAL )
GAME( 200?, sc4cvclbg ,sc4cvclb, sc4, sc4, sc4cvclb, ROT0, "QPS","Cashvania Club (V411) (Qps) (Scorpion 4) (set 2)", GAME_IS_SKELETON_MECHANICAL )
// PR6912 SOUTH PARK PR6912 SOUTH PARK SOUNDS11 SOUTH PARK
GAME( 200?, sc4spark ,0, sc4, sc4, sc4, ROT0, "BFM","South Park (BFM) (Scorpion 4) (set 1)", GAME_IS_SKELETON_MECHANICAL )

View File

@ -246,21 +246,17 @@ WRITE8_MEMBER(sc4_state::mux_output2_w)
int i;
int off = offset<<3;
// some games use this as a matrix port (luckb etc.)
for (i=0; i<8; i++)
{
output_set_indexed_value("matrix", off+i, ((data & (1 << i)) != 0));
}
if (offset>=20)
{
offset-=20;
// todo, reorder to what our 7segs expect
UINT8 bf7segdata = BITSWAP8(data,7,6,5,4,3,2,1,0);
output_set_digit_value(offset, bf7segdata);
}
// others drive 7-segs with it.. so rendering it there as well in our debug layouts
// todo: reorder properly!
UINT8 bf7segdata = BITSWAP8(data,7,6,5,4,3,2,1,0);
output_set_digit_value(offset, bf7segdata);
}
WRITE16_MEMBER(sc4_state::sc4_mem_w)

View File

@ -2233,7 +2233,7 @@ INPUT_PORTS_EXTERN( sc4_base );
#define sc_ccogs_others \
ROM_REGION( 0x400000, "ymz", ROMREGION_ERASE00 ) \
ROM_LOAD( "clevercogssnd", 0x0000, 0x100000, NO_DUMP ) \
ROM_LOAD( "95008361.bin", 0x0000, 0x0ff54f, CRC(d1cc7b58) SHA1(32328e0e56bbf65e91e32de8802edce38f0abc65) )
#define sc_cclas_others \
ROM_REGION( 0x400000, "ymz", ROMREGION_ERASE00 ) \

View File

@ -14,397 +14,17 @@
<color red="0.0" green="1.0" blue="0.0" />
</rect>
</element>
<element name="Steppers" defstate="96">
<text string="00" state="0">
<color red="1.0" green="1.0" blue="1.0" />
<bounds x="0" y="0.1" width="1" height="1" />
</text>
<text string="01" state="1">
<color red="1.0" green="1.0" blue="1.0" />
<bounds x="0" y="0.1" width="1" height="1" />
</text>
<text string="02" state="2">
<color red="1.0" green="1.0" blue="1.0" />
<bounds x="0" y="0.1" width="1" height="1" />
</text>
<text string="03" state="3">
<color red="1.0" green="1.0" blue="1.0" />
<bounds x="0" y="0.1" width="1" height="1" />
</text>
<text string="04" state="4">
<color red="1.0" green="1.0" blue="1.0" />
<bounds x="0" y="0.1" width="1" height="1" />
</text>
<text string="05" state="5">
<color red="1.0" green="1.0" blue="1.0" />
<bounds x="0" y="0.1" width="1" height="1" />
</text>
<text string="06" state="6">
<color red="1.0" green="1.0" blue="1.0" />
<bounds x="0" y="0.1" width="1" height="1" />
</text>
<text string="07" state="7">
<color red="1.0" green="1.0" blue="1.0" />
<bounds x="0" y="0.1" width="1" height="1" />
</text>
<text string="08" state="8">
<color red="1.0" green="1.0" blue="1.0" />
<bounds x="0" y="0.1" width="1" height="1" />
</text>
<text string="09" state="9">
<color red="1.0" green="1.0" blue="1.0" />
<bounds x="0" y="0.1" width="1" height="1" />
</text>
<text string="10" state="10">
<color red="1.0" green="1.0" blue="1.0" />
<bounds x="0" y="0.1" width="1" height="1" />
</text>
<text string="11" state="11">
<color red="1.0" green="1.0" blue="1.0" />
<bounds x="0" y="0.1" width="1" height="1" />
</text>
<text string="12" state="12">
<color red="1.0" green="1.0" blue="1.0" />
<bounds x="0" y="0.1" width="1" height="1" />
</text>
<text string="13" state="13">
<color red="1.0" green="1.0" blue="1.0" />
<bounds x="0" y="0.1" width="1" height="1" />
</text>
<text string="14" state="14">
<color red="1.0" green="1.0" blue="1.0" />
<bounds x="0" y="0.1" width="1" height="1" />
</text>
<text string="15" state="15">
<color red="1.0" green="1.0" blue="1.0" />
<bounds x="0" y="0.1" width="1" height="1" />
</text>
<text string="16" state="16">
<color red="1.0" green="1.0" blue="1.0" />
<bounds x="0" y="0.1" width="1" height="1" />
</text>
<text string="17" state="17">
<color red="1.0" green="1.0" blue="1.0" />
<bounds x="0" y="0.1" width="1" height="1" />
</text>
<text string="18" state="18">
<color red="1.0" green="1.0" blue="1.0" />
<bounds x="0" y="0.1" width="1" height="1" />
</text>
<text string="19" state="19">
<color red="1.0" green="1.0" blue="1.0" />
<bounds x="0" y="0.1" width="1" height="1" />
</text>
<text string="20" state="20">
<color red="1.0" green="1.0" blue="1.0" />
<bounds x="0" y="0.1" width="1" height="1" />
</text>
<text string="21" state="21">
<color red="1.0" green="1.0" blue="1.0" />
<bounds x="0" y="0.1" width="1" height="1" />
</text>
<text string="22" state="22">
<color red="1.0" green="1.0" blue="1.0" />
<bounds x="0" y="0.1" width="1" height="1" />
</text>
<text string="23" state="23">
<color red="1.0" green="1.0" blue="1.0" />
<bounds x="0" y="0.1" width="1" height="1" />
</text>
<text string="24" state="24">
<color red="1.0" green="1.0" blue="1.0" />
<bounds x="0" y="0.1" width="1" height="1" />
</text>
<text string="25" state="25">
<color red="1.0" green="1.0" blue="1.0" />
<bounds x="0" y="0.1" width="1" height="1" />
</text>
<element name="Steppers" defstate="0">
<simplecounter maxstate="999" digits="2">
<color red="1.0" green="1.0" blue="1.0" />
<bounds x="0" y="0.1" width="1" height="1" />
</simplecounter>
</element>
<text string="26" state="26">
<color red="1.0" green="1.0" blue="1.0" />
<bounds x="0" y="0.1" width="1" height="1" />
</text>
<text string="27" state="27">
<color red="1.0" green="1.0" blue="1.0" />
<bounds x="0" y="0.1" width="1" height="1" />
</text>
<text string="28" state="28">
<color red="1.0" green="1.0" blue="1.0" />
<bounds x="0" y="0.1" width="1" height="1" />
</text>
<text string="29" state="29">
<color red="1.0" green="1.0" blue="1.0" />
<bounds x="0" y="0.1" width="1" height="1" />
</text>
<text string="30" state="30">
<color red="1.0" green="1.0" blue="1.0" />
<bounds x="0" y="0.1" width="1" height="1" />
</text>
<text string="31" state="31">
<color red="1.0" green="1.0" blue="1.0" />
<bounds x="0" y="0.1" width="1" height="1" />
</text>
<text string="32" state="32">
<color red="1.0" green="1.0" blue="1.0" />
<bounds x="0" y="0.1" width="1" height="1" />
</text>
<text string="33" state="33">
<color red="1.0" green="1.0" blue="1.0" />
<bounds x="0" y="0.1" width="1" height="1" />
</text>
<text string="34" state="34">
<color red="1.0" green="1.0" blue="1.0" />
<bounds x="0" y="0.1" width="1" height="1" />
</text>
<text string="35" state="35">
<color red="1.0" green="1.0" blue="1.0" />
<bounds x="0" y="0.1" width="1" height="1" />
</text>
<text string="36" state="36">
<color red="1.0" green="1.0" blue="1.0" />
<bounds x="0" y="0.1" width="1" height="1" />
</text>
<text string="37" state="37">
<color red="1.0" green="1.0" blue="1.0" />
<bounds x="0" y="0.1" width="1" height="1" />
</text>
<text string="38" state="38">
<color red="1.0" green="1.0" blue="1.0" />
<bounds x="0" y="0.1" width="1" height="1" />
</text>
<text string="39" state="39">
<color red="1.0" green="1.0" blue="1.0" />
<bounds x="0" y="0.1" width="1" height="1" />
</text>
<text string="40" state="40">
<color red="1.0" green="1.0" blue="1.0" />
<bounds x="0" y="0.1" width="1" height="1" />
</text>
<text string="41" state="41">
<color red="1.0" green="1.0" blue="1.0" />
<bounds x="0" y="0.1" width="1" height="1" />
</text>
<text string="42" state="42">
<color red="1.0" green="1.0" blue="1.0" />
<bounds x="0" y="0.1" width="1" height="1" />
</text>
<text string="43" state="43">
<color red="1.0" green="1.0" blue="1.0" />
<bounds x="0" y="0.1" width="1" height="1" />
</text>
<text string="44" state="44">
<color red="1.0" green="1.0" blue="1.0" />
<bounds x="0" y="0.1" width="1" height="1" />
</text>
<text string="45" state="45">
<color red="1.0" green="1.0" blue="1.0" />
<bounds x="0" y="0.1" width="1" height="1" />
</text>
<text string="46" state="46">
<color red="1.0" green="1.0" blue="1.0" />
<bounds x="0" y="0.1" width="1" height="1" />
</text>
<text string="47" state="47">
<color red="1.0" green="1.0" blue="1.0" />
<bounds x="0" y="0.1" width="1" height="1" />
</text>
<text string="48" state="48">
<color red="1.0" green="1.0" blue="1.0" />
<bounds x="0" y="0.1" width="1" height="1" />
</text>
<text string="49" state="49">
<color red="1.0" green="1.0" blue="1.0" />
<bounds x="0" y="0.1" width="1" height="1" />
</text>
<text string="50" state="50">
<color red="1.0" green="1.0" blue="1.0" />
<bounds x="0" y="0.1" width="1" height="1" />
</text>
<text string="51" state="51">
<color red="1.0" green="1.0" blue="1.0" />
<bounds x="0" y="0.1" width="1" height="1" />
</text>
<text string="52" state="52">
<color red="1.0" green="1.0" blue="1.0" />
<bounds x="0" y="0.1" width="1" height="1" />
</text>
<text string="53" state="53">
<color red="1.0" green="1.0" blue="1.0" />
<bounds x="0" y="0.1" width="1" height="1" />
</text>
<text string="54" state="54">
<color red="1.0" green="1.0" blue="1.0" />
<bounds x="0" y="0.1" width="1" height="1" />
</text>
<text string="55" state="55">
<color red="1.0" green="1.0" blue="1.0" />
<bounds x="0" y="0.1" width="1" height="1" />
</text>
<text string="56" state="56">
<color red="1.0" green="1.0" blue="1.0" />
<bounds x="0" y="0.1" width="1" height="1" />
</text>
<text string="57" state="57">
<color red="1.0" green="1.0" blue="1.0" />
<bounds x="0" y="0.1" width="1" height="1" />
</text>
<text string="58" state="58">
<color red="1.0" green="1.0" blue="1.0" />
<bounds x="0" y="0.1" width="1" height="1" />
</text>
<text string="59" state="59">
<color red="1.0" green="1.0" blue="1.0" />
<bounds x="0" y="0.1" width="1" height="1" />
</text>
<text string="60" state="60">
<color red="1.0" green="1.0" blue="1.0" />
<bounds x="0" y="0.1" width="1" height="1" />
</text>
<text string="61" state="61">
<color red="1.0" green="1.0" blue="1.0" />
<bounds x="0" y="0.1" width="1" height="1" />
</text>
<text string="62" state="62">
<color red="1.0" green="1.0" blue="1.0" />
<bounds x="0" y="0.1" width="1" height="1" />
</text>
<text string="63" state="63">
<color red="1.0" green="1.0" blue="1.0" />
<bounds x="0" y="0.1" width="1" height="1" />
</text>
<text string="64" state="64">
<color red="1.0" green="1.0" blue="1.0" />
<bounds x="0" y="0.1" width="1" height="1" />
</text>
<text string="65" state="65">
<color red="1.0" green="1.0" blue="1.0" />
<bounds x="0" y="0.1" width="1" height="1" />
</text>
<text string="66" state="66">
<color red="1.0" green="1.0" blue="1.0" />
<bounds x="0" y="0.1" width="1" height="1" />
</text>
<text string="67" state="67">
<color red="1.0" green="1.0" blue="1.0" />
<bounds x="0" y="0.1" width="1" height="1" />
</text>
<text string="68" state="68">
<color red="1.0" green="1.0" blue="1.0" />
<bounds x="0" y="0.1" width="1" height="1" />
</text>
<text string="69" state="69">
<color red="1.0" green="1.0" blue="1.0" />
<bounds x="0" y="0.1" width="1" height="1" />
</text>
<text string="70" state="70">
<color red="1.0" green="1.0" blue="1.0" />
<bounds x="0" y="0.1" width="1" height="1" />
</text>
<text string="71" state="71">
<color red="1.0" green="1.0" blue="1.0" />
<bounds x="0" y="0.1" width="1" height="1" />
</text>
<text string="72" state="72">
<color red="1.0" green="1.0" blue="1.0" />
<bounds x="0" y="0.1" width="1" height="1" />
</text>
<text string="73" state="73">
<color red="1.0" green="1.0" blue="1.0" />
<bounds x="0" y="0.1" width="1" height="1" />
</text>
<text string="74" state="74">
<color red="1.0" green="1.0" blue="1.0" />
<bounds x="0" y="0.1" width="1" height="1" />
</text>
<text string="75" state="75">
<color red="1.0" green="1.0" blue="1.0" />
<bounds x="0" y="0.1" width="1" height="1" />
</text>
<text string="76" state="76">
<color red="1.0" green="1.0" blue="1.0" />
<bounds x="0" y="0.1" width="1" height="1" />
</text>
<text string="77" state="77">
<color red="1.0" green="1.0" blue="1.0" />
<bounds x="0" y="0.1" width="1" height="1" />
</text>
<text string="78" state="78">
<color red="1.0" green="1.0" blue="1.0" />
<bounds x="0" y="0.1" width="1" height="1" />
</text>
<text string="79" state="79">
<color red="1.0" green="1.0" blue="1.0" />
<bounds x="0" y="0.1" width="1" height="1" />
</text>
<text string="80" state="80">
<color red="1.0" green="1.0" blue="1.0" />
<bounds x="0" y="0.1" width="1" height="1" />
</text>
<text string="81" state="81">
<color red="1.0" green="1.0" blue="1.0" />
<bounds x="0" y="0.1" width="1" height="1" />
</text>
<text string="82" state="82">
<color red="1.0" green="1.0" blue="1.0" />
<bounds x="0" y="0.1" width="1" height="1" />
</text>
<text string="83" state="83">
<color red="1.0" green="1.0" blue="1.0" />
<bounds x="0" y="0.1" width="1" height="1" />
</text>
<text string="84" state="84">
<color red="1.0" green="1.0" blue="1.0" />
<bounds x="0" y="0.1" width="1" height="1" />
</text>
<text string="85" state="85">
<color red="1.0" green="1.0" blue="1.0" />
<bounds x="0" y="0.1" width="1" height="1" />
</text>
<text string="86" state="86">
<color red="1.0" green="1.0" blue="1.0" />
<bounds x="0" y="0.1" width="1" height="1" />
</text>
<text string="87" state="87">
<color red="1.0" green="1.0" blue="1.0" />
<bounds x="0" y="0.1" width="1" height="1" />
</text>
<text string="88" state="88">
<color red="1.0" green="1.0" blue="1.0" />
<bounds x="0" y="0.1" width="1" height="1" />
</text>
<text string="89" state="89">
<color red="1.0" green="1.0" blue="1.0" />
<bounds x="0" y="0.1" width="1" height="1" />
</text>
<text string="90" state="90">
<color red="1.0" green="1.0" blue="1.0" />
<bounds x="0" y="0.1" width="1" height="1" />
</text>
<text string="91" state="91">
<color red="1.0" green="1.0" blue="1.0" />
<bounds x="0" y="0.1" width="1" height="1" />
</text>
<text string="92" state="92">
<color red="1.0" green="1.0" blue="1.0" />
<bounds x="0" y="0.1" width="1" height="1" />
</text>
<text string="93" state="93">
<color red="1.0" green="1.0" blue="1.0" />
<bounds x="0" y="0.1" width="1" height="1" />
</text>
<text string="94" state="94">
<color red="1.0" green="1.0" blue="1.0" />
<bounds x="0" y="0.1" width="1" height="1" />
</text>
<text string="95" state="95">
<color red="1.0" green="1.0" blue="1.0" />
<bounds x="0" y="0.1" width="1" height="1" />
</text>
</element>
<element name="vfd0">
<led14segsc>
<color red="0" green="0.6" blue="1.0" />
</led14segsc>
<led14segsc>
<color red="0" green="0.6" blue="1.0" />
</led14segsc>
</element>
<element name="digit" defstate="10">
<led7seg>
@ -2035,44 +1655,106 @@
</backdrop>
<backdrop name="digit0" element="digit" state="0">
<bounds x="180" y="64" width="18" height="34"/>
<bounds x="180" y="64" width="9" height="19"/>
</backdrop>
<backdrop name="digit1" element="digit" state="0">
<bounds x="200" y="64" width="18" height="34"/>
<bounds x="190" y="64" width="9" height="19"/>
</backdrop>
<backdrop name="digit2" element="digit" state="0">
<bounds x="220" y="64" width="18" height="34"/>
<bounds x="200" y="64" width="9" height="19"/>
</backdrop>
<backdrop name="digit3" element="digit" state="0">
<bounds x="240" y="64" width="18" height="34"/>
<bounds x="210" y="64" width="9" height="19"/>
</backdrop>
<backdrop name="digit4" element="digit" state="0">
<bounds x="260" y="64" width="18" height="34"/>
<bounds x="220" y="64" width="9" height="19"/>
</backdrop>
<backdrop name="digit5" element="digit" state="0">
<bounds x="280" y="64" width="18" height="34"/>
<bounds x="230" y="64" width="9" height="19"/>
</backdrop>
<backdrop name="digit6" element="digit" state="0">
<bounds x="300" y="64" width="18" height="34"/>
<bounds x="240" y="64" width="9" height="19"/>
</backdrop>
<backdrop name="digit7" element="digit" state="0">
<bounds x="320" y="64" width="18" height="34"/>
<bounds x="250" y="64" width="9" height="19"/>
</backdrop>
<backdrop name="digit8" element="digit" state="0">
<bounds x="340" y="64" width="18" height="34"/>
<bounds x="180" y="84" width="9" height="19"/>
</backdrop>
<backdrop name="digit9" element="digit" state="0">
<bounds x="360" y="64" width="18" height="34"/>
<bounds x="190" y="84" width="9" height="19"/>
</backdrop>
<backdrop name="digit10" element="digit" state="0">
<bounds x="380" y="64" width="18" height="34"/>
<bounds x="200" y="84" width="9" height="19"/>
</backdrop>
<backdrop name="digit11" element="digit" state="0">
<bounds x="400" y="64" width="18" height="34"/>
<bounds x="210" y="84" width="9" height="19"/>
</backdrop>
<backdrop name="digit12" element="digit" state="0">
<bounds x="220" y="84" width="9" height="19"/>
</backdrop>
<backdrop name="digit13" element="digit" state="0">
<bounds x="230" y="84" width="9" height="19"/>
</backdrop>
<backdrop name="digit14" element="digit" state="0">
<bounds x="240" y="84" width="9" height="19"/>
</backdrop>
<backdrop name="digit15" element="digit" state="0">
<bounds x="250" y="84" width="9" height="19"/>
</backdrop>
<backdrop name="digit16" element="digit" state="0">
<bounds x="180" y="104" width="9" height="19"/>
</backdrop>
<backdrop name="digit17" element="digit" state="0">
<bounds x="190" y="104" width="9" height="19"/>
</backdrop>
<backdrop name="digit18" element="digit" state="0">
<bounds x="200" y="104" width="9" height="19"/>
</backdrop>
<backdrop name="digit19" element="digit" state="0">
<bounds x="210" y="104" width="9" height="19"/>
</backdrop>
<backdrop name="digit20" element="digit" state="0">
<bounds x="220" y="104" width="9" height="19"/>
</backdrop>
<backdrop name="digit21" element="digit" state="0">
<bounds x="230" y="104" width="9" height="19"/>
</backdrop>
<backdrop name="digit22" element="digit" state="0">
<bounds x="240" y="104" width="9" height="19"/>
</backdrop>
<backdrop name="digit23" element="digit" state="0">
<bounds x="250" y="104" width="9" height="19"/>
</backdrop>
<backdrop name="digit24" element="digit" state="0">
<bounds x="180" y="124" width="9" height="19"/>
</backdrop>
<backdrop name="digit25" element="digit" state="0">
<bounds x="190" y="124" width="9" height="19"/>
</backdrop>
<backdrop name="digit26" element="digit" state="0">
<bounds x="200" y="124" width="9" height="19"/>
</backdrop>
<backdrop name="digit27" element="digit" state="0">
<bounds x="210" y="124" width="9" height="19"/>
</backdrop>
<backdrop name="digit28" element="digit" state="0">
<bounds x="220" y="124" width="9" height="19"/>
</backdrop>
<backdrop name="digit29" element="digit" state="0">
<bounds x="230" y="124" width="9" height="19"/>
</backdrop>
<backdrop name="digit30" element="digit" state="0">
<bounds x="240" y="124" width="9" height="19"/>
</backdrop>
<backdrop name="digit31" element="digit" state="0">
<bounds x="250" y="124" width="9" height="19"/>
</backdrop>
</view>
<view name="VFD Display Output Only">
<backdrop name="vfd0" element="vfd0" state="0">