mirror of
https://github.com/holub/mame
synced 2025-10-05 16:50:57 +03:00
Moved Saitek RISC 2500 into a separate driver and added internal layout and inputs.
This commit is contained in:
parent
6184bba010
commit
1746a9f058
@ -1948,6 +1948,7 @@ files {
|
||||
MAME_DIR .. "src/mame/drivers/glasgow.cpp",
|
||||
MAME_DIR .. "src/mame/drivers/mephisto.cpp",
|
||||
MAME_DIR .. "src/mame/drivers/mmodular.cpp",
|
||||
MAME_DIR .. "src/mame/drivers/risc2500.cpp",
|
||||
MAME_DIR .. "src/mame/drivers/stratos.cpp",
|
||||
}
|
||||
|
||||
|
@ -24,7 +24,6 @@
|
||||
|
||||
misc non-modular/non-68K boards
|
||||
|
||||
RISC 2500 (Skeleton, does not work, and not sure the same internal chessboard connections are used)
|
||||
Academy 65C02 4.9152mhz
|
||||
Monte Carlo IV, Mega IV and any others not listed above have correct ROM/RAM and maybe LCD, not much else for now
|
||||
|
||||
@ -81,7 +80,6 @@ Bit 5+6 LED 1-8 enable
|
||||
#include "emu.h"
|
||||
#include "cpu/m68000/m68000.h"
|
||||
#include "cpu/m6502/m65c02.h"
|
||||
#include "cpu/arm/arm.h"
|
||||
#include "sound/beep.h"
|
||||
//#include "machine/mos6551.h"
|
||||
#include "video/hd44780.h"
|
||||
@ -180,8 +178,6 @@ public:
|
||||
DECLARE_WRITE16_MEMBER(write_unknown2);
|
||||
DECLARE_READ32_MEMBER(read_unknown3_32);
|
||||
DECLARE_READ16_MEMBER(read_unknown3);
|
||||
DECLARE_READ32_MEMBER(read_1800000);
|
||||
DECLARE_WRITE32_MEMBER(write_1000000);
|
||||
DECLARE_DRIVER_INIT(polgar);
|
||||
DECLARE_MACHINE_START(polgar);
|
||||
DECLARE_MACHINE_RESET(polgar);
|
||||
@ -192,7 +188,6 @@ public:
|
||||
DECLARE_MACHINE_RESET(monteciv);
|
||||
DECLARE_MACHINE_START(diablo68);
|
||||
DECLARE_MACHINE_START(van16);
|
||||
DECLARE_MACHINE_START(risc);
|
||||
DECLARE_MACHINE_RESET(academy);
|
||||
DECLARE_PALETTE_INIT(chess_lcd);
|
||||
TIMER_DEVICE_CALLBACK_MEMBER(cause_nmi);
|
||||
@ -957,16 +952,6 @@ READ16_MEMBER(polgar_state::read_unknown3)
|
||||
|
||||
}
|
||||
|
||||
READ32_MEMBER(polgar_state::read_1800000)
|
||||
{
|
||||
logerror("Read from RISC2500 1800000\n");
|
||||
return 0;
|
||||
}
|
||||
|
||||
WRITE32_MEMBER(polgar_state::write_1000000)
|
||||
{
|
||||
logerror("Write to RISC2500 1000000\n");
|
||||
}
|
||||
|
||||
TIMER_DEVICE_CALLBACK_MEMBER(polgar_state::timer_update_irq6)
|
||||
{
|
||||
@ -1000,11 +985,6 @@ MACHINE_START_MEMBER(polgar_state,van32)
|
||||
}
|
||||
|
||||
|
||||
MACHINE_START_MEMBER(polgar_state,risc)
|
||||
{
|
||||
}
|
||||
|
||||
|
||||
void polgar_state::common_chess_start()
|
||||
{
|
||||
}
|
||||
@ -1179,14 +1159,6 @@ static ADDRESS_MAP_START(alm32_mem, AS_PROGRAM, 32, polgar_state )
|
||||
|
||||
ADDRESS_MAP_END
|
||||
|
||||
static ADDRESS_MAP_START(risc_mem, AS_PROGRAM, 32, polgar_state )
|
||||
|
||||
AM_RANGE( 0x02000000, 0x0201ffff ) AM_ROM AM_REGION("maincpu", 0) // AM_MIRROR(0x2000000)
|
||||
AM_RANGE( 0x01000000, 0x01000003 ) AM_WRITE(write_1000000 )
|
||||
AM_RANGE( 0x01800000, 0x01800003 ) AM_READ(read_1800000 )
|
||||
AM_RANGE( 0x00000000, 0x0001ffff ) AM_RAM
|
||||
|
||||
ADDRESS_MAP_END
|
||||
|
||||
static ADDRESS_MAP_START(van16_mem, AS_PROGRAM, 16, polgar_state )
|
||||
|
||||
@ -1639,18 +1611,6 @@ static MACHINE_CONFIG_START( van32, polgar_state )
|
||||
|
||||
MACHINE_CONFIG_END
|
||||
|
||||
static MACHINE_CONFIG_START( risc, polgar_state )
|
||||
MCFG_CPU_ADD("maincpu", ARM, 14000000)
|
||||
MCFG_CPU_PROGRAM_MAP(risc_mem)
|
||||
MCFG_MACHINE_START_OVERRIDE(polgar_state,risc)
|
||||
MCFG_MACHINE_RESET_OVERRIDE(polgar_state,van16)
|
||||
//MCFG_TIMER_DRIVER_ADD_PERIODIC("artwork_timer", polgar_state, mboard_update_artwork, attotime::from_hz(120))
|
||||
|
||||
MCFG_FRAGMENT_ADD( chess_common )
|
||||
// MCFG_NVRAM_ADD_0FILL("nvram")
|
||||
|
||||
MACHINE_CONFIG_END
|
||||
|
||||
static MACHINE_CONFIG_START( gen32, polgar_state )
|
||||
MCFG_CPU_ADD("maincpu", M68030, XTAL_33_333MHz)
|
||||
MCFG_CPU_PROGRAM_MAP(gen32_mem)
|
||||
@ -1799,11 +1759,6 @@ ROM_START( van32 )
|
||||
ROM_END
|
||||
|
||||
|
||||
ROM_START( risc )
|
||||
ROM_REGION( 0x20000, "maincpu", 0 )
|
||||
ROM_LOAD("s2500.bin", 0x000000, 0x20000, CRC(7a707e82) SHA1(87187fa58117a442f3abd30092cfcc2a4d7c7efc))
|
||||
ROM_END
|
||||
|
||||
ROM_START( gen32 )
|
||||
ROM_REGION32_BE( 0x40000, "maincpu", 0 )
|
||||
ROM_LOAD("gen32_4.bin", 0x00000, 0x40000,CRC(6CC4DA88) SHA1(EA72ACF9C67ED17C6AC8DE56A165784AA629C4A1))
|
||||
@ -1859,7 +1814,6 @@ DRIVER_INIT_MEMBER(polgar_state,polgar)
|
||||
CONS( 1991, diablo68, 0, 0, diablo68, sfortea, driver_device, 0, "Novag", "Novag Diablo 68000 Chess Computer", MACHINE_NO_SOUND|MACHINE_NOT_WORKING|MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK )
|
||||
CONS( 1991, van16, 0, 0, van16, van16, driver_device, 0, "Hegener & Glaser Muenchen", "Mephisto Vancouver 68000", MACHINE_NOT_WORKING|MACHINE_REQUIRES_ARTWORK | MACHINE_CLICKABLE_ARTWORK )
|
||||
CONS( 1991, van32, van16, 0, van32, van32, driver_device, 0, "Hegener & Glaser Muenchen", "Mephisto Vancouver 68020", MACHINE_NOT_WORKING|MACHINE_REQUIRES_ARTWORK | MACHINE_CLICKABLE_ARTWORK )
|
||||
CONS( 1992, risc, 0, 0, risc, van16, driver_device, 0, "Saitek", "RISC2500", MACHINE_NOT_WORKING|MACHINE_REQUIRES_ARTWORK|MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK )
|
||||
CONS( 1993, gen32, van16, 0, gen32, gen32, driver_device, 0, "Hegener & Glaser Muenchen", "Mephisto Genius030 V4.00", MACHINE_NOT_WORKING|MACHINE_REQUIRES_ARTWORK | MACHINE_CLICKABLE_ARTWORK )
|
||||
CONS( 1993, gen32_41, van16, 0, gen32, gen32, driver_device, 0, "Hegener & Glaser Muenchen", "Mephisto Genius030 V4.01", MACHINE_NOT_WORKING|MACHINE_REQUIRES_ARTWORK | MACHINE_CLICKABLE_ARTWORK )
|
||||
CONS( 1994, berlinp, van16, 0, bpl32, bpl32, driver_device, 0, "Hegener & Glaser Muenchen", "Mephisto Berlin Pro 68020", MACHINE_NOT_WORKING|MACHINE_REQUIRES_ARTWORK | MACHINE_CLICKABLE_ARTWORK )
|
||||
|
315
src/mame/drivers/risc2500.cpp
Normal file
315
src/mame/drivers/risc2500.cpp
Normal file
@ -0,0 +1,315 @@
|
||||
// license:BSD-3-Clause
|
||||
// copyright-holders:Sandro Ronco
|
||||
/******************************************************************************
|
||||
|
||||
Saitek RISC 2500
|
||||
|
||||
TODO:
|
||||
- sound
|
||||
|
||||
******************************************************************************/
|
||||
|
||||
|
||||
#include "emu.h"
|
||||
#include "cpu/arm/arm.h"
|
||||
#include "machine/ram.h"
|
||||
#include "machine/nvram.h"
|
||||
|
||||
#include "risc2500.lh"
|
||||
|
||||
|
||||
class risc2500_state : public driver_device
|
||||
{
|
||||
public:
|
||||
risc2500_state(const machine_config &mconfig, device_type type, const char *tag)
|
||||
: driver_device(mconfig, type, tag),
|
||||
m_maincpu(*this, "maincpu"),
|
||||
m_ram(*this, "ram"),
|
||||
m_nvram(*this, "nvram"),
|
||||
m_inputs(*this, "P%u", 0)
|
||||
{ }
|
||||
|
||||
DECLARE_READ32_MEMBER(p1000_r);
|
||||
DECLARE_WRITE32_MEMBER(p1000_w);
|
||||
DECLARE_READ32_MEMBER(disable_boot_rom);
|
||||
TIMER_CALLBACK_MEMBER(disable_boot_rom);
|
||||
|
||||
virtual void machine_start() override;
|
||||
virtual void machine_reset() override;
|
||||
uint32_t screen_update(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
|
||||
DECLARE_INPUT_CHANGED_MEMBER(on_button);
|
||||
void install_boot_rom();
|
||||
|
||||
private:
|
||||
required_device<cpu_device> m_maincpu;
|
||||
required_device<ram_device> m_ram;
|
||||
required_device<nvram_device> m_nvram;
|
||||
required_ioport_array<8> m_inputs;
|
||||
|
||||
uint32_t m_p1000;
|
||||
uint16_t m_vram_addr;
|
||||
uint8_t m_vram[0x100];
|
||||
};
|
||||
|
||||
|
||||
void risc2500_state::install_boot_rom()
|
||||
{
|
||||
m_maincpu->space(AS_PROGRAM).install_rom(0x00000000, 0x001ffff, memregion("maincpu")->base());
|
||||
}
|
||||
|
||||
uint32_t risc2500_state::screen_update(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
|
||||
{
|
||||
for(int c=0; c<12; c++)
|
||||
{
|
||||
// 12 characters 5 x 7
|
||||
for(int x=0; x<5; x++)
|
||||
{
|
||||
uint8_t gfx = BITSWAP8(m_vram[c*5 + x], 6,5,0,1,2,3,4,7);
|
||||
|
||||
for(int y=0; y<7; y++)
|
||||
bitmap.pix16(y, 71 - (c*6 + x)) = (gfx >> (y + 1)) & 1;
|
||||
}
|
||||
|
||||
// LCD digits and symbols
|
||||
int data_addr = 0x40 + c * 5;
|
||||
uint16_t data = ((m_vram[data_addr + 1] & 0x3) << 5) | ((m_vram[data_addr + 2] & 0x7) << 2) | (m_vram[data_addr + 4] & 0x3);
|
||||
data = BITSWAP8(data, 7,3,0,1,4,6,5,2) | ((m_vram[data_addr - 1] & 0x04) ? 0x80 : 0);
|
||||
|
||||
output().set_digit_value(c, data);
|
||||
output().set_indexed_value("sym", c, BIT(m_vram[data_addr + 1], 2));
|
||||
}
|
||||
|
||||
output().set_indexed_value("sym", 12, BIT(m_vram[0x63], 0));
|
||||
output().set_indexed_value("sym", 13, BIT(m_vram[0x4a], 0));
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
INPUT_CHANGED_MEMBER(risc2500_state::on_button)
|
||||
{
|
||||
if (newval)
|
||||
{
|
||||
install_boot_rom();
|
||||
m_maincpu->reset();
|
||||
}
|
||||
}
|
||||
|
||||
static INPUT_PORTS_START( risc2500 )
|
||||
PORT_START("P0")
|
||||
PORT_BIT(0x00000001, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_IMPULSE(10) // H1
|
||||
PORT_BIT(0x00000002, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_IMPULSE(10) // G1
|
||||
PORT_BIT(0x00000004, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_IMPULSE(10) // F1
|
||||
PORT_BIT(0x00000008, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_IMPULSE(10) // E1
|
||||
PORT_BIT(0x00000010, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_IMPULSE(10) // D1
|
||||
PORT_BIT(0x00000020, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_IMPULSE(10) // C1
|
||||
PORT_BIT(0x00000040, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_IMPULSE(10) // B1
|
||||
PORT_BIT(0x00000080, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_IMPULSE(10) // A1
|
||||
PORT_BIT(0x40000000, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_CODE(KEYCODE_1_PAD) PORT_NAME("Pawn")
|
||||
PORT_BIT(0x80000000, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_CODE(KEYCODE_BACKSPACE) PORT_NAME("BACK")
|
||||
|
||||
PORT_START("P1")
|
||||
PORT_BIT(0x00000001, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_IMPULSE(10) // H2
|
||||
PORT_BIT(0x00000002, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_IMPULSE(10) // G2
|
||||
PORT_BIT(0x00000004, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_IMPULSE(10) // F2
|
||||
PORT_BIT(0x00000008, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_IMPULSE(10) // E2
|
||||
PORT_BIT(0x00000010, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_IMPULSE(10) // D2
|
||||
PORT_BIT(0x00000020, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_IMPULSE(10) // C2
|
||||
PORT_BIT(0x00000040, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_IMPULSE(10) // B2
|
||||
PORT_BIT(0x00000080, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_IMPULSE(10) // A2
|
||||
PORT_BIT(0x40000000, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_CODE(KEYCODE_2_PAD) PORT_NAME("Knight")
|
||||
PORT_BIT(0x80000000, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_CODE(KEYCODE_ENTER) PORT_NAME("ENTER")
|
||||
|
||||
PORT_START("P2")
|
||||
PORT_BIT(0x00000001, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_IMPULSE(10) // H3
|
||||
PORT_BIT(0x00000002, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_IMPULSE(10) // G3
|
||||
PORT_BIT(0x00000004, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_IMPULSE(10) // F3
|
||||
PORT_BIT(0x00000008, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_IMPULSE(10) // E3
|
||||
PORT_BIT(0x00000010, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_IMPULSE(10) // D3
|
||||
PORT_BIT(0x00000020, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_IMPULSE(10) // C3
|
||||
PORT_BIT(0x00000040, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_IMPULSE(10) // B3
|
||||
PORT_BIT(0x00000080, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_IMPULSE(10) // A3
|
||||
PORT_BIT(0x40000000, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_CODE(KEYCODE_3_PAD) PORT_NAME("Bishop")
|
||||
PORT_BIT(0x80000000, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_CODE(KEYCODE_DOWN) PORT_NAME("DOWN")
|
||||
|
||||
PORT_START("P3")
|
||||
PORT_BIT(0x00000001, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_IMPULSE(10) // H4
|
||||
PORT_BIT(0x00000002, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_IMPULSE(10) // G4
|
||||
PORT_BIT(0x00000004, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_IMPULSE(10) // F4
|
||||
PORT_BIT(0x00000008, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_IMPULSE(10) // E4
|
||||
PORT_BIT(0x00000010, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_IMPULSE(10) // D4
|
||||
PORT_BIT(0x00000020, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_IMPULSE(10) // C4
|
||||
PORT_BIT(0x00000040, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_IMPULSE(10) // B4
|
||||
PORT_BIT(0x00000080, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_IMPULSE(10) // A4
|
||||
PORT_BIT(0x40000000, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_CODE(KEYCODE_4_PAD) PORT_NAME("Rook")
|
||||
PORT_BIT(0x80000000, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_CODE(KEYCODE_UP) PORT_NAME("UP")
|
||||
|
||||
PORT_START("P4")
|
||||
PORT_BIT(0x00000001, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_IMPULSE(10) // H5
|
||||
PORT_BIT(0x00000002, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_IMPULSE(10) // G5
|
||||
PORT_BIT(0x00000004, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_IMPULSE(10) // F5
|
||||
PORT_BIT(0x00000008, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_IMPULSE(10) // E5
|
||||
PORT_BIT(0x00000010, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_IMPULSE(10) // D5
|
||||
PORT_BIT(0x00000020, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_IMPULSE(10) // C5
|
||||
PORT_BIT(0x00000040, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_IMPULSE(10) // B5
|
||||
PORT_BIT(0x00000080, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_IMPULSE(10) // A5
|
||||
PORT_BIT(0x40000000, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_CODE(KEYCODE_5_PAD) PORT_NAME("Queen")
|
||||
PORT_BIT(0x80000000, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_CODE(KEYCODE_M) PORT_NAME("MENU")
|
||||
|
||||
PORT_START("P5")
|
||||
PORT_BIT(0x00000001, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_IMPULSE(10) // H6
|
||||
PORT_BIT(0x00000002, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_IMPULSE(10) // G6
|
||||
PORT_BIT(0x00000004, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_IMPULSE(10) // F6
|
||||
PORT_BIT(0x00000008, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_IMPULSE(10) // E6
|
||||
PORT_BIT(0x00000010, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_IMPULSE(10) // D6
|
||||
PORT_BIT(0x00000020, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_IMPULSE(10) // C6
|
||||
PORT_BIT(0x00000040, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_IMPULSE(10) // B6
|
||||
PORT_BIT(0x00000080, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_IMPULSE(10) // A6
|
||||
PORT_BIT(0x40000000, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_CODE(KEYCODE_6_PAD) PORT_NAME("King")
|
||||
PORT_BIT(0x80000000, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_CODE(KEYCODE_L) PORT_NAME("PLAY")
|
||||
|
||||
PORT_START("P6")
|
||||
PORT_BIT(0x00000001, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_IMPULSE(10) // H7
|
||||
PORT_BIT(0x00000002, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_IMPULSE(10) // G7
|
||||
PORT_BIT(0x00000004, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_IMPULSE(10) // F7
|
||||
PORT_BIT(0x00000008, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_IMPULSE(10) // E7
|
||||
PORT_BIT(0x00000010, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_IMPULSE(10) // D7
|
||||
PORT_BIT(0x00000020, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_IMPULSE(10) // C7
|
||||
PORT_BIT(0x00000040, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_IMPULSE(10) // B7
|
||||
PORT_BIT(0x00000080, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_IMPULSE(10) // A7
|
||||
PORT_BIT(0x40000000, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_CODE(KEYCODE_RIGHT) PORT_NAME("RIGHT")
|
||||
PORT_BIT(0x80000000, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_CODE(KEYCODE_N) PORT_NAME("NEW GAME")
|
||||
|
||||
PORT_START("P7")
|
||||
PORT_BIT(0x00000001, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_IMPULSE(10) // H8
|
||||
PORT_BIT(0x00000002, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_IMPULSE(10) // G8
|
||||
PORT_BIT(0x00000004, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_IMPULSE(10) // F8
|
||||
PORT_BIT(0x00000008, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_IMPULSE(10) // E8
|
||||
PORT_BIT(0x00000010, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_IMPULSE(10) // D8
|
||||
PORT_BIT(0x00000020, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_IMPULSE(10) // C8
|
||||
PORT_BIT(0x00000040, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_IMPULSE(10) // B8
|
||||
PORT_BIT(0x00000080, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_IMPULSE(10) // A8
|
||||
PORT_BIT(0x40000000, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_CODE(KEYCODE_LEFT) PORT_NAME("LEFT")
|
||||
PORT_BIT(0x80000000, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_CODE(KEYCODE_O) PORT_NAME("OFF")
|
||||
|
||||
PORT_START("RESET")
|
||||
PORT_BIT(0x00000001, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_CODE(KEYCODE_I) PORT_NAME("ON") PORT_CHANGED_MEMBER(DEVICE_SELF, risc2500_state, on_button, 0)
|
||||
INPUT_PORTS_END
|
||||
|
||||
|
||||
READ32_MEMBER(risc2500_state::p1000_r)
|
||||
{
|
||||
uint32_t data = 0;
|
||||
|
||||
for(int i=0; i<8; i++)
|
||||
{
|
||||
if (m_p1000 & (1 << i))
|
||||
data |= m_inputs[i]->read();
|
||||
}
|
||||
|
||||
return data;
|
||||
}
|
||||
|
||||
WRITE32_MEMBER(risc2500_state::p1000_w)
|
||||
{
|
||||
if ((data & 0xff000000) == 0x01000000) // VRAM address
|
||||
{
|
||||
if (data & 0x80)
|
||||
m_vram_addr = (m_vram_addr & ~0x40) | (data & 0x01 ? 0x40 : 0);
|
||||
else
|
||||
m_vram_addr = (m_vram_addr & 0x40) | (data & 0xff);
|
||||
}
|
||||
else if (data & 0x04000000) // VRAM write
|
||||
{
|
||||
if (!(data & 0x08000000))
|
||||
m_vram[m_vram_addr++ & 0x7f] = data & 0xff;
|
||||
}
|
||||
else if (data & 0x80000000) // Vertical LED
|
||||
{
|
||||
for(int i=0; i<8; i++)
|
||||
output().set_led_value(i, BIT(data, i));
|
||||
}
|
||||
else if (data & 0x40000000) // Horizontal LED
|
||||
{
|
||||
for(int i=0; i<8; i++)
|
||||
output().set_led_value(8 + i, BIT(data, i));
|
||||
}
|
||||
else if ((data & 0xff000000) == 0x08000000) // Power OFF
|
||||
{
|
||||
memset(m_vram, 0, sizeof(m_vram));
|
||||
}
|
||||
|
||||
m_p1000 = data;
|
||||
}
|
||||
|
||||
READ32_MEMBER(risc2500_state::disable_boot_rom)
|
||||
{
|
||||
machine().scheduler().timer_set(m_maincpu->cycles_to_attotime(10), timer_expired_delegate(FUNC(risc2500_state::disable_boot_rom), this));
|
||||
return 0;
|
||||
}
|
||||
|
||||
TIMER_CALLBACK_MEMBER(risc2500_state::disable_boot_rom)
|
||||
{
|
||||
m_maincpu->space(AS_PROGRAM).install_ram(0x00000000, m_ram->size() - 1, m_ram->pointer());
|
||||
}
|
||||
|
||||
void risc2500_state::machine_start()
|
||||
{
|
||||
m_nvram->set_base(m_ram->pointer(), m_ram->size());
|
||||
|
||||
save_item(NAME(m_p1000));
|
||||
save_item(NAME(m_vram_addr));
|
||||
save_item(NAME(m_vram));
|
||||
}
|
||||
|
||||
void risc2500_state::machine_reset()
|
||||
{
|
||||
m_p1000 = 0;
|
||||
m_vram_addr = 0;
|
||||
|
||||
install_boot_rom();
|
||||
}
|
||||
|
||||
static ADDRESS_MAP_START(risc2500_mem, AS_PROGRAM, 32, risc2500_state )
|
||||
AM_RANGE( 0x00000000, 0x0001ffff ) AM_RAM
|
||||
AM_RANGE( 0x01800000, 0x01800003 ) AM_READ(disable_boot_rom)
|
||||
AM_RANGE( 0x01000000, 0x01000003 ) AM_READWRITE(p1000_r, p1000_w)
|
||||
AM_RANGE( 0x02000000, 0x0201ffff ) AM_ROM AM_REGION("maincpu", 0)
|
||||
ADDRESS_MAP_END
|
||||
|
||||
|
||||
static MACHINE_CONFIG_START( risc2500, risc2500_state )
|
||||
MCFG_CPU_ADD("maincpu", ARM, 14000000) // VY86C010
|
||||
MCFG_CPU_PROGRAM_MAP(risc2500_mem)
|
||||
MCFG_ARM_COPRO(ARM_COPRO_TYPE_VL86C020)
|
||||
MCFG_CPU_PERIODIC_INT_DRIVER(risc2500_state, irq1_line_hold, 250)
|
||||
|
||||
MCFG_SCREEN_ADD("screen", LCD)
|
||||
MCFG_SCREEN_REFRESH_RATE(50)
|
||||
MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500)) /* not accurate */
|
||||
MCFG_SCREEN_SIZE(12*6+1, 7)
|
||||
MCFG_SCREEN_VISIBLE_AREA(0, 12*6, 0, 7-1)
|
||||
MCFG_SCREEN_UPDATE_DRIVER(risc2500_state, screen_update)
|
||||
MCFG_SCREEN_PALETTE("palette")
|
||||
|
||||
MCFG_DEFAULT_LAYOUT(layout_risc2500)
|
||||
|
||||
MCFG_PALETTE_ADD_MONOCHROME("palette")
|
||||
|
||||
MCFG_RAM_ADD("ram")
|
||||
MCFG_RAM_DEFAULT_SIZE("2M")
|
||||
MCFG_RAM_EXTRA_OPTIONS("128K, 256K, 512K, 1M, 2M")
|
||||
|
||||
MCFG_NVRAM_ADD_NO_FILL("nvram")
|
||||
MACHINE_CONFIG_END
|
||||
|
||||
|
||||
/* ROM definitions */
|
||||
|
||||
ROM_START( risc )
|
||||
ROM_REGION( 0x20000, "maincpu", 0 )
|
||||
ROM_LOAD("s2500.bin", 0x000000, 0x20000, CRC(7a707e82) SHA1(87187fa58117a442f3abd30092cfcc2a4d7c7efc))
|
||||
ROM_END
|
||||
|
||||
|
||||
/* YEAR NAME PARENT COMPAT MACHINE INPUT INIT COMPANY FULLNAME FLAGS */
|
||||
CONS( 1992, risc, 0, 0, risc2500, risc2500, driver_device, 0, "Saitek", "RISC 2500", MACHINE_NOT_WORKING | MACHINE_NO_SOUND | MACHINE_CLICKABLE_ARTWORK )
|
534
src/mame/layout/risc2500.lay
Normal file
534
src/mame/layout/risc2500.lay
Normal file
@ -0,0 +1,534 @@
|
||||
<?xml version="1.0"?>
|
||||
<mamelayout version="2">
|
||||
<!-- define elements -->
|
||||
<script>
|
||||
local layout = {}
|
||||
local board
|
||||
local first_sq
|
||||
local enpassant -- en passant possible on next move
|
||||
local enpassant_pos -- position of the piece to be removed
|
||||
|
||||
local port_tags = { ":P7", ":P6", ":P5", ":P4", ":P3", ":P2", ":P1", ":P0" }
|
||||
local port_values = { }
|
||||
local ports
|
||||
|
||||
local function change_piece_state(pos, new_state)
|
||||
board[pos.y][pos.x] = new_state
|
||||
machine:outputs():set_indexed_value("pos", (pos.y * 10) + pos.x, new_state)
|
||||
end
|
||||
|
||||
local function move_piece(from, to)
|
||||
if board[from.y][from.x] == 0 then
|
||||
return 0
|
||||
end
|
||||
|
||||
-- ignores move on the same position
|
||||
if from.y == to.y and from.x == to.x then
|
||||
change_piece_state(to, board[to.y][to.x])
|
||||
return 1
|
||||
end
|
||||
|
||||
-- en passant
|
||||
if enpassant and board[to.y][to.x] == 0 and board[from.y][from.x] == 12 and from.y == 4 and to.y == 3 and from.x ~= to.x and board[to.y + 1][to.x] == 6 then
|
||||
enpassant_pos = {x = to.x, y = to.y + 1}
|
||||
elseif enpassant and board[to.y][to.x] == 0 and board[from.y][from.x] == 6 and from.y == 5 and to.y == 6 and from.x ~= to.x and board[to.y - 1][to.x] == 12 then
|
||||
enpassant_pos = {x = to.x, y = to.y - 1}
|
||||
end
|
||||
if board[to.y][to.x] == 0 and from.x == to.x and ((board[from.y][from.x] == 6 and from.y == 2 and to.y == 4) or
|
||||
(board[from.y][from.x] == 12 and from.y == 7 and to.y == 5)) then
|
||||
enpassant = true
|
||||
else
|
||||
enpassant = false
|
||||
end
|
||||
|
||||
-- promotion
|
||||
if (to.y == 8 and board[from.y][from.x] == 6) or (to.y == 1 and board[from.y][from.x] == 12) then
|
||||
change_piece_state(to, board[from.y][from.x] - 4) -- TODO: make this configurable
|
||||
else
|
||||
change_piece_state(to, board[from.y][from.x])
|
||||
end
|
||||
|
||||
change_piece_state(from, 0)
|
||||
return 1
|
||||
end
|
||||
|
||||
function layout.reset()
|
||||
board =
|
||||
{{ 3, 5, 4, 2, 1, 4, 5, 3 },
|
||||
{ 6, 6, 6, 6, 6, 6, 6, 6 },
|
||||
{ 0, 0, 0, 0, 0, 0, 0, 0 },
|
||||
{ 0, 0, 0, 0, 0, 0, 0, 0 },
|
||||
{ 0, 0, 0, 0, 0, 0, 0, 0 },
|
||||
{ 0, 0, 0, 0, 0, 0, 0, 0 },
|
||||
{ 12,12,12,12,12,12,12,12 },
|
||||
{ 9,11,10, 8, 7,10,11, 9 }}
|
||||
|
||||
for y, row in ipairs(board) do
|
||||
for x, cell in ipairs(row) do
|
||||
change_piece_state({x = x, y = y}, board[y][x])
|
||||
end
|
||||
end
|
||||
ports = machine:ioport().ports
|
||||
first_sq = nil
|
||||
enpassant = false
|
||||
enpassant_pos = nil
|
||||
end
|
||||
|
||||
function layout.frame()
|
||||
local value = ports[":RESET"]:read()
|
||||
if value & 0x01 == 0x01 then
|
||||
layout.reset()
|
||||
return
|
||||
end
|
||||
|
||||
for y, tag in ipairs(port_tags) do
|
||||
local port = ports[tag]
|
||||
if not port then
|
||||
return
|
||||
end
|
||||
local newvalue = port:read()
|
||||
if port_values[y] ~= newvalue then
|
||||
port_values[y] = newvalue
|
||||
for x = 8, 1, -1 do
|
||||
if newvalue & 1 == 1 then
|
||||
if enpassant_pos and enpassant_pos.x == x and enpassant_pos.y == y then
|
||||
change_piece_state(enpassant_pos, 0)
|
||||
enpassant = false
|
||||
enpassant_pos = nil
|
||||
return
|
||||
end
|
||||
|
||||
if not first_sq then
|
||||
if board[y][x] ~= 0 then
|
||||
first_sq = {x = x, y = y}
|
||||
machine:outputs():set_indexed_value("pos", (y * 10) + x, board[y][x] | 0x10)
|
||||
end
|
||||
else
|
||||
if move_piece(first_sq, {x = x, y = y}) == 1 then
|
||||
first_sq = nil
|
||||
end
|
||||
end
|
||||
return
|
||||
end
|
||||
newvalue = newvalue >> 1
|
||||
end
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
return layout, "risc2500"
|
||||
</script>
|
||||
|
||||
<element name="digit" defstate="0">
|
||||
<led7seg>
|
||||
<color red="1.0" green="1.0" blue="1.0" />
|
||||
</led7seg>
|
||||
</element>
|
||||
<element name="led" defstate="1">
|
||||
<rect state="0">
|
||||
<color red="0.95" green="0.0" blue="0.0" />
|
||||
</rect>
|
||||
<rect state="1">
|
||||
<color red="0.20" green="0.0" blue="0.0" />
|
||||
</rect>
|
||||
</element>
|
||||
<element name="button" defstate="0">
|
||||
<rect state="0">
|
||||
<bounds x="0.0" y="0.0" width="1.0" height="1.0" />
|
||||
<color red="0.0" green="0.0" blue="0.0" />
|
||||
</rect>
|
||||
<rect state="1">
|
||||
<bounds x="0.0" y="0.0" width="1.0" height="1.0" />
|
||||
<color red="0.4" green="0.4" blue="0.4" />
|
||||
</rect>
|
||||
</element>
|
||||
|
||||
<element name="hl" defstate="0">
|
||||
<text string=" ">
|
||||
<bounds x="0.0" y="0.0" width="1.0" height="1.0" />
|
||||
<color red="1.0" green="1.0" blue="1.0" />
|
||||
</text>
|
||||
<rect state="1">
|
||||
<bounds x="0.12" y="0.12" width="0.76" height="0.76" />
|
||||
<color red="1.0" green="1.0" blue="1.0" />
|
||||
</rect>
|
||||
</element>
|
||||
|
||||
<element name="text_1"> <text string="1"><color red="0.01" green="0.01" blue="0.01" /></text> </element>
|
||||
<element name="text_2"> <text string="2"><color red="0.01" green="0.01" blue="0.01" /></text> </element>
|
||||
<element name="text_3"> <text string="3"><color red="0.01" green="0.01" blue="0.01" /></text> </element>
|
||||
<element name="text_4"> <text string="4"><color red="0.01" green="0.01" blue="0.01" /></text> </element>
|
||||
<element name="text_5"> <text string="5"><color red="0.01" green="0.01" blue="0.01" /></text> </element>
|
||||
<element name="text_6"> <text string="6"><color red="0.01" green="0.01" blue="0.01" /></text> </element>
|
||||
<element name="text_7"> <text string="7"><color red="0.01" green="0.01" blue="0.01" /></text> </element>
|
||||
<element name="text_8"> <text string="8"><color red="0.01" green="0.01" blue="0.01" /></text> </element>
|
||||
<element name="text_a"> <text string="A"><color red="0.01" green="0.01" blue="0.01" /></text> </element>
|
||||
<element name="text_b"> <text string="B"><color red="0.01" green="0.01" blue="0.01" /></text> </element>
|
||||
<element name="text_c"> <text string="C"><color red="0.01" green="0.01" blue="0.01" /></text> </element>
|
||||
<element name="text_d"> <text string="D"><color red="0.01" green="0.01" blue="0.01" /></text> </element>
|
||||
<element name="text_e"> <text string="E"><color red="0.01" green="0.01" blue="0.01" /></text> </element>
|
||||
<element name="text_f"> <text string="F"><color red="0.01" green="0.01" blue="0.01" /></text> </element>
|
||||
<element name="text_g"> <text string="G"><color red="0.01" green="0.01" blue="0.01" /></text> </element>
|
||||
<element name="text_h"> <text string="H"><color red="0.01" green="0.01" blue="0.01" /></text> </element>
|
||||
<element name="text_on"> <text string="ON" > <color red="0.17" green="0.15" blue="0.15" /></text> </element>
|
||||
<element name="text_off"> <text string="OFF" > <color red="0.17" green="0.15" blue="0.15" /></text> </element>
|
||||
<element name="text_newgame"> <text string="NEW GAME" > <color red="0.17" green="0.15" blue="0.15" /></text> </element>
|
||||
<element name="text_play"> <text string="PLAY" > <color red="0.17" green="0.15" blue="0.15" /></text> </element>
|
||||
<element name="text_back"> <text string="BACK" > <color red="0.17" green="0.15" blue="0.15" /></text> </element>
|
||||
<element name="text_left"> <text string="←" > <color red="0.17" green="0.15" blue="0.15" /></text> </element>
|
||||
<element name="text_right"> <text string="→" > <color red="0.17" green="0.15" blue="0.15" /></text> </element>
|
||||
<element name="text_menu"> <text string="MENU" > <color red="0.17" green="0.15" blue="0.15" /></text> </element>
|
||||
<element name="text_up"> <text string="↑" > <color red="0.17" green="0.15" blue="0.15" /></text> </element>
|
||||
<element name="text_down"> <text string="↓" > <color red="0.17" green="0.15" blue="0.15" /></text> </element>
|
||||
<element name="text_enter"> <text string="ENTER" > <color red="0.17" green="0.15" blue="0.15" /></text> </element>
|
||||
<element name="text_p1"> <text string="♚" > <color red="0.17" green="0.15" blue="0.15" /></text> </element>
|
||||
<element name="text_p2"> <text string="♛" > <color red="0.17" green="0.15" blue="0.15" /></text> </element>
|
||||
<element name="text_p3"> <text string="♜" > <color red="0.17" green="0.15" blue="0.15" /></text> </element>
|
||||
<element name="text_p4"> <text string="♝" > <color red="0.17" green="0.15" blue="0.15" /></text> </element>
|
||||
<element name="text_p5"> <text string="♞" > <color red="0.17" green="0.15" blue="0.15" /></text> </element>
|
||||
<element name="text_p6"> <text string="♟" > <color red="0.17" green="0.15" blue="0.15" /></text> </element>
|
||||
<element name="sym_colon"> <text string=":" state="1"> <color red="1.0" green="1.0" blue="1.0" /></text> </element>
|
||||
<element name="sym_left"> <text string="←" state="1"> <color red="1.0" green="1.0" blue="1.0" /> </text> </element>
|
||||
<element name="sym_right"> <text string="→" state="1"> <color red="1.0" green="1.0" blue="1.0" /> </text> </element>
|
||||
<element name="sym_p1"> <text string="♚" state="1"> <color red="1.0" green="1.0" blue="1.0" /> </text> </element>
|
||||
<element name="sym_p2"> <text string="♛" state="1"> <color red="1.0" green="1.0" blue="1.0" /> </text> </element>
|
||||
<element name="sym_p3"> <text string="♜" state="1"> <color red="1.0" green="1.0" blue="1.0" /> </text> </element>
|
||||
<element name="sym_p4"> <text string="♝" state="1"> <color red="1.0" green="1.0" blue="1.0" /> </text> </element>
|
||||
<element name="sym_p5"> <text string="♞" state="1"> <color red="1.0" green="1.0" blue="1.0" /> </text> </element>
|
||||
<element name="sym_p6"> <text string="♟" state="1"> <color red="1.0" green="1.0" blue="1.0" /> </text> </element>
|
||||
<element name="sym_black"> <text string="●" state="1"> <color red="1.0" green="1.0" blue="1.0" /> </text> </element>
|
||||
<element name="sym_white"> <text string="○" state="1"> <color red="1.0" green="1.0" blue="1.0" /> </text> </element>
|
||||
<element name="white"><rect><color red="1" green="1" blue="1" /></rect></element>
|
||||
<element name="black"><rect><color red="0" green="0" blue="0" /></rect></element>
|
||||
<element name="background"><rect><color red="0.63" green="0.63" blue="0.63" /></rect></element>
|
||||
|
||||
<element name="piece" defstate="0">
|
||||
<text string="♚" state="1"><color red="0.27" green="0.25" blue="0.25" /></text>
|
||||
<text string="♛" state="2"><color red="0.27" green="0.25" blue="0.25" /></text>
|
||||
<text string="♜" state="3"><color red="0.27" green="0.25" blue="0.25" /></text>
|
||||
<text string="♝" state="4"><color red="0.27" green="0.25" blue="0.25" /></text>
|
||||
<text string="♞" state="5"><color red="0.27" green="0.25" blue="0.25" /></text>
|
||||
<text string="♟" state="6"><color red="0.27" green="0.25" blue="0.25" /></text>
|
||||
|
||||
<text string="♚" state="7"><color red="0.71" green="0.7" blue="0.69" /></text>
|
||||
<text string="♛" state="8"><color red="0.71" green="0.7" blue="0.69" /></text>
|
||||
<text string="♜" state="9"><color red="0.71" green="0.7" blue="0.69" /></text>
|
||||
<text string="♝" state="10"><color red="0.71" green="0.7" blue="0.69" /></text>
|
||||
<text string="♞" state="11"><color red="0.71" green="0.7" blue="0.69" /></text>
|
||||
<text string="♟" state="12"><color red="0.71" green="0.7" blue="0.69" /></text>
|
||||
|
||||
<!-- selected pieces -->
|
||||
<disk state="17"> <color red="1.00" green="0.25" blue="1.00" /> </disk>
|
||||
<disk state="18"> <color red="1.00" green="0.25" blue="1.00" /> </disk>
|
||||
<disk state="19"> <color red="1.00" green="0.25" blue="1.00" /> </disk>
|
||||
<disk state="20"> <color red="1.00" green="0.25" blue="1.00" /> </disk>
|
||||
<disk state="21"> <color red="1.00" green="0.25" blue="1.00" /> </disk>
|
||||
<disk state="22"> <color red="1.00" green="0.25" blue="1.00" /> </disk>
|
||||
<disk state="23"> <color red="1.00" green="0.25" blue="1.00" /> </disk>
|
||||
<disk state="24"> <color red="1.00" green="0.25" blue="1.00" /> </disk>
|
||||
<disk state="25"> <color red="1.00" green="0.25" blue="1.00" /> </disk>
|
||||
<disk state="26"> <color red="1.00" green="0.25" blue="1.00" /> </disk>
|
||||
<disk state="27"> <color red="1.00" green="0.25" blue="1.00" /> </disk>
|
||||
<disk state="28"> <color red="1.00" green="0.25" blue="1.00" /> </disk>
|
||||
|
||||
<text string="♚" state="17"><color red="0.27" green="0.25" blue="0.25" /></text>
|
||||
<text string="♛" state="18"><color red="0.27" green="0.25" blue="0.25" /></text>
|
||||
<text string="♜" state="19"><color red="0.27" green="0.25" blue="0.25" /></text>
|
||||
<text string="♝" state="20"><color red="0.27" green="0.25" blue="0.25" /></text>
|
||||
<text string="♞" state="21"><color red="0.27" green="0.25" blue="0.25" /></text>
|
||||
<text string="♟" state="22"><color red="0.27" green="0.25" blue="0.25" /></text>
|
||||
|
||||
<text string="♚" state="23"><color red="0.71" green="0.7" blue="0.69" /></text>
|
||||
<text string="♛" state="24"><color red="0.71" green="0.7" blue="0.69" /></text>
|
||||
<text string="♜" state="25"><color red="0.71" green="0.7" blue="0.69" /></text>
|
||||
<text string="♝" state="26"><color red="0.71" green="0.7" blue="0.69" /></text>
|
||||
<text string="♞" state="27"><color red="0.71" green="0.7" blue="0.69" /></text>
|
||||
<text string="♟" state="28"><color red="0.71" green="0.7" blue="0.69" /></text>
|
||||
</element>
|
||||
|
||||
<!-- build screen -->
|
||||
<view name="Internal Layout">
|
||||
|
||||
<bezel element="background"><bounds x="0" y="0" width="95" height="90" /></bezel>
|
||||
<bezel element="background"><bounds x="95" y="16" width="60" height="74" /></bezel>
|
||||
<bezel element="background"><bounds x="95" y="0" width="60" height="4" /></bezel>
|
||||
<bezel element="background"><bounds x="125" y="0" width="30" height="20" /></bezel>
|
||||
|
||||
<bezel element="white"><bounds x="8" y="3" width="80" height="80" /></bezel>
|
||||
<bezel element="black"><bounds x="8" y="13" width="10" height="10" /></bezel>
|
||||
<bezel element="black"><bounds x="8" y="33" width="10" height="10" /></bezel>
|
||||
<bezel element="black"><bounds x="8" y="53" width="10" height="10" /></bezel>
|
||||
<bezel element="black"><bounds x="8" y="73" width="10" height="10" /></bezel>
|
||||
<bezel element="black"><bounds x="18" y="3" width="10" height="10" /></bezel>
|
||||
<bezel element="black"><bounds x="18" y="23" width="10" height="10" /></bezel>
|
||||
<bezel element="black"><bounds x="18" y="43" width="10" height="10" /></bezel>
|
||||
<bezel element="black"><bounds x="18" y="63" width="10" height="10" /></bezel>
|
||||
<bezel element="black"><bounds x="28" y="13" width="10" height="10" /></bezel>
|
||||
<bezel element="black"><bounds x="28" y="33" width="10" height="10" /></bezel>
|
||||
<bezel element="black"><bounds x="28" y="53" width="10" height="10" /></bezel>
|
||||
<bezel element="black"><bounds x="28" y="73" width="10" height="10" /></bezel>
|
||||
<bezel element="black"><bounds x="38" y="3" width="10" height="10" /></bezel>
|
||||
<bezel element="black"><bounds x="38" y="23" width="10" height="10" /></bezel>
|
||||
<bezel element="black"><bounds x="38" y="43" width="10" height="10" /></bezel>
|
||||
<bezel element="black"><bounds x="38" y="63" width="10" height="10" /></bezel>
|
||||
<bezel element="black"><bounds x="48" y="13" width="10" height="10" /></bezel>
|
||||
<bezel element="black"><bounds x="48" y="33" width="10" height="10" /></bezel>
|
||||
<bezel element="black"><bounds x="48" y="53" width="10" height="10" /></bezel>
|
||||
<bezel element="black"><bounds x="48" y="73" width="10" height="10" /></bezel>
|
||||
<bezel element="black"><bounds x="58" y="3" width="10" height="10" /></bezel>
|
||||
<bezel element="black"><bounds x="58" y="23" width="10" height="10" /></bezel>
|
||||
<bezel element="black"><bounds x="58" y="43" width="10" height="10" /></bezel>
|
||||
<bezel element="black"><bounds x="58" y="63" width="10" height="10" /></bezel>
|
||||
<bezel element="black"><bounds x="68" y="13" width="10" height="10" /></bezel>
|
||||
<bezel element="black"><bounds x="68" y="33" width="10" height="10" /></bezel>
|
||||
<bezel element="black"><bounds x="68" y="53" width="10" height="10" /></bezel>
|
||||
<bezel element="black"><bounds x="68" y="73" width="10" height="10" /></bezel>
|
||||
<bezel element="black"><bounds x="78" y="3" width="10" height="10" /></bezel>
|
||||
<bezel element="black"><bounds x="78" y="23" width="10" height="10" /></bezel>
|
||||
<bezel element="black"><bounds x="78" y="43" width="10" height="10" /></bezel>
|
||||
<bezel element="black"><bounds x="78" y="63" width="10" height="10" /></bezel>
|
||||
|
||||
<bezel element="text_8" ><bounds x="5" y="7" width="2" height="2" /></bezel>
|
||||
<bezel element="text_7" ><bounds x="5" y="17" width="2" height="2" /></bezel>
|
||||
<bezel element="text_6" ><bounds x="5" y="27" width="2" height="2" /></bezel>
|
||||
<bezel element="text_5" ><bounds x="5" y="37" width="2" height="2" /></bezel>
|
||||
<bezel element="text_4" ><bounds x="5" y="47" width="2" height="2" /></bezel>
|
||||
<bezel element="text_3" ><bounds x="5" y="57" width="2" height="2" /></bezel>
|
||||
<bezel element="text_2" ><bounds x="5" y="67" width="2" height="2" /></bezel>
|
||||
<bezel element="text_1" ><bounds x="5" y="77" width="2" height="2" /></bezel>
|
||||
<bezel element="text_a" ><bounds x="12" y="84" width="2" height="2" /></bezel>
|
||||
<bezel element="text_b" ><bounds x="22" y="84" width="2" height="2" /></bezel>
|
||||
<bezel element="text_c" ><bounds x="32" y="84" width="2" height="2" /></bezel>
|
||||
<bezel element="text_d" ><bounds x="42" y="84" width="2" height="2" /></bezel>
|
||||
<bezel element="text_e" ><bounds x="52" y="84" width="2" height="2" /></bezel>
|
||||
<bezel element="text_f" ><bounds x="62" y="84" width="2" height="2" /></bezel>
|
||||
<bezel element="text_g" ><bounds x="72" y="84" width="2" height="2" /></bezel>
|
||||
<bezel element="text_h" ><bounds x="82" y="84" width="2" height="2" /></bezel>
|
||||
|
||||
<bezel name="led0" element="led"><bounds x="2" y="77.5" width="2" height="1" /></bezel>
|
||||
<bezel name="led1" element="led"><bounds x="2" y="67.5" width="2" height="1" /></bezel>
|
||||
<bezel name="led2" element="led"><bounds x="2" y="57.5" width="2" height="1" /></bezel>
|
||||
<bezel name="led3" element="led"><bounds x="2" y="47.5" width="2" height="1" /></bezel>
|
||||
<bezel name="led4" element="led"><bounds x="2" y="37.5" width="2" height="1" /></bezel>
|
||||
<bezel name="led5" element="led"><bounds x="2" y="27.5" width="2" height="1" /></bezel>
|
||||
<bezel name="led6" element="led"><bounds x="2" y="17.5" width="2" height="1" /></bezel>
|
||||
<bezel name="led7" element="led"><bounds x="2" y="7.5" width="2" height="1" /></bezel>
|
||||
<bezel name="led8" element="led"><bounds x="12.5" y="87" width="1" height="2" /></bezel>
|
||||
<bezel name="led9" element="led"><bounds x="22.5" y="87" width="1" height="2" /></bezel>
|
||||
<bezel name="led10" element="led"><bounds x="32.5" y="87" width="1" height="2" /></bezel>
|
||||
<bezel name="led11" element="led"><bounds x="42.5" y="87" width="1" height="2" /></bezel>
|
||||
<bezel name="led12" element="led"><bounds x="52.5" y="87" width="1" height="2" /></bezel>
|
||||
<bezel name="led13" element="led"><bounds x="62.5" y="87" width="1" height="2" /></bezel>
|
||||
<bezel name="led14" element="led"><bounds x="72.5" y="87" width="1" height="2" /></bezel>
|
||||
<bezel name="led15" element="led"><bounds x="82.5" y="87" width="1" height="2" /></bezel>
|
||||
|
||||
<bezel element="hl" inputtag="P0" inputmask="0x01"><bounds x="78" y="73" width="10" height="10" /><color alpha="0.4" /></bezel>
|
||||
<bezel element="hl" inputtag="P0" inputmask="0x02"><bounds x="68" y="73" width="10" height="10" /><color alpha="0.2" /></bezel>
|
||||
<bezel element="hl" inputtag="P0" inputmask="0x04"><bounds x="58" y="73" width="10" height="10" /><color alpha="0.4" /></bezel>
|
||||
<bezel element="hl" inputtag="P0" inputmask="0x08"><bounds x="48" y="73" width="10" height="10" /><color alpha="0.2" /></bezel>
|
||||
<bezel element="hl" inputtag="P0" inputmask="0x10"><bounds x="38" y="73" width="10" height="10" /><color alpha="0.4" /></bezel>
|
||||
<bezel element="hl" inputtag="P0" inputmask="0x20"><bounds x="28" y="73" width="10" height="10" /><color alpha="0.2" /></bezel>
|
||||
<bezel element="hl" inputtag="P0" inputmask="0x40"><bounds x="18" y="73" width="10" height="10" /><color alpha="0.4" /></bezel>
|
||||
<bezel element="hl" inputtag="P0" inputmask="0x80"><bounds x="8" y="73" width="10" height="10" /><color alpha="0.2" /></bezel>
|
||||
|
||||
<bezel element="hl" inputtag="P1" inputmask="0x01"><bounds x="78" y="63" width="10" height="10" /><color alpha="0.2" /></bezel>
|
||||
<bezel element="hl" inputtag="P1" inputmask="0x02"><bounds x="68" y="63" width="10" height="10" /><color alpha="0.4" /></bezel>
|
||||
<bezel element="hl" inputtag="P1" inputmask="0x04"><bounds x="58" y="63" width="10" height="10" /><color alpha="0.2" /></bezel>
|
||||
<bezel element="hl" inputtag="P1" inputmask="0x08"><bounds x="48" y="63" width="10" height="10" /><color alpha="0.4" /></bezel>
|
||||
<bezel element="hl" inputtag="P1" inputmask="0x10"><bounds x="38" y="63" width="10" height="10" /><color alpha="0.2" /></bezel>
|
||||
<bezel element="hl" inputtag="P1" inputmask="0x20"><bounds x="28" y="63" width="10" height="10" /><color alpha="0.4" /></bezel>
|
||||
<bezel element="hl" inputtag="P1" inputmask="0x40"><bounds x="18" y="63" width="10" height="10" /><color alpha="0.2" /></bezel>
|
||||
<bezel element="hl" inputtag="P1" inputmask="0x80"><bounds x="8" y="63" width="10" height="10" /><color alpha="0.4" /></bezel>
|
||||
|
||||
<bezel element="hl" inputtag="P2" inputmask="0x01"><bounds x="78" y="53" width="10" height="10" /><color alpha="0.4" /></bezel>
|
||||
<bezel element="hl" inputtag="P2" inputmask="0x02"><bounds x="68" y="53" width="10" height="10" /><color alpha="0.2" /></bezel>
|
||||
<bezel element="hl" inputtag="P2" inputmask="0x04"><bounds x="58" y="53" width="10" height="10" /><color alpha="0.4" /></bezel>
|
||||
<bezel element="hl" inputtag="P2" inputmask="0x08"><bounds x="48" y="53" width="10" height="10" /><color alpha="0.2" /></bezel>
|
||||
<bezel element="hl" inputtag="P2" inputmask="0x10"><bounds x="38" y="53" width="10" height="10" /><color alpha="0.4" /></bezel>
|
||||
<bezel element="hl" inputtag="P2" inputmask="0x20"><bounds x="28" y="53" width="10" height="10" /><color alpha="0.2" /></bezel>
|
||||
<bezel element="hl" inputtag="P2" inputmask="0x40"><bounds x="18" y="53" width="10" height="10" /><color alpha="0.4" /></bezel>
|
||||
<bezel element="hl" inputtag="P2" inputmask="0x80"><bounds x="8" y="53" width="10" height="10" /><color alpha="0.2" /></bezel>
|
||||
|
||||
<bezel element="hl" inputtag="P3" inputmask="0x01"><bounds x="78" y="43" width="10" height="10" /><color alpha="0.2" /></bezel>
|
||||
<bezel element="hl" inputtag="P3" inputmask="0x02"><bounds x="68" y="43" width="10" height="10" /><color alpha="0.4" /></bezel>
|
||||
<bezel element="hl" inputtag="P3" inputmask="0x04"><bounds x="58" y="43" width="10" height="10" /><color alpha="0.2" /></bezel>
|
||||
<bezel element="hl" inputtag="P3" inputmask="0x08"><bounds x="48" y="43" width="10" height="10" /><color alpha="0.4" /></bezel>
|
||||
<bezel element="hl" inputtag="P3" inputmask="0x10"><bounds x="38" y="43" width="10" height="10" /><color alpha="0.2" /></bezel>
|
||||
<bezel element="hl" inputtag="P3" inputmask="0x20"><bounds x="28" y="43" width="10" height="10" /><color alpha="0.4" /></bezel>
|
||||
<bezel element="hl" inputtag="P3" inputmask="0x40"><bounds x="18" y="43" width="10" height="10" /><color alpha="0.2" /></bezel>
|
||||
<bezel element="hl" inputtag="P3" inputmask="0x80"><bounds x="8" y="43" width="10" height="10" /><color alpha="0.4" /></bezel>
|
||||
|
||||
<bezel element="hl" inputtag="P4" inputmask="0x01"><bounds x="78" y="33" width="10" height="10" /><color alpha="0.4" /></bezel>
|
||||
<bezel element="hl" inputtag="P4" inputmask="0x02"><bounds x="68" y="33" width="10" height="10" /><color alpha="0.2" /></bezel>
|
||||
<bezel element="hl" inputtag="P4" inputmask="0x04"><bounds x="58" y="33" width="10" height="10" /><color alpha="0.4" /></bezel>
|
||||
<bezel element="hl" inputtag="P4" inputmask="0x08"><bounds x="48" y="33" width="10" height="10" /><color alpha="0.2" /></bezel>
|
||||
<bezel element="hl" inputtag="P4" inputmask="0x10"><bounds x="38" y="33" width="10" height="10" /><color alpha="0.4" /></bezel>
|
||||
<bezel element="hl" inputtag="P4" inputmask="0x20"><bounds x="28" y="33" width="10" height="10" /><color alpha="0.2" /></bezel>
|
||||
<bezel element="hl" inputtag="P4" inputmask="0x40"><bounds x="18" y="33" width="10" height="10" /><color alpha="0.4" /></bezel>
|
||||
<bezel element="hl" inputtag="P4" inputmask="0x80"><bounds x="8" y="33" width="10" height="10" /><color alpha="0.2" /></bezel>
|
||||
|
||||
<bezel element="hl" inputtag="P5" inputmask="0x01"><bounds x="78" y="23" width="10" height="10" /><color alpha="0.2" /></bezel>
|
||||
<bezel element="hl" inputtag="P5" inputmask="0x02"><bounds x="68" y="23" width="10" height="10" /><color alpha="0.4" /></bezel>
|
||||
<bezel element="hl" inputtag="P5" inputmask="0x04"><bounds x="58" y="23" width="10" height="10" /><color alpha="0.2" /></bezel>
|
||||
<bezel element="hl" inputtag="P5" inputmask="0x08"><bounds x="48" y="23" width="10" height="10" /><color alpha="0.4" /></bezel>
|
||||
<bezel element="hl" inputtag="P5" inputmask="0x10"><bounds x="38" y="23" width="10" height="10" /><color alpha="0.2" /></bezel>
|
||||
<bezel element="hl" inputtag="P5" inputmask="0x20"><bounds x="28" y="23" width="10" height="10" /><color alpha="0.4" /></bezel>
|
||||
<bezel element="hl" inputtag="P5" inputmask="0x40"><bounds x="18" y="23" width="10" height="10" /><color alpha="0.2" /></bezel>
|
||||
<bezel element="hl" inputtag="P5" inputmask="0x80"><bounds x="8" y="23" width="10" height="10" /><color alpha="0.4" /></bezel>
|
||||
|
||||
<bezel element="hl" inputtag="P6" inputmask="0x01"><bounds x="78" y="13" width="10" height="10" /><color alpha="0.4" /></bezel>
|
||||
<bezel element="hl" inputtag="P6" inputmask="0x02"><bounds x="68" y="13" width="10" height="10" /><color alpha="0.2" /></bezel>
|
||||
<bezel element="hl" inputtag="P6" inputmask="0x04"><bounds x="58" y="13" width="10" height="10" /><color alpha="0.4" /></bezel>
|
||||
<bezel element="hl" inputtag="P6" inputmask="0x08"><bounds x="48" y="13" width="10" height="10" /><color alpha="0.2" /></bezel>
|
||||
<bezel element="hl" inputtag="P6" inputmask="0x10"><bounds x="38" y="13" width="10" height="10" /><color alpha="0.4" /></bezel>
|
||||
<bezel element="hl" inputtag="P6" inputmask="0x20"><bounds x="28" y="13" width="10" height="10" /><color alpha="0.2" /></bezel>
|
||||
<bezel element="hl" inputtag="P6" inputmask="0x40"><bounds x="18" y="13" width="10" height="10" /><color alpha="0.4" /></bezel>
|
||||
<bezel element="hl" inputtag="P6" inputmask="0x80"><bounds x="8" y="13" width="10" height="10" /><color alpha="0.2" /></bezel>
|
||||
|
||||
<bezel element="hl" inputtag="P7" inputmask="0x01"><bounds x="78" y="3" width="10" height="10" /><color alpha="0.2" /></bezel>
|
||||
<bezel element="hl" inputtag="P7" inputmask="0x02"><bounds x="68" y="3" width="10" height="10" /><color alpha="0.4" /></bezel>
|
||||
<bezel element="hl" inputtag="P7" inputmask="0x04"><bounds x="58" y="3" width="10" height="10" /><color alpha="0.2" /></bezel>
|
||||
<bezel element="hl" inputtag="P7" inputmask="0x08"><bounds x="48" y="3" width="10" height="10" /><color alpha="0.4" /></bezel>
|
||||
<bezel element="hl" inputtag="P7" inputmask="0x10"><bounds x="38" y="3" width="10" height="10" /><color alpha="0.2" /></bezel>
|
||||
<bezel element="hl" inputtag="P7" inputmask="0x20"><bounds x="28" y="3" width="10" height="10" /><color alpha="0.4" /></bezel>
|
||||
<bezel element="hl" inputtag="P7" inputmask="0x40"><bounds x="18" y="3" width="10" height="10" /><color alpha="0.2" /></bezel>
|
||||
<bezel element="hl" inputtag="P7" inputmask="0x80"><bounds x="8" y="3" width="10" height="10" /><color alpha="0.4" /></bezel>
|
||||
|
||||
<bezel name="pos81" element="piece" ><bounds x="8" y="73" width="10" height="10" /></bezel>
|
||||
<bezel name="pos82" element="piece" ><bounds x="18" y="73" width="10" height="10" /></bezel>
|
||||
<bezel name="pos83" element="piece" ><bounds x="28" y="73" width="10" height="10" /></bezel>
|
||||
<bezel name="pos84" element="piece" ><bounds x="38" y="73" width="10" height="10" /></bezel>
|
||||
<bezel name="pos85" element="piece" ><bounds x="48" y="73" width="10" height="10" /></bezel>
|
||||
<bezel name="pos86" element="piece" ><bounds x="58" y="73" width="10" height="10" /></bezel>
|
||||
<bezel name="pos87" element="piece" ><bounds x="68" y="73" width="10" height="10" /></bezel>
|
||||
<bezel name="pos88" element="piece" ><bounds x="78" y="73" width="10" height="10" /></bezel>
|
||||
<bezel name="pos71" element="piece" ><bounds x="8" y="63" width="10" height="10" /></bezel>
|
||||
<bezel name="pos72" element="piece" ><bounds x="18" y="63" width="10" height="10" /></bezel>
|
||||
<bezel name="pos73" element="piece" ><bounds x="28" y="63" width="10" height="10" /></bezel>
|
||||
<bezel name="pos74" element="piece" ><bounds x="38" y="63" width="10" height="10" /></bezel>
|
||||
<bezel name="pos75" element="piece" ><bounds x="48" y="63" width="10" height="10" /></bezel>
|
||||
<bezel name="pos76" element="piece" ><bounds x="58" y="63" width="10" height="10" /></bezel>
|
||||
<bezel name="pos77" element="piece" ><bounds x="68" y="63" width="10" height="10" /></bezel>
|
||||
<bezel name="pos78" element="piece" ><bounds x="78" y="63" width="10" height="10" /></bezel>
|
||||
<bezel name="pos61" element="piece" ><bounds x="8" y="53" width="10" height="10" /></bezel>
|
||||
<bezel name="pos62" element="piece" ><bounds x="18" y="53" width="10" height="10" /></bezel>
|
||||
<bezel name="pos63" element="piece" ><bounds x="28" y="53" width="10" height="10" /></bezel>
|
||||
<bezel name="pos64" element="piece" ><bounds x="38" y="53" width="10" height="10" /></bezel>
|
||||
<bezel name="pos65" element="piece" ><bounds x="48" y="53" width="10" height="10" /></bezel>
|
||||
<bezel name="pos66" element="piece" ><bounds x="58" y="53" width="10" height="10" /></bezel>
|
||||
<bezel name="pos67" element="piece" ><bounds x="68" y="53" width="10" height="10" /></bezel>
|
||||
<bezel name="pos68" element="piece" ><bounds x="78" y="53" width="10" height="10" /></bezel>
|
||||
<bezel name="pos51" element="piece" ><bounds x="8" y="43" width="10" height="10" /></bezel>
|
||||
<bezel name="pos52" element="piece" ><bounds x="18" y="43" width="10" height="10" /></bezel>
|
||||
<bezel name="pos53" element="piece" ><bounds x="28" y="43" width="10" height="10" /></bezel>
|
||||
<bezel name="pos54" element="piece" ><bounds x="38" y="43" width="10" height="10" /></bezel>
|
||||
<bezel name="pos55" element="piece" ><bounds x="48" y="43" width="10" height="10" /></bezel>
|
||||
<bezel name="pos56" element="piece" ><bounds x="58" y="43" width="10" height="10" /></bezel>
|
||||
<bezel name="pos57" element="piece" ><bounds x="68" y="43" width="10" height="10" /></bezel>
|
||||
<bezel name="pos58" element="piece" ><bounds x="78" y="43" width="10" height="10" /></bezel>
|
||||
<bezel name="pos41" element="piece" ><bounds x="8" y="33" width="10" height="10" /></bezel>
|
||||
<bezel name="pos42" element="piece" ><bounds x="18" y="33" width="10" height="10" /></bezel>
|
||||
<bezel name="pos43" element="piece" ><bounds x="28" y="33" width="10" height="10" /></bezel>
|
||||
<bezel name="pos44" element="piece" ><bounds x="38" y="33" width="10" height="10" /></bezel>
|
||||
<bezel name="pos45" element="piece" ><bounds x="48" y="33" width="10" height="10" /></bezel>
|
||||
<bezel name="pos46" element="piece" ><bounds x="58" y="33" width="10" height="10" /></bezel>
|
||||
<bezel name="pos47" element="piece" ><bounds x="68" y="33" width="10" height="10" /></bezel>
|
||||
<bezel name="pos48" element="piece" ><bounds x="78" y="33" width="10" height="10" /></bezel>
|
||||
<bezel name="pos31" element="piece" ><bounds x="8" y="23" width="10" height="10" /></bezel>
|
||||
<bezel name="pos32" element="piece" ><bounds x="18" y="23" width="10" height="10" /></bezel>
|
||||
<bezel name="pos33" element="piece" ><bounds x="28" y="23" width="10" height="10" /></bezel>
|
||||
<bezel name="pos34" element="piece" ><bounds x="38" y="23" width="10" height="10" /></bezel>
|
||||
<bezel name="pos35" element="piece" ><bounds x="48" y="23" width="10" height="10" /></bezel>
|
||||
<bezel name="pos36" element="piece" ><bounds x="58" y="23" width="10" height="10" /></bezel>
|
||||
<bezel name="pos37" element="piece" ><bounds x="68" y="23" width="10" height="10" /></bezel>
|
||||
<bezel name="pos38" element="piece" ><bounds x="78" y="23" width="10" height="10" /></bezel>
|
||||
<bezel name="pos21" element="piece" ><bounds x="8" y="13" width="10" height="10" /></bezel>
|
||||
<bezel name="pos22" element="piece" ><bounds x="18" y="13" width="10" height="10" /></bezel>
|
||||
<bezel name="pos23" element="piece" ><bounds x="28" y="13" width="10" height="10" /></bezel>
|
||||
<bezel name="pos24" element="piece" ><bounds x="38" y="13" width="10" height="10" /></bezel>
|
||||
<bezel name="pos25" element="piece" ><bounds x="48" y="13" width="10" height="10" /></bezel>
|
||||
<bezel name="pos26" element="piece" ><bounds x="58" y="13" width="10" height="10" /></bezel>
|
||||
<bezel name="pos27" element="piece" ><bounds x="68" y="13" width="10" height="10" /></bezel>
|
||||
<bezel name="pos28" element="piece" ><bounds x="78" y="13" width="10" height="10" /></bezel>
|
||||
<bezel name="pos11" element="piece" ><bounds x="8" y="3" width="10" height="10" /></bezel>
|
||||
<bezel name="pos12" element="piece" ><bounds x="18" y="3" width="10" height="10" /></bezel>
|
||||
<bezel name="pos13" element="piece" ><bounds x="28" y="3" width="10" height="10" /></bezel>
|
||||
<bezel name="pos14" element="piece" ><bounds x="38" y="3" width="10" height="10" /></bezel>
|
||||
<bezel name="pos15" element="piece" ><bounds x="48" y="3" width="10" height="10" /></bezel>
|
||||
<bezel name="pos16" element="piece" ><bounds x="58" y="3" width="10" height="10" /></bezel>
|
||||
<bezel name="pos17" element="piece" ><bounds x="68" y="3" width="10" height="10" /></bezel>
|
||||
<bezel name="pos18" element="piece" ><bounds x="78" y="3" width="10" height="10" /></bezel>
|
||||
|
||||
|
||||
<!-- LCD panel -->
|
||||
<screen index="0"><bounds x="95" y="4.5" width="30" height="4" /></screen>
|
||||
|
||||
<bezel name="digit11" element="digit" ><bounds x="95.9" y="9" width="1.6" height="3" /></bezel>
|
||||
<bezel name="digit10" element="digit" ><bounds x="98.35" y="9" width="1.6" height="3" /></bezel>
|
||||
<bezel name="digit9" element="digit" ><bounds x="100.8" y="9" width="1.6" height="3" /></bezel>
|
||||
<bezel name="digit8" element="digit" ><bounds x="103.25" y="9" width="1.6" height="3" /></bezel>
|
||||
<bezel name="digit7" element="digit" ><bounds x="105.7" y="9" width="1.6" height="3" /></bezel>
|
||||
<bezel name="digit6" element="digit" ><bounds x="108.15" y="9" width="1.6" height="3" /></bezel>
|
||||
<bezel name="digit5" element="digit" ><bounds x="110.6" y="9" width="1.6" height="3" /></bezel>
|
||||
<bezel name="digit4" element="digit" ><bounds x="113.05" y="9" width="1.6" height="3" /></bezel>
|
||||
<bezel name="digit3" element="digit" ><bounds x="115.5" y="9" width="1.6" height="3" /></bezel>
|
||||
<bezel name="digit2" element="digit" ><bounds x="117.95" y="9" width="1.6" height="3" /></bezel>
|
||||
<bezel name="digit1" element="digit" ><bounds x="120.4" y="9" width="1.6" height="3" /></bezel>
|
||||
<bezel name="digit0" element="digit" ><bounds x="122.85" y="9" width="1.6" height="3" /></bezel>
|
||||
<bezel name="sym12" element="sym_colon" ><bounds x="107.0" y="9" width="1.5" height="3" /></bezel>
|
||||
<bezel name="sym13" element="sym_colon" ><bounds x="119.2" y="9" width="1.5" height="3" /></bezel>
|
||||
|
||||
<bezel name="sym1" element="sym_right" > <bounds x="121.60" y="12.7" width="3" height="3" /></bezel>
|
||||
<bezel name="sym2" element="sym_p6" > <bounds x="116.60" y="12.5" width="5" height="3" /></bezel>
|
||||
<bezel name="sym3" element="sym_p5" > <bounds x="113.75" y="12.5" width="4" height="3" /></bezel>
|
||||
<bezel name="sym4" element="sym_p4" > <bounds x="110.88" y="12.5" width="4" height="3" /></bezel>
|
||||
<bezel name="sym6" element="sym_p3" > <bounds x="108.00" y="12.5" width="4" height="3" /></bezel>
|
||||
<bezel name="sym7" element="sym_p2" > <bounds x="105.13" y="12.5" width="4" height="3" /></bezel>
|
||||
<bezel name="sym8" element="sym_p1" > <bounds x="102.25" y="12.5" width="4" height="3" /></bezel>
|
||||
<bezel name="sym9" element="sym_white" > <bounds x="99.00" y="12.5" width="4" height="3" /></bezel>
|
||||
<bezel name="sym10" element="sym_black" > <bounds x="99.90" y="13.0" width="2.2" height="2.2" /></bezel>
|
||||
<bezel name="sym11" element="sym_left" > <bounds x="95.40" y="12.7" width="3" height="3" /></bezel>
|
||||
|
||||
|
||||
<!-- right side -->
|
||||
<bezel element="text_on" ><bounds x="96" y="37" width="8" height="2" /></bezel>
|
||||
<bezel element="text_off" ><bounds x="107" y="37" width="8" height="2" /></bezel>
|
||||
<bezel element="text_newgame" ><bounds x="118" y="37" width="8" height="2" /></bezel>
|
||||
<bezel element="text_play" ><bounds x="129" y="37" width="8" height="2" /></bezel>
|
||||
<bezel element="text_back" ><bounds x="140" y="37" width="8" height="2" /></bezel>
|
||||
|
||||
<bezel element="text_left" ><bounds x="96" y="52" width="7" height="3" /></bezel>
|
||||
<bezel element="text_right" ><bounds x="105" y="52" width="7" height="3" /></bezel>
|
||||
<bezel element="text_menu" ><bounds x="114" y="52" width="7" height="2" /></bezel>
|
||||
<bezel element="text_up" ><bounds x="123" y="51" width="7" height="3" /></bezel>
|
||||
<bezel element="text_down" ><bounds x="132" y="51" width="7" height="3" /></bezel>
|
||||
<bezel element="text_enter" ><bounds x="141" y="52" width="7" height="2" /></bezel>
|
||||
|
||||
<bezel element="text_p1" ><bounds x="96" y="65" width="7" height="5" /></bezel>
|
||||
<bezel element="text_p2" ><bounds x="105" y="65" width="7" height="5" /></bezel>
|
||||
<bezel element="text_p3" ><bounds x="114" y="65" width="7" height="5" /></bezel>
|
||||
<bezel element="text_p4" ><bounds x="123" y="65" width="7" height="5" /></bezel>
|
||||
<bezel element="text_p5" ><bounds x="132" y="65" width="7" height="5" /></bezel>
|
||||
<bezel element="text_p6" ><bounds x="141" y="65" width="7" height="5" /></bezel>
|
||||
|
||||
<bezel element="button" inputtag="RESET" inputmask="0x00000001"><bounds x="96" y="40" width="8" height="2" /></bezel>
|
||||
<bezel element="button" inputtag="P7" inputmask="0x80000000"><bounds x="107" y="40" width="8" height="2" /></bezel>
|
||||
<bezel element="button" inputtag="P6" inputmask="0x80000000"><bounds x="118" y="40" width="8" height="2" /></bezel>
|
||||
<bezel element="button" inputtag="P5" inputmask="0x80000000"><bounds x="129" y="40" width="8" height="2" /></bezel>
|
||||
<bezel element="button" inputtag="P0" inputmask="0x80000000"><bounds x="140" y="40" width="8" height="2" /></bezel>
|
||||
|
||||
<bezel element="button" inputtag="P7" inputmask="0x40000000"><bounds x="96" y="55" width="7" height="2" /></bezel>
|
||||
<bezel element="button" inputtag="P6" inputmask="0x40000000"><bounds x="105" y="55" width="7" height="2" /></bezel>
|
||||
<bezel element="button" inputtag="P4" inputmask="0x80000000"><bounds x="114" y="55" width="7" height="2" /></bezel>
|
||||
<bezel element="button" inputtag="P3" inputmask="0x80000000"><bounds x="123" y="55" width="7" height="2" /></bezel>
|
||||
<bezel element="button" inputtag="P2" inputmask="0x80000000"><bounds x="132" y="55" width="7" height="2" /></bezel>
|
||||
<bezel element="button" inputtag="P1" inputmask="0x80000000"><bounds x="141" y="55" width="7" height="2" /></bezel>
|
||||
|
||||
<bezel element="button" inputtag="P5" inputmask="0x40000000"><bounds x="96" y="70" width="7" height="2" /></bezel>
|
||||
<bezel element="button" inputtag="P4" inputmask="0x40000000"><bounds x="105" y="70" width="7" height="2" /></bezel>
|
||||
<bezel element="button" inputtag="P3" inputmask="0x40000000"><bounds x="114" y="70" width="7" height="2" /></bezel>
|
||||
<bezel element="button" inputtag="P2" inputmask="0x40000000"><bounds x="123" y="70" width="7" height="2" /></bezel>
|
||||
<bezel element="button" inputtag="P1" inputmask="0x40000000"><bounds x="132" y="70" width="7" height="2" /></bezel>
|
||||
<bezel element="button" inputtag="P0" inputmask="0x40000000"><bounds x="141" y="70" width="7" height="2" /></bezel>
|
||||
</view>
|
||||
</mamelayout>
|
Loading…
Reference in New Issue
Block a user