summaryrefslogtreecommitdiffstatshomepage
path: root/src/mame
diff options
context:
space:
mode:
author hap <happppp@users.noreply.github.com>2020-03-09 12:11:54 +0100
committer hap <happppp@users.noreply.github.com>2020-03-09 12:12:11 +0100
commitcd65d52fcd60af6fb44e8651ce74eb317fb0b11e (patch)
tree4f06b2edbd94f4f8e280d7989e8858ce96e4f2fe /src/mame
parent669e0ba433c3287583c8309e5809015472811d10 (diff)
polgar10: faster irq (nw)
Diffstat (limited to 'src/mame')
-rw-r--r--src/mame/drivers/mephisto_polgar.cpp23
1 files changed, 13 insertions, 10 deletions
diff --git a/src/mame/drivers/mephisto_polgar.cpp b/src/mame/drivers/mephisto_polgar.cpp
index d7b2e8383bb..bc53fa3ec2b 100644
--- a/src/mame/drivers/mephisto_polgar.cpp
+++ b/src/mame/drivers/mephisto_polgar.cpp
@@ -35,6 +35,7 @@ class mephisto_polgar_state : public driver_device
public:
mephisto_polgar_state(const machine_config &mconfig, device_type type, const char *tag)
: driver_device(mconfig, type, tag)
+ , m_maincpu(*this, "maincpu")
, m_keys(*this, "KEY")
{ }
@@ -44,6 +45,7 @@ public:
void polgar(machine_config &config);
void polgar_mem(address_map &map);
protected:
+ required_device<cpu_device> m_maincpu;
required_ioport m_keys;
};
@@ -300,9 +302,9 @@ void mephisto_academy_state::machine_reset()
void mephisto_polgar_state::polgar(machine_config &config)
{
- m65c02_device &maincpu(M65C02(config, "maincpu", XTAL(4'915'200))); // RP65C02G
- maincpu.set_addrmap(AS_PROGRAM, &mephisto_polgar_state::polgar_mem);
- maincpu.set_periodic_int(FUNC(mephisto_polgar_state::nmi_line_pulse), attotime::from_hz(XTAL(4'915'200) / (1 << 13)));
+ M65C02(config, m_maincpu, XTAL(4'915'200)); // RP65C02G
+ m_maincpu->set_addrmap(AS_PROGRAM, &mephisto_polgar_state::polgar_mem);
+ m_maincpu->set_periodic_int(FUNC(mephisto_polgar_state::nmi_line_pulse), attotime::from_hz(XTAL(4'915'200) / (1 << 13)));
NVRAM(config, "nvram", nvram_device::DEFAULT_ALL_0);
@@ -322,17 +324,18 @@ void mephisto_polgar_state::polgar(machine_config &config)
void mephisto_polgar_state::polgar10(machine_config &config)
{
polgar(config);
- subdevice<m65c02_device>("maincpu")->set_clock(9.8304_MHz_XTAL); // W65C02P-8
+ m_maincpu->set_clock(9.8304_MHz_XTAL); // W65C02P-8
+ m_maincpu->set_periodic_int(FUNC(mephisto_polgar_state::nmi_line_pulse), attotime::from_hz(9.8304_MHz_XTAL / (1 << 13)));
}
void mephisto_risc_state::mrisc(machine_config &config)
{
- m65sc02_device &maincpu(M65SC02(config, "maincpu", XTAL(10'000'000) / 4)); // G65SC02P-4
- maincpu.set_addrmap(AS_PROGRAM, &mephisto_risc_state::mrisc_mem);
- maincpu.set_periodic_int(FUNC(mephisto_risc_state::irq0_line_hold), attotime::from_hz(XTAL(10'000'000) / (1 << 14)));
+ M65SC02(config, m_maincpu, XTAL(10'000'000) / 4); // G65SC02P-4
+ m_maincpu->set_addrmap(AS_PROGRAM, &mephisto_risc_state::mrisc_mem);
+ m_maincpu->set_periodic_int(FUNC(mephisto_risc_state::irq0_line_hold), attotime::from_hz(XTAL(10'000'000) / (1 << 14)));
CHESSMACHINE(config, m_chessm, 14'000'000); // Tasc ChessMachine EC PCB, Mephisto manual says 14MHz (no XTAL)
- config.set_perfect_quantum("maincpu");
+ config.set_perfect_quantum(m_maincpu);
NVRAM(config, "nvram", nvram_device::DEFAULT_ALL_0);
@@ -353,7 +356,7 @@ void mephisto_risc_state::mrisc(machine_config &config)
void mephisto_milano_state::milano(machine_config &config)
{
polgar(config); // CPU: W65C02P-8, 4.9152Mhz
- subdevice<m65c02_device>("maincpu")->set_addrmap(AS_PROGRAM, &mephisto_milano_state::milano_mem);
+ m_maincpu->set_addrmap(AS_PROGRAM, &mephisto_milano_state::milano_mem);
MEPHISTO_BUTTONS_BOARD(config.replace(), m_board);
m_board->set_disable_leds(true);
@@ -363,7 +366,7 @@ void mephisto_milano_state::milano(machine_config &config)
void mephisto_academy_state::academy(machine_config &config)
{
polgar(config); // CPU: VL65NC02-04PC, 4.9152Mhz
- subdevice<m65c02_device>("maincpu")->set_addrmap(AS_PROGRAM, &mephisto_academy_state::academy_mem);
+ 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));