summaryrefslogtreecommitdiffstatshomepage
path: root/src
diff options
context:
space:
mode:
author AJR <ajrhacker@users.noreply.github.com>2020-04-02 15:46:03 -0400
committer AJR <ajrhacker@users.noreply.github.com>2020-04-02 15:46:03 -0400
commit120977e04f0b1a2cdc45fd43c88997320d449e09 (patch)
tree7282404b36e76b46ba647d9e10ac47a5f7e9f0ad /src
parent79eb44993651a079d8462a8ce74803cc172a3417 (diff)
diexec: Eliminate pulse_input_line_and_vector (nw)
Not the best way to accomplish this, admittedly, but the most convenient for now.
Diffstat (limited to 'src')
-rw-r--r--src/emu/diexec.cpp27
-rw-r--r--src/emu/diexec.h1
-rw-r--r--src/mame/drivers/cvs.cpp3
-rw-r--r--src/mame/drivers/galaxold.cpp3
-rw-r--r--src/mame/drivers/scramble.cpp1
-rw-r--r--src/mame/drivers/zac_2.cpp4
-rw-r--r--src/mame/machine/galaxold.cpp2
7 files changed, 10 insertions, 31 deletions
diff --git a/src/emu/diexec.cpp b/src/emu/diexec.cpp
index 2fa82809c78..da2758dc7d5 100644
--- a/src/emu/diexec.cpp
+++ b/src/emu/diexec.cpp
@@ -620,33 +620,6 @@ void device_execute_interface::pulse_input_line(int irqline, const attotime &dur
}
-//-------------------------------------------------
-// pulse_input_line_and_vector - "pulse" an
-// input line by asserting it and then clearing it
-// later, specifying a vector
-//-------------------------------------------------
-
-void device_execute_interface::pulse_input_line_and_vector(int irqline, int vector, const attotime &duration)
-{
- // treat instantaneous pulses as ASSERT+CLEAR
- if (duration == attotime::zero)
- {
- if (irqline != INPUT_LINE_RESET && !input_edge_triggered(irqline))
- throw emu_fatalerror("device '%s': zero-width pulse is not allowed for input line %d\n", device().tag(), irqline);
-
- set_input_line_and_vector(irqline, ASSERT_LINE, vector);
- set_input_line_and_vector(irqline, CLEAR_LINE, vector);
- }
- else
- {
- set_input_line_and_vector(irqline, ASSERT_LINE, vector);
-
- attotime target_time = local_time() + duration;
- m_scheduler->timer_set(target_time - m_scheduler->time(), timer_expired_delegate(FUNC(device_execute_interface::irq_pulse_clear), this), irqline);
- }
-}
-
-
//**************************************************************************
// DEVICE INPUT
diff --git a/src/emu/diexec.h b/src/emu/diexec.h
index 8745b15ae03..75bdca5b229 100644
--- a/src/emu/diexec.h
+++ b/src/emu/diexec.h
@@ -165,7 +165,6 @@ public:
void set_input_line_and_vector(int linenum, int state, int vector) { m_input[linenum].set_state_synced(state, vector); }
int input_state(int linenum) const { return m_input[linenum].m_curstate; }
void pulse_input_line(int irqline, const attotime &duration);
- void pulse_input_line_and_vector(int irqline, int vector, const attotime &duration);
// suspend/resume
void suspend(u32 reason, bool eatcycles);
diff --git a/src/mame/drivers/cvs.cpp b/src/mame/drivers/cvs.cpp
index 60f78e8710d..5a7004a47bb 100644
--- a/src/mame/drivers/cvs.cpp
+++ b/src/mame/drivers/cvs.cpp
@@ -226,7 +226,7 @@ WRITE8_MEMBER(cvs_state::cvs_s2636_2_or_character_ram_w)
INTERRUPT_GEN_MEMBER(cvs_state::cvs_main_cpu_interrupt)
{
- device.execute().pulse_input_line_and_vector(0, 0x03, device.execute().minimum_quantum_time());
+ m_maincpu->pulse_input_line(0, m_maincpu->minimum_quantum_time());
cvs_scroll_stars();
}
@@ -973,6 +973,7 @@ void cvs_state::cvs(machine_config &config)
m_maincpu->set_vblank_int("screen", FUNC(cvs_state::cvs_main_cpu_interrupt));
m_maincpu->sense_handler().set("screen", FUNC(screen_device::vblank));
m_maincpu->flag_handler().set(FUNC(cvs_state::write_s2650_flag));
+ m_maincpu->intack_handler().set_constant(0x03);
S2650(config, m_audiocpu, XTAL(14'318'181)/16);
m_audiocpu->set_addrmap(AS_PROGRAM, &cvs_state::cvs_dac_cpu_map);
diff --git a/src/mame/drivers/galaxold.cpp b/src/mame/drivers/galaxold.cpp
index 550a56d96ea..679a72b2a81 100644
--- a/src/mame/drivers/galaxold.cpp
+++ b/src/mame/drivers/galaxold.cpp
@@ -2588,6 +2588,7 @@ void galaxold_state::drivfrcg(machine_config &config)
maincpu.set_addrmap(AS_IO, &galaxold_state::drivfrcg_io);
maincpu.set_vblank_int("screen", FUNC(galaxold_state::hunchbks_vh_interrupt));
maincpu.sense_handler().set("screen", FUNC(screen_device::vblank)); // ???
+ maincpu.intack_handler().set_constant(0x03);
/* video hardware */
SCREEN(config, m_screen, SCREEN_TYPE_RASTER);
@@ -2677,6 +2678,7 @@ void galaxold_state::racknrol(machine_config &config)
maincpu.sense_handler().set(m_screen, FUNC(screen_device::vblank)).invert(); // ???
// FIXME: kill the following line - convert to a screen vblank callback
maincpu.set_vblank_int("screen", FUNC(galaxold_state::hunchbks_vh_interrupt));
+ maincpu.intack_handler().set_constant(0x03);
/* video hardware */
GFXDECODE(config, m_gfxdecode, m_palette, gfx_galaxian);
@@ -2705,6 +2707,7 @@ void galaxold_state::hexpoola(machine_config &config)
maincpu.sense_handler().set(m_screen, FUNC(screen_device::vblank)).invert(); // ???
// FIXME: kill the following line - convert to a screen vblank callback
maincpu.set_vblank_int("screen", FUNC(galaxold_state::hunchbks_vh_interrupt));
+ maincpu.intack_handler().set_constant(0x03);
GFXDECODE(config, m_gfxdecode, m_palette, gfx_galaxian);
PALETTE(config, m_palette, FUNC(galaxold_state::rockclim_palette), 32);
diff --git a/src/mame/drivers/scramble.cpp b/src/mame/drivers/scramble.cpp
index 64c8b504994..6f28b4f99bf 100644
--- a/src/mame/drivers/scramble.cpp
+++ b/src/mame/drivers/scramble.cpp
@@ -1538,6 +1538,7 @@ void scramble_state::hunchbks(machine_config &config)
maincpu.set_addrmap(AS_PROGRAM, &scramble_state::hunchbks_map);
maincpu.set_addrmap(AS_IO, &scramble_state::hunchbks_readport);
maincpu.sense_handler().set("screen", FUNC(screen_device::vblank));
+ maincpu.intack_handler().set_constant(0x03);
maincpu.set_vblank_int("screen", FUNC(scramble_state::hunchbks_vh_interrupt));
m_screen->set_vblank_time(ATTOSECONDS_IN_USEC(2500));
diff --git a/src/mame/drivers/zac_2.cpp b/src/mame/drivers/zac_2.cpp
index 867b108feb4..0b3ea675771 100644
--- a/src/mame/drivers/zac_2.cpp
+++ b/src/mame/drivers/zac_2.cpp
@@ -192,7 +192,7 @@ TIMER_DEVICE_CALLBACK_MEMBER(zac_2_state::zac_2_inttimer)
{
// a pulse is sent via a capacitor (similar to what one finds at a reset pin)
if (m_t_c > 0x80)
- m_maincpu->pulse_input_line_and_vector(INPUT_LINE_IRQ0, 0xbf, 2 * m_maincpu->minimum_quantum_time());
+ m_maincpu->pulse_input_line(INPUT_LINE_IRQ0, 2 * m_maincpu->minimum_quantum_time());
else
m_t_c++;
}
@@ -220,6 +220,8 @@ void zac_2_state::zac_2(machine_config &config)
m_maincpu->set_addrmap(AS_DATA, &zac_2_state::zac_2_data);
m_maincpu->sense_handler().set(FUNC(zac_2_state::serial_r));
m_maincpu->flag_handler().set(FUNC(zac_2_state::serial_w));
+ m_maincpu->intack_handler().set_constant(0xbf);
+
NVRAM(config, "ram", nvram_device::DEFAULT_ALL_0);
TIMER(config, "zac_2_inttimer").configure_periodic(FUNC(zac_2_state::zac_2_inttimer), attotime::from_hz(200));
diff --git a/src/mame/machine/galaxold.cpp b/src/mame/machine/galaxold.cpp
index c94628c1427..06256aaf30c 100644
--- a/src/mame/machine/galaxold.cpp
+++ b/src/mame/machine/galaxold.cpp
@@ -162,7 +162,7 @@ void galaxold_state::init_4in1()
INTERRUPT_GEN_MEMBER(galaxold_state::hunchbks_vh_interrupt)
{
- device.execute().pulse_input_line_and_vector(0, 0x03, device.execute().minimum_quantum_time());
+ m_maincpu->pulse_input_line(0, m_maincpu->minimum_quantum_time());
}
void galaxold_state::init_bullsdrtg()