fidel6502: improved SC12 emulation

This commit is contained in:
hap 2016-01-27 01:39:21 +01:00
parent 5041e43092
commit d960922c77
3 changed files with 217 additions and 48 deletions

View File

@ -32,12 +32,14 @@ public:
fidel6502_state(const machine_config &mconfig, device_type type, const char *tag)
: fidelz80base_state(mconfig, type, tag),
m_6821pia(*this, "6821pia"),
m_speaker(*this, "speaker")
m_speaker(*this, "speaker"),
m_irq_off(*this, "irq_off")
{ }
// devices/pointers
optional_device<pia6821_device> m_6821pia;
optional_device<speaker_sound_device> m_speaker;
optional_device<timer_device> m_irq_off;
// model CSC
void csc_prepare_display();
@ -54,10 +56,11 @@ public:
DECLARE_READ_LINE_MEMBER(csc_pia1_ca1_r);
DECLARE_READ_LINE_MEMBER(csc_pia1_cb1_r);
TIMER_DEVICE_CALLBACK_MEMBER(irq_timer);
protected:
virtual void machine_start() override;
// model SC12
TIMER_DEVICE_CALLBACK_MEMBER(irq_off);
TIMER_DEVICE_CALLBACK_MEMBER(sc12_irq);
DECLARE_WRITE8_MEMBER(sc12_control_w);
DECLARE_READ8_MEMBER(sc12_input_r);
};
@ -196,35 +199,83 @@ WRITE_LINE_MEMBER(fidel6502_state::csc_pia1_ca2_w)
/******************************************************************************
SC12
******************************************************************************/
TIMER_DEVICE_CALLBACK_MEMBER(fidel6502_state::irq_timer)
// interrupt handling
TIMER_DEVICE_CALLBACK_MEMBER(fidel6502_state::irq_off)
{
m_maincpu->set_input_line(M6502_IRQ_LINE, HOLD_LINE);
m_maincpu->set_input_line(M6502_IRQ_LINE, CLEAR_LINE);
}
TIMER_DEVICE_CALLBACK_MEMBER(fidel6502_state::sc12_irq)
{
m_maincpu->set_input_line(M6502_IRQ_LINE, ASSERT_LINE);
m_irq_off->adjust(attotime::from_nsec(15250)); // active low for 15.25us
}
// TTL
WRITE8_MEMBER(fidel6502_state::sc12_control_w)
{
// d0-d3: 7442 a0-a3
// 7442 0-8: led data, input mux
UINT16 sel = 1 << (data & 0xf) & 0x3ff;
m_inp_mux = sel & 0x1ff;
// 7442 9: speaker out
m_speaker->level_w(sel >> 9 & 1);
// d6,d7: led select (active low)
display_matrix(9, 2, sel & 0x1ff, ~data >> 6 & 3);
// d4,d5: printer
//..
}
READ8_MEMBER(fidel6502_state::sc12_input_r)
{
// a0-a2,d7: multiplexed inputs (active low)
return (read_inputs(9) << (offset^7) & 0x80) ^ 0xff;
}
/******************************************************************************
Address Maps
******************************************************************************/
// CSC
static ADDRESS_MAP_START( csc_map, AS_PROGRAM, 8, fidel6502_state )
ADDRESS_MAP_UNMAP_HIGH
AM_RANGE(0x0000, 0x07ff) AM_RAM AM_MIRROR(0x4000)
AM_RANGE(0x0800, 0x0bff) AM_RAM AM_MIRROR(0x4400)
AM_RANGE(0x1000, 0x1003) AM_DEVREADWRITE("pia0", pia6821_device, read, write) AM_MIRROR(0x47fc)
AM_RANGE(0x1800, 0x1803) AM_DEVREADWRITE("pia1", pia6821_device, read, write) AM_MIRROR(0x47fc)
AM_RANGE(0x2000, 0x3fff) AM_ROM AM_MIRROR(0x4000)
AM_RANGE(0x0000, 0x07ff) AM_MIRROR(0x4000) AM_RAM
AM_RANGE(0x0800, 0x0bff) AM_MIRROR(0x4400) AM_RAM
AM_RANGE(0x1000, 0x1003) AM_MIRROR(0x47fc) AM_DEVREADWRITE("pia0", pia6821_device, read, write)
AM_RANGE(0x1800, 0x1803) AM_MIRROR(0x47fc) AM_DEVREADWRITE("pia1", pia6821_device, read, write)
AM_RANGE(0x2000, 0x3fff) AM_MIRROR(0x4000) AM_ROM
AM_RANGE(0xa000, 0xffff) AM_ROM
ADDRESS_MAP_END
// SC12
static ADDRESS_MAP_START( sc12_map, AS_PROGRAM, 8, fidel6502_state )
ADDRESS_MAP_UNMAP_HIGH
AM_RANGE(0x0000, 0x0fff) AM_RAM
AM_RANGE(0x6000, 0x6000) AM_MIRROR(0x1fff) AM_WRITE(sc12_control_w)
AM_RANGE(0x8000, 0x9fff) AM_ROM
AM_RANGE(0xc000, 0xcfff) AM_ROM AM_MIRROR(0x1000)
AM_RANGE(0xa000, 0xa007) AM_MIRROR(0x1ff8) AM_READ(sc12_input_r)
AM_RANGE(0xc000, 0xcfff) AM_MIRROR(0x1000) AM_ROM
AM_RANGE(0xe000, 0xffff) AM_ROM
ADDRESS_MAP_END
// FEV
static ADDRESS_MAP_START( fev_map, AS_PROGRAM, 8, fidel6502_state )
ADDRESS_MAP_UNMAP_HIGH
AM_RANGE(0x0000, 0x1fff) AM_RAM
@ -232,6 +283,7 @@ static ADDRESS_MAP_START( fev_map, AS_PROGRAM, 8, fidel6502_state )
ADDRESS_MAP_END
/******************************************************************************
Input Ports
******************************************************************************/
@ -337,11 +389,98 @@ static INPUT_PORTS_START( csc )
PORT_BIT(0x100,IP_ACTIVE_HIGH, IPT_UNUSED) PORT_UNUSED
INPUT_PORTS_END
static INPUT_PORTS_START( sc12 )
PORT_START("IN.0")
PORT_BIT(0x01, IP_ACTIVE_HIGH, IPT_KEYPAD)
PORT_BIT(0x02, IP_ACTIVE_HIGH, IPT_KEYPAD)
PORT_BIT(0x04, IP_ACTIVE_HIGH, IPT_KEYPAD)
PORT_BIT(0x08, IP_ACTIVE_HIGH, IPT_KEYPAD)
PORT_BIT(0x10, IP_ACTIVE_HIGH, IPT_KEYPAD)
PORT_BIT(0x20, IP_ACTIVE_HIGH, IPT_KEYPAD)
PORT_BIT(0x40, IP_ACTIVE_HIGH, IPT_KEYPAD)
PORT_BIT(0x80, IP_ACTIVE_HIGH, IPT_KEYPAD)
PORT_START("IN.1")
PORT_BIT(0x01, IP_ACTIVE_HIGH, IPT_KEYPAD)
PORT_BIT(0x02, IP_ACTIVE_HIGH, IPT_KEYPAD)
PORT_BIT(0x04, IP_ACTIVE_HIGH, IPT_KEYPAD)
PORT_BIT(0x08, IP_ACTIVE_HIGH, IPT_KEYPAD)
PORT_BIT(0x10, IP_ACTIVE_HIGH, IPT_KEYPAD)
PORT_BIT(0x20, IP_ACTIVE_HIGH, IPT_KEYPAD)
PORT_BIT(0x40, IP_ACTIVE_HIGH, IPT_KEYPAD)
PORT_BIT(0x80, IP_ACTIVE_HIGH, IPT_KEYPAD)
PORT_START("IN.2")
PORT_BIT(0x01, IP_ACTIVE_HIGH, IPT_KEYPAD)
PORT_BIT(0x02, IP_ACTIVE_HIGH, IPT_KEYPAD)
PORT_BIT(0x04, IP_ACTIVE_HIGH, IPT_KEYPAD)
PORT_BIT(0x08, IP_ACTIVE_HIGH, IPT_KEYPAD)
PORT_BIT(0x10, IP_ACTIVE_HIGH, IPT_KEYPAD)
PORT_BIT(0x20, IP_ACTIVE_HIGH, IPT_KEYPAD)
PORT_BIT(0x40, IP_ACTIVE_HIGH, IPT_KEYPAD)
PORT_BIT(0x80, IP_ACTIVE_HIGH, IPT_KEYPAD)
PORT_START("IN.3")
PORT_BIT(0x01, IP_ACTIVE_HIGH, IPT_KEYPAD)
PORT_BIT(0x02, IP_ACTIVE_HIGH, IPT_KEYPAD)
PORT_BIT(0x04, IP_ACTIVE_HIGH, IPT_KEYPAD)
PORT_BIT(0x08, IP_ACTIVE_HIGH, IPT_KEYPAD)
PORT_BIT(0x10, IP_ACTIVE_HIGH, IPT_KEYPAD)
PORT_BIT(0x20, IP_ACTIVE_HIGH, IPT_KEYPAD)
PORT_BIT(0x40, IP_ACTIVE_HIGH, IPT_KEYPAD)
PORT_BIT(0x80, IP_ACTIVE_HIGH, IPT_KEYPAD)
PORT_START("IN.4")
PORT_BIT(0x01, IP_ACTIVE_HIGH, IPT_KEYPAD)
PORT_BIT(0x02, IP_ACTIVE_HIGH, IPT_KEYPAD)
PORT_BIT(0x04, IP_ACTIVE_HIGH, IPT_KEYPAD)
PORT_BIT(0x08, IP_ACTIVE_HIGH, IPT_KEYPAD)
PORT_BIT(0x10, IP_ACTIVE_HIGH, IPT_KEYPAD)
PORT_BIT(0x20, IP_ACTIVE_HIGH, IPT_KEYPAD)
PORT_BIT(0x40, IP_ACTIVE_HIGH, IPT_KEYPAD)
PORT_BIT(0x80, IP_ACTIVE_HIGH, IPT_KEYPAD)
PORT_START("IN.5")
PORT_BIT(0x01, IP_ACTIVE_HIGH, IPT_KEYPAD)
PORT_BIT(0x02, IP_ACTIVE_HIGH, IPT_KEYPAD)
PORT_BIT(0x04, IP_ACTIVE_HIGH, IPT_KEYPAD)
PORT_BIT(0x08, IP_ACTIVE_HIGH, IPT_KEYPAD)
PORT_BIT(0x10, IP_ACTIVE_HIGH, IPT_KEYPAD)
PORT_BIT(0x20, IP_ACTIVE_HIGH, IPT_KEYPAD)
PORT_BIT(0x40, IP_ACTIVE_HIGH, IPT_KEYPAD)
PORT_BIT(0x80, IP_ACTIVE_HIGH, IPT_KEYPAD)
PORT_START("IN.6")
PORT_BIT(0x01, IP_ACTIVE_HIGH, IPT_KEYPAD)
PORT_BIT(0x02, IP_ACTIVE_HIGH, IPT_KEYPAD)
PORT_BIT(0x04, IP_ACTIVE_HIGH, IPT_KEYPAD)
PORT_BIT(0x08, IP_ACTIVE_HIGH, IPT_KEYPAD)
PORT_BIT(0x10, IP_ACTIVE_HIGH, IPT_KEYPAD)
PORT_BIT(0x20, IP_ACTIVE_HIGH, IPT_KEYPAD)
PORT_BIT(0x40, IP_ACTIVE_HIGH, IPT_KEYPAD)
PORT_BIT(0x80, IP_ACTIVE_HIGH, IPT_KEYPAD)
PORT_START("IN.7")
PORT_BIT(0x01, IP_ACTIVE_HIGH, IPT_KEYPAD)
PORT_BIT(0x02, IP_ACTIVE_HIGH, IPT_KEYPAD)
PORT_BIT(0x04, IP_ACTIVE_HIGH, IPT_KEYPAD)
PORT_BIT(0x08, IP_ACTIVE_HIGH, IPT_KEYPAD)
PORT_BIT(0x10, IP_ACTIVE_HIGH, IPT_KEYPAD)
PORT_BIT(0x20, IP_ACTIVE_HIGH, IPT_KEYPAD)
PORT_BIT(0x40, IP_ACTIVE_HIGH, IPT_KEYPAD)
PORT_BIT(0x80, IP_ACTIVE_HIGH, IPT_KEYPAD)
PORT_START("IN.8")
PORT_BIT(0x01, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_NAME("RV / Pawn") PORT_CODE(KEYCODE_1)
PORT_BIT(0x02, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_NAME("DM / Knight") PORT_CODE(KEYCODE_2)
PORT_BIT(0x04, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_NAME("TB / Bishop") PORT_CODE(KEYCODE_3)
PORT_BIT(0x08, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_NAME("LV / Rook") PORT_CODE(KEYCODE_4)
PORT_BIT(0x10, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_NAME("PV / Queen") PORT_CODE(KEYCODE_5)
PORT_BIT(0x20, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_NAME("PB / King") PORT_CODE(KEYCODE_6)
PORT_BIT(0x40, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_NAME("CL") PORT_CODE(KEYCODE_DEL) // clear
PORT_BIT(0x80, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_NAME("RE") PORT_CODE(KEYCODE_R) // reset
INPUT_PORTS_END
void fidel6502_state::machine_start()
{
fidelz80base_state::machine_start();
}
/******************************************************************************
@ -351,11 +490,9 @@ void fidel6502_state::machine_start()
static MACHINE_CONFIG_START( csc, fidel6502_state )
/* basic machine hardware */
MCFG_CPU_ADD("maincpu", M6502, 3900000/2)
MCFG_CPU_ADD("maincpu", M6502, 3900000/2) // from 3.9MHz resonator
MCFG_CPU_PROGRAM_MAP(csc_map)
MCFG_TIMER_DRIVER_ADD_PERIODIC("irq_timer", fidel6502_state, irq_timer, attotime::from_hz(38400/64))
MCFG_CPU_PERIODIC_INT_DRIVER(fidelz80base_state, irq0_line_hold, 600) // 38400kHz/64
MCFG_DEVICE_ADD("pia0", PIA6821, 0)
MCFG_PIA_READPB_HANDLER(READ8(fidel6502_state, csc_pia0_pb_r))
@ -385,12 +522,13 @@ static MACHINE_CONFIG_START( csc, fidel6502_state )
MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.25)
MACHINE_CONFIG_END
static MACHINE_CONFIG_START( sc12, fidel6502_state )
/* basic machine hardware */
MCFG_CPU_ADD("maincpu", R65C02, XTAL_4MHz)
MCFG_CPU_PROGRAM_MAP(sc12_map)
MCFG_TIMER_DRIVER_ADD_PERIODIC("sc12_irq", fidel6502_state, sc12_irq, attotime::from_hz(780)) // from 556 timer
MCFG_TIMER_DRIVER_ADD("irq_off", fidel6502_state, irq_off)
MCFG_TIMER_DRIVER_ADD_PERIODIC("display_decay", fidelz80base_state, display_decay_tick, attotime::from_msec(1))
MCFG_DEFAULT_LAYOUT(layout_fidel_sc12)
@ -401,8 +539,6 @@ static MACHINE_CONFIG_START( sc12, fidel6502_state )
MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.25)
MACHINE_CONFIG_END
static MACHINE_CONFIG_START( fev, fidel6502_state )
/* basic machine hardware */
@ -420,6 +556,7 @@ static MACHINE_CONFIG_START( fev, fidel6502_state )
MACHINE_CONFIG_END
/******************************************************************************
ROM Definitions
******************************************************************************/
@ -459,6 +596,6 @@ ROM_END
/* YEAR NAME PARENT COMPAT MACHINE INPUT INIT COMPANY, FULLNAME, FLAGS */
COMP( 1981, csc, 0, 0, csc, csc, driver_device, 0, "Fidelity Electronics", "Champion Sensory Chess Challenger", MACHINE_NOT_WORKING | MACHINE_SUPPORTS_SAVE | MACHINE_CLICKABLE_ARTWORK )
COMP( 1984, fscc12, 0, 0, sc12, csc, driver_device, 0, "Fidelity Electronics", "Sensory Chess Challenger 12-B", MACHINE_NOT_WORKING )
COMP( 1984, fscc12, 0, 0, sc12, sc12, driver_device, 0, "Fidelity Electronics", "Sensory Chess Challenger 12-B", MACHINE_NOT_WORKING )
COMP( 1987, fexcelv, 0, 0, fev, csc, driver_device, 0, "Fidelity Electronics", "Voice Excellence", MACHINE_NOT_WORKING )

View File

@ -310,6 +310,7 @@ Champion Sensory Chess Challenger (CSC) (6502 based -> fidel6502.cpp driver)
Memory map:
-----------
0000-07FF: 2K of RAM
0800-0FFF: 1K of RAM (note: mirrored twice)
1000-17FF: PIA 0 (display, TSI speech chip)
@ -598,9 +599,40 @@ Sensory Chess Challenger (SC12-B) (6502 based -> fidel6502.cpp driver)
RE information by Berger
8*(8+1) buttons, 8+8+2 red LEDs
DIN 41524C printer port
36-pin edge connector
CPU is a R65C02P4, running at 4MHz
NE556 dual-timer IC:
- timer#1, one-shot at power-on, to CPU _RESET
- timer#2: R1=82K, R2=1K, C=22nf, to CPU _IRQ: ~780Hz, active low=15.25us
Memory map:
-----------
6000-0FFF: 4K of RAM (2016 * 2)
2000-5FFF: cartridge
6000-7FFF: control(W)
8000-9FFF: 8K ROM SSS SCM23C65E4
A000-BFFF: keypad(R)
C000-DFFF: 4K ROM TI TMS2732AJL-45
E000-FFFF: 8K ROM Toshiba TMM2764D-2
control: (74LS377)
--------
Q0-Q3: 7442 A0-A3
Q4: enable printer port pin 1 input
Q5: printer port pin 5 output
Q6,Q7: LEDs common anode
7442 0-8: input mux and LEDs cathode
7442 9: buzzer
The keypad is read through a 74HC251, where S0,1,2 is from CPU A0,1,2, Y is connected to CPU D7.
If control Q4 is set, printer data can be read from I0.
******************************************************************************
@ -1126,7 +1158,7 @@ ADDRESS_MAP_END
static ADDRESS_MAP_START( vcc_map, AS_PROGRAM, 8, fidelz80_state )
ADDRESS_MAP_UNMAP_HIGH
AM_RANGE(0x0000, 0x2fff) AM_ROM
AM_RANGE(0x4000, 0x43ff) AM_RAM AM_MIRROR(0x1c00)
AM_RANGE(0x4000, 0x43ff) AM_MIRROR(0x1c00) AM_RAM
ADDRESS_MAP_END
static ADDRESS_MAP_START( vcc_io, AS_IO, 8, fidelz80_state )
@ -1140,8 +1172,8 @@ ADDRESS_MAP_END
static ADDRESS_MAP_START( vsc_map, AS_PROGRAM, 8, fidelz80_state )
ADDRESS_MAP_UNMAP_HIGH
AM_RANGE(0x0000, 0x3fff) AM_ROM
AM_RANGE(0x4000, 0x4fff) AM_ROM AM_MIRROR(0x1000)
AM_RANGE(0x6000, 0x63ff) AM_RAM AM_MIRROR(0x1c00)
AM_RANGE(0x4000, 0x4fff) AM_MIRROR(0x1000) AM_ROM
AM_RANGE(0x6000, 0x63ff) AM_MIRROR(0x1c00) AM_RAM
ADDRESS_MAP_END
// VSC io: A2 is 8255 _CE, A3 is Z80 PIO _CE - in theory, both chips can be accessed simultaneously
@ -1187,8 +1219,8 @@ WRITE8_MEMBER(fidelz80_state::vbrc_speech_w)
static ADDRESS_MAP_START( vbrc_main_map, AS_PROGRAM, 8, fidelz80_state )
ADDRESS_MAP_UNMAP_HIGH
AM_RANGE(0x0000, 0x5fff) AM_ROM
AM_RANGE(0x6000, 0x63ff) AM_RAM AM_MIRROR(0x1c00)
AM_RANGE(0xe000, 0xffff) AM_WRITE(vbrc_speech_w) AM_MIRROR(0x1fff)
AM_RANGE(0x6000, 0x63ff) AM_MIRROR(0x1c00) AM_RAM
AM_RANGE(0xe000, 0xffff) AM_MIRROR(0x1fff) AM_WRITE(vbrc_speech_w)
ADDRESS_MAP_END
static ADDRESS_MAP_START( vbrc_main_io, AS_IO, 8, fidelz80_state )

View File

@ -14,26 +14,26 @@
<view name="Internal Layout">
<bounds left="0" right="20" top="0" bottom="20" />
<bezel name="0.0" element="led"><bounds x="1" y="1" width="1" height="1" /></bezel>
<bezel name="0.1" element="led"><bounds x="1" y="2" width="1" height="1" /></bezel>
<bezel name="0.2" element="led"><bounds x="1" y="3" width="1" height="1" /></bezel>
<bezel name="0.3" element="led"><bounds x="1" y="4" width="1" height="1" /></bezel>
<bezel name="0.4" element="led"><bounds x="1" y="5" width="1" height="1" /></bezel>
<bezel name="0.5" element="led"><bounds x="1" y="6" width="1" height="1" /></bezel>
<bezel name="0.6" element="led"><bounds x="1" y="7" width="1" height="1" /></bezel>
<bezel name="0.7" element="led"><bounds x="1" y="8" width="1" height="1" /></bezel>
<bezel name="1.0" element="led"><bounds x="1" y="1" width="1" height="1" /></bezel>
<bezel name="1.1" element="led"><bounds x="1" y="2" width="1" height="1" /></bezel>
<bezel name="1.2" element="led"><bounds x="1" y="3" width="1" height="1" /></bezel>
<bezel name="1.3" element="led"><bounds x="1" y="4" width="1" height="1" /></bezel>
<bezel name="1.4" element="led"><bounds x="1" y="5" width="1" height="1" /></bezel>
<bezel name="1.5" element="led"><bounds x="1" y="6" width="1" height="1" /></bezel>
<bezel name="1.6" element="led"><bounds x="1" y="7" width="1" height="1" /></bezel>
<bezel name="1.7" element="led"><bounds x="1" y="8" width="1" height="1" /></bezel>
<bezel name="1.0" element="led"><bounds x="2" y="9" width="1" height="1" /></bezel>
<bezel name="1.1" element="led"><bounds x="3" y="9" width="1" height="1" /></bezel>
<bezel name="1.2" element="led"><bounds x="4" y="9" width="1" height="1" /></bezel>
<bezel name="1.3" element="led"><bounds x="5" y="9" width="1" height="1" /></bezel>
<bezel name="1.4" element="led"><bounds x="6" y="9" width="1" height="1" /></bezel>
<bezel name="1.5" element="led"><bounds x="7" y="9" width="1" height="1" /></bezel>
<bezel name="1.6" element="led"><bounds x="8" y="9" width="1" height="1" /></bezel>
<bezel name="1.7" element="led"><bounds x="9" y="9" width="1" height="1" /></bezel>
<bezel name="0.0" element="led"><bounds x="2" y="9" width="1" height="1" /></bezel>
<bezel name="0.1" element="led"><bounds x="3" y="9" width="1" height="1" /></bezel>
<bezel name="0.2" element="led"><bounds x="4" y="9" width="1" height="1" /></bezel>
<bezel name="0.3" element="led"><bounds x="5" y="9" width="1" height="1" /></bezel>
<bezel name="0.4" element="led"><bounds x="6" y="9" width="1" height="1" /></bezel>
<bezel name="0.5" element="led"><bounds x="7" y="9" width="1" height="1" /></bezel>
<bezel name="0.6" element="led"><bounds x="8" y="9" width="1" height="1" /></bezel>
<bezel name="0.7" element="led"><bounds x="9" y="9" width="1" height="1" /></bezel>
<bezel name="2.0" element="led"><bounds x="11" y="7" width="1" height="1" /></bezel>
<bezel name="2.1" element="led"><bounds x="11" y="8" width="1" height="1" /></bezel>
<bezel name="1.8" element="led"><bounds x="11" y="7" width="1" height="1" /></bezel>
<bezel name="0.8" element="led"><bounds x="11" y="8" width="1" height="1" /></bezel>
</view>
</mamelayout>