mirror of
https://github.com/holub/mame
synced 2025-04-16 21:44:32 +03:00
mephisto_glasgow.cpp: split driver file into glasgow/amsterdam
This commit is contained in:
parent
6cea28b066
commit
ba646af6d8
@ -2534,6 +2534,7 @@ files {
|
|||||||
createMESSProjects(_target, _subtarget, "hegener")
|
createMESSProjects(_target, _subtarget, "hegener")
|
||||||
files {
|
files {
|
||||||
MAME_DIR .. "src/mame/drivers/mephisto_academy.cpp",
|
MAME_DIR .. "src/mame/drivers/mephisto_academy.cpp",
|
||||||
|
MAME_DIR .. "src/mame/drivers/mephisto_amsterdam.cpp",
|
||||||
MAME_DIR .. "src/mame/drivers/mephisto_berlin.cpp",
|
MAME_DIR .. "src/mame/drivers/mephisto_berlin.cpp",
|
||||||
MAME_DIR .. "src/mame/drivers/mephisto_brikett.cpp",
|
MAME_DIR .. "src/mame/drivers/mephisto_brikett.cpp",
|
||||||
MAME_DIR .. "src/mame/drivers/mephisto_glasgow.cpp",
|
MAME_DIR .. "src/mame/drivers/mephisto_glasgow.cpp",
|
||||||
|
263
src/mame/drivers/mephisto_amsterdam.cpp
Normal file
263
src/mame/drivers/mephisto_amsterdam.cpp
Normal file
@ -0,0 +1,263 @@
|
|||||||
|
// license:BSD-3-Clause
|
||||||
|
// copyright-holders:Dirk Verwiebe, Cowering, hap
|
||||||
|
/******************************************************************************
|
||||||
|
|
||||||
|
Mephisto Amsterdam (2-ROM hardware version)
|
||||||
|
|
||||||
|
The base hardware components are the same as Glasgow, but the 32-bit versions
|
||||||
|
have more RAM and a faster CPU.
|
||||||
|
|
||||||
|
TODO:
|
||||||
|
- waitstates, same as mephisto_glasgow.cpp
|
||||||
|
|
||||||
|
******************************************************************************/
|
||||||
|
|
||||||
|
#include "emu.h"
|
||||||
|
|
||||||
|
#include "cpu/m68000/m68000.h"
|
||||||
|
#include "machine/mmboard.h"
|
||||||
|
#include "sound/dac.h"
|
||||||
|
#include "video/mmdisplay1.h"
|
||||||
|
|
||||||
|
#include "speaker.h"
|
||||||
|
|
||||||
|
// internal artwork
|
||||||
|
#include "mephisto_amsterdam.lh"
|
||||||
|
|
||||||
|
|
||||||
|
namespace {
|
||||||
|
|
||||||
|
class amsterdam_state : public driver_device
|
||||||
|
{
|
||||||
|
public:
|
||||||
|
amsterdam_state(const machine_config &mconfig, device_type type, const char *tag)
|
||||||
|
: driver_device(mconfig, type, tag)
|
||||||
|
, m_maincpu(*this, "maincpu")
|
||||||
|
, m_board(*this, "board")
|
||||||
|
, m_display(*this, "display")
|
||||||
|
, m_dac(*this, "dac")
|
||||||
|
, m_keys(*this, "KEY.%u", 0)
|
||||||
|
{ }
|
||||||
|
|
||||||
|
DECLARE_INPUT_CHANGED_MEMBER(reset_button);
|
||||||
|
|
||||||
|
void amsterdam(machine_config &config);
|
||||||
|
void dallas32(machine_config &config);
|
||||||
|
|
||||||
|
protected:
|
||||||
|
virtual void machine_start() override;
|
||||||
|
virtual void machine_reset() override;
|
||||||
|
|
||||||
|
private:
|
||||||
|
required_device<cpu_device> m_maincpu;
|
||||||
|
required_device<mephisto_board_device> m_board;
|
||||||
|
required_device<mephisto_display1_device> m_display;
|
||||||
|
required_device<dac_bit_interface> m_dac;
|
||||||
|
required_ioport_array<2> m_keys;
|
||||||
|
|
||||||
|
void amsterd_mem(address_map &map);
|
||||||
|
void dallas32_mem(address_map &map);
|
||||||
|
|
||||||
|
void led_w(offs_t offset, u8 data);
|
||||||
|
void dac_w(u8 data);
|
||||||
|
u8 keys_r();
|
||||||
|
|
||||||
|
u8 m_kp_select = 0;
|
||||||
|
};
|
||||||
|
|
||||||
|
void amsterdam_state::machine_start()
|
||||||
|
{
|
||||||
|
save_item(NAME(m_kp_select));
|
||||||
|
}
|
||||||
|
|
||||||
|
void amsterdam_state::machine_reset()
|
||||||
|
{
|
||||||
|
m_display->reset();
|
||||||
|
}
|
||||||
|
|
||||||
|
INPUT_CHANGED_MEMBER(amsterdam_state::reset_button)
|
||||||
|
{
|
||||||
|
// RES buttons in serial tied to CPU RESET
|
||||||
|
if (ioport("RESET")->read() == 3)
|
||||||
|
{
|
||||||
|
m_maincpu->pulse_input_line(INPUT_LINE_RESET, attotime::zero);
|
||||||
|
machine_reset();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
/******************************************************************************
|
||||||
|
I/O
|
||||||
|
******************************************************************************/
|
||||||
|
|
||||||
|
void amsterdam_state::led_w(offs_t offset, u8 data)
|
||||||
|
{
|
||||||
|
m_board->led_w(data);
|
||||||
|
|
||||||
|
// lcd strobe is shared with keypad select
|
||||||
|
m_kp_select = offset >> 7;
|
||||||
|
m_display->strobe_w(m_kp_select);
|
||||||
|
}
|
||||||
|
|
||||||
|
void amsterdam_state::dac_w(u8 data)
|
||||||
|
{
|
||||||
|
// d0: speaker out
|
||||||
|
m_dac->write(BIT(data, 0));
|
||||||
|
}
|
||||||
|
|
||||||
|
u8 amsterdam_state::keys_r()
|
||||||
|
{
|
||||||
|
return m_keys[m_kp_select & 1]->read();
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
/******************************************************************************
|
||||||
|
Address Maps
|
||||||
|
******************************************************************************/
|
||||||
|
|
||||||
|
void amsterdam_state::amsterd_mem(address_map &map)
|
||||||
|
{
|
||||||
|
map(0x000000, 0x00ffff).rom();
|
||||||
|
map(0x800002, 0x800002).w(m_display, FUNC(mephisto_display1_device::data_w));
|
||||||
|
map(0x800004, 0x800004).w(FUNC(amsterdam_state::dac_w));
|
||||||
|
map(0x800008, 0x800009).nopr(); // clr.b
|
||||||
|
map(0x800008, 0x800008).select(0x80).w(FUNC(amsterdam_state::led_w));
|
||||||
|
map(0x800010, 0x800010).w(m_board, FUNC(mephisto_board_device::mux_w));
|
||||||
|
map(0x800020, 0x800020).r(m_board, FUNC(mephisto_board_device::input_r));
|
||||||
|
map(0x800040, 0x800040).r(FUNC(amsterdam_state::keys_r));
|
||||||
|
map(0xffc000, 0xffffff).ram(); // 16KB
|
||||||
|
}
|
||||||
|
|
||||||
|
void amsterdam_state::dallas32_mem(address_map &map)
|
||||||
|
{
|
||||||
|
map(0x000000, 0x00ffff).rom();
|
||||||
|
map(0x010000, 0x01ffff).ram(); // 64KB
|
||||||
|
map(0x800002, 0x800002).w(m_display, FUNC(mephisto_display1_device::data_w));
|
||||||
|
map(0x800004, 0x800004).w(FUNC(amsterdam_state::dac_w));
|
||||||
|
map(0x800008, 0x800008).select(0x80).w(FUNC(amsterdam_state::led_w));
|
||||||
|
map(0x800010, 0x800010).w(m_board, FUNC(mephisto_board_device::mux_w));
|
||||||
|
map(0x800020, 0x800020).r(m_board, FUNC(mephisto_board_device::input_r));
|
||||||
|
map(0x800040, 0x800040).r(FUNC(amsterdam_state::keys_r));
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
/******************************************************************************
|
||||||
|
Input Ports
|
||||||
|
******************************************************************************/
|
||||||
|
|
||||||
|
static INPUT_PORTS_START( amsterdam )
|
||||||
|
PORT_START("KEY.0")
|
||||||
|
PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_NAME("A / 1") PORT_CODE(KEYCODE_A) PORT_CODE(KEYCODE_1) PORT_CODE(KEYCODE_1_PAD)
|
||||||
|
PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_NAME("B / 2 / Pawn") PORT_CODE(KEYCODE_B) PORT_CODE(KEYCODE_2) PORT_CODE(KEYCODE_2_PAD)
|
||||||
|
PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_NAME("C / 3 / Knight") PORT_CODE(KEYCODE_C) PORT_CODE(KEYCODE_3) PORT_CODE(KEYCODE_3_PAD)
|
||||||
|
PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_NAME("D / 4 / Bishop") PORT_CODE(KEYCODE_D) PORT_CODE(KEYCODE_4) PORT_CODE(KEYCODE_4_PAD)
|
||||||
|
PORT_BIT( 0x10, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_NAME("E / 5 / Rook") PORT_CODE(KEYCODE_E) PORT_CODE(KEYCODE_5) PORT_CODE(KEYCODE_5_PAD)
|
||||||
|
PORT_BIT( 0x20, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_NAME("F / 6 / Queen") PORT_CODE(KEYCODE_F) PORT_CODE(KEYCODE_6) PORT_CODE(KEYCODE_6_PAD)
|
||||||
|
PORT_BIT( 0x40, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_NAME("Left / Black / 9") PORT_CODE(KEYCODE_9) PORT_CODE(KEYCODE_9_PAD) PORT_CODE(KEYCODE_LEFT)
|
||||||
|
PORT_BIT( 0x80, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_NAME("Right / White / 0") PORT_CODE(KEYCODE_0) PORT_CODE(KEYCODE_0_PAD) PORT_CODE(KEYCODE_RIGHT)
|
||||||
|
|
||||||
|
PORT_START("KEY.1")
|
||||||
|
PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_NAME("INFO") PORT_CODE(KEYCODE_I)
|
||||||
|
PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_NAME("POS") PORT_CODE(KEYCODE_O)
|
||||||
|
PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_NAME("LEV") PORT_CODE(KEYCODE_L)
|
||||||
|
PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_NAME("MEM") PORT_CODE(KEYCODE_M)
|
||||||
|
PORT_BIT( 0x10, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_NAME("CL") PORT_CODE(KEYCODE_BACKSPACE) PORT_CODE(KEYCODE_DEL)
|
||||||
|
PORT_BIT( 0x20, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_NAME("ENT") PORT_CODE(KEYCODE_ENTER) PORT_CODE(KEYCODE_ENTER_PAD)
|
||||||
|
PORT_BIT( 0x40, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_NAME("G / 7 / King") PORT_CODE(KEYCODE_G) PORT_CODE(KEYCODE_7) PORT_CODE(KEYCODE_7_PAD)
|
||||||
|
PORT_BIT( 0x80, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_NAME("H / 8") PORT_CODE(KEYCODE_H) PORT_CODE(KEYCODE_8) PORT_CODE(KEYCODE_8_PAD)
|
||||||
|
|
||||||
|
PORT_START("RESET")
|
||||||
|
PORT_BIT(0x01, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_NAME("RES 1") PORT_CODE(KEYCODE_Z) PORT_CODE(KEYCODE_F1) PORT_CHANGED_MEMBER(DEVICE_SELF, amsterdam_state, reset_button, 0)
|
||||||
|
PORT_BIT(0x02, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_NAME("RES 2") PORT_CODE(KEYCODE_X) PORT_CODE(KEYCODE_F1) PORT_CHANGED_MEMBER(DEVICE_SELF, amsterdam_state, reset_button, 0)
|
||||||
|
INPUT_PORTS_END
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
/******************************************************************************
|
||||||
|
Machine Configs
|
||||||
|
******************************************************************************/
|
||||||
|
|
||||||
|
void amsterdam_state::amsterdam(machine_config &config)
|
||||||
|
{
|
||||||
|
/* basic machine hardware */
|
||||||
|
M68000(config, m_maincpu, 12_MHz_XTAL);
|
||||||
|
m_maincpu->set_periodic_int(FUNC(amsterdam_state::irq5_line_hold), attotime::from_hz(50));
|
||||||
|
m_maincpu->set_addrmap(AS_PROGRAM, &amsterdam_state::amsterd_mem);
|
||||||
|
|
||||||
|
MEPHISTO_SENSORS_BOARD(config, m_board);
|
||||||
|
m_board->set_delay(attotime::from_msec(200));
|
||||||
|
|
||||||
|
/* video hardware */
|
||||||
|
MEPHISTO_DISPLAY_MODULE1(config, m_display);
|
||||||
|
config.set_default_layout(layout_mephisto_amsterdam);
|
||||||
|
|
||||||
|
/* sound hardware */
|
||||||
|
SPEAKER(config, "speaker").front_center();
|
||||||
|
DAC_1BIT(config, m_dac).add_route(ALL_OUTPUTS, "speaker", 0.25);
|
||||||
|
}
|
||||||
|
|
||||||
|
void amsterdam_state::dallas32(machine_config &config)
|
||||||
|
{
|
||||||
|
amsterdam(config);
|
||||||
|
|
||||||
|
/* basic machine hardware */
|
||||||
|
M68020(config.replace(), m_maincpu, 14_MHz_XTAL);
|
||||||
|
m_maincpu->set_periodic_int(FUNC(amsterdam_state::irq5_line_hold), attotime::from_hz(50));
|
||||||
|
m_maincpu->set_addrmap(AS_PROGRAM, &amsterdam_state::dallas32_mem);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
/******************************************************************************
|
||||||
|
ROM Definitions
|
||||||
|
******************************************************************************/
|
||||||
|
|
||||||
|
ROM_START( amsterd )
|
||||||
|
ROM_REGION16_BE( 0x1000000, "maincpu", 0 )
|
||||||
|
ROM_LOAD16_BYTE("amsterda-u.bin", 0x00000, 0x08000, CRC(0a75514e) SHA1(27daf78b0aba4d7a293b96b3c1fa92f6ee9bcb59) )
|
||||||
|
ROM_LOAD16_BYTE("amsterda-l.bin", 0x00001, 0x08000, CRC(6e17d8fa) SHA1(e0f9e57aaa445f6ff7cbe868658ed7bcfa7e31fb) )
|
||||||
|
ROM_END
|
||||||
|
|
||||||
|
|
||||||
|
ROM_START( dallas32 )
|
||||||
|
ROM_REGION( 0x10000, "maincpu", 0 )
|
||||||
|
ROM_LOAD("dallas32.epr", 0x000000, 0x10000, CRC(83b9ff3f) SHA1(97bf4cb3c61f8ec328735b3c98281bba44b30a28) )
|
||||||
|
ROM_END
|
||||||
|
|
||||||
|
ROM_START( dallas16 )
|
||||||
|
ROM_REGION16_BE( 0x1000000, "maincpu", 0 )
|
||||||
|
ROM_LOAD16_BYTE("dallas-u.bin", 0x00000, 0x08000, CRC(70b741f7) SHA1(23d55ed0fea127b727d725c367ee1932ff5af39f) )
|
||||||
|
ROM_LOAD16_BYTE("dallas-l.bin", 0x00001, 0x08000, CRC(69300ad3) SHA1(57ec1b955b1ddfe722011ff5da68a0cd71af9251) )
|
||||||
|
ROM_END
|
||||||
|
|
||||||
|
|
||||||
|
ROM_START( roma32 )
|
||||||
|
ROM_REGION( 0x10000, "maincpu", 0 )
|
||||||
|
ROM_LOAD("roma32.bin", 0x000000, 0x10000, CRC(587d03bf) SHA1(504e9ff958084700076d633f9c306fc7baf64ffd) )
|
||||||
|
ROM_END
|
||||||
|
|
||||||
|
ROM_START( roma16 )
|
||||||
|
ROM_REGION16_BE( 0x1000000, "maincpu", 0 )
|
||||||
|
ROM_LOAD16_BYTE("roma16-u.bin", 0x00000, 0x08000, CRC(111d030f) SHA1(e027f7e7018d28ab794e7730392506056809db6b) )
|
||||||
|
ROM_LOAD16_BYTE("roma16-l.bin", 0x00001, 0x08000, CRC(8245ddd2) SHA1(ab048b60fdc4358913a5d07b6fee863b66dd6734) )
|
||||||
|
ROM_END
|
||||||
|
|
||||||
|
} // anonymous namespace
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
/******************************************************************************
|
||||||
|
Drivers
|
||||||
|
******************************************************************************/
|
||||||
|
|
||||||
|
/* YEAR, NAME, PARENT COMPAT MACHINE INPUT CLASS INIT COMPANY FULLNAME FLAGS */
|
||||||
|
CONS( 1985, amsterd, 0, 0, amsterdam, amsterdam, amsterdam_state, empty_init, "Hegener + Glaser", "Mephisto Amsterdam", MACHINE_SUPPORTS_SAVE | MACHINE_CLICKABLE_ARTWORK )
|
||||||
|
|
||||||
|
CONS( 1986, dallas32, 0, 0, dallas32, amsterdam, amsterdam_state, empty_init, "Hegener + Glaser", "Mephisto Dallas 68020", MACHINE_SUPPORTS_SAVE | MACHINE_CLICKABLE_ARTWORK )
|
||||||
|
CONS( 1986, dallas16, dallas32, 0, amsterdam, amsterdam, amsterdam_state, empty_init, "Hegener + Glaser", "Mephisto Dallas 68000", MACHINE_SUPPORTS_SAVE | MACHINE_CLICKABLE_ARTWORK )
|
||||||
|
|
||||||
|
CONS( 1987, roma32, 0, 0, dallas32, amsterdam, amsterdam_state, empty_init, "Hegener + Glaser", "Mephisto Roma 68020", MACHINE_SUPPORTS_SAVE | MACHINE_CLICKABLE_ARTWORK )
|
||||||
|
CONS( 1987, roma16, roma32, 0, amsterdam, amsterdam, amsterdam_state, empty_init, "Hegener + Glaser", "Mephisto Roma 68000", MACHINE_SUPPORTS_SAVE | MACHINE_CLICKABLE_ARTWORK )
|
@ -1,15 +1,23 @@
|
|||||||
// license:BSD-3-Clause
|
// license:BSD-3-Clause
|
||||||
// copyright-holders:Dirk Verwiebe, Cowering
|
// copyright-holders:Dirk Verwiebe, Cowering, hap
|
||||||
/***************************************************************************
|
// thanks-to:Berger
|
||||||
|
/******************************************************************************
|
||||||
|
|
||||||
Mephisto Glasgow 3 S chess computer
|
Mephisto Glasgow 3 S chess computer
|
||||||
Dirk V.
|
Dirk V.
|
||||||
sp_rinter@gmx.de
|
sp_rinter@gmx.de
|
||||||
|
|
||||||
68000 CPU
|
TODO:
|
||||||
64 KB ROM
|
- add waitstates, CPU is 12MHz but with DTACK waitstates for slow EPROMs,
|
||||||
16 KB RAM
|
effective speed is less than 10MHz
|
||||||
4 Digit LCD
|
|
||||||
|
===============================================================================
|
||||||
|
|
||||||
|
Hardware notes:
|
||||||
|
- 68000 CPU
|
||||||
|
- 64 KB ROM
|
||||||
|
- 16 KB RAM
|
||||||
|
- 4 Digit LCD
|
||||||
|
|
||||||
3*74LS138 Decoder/Multiplexer
|
3*74LS138 Decoder/Multiplexer
|
||||||
1*74LS74 Dual positive edge triggered D Flip Flop
|
1*74LS74 Dual positive edge triggered D Flip Flop
|
||||||
@ -23,34 +31,18 @@ sp_rinter@gmx.de
|
|||||||
1*74LS367 3 State Hex Buffers
|
1*74LS367 3 State Hex Buffers
|
||||||
1*SG-10 Seiko 4-pin plastic XTAL chip "50H", to IPL0+2
|
1*SG-10 Seiko 4-pin plastic XTAL chip "50H", to IPL0+2
|
||||||
|
|
||||||
|
******************************************************************************/
|
||||||
How to play (quick guide)
|
|
||||||
1. You are the white player.
|
|
||||||
2. Click on the piece to move (LED starts flashing), then click where it goes
|
|
||||||
3. Computer plays black, it will work out its move and beep.
|
|
||||||
4. Read the move in the display, or look for the flashing LEDs.
|
|
||||||
5. Move the computer's piece in the same way you moved yours.
|
|
||||||
6. You'll need to read the official user manual for advanced features, or if
|
|
||||||
you get messages such as "Err1".
|
|
||||||
|
|
||||||
TODO:
|
|
||||||
- add waitstates(applies to glasgow, amsterd, others?), CPU is 12MHz but with DTACK
|
|
||||||
waitstates for slow EPROMs, effective speed is less than 10MHz
|
|
||||||
- use mmdisplay1 device
|
|
||||||
- split driver (glasgow/amsterdam)
|
|
||||||
|
|
||||||
***************************************************************************/
|
|
||||||
|
|
||||||
#include "emu.h"
|
#include "emu.h"
|
||||||
|
|
||||||
#include "cpu/m68000/m68000.h"
|
#include "cpu/m68000/m68000.h"
|
||||||
#include "machine/mmboard.h"
|
#include "machine/mmboard.h"
|
||||||
#include "sound/dac.h"
|
#include "sound/dac.h"
|
||||||
|
#include "video/mmdisplay1.h"
|
||||||
|
|
||||||
#include "speaker.h"
|
#include "speaker.h"
|
||||||
|
|
||||||
// internal artwork
|
// internal artwork
|
||||||
#include "mephisto_amsterdam.lh"
|
|
||||||
#include "mephisto_glasgow.lh"
|
#include "mephisto_glasgow.lh"
|
||||||
|
|
||||||
|
|
||||||
@ -62,54 +54,37 @@ public:
|
|||||||
glasgow_state(const machine_config &mconfig, device_type type, const char *tag)
|
glasgow_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_dac(*this, "dac")
|
|
||||||
, m_board(*this, "board")
|
, m_board(*this, "board")
|
||||||
, m_keyboard(*this, "LINE%u", 0)
|
, m_display(*this, "display")
|
||||||
, m_digits(*this, "digit%u", 0U)
|
, m_dac(*this, "dac")
|
||||||
|
, m_keys(*this, "KEY.%u", 0)
|
||||||
{ }
|
{ }
|
||||||
|
|
||||||
void glasgow(machine_config &config);
|
void glasgow(machine_config &config);
|
||||||
|
|
||||||
protected:
|
protected:
|
||||||
void glasgow_lcd_w(u8 data);
|
|
||||||
void glasgow_lcd_flag_w(u8 data);
|
|
||||||
u8 glasgow_keys_r();
|
|
||||||
void glasgow_keys_w(u8 data);
|
|
||||||
|
|
||||||
virtual void machine_start() override;
|
virtual void machine_start() override;
|
||||||
virtual void machine_reset() override;
|
|
||||||
|
private:
|
||||||
|
required_device<cpu_device> m_maincpu;
|
||||||
|
required_device<mephisto_board_device> m_board;
|
||||||
|
required_device<mephisto_display1_device> m_display;
|
||||||
|
required_device<dac_bit_interface> m_dac;
|
||||||
|
required_ioport_array<2> m_keys;
|
||||||
|
|
||||||
void glasgow_mem(address_map &map);
|
void glasgow_mem(address_map &map);
|
||||||
|
|
||||||
required_device<cpu_device> m_maincpu;
|
void control_w(u8 data);
|
||||||
required_device<dac_bit_interface> m_dac;
|
u8 keys_r();
|
||||||
required_device<mephisto_board_device> m_board;
|
void keys_w(u8 data);
|
||||||
required_ioport_array<2> m_keyboard;
|
|
||||||
output_finder<4> m_digits;
|
|
||||||
|
|
||||||
u8 m_lcd_shift_counter;
|
u8 m_kp_mux = 0;
|
||||||
u8 m_led7;
|
|
||||||
u8 m_key_select;
|
|
||||||
};
|
};
|
||||||
|
|
||||||
class amsterd_state : public glasgow_state
|
void glasgow_state::machine_start()
|
||||||
{
|
{
|
||||||
public:
|
save_item(NAME(m_kp_mux));
|
||||||
using glasgow_state::glasgow_state;
|
}
|
||||||
|
|
||||||
void amsterd(machine_config &config);
|
|
||||||
void dallas32(machine_config &config);
|
|
||||||
|
|
||||||
protected:
|
|
||||||
void write_lcd(u8 data);
|
|
||||||
void write_lcd_flag(u8 data);
|
|
||||||
void write_beeper(u8 data);
|
|
||||||
void write_board(u8 data);
|
|
||||||
u8 read_newkeys();
|
|
||||||
|
|
||||||
void amsterd_mem(address_map &map);
|
|
||||||
void dallas32_mem(address_map &map);
|
|
||||||
};
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
@ -117,95 +92,33 @@ protected:
|
|||||||
I/O
|
I/O
|
||||||
******************************************************************************/
|
******************************************************************************/
|
||||||
|
|
||||||
void glasgow_state::glasgow_lcd_w(u8 data)
|
void glasgow_state::control_w(u8 data)
|
||||||
{
|
|
||||||
if (m_led7 == 0)
|
|
||||||
m_digits[m_lcd_shift_counter] = data;
|
|
||||||
|
|
||||||
m_lcd_shift_counter++;
|
|
||||||
m_lcd_shift_counter &= 3;
|
|
||||||
}
|
|
||||||
|
|
||||||
void glasgow_state::glasgow_lcd_flag_w(u8 data)
|
|
||||||
{
|
|
||||||
u8 const lcd_flag = data & 0x81;
|
|
||||||
|
|
||||||
m_dac->write(BIT(lcd_flag, 0));
|
|
||||||
|
|
||||||
if (lcd_flag)
|
|
||||||
m_led7 = 255;
|
|
||||||
else
|
|
||||||
m_led7 = 0;
|
|
||||||
}
|
|
||||||
|
|
||||||
u8 glasgow_state::glasgow_keys_r()
|
|
||||||
{
|
|
||||||
// See if any keys pressed
|
|
||||||
u8 data = 3;
|
|
||||||
|
|
||||||
if (m_key_select == m_keyboard[0]->read())
|
|
||||||
data &= 1;
|
|
||||||
|
|
||||||
if (m_key_select == m_keyboard[1]->read())
|
|
||||||
data &= 2;
|
|
||||||
|
|
||||||
return data;
|
|
||||||
}
|
|
||||||
|
|
||||||
void glasgow_state::glasgow_keys_w(u8 data)
|
|
||||||
{
|
|
||||||
m_key_select = data;
|
|
||||||
}
|
|
||||||
|
|
||||||
void amsterd_state::write_lcd(u8 data)
|
|
||||||
{
|
|
||||||
if (m_lcd_shift_counter & 4)
|
|
||||||
m_digits[m_lcd_shift_counter & 3] = data;
|
|
||||||
|
|
||||||
m_lcd_shift_counter++;
|
|
||||||
m_lcd_shift_counter &= 7;
|
|
||||||
}
|
|
||||||
|
|
||||||
void amsterd_state::write_lcd_flag(u8 data)
|
|
||||||
{
|
|
||||||
// The key function in the rom expects a value from the
|
|
||||||
// second key row after writing to here
|
|
||||||
m_key_select = 1;
|
|
||||||
|
|
||||||
m_led7 = data ? 255 : 0;
|
|
||||||
}
|
|
||||||
|
|
||||||
void amsterd_state::write_board(u8 data)
|
|
||||||
{
|
|
||||||
m_key_select = 0;
|
|
||||||
m_board->led_w(0);
|
|
||||||
m_board->mux_w(data);
|
|
||||||
}
|
|
||||||
|
|
||||||
void amsterd_state::write_beeper(u8 data)
|
|
||||||
{
|
{
|
||||||
|
// d0: speaker out
|
||||||
m_dac->write(BIT(data, 0));
|
m_dac->write(BIT(data, 0));
|
||||||
|
|
||||||
|
// d7: lcd strobe
|
||||||
|
m_display->strobe_w(BIT(data, 7));
|
||||||
}
|
}
|
||||||
|
|
||||||
u8 amsterd_state::read_newkeys()
|
u8 glasgow_state::keys_r()
|
||||||
{
|
{
|
||||||
return m_keyboard[m_key_select & 1]->read();
|
u8 data = 0;
|
||||||
|
|
||||||
|
// d0,d1: multiplexed inputs
|
||||||
|
for (int i = 0; i < 2; i++)
|
||||||
|
if (m_kp_mux & m_keys[i]->read())
|
||||||
|
data |= 1 << i;
|
||||||
|
|
||||||
|
// reading keypad also clears irq
|
||||||
|
m_maincpu->set_input_line(M68K_IRQ_5, CLEAR_LINE);
|
||||||
|
|
||||||
|
return ~data;
|
||||||
}
|
}
|
||||||
|
|
||||||
void glasgow_state::machine_start()
|
void glasgow_state::keys_w(u8 data)
|
||||||
{
|
{
|
||||||
m_digits.resolve();
|
m_kp_mux = ~data;
|
||||||
|
|
||||||
save_item(NAME(m_lcd_shift_counter));
|
|
||||||
save_item(NAME(m_led7));
|
|
||||||
save_item(NAME(m_key_select));
|
|
||||||
}
|
|
||||||
|
|
||||||
void glasgow_state::machine_reset()
|
|
||||||
{
|
|
||||||
m_lcd_shift_counter = 0;
|
|
||||||
m_key_select = 0;
|
|
||||||
m_led7 = 0;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
@ -218,38 +131,12 @@ void glasgow_state::glasgow_mem(address_map &map)
|
|||||||
{
|
{
|
||||||
map.global_mask(0x1ffff);
|
map.global_mask(0x1ffff);
|
||||||
map(0x000000, 0x00ffff).rom();
|
map(0x000000, 0x00ffff).rom();
|
||||||
map(0x010000, 0x010000).w(FUNC(glasgow_state::glasgow_lcd_w));
|
map(0x010000, 0x010000).w(m_display, FUNC(mephisto_display1_device::data_w));
|
||||||
map(0x010002, 0x010002).rw(FUNC(glasgow_state::glasgow_keys_r), FUNC(glasgow_state::glasgow_keys_w));
|
map(0x010002, 0x010002).rw(FUNC(glasgow_state::keys_r), FUNC(glasgow_state::keys_w));
|
||||||
map(0x010004, 0x010004).w(FUNC(glasgow_state::glasgow_lcd_flag_w));
|
map(0x010004, 0x010004).w(FUNC(glasgow_state::control_w));
|
||||||
map(0x010006, 0x010006).rw("board", FUNC(mephisto_board_device::input_r), FUNC(mephisto_board_device::led_w));
|
map(0x010006, 0x010006).rw(m_board, FUNC(mephisto_board_device::input_r), FUNC(mephisto_board_device::led_w));
|
||||||
map(0x010008, 0x010008).w("board", FUNC(mephisto_board_device::mux_w));
|
map(0x010008, 0x010008).w(m_board, FUNC(mephisto_board_device::mux_w));
|
||||||
map(0x01c000, 0x01ffff).ram(); // 16KB
|
map(0x01c000, 0x01ffff).ram();
|
||||||
}
|
|
||||||
|
|
||||||
void amsterd_state::amsterd_mem(address_map &map)
|
|
||||||
{
|
|
||||||
map(0x000000, 0x00ffff).rom();
|
|
||||||
map(0x800002, 0x800002).w(FUNC(amsterd_state::write_lcd));
|
|
||||||
map(0x800004, 0x800004).w(FUNC(amsterd_state::write_beeper));
|
|
||||||
map(0x800008, 0x800008).w(FUNC(amsterd_state::write_lcd_flag));
|
|
||||||
map(0x800010, 0x800010).w(FUNC(amsterd_state::write_board));
|
|
||||||
map(0x800020, 0x800020).r("board", FUNC(mephisto_board_device::input_r));
|
|
||||||
map(0x800040, 0x800040).r(FUNC(amsterd_state::read_newkeys));
|
|
||||||
map(0x800088, 0x800088).w("board", FUNC(mephisto_board_device::led_w));
|
|
||||||
map(0xffc000, 0xffffff).ram(); // 16KB
|
|
||||||
}
|
|
||||||
|
|
||||||
void amsterd_state::dallas32_mem(address_map &map)
|
|
||||||
{
|
|
||||||
map(0x000000, 0x00ffff).rom();
|
|
||||||
map(0x010000, 0x01ffff).ram(); // 64KB
|
|
||||||
map(0x800002, 0x800002).w(FUNC(amsterd_state::write_lcd));
|
|
||||||
map(0x800004, 0x800004).w(FUNC(amsterd_state::write_beeper));
|
|
||||||
map(0x800008, 0x800008).w(FUNC(amsterd_state::write_lcd_flag));
|
|
||||||
map(0x800010, 0x800010).w(FUNC(amsterd_state::write_board));
|
|
||||||
map(0x800020, 0x800020).r("board", FUNC(mephisto_board_device::input_r));
|
|
||||||
map(0x800040, 0x800040).r(FUNC(amsterd_state::read_newkeys));
|
|
||||||
map(0x800088, 0x800088).w("board", FUNC(mephisto_board_device::led_w));
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
@ -258,48 +145,26 @@ void amsterd_state::dallas32_mem(address_map &map)
|
|||||||
Input Ports
|
Input Ports
|
||||||
******************************************************************************/
|
******************************************************************************/
|
||||||
|
|
||||||
static INPUT_PORTS_START( new_keyboard )
|
static INPUT_PORTS_START( glasgow )
|
||||||
PORT_START("LINE0")
|
PORT_START("KEY.0")
|
||||||
PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_NAME("A / 1") PORT_CODE(KEYCODE_A) PORT_CODE(KEYCODE_1) PORT_CODE(KEYCODE_1_PAD)
|
PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_NAME("Left / Black / 9") PORT_CODE(KEYCODE_9) PORT_CODE(KEYCODE_9_PAD) PORT_CODE(KEYCODE_LEFT)
|
||||||
PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_NAME("B / 2 / Pawn") PORT_CODE(KEYCODE_B) PORT_CODE(KEYCODE_2) PORT_CODE(KEYCODE_2_PAD)
|
PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_NAME("CL") PORT_CODE(KEYCODE_BACKSPACE) PORT_CODE(KEYCODE_DEL)
|
||||||
PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_NAME("C / 3 / Knight") PORT_CODE(KEYCODE_C) PORT_CODE(KEYCODE_3) PORT_CODE(KEYCODE_3_PAD)
|
PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_NAME("C / 3 / Knight") PORT_CODE(KEYCODE_C) PORT_CODE(KEYCODE_3) PORT_CODE(KEYCODE_3_PAD)
|
||||||
PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_NAME("D / 4 / Bishop") PORT_CODE(KEYCODE_D) PORT_CODE(KEYCODE_4) PORT_CODE(KEYCODE_4_PAD)
|
PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_NAME("ENT") PORT_CODE(KEYCODE_ENTER) PORT_CODE(KEYCODE_ENTER_PAD)
|
||||||
PORT_BIT( 0x10, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_NAME("E / 5 / Rook") PORT_CODE(KEYCODE_E) PORT_CODE(KEYCODE_5) PORT_CODE(KEYCODE_5_PAD)
|
PORT_BIT( 0x10, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_NAME("D / 4 / Bishop") PORT_CODE(KEYCODE_D) PORT_CODE(KEYCODE_4) PORT_CODE(KEYCODE_4_PAD)
|
||||||
PORT_BIT( 0x20, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_NAME("F / 6 / Queen") PORT_CODE(KEYCODE_F) PORT_CODE(KEYCODE_6) PORT_CODE(KEYCODE_6_PAD)
|
PORT_BIT( 0x20, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_NAME("A / 1") PORT_CODE(KEYCODE_A) PORT_CODE(KEYCODE_1) PORT_CODE(KEYCODE_1_PAD)
|
||||||
PORT_BIT( 0x40, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_NAME("Left / Black / 9") PORT_CODE(KEYCODE_9) PORT_CODE(KEYCODE_9_PAD) PORT_CODE(KEYCODE_LEFT)
|
PORT_BIT( 0x40, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_NAME("F / 6 / Queen") PORT_CODE(KEYCODE_F) PORT_CODE(KEYCODE_6) PORT_CODE(KEYCODE_6_PAD)
|
||||||
PORT_BIT( 0x80, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_NAME("Right / White / 0") PORT_CODE(KEYCODE_0) PORT_CODE(KEYCODE_0_PAD) PORT_CODE(KEYCODE_RIGHT)
|
PORT_BIT( 0x80, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_NAME("B / 2 / Pawn") PORT_CODE(KEYCODE_B) PORT_CODE(KEYCODE_2) PORT_CODE(KEYCODE_2_PAD)
|
||||||
|
|
||||||
PORT_START("LINE1")
|
PORT_START("KEY.1")
|
||||||
PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_NAME("INFO") PORT_CODE(KEYCODE_I)
|
PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_NAME("E / 5 / Rook") PORT_CODE(KEYCODE_E) PORT_CODE(KEYCODE_5) PORT_CODE(KEYCODE_5_PAD)
|
||||||
PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_NAME("POS") PORT_CODE(KEYCODE_O)
|
PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_NAME("INFO") PORT_CODE(KEYCODE_I)
|
||||||
PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_NAME("LEV") PORT_CODE(KEYCODE_L)
|
PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_NAME("Right / White / 0") PORT_CODE(KEYCODE_0) PORT_CODE(KEYCODE_0_PAD) PORT_CODE(KEYCODE_RIGHT)
|
||||||
PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_NAME("MEM") PORT_CODE(KEYCODE_M)
|
PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_NAME("POS") PORT_CODE(KEYCODE_O)
|
||||||
PORT_BIT( 0x10, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_NAME("CL") PORT_CODE(KEYCODE_BACKSPACE) PORT_CODE(KEYCODE_DEL)
|
PORT_BIT( 0x10, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_NAME("H / 8") PORT_CODE(KEYCODE_H) PORT_CODE(KEYCODE_8) PORT_CODE(KEYCODE_8_PAD)
|
||||||
PORT_BIT( 0x20, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_NAME("ENT") PORT_CODE(KEYCODE_ENTER) PORT_CODE(KEYCODE_ENTER_PAD)
|
PORT_BIT( 0x20, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_NAME("LEV") PORT_CODE(KEYCODE_L)
|
||||||
PORT_BIT( 0x40, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_NAME("G / 7 / King") PORT_CODE(KEYCODE_G) PORT_CODE(KEYCODE_7) PORT_CODE(KEYCODE_7_PAD)
|
PORT_BIT( 0x40, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_NAME("G / 7 / King") PORT_CODE(KEYCODE_G) PORT_CODE(KEYCODE_7) PORT_CODE(KEYCODE_7_PAD)
|
||||||
PORT_BIT( 0x80, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_NAME("H / 8") PORT_CODE(KEYCODE_H) PORT_CODE(KEYCODE_8) PORT_CODE(KEYCODE_8_PAD)
|
PORT_BIT( 0x80, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_NAME("MEM") PORT_CODE(KEYCODE_M)
|
||||||
INPUT_PORTS_END
|
|
||||||
|
|
||||||
static INPUT_PORTS_START( old_keyboard )
|
|
||||||
PORT_START("LINE0")
|
|
||||||
PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_KEYPAD) PORT_NAME("Left / Black / 9") PORT_CODE(KEYCODE_9) PORT_CODE(KEYCODE_9_PAD) PORT_CODE(KEYCODE_LEFT)
|
|
||||||
PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_KEYPAD) PORT_NAME("CL") PORT_CODE(KEYCODE_BACKSPACE) PORT_CODE(KEYCODE_DEL)
|
|
||||||
PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_KEYPAD) PORT_NAME("C / 3 / Knight") PORT_CODE(KEYCODE_C) PORT_CODE(KEYCODE_3) PORT_CODE(KEYCODE_3_PAD)
|
|
||||||
PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_KEYPAD) PORT_NAME("ENT") PORT_CODE(KEYCODE_ENTER) PORT_CODE(KEYCODE_ENTER_PAD)
|
|
||||||
PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_KEYPAD) PORT_NAME("D / 4 / Bishop") PORT_CODE(KEYCODE_D) PORT_CODE(KEYCODE_4) PORT_CODE(KEYCODE_4_PAD)
|
|
||||||
PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_KEYPAD) PORT_NAME("A / 1") PORT_CODE(KEYCODE_A) PORT_CODE(KEYCODE_1) PORT_CODE(KEYCODE_1_PAD)
|
|
||||||
PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_KEYPAD) PORT_NAME("F / 6 / Queen") PORT_CODE(KEYCODE_F) PORT_CODE(KEYCODE_6) PORT_CODE(KEYCODE_6_PAD)
|
|
||||||
PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_KEYPAD) PORT_NAME("B / 2 / Pawn") PORT_CODE(KEYCODE_B) PORT_CODE(KEYCODE_2) PORT_CODE(KEYCODE_2_PAD)
|
|
||||||
|
|
||||||
PORT_START("LINE1")
|
|
||||||
PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_KEYPAD) PORT_NAME("E / 5 / Rook") PORT_CODE(KEYCODE_E) PORT_CODE(KEYCODE_5) PORT_CODE(KEYCODE_5_PAD)
|
|
||||||
PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_KEYPAD) PORT_NAME("INFO") PORT_CODE(KEYCODE_I)
|
|
||||||
PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_KEYPAD) PORT_NAME("Right / White / 0") PORT_CODE(KEYCODE_0) PORT_CODE(KEYCODE_0_PAD) PORT_CODE(KEYCODE_RIGHT)
|
|
||||||
PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_KEYPAD) PORT_NAME("POS") PORT_CODE(KEYCODE_O)
|
|
||||||
PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_KEYPAD) PORT_NAME("H / 8") PORT_CODE(KEYCODE_H) PORT_CODE(KEYCODE_8) PORT_CODE(KEYCODE_8_PAD)
|
|
||||||
PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_KEYPAD) PORT_NAME("LEV") PORT_CODE(KEYCODE_L)
|
|
||||||
PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_KEYPAD) PORT_NAME("G / 7 / King") PORT_CODE(KEYCODE_G) PORT_CODE(KEYCODE_7) PORT_CODE(KEYCODE_7_PAD)
|
|
||||||
PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_KEYPAD) PORT_NAME("MEM") PORT_CODE(KEYCODE_M)
|
|
||||||
INPUT_PORTS_END
|
INPUT_PORTS_END
|
||||||
|
|
||||||
|
|
||||||
@ -312,13 +177,14 @@ void glasgow_state::glasgow(machine_config &config)
|
|||||||
{
|
{
|
||||||
/* basic machine hardware */
|
/* basic machine hardware */
|
||||||
M68000(config, m_maincpu, 12_MHz_XTAL);
|
M68000(config, m_maincpu, 12_MHz_XTAL);
|
||||||
m_maincpu->set_periodic_int(FUNC(glasgow_state::irq5_line_hold), attotime::from_hz(50));
|
m_maincpu->set_periodic_int(FUNC(glasgow_state::irq5_line_assert), attotime::from_hz(50));
|
||||||
m_maincpu->set_addrmap(AS_PROGRAM, &glasgow_state::glasgow_mem);
|
m_maincpu->set_addrmap(AS_PROGRAM, &glasgow_state::glasgow_mem);
|
||||||
|
|
||||||
MEPHISTO_SENSORS_BOARD(config, m_board);
|
MEPHISTO_SENSORS_BOARD(config, m_board);
|
||||||
m_board->set_delay(attotime::from_msec(200));
|
m_board->set_delay(attotime::from_msec(200));
|
||||||
|
|
||||||
/* video hardware */
|
/* video hardware */
|
||||||
|
MEPHISTO_DISPLAY_MODULE1(config, m_display);
|
||||||
config.set_default_layout(layout_mephisto_glasgow);
|
config.set_default_layout(layout_mephisto_glasgow);
|
||||||
|
|
||||||
/* sound hardware */
|
/* sound hardware */
|
||||||
@ -326,26 +192,6 @@ void glasgow_state::glasgow(machine_config &config)
|
|||||||
DAC_1BIT(config, m_dac).add_route(ALL_OUTPUTS, "speaker", 0.25);
|
DAC_1BIT(config, m_dac).add_route(ALL_OUTPUTS, "speaker", 0.25);
|
||||||
}
|
}
|
||||||
|
|
||||||
void amsterd_state::amsterd(machine_config &config)
|
|
||||||
{
|
|
||||||
glasgow(config);
|
|
||||||
|
|
||||||
/* basic machine hardware */
|
|
||||||
m_maincpu->set_addrmap(AS_PROGRAM, &amsterd_state::amsterd_mem);
|
|
||||||
|
|
||||||
config.set_default_layout(layout_mephisto_amsterdam);
|
|
||||||
}
|
|
||||||
|
|
||||||
void amsterd_state::dallas32(machine_config &config)
|
|
||||||
{
|
|
||||||
amsterd(config);
|
|
||||||
|
|
||||||
/* basic machine hardware */
|
|
||||||
M68020(config.replace(), m_maincpu, 14_MHz_XTAL);
|
|
||||||
m_maincpu->set_periodic_int(FUNC(amsterd_state::irq5_line_hold), attotime::from_hz(50));
|
|
||||||
m_maincpu->set_addrmap(AS_PROGRAM, &amsterd_state::dallas32_mem);
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
/******************************************************************************
|
/******************************************************************************
|
||||||
@ -360,11 +206,6 @@ ROM_START( glasgow )
|
|||||||
ROM_LOAD16_BYTE("me3_2_2l.410", 0x08001, 0x04000, CRC(b3f27827) SHA1(864ba897d24024592d08c4ae090aa70a2cc5f213) )
|
ROM_LOAD16_BYTE("me3_2_2l.410", 0x08001, 0x04000, CRC(b3f27827) SHA1(864ba897d24024592d08c4ae090aa70a2cc5f213) )
|
||||||
ROM_END
|
ROM_END
|
||||||
|
|
||||||
ROM_START( amsterd )
|
|
||||||
ROM_REGION16_BE( 0x1000000, "maincpu", 0 )
|
|
||||||
ROM_LOAD16_BYTE("amsterda-u.bin", 0x00000, 0x08000, CRC(0a75514e) SHA1(27daf78b0aba4d7a293b96b3c1fa92f6ee9bcb59) )
|
|
||||||
ROM_LOAD16_BYTE("amsterda-l.bin", 0x00001, 0x08000, CRC(6e17d8fa) SHA1(e0f9e57aaa445f6ff7cbe868658ed7bcfa7e31fb) )
|
|
||||||
ROM_END
|
|
||||||
|
|
||||||
ROM_START( amsterda )
|
ROM_START( amsterda )
|
||||||
ROM_REGION( 0x10000, "maincpu", 0 )
|
ROM_REGION( 0x10000, "maincpu", 0 )
|
||||||
@ -374,17 +215,6 @@ ROM_START( amsterda )
|
|||||||
ROM_LOAD16_BYTE("bl_4_1", 0x08001, 0x04000, CRC(533e584a) SHA1(0e4510977dc627125c278920492bc137793a9554) )
|
ROM_LOAD16_BYTE("bl_4_1", 0x08001, 0x04000, CRC(533e584a) SHA1(0e4510977dc627125c278920492bc137793a9554) )
|
||||||
ROM_END
|
ROM_END
|
||||||
|
|
||||||
ROM_START( dallas32 )
|
|
||||||
ROM_REGION( 0x10000, "maincpu", 0 )
|
|
||||||
ROM_LOAD("dallas32.epr", 0x000000, 0x10000, CRC(83b9ff3f) SHA1(97bf4cb3c61f8ec328735b3c98281bba44b30a28) )
|
|
||||||
ROM_END
|
|
||||||
|
|
||||||
ROM_START( dallas16 )
|
|
||||||
ROM_REGION16_BE( 0x1000000, "maincpu", 0 )
|
|
||||||
ROM_LOAD16_BYTE("dallas-u.bin", 0x00000, 0x08000, CRC(70b741f7) SHA1(23d55ed0fea127b727d725c367ee1932ff5af39f) )
|
|
||||||
ROM_LOAD16_BYTE("dallas-l.bin", 0x00001, 0x08000, CRC(69300ad3) SHA1(57ec1b955b1ddfe722011ff5da68a0cd71af9251) )
|
|
||||||
ROM_END
|
|
||||||
|
|
||||||
ROM_START( dallas16a )
|
ROM_START( dallas16a )
|
||||||
ROM_REGION16_BE( 0x1000000, "maincpu", 0 )
|
ROM_REGION16_BE( 0x1000000, "maincpu", 0 )
|
||||||
ROM_LOAD16_BYTE("dal_g_pr", 0x00000, 0x04000, CRC(66deade9) SHA1(07ec6b923f2f053172737f1fc94aec84f3ea8da1) )
|
ROM_LOAD16_BYTE("dal_g_pr", 0x00000, 0x04000, CRC(66deade9) SHA1(07ec6b923f2f053172737f1fc94aec84f3ea8da1) )
|
||||||
@ -393,17 +223,6 @@ ROM_START( dallas16a )
|
|||||||
ROM_LOAD16_BYTE("dal_g_bl", 0x08001, 0x04000, CRC(144a15e2) SHA1(c4fcc23d55fa5262f5e01dbd000644a7feb78f32) )
|
ROM_LOAD16_BYTE("dal_g_bl", 0x08001, 0x04000, CRC(144a15e2) SHA1(c4fcc23d55fa5262f5e01dbd000644a7feb78f32) )
|
||||||
ROM_END
|
ROM_END
|
||||||
|
|
||||||
ROM_START( roma32 )
|
|
||||||
ROM_REGION( 0x10000, "maincpu", 0 )
|
|
||||||
ROM_LOAD("roma32.bin", 0x000000, 0x10000, CRC(587d03bf) SHA1(504e9ff958084700076d633f9c306fc7baf64ffd) )
|
|
||||||
ROM_END
|
|
||||||
|
|
||||||
ROM_START( roma16 )
|
|
||||||
ROM_REGION16_BE( 0x1000000, "maincpu", 0 )
|
|
||||||
ROM_LOAD16_BYTE("roma16-u.bin", 0x00000, 0x08000, CRC(111d030f) SHA1(e027f7e7018d28ab794e7730392506056809db6b) )
|
|
||||||
ROM_LOAD16_BYTE("roma16-l.bin", 0x00001, 0x08000, CRC(8245ddd2) SHA1(ab048b60fdc4358913a5d07b6fee863b66dd6734) )
|
|
||||||
ROM_END
|
|
||||||
|
|
||||||
ROM_START( roma16a )
|
ROM_START( roma16a )
|
||||||
ROM_REGION16_BE( 0x1000000, "maincpu", 0 )
|
ROM_REGION16_BE( 0x1000000, "maincpu", 0 )
|
||||||
ROM_LOAD16_BYTE("roma_r_low", 0x00000, 0x04000, CRC(f2312170) SHA1(82a50ba59f74365aa77478adaadbbace6693dcc1) )
|
ROM_LOAD16_BYTE("roma_r_low", 0x00000, 0x04000, CRC(f2312170) SHA1(82a50ba59f74365aa77478adaadbbace6693dcc1) )
|
||||||
@ -420,16 +239,10 @@ ROM_END
|
|||||||
Drivers
|
Drivers
|
||||||
******************************************************************************/
|
******************************************************************************/
|
||||||
|
|
||||||
/* YEAR, NAME, PARENT COMPAT MACHINE INPUT CLASS INIT COMPANY FULLNAME FLAGS */
|
/* YEAR, NAME, PARENT COMPAT MACHINE INPUT CLASS INIT COMPANY FULLNAME FLAGS */
|
||||||
CONS( 1984, glasgow, 0, 0, glasgow, old_keyboard, glasgow_state, empty_init, "Hegener + Glaser", "Mephisto III-S Glasgow", MACHINE_SUPPORTS_SAVE | MACHINE_CLICKABLE_ARTWORK )
|
CONS( 1984, glasgow, 0, 0, glasgow, glasgow, glasgow_state, empty_init, "Hegener + Glaser", "Mephisto III-S Glasgow", MACHINE_SUPPORTS_SAVE | MACHINE_CLICKABLE_ARTWORK )
|
||||||
|
|
||||||
CONS( 1985, amsterd, 0, 0, amsterd, new_keyboard, amsterd_state, empty_init, "Hegener + Glaser", "Mephisto Amsterdam", MACHINE_SUPPORTS_SAVE | MACHINE_CLICKABLE_ARTWORK )
|
// newer chesscomputers on 4-ROM hardware (see mephisto_amsterdam.cpp for parent sets)
|
||||||
CONS( 1985, amsterda, amsterd, 0, glasgow, old_keyboard, glasgow_state, empty_init, "Hegener + Glaser", "Mephisto Amsterdam (Glasgow hardware)", MACHINE_SUPPORTS_SAVE | MACHINE_CLICKABLE_ARTWORK )
|
CONS( 1985, amsterda, amsterd, 0, glasgow, glasgow, glasgow_state, empty_init, "Hegener + Glaser", "Mephisto Amsterdam (Glasgow hardware)", MACHINE_SUPPORTS_SAVE | MACHINE_CLICKABLE_ARTWORK )
|
||||||
|
CONS( 1986, dallas16a, dallas32, 0, glasgow, glasgow, glasgow_state, empty_init, "Hegener + Glaser", "Mephisto Dallas 68000 (Glasgow hardware)", MACHINE_SUPPORTS_SAVE | MACHINE_CLICKABLE_ARTWORK )
|
||||||
CONS( 1986, dallas32, 0, 0, dallas32, new_keyboard, amsterd_state, empty_init, "Hegener + Glaser", "Mephisto Dallas 68020", MACHINE_SUPPORTS_SAVE | MACHINE_CLICKABLE_ARTWORK )
|
CONS( 1987, roma16a, roma32, 0, glasgow, glasgow, glasgow_state, empty_init, "Hegener + Glaser", "Mephisto Roma 68000 (Glasgow hardware)", MACHINE_SUPPORTS_SAVE | MACHINE_CLICKABLE_ARTWORK )
|
||||||
CONS( 1986, dallas16, dallas32, 0, amsterd, new_keyboard, amsterd_state, empty_init, "Hegener + Glaser", "Mephisto Dallas 68000", MACHINE_SUPPORTS_SAVE | MACHINE_CLICKABLE_ARTWORK )
|
|
||||||
CONS( 1986, dallas16a, dallas32, 0, glasgow, old_keyboard, glasgow_state, empty_init, "Hegener + Glaser", "Mephisto Dallas 68000 (Glasgow hardware)", MACHINE_SUPPORTS_SAVE | MACHINE_CLICKABLE_ARTWORK )
|
|
||||||
|
|
||||||
CONS( 1987, roma32, 0, 0, dallas32, new_keyboard, amsterd_state, empty_init, "Hegener + Glaser", "Mephisto Roma 68020", MACHINE_SUPPORTS_SAVE | MACHINE_CLICKABLE_ARTWORK )
|
|
||||||
CONS( 1987, roma16, roma32, 0, amsterd, new_keyboard, amsterd_state, empty_init, "Hegener + Glaser", "Mephisto Roma 68000", MACHINE_SUPPORTS_SAVE | MACHINE_CLICKABLE_ARTWORK )
|
|
||||||
CONS( 1987, roma16a, roma32, 0, glasgow, old_keyboard, glasgow_state, empty_init, "Hegener + Glaser", "Mephisto Roma 68000 (Glasgow hardware)", MACHINE_SUPPORTS_SAVE | MACHINE_CLICKABLE_ARTWORK )
|
|
||||||
|
@ -83,7 +83,7 @@ private:
|
|||||||
required_device<cdp1806_device> m_maincpu;
|
required_device<cdp1806_device> m_maincpu;
|
||||||
required_device<mephisto_board_device> m_board;
|
required_device<mephisto_board_device> m_board;
|
||||||
required_device<dac_bit_interface> m_dac;
|
required_device<dac_bit_interface> m_dac;
|
||||||
required_ioport_array<8> m_inputs;
|
required_ioport_array<2> m_inputs;
|
||||||
|
|
||||||
// address maps
|
// address maps
|
||||||
void mirage_map(address_map &map);
|
void mirage_map(address_map &map);
|
||||||
@ -97,7 +97,7 @@ private:
|
|||||||
void sound_w(u8 data);
|
void sound_w(u8 data);
|
||||||
void unknown_w(u8 data);
|
void unknown_w(u8 data);
|
||||||
void keypad_w(u8 data);
|
void keypad_w(u8 data);
|
||||||
template<int P> DECLARE_READ_LINE_MEMBER(keypad_r);
|
template<int N> DECLARE_READ_LINE_MEMBER(keypad_r);
|
||||||
|
|
||||||
bool m_reset = false;
|
bool m_reset = false;
|
||||||
u8 m_kp_mux = 0;
|
u8 m_kp_mux = 0;
|
||||||
@ -151,17 +151,11 @@ void mm1_state::keypad_w(u8 data)
|
|||||||
m_kp_mux = ~data;
|
m_kp_mux = ~data;
|
||||||
}
|
}
|
||||||
|
|
||||||
template<int P>
|
template<int N>
|
||||||
READ_LINE_MEMBER(mm1_state::keypad_r)
|
READ_LINE_MEMBER(mm1_state::keypad_r)
|
||||||
{
|
{
|
||||||
u8 data = 0;
|
|
||||||
|
|
||||||
// EF3,EF4: multiplexed inputs (keypad)
|
// EF3,EF4: multiplexed inputs (keypad)
|
||||||
for (int i = 0; i < 8; i++)
|
return (m_inputs[N]->read() & m_kp_mux) ? 1 : 0;
|
||||||
if (BIT(m_kp_mux, i))
|
|
||||||
data |= m_inputs[i]->read();
|
|
||||||
|
|
||||||
return data >> P & 1;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
@ -203,69 +197,45 @@ void mm1_state::mm1_io(address_map &map)
|
|||||||
static INPUT_PORTS_START( mm1 )
|
static INPUT_PORTS_START( mm1 )
|
||||||
PORT_START("IN.0")
|
PORT_START("IN.0")
|
||||||
PORT_BIT(0x01, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_CODE(KEYCODE_E) PORT_CODE(KEYCODE_5) PORT_CODE(KEYCODE_5_PAD) PORT_NAME("E / 5 / Rook")
|
PORT_BIT(0x01, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_CODE(KEYCODE_E) PORT_CODE(KEYCODE_5) PORT_CODE(KEYCODE_5_PAD) PORT_NAME("E / 5 / Rook")
|
||||||
PORT_BIT(0x02, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_CODE(KEYCODE_9) PORT_CODE(KEYCODE_9_PAD) PORT_CODE(KEYCODE_LEFT) PORT_NAME("Left / Black / 9")
|
PORT_BIT(0x02, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_CODE(KEYCODE_I) PORT_NAME("INFO")
|
||||||
|
PORT_BIT(0x04, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_CODE(KEYCODE_0) PORT_CODE(KEYCODE_0_PAD) PORT_CODE(KEYCODE_RIGHT) PORT_NAME("Right / White / 0")
|
||||||
|
PORT_BIT(0x08, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_CODE(KEYCODE_O) PORT_NAME("POS")
|
||||||
|
PORT_BIT(0x10, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_CODE(KEYCODE_H) PORT_CODE(KEYCODE_8) PORT_CODE(KEYCODE_8_PAD) PORT_NAME("H / 8")
|
||||||
|
PORT_BIT(0x20, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_CODE(KEYCODE_L) PORT_NAME("LEV")
|
||||||
|
PORT_BIT(0x40, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_CODE(KEYCODE_G) PORT_CODE(KEYCODE_7) PORT_CODE(KEYCODE_7_PAD) PORT_NAME("G / 7 / King")
|
||||||
|
PORT_BIT(0x80, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_CODE(KEYCODE_M) PORT_NAME("MEM")
|
||||||
|
|
||||||
PORT_START("IN.1")
|
PORT_START("IN.1")
|
||||||
PORT_BIT(0x01, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_CODE(KEYCODE_I) PORT_NAME("INFO")
|
PORT_BIT(0x01, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_CODE(KEYCODE_9) PORT_CODE(KEYCODE_9_PAD) PORT_CODE(KEYCODE_LEFT) PORT_NAME("Left / Black / 9")
|
||||||
PORT_BIT(0x02, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_CODE(KEYCODE_BACKSPACE) PORT_CODE(KEYCODE_DEL) PORT_NAME("CL")
|
PORT_BIT(0x02, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_CODE(KEYCODE_BACKSPACE) PORT_CODE(KEYCODE_DEL) PORT_NAME("CL")
|
||||||
|
PORT_BIT(0x04, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_CODE(KEYCODE_C) PORT_CODE(KEYCODE_3) PORT_CODE(KEYCODE_3_PAD) PORT_NAME("C / 3 / Knight")
|
||||||
PORT_START("IN.2")
|
PORT_BIT(0x08, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_CODE(KEYCODE_ENTER) PORT_CODE(KEYCODE_ENTER_PAD) PORT_NAME("ENT")
|
||||||
PORT_BIT(0x01, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_CODE(KEYCODE_0) PORT_CODE(KEYCODE_0_PAD) PORT_CODE(KEYCODE_RIGHT) PORT_NAME("Right / White / 0")
|
PORT_BIT(0x10, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_CODE(KEYCODE_D) PORT_CODE(KEYCODE_4) PORT_CODE(KEYCODE_4_PAD) PORT_NAME("D / 4 / Bishop")
|
||||||
PORT_BIT(0x02, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_CODE(KEYCODE_C) PORT_CODE(KEYCODE_3) PORT_CODE(KEYCODE_3_PAD) PORT_NAME("C / 3 / Knight")
|
PORT_BIT(0x20, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_CODE(KEYCODE_A) PORT_CODE(KEYCODE_1) PORT_CODE(KEYCODE_1_PAD) PORT_NAME("A / 1")
|
||||||
|
PORT_BIT(0x40, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_CODE(KEYCODE_F) PORT_CODE(KEYCODE_6) PORT_CODE(KEYCODE_6_PAD) PORT_NAME("F / 6 / Queen")
|
||||||
PORT_START("IN.3")
|
PORT_BIT(0x80, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_CODE(KEYCODE_B) PORT_CODE(KEYCODE_2) PORT_CODE(KEYCODE_2_PAD) PORT_NAME("B / 2 / Pawn")
|
||||||
PORT_BIT(0x01, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_CODE(KEYCODE_O) PORT_NAME("POS")
|
|
||||||
PORT_BIT(0x02, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_CODE(KEYCODE_ENTER) PORT_CODE(KEYCODE_ENTER_PAD) PORT_NAME("ENT")
|
|
||||||
|
|
||||||
PORT_START("IN.4")
|
|
||||||
PORT_BIT(0x01, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_CODE(KEYCODE_H) PORT_CODE(KEYCODE_8) PORT_CODE(KEYCODE_8_PAD) PORT_NAME("H / 8")
|
|
||||||
PORT_BIT(0x02, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_CODE(KEYCODE_D) PORT_CODE(KEYCODE_4) PORT_CODE(KEYCODE_4_PAD) PORT_NAME("D / 4 / Bishop")
|
|
||||||
|
|
||||||
PORT_START("IN.5")
|
|
||||||
PORT_BIT(0x01, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_CODE(KEYCODE_L) PORT_NAME("LEV")
|
|
||||||
PORT_BIT(0x02, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_CODE(KEYCODE_A) PORT_CODE(KEYCODE_1) PORT_CODE(KEYCODE_1_PAD) PORT_NAME("A / 1")
|
|
||||||
|
|
||||||
PORT_START("IN.6")
|
|
||||||
PORT_BIT(0x01, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_CODE(KEYCODE_G) PORT_CODE(KEYCODE_7) PORT_CODE(KEYCODE_7_PAD) PORT_NAME("G / 7 / King")
|
|
||||||
PORT_BIT(0x02, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_CODE(KEYCODE_F) PORT_CODE(KEYCODE_6) PORT_CODE(KEYCODE_6_PAD) PORT_NAME("F / 6 / Queen")
|
|
||||||
|
|
||||||
PORT_START("IN.7")
|
|
||||||
PORT_BIT(0x01, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_CODE(KEYCODE_M) PORT_NAME("MEM")
|
|
||||||
PORT_BIT(0x02, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_CODE(KEYCODE_B) PORT_CODE(KEYCODE_2) PORT_CODE(KEYCODE_2_PAD) PORT_NAME("B / 2 / Pawn")
|
|
||||||
INPUT_PORTS_END
|
INPUT_PORTS_END
|
||||||
|
|
||||||
static INPUT_PORTS_START( mirage )
|
static INPUT_PORTS_START( mirage )
|
||||||
PORT_START("IN.0")
|
PORT_START("IN.0")
|
||||||
PORT_BIT(0x01, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_CODE(KEYCODE_BACKSPACE) PORT_CODE(KEYCODE_DEL) PORT_NAME("CL")
|
PORT_BIT(0x01, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_CODE(KEYCODE_BACKSPACE) PORT_CODE(KEYCODE_DEL) PORT_NAME("CL")
|
||||||
PORT_BIT(0x02, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_CODE(KEYCODE_I) PORT_NAME("LIST")
|
PORT_BIT(0x02, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_CODE(KEYCODE_A) PORT_CODE(KEYCODE_1) PORT_CODE(KEYCODE_1_PAD) PORT_NAME("A / 1")
|
||||||
|
PORT_BIT(0x04, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_CODE(KEYCODE_ENTER) PORT_CODE(KEYCODE_ENTER_PAD) PORT_NAME("ENT")
|
||||||
|
PORT_BIT(0x08, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_CODE(KEYCODE_B) PORT_CODE(KEYCODE_2) PORT_CODE(KEYCODE_2_PAD) PORT_NAME("B / 2 / Pawn")
|
||||||
|
PORT_BIT(0x10, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_CODE(KEYCODE_SPACE) PORT_CODE(KEYCODE_PLUS_PAD) PORT_NAME("STA")
|
||||||
|
PORT_BIT(0x20, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_CODE(KEYCODE_C) PORT_CODE(KEYCODE_3) PORT_CODE(KEYCODE_3_PAD) PORT_NAME("C / 3 / Knight")
|
||||||
|
PORT_BIT(0x40, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_CODE(KEYCODE_L) PORT_NAME("LEV")
|
||||||
|
PORT_BIT(0x80, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_CODE(KEYCODE_D) PORT_CODE(KEYCODE_4) PORT_CODE(KEYCODE_4_PAD) PORT_NAME("D / 4 / Bishop")
|
||||||
|
|
||||||
PORT_START("IN.1")
|
PORT_START("IN.1")
|
||||||
PORT_BIT(0x01, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_CODE(KEYCODE_A) PORT_CODE(KEYCODE_1) PORT_CODE(KEYCODE_1_PAD) PORT_NAME("A / 1")
|
PORT_BIT(0x01, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_CODE(KEYCODE_I) PORT_NAME("LIST")
|
||||||
PORT_BIT(0x02, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_CODE(KEYCODE_E) PORT_CODE(KEYCODE_5) PORT_CODE(KEYCODE_5_PAD) PORT_NAME("E / 5 / Rook")
|
PORT_BIT(0x02, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_CODE(KEYCODE_E) PORT_CODE(KEYCODE_5) PORT_CODE(KEYCODE_5_PAD) PORT_NAME("E / 5 / Rook")
|
||||||
|
PORT_BIT(0x04, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_CODE(KEYCODE_9) PORT_CODE(KEYCODE_9_PAD) PORT_NAME("Black / 9")
|
||||||
PORT_START("IN.2")
|
PORT_BIT(0x08, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_CODE(KEYCODE_F) PORT_CODE(KEYCODE_6) PORT_CODE(KEYCODE_6_PAD) PORT_NAME("F / 6 / Queen")
|
||||||
PORT_BIT(0x01, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_CODE(KEYCODE_ENTER) PORT_CODE(KEYCODE_ENTER_PAD) PORT_NAME("ENT")
|
PORT_BIT(0x10, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_CODE(KEYCODE_0) PORT_CODE(KEYCODE_0_PAD) PORT_NAME("White / 0")
|
||||||
PORT_BIT(0x02, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_CODE(KEYCODE_9) PORT_CODE(KEYCODE_9_PAD) PORT_NAME("Black / 9")
|
PORT_BIT(0x20, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_CODE(KEYCODE_G) PORT_CODE(KEYCODE_7) PORT_CODE(KEYCODE_7_PAD) PORT_NAME("G / 7 / King")
|
||||||
|
PORT_BIT(0x40, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_CODE(KEYCODE_V) PORT_NAME("REV")
|
||||||
PORT_START("IN.3")
|
PORT_BIT(0x80, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_CODE(KEYCODE_H) PORT_CODE(KEYCODE_8) PORT_CODE(KEYCODE_8_PAD) PORT_NAME("H / 8")
|
||||||
PORT_BIT(0x01, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_CODE(KEYCODE_B) PORT_CODE(KEYCODE_2) PORT_CODE(KEYCODE_2_PAD) PORT_NAME("B / 2 / Pawn")
|
|
||||||
PORT_BIT(0x02, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_CODE(KEYCODE_F) PORT_CODE(KEYCODE_6) PORT_CODE(KEYCODE_6_PAD) PORT_NAME("F / 6 / Queen")
|
|
||||||
|
|
||||||
PORT_START("IN.4")
|
|
||||||
PORT_BIT(0x01, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_CODE(KEYCODE_SPACE) PORT_CODE(KEYCODE_PLUS_PAD) PORT_NAME("STA")
|
|
||||||
PORT_BIT(0x02, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_CODE(KEYCODE_0) PORT_CODE(KEYCODE_0_PAD) PORT_NAME("White / 0")
|
|
||||||
|
|
||||||
PORT_START("IN.5")
|
|
||||||
PORT_BIT(0x01, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_CODE(KEYCODE_C) PORT_CODE(KEYCODE_3) PORT_CODE(KEYCODE_3_PAD) PORT_NAME("C / 3 / Knight")
|
|
||||||
PORT_BIT(0x02, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_CODE(KEYCODE_G) PORT_CODE(KEYCODE_7) PORT_CODE(KEYCODE_7_PAD) PORT_NAME("G / 7 / King")
|
|
||||||
|
|
||||||
PORT_START("IN.6")
|
|
||||||
PORT_BIT(0x01, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_CODE(KEYCODE_L) PORT_NAME("LEV")
|
|
||||||
PORT_BIT(0x02, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_CODE(KEYCODE_V) PORT_NAME("REV")
|
|
||||||
|
|
||||||
PORT_START("IN.7")
|
|
||||||
PORT_BIT(0x01, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_CODE(KEYCODE_D) PORT_CODE(KEYCODE_4) PORT_CODE(KEYCODE_4_PAD) PORT_NAME("D / 4 / Bishop")
|
|
||||||
PORT_BIT(0x02, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_CODE(KEYCODE_H) PORT_CODE(KEYCODE_8) PORT_CODE(KEYCODE_8_PAD) PORT_NAME("H / 8")
|
|
||||||
|
|
||||||
PORT_START("FAKE") // module came with buttons sensorboard by default
|
PORT_START("FAKE") // module came with buttons sensorboard by default
|
||||||
PORT_CONFNAME( 0x01, 0x00, "Board Sensors" ) PORT_CHANGED_MEMBER(DEVICE_SELF, mm1_state, mirage_switch_sensor_type, 0)
|
PORT_CONFNAME( 0x01, 0x00, "Board Sensors" ) PORT_CHANGED_MEMBER(DEVICE_SELF, mm1_state, mirage_switch_sensor_type, 0)
|
||||||
|
@ -5,11 +5,18 @@
|
|||||||
Mephisto 4 + 5 Chess Computer
|
Mephisto 4 + 5 Chess Computer
|
||||||
2007 Dirk V.
|
2007 Dirk V.
|
||||||
|
|
||||||
CPU: G65SC02P-4 or R65C02P3
|
TODO:
|
||||||
Clock: 4.9152 MHz
|
- need to emulate TurboKit properly, also for mm5p (it's not as simple as a CPU
|
||||||
NMI CLK: 600 Hz
|
overclock plus ROM patch)
|
||||||
IRQ Line is set to VSS
|
|
||||||
8 KByte SRAM Sony CXK5864-15L
|
===============================================================================
|
||||||
|
|
||||||
|
Hardware notes:
|
||||||
|
- CPU: G65SC02P-4 or R65C02P3/R65C02P4
|
||||||
|
- Clock: 4.9152 MHz
|
||||||
|
- NMI CLK: 600 Hz
|
||||||
|
- IRQ Line is set to VSS
|
||||||
|
- 8 KByte SRAM Sony CXK5864-15L
|
||||||
|
|
||||||
1-CD74HC4060E: 14 Bit Counter
|
1-CD74HC4060E: 14 Bit Counter
|
||||||
1-CD74HC166E
|
1-CD74HC166E
|
||||||
@ -52,6 +59,8 @@ $3000 // Chess Board
|
|||||||
$4000-7FFF Opening Modul HG550
|
$4000-7FFF Opening Modul HG550
|
||||||
$8000-$FFF ROM
|
$8000-$FFF ROM
|
||||||
|
|
||||||
|
===============================================================================
|
||||||
|
|
||||||
Mephisto 4 Turbo Kit 18mhz - (mm4tk)
|
Mephisto 4 Turbo Kit 18mhz - (mm4tk)
|
||||||
This is a replacement rom combining the turbo kit initial rom with the original MM IV.
|
This is a replacement rom combining the turbo kit initial rom with the original MM IV.
|
||||||
The Turbo Kit powers up to it's tiny rom, copies itself to ram, banks in normal rom,
|
The Turbo Kit powers up to it's tiny rom, copies itself to ram, banks in normal rom,
|
||||||
@ -70,11 +79,6 @@ http://chesseval.com/ChessEvalJournal/PrototypeMMV.htm
|
|||||||
|
|
||||||
MM VI (Saitek, 1994) is on different hardware, H8 CPU.
|
MM VI (Saitek, 1994) is on different hardware, H8 CPU.
|
||||||
|
|
||||||
|
|
||||||
TODO:
|
|
||||||
- need to emulate TurboKit properly, also for mm5p (it's not as simple as a CPU
|
|
||||||
overclock plus ROM patch)
|
|
||||||
|
|
||||||
******************************************************************************/
|
******************************************************************************/
|
||||||
|
|
||||||
#include "emu.h"
|
#include "emu.h"
|
||||||
@ -120,7 +124,6 @@ public:
|
|||||||
void bup(machine_config &config);
|
void bup(machine_config &config);
|
||||||
|
|
||||||
protected:
|
protected:
|
||||||
virtual void machine_start() override;
|
|
||||||
virtual void machine_reset() override;
|
virtual void machine_reset() override;
|
||||||
|
|
||||||
private:
|
private:
|
||||||
@ -140,10 +143,6 @@ private:
|
|||||||
u8 keys_r(offs_t offset);
|
u8 keys_r(offs_t offset);
|
||||||
};
|
};
|
||||||
|
|
||||||
void mm2_state::machine_start()
|
|
||||||
{
|
|
||||||
}
|
|
||||||
|
|
||||||
void mm2_state::machine_reset()
|
void mm2_state::machine_reset()
|
||||||
{
|
{
|
||||||
m_display->reset();
|
m_display->reset();
|
||||||
|
@ -493,55 +493,60 @@ license:CC0
|
|||||||
<element ref="gray"><bounds x="89.7" y="105.3" width="0.9" height="0.9" /></element>
|
<element ref="gray"><bounds x="89.7" y="105.3" width="0.9" height="0.9" /></element>
|
||||||
<element ref="white"><bounds x="94.5" y="105.1" width="1.3" height="1.3" /></element>
|
<element ref="white"><bounds x="94.5" y="105.1" width="1.3" height="1.3" /></element>
|
||||||
|
|
||||||
<!-- Buttons (new_keyboard)-->
|
<element ref="keys" inputtag="KEY.1" inputmask="0x01"> <!-- INFO -->
|
||||||
<element ref="keys" inputtag="LINE1" inputmask="0x01"> <!-- INFO -->
|
|
||||||
<bounds x="69" y="93" width="4" height="4" /><color alpha="0.25" />
|
<bounds x="69" y="93" width="4" height="4" /><color alpha="0.25" />
|
||||||
</element>
|
</element>
|
||||||
<element ref="keys" inputtag="LINE1" inputmask="0x02"> <!-- POS -->
|
<element ref="keys" inputtag="KEY.1" inputmask="0x02"> <!-- POS -->
|
||||||
<bounds x="74" y="93" width="4" height="4" /><color alpha="0.25" />
|
<bounds x="74" y="93" width="4" height="4" /><color alpha="0.25" />
|
||||||
</element>
|
</element>
|
||||||
<element ref="keys" inputtag="LINE1" inputmask="0x04"> <!-- LEV -->
|
<element ref="keys" inputtag="KEY.1" inputmask="0x04"> <!-- LEV -->
|
||||||
<bounds x="79" y="93" width="4" height="4" /><color alpha="0.25" />
|
<bounds x="79" y="93" width="4" height="4" /><color alpha="0.25" />
|
||||||
</element>
|
</element>
|
||||||
<element ref="keys" inputtag="LINE1" inputmask="0x08"> <!-- MEM -->
|
<element ref="keys" inputtag="KEY.1" inputmask="0x08"> <!-- MEM -->
|
||||||
<bounds x="84" y="93" width="4" height="4" /><color alpha="0.25" />
|
<bounds x="84" y="93" width="4" height="4" /><color alpha="0.25" />
|
||||||
</element>
|
</element>
|
||||||
<element ref="keys" inputtag="LINE1" inputmask="0x10"> <!-- CL -->
|
<element ref="keys" inputtag="KEY.1" inputmask="0x10"> <!-- CL -->
|
||||||
<bounds x="89" y="93" width="4" height="4" /><color alpha="0.25" />
|
<bounds x="89" y="93" width="4" height="4" /><color alpha="0.25" />
|
||||||
</element>
|
</element>
|
||||||
<element ref="keys" inputtag="LINE1" inputmask="0x20"> <!-- ENT -->
|
<element ref="keys" inputtag="KEY.1" inputmask="0x20"> <!-- ENT -->
|
||||||
<bounds x="94" y="93" width="4" height="4" /><color alpha="0.25" />
|
<bounds x="94" y="93" width="4" height="4" /><color alpha="0.25" />
|
||||||
</element>
|
</element>
|
||||||
|
|
||||||
<element ref="keys" inputtag="LINE0" inputmask="0x01"> <!-- A1 -->
|
<element ref="keys" inputtag="KEY.0" inputmask="0x01"> <!-- A1 -->
|
||||||
<bounds x="69" y="98" width="4" height="4" /><color alpha="0.25" />
|
<bounds x="69" y="98" width="4" height="4" /><color alpha="0.25" />
|
||||||
</element>
|
</element>
|
||||||
<element ref="keys" inputtag="LINE0" inputmask="0x02"> <!-- B2 -->
|
<element ref="keys" inputtag="KEY.0" inputmask="0x02"> <!-- B2 -->
|
||||||
<bounds x="74" y="98" width="4" height="4" /><color alpha="0.25" />
|
<bounds x="74" y="98" width="4" height="4" /><color alpha="0.25" />
|
||||||
</element>
|
</element>
|
||||||
<element ref="keys" inputtag="LINE0" inputmask="0x04"> <!-- C3 -->
|
<element ref="keys" inputtag="KEY.0" inputmask="0x04"> <!-- C3 -->
|
||||||
<bounds x="79" y="98" width="4" height="4" /><color alpha="0.25" />
|
<bounds x="79" y="98" width="4" height="4" /><color alpha="0.25" />
|
||||||
</element>
|
</element>
|
||||||
<element ref="keys" inputtag="LINE0" inputmask="0x08"> <!-- D4 -->
|
<element ref="keys" inputtag="KEY.0" inputmask="0x08"> <!-- D4 -->
|
||||||
<bounds x="84" y="98" width="4" height="4" /><color alpha="0.25" />
|
<bounds x="84" y="98" width="4" height="4" /><color alpha="0.25" />
|
||||||
</element>
|
</element>
|
||||||
<element ref="keys" inputtag="LINE0" inputmask="0x10"> <!-- E5 -->
|
<element ref="keys" inputtag="KEY.0" inputmask="0x10"> <!-- E5 -->
|
||||||
<bounds x="89" y="98" width="4" height="4" /><color alpha="0.25" />
|
<bounds x="89" y="98" width="4" height="4" /><color alpha="0.25" />
|
||||||
</element>
|
</element>
|
||||||
<element ref="keys" inputtag="LINE0" inputmask="0x20"> <!-- F6 -->
|
<element ref="keys" inputtag="KEY.0" inputmask="0x20"> <!-- F6 -->
|
||||||
<bounds x="94" y="98" width="4" height="4" /><color alpha="0.25" />
|
<bounds x="94" y="98" width="4" height="4" /><color alpha="0.25" />
|
||||||
</element>
|
</element>
|
||||||
|
|
||||||
<element ref="keys" inputtag="LINE1" inputmask="0x40"> <!-- G7 -->
|
<element ref="keys" inputtag="RESET" inputmask="0x01"> <!-- RES -->
|
||||||
|
<bounds x="69" y="103" width="4" height="4" /><color alpha="0.25" />
|
||||||
|
</element>
|
||||||
|
<element ref="keys" inputtag="RESET" inputmask="0x02"> <!-- RES -->
|
||||||
|
<bounds x="74" y="103" width="4" height="4" /><color alpha="0.25" />
|
||||||
|
</element>
|
||||||
|
<element ref="keys" inputtag="KEY.1" inputmask="0x40"> <!-- G7 -->
|
||||||
<bounds x="79" y="103" width="4" height="4" /><color alpha="0.25" />
|
<bounds x="79" y="103" width="4" height="4" /><color alpha="0.25" />
|
||||||
</element>
|
</element>
|
||||||
<element ref="keys" inputtag="LINE1" inputmask="0x80"> <!-- H8 -->
|
<element ref="keys" inputtag="KEY.1" inputmask="0x80"> <!-- H8 -->
|
||||||
<bounds x="84" y="103" width="4" height="4" /><color alpha="0.25" />
|
<bounds x="84" y="103" width="4" height="4" /><color alpha="0.25" />
|
||||||
</element>
|
</element>
|
||||||
<element ref="keys" inputtag="LINE0" inputmask="0x40"> <!-- 9 -->
|
<element ref="keys" inputtag="KEY.0" inputmask="0x40"> <!-- 9 -->
|
||||||
<bounds x="89" y="103" width="4" height="4" /><color alpha="0.25" />
|
<bounds x="89" y="103" width="4" height="4" /><color alpha="0.25" />
|
||||||
</element>
|
</element>
|
||||||
<element ref="keys" inputtag="LINE0" inputmask="0x80"> <!-- 0 -->
|
<element ref="keys" inputtag="KEY.0" inputmask="0x80"> <!-- 0 -->
|
||||||
<bounds x="94" y="103" width="4" height="4" /><color alpha="0.25" />
|
<bounds x="94" y="103" width="4" height="4" /><color alpha="0.25" />
|
||||||
</element>
|
</element>
|
||||||
</group>
|
</group>
|
||||||
|
@ -491,55 +491,54 @@ license:CC0
|
|||||||
<element ref="gray"><bounds x="89.7" y="105.3" width="0.9" height="0.9" /></element>
|
<element ref="gray"><bounds x="89.7" y="105.3" width="0.9" height="0.9" /></element>
|
||||||
<element ref="white"><bounds x="94.5" y="105.1" width="1.3" height="1.3" /></element>
|
<element ref="white"><bounds x="94.5" y="105.1" width="1.3" height="1.3" /></element>
|
||||||
|
|
||||||
<!-- Buttons (old_keyboard)-->
|
<element ref="keys" inputtag="KEY.1" inputmask="0x02"> <!-- INFO -->
|
||||||
<element ref="keys" inputtag="LINE1" inputmask="0x02"> <!-- INFO -->
|
|
||||||
<bounds x="69" y="93" width="4" height="4" /><color alpha="0.25" />
|
<bounds x="69" y="93" width="4" height="4" /><color alpha="0.25" />
|
||||||
</element>
|
</element>
|
||||||
<element ref="keys" inputtag="LINE1" inputmask="0x08"> <!-- POS -->
|
<element ref="keys" inputtag="KEY.1" inputmask="0x08"> <!-- POS -->
|
||||||
<bounds x="74" y="93" width="4" height="4" /><color alpha="0.25" />
|
<bounds x="74" y="93" width="4" height="4" /><color alpha="0.25" />
|
||||||
</element>
|
</element>
|
||||||
<element ref="keys" inputtag="LINE1" inputmask="0x20"> <!-- LEV -->
|
<element ref="keys" inputtag="KEY.1" inputmask="0x20"> <!-- LEV -->
|
||||||
<bounds x="79" y="93" width="4" height="4" /><color alpha="0.25" />
|
<bounds x="79" y="93" width="4" height="4" /><color alpha="0.25" />
|
||||||
</element>
|
</element>
|
||||||
<element ref="keys" inputtag="LINE1" inputmask="0x80"> <!-- MEM -->
|
<element ref="keys" inputtag="KEY.1" inputmask="0x80"> <!-- MEM -->
|
||||||
<bounds x="84" y="93" width="4" height="4" /><color alpha="0.25" />
|
<bounds x="84" y="93" width="4" height="4" /><color alpha="0.25" />
|
||||||
</element>
|
</element>
|
||||||
<element ref="keys" inputtag="LINE0" inputmask="0x02"> <!-- CL -->
|
<element ref="keys" inputtag="KEY.0" inputmask="0x02"> <!-- CL -->
|
||||||
<bounds x="89" y="93" width="4" height="4" /><color alpha="0.25" />
|
<bounds x="89" y="93" width="4" height="4" /><color alpha="0.25" />
|
||||||
</element>
|
</element>
|
||||||
<element ref="keys" inputtag="LINE0" inputmask="0x08"> <!-- ENT -->
|
<element ref="keys" inputtag="KEY.0" inputmask="0x08"> <!-- ENT -->
|
||||||
<bounds x="94" y="93" width="4" height="4" /><color alpha="0.25" />
|
<bounds x="94" y="93" width="4" height="4" /><color alpha="0.25" />
|
||||||
</element>
|
</element>
|
||||||
|
|
||||||
<element ref="keys" inputtag="LINE0" inputmask="0x20"> <!-- A1 -->
|
<element ref="keys" inputtag="KEY.0" inputmask="0x20"> <!-- A1 -->
|
||||||
<bounds x="69" y="98" width="4" height="4" /><color alpha="0.25" />
|
<bounds x="69" y="98" width="4" height="4" /><color alpha="0.25" />
|
||||||
</element>
|
</element>
|
||||||
<element ref="keys" inputtag="LINE0" inputmask="0x80"> <!-- B2 -->
|
<element ref="keys" inputtag="KEY.0" inputmask="0x80"> <!-- B2 -->
|
||||||
<bounds x="74" y="98" width="4" height="4" /><color alpha="0.25" />
|
<bounds x="74" y="98" width="4" height="4" /><color alpha="0.25" />
|
||||||
</element>
|
</element>
|
||||||
<element ref="keys" inputtag="LINE0" inputmask="0x04"> <!-- C3 -->
|
<element ref="keys" inputtag="KEY.0" inputmask="0x04"> <!-- C3 -->
|
||||||
<bounds x="79" y="98" width="4" height="4" /><color alpha="0.25" />
|
<bounds x="79" y="98" width="4" height="4" /><color alpha="0.25" />
|
||||||
</element>
|
</element>
|
||||||
<element ref="keys" inputtag="LINE0" inputmask="0x10"> <!-- D4 -->
|
<element ref="keys" inputtag="KEY.0" inputmask="0x10"> <!-- D4 -->
|
||||||
<bounds x="84" y="98" width="4" height="4" /><color alpha="0.25" />
|
<bounds x="84" y="98" width="4" height="4" /><color alpha="0.25" />
|
||||||
</element>
|
</element>
|
||||||
|
|
||||||
<element ref="keys" inputtag="LINE1" inputmask="0x01"> <!-- E5 -->
|
<element ref="keys" inputtag="KEY.1" inputmask="0x01"> <!-- E5 -->
|
||||||
<bounds x="69" y="103" width="4" height="4" /><color alpha="0.25" />
|
<bounds x="69" y="103" width="4" height="4" /><color alpha="0.25" />
|
||||||
</element>
|
</element>
|
||||||
<element ref="keys" inputtag="LINE0" inputmask="0x40"> <!-- F6 -->
|
<element ref="keys" inputtag="KEY.0" inputmask="0x40"> <!-- F6 -->
|
||||||
<bounds x="74" y="103" width="4" height="4" /><color alpha="0.25" />
|
<bounds x="74" y="103" width="4" height="4" /><color alpha="0.25" />
|
||||||
</element>
|
</element>
|
||||||
<element ref="keys" inputtag="LINE1" inputmask="0x40"> <!-- G7 -->
|
<element ref="keys" inputtag="KEY.1" inputmask="0x40"> <!-- G7 -->
|
||||||
<bounds x="79" y="103" width="4" height="4" /><color alpha="0.25" />
|
<bounds x="79" y="103" width="4" height="4" /><color alpha="0.25" />
|
||||||
</element>
|
</element>
|
||||||
<element ref="keys" inputtag="LINE1" inputmask="0x10"> <!-- H8 -->
|
<element ref="keys" inputtag="KEY.1" inputmask="0x10"> <!-- H8 -->
|
||||||
<bounds x="84" y="103" width="4" height="4" /><color alpha="0.25" />
|
<bounds x="84" y="103" width="4" height="4" /><color alpha="0.25" />
|
||||||
</element>
|
</element>
|
||||||
<element ref="keys" inputtag="LINE0" inputmask="0x01"> <!-- 9 -->
|
<element ref="keys" inputtag="KEY.0" inputmask="0x01"> <!-- 9 -->
|
||||||
<bounds x="89" y="103" width="4" height="4" /><color alpha="0.25" />
|
<bounds x="89" y="103" width="4" height="4" /><color alpha="0.25" />
|
||||||
</element>
|
</element>
|
||||||
<element ref="keys" inputtag="LINE1" inputmask="0x04"> <!-- 0 -->
|
<element ref="keys" inputtag="KEY.1" inputmask="0x04"> <!-- 0 -->
|
||||||
<bounds x="94" y="103" width="4" height="4" /><color alpha="0.25" />
|
<bounds x="94" y="103" width="4" height="4" /><color alpha="0.25" />
|
||||||
</element>
|
</element>
|
||||||
</group>
|
</group>
|
||||||
|
@ -491,23 +491,23 @@ license:CC0
|
|||||||
<element ref="text_p1"><bounds x="8" y="10.6" width="1.4" height="1.4" /></element>
|
<element ref="text_p1"><bounds x="8" y="10.6" width="1.4" height="1.4" /></element>
|
||||||
|
|
||||||
<element ref="keys" inputtag="IN.0" inputmask="0x01"><bounds x="16" y="0.0" width="3" height="1.75" /><color alpha="0.25" /></element>
|
<element ref="keys" inputtag="IN.0" inputmask="0x01"><bounds x="16" y="0.0" width="3" height="1.75" /><color alpha="0.25" /></element>
|
||||||
<element ref="keys" inputtag="IN.4" inputmask="0x01"><bounds x="20" y="0.0" width="3" height="1.75" /><color alpha="0.25" /></element>
|
<element ref="keys" inputtag="IN.0" inputmask="0x10"><bounds x="20" y="0.0" width="3" height="1.75" /><color alpha="0.25" /></element>
|
||||||
<element ref="keys" inputtag="IN.0" inputmask="0x02"><bounds x="16" y="3.5" width="3" height="1.75" /><color alpha="0.25" /></element>
|
<element ref="keys" inputtag="IN.1" inputmask="0x01"><bounds x="16" y="3.5" width="3" height="1.75" /><color alpha="0.25" /></element>
|
||||||
<element ref="keys" inputtag="IN.2" inputmask="0x01"><bounds x="20" y="3.5" width="3" height="1.75" /><color alpha="0.25" /></element>
|
<element ref="keys" inputtag="IN.0" inputmask="0x04"><bounds x="20" y="3.5" width="3" height="1.75" /><color alpha="0.25" /></element>
|
||||||
|
|
||||||
<element ref="keys" inputtag="IN.1" inputmask="0x01"><bounds x="0" y="7.0" width="3" height="1.75" /><color alpha="0.25" /></element>
|
<element ref="keys" inputtag="IN.0" inputmask="0x02"><bounds x="0" y="7.0" width="3" height="1.75" /><color alpha="0.25" /></element>
|
||||||
<element ref="keys" inputtag="IN.3" inputmask="0x01"><bounds x="4" y="7.0" width="3" height="1.75" /><color alpha="0.25" /></element>
|
<element ref="keys" inputtag="IN.0" inputmask="0x08"><bounds x="4" y="7.0" width="3" height="1.75" /><color alpha="0.25" /></element>
|
||||||
<element ref="keys" inputtag="IN.5" inputmask="0x01"><bounds x="8" y="7.0" width="3" height="1.75" /><color alpha="0.25" /></element>
|
<element ref="keys" inputtag="IN.0" inputmask="0x20"><bounds x="8" y="7.0" width="3" height="1.75" /><color alpha="0.25" /></element>
|
||||||
<element ref="keys" inputtag="IN.7" inputmask="0x01"><bounds x="12" y="7.0" width="3" height="1.75" /><color alpha="0.25" /></element>
|
<element ref="keys" inputtag="IN.0" inputmask="0x80"><bounds x="12" y="7.0" width="3" height="1.75" /><color alpha="0.25" /></element>
|
||||||
<element ref="keys" inputtag="IN.6" inputmask="0x01"><bounds x="16" y="7.0" width="3" height="1.75" /><color alpha="0.25" /></element>
|
<element ref="keys" inputtag="IN.0" inputmask="0x40"><bounds x="16" y="7.0" width="3" height="1.75" /><color alpha="0.25" /></element>
|
||||||
<element ref="keys" inputtag="IN.6" inputmask="0x02"><bounds x="20" y="7.0" width="3" height="1.75" /><color alpha="0.25" /></element>
|
<element ref="keys" inputtag="IN.1" inputmask="0x40"><bounds x="20" y="7.0" width="3" height="1.75" /><color alpha="0.25" /></element>
|
||||||
|
|
||||||
<element ref="keys" inputtag="IN.1" inputmask="0x02"><bounds x="0" y="10.5" width="3" height="1.75" /><color alpha="0.25" /></element>
|
<element ref="keys" inputtag="IN.1" inputmask="0x02"><bounds x="0" y="10.5" width="3" height="1.75" /><color alpha="0.25" /></element>
|
||||||
<element ref="keys" inputtag="IN.3" inputmask="0x02"><bounds x="4" y="10.5" width="3" height="1.75" /><color alpha="0.25" /></element>
|
<element ref="keys" inputtag="IN.1" inputmask="0x08"><bounds x="4" y="10.5" width="3" height="1.75" /><color alpha="0.25" /></element>
|
||||||
<element ref="keys" inputtag="IN.5" inputmask="0x02"><bounds x="8" y="10.5" width="3" height="1.75" /><color alpha="0.25" /></element>
|
<element ref="keys" inputtag="IN.1" inputmask="0x20"><bounds x="8" y="10.5" width="3" height="1.75" /><color alpha="0.25" /></element>
|
||||||
<element ref="keys" inputtag="IN.7" inputmask="0x02"><bounds x="12" y="10.5" width="3" height="1.75" /><color alpha="0.25" /></element>
|
<element ref="keys" inputtag="IN.1" inputmask="0x80"><bounds x="12" y="10.5" width="3" height="1.75" /><color alpha="0.25" /></element>
|
||||||
<element ref="keys" inputtag="IN.2" inputmask="0x02"><bounds x="16" y="10.5" width="3" height="1.75" /><color alpha="0.25" /></element>
|
<element ref="keys" inputtag="IN.1" inputmask="0x04"><bounds x="16" y="10.5" width="3" height="1.75" /><color alpha="0.25" /></element>
|
||||||
<element ref="keys" inputtag="IN.4" inputmask="0x02"><bounds x="20" y="10.5" width="3" height="1.75" /><color alpha="0.25" /></element>
|
<element ref="keys" inputtag="IN.1" inputmask="0x10"><bounds x="20" y="10.5" width="3" height="1.75" /><color alpha="0.25" /></element>
|
||||||
</group>
|
</group>
|
||||||
|
|
||||||
|
|
||||||
|
@ -529,26 +529,26 @@ license:CC0
|
|||||||
<element ref="gray"><bounds x="89.7" y="105.3" width="0.9" height="0.9" /></element>
|
<element ref="gray"><bounds x="89.7" y="105.3" width="0.9" height="0.9" /></element>
|
||||||
<element ref="white"><bounds x="94.5" y="105.1" width="1.3" height="1.3" /></element>
|
<element ref="white"><bounds x="94.5" y="105.1" width="1.3" height="1.3" /></element>
|
||||||
|
|
||||||
<element ref="keys" inputtag="IN.1" inputmask="0x01"><bounds x="69" y="93" width="4" height="4" /><color alpha="0.25" /></element>
|
<element ref="keys" inputtag="IN.0" inputmask="0x02"><bounds x="69" y="93" width="4" height="4" /><color alpha="0.25" /></element>
|
||||||
<element ref="keys" inputtag="IN.3" inputmask="0x01"><bounds x="74" y="93" width="4" height="4" /><color alpha="0.25" /></element>
|
<element ref="keys" inputtag="IN.0" inputmask="0x08"><bounds x="74" y="93" width="4" height="4" /><color alpha="0.25" /></element>
|
||||||
<element ref="keys" inputtag="IN.5" inputmask="0x01"><bounds x="79" y="93" width="4" height="4" /><color alpha="0.25" /></element>
|
<element ref="keys" inputtag="IN.0" inputmask="0x20"><bounds x="79" y="93" width="4" height="4" /><color alpha="0.25" /></element>
|
||||||
<element ref="keys" inputtag="IN.7" inputmask="0x01"><bounds x="84" y="93" width="4" height="4" /><color alpha="0.25" /></element>
|
<element ref="keys" inputtag="IN.0" inputmask="0x80"><bounds x="84" y="93" width="4" height="4" /><color alpha="0.25" /></element>
|
||||||
<element ref="keys" inputtag="IN.1" inputmask="0x02"><bounds x="89" y="93" width="4" height="4" /><color alpha="0.25" /></element>
|
<element ref="keys" inputtag="IN.1" inputmask="0x02"><bounds x="89" y="93" width="4" height="4" /><color alpha="0.25" /></element>
|
||||||
<element ref="keys" inputtag="IN.3" inputmask="0x02"><bounds x="94" y="93" width="4" height="4" /><color alpha="0.25" /></element>
|
<element ref="keys" inputtag="IN.1" inputmask="0x08"><bounds x="94" y="93" width="4" height="4" /><color alpha="0.25" /></element>
|
||||||
|
|
||||||
<element ref="keys" inputtag="IN.5" inputmask="0x02"><bounds x="69" y="98" width="4" height="4" /><color alpha="0.25" /></element>
|
<element ref="keys" inputtag="IN.1" inputmask="0x20"><bounds x="69" y="98" width="4" height="4" /><color alpha="0.25" /></element>
|
||||||
<element ref="keys" inputtag="IN.7" inputmask="0x02"><bounds x="74" y="98" width="4" height="4" /><color alpha="0.25" /></element>
|
<element ref="keys" inputtag="IN.1" inputmask="0x80"><bounds x="74" y="98" width="4" height="4" /><color alpha="0.25" /></element>
|
||||||
<element ref="keys" inputtag="IN.2" inputmask="0x02"><bounds x="79" y="98" width="4" height="4" /><color alpha="0.25" /></element>
|
<element ref="keys" inputtag="IN.1" inputmask="0x04"><bounds x="79" y="98" width="4" height="4" /><color alpha="0.25" /></element>
|
||||||
<element ref="keys" inputtag="IN.4" inputmask="0x02"><bounds x="84" y="98" width="4" height="4" /><color alpha="0.25" /></element>
|
<element ref="keys" inputtag="IN.1" inputmask="0x10"><bounds x="84" y="98" width="4" height="4" /><color alpha="0.25" /></element>
|
||||||
<element ref="keys" inputtag="IN.X" inputmask="0x01"><bounds x="89" y="98" width="4" height="4" /><color alpha="0.25" /></element>
|
<element ref="keys" inputtag="IN.X" inputmask="0x01"><bounds x="89" y="98" width="4" height="4" /><color alpha="0.25" /></element>
|
||||||
<element ref="keys" inputtag="IN.X" inputmask="0x02"><bounds x="94" y="98" width="4" height="4" /><color alpha="0.25" /></element>
|
<element ref="keys" inputtag="IN.X" inputmask="0x02"><bounds x="94" y="98" width="4" height="4" /><color alpha="0.25" /></element>
|
||||||
|
|
||||||
<element ref="keys" inputtag="IN.0" inputmask="0x01"><bounds x="69" y="103" width="4" height="4" /><color alpha="0.25" /></element>
|
<element ref="keys" inputtag="IN.0" inputmask="0x01"><bounds x="69" y="103" width="4" height="4" /><color alpha="0.25" /></element>
|
||||||
<element ref="keys" inputtag="IN.6" inputmask="0x02"><bounds x="74" y="103" width="4" height="4" /><color alpha="0.25" /></element>
|
<element ref="keys" inputtag="IN.1" inputmask="0x40"><bounds x="74" y="103" width="4" height="4" /><color alpha="0.25" /></element>
|
||||||
<element ref="keys" inputtag="IN.6" inputmask="0x01"><bounds x="79" y="103" width="4" height="4" /><color alpha="0.25" /></element>
|
<element ref="keys" inputtag="IN.0" inputmask="0x40"><bounds x="79" y="103" width="4" height="4" /><color alpha="0.25" /></element>
|
||||||
<element ref="keys" inputtag="IN.4" inputmask="0x01"><bounds x="84" y="103" width="4" height="4" /><color alpha="0.25" /></element>
|
<element ref="keys" inputtag="IN.0" inputmask="0x10"><bounds x="84" y="103" width="4" height="4" /><color alpha="0.25" /></element>
|
||||||
<element ref="keys" inputtag="IN.0" inputmask="0x02"><bounds x="89" y="103" width="4" height="4" /><color alpha="0.25" /></element>
|
<element ref="keys" inputtag="IN.1" inputmask="0x01"><bounds x="89" y="103" width="4" height="4" /><color alpha="0.25" /></element>
|
||||||
<element ref="keys" inputtag="IN.2" inputmask="0x01"><bounds x="94" y="103" width="4" height="4" /><color alpha="0.25" /></element>
|
<element ref="keys" inputtag="IN.0" inputmask="0x04"><bounds x="94" y="103" width="4" height="4" /><color alpha="0.25" /></element>
|
||||||
</group>
|
</group>
|
||||||
|
|
||||||
|
|
||||||
|
@ -22690,6 +22690,13 @@ academy
|
|||||||
academyg
|
academyg
|
||||||
academyga
|
academyga
|
||||||
|
|
||||||
|
@source:mephisto_amsterdam.cpp
|
||||||
|
amsterd // Amsterdam
|
||||||
|
dallas16 // Dallas
|
||||||
|
dallas32 // Dallas
|
||||||
|
roma16 // Roma
|
||||||
|
roma32 // Roma
|
||||||
|
|
||||||
@source:mephisto_berlin.cpp
|
@source:mephisto_berlin.cpp
|
||||||
berl16 // 1992 Mephisto Berlin 68000
|
berl16 // 1992 Mephisto Berlin 68000
|
||||||
berl16a // 1992 Mephisto Berlin 68000
|
berl16a // 1992 Mephisto Berlin 68000
|
||||||
@ -22710,15 +22717,10 @@ mephisto3c
|
|||||||
mephistoj
|
mephistoj
|
||||||
|
|
||||||
@source:mephisto_glasgow.cpp
|
@source:mephisto_glasgow.cpp
|
||||||
amsterd // Amsterdam
|
|
||||||
amsterda // Amsterdam
|
amsterda // Amsterdam
|
||||||
dallas16 // Dallas
|
|
||||||
dallas16a // Dallas
|
dallas16a // Dallas
|
||||||
dallas32 // Dallas
|
|
||||||
glasgow // Glasgow
|
glasgow // Glasgow
|
||||||
roma16 // Roma
|
|
||||||
roma16a // Roma
|
roma16a // Roma
|
||||||
roma32 // Roma
|
|
||||||
|
|
||||||
@source:mephisto_milano.cpp
|
@source:mephisto_milano.cpp
|
||||||
milano // 1991 Mephisto Milano
|
milano // 1991 Mephisto Milano
|
||||||
|
@ -576,6 +576,7 @@ mekd3.cpp
|
|||||||
mekd4.cpp
|
mekd4.cpp
|
||||||
mekd5.cpp
|
mekd5.cpp
|
||||||
mephisto_academy.cpp
|
mephisto_academy.cpp
|
||||||
|
mephisto_amsterdam.cpp
|
||||||
mephisto_berlin.cpp
|
mephisto_berlin.cpp
|
||||||
mephisto_brikett.cpp
|
mephisto_brikett.cpp
|
||||||
mephisto_glasgow.cpp
|
mephisto_glasgow.cpp
|
||||||
|
Loading…
Reference in New Issue
Block a user