mirror of
https://github.com/holub/mame
synced 2025-04-22 16:31:49 +03:00
Machines promoted to working
---------------------------- Intelligent Chess [hap, Berger, Achim]
This commit is contained in:
parent
a200131478
commit
fbb49a3124
@ -73,9 +73,9 @@ public:
|
||||
{ }
|
||||
|
||||
// halt button is tied to NMI, reset button to RESET(but only if halt button is held)
|
||||
void update_reset() { m_maincpu->set_input_line(INPUT_LINE_RESET, (m_inputs[1]->read() == 3) ? ASSERT_LINE : CLEAR_LINE); }
|
||||
DECLARE_INPUT_CHANGED_MEMBER(reset_button) { update_reset(); }
|
||||
DECLARE_INPUT_CHANGED_MEMBER(halt_button) { m_maincpu->set_input_line(M6502_NMI_LINE, newval ? ASSERT_LINE : CLEAR_LINE); update_reset(); }
|
||||
void update_reset();
|
||||
|
||||
// machine configs
|
||||
void arb(machine_config &config);
|
||||
@ -109,22 +109,15 @@ private:
|
||||
void control_w(u8 data);
|
||||
u8 input_r();
|
||||
|
||||
u16 m_inp_mux;
|
||||
u16 m_led_select;
|
||||
u8 m_led_group;
|
||||
u8 m_led_latch;
|
||||
u16 m_led_data;
|
||||
u16 m_inp_mux = 0;
|
||||
u16 m_led_select = 0;
|
||||
u8 m_led_group = 0;
|
||||
u8 m_led_latch = 0;
|
||||
u16 m_led_data = 0;
|
||||
};
|
||||
|
||||
void arb_state::machine_start()
|
||||
{
|
||||
// zerofill
|
||||
m_inp_mux = 0;
|
||||
m_led_select = 0;
|
||||
m_led_group = 0;
|
||||
m_led_latch = 0;
|
||||
m_led_data = 0;
|
||||
|
||||
// register for savestates
|
||||
save_item(NAME(m_inp_mux));
|
||||
save_item(NAME(m_led_select));
|
||||
@ -133,6 +126,16 @@ void arb_state::machine_start()
|
||||
save_item(NAME(m_led_data));
|
||||
}
|
||||
|
||||
void arb_state::update_reset()
|
||||
{
|
||||
bool state = m_inputs[1]->read() == 3;
|
||||
|
||||
// RESET goes to 6502+6522
|
||||
m_maincpu->set_input_line(INPUT_LINE_RESET, state ? ASSERT_LINE : CLEAR_LINE);
|
||||
if (state)
|
||||
m_via->reset();
|
||||
}
|
||||
|
||||
|
||||
|
||||
/******************************************************************************
|
||||
|
@ -9,11 +9,11 @@ It's a portable chesscomputer with sensory board. The MCU says "(C) CAL R & O3",
|
||||
though the program is supposedly by David Kittinger?
|
||||
|
||||
Hardware notes:
|
||||
- Mostek 3875/42 (4KB ROM, 64 bytes executable RAM)
|
||||
- Mostek 3875/42 (4KB ROM, 64 bytes extra RAM)
|
||||
- buzzer, button sensors chessboard, 16+4 leds
|
||||
|
||||
TODO:
|
||||
- memory switch? probably a hardware thing to power only the MCU
|
||||
MCU interrupts are unused. Its embedded extra RAM is battery-backed via MEM
|
||||
switch tied to pin #4 (VSB: RAM standby power).
|
||||
|
||||
******************************************************************************/
|
||||
|
||||
@ -22,6 +22,7 @@ TODO:
|
||||
#include "cpu/f8/f8.h"
|
||||
#include "machine/f3853.h"
|
||||
#include "machine/sensorboard.h"
|
||||
#include "machine/nvram.h"
|
||||
#include "sound/dac.h"
|
||||
#include "sound/volt_reg.h"
|
||||
#include "video/pwm.h"
|
||||
@ -82,10 +83,6 @@ void micro_state::machine_start()
|
||||
save_item(NAME(m_led_data));
|
||||
save_item(NAME(m_control));
|
||||
save_item(NAME(m_inp_mux));
|
||||
|
||||
// game relies on RAM filled with FF at power-on
|
||||
for (int i = 0; i < 0x40; i++)
|
||||
m_maincpu->space(AS_PROGRAM).write_byte(i + 0xfc0, 0xff);
|
||||
}
|
||||
|
||||
|
||||
@ -163,7 +160,7 @@ void micro_state::main_map(address_map &map)
|
||||
{
|
||||
map.global_mask(0xfff);
|
||||
map(0x0000, 0x0fbf).rom();
|
||||
map(0x0fc0, 0x0fff).ram();
|
||||
map(0x0fc0, 0x0fff).ram().share("nvram");
|
||||
}
|
||||
|
||||
void micro_state::main_io(address_map &map)
|
||||
@ -200,7 +197,7 @@ INPUT_PORTS_END
|
||||
void micro_state::micro(machine_config &config)
|
||||
{
|
||||
// basic machine hardware
|
||||
F8(config, m_maincpu, 4500000/2); // approximation
|
||||
F8(config, m_maincpu, 4500000/2); // matches video reference
|
||||
m_maincpu->set_addrmap(AS_PROGRAM, µ_state::main_map);
|
||||
m_maincpu->set_addrmap(AS_IO, µ_state::main_io);
|
||||
|
||||
@ -209,9 +206,12 @@ void micro_state::micro(machine_config &config)
|
||||
psu.write_a().set(FUNC(micro_state::control_w));
|
||||
psu.write_b().set(FUNC(micro_state::led_w));
|
||||
|
||||
NVRAM(config, "nvram", nvram_device::DEFAULT_ALL_1);
|
||||
|
||||
SENSORBOARD(config, m_board).set_type(sensorboard_device::BUTTONS);
|
||||
m_board->init_cb().set(m_board, FUNC(sensorboard_device::preset_chess));
|
||||
m_board->set_delay(attotime::from_msec(150));
|
||||
m_board->set_nvram_enable(true);
|
||||
|
||||
// video hardware
|
||||
PWM_DISPLAY(config, m_display).set_size(6, 6);
|
||||
|
@ -5,26 +5,34 @@
|
||||
|
||||
SciSys Intelligent Chess
|
||||
|
||||
Development by Intelligent Games, the same group of people that worked on the
|
||||
Super System III and Mark V. The visual interface is an evolution of "Tolinka".
|
||||
|
||||
Hardware notes:
|
||||
- Synertek 6502A @ ~1.1MHz
|
||||
- Synertek 6522 VIA
|
||||
- 2*4KB ROM(Synertek 2332), 2KB RAM(4*M5L2114LP)
|
||||
- 256 bytes PROM(MMI 6336-1J), 256x4 VRAM(2101-1), RF video
|
||||
- MM74C923N keyboard encoder, 20 buttons
|
||||
- tape deck with microphone
|
||||
- cassette deck with microphone
|
||||
- 4-digit 7seg display
|
||||
|
||||
TODO:
|
||||
- cassette data input doesn't work
|
||||
- NMI is from the cassette deck, maybe for mixing microphone input?
|
||||
- colors are estimated from photos (black and white are obvious, but the green
|
||||
and cyan are not standard 0x00ff00 / 0x00ffff)
|
||||
- video timing is unknown, sprite offsets are estimated from photos
|
||||
- not sure about "Record" and "Reset" button labels, the rest is correct
|
||||
|
||||
******************************************************************************/
|
||||
|
||||
#include "emu.h"
|
||||
#include "cpu/m6502/m6502.h"
|
||||
#include "imagedev/cassette.h"
|
||||
#include "machine/6522via.h"
|
||||
#include "machine/mm74c922.h"
|
||||
#include "machine/timer.h"
|
||||
#include "sound/dac.h"
|
||||
#include "sound/volt_reg.h"
|
||||
#include "video/pwm.h"
|
||||
@ -52,9 +60,12 @@ public:
|
||||
m_vram(*this, "vram"),
|
||||
m_gfxdecode(*this, "gfxdecode"),
|
||||
m_screen(*this, "screen"),
|
||||
m_palette(*this, "palette")
|
||||
m_palette(*this, "palette"),
|
||||
m_cass(*this, "cassette")
|
||||
{ }
|
||||
|
||||
DECLARE_INPUT_CHANGED_MEMBER(reset_button);
|
||||
|
||||
void intchess(machine_config &config);
|
||||
|
||||
protected:
|
||||
@ -71,12 +82,12 @@ private:
|
||||
required_device<gfxdecode_device> m_gfxdecode;
|
||||
required_device<screen_device> m_screen;
|
||||
required_device<palette_device> m_palette;
|
||||
required_device<cassette_image_device> m_cass;
|
||||
|
||||
// address maps
|
||||
void main_map(address_map &map);
|
||||
|
||||
// I/O handlers
|
||||
void vram_w(offs_t offset, u8 data);
|
||||
void update_display();
|
||||
void seg_w(u8 data);
|
||||
void control_w(u8 data);
|
||||
@ -84,6 +95,9 @@ private:
|
||||
|
||||
void init_palette(palette_device &palette) const;
|
||||
u32 screen_update(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
|
||||
void vram_w(offs_t offset, u8 data);
|
||||
|
||||
TIMER_DEVICE_CALLBACK_MEMBER(cass_input);
|
||||
|
||||
u8 m_select = 0;
|
||||
u8 m_7seg_data = 0;
|
||||
@ -96,6 +110,14 @@ void intchess_state::machine_start()
|
||||
save_item(NAME(m_7seg_data));
|
||||
}
|
||||
|
||||
INPUT_CHANGED_MEMBER(intchess_state::reset_button)
|
||||
{
|
||||
// assume that reset button is tied to 6502/6522
|
||||
m_maincpu->set_input_line(INPUT_LINE_RESET, newval ? ASSERT_LINE : CLEAR_LINE);
|
||||
if (newval)
|
||||
m_via->reset();
|
||||
}
|
||||
|
||||
|
||||
|
||||
/******************************************************************************
|
||||
@ -154,35 +176,25 @@ void intchess_state::update_display()
|
||||
|
||||
void intchess_state::seg_w(u8 data)
|
||||
{
|
||||
//printf("a_%X ",data);
|
||||
|
||||
// PA1-PA7: 7seg data
|
||||
// PA0: ?
|
||||
m_7seg_data = bitswap<8>(~data,0,1,2,3,4,5,6,7);
|
||||
update_display();
|
||||
|
||||
|
||||
|
||||
}
|
||||
|
||||
|
||||
void intchess_state::control_w(u8 data)
|
||||
{
|
||||
//printf("b_%X ",data);
|
||||
|
||||
// PB0-PB3: digit select
|
||||
m_select = data & 0xf;
|
||||
update_display();
|
||||
|
||||
// PB5-PB7 to tape deck
|
||||
// PB5-PB7 to cassette deck
|
||||
// PB5: speaker
|
||||
// PB6: ?
|
||||
// PB7: output
|
||||
m_dac->write(BIT(data, 5));
|
||||
|
||||
|
||||
|
||||
//printf("%d",data>>6&1);
|
||||
// PB6: cassette input?
|
||||
// PB7: cassette output
|
||||
m_cass->output(BIT(data, 7) ? +1.0 : -1.0);
|
||||
}
|
||||
|
||||
u8 intchess_state::control_r()
|
||||
@ -191,6 +203,11 @@ u8 intchess_state::control_r()
|
||||
return m_encoder->da_r() ? 0x10 : 0x00;
|
||||
}
|
||||
|
||||
TIMER_DEVICE_CALLBACK_MEMBER(intchess_state::cass_input)
|
||||
{
|
||||
m_via->write_pb6((m_cass->input() > +0.04) ? 1 : 0);
|
||||
}
|
||||
|
||||
|
||||
|
||||
/******************************************************************************
|
||||
@ -209,42 +226,49 @@ void intchess_state::main_map(address_map &map)
|
||||
|
||||
|
||||
|
||||
|
||||
/******************************************************************************
|
||||
Input Ports
|
||||
******************************************************************************/
|
||||
|
||||
static INPUT_PORTS_START( intchess )
|
||||
PORT_START("X1")
|
||||
PORT_BIT(0x01, IP_ACTIVE_LOW, IPT_KEYPAD) PORT_CODE(KEYCODE_1) // a1
|
||||
PORT_BIT(0x02, IP_ACTIVE_LOW, IPT_KEYPAD) PORT_CODE(KEYCODE_2) // e5
|
||||
PORT_BIT(0x04, IP_ACTIVE_LOW, IPT_KEYPAD) PORT_CODE(KEYCODE_3) // level
|
||||
PORT_BIT(0x08, IP_ACTIVE_LOW, IPT_KEYPAD) PORT_CODE(KEYCODE_4) // clear?
|
||||
PORT_BIT(0x10, IP_ACTIVE_LOW, IPT_KEYPAD) PORT_CODE(KEYCODE_5) // flash
|
||||
PORT_BIT(0x01, IP_ACTIVE_LOW, IPT_KEYPAD) PORT_CODE(KEYCODE_A) PORT_CODE(KEYCODE_1) PORT_CODE(KEYCODE_1_PAD) PORT_NAME("A 1 / Pawn")
|
||||
PORT_BIT(0x02, IP_ACTIVE_LOW, IPT_KEYPAD) PORT_CODE(KEYCODE_E) PORT_CODE(KEYCODE_5) PORT_CODE(KEYCODE_5_PAD) PORT_NAME("E 5 / Queen")
|
||||
PORT_BIT(0x04, IP_ACTIVE_LOW, IPT_KEYPAD) PORT_CODE(KEYCODE_L) PORT_NAME("Level")
|
||||
PORT_BIT(0x08, IP_ACTIVE_LOW, IPT_KEYPAD) PORT_CODE(KEYCODE_DEL) PORT_CODE(KEYCODE_BACKSPACE) PORT_NAME("Clear")
|
||||
PORT_BIT(0x10, IP_ACTIVE_LOW, IPT_KEYPAD) PORT_CODE(KEYCODE_X) PORT_NAME("Flash")
|
||||
|
||||
PORT_START("X2")
|
||||
PORT_BIT(0x01, IP_ACTIVE_LOW, IPT_KEYPAD) PORT_CODE(KEYCODE_Q) // b2
|
||||
PORT_BIT(0x02, IP_ACTIVE_LOW, IPT_KEYPAD) PORT_CODE(KEYCODE_W) // f6
|
||||
PORT_BIT(0x04, IP_ACTIVE_LOW, IPT_KEYPAD) PORT_CODE(KEYCODE_E) // newgame?
|
||||
PORT_BIT(0x08, IP_ACTIVE_LOW, IPT_KEYPAD) PORT_CODE(KEYCODE_R) // enter
|
||||
PORT_BIT(0x10, IP_ACTIVE_LOW, IPT_KEYPAD) PORT_CODE(KEYCODE_T) // zuruck
|
||||
PORT_BIT(0x01, IP_ACTIVE_LOW, IPT_KEYPAD) PORT_CODE(KEYCODE_B) PORT_CODE(KEYCODE_2) PORT_CODE(KEYCODE_2_PAD) PORT_NAME("B 2 / Knight")
|
||||
PORT_BIT(0x02, IP_ACTIVE_LOW, IPT_KEYPAD) PORT_CODE(KEYCODE_F) PORT_CODE(KEYCODE_6) PORT_CODE(KEYCODE_6_PAD) PORT_NAME("F 6 / King")
|
||||
PORT_BIT(0x04, IP_ACTIVE_LOW, IPT_KEYPAD) PORT_CODE(KEYCODE_N) PORT_NAME("New Game")
|
||||
PORT_BIT(0x08, IP_ACTIVE_LOW, IPT_KEYPAD) PORT_CODE(KEYCODE_ENTER) PORT_CODE(KEYCODE_ENTER_PAD) PORT_NAME("Enter")
|
||||
PORT_BIT(0x10, IP_ACTIVE_LOW, IPT_KEYPAD) PORT_CODE(KEYCODE_T) PORT_NAME("Take Back")
|
||||
|
||||
PORT_START("X3")
|
||||
PORT_BIT(0x01, IP_ACTIVE_LOW, IPT_KEYPAD) PORT_CODE(KEYCODE_A) // c3
|
||||
PORT_BIT(0x02, IP_ACTIVE_LOW, IPT_KEYPAD) PORT_CODE(KEYCODE_S) // g7
|
||||
PORT_BIT(0x04, IP_ACTIVE_LOW, IPT_KEYPAD) PORT_CODE(KEYCODE_D) // modus
|
||||
PORT_BIT(0x08, IP_ACTIVE_LOW, IPT_KEYPAD) PORT_CODE(KEYCODE_F) // check?
|
||||
PORT_BIT(0x10, IP_ACTIVE_LOW, IPT_KEYPAD) PORT_CODE(KEYCODE_G) // altern?
|
||||
PORT_BIT(0x01, IP_ACTIVE_LOW, IPT_KEYPAD) PORT_CODE(KEYCODE_C) PORT_CODE(KEYCODE_3) PORT_CODE(KEYCODE_3_PAD) PORT_NAME("C 3 / Bishop")
|
||||
PORT_BIT(0x02, IP_ACTIVE_LOW, IPT_KEYPAD) PORT_CODE(KEYCODE_G) PORT_CODE(KEYCODE_7) PORT_CODE(KEYCODE_7_PAD) PORT_NAME("G 7 / White")
|
||||
PORT_BIT(0x04, IP_ACTIVE_LOW, IPT_KEYPAD) PORT_CODE(KEYCODE_M) PORT_NAME("Mode")
|
||||
PORT_BIT(0x08, IP_ACTIVE_LOW, IPT_KEYPAD) PORT_CODE(KEYCODE_I) PORT_NAME("Find")
|
||||
PORT_BIT(0x10, IP_ACTIVE_LOW, IPT_KEYPAD) PORT_CODE(KEYCODE_O) PORT_NAME("Next Best")
|
||||
|
||||
PORT_START("X4")
|
||||
PORT_BIT(0x01, IP_ACTIVE_LOW, IPT_KEYPAD) PORT_CODE(KEYCODE_Z) // d4
|
||||
PORT_BIT(0x02, IP_ACTIVE_LOW, IPT_KEYPAD) PORT_CODE(KEYCODE_X) // h8
|
||||
PORT_BIT(0x04, IP_ACTIVE_LOW, IPT_KEYPAD) PORT_CODE(KEYCODE_C) // speichern?
|
||||
PORT_BIT(0x08, IP_ACTIVE_LOW, IPT_KEYPAD) PORT_CODE(KEYCODE_V) // setzen
|
||||
PORT_BIT(0x10, IP_ACTIVE_LOW, IPT_KEYPAD) PORT_CODE(KEYCODE_B) // vor
|
||||
PORT_BIT(0x01, IP_ACTIVE_LOW, IPT_KEYPAD) PORT_CODE(KEYCODE_D) PORT_CODE(KEYCODE_4) PORT_CODE(KEYCODE_4_PAD) PORT_NAME("D 4 / Rook")
|
||||
PORT_BIT(0x02, IP_ACTIVE_LOW, IPT_KEYPAD) PORT_CODE(KEYCODE_H) PORT_CODE(KEYCODE_8) PORT_CODE(KEYCODE_8_PAD) PORT_NAME("H 8 / Black")
|
||||
PORT_BIT(0x04, IP_ACTIVE_LOW, IPT_KEYPAD) PORT_CODE(KEYCODE_Z) PORT_NAME("Record")
|
||||
PORT_BIT(0x08, IP_ACTIVE_LOW, IPT_KEYPAD) PORT_CODE(KEYCODE_U) PORT_NAME("Place")
|
||||
PORT_BIT(0x10, IP_ACTIVE_LOW, IPT_KEYPAD) PORT_CODE(KEYCODE_S) PORT_NAME("Step")
|
||||
|
||||
PORT_START("RESET")
|
||||
PORT_BIT(0x01, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_CODE(KEYCODE_R) PORT_CHANGED_MEMBER(DEVICE_SELF, intchess_state, reset_button, 0) PORT_NAME("Reset")
|
||||
INPUT_PORTS_END
|
||||
|
||||
|
||||
|
||||
/******************************************************************************
|
||||
GFX Layouts
|
||||
******************************************************************************/
|
||||
|
||||
static const gfx_layout layout_8x8 =
|
||||
{
|
||||
8,8,
|
||||
@ -261,6 +285,7 @@ static GFXDECODE_START( gfx_intchess )
|
||||
GFXDECODE_END
|
||||
|
||||
|
||||
|
||||
/******************************************************************************
|
||||
Machine Configs
|
||||
******************************************************************************/
|
||||
@ -304,6 +329,12 @@ void intchess_state::intchess(machine_config &config)
|
||||
SPEAKER(config, "speaker").front_center();
|
||||
DAC_1BIT(config, m_dac).add_route(ALL_OUTPUTS, "speaker", 0.25);
|
||||
VOLTAGE_REGULATOR(config, "vref").add_route(0, "dac", 1.0, DAC_VREF_POS_INPUT);
|
||||
|
||||
// cassette
|
||||
CASSETTE(config, m_cass);
|
||||
m_cass->set_default_state(CASSETTE_STOPPED | CASSETTE_MOTOR_ENABLED | CASSETTE_SPEAKER_ENABLED);
|
||||
m_cass->add_route(ALL_OUTPUTS, "speaker", 0.05);
|
||||
TIMER(config, "cass_input").configure_periodic(FUNC(intchess_state::cass_input), attotime::from_usec(10));
|
||||
}
|
||||
|
||||
|
||||
@ -330,4 +361,4 @@ ROM_END
|
||||
******************************************************************************/
|
||||
|
||||
// YEAR NAME PARENT CMP MACHINE INPUT STATE INIT COMPANY, FULLNAME, FLAGS
|
||||
CONS( 1980, intchess, 0, 0, intchess, intchess, intchess_state, empty_init, "SciSys / Intelligent Games", "Intelligent Chess", MACHINE_SUPPORTS_SAVE | MACHINE_CLICKABLE_ARTWORK | MACHINE_IMPERFECT_COLORS | MACHINE_IMPERFECT_GRAPHICS | MACHINE_NOT_WORKING )
|
||||
CONS( 1980, intchess, 0, 0, intchess, intchess, intchess_state, empty_init, "SciSys / Intelligent Games", "Intelligent Chess", MACHINE_SUPPORTS_SAVE | MACHINE_CLICKABLE_ARTWORK | MACHINE_IMPERFECT_COLORS | MACHINE_IMPERFECT_GRAPHICS )
|
||||
|
@ -6,25 +6,182 @@ license:CC0
|
||||
|
||||
<!-- define elements -->
|
||||
|
||||
<element name="black"><rect><color red="0" green="0" blue="0" /></rect></element>
|
||||
<element name="white"><rect><color red="1" green="1" blue="1" /></rect></element>
|
||||
<element name="whitea"><rect><color red="0.1" green="0.1" blue="0.1" /></rect></element>
|
||||
<element name="whitem"><rect><color red="0.8" green="0.8" blue="0.8" /></rect></element>
|
||||
<element name="orange"><rect><color red="0.8" green="0.5" blue="0.05" /></rect></element>
|
||||
|
||||
<element name="hl" defstate="0">
|
||||
<text string=" "/>
|
||||
<rect state="1"><color red="0.8" green="0.8" blue="0.8" /></rect>
|
||||
</element>
|
||||
|
||||
<element name="digit" defstate="0">
|
||||
<led7seg><color red="1.0" green="0.1" blue="0.15" /></led7seg>
|
||||
</element>
|
||||
|
||||
<group name="panel">
|
||||
<bounds x="0" y="0" width="40" height="15" />
|
||||
<bezel name="digit0" element="digit"><bounds x="0" y="0" width="10" height="15" /></bezel>
|
||||
<bezel name="digit1" element="digit"><bounds x="10" y="0" width="10" height="15" /></bezel>
|
||||
<bezel name="digit2" element="digit"><bounds x="20" y="0" width="10" height="15" /></bezel>
|
||||
<bezel name="digit3" element="digit"><bounds x="30" y="0" width="10" height="15" /></bezel>
|
||||
</group>
|
||||
<element name="text_1"><text string="1"><color red="0.66" green="0.66" blue="0.66" /></text></element>
|
||||
<element name="text_2"><text string="2"><color red="0.66" green="0.66" blue="0.66" /></text></element>
|
||||
<element name="text_3"><text string="3"><color red="0.66" green="0.66" blue="0.66" /></text></element>
|
||||
<element name="text_4"><text string="4"><color red="0.66" green="0.66" blue="0.66" /></text></element>
|
||||
<element name="text_5"><text string="5"><color red="0.66" green="0.66" blue="0.66" /></text></element>
|
||||
<element name="text_6"><text string="6"><color red="0.66" green="0.66" blue="0.66" /></text></element>
|
||||
<element name="text_7"><text string="7"><color red="0.66" green="0.66" blue="0.66" /></text></element>
|
||||
<element name="text_8"><text string="8"><color red="0.66" green="0.66" blue="0.66" /></text></element>
|
||||
<element name="text_a"><text string="A"><color red="0.66" green="0.66" blue="0.66" /></text></element>
|
||||
<element name="text_b"><text string="B"><color red="0.66" green="0.66" blue="0.66" /></text></element>
|
||||
<element name="text_c"><text string="C"><color red="0.66" green="0.66" blue="0.66" /></text></element>
|
||||
<element name="text_d"><text string="D"><color red="0.66" green="0.66" blue="0.66" /></text></element>
|
||||
<element name="text_e"><text string="E"><color red="0.66" green="0.66" blue="0.66" /></text></element>
|
||||
<element name="text_f"><text string="F"><color red="0.66" green="0.66" blue="0.66" /></text></element>
|
||||
<element name="text_g"><text string="G"><color red="0.66" green="0.66" blue="0.66" /></text></element>
|
||||
<element name="text_h"><text string="H"><color red="0.66" green="0.66" blue="0.66" /></text></element>
|
||||
|
||||
<element name="text_l00"><text string="RESET"><color red="0.66" green="0.66" blue="0.66" /></text></element>
|
||||
<element name="text_l02"><text string="LEVEL"><color red="0.66" green="0.66" blue="0.66" /></text></element>
|
||||
<element name="text_l03"><text string="NEW GAME"><color red="0.66" green="0.66" blue="0.66" /></text></element>
|
||||
|
||||
<element name="text_l11"><text string="MODE"><color red="0.66" green="0.66" blue="0.66" /></text></element>
|
||||
<element name="text_l12"><text string="CLEAR SQUARE"><color red="0.66" green="0.66" blue="0.66" /></text></element>
|
||||
<element name="text_l13"><text string="CLEAR BOARD"><color red="0.66" green="0.66" blue="0.66" /></text></element>
|
||||
<element name="text_l14"><text string="PLACE"><color red="0.66" green="0.66" blue="0.66" /></text></element>
|
||||
<element name="text_l15"><text string="FIND"><color red="0.66" green="0.66" blue="0.66" /></text></element>
|
||||
<element name="text_l16"><text string="NEXT BEST"><color red="0.66" green="0.66" blue="0.66" /></text></element>
|
||||
|
||||
<element name="text_l21"><text string="RECORD"><color red="0.66" green="0.66" blue="0.66" /></text></element>
|
||||
<element name="text_l22"><text string="FLASH"><color red="0.66" green="0.66" blue="0.66" /></text></element>
|
||||
<element name="text_l23"><text string="TAKE BACK"><color red="0.66" green="0.66" blue="0.66" /></text></element>
|
||||
<element name="text_l24"><text string="STEP"><color red="0.66" green="0.66" blue="0.66" /></text></element>
|
||||
<element name="text_l25"><text string="CLEAR"><color red="0.66" green="0.66" blue="0.66" /></text></element>
|
||||
<element name="text_l26"><text string="ENTER"><color red="0.66" green="0.66" blue="0.66" /></text></element>
|
||||
|
||||
<element name="text_p1"><image file="chess/bp.png" /></element>
|
||||
<element name="text_p2"><image file="chess/bn.png" /></element>
|
||||
<element name="text_p3"><image file="chess/bb.png" /></element>
|
||||
<element name="text_p4"><image file="chess/br.png" /></element>
|
||||
<element name="text_p5"><image file="chess/bq.png" /></element>
|
||||
<element name="text_p6"><image file="chess/bk.png" /></element>
|
||||
|
||||
|
||||
<!-- build screen -->
|
||||
|
||||
<view name="Internal Layout">
|
||||
<bounds left="0" right="40" top="0" bottom="40" />
|
||||
<screen index="0"><bounds x="0" y="0" width="40" height="30" /></screen>
|
||||
<group ref="panel"><bounds x="10" y="31" width="20" height="7.5" /></group>
|
||||
<bounds left="-2" right="48" top="46.5" bottom="124" />
|
||||
<screen index="0"><bounds x="-2" y="46.5" width="50" height="37.5" /></screen>
|
||||
|
||||
<bezel name="digit0" element="digit"><bounds x="15" y="88" width="4" height="6" /></bezel>
|
||||
<bezel name="digit1" element="digit"><bounds x="19" y="88" width="4" height="6" /></bezel>
|
||||
<bezel name="digit2" element="digit"><bounds x="23" y="88" width="4" height="6" /></bezel>
|
||||
<bezel name="digit3" element="digit"><bounds x="27" y="88" width="4" height="6" /></bezel>
|
||||
|
||||
<!-- buttons -->
|
||||
<element ref="orange"><bounds x="0" y="100" width="4" height="4" /></element>
|
||||
<element ref="orange"><bounds x="6" y="100" width="4" height="4" /></element>
|
||||
<element ref="orange"><bounds x="18" y="100" width="4" height="4" /></element>
|
||||
<element ref="orange"><bounds x="24" y="100" width="4" height="4" /></element>
|
||||
<element ref="orange"><bounds x="36" y="100" width="4" height="4" /></element>
|
||||
<element ref="orange"><bounds x="42" y="100" width="4" height="4" /></element>
|
||||
|
||||
<element ref="orange"><bounds x="0" y="107" width="4" height="4" /></element>
|
||||
<element ref="orange"><bounds x="6" y="107" width="4" height="4" /></element>
|
||||
<element ref="orange"><bounds x="18" y="107" width="4" height="4" /></element>
|
||||
<element ref="orange"><bounds x="24" y="107" width="4" height="4" /></element>
|
||||
<element ref="orange"><bounds x="36" y="107" width="4" height="4" /></element>
|
||||
<element ref="orange"><bounds x="42" y="107" width="4" height="4" /></element>
|
||||
|
||||
<element ref="white"><bounds x="0" y="117" width="4" height="4" /></element>
|
||||
<element ref="white"><bounds x="6" y="117" width="4" height="4" /></element>
|
||||
<element ref="white"><bounds x="12" y="117" width="4" height="4" /></element>
|
||||
<element ref="white"><bounds x="18" y="117" width="4" height="4" /></element>
|
||||
<element ref="white"><bounds x="24" y="117" width="4" height="4" /></element>
|
||||
<element ref="white"><bounds x="30" y="117" width="4" height="4" /></element>
|
||||
<element ref="white"><bounds x="36" y="117" width="4" height="4" /></element>
|
||||
<element ref="white"><bounds x="42" y="117" width="4" height="4" /></element>
|
||||
|
||||
<element ref="text_p1"><bounds x="0.4" y="117.4" width="3.2" height="3.2" /></element>
|
||||
<element ref="text_p2"><bounds x="6.4" y="117.4" width="3.2" height="3.2" /></element>
|
||||
<element ref="text_p3"><bounds x="12.4" y="117.4" width="3.2" height="3.2" /></element>
|
||||
<element ref="text_p4"><bounds x="18.4" y="117.4" width="3.2" height="3.2" /></element>
|
||||
<element ref="text_p5"><bounds x="24.4" y="117.4" width="3.2" height="3.2" /></element>
|
||||
<element ref="text_p6"><bounds x="30.4" y="117.4" width="3.2" height="3.2" /></element>
|
||||
<element ref="black"><bounds x="36.8" y="117.8" width="2.4" height="2.4" /></element>
|
||||
<element ref="white"><bounds x="37.2" y="118.2" width="1.6" height="1.6" /></element>
|
||||
<element ref="black"><bounds x="42.8" y="117.8" width="2.4" height="2.4" /></element>
|
||||
|
||||
<element ref="whitea" blend="add"><bounds x="0" y="117" width="4" height="4" /></element>
|
||||
<element ref="whitea" blend="add"><bounds x="6" y="117" width="4" height="4" /></element>
|
||||
<element ref="whitea" blend="add"><bounds x="12" y="117" width="4" height="4" /></element>
|
||||
<element ref="whitea" blend="add"><bounds x="18" y="117" width="4" height="4" /></element>
|
||||
<element ref="whitea" blend="add"><bounds x="24" y="117" width="4" height="4" /></element>
|
||||
<element ref="whitea" blend="add"><bounds x="30" y="117" width="4" height="4" /></element>
|
||||
<element ref="whitea" blend="add"><bounds x="36" y="117" width="4" height="4" /></element>
|
||||
<element ref="whitea" blend="add"><bounds x="42" y="117" width="4" height="4" /></element>
|
||||
|
||||
<element ref="whitem" blend="multiply"><bounds x="-1" y="116" width="50" height="6" /></element>
|
||||
|
||||
<element ref="hl" blend="multiply" inputtag="X3" inputmask="0x04"><bounds x="0" y="100" width="4" height="4" /></element>
|
||||
<element ref="hl" blend="multiply" inputtag="X1" inputmask="0x04"><bounds x="6" y="100" width="4" height="4" /></element>
|
||||
<element ref="hl" blend="multiply" inputtag="X2" inputmask="0x04"><bounds x="18" y="100" width="4" height="4" /></element>
|
||||
<element ref="hl" blend="multiply" inputtag="X4" inputmask="0x08"><bounds x="24" y="100" width="4" height="4" /></element>
|
||||
<element ref="hl" blend="multiply" inputtag="X3" inputmask="0x08"><bounds x="36" y="100" width="4" height="4" /></element>
|
||||
<element ref="hl" blend="multiply" inputtag="X3" inputmask="0x10"><bounds x="42" y="100" width="4" height="4" /></element>
|
||||
|
||||
<element ref="hl" blend="multiply" inputtag="X4" inputmask="0x04"><bounds x="0" y="107" width="4" height="4" /></element>
|
||||
<element ref="hl" blend="multiply" inputtag="X1" inputmask="0x10"><bounds x="6" y="107" width="4" height="4" /></element>
|
||||
<element ref="hl" blend="multiply" inputtag="X2" inputmask="0x10"><bounds x="18" y="107" width="4" height="4" /></element>
|
||||
<element ref="hl" blend="multiply" inputtag="X4" inputmask="0x10"><bounds x="24" y="107" width="4" height="4" /></element>
|
||||
<element ref="hl" blend="multiply" inputtag="X1" inputmask="0x08"><bounds x="36" y="107" width="4" height="4" /></element>
|
||||
<element ref="hl" blend="multiply" inputtag="X2" inputmask="0x08"><bounds x="42" y="107" width="4" height="4" /></element>
|
||||
|
||||
<element ref="hl" blend="multiply" inputtag="X1" inputmask="0x01"><bounds x="0" y="117" width="4" height="4" /></element>
|
||||
<element ref="hl" blend="multiply" inputtag="X2" inputmask="0x01"><bounds x="6" y="117" width="4" height="4" /></element>
|
||||
<element ref="hl" blend="multiply" inputtag="X3" inputmask="0x01"><bounds x="12" y="117" width="4" height="4" /></element>
|
||||
<element ref="hl" blend="multiply" inputtag="X4" inputmask="0x01"><bounds x="18" y="117" width="4" height="4" /></element>
|
||||
<element ref="hl" blend="multiply" inputtag="X1" inputmask="0x02"><bounds x="24" y="117" width="4" height="4" /></element>
|
||||
<element ref="hl" blend="multiply" inputtag="X2" inputmask="0x02"><bounds x="30" y="117" width="4" height="4" /></element>
|
||||
<element ref="hl" blend="multiply" inputtag="X3" inputmask="0x02"><bounds x="36" y="117" width="4" height="4" /></element>
|
||||
<element ref="hl" blend="multiply" inputtag="X4" inputmask="0x02"><bounds x="42" y="117" width="4" height="4" /></element>
|
||||
|
||||
<element ref="whitem"><bounds x="42" y="90" width="4" height="4" /></element>
|
||||
<element ref="hl" blend="multiply" inputtag="RESET" inputmask="0x01"><bounds x="42" y="90" width="4" height="4" /></element>
|
||||
|
||||
<!-- labels -->
|
||||
<bezel element="text_a"><bounds x="0" y="114.5" width="4" height="1.9" /></bezel>
|
||||
<bezel element="text_b"><bounds x="6" y="114.5" width="4" height="1.9" /></bezel>
|
||||
<bezel element="text_c"><bounds x="12" y="114.5" width="4" height="1.9" /></bezel>
|
||||
<bezel element="text_d"><bounds x="18" y="114.5" width="4" height="1.9" /></bezel>
|
||||
<bezel element="text_e"><bounds x="24" y="114.5" width="4" height="1.9" /></bezel>
|
||||
<bezel element="text_f"><bounds x="30" y="114.5" width="4" height="1.9" /></bezel>
|
||||
<bezel element="text_g"><bounds x="36" y="114.5" width="4" height="1.9" /></bezel>
|
||||
<bezel element="text_h"><bounds x="42" y="114.5" width="4" height="1.9" /></bezel>
|
||||
|
||||
<bezel element="text_1"><bounds x="0" y="121.4" width="4" height="1.9" /></bezel>
|
||||
<bezel element="text_2"><bounds x="6" y="121.4" width="4" height="1.9" /></bezel>
|
||||
<bezel element="text_3"><bounds x="12" y="121.4" width="4" height="1.9" /></bezel>
|
||||
<bezel element="text_4"><bounds x="18" y="121.4" width="4" height="1.9" /></bezel>
|
||||
<bezel element="text_5"><bounds x="24" y="121.4" width="4" height="1.9" /></bezel>
|
||||
<bezel element="text_6"><bounds x="30" y="121.4" width="4" height="1.9" /></bezel>
|
||||
<bezel element="text_7"><bounds x="36" y="121.4" width="4" height="1.9" /></bezel>
|
||||
<bezel element="text_8"><bounds x="42" y="121.4" width="4" height="1.9" /></bezel>
|
||||
|
||||
<bezel element="text_l00"><bounds x="40" y="88.5" width="8" height="1.1" /></bezel>
|
||||
<bezel element="text_l02"><bounds x="4" y="97.3" width="8" height="1.1" /></bezel>
|
||||
<bezel element="text_l03"><bounds x="16" y="97.3" width="8" height="1.1" /></bezel>
|
||||
|
||||
<bezel element="text_l11"><bounds x="-2" y="98.5" width="8" height="1.1" /></bezel>
|
||||
<bezel element="text_l12"><bounds x="4" y="98.5" width="8" height="1.1" /></bezel>
|
||||
<bezel element="text_l13"><bounds x="16" y="98.5" width="8" height="1.1" /></bezel>
|
||||
<bezel element="text_l14"><bounds x="22" y="98.5" width="8" height="1.1" /></bezel>
|
||||
<bezel element="text_l15"><bounds x="34" y="98.5" width="8" height="1.1" /></bezel>
|
||||
<bezel element="text_l16"><bounds x="40" y="98.5" width="8" height="1.1" /></bezel>
|
||||
|
||||
<bezel element="text_l21"><bounds x="-2" y="105.5" width="8" height="1.1" /></bezel>
|
||||
<bezel element="text_l22"><bounds x="4" y="105.5" width="8" height="1.1" /></bezel>
|
||||
<bezel element="text_l23"><bounds x="16" y="105.5" width="8" height="1.1" /></bezel>
|
||||
<bezel element="text_l24"><bounds x="22" y="105.5" width="8" height="1.1" /></bezel>
|
||||
<bezel element="text_l25"><bounds x="34" y="105.5" width="8" height="1.1" /></bezel>
|
||||
<bezel element="text_l26"><bounds x="40" y="105.5" width="8" height="1.1" /></bezel>
|
||||
|
||||
</view>
|
||||
</mamelayout>
|
||||
|
Loading…
Reference in New Issue
Block a user