New working machine added

----------
Checker Challenger 4 [hap, Sean Riddle]
This commit is contained in:
hap 2019-03-03 01:46:29 +01:00
parent 08f3a160b3
commit c4b8aa3a56
6 changed files with 295 additions and 63 deletions

View File

@ -1,10 +1,14 @@
// license:BSD-3-Clause
// copyright-holders:Jonathan Gevaryahu, Sandro Ronco, hap
// thanks-to:Berger
// thanks-to:Berger, Sean Riddle
/******************************************************************************
*
* fidel_cc10.cpp, subdriver of machine/fidelbase.cpp, machine/chessbase.cpp
TODO:
- What is cc10 8255 PB.7 for? When set, maximum levels is 3, like in CC3. But
there is no CC3 with 16 buttons, and things get glitchy in this mode.
*******************************************************************************
Fidelity Chess Challenger 10 (CCX)
@ -12,47 +16,13 @@ Fidelity Chess Challenger 10 (CCX)
4 versions are known to exist: A,B,C,D. Strangely, version C(UCC10) has an 8080
instead of Z80. Chess Challenger 1,3 and 7 also run on very similar hardware.
Z80A CPU @ 4MHz
Z80A CPU @ 4MHz, NEC D8255C
4KB ROM(NEC 2332A), 2*256 bytes RAM(4*NEC 2111AL-4)
This is an earlier hardware upon which the VCC and UVC were based on;
The hardware is nearly the same; in fact the only significant differences are
the RAM being located in a different place, the lack of a speech chip, and
the connections to ports A and B on the PPI:
8255 connections:
-----------------
PA.0 - segment G (W)
PA.1 - segment F (W)
PA.2 - segment E (W)
PA.3 - segment D (W)
PA.4 - segment C (W)
PA.5 - segment B (W)
PA.6 - segment A (W)
PA.7 - 'beeper' direct speaker output (W)
The beeper is via a 556 timer, fixed-frequency at around 1300-1400Hz.
Not all hardware configurations include the beeper.
PB.0 - dot commons (W)
PB.1 - NC
PB.2 - digit 0, bottom dot (W)
PB.3 - digit 1, top dot (W)
PB.4 - digit 2 (W)
PB.5 - digit 3 (W)
PB.6 - NC
PB.7 - Mode select? (cc3 vs cc10, R)
Note: there is no CC3 with 16 buttons, and things get glitchy in this mode.
PC.0 - button row 0 (R)
PC.1 - button row 1 (R)
PC.2 - button row 2 (R)
PC.3 - button row 3 (R)
PC.4 - button column A (W)
PC.5 - button column B (W)
PC.6 - button column C (W)
PC.7 - button column D (W)
Checker Challenger 4 (ACR) is on the same PCB, twice less RAM and the beeper gone.
******************************************************************************/
@ -65,6 +35,7 @@ PC.7 - button column D (W)
#include "speaker.h"
// internal artwork
#include "fidel_acr.lh" // clickable
#include "fidel_cc10.lh" // clickable
@ -81,20 +52,26 @@ public:
{ }
// machine drivers
void acr(machine_config &config);
void ccx(machine_config &config);
private:
// devices/pointers
required_device<i8255_device> m_ppi8255;
required_device<timer_device> m_beeper_off;
required_device<beep_device> m_beeper;
optional_device<timer_device> m_beeper_off;
optional_device<beep_device> m_beeper;
TIMER_DEVICE_CALLBACK_MEMBER(beeper_off) { m_beeper->set_state(0); }
// address maps
void main_map(address_map &map);
void acr_map(address_map &map);
void ccx_map(address_map &map);
void main_trampoline(address_map &map);
void main_io(address_map &map);
u8 main_trampoline_r(offs_t offset);
void main_trampoline_w(offs_t offset, u8 data);
// I/O handlers
void prepare_display();
DECLARE_WRITE8_MEMBER(ppi_porta_w);
@ -112,10 +89,9 @@ private:
void ccx_state::prepare_display()
{
// 4 7seg leds (note: sel d0 for extra leds)
u8 outdata = (m_7seg_data & 0x7f) | (m_led_select << 7 & 0x80);
// 4 7segs + 2 leds
set_display_segmask(0xf, 0x7f);
display_matrix(8, 4, outdata, m_led_select >> 2 & 0xf);
display_matrix(8, 6, m_7seg_data, m_led_select);
}
@ -123,8 +99,8 @@ void ccx_state::prepare_display()
WRITE8_MEMBER(ccx_state::ppi_porta_w)
{
// d7: enable beeper on falling edge (555 monostable)
if (~data & m_7seg_data & 0x80 && !m_beeper_off->enabled())
// d7: enable beeper on falling edge (556 monostable) (unpopulated on ACR)
if (m_beeper != nullptr && ~data & m_7seg_data & 0x80 && !m_beeper_off->enabled())
{
m_beeper->set_state(1);
m_beeper_off->adjust(attotime::from_msec(80)); // duration is approximate
@ -137,8 +113,9 @@ WRITE8_MEMBER(ccx_state::ppi_porta_w)
WRITE8_MEMBER(ccx_state::ppi_portb_w)
{
// d0,d2-d5: digit/led select
m_led_select = data;
// d0: lose led, d1: check(win) led
// d2-d5: digit select
m_led_select = bitswap<6>(data,0,1,5,4,3,2);
prepare_display();
}
@ -160,13 +137,46 @@ WRITE8_MEMBER(ccx_state::ppi_portc_w)
Address Maps
******************************************************************************/
void ccx_state::main_map(address_map &map)
void ccx_state::acr_map(address_map &map)
{
map.unmap_value_high();
map.global_mask(0x3fff);
map(0x0000, 0x0fff).rom();
map(0x1000, 0x10ff).mirror(0x0f00).ram();
map(0x3000, 0x30ff).mirror(0x0f00).ram();
map(0x0000, 0x0fff).rom().region("maincpu", 0); // _A12
map(0x2000, 0x20ff).mirror(0x0f00).ram(); // A13
}
void ccx_state::ccx_map(address_map &map)
{
acr_map(map);
map(0x4000, 0x40ff).mirror(0x0f00).ram(); // A14
}
// PCB design is prone to bus conflicts, but assuming software behaves fine,
// it will access ROM at $0xxx, RAM at $3xxx and $5xxx
void ccx_state::main_trampoline_w(offs_t offset, u8 data)
{
if (offset & 0x2000)
m_mainmap->write8(offset & 0x2fff, data);
if (offset & 0x4000)
m_mainmap->write8(offset & 0x4fff, data);
}
u8 ccx_state::main_trampoline_r(offs_t offset)
{
u8 data = 0xff;
if (~offset & 0x1000)
data &= m_mainmap->read8(offset & 0x0fff);
if (offset & 0x2000)
data &= m_mainmap->read8(offset & 0x2fff);
if (offset & 0x4000)
data &= m_mainmap->read8(offset & 0x4fff);
return data;
}
void ccx_state::main_trampoline(address_map &map)
{
map.global_mask(0x7fff);
map(0x0000, 0x7fff).rw(FUNC(ccx_state::main_trampoline_r), FUNC(ccx_state::main_trampoline_w));
}
void ccx_state::main_io(address_map &map)
@ -210,29 +220,69 @@ static INPUT_PORTS_START( ccx )
PORT_BIT(0x01, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_NAME("RE") PORT_CODE(KEYCODE_R) PORT_CHANGED_MEMBER(DEVICE_SELF, ccx_state, reset_button, nullptr)
INPUT_PORTS_END
static INPUT_PORTS_START( acr )
PORT_START("IN.0")
PORT_BIT(0x01, IP_ACTIVE_HIGH, IPT_UNUSED)
PORT_BIT(0x02, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_NAME("LV") PORT_CODE(KEYCODE_L)
PORT_BIT(0x04, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_NAME("PV") PORT_CODE(KEYCODE_V)
PORT_BIT(0x08, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_NAME("0") PORT_CODE(KEYCODE_0) PORT_CODE(KEYCODE_0_PAD)
PORT_START("IN.1")
PORT_BIT(0x01, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_NAME("CL") PORT_CODE(KEYCODE_DEL) PORT_CODE(KEYCODE_BACKSPACE)
PORT_BIT(0x02, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_NAME("7") PORT_CODE(KEYCODE_7) PORT_CODE(KEYCODE_7_PAD)
PORT_BIT(0x04, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_NAME("4") PORT_CODE(KEYCODE_4) PORT_CODE(KEYCODE_4_PAD)
PORT_BIT(0x08, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_NAME("1") PORT_CODE(KEYCODE_1) PORT_CODE(KEYCODE_1_PAD)
PORT_START("IN.2")
PORT_BIT(0x01, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_NAME("TO") PORT_CODE(KEYCODE_T)
PORT_BIT(0x02, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_NAME("8") PORT_CODE(KEYCODE_8) PORT_CODE(KEYCODE_8_PAD)
PORT_BIT(0x04, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_NAME("5") PORT_CODE(KEYCODE_5) PORT_CODE(KEYCODE_5_PAD)
PORT_BIT(0x08, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_NAME("2") PORT_CODE(KEYCODE_2) PORT_CODE(KEYCODE_2_PAD)
PORT_START("IN.3")
PORT_BIT(0x01, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_NAME("EN") PORT_CODE(KEYCODE_ENTER) PORT_CODE(KEYCODE_ENTER_PAD)
PORT_BIT(0x02, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_NAME("9") PORT_CODE(KEYCODE_9) PORT_CODE(KEYCODE_9_PAD)
PORT_BIT(0x04, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_NAME("6") PORT_CODE(KEYCODE_6) PORT_CODE(KEYCODE_6_PAD)
PORT_BIT(0x08, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_NAME("3") PORT_CODE(KEYCODE_3) PORT_CODE(KEYCODE_3_PAD)
PORT_START("RESET") // is not on matrix IN.0 d0
PORT_BIT(0x01, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_NAME("RE") PORT_CODE(KEYCODE_R) PORT_CHANGED_MEMBER(DEVICE_SELF, ccx_state, reset_button, nullptr)
INPUT_PORTS_END
/******************************************************************************
Machine Drivers
******************************************************************************/
void ccx_state::ccx(machine_config &config)
void ccx_state::acr(machine_config &config)
{
/* basic machine hardware */
Z80(config, m_maincpu, 4_MHz_XTAL);
m_maincpu->set_addrmap(AS_PROGRAM, &ccx_state::main_map);
m_maincpu->set_addrmap(AS_PROGRAM, &ccx_state::main_trampoline);
ADDRESS_MAP_BANK(config, m_mainmap).set_map(&ccx_state::acr_map).set_options(ENDIANNESS_LITTLE, 8, 16);
m_maincpu->set_addrmap(AS_IO, &ccx_state::main_io);
I8255(config, m_ppi8255);
m_ppi8255->out_pa_callback().set(FUNC(ccx_state::ppi_porta_w));
m_ppi8255->tri_pa_callback().set_constant(0);
m_ppi8255->in_pb_callback().set_constant(0); // 0x80 for '3 level mode'
m_ppi8255->in_pb_callback().set_constant(0);
m_ppi8255->out_pb_callback().set(FUNC(ccx_state::ppi_portb_w));
m_ppi8255->in_pc_callback().set(FUNC(ccx_state::ppi_portc_r));
m_ppi8255->tri_pb_callback().set_constant(0);
m_ppi8255->out_pc_callback().set(FUNC(ccx_state::ppi_portc_w));
TIMER(config, "display_decay").configure_periodic(FUNC(ccx_state::display_decay_tick), attotime::from_msec(1));
config.set_default_layout(layout_fidel_acr);
}
void ccx_state::ccx(machine_config &config)
{
acr(config);
/* basic machine hardware */
m_mainmap->set_addrmap(AS_PROGRAM, &ccx_state::ccx_map);
config.set_default_layout(layout_fidel_cc10);
/* sound hardware */
@ -248,11 +298,17 @@ void ccx_state::ccx(machine_config &config)
ROM Definitions
******************************************************************************/
ROM_START( cc10 ) // model CCX
ROM_START( cc10 ) // model CCX, PCB label P241C-1
ROM_REGION( 0x10000, "maincpu", 0 )
ROM_LOAD( "cn19053n_cc10b", 0x0000, 0x1000, CRC(afd3ca99) SHA1(870d09b2b52ccb8572d69642c59b5215d5fb26ab) ) // 2332
ROM_END
ROM_START( checkerc4 ) // model ACR, PCB label P241C
ROM_REGION( 0x10000, "maincpu", 0 )
ROM_LOAD( "d2332c_043", 0x0000, 0x1000, CRC(4c251d90) SHA1(474d54b05971f2a3208bab56dc6e27f03781c541) ) // no custom label
ROM_END
} // anonymous namespace
@ -263,3 +319,5 @@ ROM_END
// YEAR NAME PARENT CMP MACHINE INPUT STATE INIT COMPANY, FULLNAME, FLAGS
CONS( 1978, cc10, 0, 0, ccx, ccx, ccx_state, empty_init, "Fidelity Electronics", "Chess Challenger 10 (model CCX, rev. B)", MACHINE_SUPPORTS_SAVE | MACHINE_CLICKABLE_ARTWORK )
CONS( 1978, checkerc4, 0, 0, acr, acr, ccx_state, empty_init, "Fidelity Electronics", "Checker Challenger 4", MACHINE_SUPPORTS_SAVE | MACHINE_CLICKABLE_ARTWORK | MACHINE_NO_SOUND_HW )

View File

@ -29,8 +29,8 @@ Memory map:
Port map (Write):
---------
D0-D3: digit select and keypad mux
D4: LOSE led
D5: CHECK led
D4: CHECK led
D5: LOSE led
A0-A2: NE591 A0-A2
D7: NE591 D (_C not used)
NE591 Q0-Q6: digit segments A-G

View File

@ -292,4 +292,4 @@ ROM_END
CONS( 1982, fscc9, 0, 0, sc9d, sc9, sc9_state, empty_init, "Fidelity Electronics", "Sensory Chess Challenger 9 (rev. D)", MACHINE_SUPPORTS_SAVE | MACHINE_CLICKABLE_ARTWORK | MACHINE_IMPERFECT_CONTROLS ) // aka version "B"
CONS( 1982, fscc9b, fscc9, 0, sc9b, sc9, sc9_state, empty_init, "Fidelity Electronics", "Sensory Chess Challenger 9 (rev. B)", MACHINE_SUPPORTS_SAVE | MACHINE_CLICKABLE_ARTWORK | MACHINE_IMPERFECT_CONTROLS )
CONS( 1982, fscc9c, fscc9, 0, sc9b, sc9c, sc9c_state, empty_init, "Fidelity Electronics", "Sensory Chess Challenger 9 (rev. C)", MACHINE_SUPPORTS_SAVE | MACHINE_CLICKABLE_ARTWORK | MACHINE_IMPERFECT_CONTROLS )
CONS( 1983, fscc9ps, fscc9, 0, playmatic, playmatic, sc9_state, empty_init, "Fidelity Deutschland", "Sensory 9 Playmatic 'S'", MACHINE_SUPPORTS_SAVE | MACHINE_CLICKABLE_ARTWORK | MACHINE_IMPERFECT_CONTROLS )
CONS( 1983, fscc9ps, fscc9, 0, playmatic, playmatic, sc9_state, empty_init, "Fidelity Deutschland", "Sensory 9 Playmatic S", MACHINE_SUPPORTS_SAVE | MACHINE_CLICKABLE_ARTWORK | MACHINE_IMPERFECT_CONTROLS )

View File

@ -0,0 +1,173 @@
<?xml version="1.0"?>
<mamelayout version="2">
<!-- define elements -->
<element name="static_gray"><rect><color red="0.6" green="0.6" blue="0.6" /></rect></element>
<element name="digit" defstate="0">
<led7seg><color red="1.0" green="0.1" blue="0.15" /></led7seg>
</element>
<element name="led" defstate="0">
<disk state="1"><color red="1.0" green="0.1" blue="0.15" /></disk>
<disk state="0"><color red="0.1" green="0.01" blue="0.015" /></disk>
</element>
<element name="hl" defstate="0">
<text string=" ">
<bounds x="0.0" y="0.0" width="1.0" height="1.0" />
<color red="0.0" green="0.0" blue="0.0" />
</text>
<rect state="1">
<bounds x="0.0" y="0.0" width="1.0" height="1.0" />
<color red="0.0" green="0.0" blue="0.0" />
</rect>
</element>
<element name="text_win"><text string="I WIN"><color red="0.6" green="0.6" blue="0.6" /></text></element>
<element name="text_lose"><text string="I LOSE"><color red="0.6" green="0.6" blue="0.6" /></text></element>
<element name="text_from"><text string="FROM"><color red="0.6" green="0.6" blue="0.6" /></text></element>
<element name="text_to"><text string="TO"><color red="0.6" green="0.6" blue="0.6" /></text></element>
<element name="text_b1">
<rect><color red="0.6" green="0.6" blue="0.6" /></rect>
<text string="RE"><color red="0.04" green="0.04" blue="0.04" /></text>
</element>
<element name="text_b2">
<rect><color red="0.6" green="0.6" blue="0.6" /></rect>
<text string="CL"><color red="0.04" green="0.04" blue="0.04" /></text>
</element>
<element name="text_b3">
<rect><color red="0.6" green="0.6" blue="0.6" /></rect>
<text string="TO"><color red="0.04" green="0.04" blue="0.04" /></text>
</element>
<element name="text_b4">
<rect><color red="0.6" green="0.6" blue="0.6" /></rect>
<text string="EN"><color red="0.04" green="0.04" blue="0.04" /></text>
</element>
<element name="text_b5">
<rect><color red="0.6" green="0.6" blue="0.6" /></rect>
<text string="LV"><color red="0.04" green="0.04" blue="0.04" /></text>
</element>
<element name="text_b6">
<rect><color red="0.6" green="0.6" blue="0.6" /></rect>
<text string="7"><color red="0.04" green="0.04" blue="0.04" /></text>
</element>
<element name="text_b7">
<rect><color red="0.6" green="0.6" blue="0.6" /></rect>
<text string="8"><color red="0.04" green="0.04" blue="0.04" /></text>
</element>
<element name="text_b8">
<rect><color red="0.6" green="0.6" blue="0.6" /></rect>
<text string="9"><color red="0.04" green="0.04" blue="0.04" /></text>
</element>
<element name="text_b9">
<rect><color red="0.6" green="0.6" blue="0.6" /></rect>
<text string="PV"><color red="0.04" green="0.04" blue="0.04" /></text>
</element>
<element name="text_b10">
<rect><color red="0.6" green="0.6" blue="0.6" /></rect>
<text string="4"><color red="0.04" green="0.04" blue="0.04" /></text>
</element>
<element name="text_b11">
<rect><color red="0.6" green="0.6" blue="0.6" /></rect>
<text string="5"><color red="0.04" green="0.04" blue="0.04" /></text>
</element>
<element name="text_b12">
<rect><color red="0.6" green="0.6" blue="0.6" /></rect>
<text string="6"><color red="0.04" green="0.04" blue="0.04" /></text>
</element>
<element name="text_b13">
<rect><color red="0.6" green="0.6" blue="0.6" /></rect>
<text string="0"><color red="0.04" green="0.04" blue="0.04" /></text>
</element>
<element name="text_b14">
<rect><color red="0.6" green="0.6" blue="0.6" /></rect>
<text string="1"><color red="0.04" green="0.04" blue="0.04" /></text>
</element>
<element name="text_b15">
<rect><color red="0.6" green="0.6" blue="0.6" /></rect>
<text string="2"><color red="0.04" green="0.04" blue="0.04" /></text>
</element>
<element name="text_b16">
<rect><color red="0.6" green="0.6" blue="0.6" /></rect>
<text string="3"><color red="0.04" green="0.04" blue="0.04" /></text>
</element>
<!-- build screen -->
<view name="Internal Layout">
<bounds left="-0.5" right="18" top="7.7" bottom="36" />
<!-- 7segs/leds -->
<bezel element="text_win"><bounds x="0.7" y="8.2" width="8" height="2" /></bezel>
<bezel element="text_lose"><bounds x="10.5" y="8.2" width="8" height="2" /></bezel>
<bezel name="4.a" element="led"><bounds x="0" y="8.5" width="1.5" height="1.5" /></bezel>
<bezel name="5.a" element="led"><bounds x="9.5" y="8.5" width="1.5" height="1.5" /></bezel>
<bezel element="text_from"><bounds x="0" y="17.2" width="8" height="2" /></bezel>
<bezel element="text_to"><bounds x="9.5" y="17.2" width="8" height="2" /></bezel>
<bezel name="digit0" element="digit"><bounds x="0" y="11" width="4" height="6" /></bezel>
<bezel name="digit1" element="digit"><bounds x="4" y="11" width="4" height="6" /></bezel>
<bezel name="digit2" element="digit"><bounds x="9.5" y="11" width="4" height="6" /></bezel>
<bezel name="digit3" element="digit"><bounds x="13.5" y="11" width="4" height="6" /></bezel>
<!-- button panel -->
<bezel element="static_gray"><bounds x="0" y="20" width="4" height="3" /></bezel>
<bezel element="static_gray"><bounds x="4.5" y="20" width="4" height="3" /></bezel>
<bezel element="static_gray"><bounds x="9" y="20" width="4" height="3" /></bezel>
<bezel element="static_gray"><bounds x="13.5" y="20" width="4" height="3" /></bezel>
<bezel element="static_gray"><bounds x="0" y="24" width="4" height="3" /></bezel>
<bezel element="static_gray"><bounds x="4.5" y="24" width="4" height="3" /></bezel>
<bezel element="static_gray"><bounds x="9" y="24" width="4" height="3" /></bezel>
<bezel element="static_gray"><bounds x="13.5" y="24" width="4" height="3" /></bezel>
<bezel element="static_gray"><bounds x="0" y="28" width="4" height="3" /></bezel>
<bezel element="static_gray"><bounds x="4.5" y="28" width="4" height="3" /></bezel>
<bezel element="static_gray"><bounds x="9" y="28" width="4" height="3" /></bezel>
<bezel element="static_gray"><bounds x="13.5" y="28" width="4" height="3" /></bezel>
<bezel element="static_gray"><bounds x="0" y="32" width="4" height="3" /></bezel>
<bezel element="static_gray"><bounds x="4.5" y="32" width="4" height="3" /></bezel>
<bezel element="static_gray"><bounds x="9" y="32" width="4" height="3" /></bezel>
<bezel element="static_gray"><bounds x="13.5" y="32" width="4" height="3" /></bezel>
<bezel element="text_b1"><bounds x="0.1" y="20.5" width="3.8" height="2" /></bezel>
<bezel element="text_b2"><bounds x="4.6" y="20.5" width="3.8" height="2" /></bezel>
<bezel element="text_b3"><bounds x="9.1" y="20.5" width="3.8" height="2" /></bezel>
<bezel element="text_b4"><bounds x="13.6" y="20.5" width="3.8" height="2" /></bezel>
<bezel element="text_b5"><bounds x="0.1" y="24.5" width="3.8" height="2" /></bezel>
<bezel element="text_b6"><bounds x="4.6" y="24.5" width="3.8" height="2" /></bezel>
<bezel element="text_b7"><bounds x="9.1" y="24.5" width="3.8" height="2" /></bezel>
<bezel element="text_b8"><bounds x="13.6" y="24.5" width="3.8" height="2" /></bezel>
<bezel element="text_b9"><bounds x="0.1" y="28.5" width="3.8" height="2" /></bezel>
<bezel element="text_b10"><bounds x="4.6" y="28.5" width="3.8" height="2" /></bezel>
<bezel element="text_b11"><bounds x="9.1" y="28.5" width="3.8" height="2" /></bezel>
<bezel element="text_b12"><bounds x="13.6" y="28.5" width="3.8" height="2" /></bezel>
<bezel element="text_b13"><bounds x="0.1" y="32.5" width="3.8" height="2" /></bezel>
<bezel element="text_b14"><bounds x="4.6" y="32.5" width="3.8" height="2" /></bezel>
<bezel element="text_b15"><bounds x="9.1" y="32.5" width="3.8" height="2" /></bezel>
<bezel element="text_b16"><bounds x="13.6" y="32.5" width="3.8" height="2" /></bezel>
<bezel element="hl" inputtag="RESET" inputmask="0x01"><bounds x="0" y="20" width="4" height="3" /><color alpha="0.2" /></bezel>
<bezel element="hl" inputtag="IN.1" inputmask="0x01"><bounds x="4.5" y="20" width="4" height="3" /><color alpha="0.2" /></bezel>
<bezel element="hl" inputtag="IN.2" inputmask="0x01"><bounds x="9" y="20" width="4" height="3" /><color alpha="0.2" /></bezel>
<bezel element="hl" inputtag="IN.3" inputmask="0x01"><bounds x="13.5" y="20" width="4" height="3" /><color alpha="0.2" /></bezel>
<bezel element="hl" inputtag="IN.0" inputmask="0x02"><bounds x="0" y="24" width="4" height="3" /><color alpha="0.2" /></bezel>
<bezel element="hl" inputtag="IN.1" inputmask="0x02"><bounds x="4.5" y="24" width="4" height="3" /><color alpha="0.2" /></bezel>
<bezel element="hl" inputtag="IN.2" inputmask="0x02"><bounds x="9" y="24" width="4" height="3" /><color alpha="0.2" /></bezel>
<bezel element="hl" inputtag="IN.3" inputmask="0x02"><bounds x="13.5" y="24" width="4" height="3" /><color alpha="0.2" /></bezel>
<bezel element="hl" inputtag="IN.0" inputmask="0x04"><bounds x="0" y="28" width="4" height="3" /><color alpha="0.2" /></bezel>
<bezel element="hl" inputtag="IN.1" inputmask="0x04"><bounds x="4.5" y="28" width="4" height="3" /><color alpha="0.2" /></bezel>
<bezel element="hl" inputtag="IN.2" inputmask="0x04"><bounds x="9" y="28" width="4" height="3" /><color alpha="0.2" /></bezel>
<bezel element="hl" inputtag="IN.3" inputmask="0x04"><bounds x="13.5" y="28" width="4" height="3" /><color alpha="0.2" /></bezel>
<bezel element="hl" inputtag="IN.0" inputmask="0x08"><bounds x="0" y="32" width="4" height="3" /><color alpha="0.2" /></bezel>
<bezel element="hl" inputtag="IN.1" inputmask="0x08"><bounds x="4.5" y="32" width="4" height="3" /><color alpha="0.2" /></bezel>
<bezel element="hl" inputtag="IN.2" inputmask="0x08"><bounds x="9" y="32" width="4" height="3" /><color alpha="0.2" /></bezel>
<bezel element="hl" inputtag="IN.3" inputmask="0x08"><bounds x="13.5" y="32" width="4" height="3" /><color alpha="0.2" /></bezel>
</view>
</mamelayout>

View File

@ -105,8 +105,8 @@
<bezel element="text_check"><bounds x="1" y="8.2" width="8" height="2" /></bezel>
<bezel element="text_lose"><bounds x="10.5" y="8.2" width="8" height="2" /></bezel>
<bezel name="1.7" element="led"><bounds x="0" y="8.5" width="1.5" height="1.5" /></bezel>
<bezel name="0.7" element="led"><bounds x="9.5" y="8.5" width="1.5" height="1.5" /></bezel>
<bezel name="4.a" element="led"><bounds x="0" y="8.5" width="1.5" height="1.5" /></bezel>
<bezel name="5.a" element="led"><bounds x="9.5" y="8.5" width="1.5" height="1.5" /></bezel>
<bezel element="text_from"><bounds x="0" y="17.2" width="8" height="2" /></bezel>
<bezel element="text_to"><bounds x="9.5" y="17.2" width="8" height="2" /></bezel>

View File

@ -12870,6 +12870,7 @@ vbrc //
@source:fidel_cc10.cpp
cc10 //
checkerc4 //
@source:fidel_cc7.cpp
backgamc //