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")
|
||||
files {
|
||||
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_brikett.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
|
||||
// copyright-holders:Dirk Verwiebe, Cowering
|
||||
/***************************************************************************
|
||||
// copyright-holders:Dirk Verwiebe, Cowering, hap
|
||||
// thanks-to:Berger
|
||||
/******************************************************************************
|
||||
|
||||
Mephisto Glasgow 3 S chess computer
|
||||
Dirk V.
|
||||
sp_rinter@gmx.de
|
||||
|
||||
68000 CPU
|
||||
64 KB ROM
|
||||
16 KB RAM
|
||||
4 Digit LCD
|
||||
TODO:
|
||||
- add waitstates, CPU is 12MHz but with DTACK waitstates for slow EPROMs,
|
||||
effective speed is less than 10MHz
|
||||
|
||||
===============================================================================
|
||||
|
||||
Hardware notes:
|
||||
- 68000 CPU
|
||||
- 64 KB ROM
|
||||
- 16 KB RAM
|
||||
- 4 Digit LCD
|
||||
|
||||
3*74LS138 Decoder/Multiplexer
|
||||
1*74LS74 Dual positive edge triggered D Flip Flop
|
||||
@ -23,34 +31,18 @@ sp_rinter@gmx.de
|
||||
1*74LS367 3 State Hex Buffers
|
||||
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 "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"
|
||||
#include "mephisto_glasgow.lh"
|
||||
|
||||
|
||||
@ -62,54 +54,37 @@ public:
|
||||
glasgow_state(const machine_config &mconfig, device_type type, const char *tag)
|
||||
: driver_device(mconfig, type, tag)
|
||||
, m_maincpu(*this, "maincpu")
|
||||
, m_dac(*this, "dac")
|
||||
, m_board(*this, "board")
|
||||
, m_keyboard(*this, "LINE%u", 0)
|
||||
, m_digits(*this, "digit%u", 0U)
|
||||
, m_display(*this, "display")
|
||||
, m_dac(*this, "dac")
|
||||
, m_keys(*this, "KEY.%u", 0)
|
||||
{ }
|
||||
|
||||
void glasgow(machine_config &config);
|
||||
|
||||
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_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);
|
||||
|
||||
required_device<cpu_device> m_maincpu;
|
||||
required_device<dac_bit_interface> m_dac;
|
||||
required_device<mephisto_board_device> m_board;
|
||||
required_ioport_array<2> m_keyboard;
|
||||
output_finder<4> m_digits;
|
||||
void control_w(u8 data);
|
||||
u8 keys_r();
|
||||
void keys_w(u8 data);
|
||||
|
||||
u8 m_lcd_shift_counter;
|
||||
u8 m_led7;
|
||||
u8 m_key_select;
|
||||
u8 m_kp_mux = 0;
|
||||
};
|
||||
|
||||
class amsterd_state : public glasgow_state
|
||||
void glasgow_state::machine_start()
|
||||
{
|
||||
public:
|
||||
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);
|
||||
};
|
||||
save_item(NAME(m_kp_mux));
|
||||
}
|
||||
|
||||
|
||||
|
||||
@ -117,95 +92,33 @@ protected:
|
||||
I/O
|
||||
******************************************************************************/
|
||||
|
||||
void glasgow_state::glasgow_lcd_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)
|
||||
void glasgow_state::control_w(u8 data)
|
||||
{
|
||||
// d0: speaker out
|
||||
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();
|
||||
|
||||
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;
|
||||
m_kp_mux = ~data;
|
||||
}
|
||||
|
||||
|
||||
@ -218,38 +131,12 @@ void glasgow_state::glasgow_mem(address_map &map)
|
||||
{
|
||||
map.global_mask(0x1ffff);
|
||||
map(0x000000, 0x00ffff).rom();
|
||||
map(0x010000, 0x010000).w(FUNC(glasgow_state::glasgow_lcd_w));
|
||||
map(0x010002, 0x010002).rw(FUNC(glasgow_state::glasgow_keys_r), FUNC(glasgow_state::glasgow_keys_w));
|
||||
map(0x010004, 0x010004).w(FUNC(glasgow_state::glasgow_lcd_flag_w));
|
||||
map(0x010006, 0x010006).rw("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(0x01c000, 0x01ffff).ram(); // 16KB
|
||||
}
|
||||
|
||||
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));
|
||||
map(0x010000, 0x010000).w(m_display, FUNC(mephisto_display1_device::data_w));
|
||||
map(0x010002, 0x010002).rw(FUNC(glasgow_state::keys_r), FUNC(glasgow_state::keys_w));
|
||||
map(0x010004, 0x010004).w(FUNC(glasgow_state::control_w));
|
||||
map(0x010006, 0x010006).rw(m_board, FUNC(mephisto_board_device::input_r), FUNC(mephisto_board_device::led_w));
|
||||
map(0x010008, 0x010008).w(m_board, FUNC(mephisto_board_device::mux_w));
|
||||
map(0x01c000, 0x01ffff).ram();
|
||||
}
|
||||
|
||||
|
||||
@ -258,48 +145,26 @@ void amsterd_state::dallas32_mem(address_map &map)
|
||||
Input Ports
|
||||
******************************************************************************/
|
||||
|
||||
static INPUT_PORTS_START( new_keyboard )
|
||||
PORT_START("LINE0")
|
||||
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)
|
||||
static INPUT_PORTS_START( glasgow )
|
||||
PORT_START("KEY.0")
|
||||
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("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( 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_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("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("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("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("B / 2 / Pawn") PORT_CODE(KEYCODE_B) PORT_CODE(KEYCODE_2) PORT_CODE(KEYCODE_2_PAD)
|
||||
|
||||
PORT_START("LINE1")
|
||||
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_START("KEY.1")
|
||||
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("INFO") PORT_CODE(KEYCODE_I)
|
||||
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("POS") PORT_CODE(KEYCODE_O)
|
||||
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("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( 0x80, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_NAME("H / 8") PORT_CODE(KEYCODE_H) PORT_CODE(KEYCODE_8) PORT_CODE(KEYCODE_8_PAD)
|
||||
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)
|
||||
PORT_BIT( 0x80, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_NAME("MEM") PORT_CODE(KEYCODE_M)
|
||||
INPUT_PORTS_END
|
||||
|
||||
|
||||
@ -312,13 +177,14 @@ void glasgow_state::glasgow(machine_config &config)
|
||||
{
|
||||
/* basic machine hardware */
|
||||
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);
|
||||
|
||||
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_glasgow);
|
||||
|
||||
/* 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);
|
||||
}
|
||||
|
||||
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_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_REGION( 0x10000, "maincpu", 0 )
|
||||
@ -374,17 +215,6 @@ ROM_START( amsterda )
|
||||
ROM_LOAD16_BYTE("bl_4_1", 0x08001, 0x04000, CRC(533e584a) SHA1(0e4510977dc627125c278920492bc137793a9554) )
|
||||
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_REGION16_BE( 0x1000000, "maincpu", 0 )
|
||||
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_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_REGION16_BE( 0x1000000, "maincpu", 0 )
|
||||
ROM_LOAD16_BYTE("roma_r_low", 0x00000, 0x04000, CRC(f2312170) SHA1(82a50ba59f74365aa77478adaadbbace6693dcc1) )
|
||||
@ -420,16 +239,10 @@ ROM_END
|
||||
Drivers
|
||||
******************************************************************************/
|
||||
|
||||
/* 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 )
|
||||
/* YEAR, NAME, PARENT COMPAT MACHINE INPUT CLASS INIT COMPANY FULLNAME FLAGS */
|
||||
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 )
|
||||
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( 1986, dallas32, 0, 0, dallas32, new_keyboard, amsterd_state, empty_init, "Hegener + Glaser", "Mephisto Dallas 68020", 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 )
|
||||
// newer chesscomputers on 4-ROM hardware (see mephisto_amsterdam.cpp for parent sets)
|
||||
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( 1987, roma16a, roma32, 0, glasgow, glasgow, 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<mephisto_board_device> m_board;
|
||||
required_device<dac_bit_interface> m_dac;
|
||||
required_ioport_array<8> m_inputs;
|
||||
required_ioport_array<2> m_inputs;
|
||||
|
||||
// address maps
|
||||
void mirage_map(address_map &map);
|
||||
@ -97,7 +97,7 @@ private:
|
||||
void sound_w(u8 data);
|
||||
void unknown_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;
|
||||
u8 m_kp_mux = 0;
|
||||
@ -151,17 +151,11 @@ void mm1_state::keypad_w(u8 data)
|
||||
m_kp_mux = ~data;
|
||||
}
|
||||
|
||||
template<int P>
|
||||
template<int N>
|
||||
READ_LINE_MEMBER(mm1_state::keypad_r)
|
||||
{
|
||||
u8 data = 0;
|
||||
|
||||
// EF3,EF4: multiplexed inputs (keypad)
|
||||
for (int i = 0; i < 8; i++)
|
||||
if (BIT(m_kp_mux, i))
|
||||
data |= m_inputs[i]->read();
|
||||
|
||||
return data >> P & 1;
|
||||
return (m_inputs[N]->read() & m_kp_mux) ? 1 : 0;
|
||||
}
|
||||
|
||||
|
||||
@ -203,69 +197,45 @@ void mm1_state::mm1_io(address_map &map)
|
||||
static INPUT_PORTS_START( mm1 )
|
||||
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(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_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_START("IN.2")
|
||||
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(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_START("IN.3")
|
||||
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")
|
||||
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_BIT(0x08, 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_D) PORT_CODE(KEYCODE_4) PORT_CODE(KEYCODE_4_PAD) PORT_NAME("D / 4 / Bishop")
|
||||
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_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")
|
||||
INPUT_PORTS_END
|
||||
|
||||
static INPUT_PORTS_START( mirage )
|
||||
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(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_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_START("IN.2")
|
||||
PORT_BIT(0x01, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_CODE(KEYCODE_ENTER) PORT_CODE(KEYCODE_ENTER_PAD) PORT_NAME("ENT")
|
||||
PORT_BIT(0x02, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_CODE(KEYCODE_9) PORT_CODE(KEYCODE_9_PAD) PORT_NAME("Black / 9")
|
||||
|
||||
PORT_START("IN.3")
|
||||
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_BIT(0x04, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_CODE(KEYCODE_9) PORT_CODE(KEYCODE_9_PAD) PORT_NAME("Black / 9")
|
||||
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(0x10, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_CODE(KEYCODE_0) PORT_CODE(KEYCODE_0_PAD) PORT_NAME("White / 0")
|
||||
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_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_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)
|
||||
|
@ -5,11 +5,18 @@
|
||||
Mephisto 4 + 5 Chess Computer
|
||||
2007 Dirk V.
|
||||
|
||||
CPU: G65SC02P-4 or R65C02P3
|
||||
Clock: 4.9152 MHz
|
||||
NMI CLK: 600 Hz
|
||||
IRQ Line is set to VSS
|
||||
8 KByte SRAM Sony CXK5864-15L
|
||||
TODO:
|
||||
- need to emulate TurboKit properly, also for mm5p (it's not as simple as a CPU
|
||||
overclock plus ROM patch)
|
||||
|
||||
===============================================================================
|
||||
|
||||
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-CD74HC166E
|
||||
@ -52,6 +59,8 @@ $3000 // Chess Board
|
||||
$4000-7FFF Opening Modul HG550
|
||||
$8000-$FFF ROM
|
||||
|
||||
===============================================================================
|
||||
|
||||
Mephisto 4 Turbo Kit 18mhz - (mm4tk)
|
||||
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,
|
||||
@ -70,11 +79,6 @@ http://chesseval.com/ChessEvalJournal/PrototypeMMV.htm
|
||||
|
||||
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"
|
||||
@ -120,7 +124,6 @@ public:
|
||||
void bup(machine_config &config);
|
||||
|
||||
protected:
|
||||
virtual void machine_start() override;
|
||||
virtual void machine_reset() override;
|
||||
|
||||
private:
|
||||
@ -140,10 +143,6 @@ private:
|
||||
u8 keys_r(offs_t offset);
|
||||
};
|
||||
|
||||
void mm2_state::machine_start()
|
||||
{
|
||||
}
|
||||
|
||||
void mm2_state::machine_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="white"><bounds x="94.5" y="105.1" width="1.3" height="1.3" /></element>
|
||||
|
||||
<!-- Buttons (new_keyboard)-->
|
||||
<element ref="keys" inputtag="LINE1" inputmask="0x01"> <!-- INFO -->
|
||||
<element ref="keys" inputtag="KEY.1" inputmask="0x01"> <!-- INFO -->
|
||||
<bounds x="69" y="93" width="4" height="4" /><color alpha="0.25" />
|
||||
</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" />
|
||||
</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" />
|
||||
</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" />
|
||||
</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" />
|
||||
</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" />
|
||||
</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" />
|
||||
</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" />
|
||||
</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" />
|
||||
</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" />
|
||||
</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" />
|
||||
</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" />
|
||||
</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" />
|
||||
</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" />
|
||||
</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" />
|
||||
</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" />
|
||||
</element>
|
||||
</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="white"><bounds x="94.5" y="105.1" width="1.3" height="1.3" /></element>
|
||||
|
||||
<!-- Buttons (old_keyboard)-->
|
||||
<element ref="keys" inputtag="LINE1" inputmask="0x02"> <!-- INFO -->
|
||||
<element ref="keys" inputtag="KEY.1" inputmask="0x02"> <!-- INFO -->
|
||||
<bounds x="69" y="93" width="4" height="4" /><color alpha="0.25" />
|
||||
</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" />
|
||||
</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" />
|
||||
</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" />
|
||||
</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" />
|
||||
</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" />
|
||||
</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" />
|
||||
</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" />
|
||||
</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" />
|
||||
</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" />
|
||||
</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" />
|
||||
</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" />
|
||||
</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" />
|
||||
</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" />
|
||||
</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" />
|
||||
</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" />
|
||||
</element>
|
||||
</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="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="0x02"><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="0x10"><bounds x="20" y="0.0" 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.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.3" inputmask="0x01"><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.7" inputmask="0x01"><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.6" inputmask="0x02"><bounds x="20" 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.0" inputmask="0x08"><bounds x="4" 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.0" inputmask="0x80"><bounds x="12" 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.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.3" inputmask="0x02"><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.7" inputmask="0x02"><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.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="0x08"><bounds x="4" 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.1" inputmask="0x80"><bounds x="12" 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.1" inputmask="0x10"><bounds x="20" y="10.5" width="3" height="1.75" /><color alpha="0.25" /></element>
|
||||
</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="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.3" inputmask="0x01"><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.7" inputmask="0x01"><bounds x="84" 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.0" inputmask="0x08"><bounds x="74" 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.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.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.7" inputmask="0x02"><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.4" inputmask="0x02"><bounds x="84" 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.1" inputmask="0x80"><bounds x="74" 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.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="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.6" inputmask="0x02"><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.4" inputmask="0x01"><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.2" inputmask="0x01"><bounds x="94" 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.0" inputmask="0x40"><bounds x="79" 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.1" inputmask="0x01"><bounds x="89" 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>
|
||||
|
||||
|
||||
|
@ -22690,6 +22690,13 @@ academy
|
||||
academyg
|
||||
academyga
|
||||
|
||||
@source:mephisto_amsterdam.cpp
|
||||
amsterd // Amsterdam
|
||||
dallas16 // Dallas
|
||||
dallas32 // Dallas
|
||||
roma16 // Roma
|
||||
roma32 // Roma
|
||||
|
||||
@source:mephisto_berlin.cpp
|
||||
berl16 // 1992 Mephisto Berlin 68000
|
||||
berl16a // 1992 Mephisto Berlin 68000
|
||||
@ -22710,15 +22717,10 @@ mephisto3c
|
||||
mephistoj
|
||||
|
||||
@source:mephisto_glasgow.cpp
|
||||
amsterd // Amsterdam
|
||||
amsterda // Amsterdam
|
||||
dallas16 // Dallas
|
||||
dallas16a // Dallas
|
||||
dallas32 // Dallas
|
||||
glasgow // Glasgow
|
||||
roma16 // Roma
|
||||
roma16a // Roma
|
||||
roma32 // Roma
|
||||
|
||||
@source:mephisto_milano.cpp
|
||||
milano // 1991 Mephisto Milano
|
||||
|
@ -576,6 +576,7 @@ mekd3.cpp
|
||||
mekd4.cpp
|
||||
mekd5.cpp
|
||||
mephisto_academy.cpp
|
||||
mephisto_amsterdam.cpp
|
||||
mephisto_berlin.cpp
|
||||
mephisto_brikett.cpp
|
||||
mephisto_glasgow.cpp
|
||||
|
Loading…
Reference in New Issue
Block a user