mirror of
https://github.com/holub/mame
synced 2025-04-24 17:30:55 +03:00
New WORKING machines
-------------------- Mephisto Mondial [CB-Emu, Sandro Ronco] Mephisto Super Mondial (Ver B) [CB-Emu, Sandro Ronco]
This commit is contained in:
parent
9214a78d70
commit
b41d4f7b26
@ -10,6 +10,9 @@
|
||||
Mephisto Super Mondial
|
||||
Mephisto Super Mondial II
|
||||
|
||||
smondialb notes:
|
||||
- holding CL+INFO+BOOK on boot load the test mode
|
||||
|
||||
**************************************************************************************************/
|
||||
|
||||
|
||||
@ -45,6 +48,7 @@ public:
|
||||
, m_high_leds(*this, "led%u", 100U)
|
||||
{ }
|
||||
|
||||
void mondial(machine_config &config);
|
||||
void smondial(machine_config &config);
|
||||
void mondial2(machine_config &config);
|
||||
void smondial2(machine_config &config);
|
||||
@ -70,10 +74,13 @@ private:
|
||||
DECLARE_WRITE8_MEMBER(smondial_board_mux_w);
|
||||
DECLARE_WRITE8_MEMBER(smondial_led_data_w);
|
||||
|
||||
DECLARE_WRITE8_MEMBER(mondial_input_mux_w);
|
||||
DECLARE_READ8_MEMBER(mondial_input_r);
|
||||
DECLARE_WRITE8_MEMBER(mondial2_input_mux_w);
|
||||
TIMER_DEVICE_CALLBACK_MEMBER(refresh_leds);
|
||||
|
||||
void megaiv_mem(address_map &map);
|
||||
void mondial_mem(address_map &map);
|
||||
void mondial2_mem(address_map &map);
|
||||
void montec_mem(address_map &map);
|
||||
void smondial2_mem(address_map &map);
|
||||
@ -349,6 +356,7 @@ WRITE8_MEMBER(mephisto_montec_state::mondial2_input_mux_w)
|
||||
|
||||
m_input_mux = data ^ 0xff;
|
||||
m_beeper->set_state(BIT(data, 7));
|
||||
m_maincpu->set_input_line(M65C02_NMI_LINE, CLEAR_LINE);
|
||||
}
|
||||
|
||||
|
||||
@ -361,6 +369,47 @@ void mephisto_montec_state::mondial2_mem(address_map &map)
|
||||
map(0x8000, 0xffff).rom();
|
||||
}
|
||||
|
||||
READ8_MEMBER(mephisto_montec_state::mondial_input_r)
|
||||
{
|
||||
uint8_t data;
|
||||
if (m_input_mux & 0x08)
|
||||
data = m_keys[BIT(~m_input_mux, 0)]->read();
|
||||
else
|
||||
data = m_board->input_r(space, 0);
|
||||
|
||||
return BIT(data, offset) << 7;
|
||||
}
|
||||
|
||||
WRITE8_MEMBER(mephisto_montec_state::mondial_input_mux_w)
|
||||
{
|
||||
uint8_t leds_data = ~(1 << (data & 0x07));
|
||||
m_board->mux_w(space, offset, leds_data);
|
||||
|
||||
for (int i=0; i<8; i++)
|
||||
{
|
||||
if (!BIT(leds_data, i))
|
||||
{
|
||||
if (!(data & 0x10)) m_high_leds[i] = 1;
|
||||
if (!(data & 0x20)) m_low_leds[8 + i] = 1;
|
||||
if (!(data & 0x40)) m_low_leds[0 + i] = 1;
|
||||
}
|
||||
}
|
||||
|
||||
m_input_mux = data;
|
||||
m_beeper->set_state(BIT(data, 7));
|
||||
m_maincpu->set_input_line(M65C02_IRQ_LINE, CLEAR_LINE);
|
||||
}
|
||||
|
||||
|
||||
void mephisto_montec_state::mondial_mem(address_map &map)
|
||||
{
|
||||
map(0x0000, 0x07ff).ram().share("nvram");
|
||||
map(0x1000, 0x1000).w(FUNC(mephisto_montec_state::mondial_input_mux_w));
|
||||
map(0x2000, 0x2000).r(m_board, FUNC(mephisto_board_device::input_r));
|
||||
map(0x1800, 0x1807).r(FUNC(mephisto_montec_state::mondial_input_r));
|
||||
map(0xc000, 0xffff).rom();
|
||||
}
|
||||
|
||||
TIMER_DEVICE_CALLBACK_MEMBER(mephisto_montec_state::refresh_leds)
|
||||
{
|
||||
for (int i=0; i<8; i++)
|
||||
@ -501,12 +550,19 @@ void mephisto_montec_state::mondial2(machine_config &config)
|
||||
megaiv(config);
|
||||
m_maincpu->set_clock(XTAL(2'000'000));
|
||||
m_maincpu->set_addrmap(AS_PROGRAM, &mephisto_montec_state::mondial2_mem);
|
||||
m_maincpu->set_periodic_int(FUNC(mephisto_montec_state::nmi_line_pulse), attotime::from_hz(XTAL(2'000'000) / (1 << 12)));
|
||||
m_maincpu->set_periodic_int(FUNC(mephisto_montec_state::nmi_line_assert), attotime::from_hz(XTAL(2'000'000) / (1 << 12)));
|
||||
|
||||
TIMER(config, "refresh_leds").configure_periodic(FUNC(mephisto_montec_state::refresh_leds), attotime::from_hz(10));
|
||||
TIMER(config, "refresh_leds").configure_periodic(FUNC(mephisto_montec_state::refresh_leds), attotime::from_hz(2));
|
||||
config.set_default_layout(layout_mephisto_mondial2);
|
||||
}
|
||||
|
||||
void mephisto_montec_state::mondial(machine_config &config)
|
||||
{
|
||||
mondial2(config);
|
||||
m_maincpu->set_addrmap(AS_PROGRAM, &mephisto_montec_state::mondial_mem);
|
||||
m_maincpu->set_periodic_int(FUNC(mephisto_montec_state::irq0_line_assert), attotime::from_hz(XTAL(2'000'000) / (1 << 12)));
|
||||
}
|
||||
|
||||
void mephisto_montec_state::smondial(machine_config &config)
|
||||
{
|
||||
megaiv(config);
|
||||
@ -539,12 +595,25 @@ ROM_END
|
||||
|
||||
ROM_START(montec)
|
||||
ROM_REGION(0x10000, "maincpu", 0)
|
||||
ROM_LOAD("mc.bin", 0x08000, 0x08000, CRC(05524da9) SHA1(bee2ffe09a27095f733584e0fb1203b95c23e17e))
|
||||
ROM_DEFAULT_BIOS("v2")
|
||||
ROM_SYSTEM_BIOS( 0, "v1", "v1" )
|
||||
ROM_SYSTEM_BIOS( 1, "v2", "v2" )
|
||||
ROMX_LOAD("mc.bin", 0x8000, 0x8000, CRC(05524da9) SHA1(bee2ffe09a27095f733584e0fb1203b95c23e17e), ROM_BIOS(0))
|
||||
ROMX_LOAD("mc2.bin", 0x8000, 0x8000, CRC(8eb26043) SHA1(26454a37eea29283bbb2762a3a68e95e4be6aa1c), ROM_BIOS(1))
|
||||
ROM_END
|
||||
|
||||
ROM_START(smondial)
|
||||
ROM_REGION(0x10000, "maincpu", 0)
|
||||
ROM_LOAD("mephisto super mondial i.bin", 0x8000, 0x8000, CRC(c1d7d0a5) SHA1(d7f0da6938458c06925f0936e63915319144d7e0))
|
||||
ROM_DEFAULT_BIOS("ab")
|
||||
ROM_SYSTEM_BIOS( 0, "a", "Ver A" )
|
||||
ROM_SYSTEM_BIOS( 1, "ab", "Ver AB" )
|
||||
ROMX_LOAD("supermondial_a.bin", 0x8000, 0x8000, CRC(c1d7d0a5) SHA1(d7f0da6938458c06925f0936e63915319144d7e0), ROM_BIOS(0))
|
||||
ROMX_LOAD("supermondial_ab.bin", 0x8000, 0x8000, CRC(a8781685) SHA1(fd4c97e13bd398dc4c85e3e1778bf7e59fccd71e), ROM_BIOS(1))
|
||||
ROM_END
|
||||
|
||||
ROM_START(smondialb)
|
||||
ROM_REGION(0x10000, "maincpu", 0)
|
||||
ROM_LOAD("supermondial_b.bin", 0x8000, 0x8000, CRC(6fb89e97) SHA1(b001e657b4fdc097322b28a25c31814f3da7b124))
|
||||
ROM_END
|
||||
|
||||
ROM_START(smondial2)
|
||||
@ -552,6 +621,11 @@ ROM_START(smondial2)
|
||||
ROM_LOAD("supermondial_ii.bin", 0x8000, 0x8000, CRC(cd73df4a) SHA1(bad786074be613d7f48bf98b6fdf8178a4a85f5b))
|
||||
ROM_END
|
||||
|
||||
ROM_START(mondial)
|
||||
ROM_REGION(0x10000, "maincpu", 0)
|
||||
ROM_LOAD("mondial_1.bin", 0xc000, 0x4000, CRC(5cde2e26) SHA1(337be35d5120ca12143ca17f8aa0642b313b3851))
|
||||
ROM_END
|
||||
|
||||
ROM_START(mondial2)
|
||||
ROM_REGION(0x10000, "maincpu", 0)
|
||||
ROM_LOAD("mondial ii 01 08 87 morsch.bin", 0x8000, 0x8000, CRC(e5945ce6) SHA1(e75bbf9d54087271d9d46fb1de7634eb957f8db0))
|
||||
@ -559,7 +633,9 @@ ROM_END
|
||||
|
||||
|
||||
/* YEAR NAME PARENT COMPAT MACHINE INPUT CLASS INIT COMPANY FULLNAME FLAGS */
|
||||
CONS( 1986, smondial, 0, 0, smondial, megaiv, mephisto_montec_state, empty_init, "Hegener & Glaser", "Mephisto Super Mondial", MACHINE_SUPPORTS_SAVE | MACHINE_CLICKABLE_ARTWORK )
|
||||
CONS( 1985, mondial, 0, 0, mondial, mondial2, mephisto_montec_state, empty_init, "Hegener & Glaser", "Mephisto Mondial", MACHINE_SUPPORTS_SAVE | MACHINE_CLICKABLE_ARTWORK )
|
||||
CONS( 1986, smondial, 0, 0, smondial, megaiv, mephisto_montec_state, empty_init, "Hegener & Glaser", "Mephisto Super Mondial (Ver A)", MACHINE_SUPPORTS_SAVE | MACHINE_CLICKABLE_ARTWORK )
|
||||
CONS( 1986, smondialb, smondial, 0, megaiv, megaiv, mephisto_montec_state, empty_init, "Hegener & Glaser", "Mephisto Super Mondial (Ver B)", MACHINE_SUPPORTS_SAVE | MACHINE_CLICKABLE_ARTWORK )
|
||||
CONS( 1987, montec, 0, 0, montec, montec, mephisto_montec_state, empty_init, "Hegener & Glaser", "Mephisto Monte Carlo", MACHINE_SUPPORTS_SAVE | MACHINE_CLICKABLE_ARTWORK )
|
||||
CONS( 1987, mondial2, 0, 0, mondial2, mondial2, mephisto_montec_state, empty_init, "Hegener & Glaser", "Mephisto Mondial II", MACHINE_SUPPORTS_SAVE | MACHINE_CLICKABLE_ARTWORK )
|
||||
CONS( 1989, smondial2, 0, 0, smondial2, smondial2, mephisto_montec_state, empty_init, "Hegener & Glaser", "Mephisto Super Mondial II", MACHINE_SUPPORTS_SAVE | MACHINE_CLICKABLE_ARTWORK )
|
||||
|
@ -21390,7 +21390,9 @@ mm5tk // Mephisto 5.1 ROM Turbo Kit Speed
|
||||
rebel5 // Mephisto 5
|
||||
|
||||
@source:mephisto_montec.cpp
|
||||
smondial // 1986 Mephisto Super Mondial
|
||||
mondial // 1985 Mephisto Mondial
|
||||
smondial // 1986 Mephisto Super Mondial (Ver A)
|
||||
smondialb // 1986 Mephisto Super Mondial (Ver B)
|
||||
montec // 1987 Mephisto Monte Carlo
|
||||
mondial2 // 1987 Mephisto Mondial II
|
||||
smondial2 // 1989 Mephisto Super Mondial II
|
||||
|
Loading…
Reference in New Issue
Block a user