mirror of
https://github.com/holub/mame
synced 2025-10-06 17:08:28 +03:00
New working machine added
------- Computer Chess (Conic) [hap, Sean Riddle]
This commit is contained in:
parent
8477c1229b
commit
afb8089ae5
@ -35,9 +35,6 @@ keypad legend:
|
|||||||
ПП - просмотр позиции (view position)
|
ПП - просмотр позиции (view position)
|
||||||
УИ - уровень игры (game level)
|
УИ - уровень игры (game level)
|
||||||
|
|
||||||
TODO:
|
|
||||||
- identify 0,9 buttons (unused on the chess games)
|
|
||||||
|
|
||||||
******************************************************************************/
|
******************************************************************************/
|
||||||
|
|
||||||
#include "emu.h"
|
#include "emu.h"
|
||||||
@ -76,8 +73,7 @@ public:
|
|||||||
// machine configs
|
// machine configs
|
||||||
void intel02(machine_config &config);
|
void intel02(machine_config &config);
|
||||||
|
|
||||||
// reset button is tied directly to CPU RESET pin
|
DECLARE_INPUT_CHANGED_MEMBER(reset_button);
|
||||||
DECLARE_INPUT_CHANGED_MEMBER(reset_button) { m_maincpu->set_input_line(INPUT_LINE_RESET, newval ? ASSERT_LINE : CLEAR_LINE); }
|
|
||||||
|
|
||||||
protected:
|
protected:
|
||||||
virtual void machine_start() override;
|
virtual void machine_start() override;
|
||||||
@ -132,6 +128,14 @@ void intel02_state::machine_start()
|
|||||||
save_item(NAME(m_led_active));
|
save_item(NAME(m_led_active));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
INPUT_CHANGED_MEMBER(intel02_state::reset_button)
|
||||||
|
{
|
||||||
|
// reset button goes to 8080/8255 RESET pins simultaneously (via 7474, and also a maze of NAND gates to who knows where)
|
||||||
|
m_maincpu->set_input_line(INPUT_LINE_RESET, newval ? ASSERT_LINE : CLEAR_LINE);
|
||||||
|
if (newval)
|
||||||
|
m_ppi8255->reset();
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
/******************************************************************************
|
/******************************************************************************
|
||||||
@ -190,8 +194,8 @@ READ8_MEMBER(intel02_state::input_r)
|
|||||||
|
|
||||||
WRITE8_MEMBER(intel02_state::digit_w)
|
WRITE8_MEMBER(intel02_state::digit_w)
|
||||||
{
|
{
|
||||||
// d0-d7: digit segment data
|
// d0-d6: digit segment data, d7: N/C
|
||||||
m_digit_data = bitswap<8>(data,7,0,1,2,3,4,5,6);
|
m_digit_data = bitswap<7>(data,0,1,2,3,4,5,6);
|
||||||
update_display();
|
update_display();
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -246,10 +250,10 @@ void intel02_state::main_io(address_map &map)
|
|||||||
|
|
||||||
static INPUT_PORTS_START( intel02 )
|
static INPUT_PORTS_START( intel02 )
|
||||||
PORT_START("IN.0")
|
PORT_START("IN.0")
|
||||||
PORT_BIT(0x0007, IP_ACTIVE_HIGH, IPT_UNKNOWN)
|
PORT_BIT(0x0007, IP_ACTIVE_HIGH, IPT_UNUSED)
|
||||||
PORT_BIT(0x0008, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_NAME("View Position") PORT_CODE(KEYCODE_V)
|
PORT_BIT(0x0008, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_NAME("View Position") PORT_CODE(KEYCODE_V)
|
||||||
PORT_BIT(0x0010, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_NAME("Game Level") PORT_CODE(KEYCODE_L)
|
PORT_BIT(0x0010, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_NAME("Game Level") PORT_CODE(KEYCODE_L)
|
||||||
PORT_BIT(0x0020, IP_ACTIVE_HIGH, IPT_UNKNOWN)
|
PORT_BIT(0x0020, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_NAME("9") PORT_CODE(KEYCODE_9) PORT_CODE(KEYCODE_9_PAD)
|
||||||
PORT_BIT(0x0040, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_NAME("H8") PORT_CODE(KEYCODE_8) PORT_CODE(KEYCODE_8_PAD) PORT_CODE(KEYCODE_H)
|
PORT_BIT(0x0040, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_NAME("H8") PORT_CODE(KEYCODE_8) PORT_CODE(KEYCODE_8_PAD) PORT_CODE(KEYCODE_H)
|
||||||
PORT_BIT(0x0080, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_NAME("G7") PORT_CODE(KEYCODE_7) PORT_CODE(KEYCODE_7_PAD) PORT_CODE(KEYCODE_G)
|
PORT_BIT(0x0080, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_NAME("G7") PORT_CODE(KEYCODE_7) PORT_CODE(KEYCODE_7_PAD) PORT_CODE(KEYCODE_G)
|
||||||
PORT_BIT(0x0100, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_NAME("F6") PORT_CODE(KEYCODE_6) PORT_CODE(KEYCODE_6_PAD) PORT_CODE(KEYCODE_F)
|
PORT_BIT(0x0100, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_NAME("F6") PORT_CODE(KEYCODE_6) PORT_CODE(KEYCODE_6_PAD) PORT_CODE(KEYCODE_F)
|
||||||
@ -258,7 +262,7 @@ static INPUT_PORTS_START( intel02 )
|
|||||||
PORT_BIT(0x0800, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_NAME("C3") PORT_CODE(KEYCODE_3) PORT_CODE(KEYCODE_3_PAD) PORT_CODE(KEYCODE_C)
|
PORT_BIT(0x0800, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_NAME("C3") PORT_CODE(KEYCODE_3) PORT_CODE(KEYCODE_3_PAD) PORT_CODE(KEYCODE_C)
|
||||||
PORT_BIT(0x1000, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_NAME("B2") PORT_CODE(KEYCODE_2) PORT_CODE(KEYCODE_2_PAD) PORT_CODE(KEYCODE_B)
|
PORT_BIT(0x1000, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_NAME("B2") PORT_CODE(KEYCODE_2) PORT_CODE(KEYCODE_2_PAD) PORT_CODE(KEYCODE_B)
|
||||||
PORT_BIT(0x2000, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_NAME("A1") PORT_CODE(KEYCODE_1) PORT_CODE(KEYCODE_1_PAD) PORT_CODE(KEYCODE_A)
|
PORT_BIT(0x2000, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_NAME("A1") PORT_CODE(KEYCODE_1) PORT_CODE(KEYCODE_1_PAD) PORT_CODE(KEYCODE_A)
|
||||||
PORT_BIT(0x4000, IP_ACTIVE_HIGH, IPT_UNKNOWN)
|
PORT_BIT(0x4000, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_NAME("0") PORT_CODE(KEYCODE_0) PORT_CODE(KEYCODE_0_PAD)
|
||||||
|
|
||||||
PORT_START("IN.1")
|
PORT_START("IN.1")
|
||||||
PORT_BIT(0x01, IP_ACTIVE_HIGH, IPT_UNUSED)
|
PORT_BIT(0x01, IP_ACTIVE_HIGH, IPT_UNUSED)
|
||||||
@ -288,7 +292,7 @@ void intel02_state::intel02(machine_config &config)
|
|||||||
m_ppi8255->out_pb_callback().set(FUNC(intel02_state::digit_w));
|
m_ppi8255->out_pb_callback().set(FUNC(intel02_state::digit_w));
|
||||||
m_ppi8255->tri_pb_callback().set_constant(0);
|
m_ppi8255->tri_pb_callback().set_constant(0);
|
||||||
m_ppi8255->out_pc_callback().set(FUNC(intel02_state::control_w));
|
m_ppi8255->out_pc_callback().set(FUNC(intel02_state::control_w));
|
||||||
m_ppi8255->tri_pc_callback().set_constant(0);
|
m_ppi8255->tri_pc_callback().set_constant(0x80);
|
||||||
|
|
||||||
/* video hardware */
|
/* video hardware */
|
||||||
TIMER(config, m_delay_update).configure_generic(FUNC(intel02_state::delay_update));
|
TIMER(config, m_delay_update).configure_generic(FUNC(intel02_state::delay_update));
|
||||||
|
@ -1,10 +1,17 @@
|
|||||||
// license:GPL-2.0+
|
// license:GPL-2.0+
|
||||||
// copyright-holders:Peter Trauner, Wilbert Pol, hap
|
// copyright-holders:Peter Trauner, Wilbert Pol, hap
|
||||||
|
// thanks-to:Sean Riddle
|
||||||
/******************************************************************************
|
/******************************************************************************
|
||||||
|
|
||||||
Driver file to handle emulation of the Novag/Videomaster Chess Champion MK I
|
Driver file to handle emulation of the Novag/Videomaster Chess Champion MK I
|
||||||
Initial version by PeT mess@utanet.at 2000,2001.
|
Initial version by PeT mess@utanet.at 2000,2001.
|
||||||
|
|
||||||
|
TODO:
|
||||||
|
- verify cncchess beeper duration/frequency
|
||||||
|
- cncchess middle leds
|
||||||
|
|
||||||
|
*******************************************************************************
|
||||||
|
|
||||||
The MK I was a clone of Data Cash Systems's CompuChess (1977, one of the first
|
The MK I was a clone of Data Cash Systems's CompuChess (1977, one of the first
|
||||||
chess computers). The ROM is identical. DCS sued Novag Industries for copyright
|
chess computers). The ROM is identical. DCS sued Novag Industries for copyright
|
||||||
infringement and somehow didn't manage to win the case.
|
infringement and somehow didn't manage to win the case.
|
||||||
@ -43,16 +50,31 @@ MK I hardware description:
|
|||||||
- Hardware addressing is controlled by a HBF4001AE.
|
- Hardware addressing is controlled by a HBF4001AE.
|
||||||
- No speaker.
|
- No speaker.
|
||||||
|
|
||||||
|
*******************************************************************************
|
||||||
|
|
||||||
|
Conic Computer Chess (aka Master I in Germany) is also based on DCS CompuChess,
|
||||||
|
probably the 2nd edition. Conic have done a few changes, not enough to hide that
|
||||||
|
they 'borrowed' code from CompuChess. They also added a piezo circuit.
|
||||||
|
|
||||||
|
Fairchild 3850PK CPU @ 2MHz (LC circuit), 3853PK
|
||||||
|
2KB ROM (3216), 256 bytes RAM (2*2111A)
|
||||||
|
555, 4001, 4011 for display blinking and beeper
|
||||||
|
|
||||||
|
"bP" buttons are F, G, H (instead of A, B, C)
|
||||||
|
|
||||||
******************************************************************************/
|
******************************************************************************/
|
||||||
|
|
||||||
#include "emu.h"
|
#include "emu.h"
|
||||||
#include "cpu/f8/f8.h"
|
#include "cpu/f8/f8.h"
|
||||||
#include "machine/f3853.h"
|
#include "machine/f3853.h"
|
||||||
#include "machine/timer.h"
|
#include "machine/timer.h"
|
||||||
|
#include "sound/beep.h"
|
||||||
|
#include "speaker.h"
|
||||||
|
|
||||||
// internal artwork
|
// internal artwork
|
||||||
#include "cmpchess.lh" // clickable
|
#include "cmpchess.lh" // clickable
|
||||||
#include "mk1.lh" // clickable
|
#include "mk1.lh" // clickable
|
||||||
|
#include "cncchess.lh" // clickable
|
||||||
|
|
||||||
|
|
||||||
namespace {
|
namespace {
|
||||||
@ -63,6 +85,8 @@ public:
|
|||||||
mk1_state(const machine_config &mconfig, device_type type, const char *tag) :
|
mk1_state(const machine_config &mconfig, device_type type, const char *tag) :
|
||||||
driver_device(mconfig, type, tag),
|
driver_device(mconfig, type, tag),
|
||||||
m_maincpu(*this, "maincpu"),
|
m_maincpu(*this, "maincpu"),
|
||||||
|
m_beeper_off(*this, "beeper_off"),
|
||||||
|
m_beeper(*this, "beeper"),
|
||||||
m_keypad(*this, "LINE%u", 1U),
|
m_keypad(*this, "LINE%u", 1U),
|
||||||
m_delay_display(*this, "delay_display_%u", 0),
|
m_delay_display(*this, "delay_display_%u", 0),
|
||||||
m_out_digit(*this, "digit%u", 0U)
|
m_out_digit(*this, "digit%u", 0U)
|
||||||
@ -70,6 +94,7 @@ public:
|
|||||||
|
|
||||||
void cmpchess(machine_config &config);
|
void cmpchess(machine_config &config);
|
||||||
void mk1(machine_config &config);
|
void mk1(machine_config &config);
|
||||||
|
void cnc(machine_config &config);
|
||||||
|
|
||||||
DECLARE_INPUT_CHANGED_MEMBER(reset_switch);
|
DECLARE_INPUT_CHANGED_MEMBER(reset_switch);
|
||||||
|
|
||||||
@ -79,21 +104,32 @@ protected:
|
|||||||
private:
|
private:
|
||||||
// devices/pointers
|
// devices/pointers
|
||||||
required_device<cpu_device> m_maincpu;
|
required_device<cpu_device> m_maincpu;
|
||||||
|
optional_device<timer_device> m_beeper_off;
|
||||||
|
optional_device<beep_device> m_beeper;
|
||||||
required_ioport_array<4> m_keypad;
|
required_ioport_array<4> m_keypad;
|
||||||
required_device_array<timer_device, 4> m_delay_display;
|
required_device_array<timer_device, 4> m_delay_display;
|
||||||
output_finder<4> m_out_digit;
|
output_finder<4> m_out_digit;
|
||||||
|
|
||||||
void main_io(address_map &map);
|
|
||||||
void main_map(address_map &map);
|
void main_map(address_map &map);
|
||||||
|
void main_io(address_map &map);
|
||||||
|
void cnc_io(address_map &map);
|
||||||
|
|
||||||
|
TIMER_DEVICE_CALLBACK_MEMBER(beeper_off) { m_beeper->set_state(0); }
|
||||||
TIMER_DEVICE_CALLBACK_MEMBER(blink) { m_blink = !m_blink; update_display(); }
|
TIMER_DEVICE_CALLBACK_MEMBER(blink) { m_blink = !m_blink; update_display(); }
|
||||||
TIMER_DEVICE_CALLBACK_MEMBER(delay_display);
|
TIMER_DEVICE_CALLBACK_MEMBER(delay_display);
|
||||||
void update_display();
|
void update_display();
|
||||||
|
|
||||||
|
DECLARE_READ8_MEMBER(beeper_r);
|
||||||
|
DECLARE_WRITE8_MEMBER(input_w);
|
||||||
DECLARE_READ8_MEMBER(input_r);
|
DECLARE_READ8_MEMBER(input_r);
|
||||||
DECLARE_WRITE8_MEMBER(digit_select_w);
|
DECLARE_WRITE8_MEMBER(digit_select_w);
|
||||||
DECLARE_WRITE8_MEMBER(digit_data_w);
|
DECLARE_WRITE8_MEMBER(digit_data_w);
|
||||||
|
DECLARE_READ8_MEMBER(digit_data_r);
|
||||||
|
|
||||||
|
DECLARE_WRITE8_MEMBER(input_digit_select_w) { input_w(space, offset, data); digit_select_w(space, offset, data); }
|
||||||
|
DECLARE_WRITE8_MEMBER(input_digit_data_w) { input_w(space, offset, data); digit_data_w(space, offset, data); }
|
||||||
|
|
||||||
|
u8 m_inp_mux;
|
||||||
u8 m_digit_select;
|
u8 m_digit_select;
|
||||||
u8 m_digit_data;
|
u8 m_digit_data;
|
||||||
bool m_blink;
|
bool m_blink;
|
||||||
@ -105,11 +141,13 @@ void mk1_state::machine_start()
|
|||||||
m_out_digit.resolve();
|
m_out_digit.resolve();
|
||||||
|
|
||||||
// zerofill
|
// zerofill
|
||||||
|
m_inp_mux = 0;
|
||||||
m_digit_select = 0;
|
m_digit_select = 0;
|
||||||
m_digit_data = 0;
|
m_digit_data = 0;
|
||||||
m_blink = false;
|
m_blink = false;
|
||||||
|
|
||||||
// register for savestates
|
// register for savestates
|
||||||
|
save_item(NAME(m_inp_mux));
|
||||||
save_item(NAME(m_digit_select));
|
save_item(NAME(m_digit_select));
|
||||||
save_item(NAME(m_digit_data));
|
save_item(NAME(m_digit_data));
|
||||||
save_item(NAME(m_blink));
|
save_item(NAME(m_blink));
|
||||||
@ -161,13 +199,29 @@ void mk1_state::update_display()
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
// F3850 ports
|
// I/O handlers
|
||||||
|
|
||||||
|
READ8_MEMBER(mk1_state::beeper_r)
|
||||||
|
{
|
||||||
|
// cncchess: trigger beeper
|
||||||
|
if (!machine().side_effects_disabled() && m_beeper != nullptr)
|
||||||
|
{
|
||||||
|
m_beeper->set_state(1);
|
||||||
|
m_beeper_off->adjust(attotime::from_msec(50)); // guessed
|
||||||
|
}
|
||||||
|
|
||||||
|
return m_maincpu->space(AS_PROGRAM).read_byte(offset);
|
||||||
|
}
|
||||||
|
|
||||||
WRITE8_MEMBER(mk1_state::digit_data_w)
|
WRITE8_MEMBER(mk1_state::digit_data_w)
|
||||||
{
|
{
|
||||||
// digit segment data, and also input mux
|
// digit segment data
|
||||||
m_digit_data = data;
|
m_digit_data = data;
|
||||||
update_display();
|
}
|
||||||
|
|
||||||
|
READ8_MEMBER(mk1_state::digit_data_r)
|
||||||
|
{
|
||||||
|
return m_digit_data;
|
||||||
}
|
}
|
||||||
|
|
||||||
WRITE8_MEMBER(mk1_state::digit_select_w)
|
WRITE8_MEMBER(mk1_state::digit_select_w)
|
||||||
@ -182,18 +236,24 @@ WRITE8_MEMBER(mk1_state::digit_select_w)
|
|||||||
update_display();
|
update_display();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
WRITE8_MEMBER(mk1_state::input_w)
|
||||||
|
{
|
||||||
|
// input matrix is shared with either digit_data_w, or digit_select_w
|
||||||
|
m_inp_mux = data;
|
||||||
|
}
|
||||||
|
|
||||||
READ8_MEMBER(mk1_state::input_r)
|
READ8_MEMBER(mk1_state::input_r)
|
||||||
{
|
{
|
||||||
u8 data = m_digit_data;
|
u8 data = m_inp_mux;
|
||||||
|
|
||||||
// d0-d3: multiplexed inputs from d4-d7
|
// d0-d3: multiplexed inputs from d4-d7
|
||||||
for (int i = 0; i < 4; i++)
|
for (int i = 0; i < 4; i++)
|
||||||
if (m_digit_data & m_keypad[i]->read())
|
if (m_inp_mux & m_keypad[i]->read())
|
||||||
data |= 1 << i;
|
data |= 1 << i;
|
||||||
|
|
||||||
// d4-d7: multiplexed inputs from d0-d3
|
// d4-d7: multiplexed inputs from d0-d3
|
||||||
for (int i = 0; i < 4; i++)
|
for (int i = 0; i < 4; i++)
|
||||||
if (BIT(m_digit_data, i))
|
if (BIT(m_inp_mux, i))
|
||||||
data |= m_keypad[i]->read();
|
data |= m_keypad[i]->read();
|
||||||
|
|
||||||
return data;
|
return data;
|
||||||
@ -209,15 +269,23 @@ void mk1_state::main_map(address_map &map)
|
|||||||
{
|
{
|
||||||
map(0x0000, 0x07ff).rom();
|
map(0x0000, 0x07ff).rom();
|
||||||
map(0x1800, 0x18ff).ram();
|
map(0x1800, 0x18ff).ram();
|
||||||
|
map(0x8000, 0xffff).r(FUNC(mk1_state::beeper_r));
|
||||||
}
|
}
|
||||||
|
|
||||||
void mk1_state::main_io(address_map &map)
|
void mk1_state::main_io(address_map &map)
|
||||||
{
|
{
|
||||||
map(0x00, 0x00).rw(FUNC(mk1_state::input_r), FUNC(mk1_state::digit_data_w));
|
map(0x00, 0x00).rw(FUNC(mk1_state::input_r), FUNC(mk1_state::input_digit_data_w));
|
||||||
map(0x01, 0x01).w(FUNC(mk1_state::digit_select_w));
|
map(0x01, 0x01).w(FUNC(mk1_state::digit_select_w));
|
||||||
map(0x0c, 0x0f).rw("smi", FUNC(f3853_device::read), FUNC(f3853_device::write));
|
map(0x0c, 0x0f).rw("smi", FUNC(f3853_device::read), FUNC(f3853_device::write));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void mk1_state::cnc_io(address_map &map)
|
||||||
|
{
|
||||||
|
map(0x00, 0x00).rw(FUNC(mk1_state::digit_data_r), FUNC(mk1_state::digit_data_w));
|
||||||
|
map(0x01, 0x01).rw(FUNC(mk1_state::input_r), FUNC(mk1_state::input_digit_select_w));
|
||||||
|
map(0x0c, 0x0f).rw("smi", FUNC(f3853_device::read), FUNC(f3853_device::write));
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
/******************************************************************************
|
/******************************************************************************
|
||||||
@ -253,6 +321,35 @@ static INPUT_PORTS_START( cmpchess )
|
|||||||
PORT_BIT(0x01, IP_ACTIVE_HIGH, IPT_OTHER) PORT_CODE(KEYCODE_R) PORT_TOGGLE PORT_CHANGED_MEMBER(DEVICE_SELF, mk1_state, reset_switch, nullptr) PORT_NAME("Reset Switch") // L.S. switch on the MK I
|
PORT_BIT(0x01, IP_ACTIVE_HIGH, IPT_OTHER) PORT_CODE(KEYCODE_R) PORT_TOGGLE PORT_CHANGED_MEMBER(DEVICE_SELF, mk1_state, reset_switch, nullptr) PORT_NAME("Reset Switch") // L.S. switch on the MK I
|
||||||
INPUT_PORTS_END
|
INPUT_PORTS_END
|
||||||
|
|
||||||
|
static INPUT_PORTS_START( cncchess )
|
||||||
|
PORT_START("LINE1")
|
||||||
|
PORT_BIT(0x80, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_CODE(KEYCODE_1) PORT_CODE(KEYCODE_1_PAD) PORT_NAME("1 / Black Pawn")
|
||||||
|
PORT_BIT(0x40, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_CODE(KEYCODE_2) PORT_CODE(KEYCODE_2_PAD) PORT_NAME("2 / Black Rook")
|
||||||
|
PORT_BIT(0x20, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_CODE(KEYCODE_3) PORT_CODE(KEYCODE_3_PAD) PORT_NAME("3 / Black Knight")
|
||||||
|
PORT_BIT(0x10, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_CODE(KEYCODE_4) PORT_CODE(KEYCODE_4_PAD) PORT_NAME("4 / Black Bishop")
|
||||||
|
|
||||||
|
PORT_START("LINE2")
|
||||||
|
PORT_BIT(0x80, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_CODE(KEYCODE_5) PORT_CODE(KEYCODE_5_PAD) PORT_NAME("5 / Black Queen")
|
||||||
|
PORT_BIT(0x40, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_CODE(KEYCODE_6) PORT_CODE(KEYCODE_6_PAD) PORT_NAME("6 / Black King")
|
||||||
|
PORT_BIT(0x20, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_CODE(KEYCODE_7) PORT_CODE(KEYCODE_7_PAD) PORT_CODE(KEYCODE_S) PORT_NAME("7 / SP") // search piece (same as fp)
|
||||||
|
PORT_BIT(0x10, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_CODE(KEYCODE_8) PORT_CODE(KEYCODE_8_PAD) PORT_CODE(KEYCODE_I) PORT_NAME("8 / IP") // insert piece (same as ep)
|
||||||
|
|
||||||
|
PORT_START("LINE3")
|
||||||
|
PORT_BIT(0x80, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_CODE(KEYCODE_A) PORT_NAME("A / White Pawn")
|
||||||
|
PORT_BIT(0x40, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_CODE(KEYCODE_B) PORT_NAME("B / White Rook")
|
||||||
|
PORT_BIT(0x20, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_CODE(KEYCODE_C) PORT_NAME("C / White Knight")
|
||||||
|
PORT_BIT(0x10, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_CODE(KEYCODE_D) PORT_NAME("D / White Bishop")
|
||||||
|
|
||||||
|
PORT_START("LINE4")
|
||||||
|
PORT_BIT(0x80, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_CODE(KEYCODE_E) PORT_NAME("E / White Queen")
|
||||||
|
PORT_BIT(0x40, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_CODE(KEYCODE_F) PORT_NAME("F / White King")
|
||||||
|
PORT_BIT(0x20, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_CODE(KEYCODE_G) PORT_CODE(KEYCODE_M) PORT_NAME("G / MD") // more data
|
||||||
|
PORT_BIT(0x10, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_CODE(KEYCODE_H) PORT_CODE(KEYCODE_ENTER) PORT_CODE(KEYCODE_ENTER_PAD) PORT_NAME("H / GO")
|
||||||
|
|
||||||
|
PORT_START("RESET")
|
||||||
|
PORT_BIT(0x01, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_CODE(KEYCODE_R) PORT_CHANGED_MEMBER(DEVICE_SELF, mk1_state, reset_switch, nullptr) PORT_NAME("Reset")
|
||||||
|
INPUT_PORTS_END
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
/******************************************************************************
|
/******************************************************************************
|
||||||
@ -289,6 +386,22 @@ void mk1_state::mk1(machine_config &config)
|
|||||||
config.set_default_layout(layout_mk1);
|
config.set_default_layout(layout_mk1);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void mk1_state::cnc(machine_config &config)
|
||||||
|
{
|
||||||
|
mk1(config);
|
||||||
|
|
||||||
|
/* basic machine hardware */
|
||||||
|
m_maincpu->set_addrmap(AS_IO, &mk1_state::cnc_io);
|
||||||
|
|
||||||
|
config.set_default_layout(layout_cncchess);
|
||||||
|
|
||||||
|
/* sound hardware */
|
||||||
|
SPEAKER(config, "speaker").front_center();
|
||||||
|
BEEP(config, m_beeper, 2000); // guessed
|
||||||
|
m_beeper->add_route(ALL_OUTPUTS, "speaker", 0.25);
|
||||||
|
TIMER(config, "beeper_off").configure_generic(FUNC(mk1_state::beeper_off));
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
/******************************************************************************
|
/******************************************************************************
|
||||||
@ -305,6 +418,12 @@ ROM_START( ccmk1 )
|
|||||||
ROM_LOAD("82c210-1", 0x0000, 0x0800, CRC(278f7bf3) SHA1(b384c95ba691d52dfdddd35987a71e9746a46170) )
|
ROM_LOAD("82c210-1", 0x0000, 0x0800, CRC(278f7bf3) SHA1(b384c95ba691d52dfdddd35987a71e9746a46170) )
|
||||||
ROM_END
|
ROM_END
|
||||||
|
|
||||||
|
|
||||||
|
ROM_START( cncchess )
|
||||||
|
ROM_REGION( 0x0800, "maincpu", 0 )
|
||||||
|
ROM_LOAD("c48170.u1", 0x0000, 0x0800, CRC(5beace32) SHA1(9df924037614831a86b73eb3a16bbc80c63257a2) ) // 2316B
|
||||||
|
ROM_END
|
||||||
|
|
||||||
} // anonymous namespace
|
} // anonymous namespace
|
||||||
|
|
||||||
|
|
||||||
@ -316,3 +435,5 @@ ROM_END
|
|||||||
// YEAR NAME PARENT CMP MACHINE INPUT STATE INIT COMPANY, FULLNAME, FLAGS
|
// YEAR NAME PARENT CMP MACHINE INPUT STATE INIT COMPANY, FULLNAME, FLAGS
|
||||||
CONS( 1977, cmpchess, 0, 0, cmpchess, cmpchess, mk1_state, empty_init, "Data Cash Systems", "CompuChess", MACHINE_NO_SOUND_HW | MACHINE_SUPPORTS_SAVE | MACHINE_CLICKABLE_ARTWORK )
|
CONS( 1977, cmpchess, 0, 0, cmpchess, cmpchess, mk1_state, empty_init, "Data Cash Systems", "CompuChess", MACHINE_NO_SOUND_HW | MACHINE_SUPPORTS_SAVE | MACHINE_CLICKABLE_ARTWORK )
|
||||||
CONS( 1978, ccmk1, cmpchess, 0, mk1, cmpchess, mk1_state, empty_init, "Novag", "Chess Champion: MK I", MACHINE_NO_SOUND_HW | MACHINE_SUPPORTS_SAVE | MACHINE_CLICKABLE_ARTWORK )
|
CONS( 1978, ccmk1, cmpchess, 0, mk1, cmpchess, mk1_state, empty_init, "Novag", "Chess Champion: MK I", MACHINE_NO_SOUND_HW | MACHINE_SUPPORTS_SAVE | MACHINE_CLICKABLE_ARTWORK )
|
||||||
|
|
||||||
|
CONS( 1979, cncchess, 0, 0, cnc, cncchess, mk1_state, empty_init, "Conic", "Computer Chess (Conic)", MACHINE_SUPPORTS_SAVE | MACHINE_CLICKABLE_ARTWORK )
|
||||||
|
277
src/mame/layout/cncchess.lay
Normal file
277
src/mame/layout/cncchess.lay
Normal file
@ -0,0 +1,277 @@
|
|||||||
|
<?xml version="1.0"?>
|
||||||
|
<mamelayout version="2">
|
||||||
|
|
||||||
|
<!-- define elements -->
|
||||||
|
|
||||||
|
<element name="blackb"><rect><color red="0" green="0" blue="0" /></rect></element>
|
||||||
|
<element name="disk_blackb"><disk><color red="0" green="0" blue="0" /></disk></element>
|
||||||
|
<element name="black"><rect><color red="0.25" green="0.25" blue="0.25" /></rect></element>
|
||||||
|
<element name="disk_black"><disk><color red="0.25" green="0.25" blue="0.25" /></disk></element>
|
||||||
|
<element name="white"><rect><color red="0.75" green="0.75" blue="0.75" /></rect></element>
|
||||||
|
<element name="orange"><rect><color red="0.75" green="0.35" blue="0.05" /></rect></element>
|
||||||
|
<element name="red"><rect><color red="1.0" green="0.1" blue="0.15" /></rect></element>
|
||||||
|
|
||||||
|
<element name="digit" defstate="0">
|
||||||
|
<led7seg><color red="1.0" green="0.1" blue="0.15" /></led7seg>
|
||||||
|
</element>
|
||||||
|
|
||||||
|
<element name="led" defstate="0">
|
||||||
|
<disk state="1"><color red="1.0" green="0.1" blue="0.15" /></disk>
|
||||||
|
<disk state="0"><color red="0.15" green="0.02" blue="0.03" /></disk>
|
||||||
|
</element>
|
||||||
|
|
||||||
|
<element name="hl" defstate="0">
|
||||||
|
<text string=" ">
|
||||||
|
<bounds x="0.0" y="0.0" width="1.0" height="1.0" />
|
||||||
|
<color red="0.0" green="0.0" blue="0.0" />
|
||||||
|
</text>
|
||||||
|
<rect state="1">
|
||||||
|
<bounds x="0.0" y="0.0" width="1.0" height="1.0" />
|
||||||
|
<color red="0.0" green="0.0" blue="0.0" />
|
||||||
|
</rect>
|
||||||
|
</element>
|
||||||
|
|
||||||
|
<element name="text_br">
|
||||||
|
<rect><color red="0.75" green="0.35" blue="0.05" /></rect>
|
||||||
|
<text string="RESET"><color red="0.05" green="0.05" blue="0.05" /></text>
|
||||||
|
</element>
|
||||||
|
|
||||||
|
<element name="text_b01a">
|
||||||
|
<rect><color red="0.25" green="0.25" blue="0.25" /></rect>
|
||||||
|
<text string="A"><color red="0.85" green="0.85" blue="0.85" /></text>
|
||||||
|
</element>
|
||||||
|
<element name="text_b01b">
|
||||||
|
<rect><color red="0.25" green="0.25" blue="0.25" /></rect>
|
||||||
|
<text string="[P]"><color red="0.85" green="0.85" blue="0.85" /></text>
|
||||||
|
</element>
|
||||||
|
<element name="text_b02a">
|
||||||
|
<rect><color red="0.25" green="0.25" blue="0.25" /></rect>
|
||||||
|
<text string="B"><color red="0.85" green="0.85" blue="0.85" /></text>
|
||||||
|
</element>
|
||||||
|
<element name="text_b02b">
|
||||||
|
<rect><color red="0.25" green="0.25" blue="0.25" /></rect>
|
||||||
|
<text string="[R]"><color red="0.85" green="0.85" blue="0.85" /></text>
|
||||||
|
</element>
|
||||||
|
<element name="text_b03a">
|
||||||
|
<rect><color red="0.25" green="0.25" blue="0.25" /></rect>
|
||||||
|
<text string="C"><color red="0.85" green="0.85" blue="0.85" /></text>
|
||||||
|
</element>
|
||||||
|
<element name="text_b03b">
|
||||||
|
<rect><color red="0.25" green="0.25" blue="0.25" /></rect>
|
||||||
|
<text string="[N]"><color red="0.85" green="0.85" blue="0.85" /></text>
|
||||||
|
</element>
|
||||||
|
<element name="text_b04a">
|
||||||
|
<rect><color red="0.25" green="0.25" blue="0.25" /></rect>
|
||||||
|
<text string="D"><color red="0.85" green="0.85" blue="0.85" /></text>
|
||||||
|
</element>
|
||||||
|
<element name="text_b04b">
|
||||||
|
<rect><color red="0.25" green="0.25" blue="0.25" /></rect>
|
||||||
|
<text string="[B]"><color red="0.85" green="0.85" blue="0.85" /></text>
|
||||||
|
</element>
|
||||||
|
<element name="text_b05a">
|
||||||
|
<rect><color red="0.25" green="0.25" blue="0.25" /></rect>
|
||||||
|
<text string="E"><color red="0.85" green="0.85" blue="0.85" /></text>
|
||||||
|
</element>
|
||||||
|
<element name="text_b05b">
|
||||||
|
<rect><color red="0.25" green="0.25" blue="0.25" /></rect>
|
||||||
|
<text string="[Q]"><color red="0.85" green="0.85" blue="0.85" /></text>
|
||||||
|
</element>
|
||||||
|
<element name="text_b06a">
|
||||||
|
<rect><color red="0.25" green="0.25" blue="0.25" /></rect>
|
||||||
|
<text string="F"><color red="0.85" green="0.85" blue="0.85" /></text>
|
||||||
|
</element>
|
||||||
|
<element name="text_b06b">
|
||||||
|
<rect><color red="0.25" green="0.25" blue="0.25" /></rect>
|
||||||
|
<text string="[K]"><color red="0.85" green="0.85" blue="0.85" /></text>
|
||||||
|
</element>
|
||||||
|
<element name="text_b07a">
|
||||||
|
<rect><color red="0.25" green="0.25" blue="0.25" /></rect>
|
||||||
|
<text string="G"><color red="0.85" green="0.85" blue="0.85" /></text>
|
||||||
|
</element>
|
||||||
|
<element name="text_b07b">
|
||||||
|
<rect><color red="0.25" green="0.25" blue="0.25" /></rect>
|
||||||
|
<text string="MD"><color red="0.85" green="0.85" blue="0.85" /></text>
|
||||||
|
</element>
|
||||||
|
<element name="text_b08a">
|
||||||
|
<rect><color red="0.25" green="0.25" blue="0.25" /></rect>
|
||||||
|
<text string="H"><color red="0.85" green="0.85" blue="0.85" /></text>
|
||||||
|
</element>
|
||||||
|
<element name="text_b08b">
|
||||||
|
<rect><color red="0.25" green="0.25" blue="0.25" /></rect>
|
||||||
|
<text string="GO"><color red="0.85" green="0.85" blue="0.85" /></text>
|
||||||
|
</element>
|
||||||
|
|
||||||
|
<element name="text_b09a">
|
||||||
|
<rect><color red="0.75" green="0.75" blue="0.75" /></rect>
|
||||||
|
<text string="1"><color red="0.05" green="0.05" blue="0.05" /></text>
|
||||||
|
</element>
|
||||||
|
<element name="text_b09b">
|
||||||
|
<rect><color red="0.75" green="0.75" blue="0.75" /></rect>
|
||||||
|
<text string="[P]"><color red="0.05" green="0.05" blue="0.05" /></text>
|
||||||
|
</element>
|
||||||
|
<element name="text_b10a">
|
||||||
|
<rect><color red="0.75" green="0.75" blue="0.75" /></rect>
|
||||||
|
<text string="2"><color red="0.05" green="0.05" blue="0.05" /></text>
|
||||||
|
</element>
|
||||||
|
<element name="text_b10b">
|
||||||
|
<rect><color red="0.75" green="0.75" blue="0.75" /></rect>
|
||||||
|
<text string="[R]"><color red="0.05" green="0.05" blue="0.05" /></text>
|
||||||
|
</element>
|
||||||
|
<element name="text_b11a">
|
||||||
|
<rect><color red="0.75" green="0.75" blue="0.75" /></rect>
|
||||||
|
<text string="3"><color red="0.05" green="0.05" blue="0.05" /></text>
|
||||||
|
</element>
|
||||||
|
<element name="text_b11b">
|
||||||
|
<rect><color red="0.75" green="0.75" blue="0.75" /></rect>
|
||||||
|
<text string="[N]"><color red="0.05" green="0.05" blue="0.05" /></text>
|
||||||
|
</element>
|
||||||
|
<element name="text_b12a">
|
||||||
|
<rect><color red="0.75" green="0.75" blue="0.75" /></rect>
|
||||||
|
<text string="4"><color red="0.05" green="0.05" blue="0.05" /></text>
|
||||||
|
</element>
|
||||||
|
<element name="text_b12b">
|
||||||
|
<rect><color red="0.75" green="0.75" blue="0.75" /></rect>
|
||||||
|
<text string="[B]"><color red="0.05" green="0.05" blue="0.05" /></text>
|
||||||
|
</element>
|
||||||
|
<element name="text_b13a">
|
||||||
|
<rect><color red="0.75" green="0.75" blue="0.75" /></rect>
|
||||||
|
<text string="5"><color red="0.05" green="0.05" blue="0.05" /></text>
|
||||||
|
</element>
|
||||||
|
<element name="text_b13b">
|
||||||
|
<rect><color red="0.75" green="0.75" blue="0.75" /></rect>
|
||||||
|
<text string="[Q]"><color red="0.05" green="0.05" blue="0.05" /></text>
|
||||||
|
</element>
|
||||||
|
<element name="text_b14a">
|
||||||
|
<rect><color red="0.75" green="0.75" blue="0.75" /></rect>
|
||||||
|
<text string="6"><color red="0.05" green="0.05" blue="0.05" /></text>
|
||||||
|
</element>
|
||||||
|
<element name="text_b14b">
|
||||||
|
<rect><color red="0.75" green="0.75" blue="0.75" /></rect>
|
||||||
|
<text string="[K]"><color red="0.05" green="0.05" blue="0.05" /></text>
|
||||||
|
</element>
|
||||||
|
<element name="text_b15a">
|
||||||
|
<rect><color red="0.75" green="0.75" blue="0.75" /></rect>
|
||||||
|
<text string="7"><color red="0.05" green="0.05" blue="0.05" /></text>
|
||||||
|
</element>
|
||||||
|
<element name="text_b15b">
|
||||||
|
<rect><color red="0.75" green="0.75" blue="0.75" /></rect>
|
||||||
|
<text string="SP"><color red="0.05" green="0.05" blue="0.05" /></text>
|
||||||
|
</element>
|
||||||
|
<element name="text_b16a">
|
||||||
|
<rect><color red="0.75" green="0.75" blue="0.75" /></rect>
|
||||||
|
<text string="8"><color red="0.05" green="0.05" blue="0.05" /></text>
|
||||||
|
</element>
|
||||||
|
<element name="text_b16b">
|
||||||
|
<rect><color red="0.75" green="0.75" blue="0.75" /></rect>
|
||||||
|
<text string="IP"><color red="0.05" green="0.05" blue="0.05" /></text>
|
||||||
|
</element>
|
||||||
|
|
||||||
|
|
||||||
|
<!-- build screen -->
|
||||||
|
|
||||||
|
<view name="Internal Layout">
|
||||||
|
<bounds left="8.8" right="55.3" top="20" bottom="42.5" />
|
||||||
|
|
||||||
|
<!-- outer part, display -->
|
||||||
|
|
||||||
|
<bezel element="black"><bounds x="8.7" y="22" width="46.7" height="0.7" /></bezel>
|
||||||
|
<bezel element="black"><bounds x="8.7" y="23.4" width="46.7" height="0.7" /></bezel>
|
||||||
|
<bezel element="black"><bounds x="8.7" y="24.8" width="46.7" height="0.7" /></bezel>
|
||||||
|
<bezel element="blackb"><bounds x="20" y="20" width="28" height="20" /></bezel>
|
||||||
|
|
||||||
|
<bezel element="black"><bounds x="19.3" y="27.3" width="32.0" height="20" /></bezel>
|
||||||
|
<bezel element="black"><bounds x="17.3" y="29.3" width="36.0" height="20" /></bezel>
|
||||||
|
<bezel element="blackb"><bounds x="18" y="28" width="34.6" height="20" /></bezel>
|
||||||
|
<bezel element="disk_black"><bounds x="17.3" y="27.3" width="4" height="4" /></bezel>
|
||||||
|
<bezel element="disk_blackb"><bounds x="18" y="28" width="2.6" height="2.6" /></bezel>
|
||||||
|
<bezel element="disk_black"><bounds x="49.3" y="27.3" width="4" height="4" /></bezel>
|
||||||
|
<bezel element="disk_blackb"><bounds x="50" y="28" width="2.6" height="2.6" /></bezel>
|
||||||
|
<bezel element="blackb"><bounds x="19.3" y="28" width="32.0" height="20" /></bezel>
|
||||||
|
<bezel element="blackb"><bounds x="18" y="29.3" width="34.6" height="20" /></bezel>
|
||||||
|
<bezel element="blackb"><bounds x="15" y="42.6" width="50" height="20" /></bezel>
|
||||||
|
|
||||||
|
<bezel element="blackb"><bounds x="25.3" y="22" width="20" height="6.5" /></bezel>
|
||||||
|
<bezel name="digit0" element="digit"><bounds x="28.3" y="23" width="3" height="4.5" /></bezel>
|
||||||
|
<bezel name="digit1" element="digit"><bounds x="31.3" y="23" width="3" height="4.5" /></bezel>
|
||||||
|
<bezel name="digit2" element="digit"><bounds x="36.3" y="23" width="3" height="4.5" /></bezel>
|
||||||
|
<bezel name="digit3" element="digit"><bounds x="39.3" y="23" width="3" height="4.5" /></bezel>
|
||||||
|
<bezel name="ledx" element="led"><bounds x="35.15" y="24.0" width="0.45" height="0.45" /></bezel>
|
||||||
|
<bezel name="ledx" element="led"><bounds x="35.0" y="26.05" width="0.45" height="0.45" /></bezel>
|
||||||
|
<bezel element="red"><bounds x="25.3" y="22" width="20" height="6.5" /><color alpha="0.15" /></bezel>
|
||||||
|
|
||||||
|
<!-- button panel -->
|
||||||
|
|
||||||
|
<bezel element="black"><bounds x="20" y="30" width="2.6" height="4.5" /></bezel>
|
||||||
|
<bezel element="black"><bounds x="24" y="30" width="2.6" height="4.5" /></bezel>
|
||||||
|
<bezel element="black"><bounds x="28" y="30" width="2.6" height="4.5" /></bezel>
|
||||||
|
<bezel element="black"><bounds x="32" y="30" width="2.6" height="4.5" /></bezel>
|
||||||
|
<bezel element="black"><bounds x="36" y="30" width="2.6" height="4.5" /></bezel>
|
||||||
|
<bezel element="black"><bounds x="40" y="30" width="2.6" height="4.5" /></bezel>
|
||||||
|
<bezel element="black"><bounds x="44" y="30" width="2.6" height="4.5" /></bezel>
|
||||||
|
<bezel element="black"><bounds x="48" y="30" width="2.6" height="4.5" /></bezel>
|
||||||
|
<bezel element="white"><bounds x="20" y="36.2" width="2.6" height="4.5" /></bezel>
|
||||||
|
<bezel element="white"><bounds x="24" y="36.2" width="2.6" height="4.5" /></bezel>
|
||||||
|
<bezel element="white"><bounds x="28" y="36.2" width="2.6" height="4.5" /></bezel>
|
||||||
|
<bezel element="white"><bounds x="32" y="36.2" width="2.6" height="4.5" /></bezel>
|
||||||
|
<bezel element="white"><bounds x="36" y="36.2" width="2.6" height="4.5" /></bezel>
|
||||||
|
<bezel element="white"><bounds x="40" y="36.2" width="2.6" height="4.5" /></bezel>
|
||||||
|
<bezel element="white"><bounds x="44" y="36.2" width="2.6" height="4.5" /></bezel>
|
||||||
|
<bezel element="white"><bounds x="48" y="36.2" width="2.6" height="4.5" /></bezel>
|
||||||
|
|
||||||
|
<bezel element="text_b01a"><bounds x="20.10" y="30.4" width="2.4" height="1.2" /></bezel>
|
||||||
|
<bezel element="text_b01b"><bounds x="20.15" y="32.0" width="2.4" height="1.9" /></bezel>
|
||||||
|
<bezel element="text_b02a"><bounds x="24.10" y="30.4" width="2.4" height="1.2" /></bezel>
|
||||||
|
<bezel element="text_b02b"><bounds x="24.15" y="32.0" width="2.4" height="1.9" /></bezel>
|
||||||
|
<bezel element="text_b03a"><bounds x="28.10" y="30.4" width="2.4" height="1.2" /></bezel>
|
||||||
|
<bezel element="text_b03b"><bounds x="28.15" y="32.0" width="2.4" height="1.9" /></bezel>
|
||||||
|
<bezel element="text_b04a"><bounds x="32.10" y="30.4" width="2.4" height="1.2" /></bezel>
|
||||||
|
<bezel element="text_b04b"><bounds x="32.15" y="32.0" width="2.4" height="1.9" /></bezel>
|
||||||
|
<bezel element="text_b05a"><bounds x="36.10" y="30.4" width="2.4" height="1.2" /></bezel>
|
||||||
|
<bezel element="text_b05b"><bounds x="36.15" y="32.0" width="2.4" height="1.9" /></bezel>
|
||||||
|
<bezel element="text_b06a"><bounds x="40.10" y="30.4" width="2.4" height="1.2" /></bezel>
|
||||||
|
<bezel element="text_b06b"><bounds x="40.15" y="32.0" width="2.4" height="1.9" /></bezel>
|
||||||
|
<bezel element="text_b07a"><bounds x="44.10" y="30.4" width="2.4" height="1.2" /></bezel>
|
||||||
|
<bezel element="text_b07b"><bounds x="44.15" y="32.0" width="2.4" height="1.9" /></bezel>
|
||||||
|
<bezel element="text_b08a"><bounds x="48.10" y="30.4" width="2.4" height="1.2" /></bezel>
|
||||||
|
<bezel element="text_b08b"><bounds x="48.15" y="32.0" width="2.4" height="1.9" /></bezel>
|
||||||
|
|
||||||
|
<bezel element="text_b09a"><bounds x="20.10" y="36.6" width="2.4" height="1.2" /></bezel>
|
||||||
|
<bezel element="text_b09b"><bounds x="20.15" y="38.2" width="2.4" height="1.9" /></bezel>
|
||||||
|
<bezel element="text_b10a"><bounds x="24.10" y="36.6" width="2.4" height="1.2" /></bezel>
|
||||||
|
<bezel element="text_b10b"><bounds x="24.15" y="38.2" width="2.4" height="1.9" /></bezel>
|
||||||
|
<bezel element="text_b11a"><bounds x="28.10" y="36.6" width="2.4" height="1.2" /></bezel>
|
||||||
|
<bezel element="text_b11b"><bounds x="28.15" y="38.2" width="2.4" height="1.9" /></bezel>
|
||||||
|
<bezel element="text_b12a"><bounds x="32.10" y="36.6" width="2.4" height="1.2" /></bezel>
|
||||||
|
<bezel element="text_b12b"><bounds x="32.15" y="38.2" width="2.4" height="1.9" /></bezel>
|
||||||
|
<bezel element="text_b13a"><bounds x="36.10" y="36.6" width="2.4" height="1.2" /></bezel>
|
||||||
|
<bezel element="text_b13b"><bounds x="36.15" y="38.2" width="2.4" height="1.9" /></bezel>
|
||||||
|
<bezel element="text_b14a"><bounds x="40.10" y="36.6" width="2.4" height="1.2" /></bezel>
|
||||||
|
<bezel element="text_b14b"><bounds x="40.15" y="38.2" width="2.4" height="1.9" /></bezel>
|
||||||
|
<bezel element="text_b15a"><bounds x="44.10" y="36.6" width="2.4" height="1.2" /></bezel>
|
||||||
|
<bezel element="text_b15b"><bounds x="44.15" y="38.2" width="2.4" height="1.9" /></bezel>
|
||||||
|
<bezel element="text_b16a"><bounds x="48.10" y="36.6" width="2.4" height="1.2" /></bezel>
|
||||||
|
<bezel element="text_b16b"><bounds x="48.15" y="38.2" width="2.4" height="1.9" /></bezel>
|
||||||
|
|
||||||
|
<bezel element="hl" inputtag="LINE3" inputmask="0x80"><bounds x="20" y="30" width="2.6" height="4.5" /><color alpha="0.25" /></bezel>
|
||||||
|
<bezel element="hl" inputtag="LINE3" inputmask="0x40"><bounds x="24" y="30" width="2.6" height="4.5" /><color alpha="0.25" /></bezel>
|
||||||
|
<bezel element="hl" inputtag="LINE3" inputmask="0x20"><bounds x="28" y="30" width="2.6" height="4.5" /><color alpha="0.25" /></bezel>
|
||||||
|
<bezel element="hl" inputtag="LINE3" inputmask="0x10"><bounds x="32" y="30" width="2.6" height="4.5" /><color alpha="0.25" /></bezel>
|
||||||
|
<bezel element="hl" inputtag="LINE4" inputmask="0x80"><bounds x="36" y="30" width="2.6" height="4.5" /><color alpha="0.25" /></bezel>
|
||||||
|
<bezel element="hl" inputtag="LINE4" inputmask="0x40"><bounds x="40" y="30" width="2.6" height="4.5" /><color alpha="0.25" /></bezel>
|
||||||
|
<bezel element="hl" inputtag="LINE4" inputmask="0x20"><bounds x="44" y="30" width="2.6" height="4.5" /><color alpha="0.25" /></bezel>
|
||||||
|
<bezel element="hl" inputtag="LINE4" inputmask="0x10"><bounds x="48" y="30" width="2.6" height="4.5" /><color alpha="0.25" /></bezel>
|
||||||
|
<bezel element="hl" inputtag="LINE1" inputmask="0x80"><bounds x="20" y="36.2" width="2.6" height="4.5" /><color alpha="0.25" /></bezel>
|
||||||
|
<bezel element="hl" inputtag="LINE1" inputmask="0x40"><bounds x="24" y="36.2" width="2.6" height="4.5" /><color alpha="0.25" /></bezel>
|
||||||
|
<bezel element="hl" inputtag="LINE1" inputmask="0x20"><bounds x="28" y="36.2" width="2.6" height="4.5" /><color alpha="0.25" /></bezel>
|
||||||
|
<bezel element="hl" inputtag="LINE1" inputmask="0x10"><bounds x="32" y="36.2" width="2.6" height="4.5" /><color alpha="0.25" /></bezel>
|
||||||
|
<bezel element="hl" inputtag="LINE2" inputmask="0x80"><bounds x="36" y="36.2" width="2.6" height="4.5" /><color alpha="0.25" /></bezel>
|
||||||
|
<bezel element="hl" inputtag="LINE2" inputmask="0x40"><bounds x="40" y="36.2" width="2.6" height="4.5" /><color alpha="0.25" /></bezel>
|
||||||
|
<bezel element="hl" inputtag="LINE2" inputmask="0x20"><bounds x="44" y="36.2" width="2.6" height="4.5" /><color alpha="0.25" /></bezel>
|
||||||
|
<bezel element="hl" inputtag="LINE2" inputmask="0x10"><bounds x="48" y="36.2" width="2.6" height="4.5" /><color alpha="0.25" /></bezel>
|
||||||
|
|
||||||
|
<bezel element="orange"><bounds x="10.8" y="37.15" width="4.5" height="2.6" /></bezel>
|
||||||
|
<bezel element="text_br"><bounds x="10.9" y="37.6" width="4.3" height="1.5" /></bezel>
|
||||||
|
<bezel element="hl" inputtag="RESET" inputmask="0x01"><bounds x="10.8" y="37.15" width="4.5" height="2.6" /><color alpha="0.25" /></bezel>
|
||||||
|
|
||||||
|
</view>
|
||||||
|
</mamelayout>
|
@ -99,8 +99,8 @@
|
|||||||
<bezel element="button" inputtag="IN.0" inputmask="0x0100"><bounds x="21.57" y="26.7" width="3" height="2.5" /></bezel>
|
<bezel element="button" inputtag="IN.0" inputmask="0x0100"><bounds x="21.57" y="26.7" width="3" height="2.5" /></bezel>
|
||||||
<bezel element="button" inputtag="IN.0" inputmask="0x0080"><bounds x="25.93" y="26.7" width="3" height="2.5" /></bezel>
|
<bezel element="button" inputtag="IN.0" inputmask="0x0080"><bounds x="25.93" y="26.7" width="3" height="2.5" /></bezel>
|
||||||
<bezel element="button" inputtag="IN.0" inputmask="0x0040"><bounds x="30.27" y="26.7" width="3" height="2.5" /></bezel>
|
<bezel element="button" inputtag="IN.0" inputmask="0x0040"><bounds x="30.27" y="26.7" width="3" height="2.5" /></bezel>
|
||||||
<bezel element="button" inputtag="IN.x" inputmask="0x01"><bounds x="34.64" y="26.7" width="3" height="2.5" /></bezel>
|
<bezel element="button" inputtag="IN.0" inputmask="0x0020"><bounds x="34.64" y="26.7" width="3" height="2.5" /></bezel>
|
||||||
<bezel element="button" inputtag="IN.x" inputmask="0x01"><bounds x="39" y="26.7" width="3" height="2.5" /></bezel>
|
<bezel element="button" inputtag="IN.0" inputmask="0x4000"><bounds x="39" y="26.7" width="3" height="2.5" /></bezel>
|
||||||
|
|
||||||
</view>
|
</view>
|
||||||
</mamelayout>
|
</mamelayout>
|
||||||
|
@ -21743,6 +21743,7 @@ mjsister // (c) 1986 Toaplan
|
|||||||
@source:mk1.cpp
|
@source:mk1.cpp
|
||||||
ccmk1 // Chess Champion MK I
|
ccmk1 // Chess Champion MK I
|
||||||
cmpchess
|
cmpchess
|
||||||
|
cncchess
|
||||||
|
|
||||||
@source:mk14.cpp
|
@source:mk14.cpp
|
||||||
mk14 //
|
mk14 //
|
||||||
|
Loading…
Reference in New Issue
Block a user