mirror of
https://github.com/holub/mame
synced 2025-04-16 13:34:55 +03:00
mephisto_academy: move to separate driver (nw)
This commit is contained in:
parent
53765dacde
commit
776013e80c
@ -2455,6 +2455,7 @@ files {
|
||||
|
||||
createMESSProjects(_target, _subtarget, "hegener")
|
||||
files {
|
||||
MAME_DIR .. "src/mame/drivers/mephisto_academy.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",
|
||||
|
@ -204,8 +204,8 @@ void dominator_state::dominator(machine_config &config)
|
||||
R65C02(config, m_maincpu, 4_MHz_XTAL);
|
||||
m_maincpu->set_addrmap(AS_PROGRAM, &dominator_state::main_map);
|
||||
|
||||
const attotime irq_period = attotime::from_hz(4_MHz_XTAL / 0x2000); // from 4020
|
||||
m_maincpu->set_periodic_int(FUNC(dominator_state::nmi_line_pulse), irq_period);
|
||||
const attotime nmi_period = attotime::from_hz(4_MHz_XTAL / 0x2000); // from 4020
|
||||
m_maincpu->set_periodic_int(FUNC(dominator_state::nmi_line_pulse), nmi_period);
|
||||
|
||||
NVRAM(config, "nvram", nvram_device::DEFAULT_ALL_0);
|
||||
|
||||
|
@ -220,7 +220,8 @@ void eag_state::init_eag2100()
|
||||
void eag_state::machine_reset()
|
||||
{
|
||||
fidel_clockdiv_state::machine_reset();
|
||||
m_rombank->set_entry(0);
|
||||
if (m_rombank != nullptr)
|
||||
m_rombank->set_entry(0);
|
||||
}
|
||||
|
||||
|
||||
|
@ -169,7 +169,7 @@ public:
|
||||
vsc_state(const machine_config &mconfig, device_type type, const char *tag) :
|
||||
driver_device(mconfig, type, tag),
|
||||
m_maincpu(*this, "maincpu"),
|
||||
m_irq_on(*this, "irq_on"),
|
||||
m_nmi_on(*this, "nmi_on"),
|
||||
m_z80pio(*this, "z80pio"),
|
||||
m_ppi8255(*this, "ppi8255"),
|
||||
m_board(*this, "board"),
|
||||
@ -189,7 +189,7 @@ protected:
|
||||
private:
|
||||
// devices/pointers
|
||||
required_device<cpu_device> m_maincpu;
|
||||
required_device<timer_device> m_irq_on;
|
||||
required_device<timer_device> m_nmi_on;
|
||||
required_device<z80pio_device> m_z80pio;
|
||||
required_device<i8255_device> m_ppi8255;
|
||||
required_device<sensorboard_device> m_board;
|
||||
@ -206,8 +206,8 @@ private:
|
||||
void main_io_trampoline_w(offs_t offset, u8 data);
|
||||
|
||||
// periodic interrupts
|
||||
template<int Line> TIMER_DEVICE_CALLBACK_MEMBER(irq_on) { m_maincpu->set_input_line(Line, ASSERT_LINE); }
|
||||
template<int Line> TIMER_DEVICE_CALLBACK_MEMBER(irq_off) { m_maincpu->set_input_line(Line, CLEAR_LINE); }
|
||||
template<int Line> TIMER_DEVICE_CALLBACK_MEMBER(nmi_on) { m_maincpu->set_input_line(Line, ASSERT_LINE); }
|
||||
template<int Line> TIMER_DEVICE_CALLBACK_MEMBER(nmi_off) { m_maincpu->set_input_line(Line, CLEAR_LINE); }
|
||||
|
||||
// I/O handlers
|
||||
void update_display();
|
||||
@ -426,10 +426,10 @@ void vsc_state::vsc(machine_config &config)
|
||||
m_maincpu->set_addrmap(AS_PROGRAM, &vsc_state::main_map);
|
||||
m_maincpu->set_addrmap(AS_IO, &vsc_state::main_io);
|
||||
|
||||
const attotime irq_period = attotime::from_hz(600); // 555 timer, ideal frequency is 600Hz (measurement was 587Hz)
|
||||
TIMER(config, m_irq_on).configure_periodic(FUNC(vsc_state::irq_on<INPUT_LINE_NMI>), irq_period);
|
||||
m_irq_on->set_start_delay(irq_period - attotime::from_usec(845)); // active for 0.845ms (approx half)
|
||||
TIMER(config, "irq_off").configure_periodic(FUNC(vsc_state::irq_off<INPUT_LINE_NMI>), irq_period);
|
||||
const attotime nmi_period = attotime::from_hz(600); // 555 timer, ideal frequency is 600Hz (measurement was 587Hz)
|
||||
TIMER(config, m_nmi_on).configure_periodic(FUNC(vsc_state::nmi_on<INPUT_LINE_NMI>), nmi_period);
|
||||
m_nmi_on->set_start_delay(nmi_period - attotime::from_usec(845)); // active for 0.845ms (approx half)
|
||||
TIMER(config, "nmi_off").configure_periodic(FUNC(vsc_state::nmi_off<INPUT_LINE_NMI>), nmi_period);
|
||||
|
||||
I8255(config, m_ppi8255);
|
||||
m_ppi8255->out_pa_callback().set(FUNC(vsc_state::ppi_porta_w));
|
||||
|
@ -592,16 +592,16 @@ Notes:
|
||||
|
||||
- bosco: there appears to be a bug in the code at 0BB1, which handles communication
|
||||
with the 06XX custom chip. First it saves in A' the command to write, then if a
|
||||
transfer is still in progress it jups to 0BC1, does other things, then restores
|
||||
transfer is still in progress it jumps to 0BC1, does other things, then restores
|
||||
the command from A' and stores it in RAM. At that point (0BE1) it checks again if
|
||||
a transfer is in progress. If the trasnfer has terminated, it jumps to 0BEB, which
|
||||
a transfer is in progress. If the transfer has terminated, it jumps to 0BEB, which
|
||||
restores the command from RAM, and jumps back to 0BBA to send the command. However,
|
||||
the instruction at 0BBA is ex af,af', so the command is overwritten with garbage.
|
||||
There's also an exx at 0BBB which seems unnecessary but that's harmless.
|
||||
Anyway, what this bug means is that we must make sure that the 06XX generates NMIs
|
||||
quickly enough to ensure that 0BB1 is usually not called with a transfer still is
|
||||
progress. It doesn't seem possible to prevent it altogether though, so we can only
|
||||
hope that the transfer doesn't terminate in the middle of the function.
|
||||
progress. It doesn't seem possible to prevent it altogether though, so we can only
|
||||
hope that the transfer doesn't terminate in the middle of the function.
|
||||
|
||||
- bosco: we have two dumps of the sound shape ROM, "prom.1d" and "bosco.spr". Music
|
||||
changes a lot from one version to the other.
|
||||
|
177
src/mame/drivers/mephisto_academy.cpp
Normal file
177
src/mame/drivers/mephisto_academy.cpp
Normal file
@ -0,0 +1,177 @@
|
||||
// license:BSD-3-Clause
|
||||
// copyright-holders:Sandro Ronco, hap
|
||||
// thanks-to:yoyo_chessboard
|
||||
/***************************************************************************
|
||||
|
||||
Mephisto Academy
|
||||
|
||||
Hardware notes:
|
||||
- PCB label HGS 10 130 01
|
||||
- VL65NC02-04PC, 4.91Mhz XTAL
|
||||
- 2*32KB ROM(TC57256AD-12), 1st ROM half-empty
|
||||
- 8KB battery-backed RAM(TC5564APL-15)
|
||||
- HD44100H, HD44780, 2*16 chars LCD screen
|
||||
- magnets chessboard with leds, 8 tri-color leds, beeper
|
||||
|
||||
Since the program is on an external module, it appears it was meant to be
|
||||
a modular chesscomputer. However, no extra modules were sold separately.
|
||||
Module PCB is the same as Super Mondial II College, label HGS 10 116 05.
|
||||
|
||||
***************************************************************************/
|
||||
|
||||
#include "emu.h"
|
||||
|
||||
#include "cpu/m6502/m65c02.h"
|
||||
#include "machine/74259.h"
|
||||
#include "machine/nvram.h"
|
||||
#include "machine/mmboard.h"
|
||||
#include "video/mmdisplay2.h"
|
||||
#include "video/pwm.h"
|
||||
|
||||
#include "mephisto_academy.lh"
|
||||
|
||||
|
||||
class academy_state : public driver_device
|
||||
{
|
||||
public:
|
||||
academy_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_led_pwm(*this, "led_pwm")
|
||||
, m_outlatch(*this, "outlatch")
|
||||
, m_keys(*this, "KEY")
|
||||
{ }
|
||||
|
||||
void academy(machine_config &config);
|
||||
|
||||
private:
|
||||
required_device<cpu_device> m_maincpu;
|
||||
required_device<mephisto_board_device> m_board;
|
||||
required_device<pwm_display_device> m_led_pwm;
|
||||
required_device<hc259_device> m_outlatch;
|
||||
required_ioport m_keys;
|
||||
|
||||
void main_map(address_map &map);
|
||||
|
||||
void led_w(u8 data);
|
||||
u8 input_r();
|
||||
};
|
||||
|
||||
|
||||
|
||||
/******************************************************************************
|
||||
I/O
|
||||
******************************************************************************/
|
||||
|
||||
void academy_state::led_w(u8 data)
|
||||
{
|
||||
// d0-d3: keypad led select
|
||||
// d4-d7: keypad led data
|
||||
m_led_pwm->matrix(data & 0xf, ~data >> 4 & 0xf);
|
||||
}
|
||||
|
||||
u8 academy_state::input_r()
|
||||
{
|
||||
// 74259 Q1 selects keypad
|
||||
u8 data = m_outlatch->q1_r() ? 0 : m_keys->read();
|
||||
return ~m_board->input_r() | data;
|
||||
}
|
||||
|
||||
|
||||
|
||||
/******************************************************************************
|
||||
Address Maps
|
||||
******************************************************************************/
|
||||
|
||||
void academy_state::main_map(address_map &map)
|
||||
{
|
||||
map(0x0000, 0x1fff).ram().share("nvram");
|
||||
map(0x2400, 0x2400).r(FUNC(academy_state::input_r));
|
||||
map(0x2800, 0x2800).w(m_board, FUNC(mephisto_board_device::mux_w));
|
||||
map(0x2c00, 0x2c00).w(m_board, FUNC(mephisto_board_device::led_w));
|
||||
map(0x3000, 0x3007).w("outlatch", FUNC(hc259_device::write_d7));
|
||||
map(0x3400, 0x3400).w(FUNC(academy_state::led_w));
|
||||
map(0x3800, 0x3801).rw("display:hd44780", FUNC(hd44780_device::read), FUNC(hd44780_device::write));
|
||||
map(0x4000, 0xffff).rom();
|
||||
}
|
||||
|
||||
|
||||
|
||||
/******************************************************************************
|
||||
Input Ports
|
||||
******************************************************************************/
|
||||
|
||||
static INPUT_PORTS_START( academy )
|
||||
PORT_START("KEY")
|
||||
PORT_BIT(0x01, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_NAME("TRAIN") PORT_CODE(KEYCODE_T)
|
||||
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("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("LEV") PORT_CODE(KEYCODE_L)
|
||||
PORT_BIT(0x20, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_NAME("FCT") PORT_CODE(KEYCODE_F)
|
||||
PORT_BIT(0x40, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_NAME("ENT") PORT_CODE(KEYCODE_ENTER) PORT_CODE(KEYCODE_F1) // combine for NEW GAME
|
||||
PORT_BIT(0x80, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_NAME("CL") PORT_CODE(KEYCODE_BACKSPACE) PORT_CODE(KEYCODE_DEL) PORT_CODE(KEYCODE_F1) // "
|
||||
INPUT_PORTS_END
|
||||
|
||||
|
||||
|
||||
/******************************************************************************
|
||||
Machine Configs
|
||||
******************************************************************************/
|
||||
|
||||
void academy_state::academy(machine_config &config)
|
||||
{
|
||||
/* basic machine hardware */
|
||||
M65C02(config, m_maincpu, 4.9152_MHz_XTAL);
|
||||
m_maincpu->set_addrmap(AS_PROGRAM, &academy_state::main_map);
|
||||
|
||||
const attotime nmi_period = attotime::from_hz(4.9152_MHz_XTAL / (1 << 13));
|
||||
m_maincpu->set_periodic_int(FUNC(academy_state::nmi_line_pulse), nmi_period);
|
||||
|
||||
NVRAM(config, "nvram", nvram_device::DEFAULT_ALL_0);
|
||||
|
||||
HC259(config, m_outlatch); // SN74HC259N
|
||||
m_outlatch->parallel_out_cb().set("display:dac", FUNC(dac_byte_interface::write)).rshift(2).mask(0x03);
|
||||
|
||||
MEPHISTO_SENSORS_BOARD(config, "board");
|
||||
MEPHISTO_DISPLAY_MODULE2(config, "display"); // internal
|
||||
|
||||
PWM_DISPLAY(config, m_led_pwm).set_size(4, 4);
|
||||
config.set_default_layout(layout_mephisto_academy);
|
||||
}
|
||||
|
||||
|
||||
|
||||
/******************************************************************************
|
||||
ROM Definitions
|
||||
******************************************************************************/
|
||||
|
||||
ROM_START( academy )
|
||||
ROM_REGION( 0x10000, "maincpu", 0 )
|
||||
ROM_LOAD("acad4000.bin", 0x0000, 0x8000, CRC(9c5affdb) SHA1(621d16227e49b0f46ce58ce15107bae23abacadc) )
|
||||
ROM_LOAD("acad8000.bin", 0x8000, 0x8000, CRC(a967922b) SHA1(1327903ff89bf96d72c930c400f367ae19e3ec68) )
|
||||
ROM_END
|
||||
|
||||
ROM_START( academyg )
|
||||
ROM_REGION( 0x10000, "maincpu", 0 )
|
||||
ROM_LOAD("academy_16k_6.3.89", 0x0000, 0x8000, CRC(e242dd6f) SHA1(95d3668b478a93a5d62304d58ef135f848b7d2cf) )
|
||||
ROM_LOAD("academy_32k_6.3.89", 0x8000, 0x8000, CRC(e313d084) SHA1(ced5712d34fcc81bedcd741b7ac9e2ba17bf5235) )
|
||||
ROM_END
|
||||
|
||||
ROM_START( academyga )
|
||||
ROM_REGION( 0x10000, "maincpu", 0 )
|
||||
ROM_LOAD("academy_16k_04.10.88", 0x0000, 0x8000, CRC(89055eaa) SHA1(4b3045a75b9107737db39a8c9ab9c15ec6b0ead6) )
|
||||
ROM_LOAD("academy_32k_04.10.88", 0x8000, 0x8000, CRC(478155db) SHA1(d363ab6d5bc0f47a6cdfa5132b77535ef8da8256) )
|
||||
ROM_END
|
||||
|
||||
|
||||
|
||||
/***************************************************************************
|
||||
Game Drivers
|
||||
***************************************************************************/
|
||||
|
||||
/* YEAR, NAME, PARENT COMPAT MACHINE INPUT CLASS INIT COMPANY, FULLNAME, FLAGS */
|
||||
CONS( 1989, academy, 0, 0, academy, academy, academy_state, empty_init, "Hegener + Glaser", "Mephisto Academy (English)", MACHINE_SUPPORTS_SAVE | MACHINE_CLICKABLE_ARTWORK )
|
||||
CONS( 1989, academyg, academy, 0, academy, academy, academy_state, empty_init, "Hegener + Glaser", "Mephisto Academy (German, 06-03-89)", MACHINE_SUPPORTS_SAVE | MACHINE_CLICKABLE_ARTWORK )
|
||||
CONS( 1989, academyga, academy, 0, academy, academy, academy_state, empty_init, "Hegener + Glaser", "Mephisto Academy (German, 04-10-88)", MACHINE_SUPPORTS_SAVE | MACHINE_CLICKABLE_ARTWORK )
|
@ -1,5 +1,6 @@
|
||||
// license:BSD-3-Clause
|
||||
// copyright-holders:Sandro Ronco
|
||||
// copyright-holders:Sandro Ronco, hap
|
||||
// thanks-to:yoyo_chessboard
|
||||
/**************************************************************************************************
|
||||
|
||||
Mephisto Modena
|
||||
@ -24,10 +25,10 @@ Hold Pawn + Knight buttons at boot for test mode.
|
||||
#include "mephisto_modena.lh"
|
||||
|
||||
|
||||
class mephisto_modena_state : public driver_device
|
||||
class modena_state : public driver_device
|
||||
{
|
||||
public:
|
||||
mephisto_modena_state(const machine_config &mconfig, device_type type, const char *tag)
|
||||
modena_state(const machine_config &mconfig, device_type type, const char *tag)
|
||||
: driver_device(mconfig, type, tag)
|
||||
, m_maincpu(*this, "maincpu")
|
||||
, m_board(*this, "board")
|
||||
@ -52,21 +53,21 @@ private:
|
||||
|
||||
void modena_mem(address_map &map);
|
||||
|
||||
uint8_t input_r();
|
||||
void digits_w(uint8_t data);
|
||||
void io_w(uint8_t data);
|
||||
void led_w(uint8_t data);
|
||||
u8 input_r();
|
||||
void digits_w(u8 data);
|
||||
void io_w(u8 data);
|
||||
void led_w(u8 data);
|
||||
void update_display();
|
||||
|
||||
TIMER_DEVICE_CALLBACK_MEMBER(nmi_on) { m_maincpu->set_input_line(M6502_NMI_LINE, ASSERT_LINE); }
|
||||
TIMER_DEVICE_CALLBACK_MEMBER(nmi_off) { m_maincpu->set_input_line(M6502_NMI_LINE, CLEAR_LINE); }
|
||||
|
||||
uint8_t m_board_mux = 0xff;
|
||||
uint8_t m_digits_idx = 0;
|
||||
uint8_t m_io_ctrl = 0;
|
||||
u8 m_board_mux = 0xff;
|
||||
u8 m_digits_idx = 0;
|
||||
u8 m_io_ctrl = 0;
|
||||
};
|
||||
|
||||
void mephisto_modena_state::machine_start()
|
||||
void modena_state::machine_start()
|
||||
{
|
||||
m_digits.resolve();
|
||||
|
||||
@ -80,14 +81,14 @@ void mephisto_modena_state::machine_start()
|
||||
I/O
|
||||
******************************************************************************/
|
||||
|
||||
void mephisto_modena_state::update_display()
|
||||
void modena_state::update_display()
|
||||
{
|
||||
m_display->matrix(m_io_ctrl >> 1 & 7, ~m_board_mux);
|
||||
}
|
||||
|
||||
uint8_t mephisto_modena_state::input_r()
|
||||
u8 modena_state::input_r()
|
||||
{
|
||||
uint8_t data = 0;
|
||||
u8 data = 0;
|
||||
|
||||
// read buttons
|
||||
if (~m_io_ctrl & 1)
|
||||
@ -101,14 +102,14 @@ uint8_t mephisto_modena_state::input_r()
|
||||
return data;
|
||||
}
|
||||
|
||||
void mephisto_modena_state::led_w(uint8_t data)
|
||||
void modena_state::led_w(u8 data)
|
||||
{
|
||||
// d0-d7: chessboard mux, led data
|
||||
m_board_mux = data;
|
||||
update_display();
|
||||
}
|
||||
|
||||
void mephisto_modena_state::io_w(uint8_t data)
|
||||
void modena_state::io_w(u8 data)
|
||||
{
|
||||
// d0: button select
|
||||
// d1-d3: led select
|
||||
@ -119,7 +120,7 @@ void mephisto_modena_state::io_w(uint8_t data)
|
||||
m_dac->write(BIT(data, 6));
|
||||
}
|
||||
|
||||
void mephisto_modena_state::digits_w(uint8_t data)
|
||||
void modena_state::digits_w(u8 data)
|
||||
{
|
||||
m_digits[m_digits_idx] = data ^ ((m_io_ctrl & 0x10) ? 0xff : 0x00);
|
||||
m_digits_idx = (m_digits_idx + 1) & 3;
|
||||
@ -131,13 +132,13 @@ void mephisto_modena_state::digits_w(uint8_t data)
|
||||
Address Maps
|
||||
******************************************************************************/
|
||||
|
||||
void mephisto_modena_state::modena_mem(address_map &map)
|
||||
void modena_state::modena_mem(address_map &map)
|
||||
{
|
||||
map(0x0000, 0x1fff).ram().share("nvram");
|
||||
map(0x4000, 0x4000).w(FUNC(mephisto_modena_state::digits_w));
|
||||
map(0x5000, 0x5000).w(FUNC(mephisto_modena_state::led_w));
|
||||
map(0x6000, 0x6000).w(FUNC(mephisto_modena_state::io_w));
|
||||
map(0x7000, 0x7000).r(FUNC(mephisto_modena_state::input_r));
|
||||
map(0x4000, 0x4000).w(FUNC(modena_state::digits_w));
|
||||
map(0x5000, 0x5000).w(FUNC(modena_state::led_w));
|
||||
map(0x6000, 0x6000).w(FUNC(modena_state::io_w));
|
||||
map(0x7000, 0x7000).r(FUNC(modena_state::input_r));
|
||||
map(0x7f00, 0x7fff).nopr(); // dummy read on 6502 absolute X page wrap
|
||||
map(0x8000, 0xffff).rom().region("maincpu", 0);
|
||||
}
|
||||
@ -166,15 +167,17 @@ INPUT_PORTS_END
|
||||
Machine Configs
|
||||
******************************************************************************/
|
||||
|
||||
void mephisto_modena_state::modena(machine_config &config)
|
||||
void modena_state::modena(machine_config &config)
|
||||
{
|
||||
/* basic machine hardware */
|
||||
M65C02(config, m_maincpu, XTAL(4'194'304)); // W65C02SP or RP65C02G
|
||||
m_maincpu->set_addrmap(AS_PROGRAM, &mephisto_modena_state::modena_mem);
|
||||
M65C02(config, m_maincpu, 4.194304_MHz_XTAL); // W65C02SP or RP65C02G
|
||||
m_maincpu->set_addrmap(AS_PROGRAM, &modena_state::modena_mem);
|
||||
|
||||
timer_device &nmi_on(TIMER(config, "nmi_on"));
|
||||
nmi_on.configure_periodic(FUNC(mephisto_modena_state::nmi_on), attotime::from_hz(XTAL(4'194'304) / (1 << 13)));
|
||||
nmi_on.set_start_delay(attotime::from_hz(XTAL(4'194'304) / (1 << 13)) - attotime::from_usec(975)); // active for 975us
|
||||
TIMER(config, "nmi_off").configure_periodic(FUNC(mephisto_modena_state::nmi_off), attotime::from_hz(XTAL(4'194'304) / (1 << 13)));
|
||||
const attotime nmi_period = attotime::from_hz(4.194304_MHz_XTAL / (1 << 13));
|
||||
nmi_on.configure_periodic(FUNC(modena_state::nmi_on), nmi_period);
|
||||
nmi_on.set_start_delay(nmi_period - attotime::from_usec(975)); // active for 975us
|
||||
TIMER(config, "nmi_off").configure_periodic(FUNC(modena_state::nmi_off), nmi_period);
|
||||
|
||||
NVRAM(config, "nvram", nvram_device::DEFAULT_ALL_0);
|
||||
|
||||
@ -220,7 +223,7 @@ ROM_END
|
||||
Game driver(s)
|
||||
***************************************************************************/
|
||||
|
||||
/* YEAR NAME PARENT COMPAT MACHINE INPUT CLASS INIT COMPANY FULLNAME FLAGS */
|
||||
CONS( 1992, modena, 0, 0, modena, modena, mephisto_modena_state, empty_init, "Hegener + Glaser", "Mephisto Modena (set 1)", MACHINE_SUPPORTS_SAVE | MACHINE_CLICKABLE_ARTWORK )
|
||||
CONS( 1992, modenaa, modena, 0, modena, modena, mephisto_modena_state, empty_init, "Hegener + Glaser", "Mephisto Modena (set 2)", MACHINE_SUPPORTS_SAVE | MACHINE_CLICKABLE_ARTWORK )
|
||||
CONS( 1992, modenab, modena, 0, modena, modena, mephisto_modena_state, empty_init, "Hegener + Glaser", "Mephisto Modena (set 3)", MACHINE_SUPPORTS_SAVE | MACHINE_CLICKABLE_ARTWORK )
|
||||
/* YEAR NAME PARENT COMPAT MACHINE INPUT CLASS INIT COMPANY FULLNAME FLAGS */
|
||||
CONS( 1992, modena, 0, 0, modena, modena, modena_state, empty_init, "Hegener + Glaser", "Mephisto Modena (set 1)", MACHINE_SUPPORTS_SAVE | MACHINE_CLICKABLE_ARTWORK )
|
||||
CONS( 1992, modenaa, modena, 0, modena, modena, modena_state, empty_init, "Hegener + Glaser", "Mephisto Modena (set 2)", MACHINE_SUPPORTS_SAVE | MACHINE_CLICKABLE_ARTWORK )
|
||||
CONS( 1992, modenab, modena, 0, modena, modena, modena_state, empty_init, "Hegener + Glaser", "Mephisto Modena (set 3)", MACHINE_SUPPORTS_SAVE | MACHINE_CLICKABLE_ARTWORK )
|
||||
|
@ -1,5 +1,5 @@
|
||||
// license:BSD-3-Clause
|
||||
// copyright-holders:Sandro Ronco
|
||||
// copyright-holders:Sandro Ronco, hap
|
||||
// thanks-to:Berger
|
||||
/***************************************************************************
|
||||
|
||||
@ -51,9 +51,9 @@ protected:
|
||||
void mondial68k_mem(address_map &map);
|
||||
|
||||
void lcd_s_w(u32 data);
|
||||
void input_mux_w(uint8_t data);
|
||||
void board_mux_w(uint8_t data);
|
||||
uint8_t inputs_r();
|
||||
void input_mux_w(u8 data);
|
||||
void board_mux_w(u8 data);
|
||||
u8 inputs_r();
|
||||
void update_display();
|
||||
|
||||
required_device<cpu_device> m_maincpu;
|
||||
@ -63,8 +63,8 @@ protected:
|
||||
required_ioport_array<4> m_inputs;
|
||||
output_finder<4> m_digits;
|
||||
|
||||
uint8_t m_input_mux = 0xff;
|
||||
uint8_t m_board_mux = 0xff;
|
||||
u8 m_input_mux = 0xff;
|
||||
u8 m_board_mux = 0xff;
|
||||
};
|
||||
|
||||
|
||||
@ -94,14 +94,14 @@ void mondial68k_state::lcd_s_w(u32 data)
|
||||
m_digits[i] = bitswap<8>((data & 0x7fffffff) >> (8 * i), 7,4,5,0,1,2,3,6);
|
||||
}
|
||||
|
||||
void mondial68k_state::board_mux_w(uint8_t data)
|
||||
void mondial68k_state::board_mux_w(u8 data)
|
||||
{
|
||||
// d0-d7: chessboard mux, led data
|
||||
m_board_mux = data;
|
||||
update_display();
|
||||
}
|
||||
|
||||
void mondial68k_state::input_mux_w(uint8_t data)
|
||||
void mondial68k_state::input_mux_w(u8 data)
|
||||
{
|
||||
// d0-d3: button mux
|
||||
// d6,d7: led select
|
||||
@ -109,9 +109,9 @@ void mondial68k_state::input_mux_w(uint8_t data)
|
||||
update_display();
|
||||
}
|
||||
|
||||
uint8_t mondial68k_state::inputs_r()
|
||||
u8 mondial68k_state::inputs_r()
|
||||
{
|
||||
uint8_t data = 0x00;
|
||||
u8 data = 0x00;
|
||||
|
||||
// read buttons
|
||||
for (int i=0; i<4; i++)
|
||||
|
@ -25,7 +25,6 @@ TODO:
|
||||
#include "speaker.h"
|
||||
|
||||
// internal artwork
|
||||
#include "mephisto_academy.lh"
|
||||
#include "mephisto_milano.lh"
|
||||
#include "mephisto_polgar.lh"
|
||||
|
||||
@ -99,32 +98,6 @@ private:
|
||||
uint8_t m_led_latch;
|
||||
};
|
||||
|
||||
class mephisto_academy_state : public mephisto_polgar_state
|
||||
{
|
||||
public:
|
||||
mephisto_academy_state(const machine_config &mconfig, device_type type, const char *tag)
|
||||
: mephisto_polgar_state(mconfig, type, tag)
|
||||
, m_board(*this, "board")
|
||||
, m_leds(*this, "led%u", 100U)
|
||||
{ }
|
||||
|
||||
INTERRUPT_GEN_MEMBER(academy_irq);
|
||||
DECLARE_WRITE_LINE_MEMBER(academy_nmi_w);
|
||||
void academy_led_w(uint8_t data);
|
||||
uint8_t academy_input_r();
|
||||
|
||||
void academy(machine_config &config);
|
||||
void academy_mem(address_map &map);
|
||||
protected:
|
||||
virtual void machine_start() override;
|
||||
virtual void machine_reset() override;
|
||||
|
||||
private:
|
||||
required_device<mephisto_board_device> m_board;
|
||||
output_finder<16> m_leds;
|
||||
bool m_enable_nmi;
|
||||
};
|
||||
|
||||
uint8_t mephisto_polgar_state::polgar_keys_r(offs_t offset)
|
||||
{
|
||||
return (BIT(m_keys->read(), offset) << 7) | 0x7f;
|
||||
@ -217,50 +190,6 @@ void mephisto_milano_state::milano_mem(address_map &map)
|
||||
}
|
||||
|
||||
|
||||
INTERRUPT_GEN_MEMBER(mephisto_academy_state::academy_irq)
|
||||
{
|
||||
if (m_enable_nmi)
|
||||
device.execute().pulse_input_line(INPUT_LINE_NMI, attotime::zero);
|
||||
}
|
||||
|
||||
WRITE_LINE_MEMBER(mephisto_academy_state::academy_nmi_w)
|
||||
{
|
||||
m_enable_nmi = state;
|
||||
}
|
||||
|
||||
void mephisto_academy_state::academy_led_w(uint8_t data)
|
||||
{
|
||||
for(int i=0; i<4; i++)
|
||||
for(int j=0; j<4; j++)
|
||||
{
|
||||
if (BIT(data, i))
|
||||
m_leds[j * 4 + i] = BIT(data, 4 + j) ? 0 : 1;
|
||||
}
|
||||
}
|
||||
|
||||
uint8_t mephisto_academy_state::academy_input_r()
|
||||
{
|
||||
uint8_t data;
|
||||
if (m_board->mux_r() == 0xff)
|
||||
data = m_keys->read();
|
||||
else
|
||||
data = m_board->input_r();
|
||||
|
||||
return data ^ 0xff;
|
||||
}
|
||||
|
||||
void mephisto_academy_state::academy_mem(address_map &map)
|
||||
{
|
||||
map(0x0000, 0x1fff).ram().share("nvram");
|
||||
map(0x2400, 0x2400).r(FUNC(mephisto_academy_state::academy_input_r));
|
||||
map(0x2800, 0x2800).w(m_board, FUNC(mephisto_board_device::mux_w));
|
||||
map(0x2c00, 0x2c00).w(m_board, FUNC(mephisto_board_device::led_w));
|
||||
map(0x3000, 0x3007).w("outlatch", FUNC(hc259_device::write_d7));
|
||||
map(0x3400, 0x3400).w(FUNC(mephisto_academy_state::academy_led_w));
|
||||
map(0x3800, 0x3801).rw("display:hd44780", FUNC(hd44780_device::read), FUNC(hd44780_device::write));
|
||||
map(0x4000, 0xffff).rom();
|
||||
}
|
||||
|
||||
static INPUT_PORTS_START( polgar )
|
||||
PORT_START("KEY")
|
||||
PORT_BIT(0x01, IP_ACTIVE_LOW, IPT_KEYPAD) PORT_NAME("Trn") PORT_CODE(KEYCODE_T)
|
||||
@ -290,16 +219,6 @@ void mephisto_milano_state::machine_reset()
|
||||
m_led_latch = 0;
|
||||
}
|
||||
|
||||
void mephisto_academy_state::machine_start()
|
||||
{
|
||||
m_leds.resolve();
|
||||
}
|
||||
|
||||
void mephisto_academy_state::machine_reset()
|
||||
{
|
||||
m_enable_nmi = true;
|
||||
}
|
||||
|
||||
void mephisto_polgar_state::polgar(machine_config &config)
|
||||
{
|
||||
M65C02(config, m_maincpu, XTAL(4'915'200)); // RP65C02G
|
||||
@ -363,18 +282,6 @@ void mephisto_milano_state::milano(machine_config &config)
|
||||
config.set_default_layout(layout_mephisto_milano);
|
||||
}
|
||||
|
||||
void mephisto_academy_state::academy(machine_config &config)
|
||||
{
|
||||
polgar(config); // CPU: VL65NC02-04PC, 4.9152Mhz
|
||||
m_maincpu->set_addrmap(AS_PROGRAM, &mephisto_academy_state::academy_mem);
|
||||
|
||||
hc259_device &outlatch(HC259(config.replace(), "outlatch"));
|
||||
outlatch.q_out_cb<1>().set(FUNC(mephisto_academy_state::academy_nmi_w));
|
||||
outlatch.q_out_cb<2>().set("display:dac", FUNC(dac_byte_interface::write));
|
||||
|
||||
config.set_default_layout(layout_mephisto_academy);
|
||||
}
|
||||
|
||||
|
||||
ROM_START( polgar )
|
||||
ROM_REGION( 0x10000, "maincpu", 0 )
|
||||
@ -405,24 +312,6 @@ ROM_START( mrisc2 )
|
||||
ROM_LOAD("risc_2.31", 0x00000, 0x20000, CRC(9ecf9cd3) SHA1(7bfc628183037a172242c9589f15aca218d8fb12) )
|
||||
ROM_END
|
||||
|
||||
ROM_START( academy )
|
||||
ROM_REGION( 0x10000, "maincpu", 0 )
|
||||
ROM_LOAD("acad4000.bin", 0x4000, 0x4000, CRC(ee1222b5) SHA1(98541d87755a7186b69b9723cc4adbd07f20f0e2) )
|
||||
ROM_LOAD("acad8000.bin", 0x8000, 0x8000, CRC(a967922b) SHA1(1327903ff89bf96d72c930c400f367ae19e3ec68) )
|
||||
ROM_END
|
||||
|
||||
ROM_START( academyg )
|
||||
ROM_REGION( 0x10000, "maincpu", 0 )
|
||||
ROM_LOAD("academy_16k_6.3.89", 0x4000, 0x4000, CRC(900a0001) SHA1(174a6bc3bde55994c603e232fcb45fccd62f11f6) )
|
||||
ROM_LOAD("academy_32k_6.3.89", 0x8000, 0x8000, CRC(e313d084) SHA1(ced5712d34fcc81bedcd741b7ac9e2ba17bf5235) )
|
||||
ROM_END
|
||||
|
||||
ROM_START( academyga )
|
||||
ROM_REGION( 0x10000, "maincpu", 0 )
|
||||
ROM_LOAD("academy_16k_04.10.88", 0x4000, 0x4000, CRC(fb4d83c4) SHA1(f5132042c3b5a17c173f81eaa57e313ff0bb848e) )
|
||||
ROM_LOAD("academy_32k_04.10.88", 0x8000, 0x8000, CRC(478155db) SHA1(d363ab6d5bc0f47a6cdfa5132b77535ef8da8256) )
|
||||
ROM_END
|
||||
|
||||
ROM_START( milano )
|
||||
ROM_REGION( 0x10000, "maincpu", 0 )
|
||||
ROM_LOAD("milano102.bin", 0x0000, 0x10000, CRC(0e9c8fe1) SHA1(e9176f42d86fe57e382185c703c7eff7e63ca711) )
|
||||
@ -452,10 +341,6 @@ CONS( 1992, mrisc, 0, 0, mrisc, polgar, mephisto_risc_state,
|
||||
CONS( 1994, mrisc2, mrisc, 0, mrisc, polgar, mephisto_risc_state, empty_init, "Hegener + Glaser / Tasc", "Mephisto Risc II", MACHINE_SUPPORTS_SAVE | MACHINE_CLICKABLE_ARTWORK )
|
||||
|
||||
// not modular boards
|
||||
CONS( 1989, academy, 0, 0, academy, polgar, mephisto_academy_state, empty_init, "Hegener + Glaser", "Mephisto Academy (English)", MACHINE_SUPPORTS_SAVE | MACHINE_CLICKABLE_ARTWORK )
|
||||
CONS( 1989, academyg, academy, 0, academy, polgar, mephisto_academy_state, empty_init, "Hegener + Glaser", "Mephisto Academy (German, 06-03-89)", MACHINE_SUPPORTS_SAVE | MACHINE_CLICKABLE_ARTWORK )
|
||||
CONS( 1989, academyga, academy, 0, academy, polgar, mephisto_academy_state, empty_init, "Hegener + Glaser", "Mephisto Academy (German, 04-10-88)", MACHINE_SUPPORTS_SAVE | MACHINE_CLICKABLE_ARTWORK )
|
||||
|
||||
CONS( 1991, milano, 0, 0, milano, polgar, mephisto_milano_state, empty_init, "Hegener + Glaser", "Mephisto Milano (v1.02)", MACHINE_SUPPORTS_SAVE | MACHINE_CLICKABLE_ARTWORK )
|
||||
CONS( 1991, milanoa, milano, 0, milano, polgar, mephisto_milano_state, empty_init, "Hegener + Glaser", "Mephisto Milano (v1.01)", MACHINE_SUPPORTS_SAVE | MACHINE_CLICKABLE_ARTWORK )
|
||||
CONS( 1993, nshort, milano, 0, milano, polgar, mephisto_milano_state, empty_init, "Hegener + Glaser", "Mephisto Nigel Short", MACHINE_SUPPORTS_SAVE | MACHINE_CLICKABLE_ARTWORK )
|
||||
|
@ -199,8 +199,8 @@ void star_state::sstar28k(machine_config &config)
|
||||
M6502(config, m_maincpu, 2000000); // no XTAL
|
||||
m_maincpu->set_addrmap(AS_PROGRAM, &star_state::sstar28k_map);
|
||||
|
||||
const attotime irq_period = attotime::from_hz(2000000 / 0x2000); // 4020 Q13
|
||||
m_maincpu->set_periodic_int(FUNC(star_state::nmi_line_pulse), irq_period);
|
||||
const attotime nmi_period = attotime::from_hz(2000000 / 0x2000); // 4020 Q13
|
||||
m_maincpu->set_periodic_int(FUNC(star_state::nmi_line_pulse), nmi_period);
|
||||
|
||||
SENSORBOARD(config, m_board).set_type(sensorboard_device::BUTTONS);
|
||||
m_board->init_cb().set(m_board, FUNC(sensorboard_device::preset_chess));
|
||||
@ -224,8 +224,8 @@ void star_state::tstar432(machine_config &config)
|
||||
R65C02(config.replace(), m_maincpu, 4_MHz_XTAL);
|
||||
m_maincpu->set_addrmap(AS_PROGRAM, &star_state::tstar432_map);
|
||||
|
||||
const attotime irq_period = attotime::from_hz(4_MHz_XTAL / 0x4000); // 4020 Q14
|
||||
m_maincpu->set_periodic_int(FUNC(star_state::nmi_line_pulse), irq_period);
|
||||
const attotime nmi_period = attotime::from_hz(4_MHz_XTAL / 0x4000); // 4020 Q14
|
||||
m_maincpu->set_periodic_int(FUNC(star_state::nmi_line_pulse), nmi_period);
|
||||
|
||||
config.set_default_layout(layout_saitek_tstar432);
|
||||
|
||||
@ -242,8 +242,8 @@ void star_state::sstar36k(machine_config &config)
|
||||
M6502(config.replace(), m_maincpu, 2_MHz_XTAL);
|
||||
m_maincpu->set_addrmap(AS_PROGRAM, &star_state::tstar432_map);
|
||||
|
||||
const attotime irq_period = attotime::from_hz(2_MHz_XTAL / 0x2000); // 4020 Q13
|
||||
m_maincpu->set_periodic_int(FUNC(star_state::nmi_line_pulse), irq_period);
|
||||
const attotime nmi_period = attotime::from_hz(2_MHz_XTAL / 0x2000); // 4020 Q13
|
||||
m_maincpu->set_periodic_int(FUNC(star_state::nmi_line_pulse), nmi_period);
|
||||
}
|
||||
|
||||
|
||||
|
@ -3,7 +3,21 @@
|
||||
license:CC0
|
||||
-->
|
||||
<mamelayout version="2">
|
||||
|
||||
<!-- define elements -->
|
||||
|
||||
<element name="ledo">
|
||||
<disk><color red="0.1" green="0.1" blue="0.1" /></disk>
|
||||
</element>
|
||||
<element name="ledr" defstate="0">
|
||||
<disk state="0"><color red="0" green="0" blue="0" /></disk>
|
||||
<disk state="1"><color red="1" green="0" blue="0" /></disk>
|
||||
</element>
|
||||
<element name="ledg" defstate="0">
|
||||
<disk state="0"><color red="0" green="0" blue="0" /></disk>
|
||||
<disk state="1"><color red="0" green="1" blue="0" /></disk>
|
||||
</element>
|
||||
|
||||
<element name="led" defstate="0">
|
||||
<disk state="0">
|
||||
<color red="0.20" green="0.0" blue="0.0" />
|
||||
@ -389,47 +403,65 @@ license:CC0
|
||||
</group>
|
||||
|
||||
<group name="panel">
|
||||
<bounds left="0" right="75.25" top="0" bottom="8.5" />
|
||||
<bounds left="0" right="100" top="0" bottom="10" />
|
||||
|
||||
<bezel element="text_lcd"><bounds x="1" y="6.5" width="24" height="1.7" /></bezel>
|
||||
<group ref="lcd"><bounds x="1" y="0" width="23.55" height="6.25" /></group>
|
||||
|
||||
<bezel name="led100" element="led"> <bounds x="29.1" y="0.1" width="1.3" height="1.3" /> </bezel>
|
||||
<bezel name="led101" element="led"> <bounds x="35.1" y="0.1" width="1.3" height="1.3" /> </bezel>
|
||||
<bezel name="led102" element="led"> <bounds x="41.1" y="0.1" width="1.3" height="1.3" /> </bezel>
|
||||
<bezel name="led103" element="led"> <bounds x="47.1" y="0.1" width="1.3" height="1.3" /> </bezel>
|
||||
<bezel name="led108" element="led"> <bounds x="54.1" y="0.1" width="1.3" height="1.3" /> </bezel>
|
||||
<bezel name="led109" element="led"> <bounds x="60.1" y="0.1" width="1.3" height="1.3" /> </bezel>
|
||||
<bezel name="led114" element="led"> <bounds x="66.1" y="0.1" width="1.3" height="1.3" /> </bezel>
|
||||
<bezel name="led115" element="led"> <bounds x="72.1" y="0.1" width="1.3" height="1.3" /> </bezel>
|
||||
<bezel element="text_train"> <bounds x="29.25" y="2" width="5" height="1.5" /> </bezel>
|
||||
<bezel element="text_info"> <bounds x="35.25" y="2" width="5" height="1.5" /> </bezel>
|
||||
<bezel element="text_mem"> <bounds x="41.25" y="2" width="5" height="1.5" /> </bezel>
|
||||
<bezel element="text_pos"> <bounds x="47.25" y="2" width="5" height="1.5" /> </bezel>
|
||||
<bezel element="text_lev"> <bounds x="53.25" y="2" width="5" height="1.5" /> </bezel>
|
||||
<bezel element="text_fct"> <bounds x="59.25" y="2" width="5" height="1.5" /> </bezel>
|
||||
<bezel element="text_ent"> <bounds x="67.25" y="2" width="5" height="1.5" /> </bezel>
|
||||
<bezel element="text_cl"> <bounds x="74.25" y="2" width="3" height="1.5" /> </bezel>
|
||||
|
||||
<bezel element="text_train"> <bounds x="27.25" y="2" width="5" height="1.5" /> </bezel>
|
||||
<bezel element="text_info"> <bounds x="33.25" y="2" width="5" height="1.5" /> </bezel>
|
||||
<bezel element="text_mem"> <bounds x="39.25" y="2" width="5" height="1.5" /> </bezel>
|
||||
<bezel element="text_pos"> <bounds x="45.25" y="2" width="5" height="1.5" /> </bezel>
|
||||
<bezel element="text_lev"> <bounds x="52.25" y="2" width="5" height="1.5" /> </bezel>
|
||||
<bezel element="text_fct"> <bounds x="58.25" y="2" width="5" height="1.5" /> </bezel>
|
||||
<bezel element="text_ent"> <bounds x="64.25" y="2" width="5" height="1.5" /> </bezel>
|
||||
<bezel element="text_cl"> <bounds x="71.25" y="2" width="3" height="1.5" /> </bezel>
|
||||
<bezel element="text_p6"> <bounds x="29.25" y="6.5" width="5" height="1.5" /> </bezel>
|
||||
<bezel element="text_p5"> <bounds x="35.25" y="6.5" width="5" height="1.5" /> </bezel>
|
||||
<bezel element="text_p4"> <bounds x="41.25" y="6.5" width="5" height="1.5" /> </bezel>
|
||||
<bezel element="text_p3"> <bounds x="47.25" y="6.5" width="5" height="1.5" /> </bezel>
|
||||
<bezel element="text_p2"> <bounds x="53.25" y="6.5" width="5" height="1.5" /> </bezel>
|
||||
<bezel element="text_p1"> <bounds x="59.25" y="6.5" width="5" height="1.5" /> </bezel>
|
||||
<bezel element="text_newgame"> <bounds x="68.25" y="6.70" width="9" height="1.5" /> </bezel>
|
||||
<bezel element="text_black"> <bounds x="67" y="0" width="2" height="1.3" /> </bezel>
|
||||
<bezel element="text_white"> <bounds x="73" y="0" width="2" height="1.3" /> </bezel>
|
||||
|
||||
<bezel element="text_p6"> <bounds x="27.25" y="6.5" width="5" height="1.5" /> </bezel>
|
||||
<bezel element="text_p5"> <bounds x="33.25" y="6.5" width="5" height="1.5" /> </bezel>
|
||||
<bezel element="text_p4"> <bounds x="39.25" y="6.5" width="5" height="1.5" /> </bezel>
|
||||
<bezel element="text_p3"> <bounds x="45.25" y="6.5" width="5" height="1.5" /> </bezel>
|
||||
<bezel element="text_p2"> <bounds x="52.25" y="6.5" width="5" height="1.5" /> </bezel>
|
||||
<bezel element="text_p1"> <bounds x="58.25" y="6.5" width="5" height="1.5" /> </bezel>
|
||||
<bezel element="text_newgame"> <bounds x="65.25" y="6.70" width="9" height="1.5" /> </bezel>
|
||||
<bezel element="text_black"> <bounds x="64" y="0" width="2" height="1.3" /> </bezel>
|
||||
<bezel element="text_white"> <bounds x="70" y="0" width="2" height="1.3" /> </bezel>
|
||||
<bezel element="hlb" inputtag="KEY" inputmask="0x01"> <bounds x="31" y="3.75" width="1.5" height="2.5" /> </bezel>
|
||||
<bezel element="hlb" inputtag="KEY" inputmask="0x02"> <bounds x="37" y="3.75" width="1.5" height="2.5" /> </bezel>
|
||||
<bezel element="hlb" inputtag="KEY" inputmask="0x04"> <bounds x="43" y="3.75" width="1.5" height="2.5" /> </bezel>
|
||||
<bezel element="hlb" inputtag="KEY" inputmask="0x08"> <bounds x="49" y="3.75" width="1.5" height="2.5" /> </bezel>
|
||||
<bezel element="hlb" inputtag="KEY" inputmask="0x10"> <bounds x="55" y="3.75" width="1.5" height="2.5" /> </bezel>
|
||||
<bezel element="hlb" inputtag="KEY" inputmask="0x20"> <bounds x="61" y="3.75" width="1.5" height="2.5" /> </bezel>
|
||||
<bezel element="hlbr" inputtag="KEY" inputmask="0x40"> <bounds x="69" y="3.75" width="1.5" height="2.5" /> </bezel>
|
||||
<bezel element="hlbr" inputtag="KEY" inputmask="0x80"> <bounds x="75" y="3.75" width="1.5" height="2.5" /> </bezel>
|
||||
|
||||
<bezel element="hlb" inputtag="KEY" inputmask="0x01"> <bounds x="29" y="3.75" width="1.5" height="2.5" /> </bezel>
|
||||
<bezel element="hlb" inputtag="KEY" inputmask="0x02"> <bounds x="35" y="3.75" width="1.5" height="2.5" /> </bezel>
|
||||
<bezel element="hlb" inputtag="KEY" inputmask="0x04"> <bounds x="41" y="3.75" width="1.5" height="2.5" /> </bezel>
|
||||
<bezel element="hlb" inputtag="KEY" inputmask="0x08"> <bounds x="47" y="3.75" width="1.5" height="2.5" /> </bezel>
|
||||
<bezel element="hlb" inputtag="KEY" inputmask="0x10"> <bounds x="54" y="3.75" width="1.5" height="2.5" /> </bezel>
|
||||
<bezel element="hlb" inputtag="KEY" inputmask="0x20"> <bounds x="60" y="3.75" width="1.5" height="2.5" /> </bezel>
|
||||
<bezel element="hlbr" inputtag="KEY" inputmask="0x40"> <bounds x="66" y="3.75" width="1.5" height="2.5" /> </bezel>
|
||||
<bezel element="hlbr" inputtag="KEY" inputmask="0x80"> <bounds x="72" y="3.75" width="1.5" height="2.5" /> </bezel>
|
||||
<element ref="ledo"><bounds x="31.1" y="0.1" width="1.3" height="1.3" /></element>
|
||||
<element ref="ledo"><bounds x="37.1" y="0.1" width="1.3" height="1.3" /></element>
|
||||
<element ref="ledo"><bounds x="43.1" y="0.1" width="1.3" height="1.3" /></element>
|
||||
<element ref="ledo"><bounds x="49.1" y="0.1" width="1.3" height="1.3" /></element>
|
||||
<element ref="ledo"><bounds x="55.1" y="0.1" width="1.3" height="1.3" /></element>
|
||||
<element ref="ledo"><bounds x="61.1" y="0.1" width="1.3" height="1.3" /></element>
|
||||
<element ref="ledo"><bounds x="69.1" y="0.1" width="1.3" height="1.3" /></element>
|
||||
<element ref="ledo"><bounds x="75.1" y="0.1" width="1.3" height="1.3" /></element>
|
||||
|
||||
<element name="0.0" ref="ledr" blend="add"><bounds x="31.1" y="0.1" width="1.3" height="1.3" /></element>
|
||||
<element name="1.0" ref="ledr" blend="add"><bounds x="37.1" y="0.1" width="1.3" height="1.3" /></element>
|
||||
<element name="2.0" ref="ledr" blend="add"><bounds x="43.1" y="0.1" width="1.3" height="1.3" /></element>
|
||||
<element name="3.0" ref="ledr" blend="add"><bounds x="49.1" y="0.1" width="1.3" height="1.3" /></element>
|
||||
<element name="0.2" ref="ledr" blend="add"><bounds x="55.1" y="0.1" width="1.3" height="1.3" /></element>
|
||||
<element name="1.2" ref="ledr" blend="add"><bounds x="61.1" y="0.1" width="1.3" height="1.3" /></element>
|
||||
<element name="2.2" ref="ledr" blend="add"><bounds x="69.1" y="0.1" width="1.3" height="1.3" /></element>
|
||||
<element name="3.2" ref="ledr" blend="add"><bounds x="75.1" y="0.1" width="1.3" height="1.3" /></element>
|
||||
|
||||
<element name="0.1" ref="ledg" blend="add"><bounds x="31.1" y="0.1" width="1.3" height="1.3" /></element>
|
||||
<element name="1.1" ref="ledg" blend="add"><bounds x="37.1" y="0.1" width="1.3" height="1.3" /></element>
|
||||
<element name="2.1" ref="ledg" blend="add"><bounds x="43.1" y="0.1" width="1.3" height="1.3" /></element>
|
||||
<element name="3.1" ref="ledg" blend="add"><bounds x="49.1" y="0.1" width="1.3" height="1.3" /></element>
|
||||
<element name="0.3" ref="ledg" blend="add"><bounds x="55.1" y="0.1" width="1.3" height="1.3" /></element>
|
||||
<element name="1.3" ref="ledg" blend="add"><bounds x="61.1" y="0.1" width="1.3" height="1.3" /></element>
|
||||
<element name="2.3" ref="ledg" blend="add"><bounds x="69.1" y="0.1" width="1.3" height="1.3" /></element>
|
||||
<element name="3.3" ref="ledg" blend="add"><bounds x="75.1" y="0.1" width="1.3" height="1.3" /></element>
|
||||
</group>
|
||||
|
||||
|
||||
@ -439,7 +471,7 @@ license:CC0
|
||||
<bounds left="0" right="100" top="0" bottom="98" />
|
||||
<element ref="background"><bounds x="13" y="0" width="87" height="98" /></element>
|
||||
|
||||
<!-- chessboard coords -->
|
||||
<!-- chessboard coords -->
|
||||
<bezel element="white"><bounds x="16.5" y="2.5" width="81" height="81" /></bezel>
|
||||
<bezel element="text_8"><bounds x="13.7" y="7" width="2" height="2" /></bezel>
|
||||
<bezel element="text_7"><bounds x="13.7" y="17" width="2" height="2" /></bezel>
|
||||
@ -459,9 +491,8 @@ license:CC0
|
||||
<bezel element="text_g"><bounds x="81" y="84.5" width="2" height="2" /></bezel>
|
||||
<bezel element="text_h"><bounds x="91" y="84.5" width="2" height="2" /></bezel>
|
||||
|
||||
|
||||
<!-- LCD panel -->
|
||||
<group ref="panel"><bounds x="18" y="88" width="75.25" height="8.5" /></group>
|
||||
<!-- LCD panel -->
|
||||
<group ref="panel"><bounds x="18" y="88" width="100" height="10" /></group>
|
||||
|
||||
<group ref="sb_board"><bounds x="17" y="3" width="80" height="80" /></group>
|
||||
<group ref="sb_ui"><bounds x="1.5" y="3" width="10" height="80" /></group>
|
||||
|
@ -22219,6 +22219,11 @@ mekd5 // 1980 Motorola Evaluation Kit
|
||||
crzyddz2 // 2006 Sealy
|
||||
menghong // 2004? Sealy
|
||||
|
||||
@source:mephisto_academy.cpp
|
||||
academy
|
||||
academyg
|
||||
academyga
|
||||
|
||||
@source:mephisto_berlin.cpp
|
||||
berl16 // 1992 Mephisto Berlin 68000
|
||||
berl16a // 1992 Mephisto Berlin 68000
|
||||
@ -22326,9 +22331,6 @@ polgar10 // 1990 Mephisto Polgar 10MHz
|
||||
polgar101 // 1990 Mephisto Polgar 10MHz
|
||||
mrisc // 1992 Mephisto RISC 1MB
|
||||
mrisc2 // 1994 Mephisto RISC II
|
||||
academy // 1989 Mephisto Academy
|
||||
academyg // 1989 Mephisto Academy
|
||||
academyga // 1989 Mephisto Academy
|
||||
milano // 1991 Mephisto Milano
|
||||
milanoa // 1991 Mephisto Milano
|
||||
nshort // 1993 Mephisto Nigel Short
|
||||
|
@ -532,6 +532,7 @@ mekd2.cpp
|
||||
mekd3.cpp
|
||||
mekd4.cpp
|
||||
mekd5.cpp
|
||||
mephisto_academy.cpp
|
||||
mephisto_berlin.cpp
|
||||
mephisto_brikett.cpp
|
||||
mephisto_glasgow.cpp
|
||||
|
Loading…
Reference in New Issue
Block a user