mephisto modular: correct irq level

This commit is contained in:
hap 2023-11-06 10:16:43 +01:00
parent 140e74976d
commit 1657260452
3 changed files with 6 additions and 4 deletions

View File

@ -10,6 +10,7 @@ Undocumented buttons:
- holding CLEAR on boot clears battery backed RAM
TODO:
- verify IRQ level and acknowledge
- does it have ROM waitstates like modular.cpp?
*******************************************************************************/

View File

@ -43,6 +43,7 @@ Undocumented buttons:
- holding CLEAR on boot will clear the battery backed RAM
TODO:
- verify IRQ level for 32bit modules, and how IRQ is acknowledged
- match I/S= diag speed test with real hardware (good test for proper waitstates?)
- gen32 waitstates emulation is preliminary (without it, sound pitch is way too high
and lcd write speed too fast). Real gen32 sound is a bit lower pitched than MAME.
@ -421,7 +422,7 @@ void mmodular_state::alm16(machine_config &config)
m_maincpu->set_addrmap(AS_PROGRAM, &mmodular_state::alm16_mem);
const attotime irq_period = attotime::from_hz(12.288_MHz_XTAL / 10 / 0x800); // 600Hz
m_maincpu->set_periodic_int(FUNC(mmodular_state::irq2_line_hold), irq_period);
m_maincpu->set_periodic_int(FUNC(mmodular_state::irq3_line_hold), irq_period);
NVRAM(config, "nvram", nvram_device::DEFAULT_ALL_0);
@ -458,7 +459,7 @@ void mmodular_state::alm32(machine_config &config)
m_maincpu->set_addrmap(AS_PROGRAM, &mmodular_state::alm32_mem);
const attotime irq_period = attotime::from_hz(12.288_MHz_XTAL / 0x4000); // 750Hz
m_maincpu->set_periodic_int(FUNC(mmodular_state::irq2_line_hold), irq_period);
m_maincpu->set_periodic_int(FUNC(mmodular_state::irq3_line_hold), irq_period);
config.set_default_layout(layout_mephisto_alm32);
}
@ -484,7 +485,7 @@ void mmodular_state::gen32(machine_config &config)
m_maincpu->set_addrmap(AS_PROGRAM, &mmodular_state::gen32_mem);
const attotime irq_period = attotime::from_hz(6.144_MHz_XTAL / 0x4000); // through 4060, 375Hz
m_maincpu->set_periodic_int(FUNC(mmodular_state::irq2_line_hold), irq_period);
m_maincpu->set_periodic_int(FUNC(mmodular_state::irq3_line_hold), irq_period);
config.set_default_layout(layout_mephisto_gen32);
}

View File

@ -216,7 +216,7 @@ void mmtm_state::mmtm_v(machine_config &config)
m_maincpu->set_addrmap(AS_PROGRAM, &mmtm_state::mmtm_2m_map);
const attotime irq_period = attotime::from_hz(12.288_MHz_XTAL / 0x8000); // through 4060, 375Hz
m_maincpu->set_periodic_int(FUNC(mmtm_state::irq2_line_hold), irq_period);
m_maincpu->set_periodic_int(FUNC(mmtm_state::irq3_line_hold), irq_period);
TIMER(config, "disable_bootrom").configure_generic(FUNC(mmtm_state::disable_bootrom));