summaryrefslogtreecommitdiffstats
path: root/src/mess/drivers
diff options
context:
space:
mode:
Diffstat (limited to 'src/mess/drivers')
-rw-r--r--src/mess/drivers/apc.c8
-rw-r--r--src/mess/drivers/fm7.c12
-rw-r--r--src/mess/drivers/fmtowns.c7
-rw-r--r--src/mess/drivers/iq151.c9
-rw-r--r--src/mess/drivers/pc88va.c7
-rw-r--r--src/mess/drivers/pc9801.c7
-rw-r--r--src/mess/drivers/pk8000.c5
-rw-r--r--src/mess/drivers/prestige.c14
-rw-r--r--src/mess/drivers/qx10.c7
-rw-r--r--src/mess/drivers/sm1800.c5
-rw-r--r--src/mess/drivers/tsispch.c6
11 files changed, 46 insertions, 41 deletions
diff --git a/src/mess/drivers/apc.c b/src/mess/drivers/apc.c
index 37541cecda8..963fc5e9b9a 100644
--- a/src/mess/drivers/apc.c
+++ b/src/mess/drivers/apc.c
@@ -148,6 +148,8 @@ public:
int m_dack;
UINT8 m_dma_offset[4];
+
+ IRQ_CALLBACK_MEMBER(irq_callback);
protected:
// driver_device overrides
@@ -741,14 +743,14 @@ void apc_state::fdc_irq(bool state)
pic8259_ir4_w(machine().device("pic8259_slave"), state);
}
-static IRQ_CALLBACK(irq_callback)
+IRQ_CALLBACK_MEMBER(apc_state::irq_callback)
{
- return pic8259_acknowledge( device->machine().device( "pic8259_master" ));
+ return pic8259_acknowledge( machine().device( "pic8259_master" ));
}
void apc_state::machine_start()
{
- machine().device("maincpu")->execute().set_irq_acknowledge_callback(irq_callback);
+ machine().device("maincpu")->execute().set_irq_acknowledge_callback(device_irq_acknowledge_delegate(FUNC(apc_state::irq_callback),this));
m_fdc->set_rate(500000);
m_fdc->setup_intrq_cb(upd765a_device::line_cb(FUNC(apc_state::fdc_irq), this));
diff --git a/src/mess/drivers/fm7.c b/src/mess/drivers/fm7.c
index 462ed23dc65..f83f85265da 100644
--- a/src/mess/drivers/fm7.c
+++ b/src/mess/drivers/fm7.c
@@ -1336,16 +1336,16 @@ TIMER_CALLBACK_MEMBER(fm7_state::fm7_keyboard_poll)
}
}
-static IRQ_CALLBACK(fm7_irq_ack)
+IRQ_CALLBACK_MEMBER(fm7_state::fm7_irq_ack)
{
if(irqline == M6809_FIRQ_LINE)
- device->machine().device("maincpu")->execute().set_input_line(irqline,CLEAR_LINE);
+ machine().device("maincpu")->execute().set_input_line(irqline,CLEAR_LINE);
return -1;
}
-static IRQ_CALLBACK(fm7_sub_irq_ack)
+IRQ_CALLBACK_MEMBER(fm7_state::fm7_sub_irq_ack)
{
- device->machine().device("sub")->execute().set_input_line(irqline,CLEAR_LINE);
+ machine().device("sub")->execute().set_input_line(irqline,CLEAR_LINE);
return -1;
}
@@ -1832,8 +1832,8 @@ DRIVER_INIT_MEMBER(fm7_state,fm7)
m_subtimer = machine().scheduler().timer_alloc(timer_expired_delegate(FUNC(fm7_state::fm7_subtimer_irq),this));
m_keyboard_timer = machine().scheduler().timer_alloc(timer_expired_delegate(FUNC(fm7_state::fm7_keyboard_poll),this));
m_fm77av_vsync_timer = machine().scheduler().timer_alloc(timer_expired_delegate(FUNC(fm7_state::fm77av_vsync),this));
- machine().device("maincpu")->execute().set_irq_acknowledge_callback(fm7_irq_ack);
- machine().device("sub")->execute().set_irq_acknowledge_callback(fm7_sub_irq_ack);
+ machine().device("maincpu")->execute().set_irq_acknowledge_callback(device_irq_acknowledge_delegate(FUNC(fm7_state::fm7_irq_ack),this));
+ machine().device("sub")->execute().set_irq_acknowledge_callback(device_irq_acknowledge_delegate(FUNC(fm7_state::fm7_sub_irq_ack),this));
}
MACHINE_START_MEMBER(fm7_state,fm7)
diff --git a/src/mess/drivers/fmtowns.c b/src/mess/drivers/fmtowns.c
index 79eb458a47c..1e100bb8395 100644
--- a/src/mess/drivers/fmtowns.c
+++ b/src/mess/drivers/fmtowns.c
@@ -2016,10 +2016,9 @@ READ8_MEMBER(towns_state::towns_41ff_r)
return 0x01;
}
-static IRQ_CALLBACK( towns_irq_callback )
+IRQ_CALLBACK_MEMBER(towns_state::towns_irq_callback)
{
- towns_state* state = device->machine().driver_data<towns_state>();
- return pic8259_acknowledge(state->m_pic_master);
+ return pic8259_acknowledge(m_pic_master);
}
// YM3438 interrupt (IRQ 13)
@@ -2511,7 +2510,7 @@ void towns_state::driver_start()
// CD-ROM init
m_towns_cd.read_timer = machine().scheduler().timer_alloc(timer_expired_delegate(FUNC(towns_state::towns_cdrom_read_byte),this), (void*)machine().device("dma_1"));
- machine().device("maincpu")->execute().set_irq_acknowledge_callback(towns_irq_callback);
+ machine().device("maincpu")->execute().set_irq_acknowledge_callback(device_irq_acknowledge_delegate(FUNC(towns_state::towns_irq_callback),this));
machine().device("maincpu")->memory().space(AS_PROGRAM).install_ram(0x100000,machine().device<ram_device>(RAM_TAG)->size()-1,0xffffffff,0,NULL);
}
diff --git a/src/mess/drivers/iq151.c b/src/mess/drivers/iq151.c
index 5ad6cf4efae..7e462a45f2d 100644
--- a/src/mess/drivers/iq151.c
+++ b/src/mess/drivers/iq151.c
@@ -98,6 +98,7 @@ public:
INTERRUPT_GEN_MEMBER(iq151_vblank_interrupt);
DECLARE_INPUT_CHANGED_MEMBER(iq151_break);
TIMER_DEVICE_CALLBACK_MEMBER(cassette_timer);
+ IRQ_CALLBACK_MEMBER(iq151_irq_callback);
};
READ8_MEMBER(iq151_state::keyboard_row_r)
@@ -327,11 +328,9 @@ INTERRUPT_GEN_MEMBER(iq151_state::iq151_vblank_interrupt)
m_vblank_irq_state ^= 1;
}
-static IRQ_CALLBACK(iq151_irq_callback)
+IRQ_CALLBACK_MEMBER(iq151_state::iq151_irq_callback)
{
- iq151_state *state = device->machine().driver_data<iq151_state>();
-
- return pic8259_acknowledge(state->m_pic);
+ return pic8259_acknowledge(m_pic);
}
TIMER_DEVICE_CALLBACK_MEMBER(iq151_state::cassette_timer)
@@ -347,7 +346,7 @@ DRIVER_INIT_MEMBER(iq151_state,iq151)
membank("boot")->configure_entry(0, RAM + 0xf800);
membank("boot")->configure_entry(1, RAM + 0x0000);
- m_maincpu->set_irq_acknowledge_callback(iq151_irq_callback);
+ m_maincpu->set_irq_acknowledge_callback(device_irq_acknowledge_delegate(FUNC(iq151_state::iq151_irq_callback),this));
// keep machine pointers to slots
m_carts[0] = machine().device<iq151cart_slot_device>("slot1");
diff --git a/src/mess/drivers/pc88va.c b/src/mess/drivers/pc88va.c
index 2c24cbd4486..718bdae5ba4 100644
--- a/src/mess/drivers/pc88va.c
+++ b/src/mess/drivers/pc88va.c
@@ -151,6 +151,7 @@ public:
void fdc_drq(bool state);
DECLARE_FLOPPY_FORMATS( floppy_formats );
void pc88va_fdc_update_ready(floppy_image_device *, int);
+ IRQ_CALLBACK_MEMBER(pc88va_irq_callback);
};
@@ -1612,9 +1613,9 @@ static I8255_INTERFACE( r232c_ctrl_intf )
DEVCB_DRIVER_MEMBER(pc88va_state,r232_ctrl_portc_w) /* Port C write */
};
-static IRQ_CALLBACK(pc88va_irq_callback)
+IRQ_CALLBACK_MEMBER(pc88va_state::pc88va_irq_callback)
{
- return pic8259_acknowledge( device->machine().device( "pic8259_master" ) );
+ return pic8259_acknowledge( machine().device( "pic8259_master" ) );
}
WRITE_LINE_MEMBER(pc88va_state::pc88va_pic_irq)
@@ -1647,7 +1648,7 @@ static const struct pic8259_interface pc88va_pic8259_slave_config =
void pc88va_state::machine_start()
{
- machine().device("maincpu")->execute().set_irq_acknowledge_callback(pc88va_irq_callback);
+ machine().device("maincpu")->execute().set_irq_acknowledge_callback(device_irq_acknowledge_delegate(FUNC(pc88va_state::pc88va_irq_callback),this));
m_t3_mouse_timer = machine().scheduler().timer_alloc(timer_expired_delegate(FUNC(pc88va_state::t3_mouse_callback),this));
m_t3_mouse_timer->adjust(attotime::never);
diff --git a/src/mess/drivers/pc9801.c b/src/mess/drivers/pc9801.c
index 0490faee60a..bf3c9d1e8a0 100644
--- a/src/mess/drivers/pc9801.c
+++ b/src/mess/drivers/pc9801.c
@@ -654,6 +654,7 @@ public:
inline UINT32 m_calc_grcg_addr(int i,UINT32 offset);
DECLARE_DRIVER_INIT(pc9801_kanji);
+ IRQ_CALLBACK_MEMBER(irq_callback);
};
@@ -3330,14 +3331,14 @@ PALETTE_INIT_MEMBER(pc9801_state,pc9801)
palette_set_color_rgb(machine(), i, pal1bit(0), pal1bit(0), pal1bit(0));
}
-static IRQ_CALLBACK(irq_callback)
+IRQ_CALLBACK_MEMBER(pc9801_state::irq_callback)
{
- return pic8259_acknowledge( device->machine().device( "pic8259_master" ));
+ return pic8259_acknowledge( machine().device( "pic8259_master" ));
}
MACHINE_START_MEMBER(pc9801_state,pc9801_common)
{
- machine().device("maincpu")->execute().set_irq_acknowledge_callback(irq_callback);
+ machine().device("maincpu")->execute().set_irq_acknowledge_callback(device_irq_acknowledge_delegate(FUNC(pc9801_state::irq_callback),this));
m_rtc->cs_w(1);
m_rtc->oe_w(0); // TODO: unknown connection, MS-DOS 6.2x wants this low somehow with the test mode
diff --git a/src/mess/drivers/pk8000.c b/src/mess/drivers/pk8000.c
index 2d0ffc4593a..af20a0ccdba 100644
--- a/src/mess/drivers/pk8000.c
+++ b/src/mess/drivers/pk8000.c
@@ -37,6 +37,7 @@ public:
DECLARE_READ8_MEMBER(pk8000_84_porta_r);
DECLARE_WRITE8_MEMBER(pk8000_84_porta_w);
DECLARE_WRITE8_MEMBER(pk8000_84_portc_w);
+ IRQ_CALLBACK_MEMBER(pk8000_irq_callback);
};
@@ -318,7 +319,7 @@ INTERRUPT_GEN_MEMBER(pk8000_state::pk8000_interrupt)
device.execute().set_input_line(0, HOLD_LINE);
}
-static IRQ_CALLBACK(pk8000_irq_callback)
+IRQ_CALLBACK_MEMBER(pk8000_state::pk8000_irq_callback)
{
return 0xff;
}
@@ -327,7 +328,7 @@ static IRQ_CALLBACK(pk8000_irq_callback)
void pk8000_state::machine_reset()
{
pk8000_set_bank(machine(),0);
- machine().device("maincpu")->execute().set_irq_acknowledge_callback(pk8000_irq_callback);
+ machine().device("maincpu")->execute().set_irq_acknowledge_callback(device_irq_acknowledge_delegate(FUNC(pk8000_state::pk8000_irq_callback),this));
}
void pk8000_state::video_start()
diff --git a/src/mess/drivers/prestige.c b/src/mess/drivers/prestige.c
index f989c0a68a9..9d9bd22ecb9 100644
--- a/src/mess/drivers/prestige.c
+++ b/src/mess/drivers/prestige.c
@@ -112,6 +112,7 @@ public:
DECLARE_WRITE8_MEMBER( mouse_w );
virtual void palette_init();
TIMER_DEVICE_CALLBACK_MEMBER(irq_timer);
+ IRQ_CALLBACK_MEMBER(prestige_int_ack);
};
@@ -393,21 +394,20 @@ INPUT_PORTS_START( prestige )
INPUT_PORTS_END
-static IRQ_CALLBACK( prestige_int_ack )
+IRQ_CALLBACK_MEMBER(prestige_state::prestige_int_ack)
{
UINT32 vector;
- prestige_state *state = device->machine().driver_data<prestige_state>();
- state->m_maincpu->set_input_line(0, CLEAR_LINE);
+ m_maincpu->set_input_line(0, CLEAR_LINE);
- if (state->m_irq_counter == 0x02)
+ if (m_irq_counter == 0x02)
{
- state->m_irq_counter = 0;
+ m_irq_counter = 0;
vector = 0x0020;
}
else
{
- state->m_irq_counter++;
+ m_irq_counter++;
vector = 0x0030;
}
@@ -419,7 +419,7 @@ void prestige_state::machine_start()
UINT8 *ram = m_ram->pointer();
memset(ram, 0x00, m_ram->size());
- m_maincpu->set_irq_acknowledge_callback(prestige_int_ack);
+ m_maincpu->set_irq_acknowledge_callback(device_irq_acknowledge_delegate(FUNC(prestige_state::prestige_int_ack),this));
membank("bank1")->configure_entries(0, 64, memregion("maincpu")->base(), 0x4000);
membank("bank2")->configure_entries(0, 64, memregion("maincpu")->base(), 0x4000);
diff --git a/src/mess/drivers/qx10.c b/src/mess/drivers/qx10.c
index 969e7378cd2..371e273bb88 100644
--- a/src/mess/drivers/qx10.c
+++ b/src/mess/drivers/qx10.c
@@ -146,6 +146,7 @@ public:
virtual void palette_init();
DECLARE_INPUT_CHANGED_MEMBER(key_stroke);
DECLARE_WRITE_LINE_MEMBER(dma_hrq_changed);
+ IRQ_CALLBACK_MEMBER(irq_callback);
};
static UPD7220_DISPLAY_PIXELS( hgdc_display_pixels )
@@ -576,9 +577,9 @@ static const struct pic8259_interface qx10_pic8259_slave_config =
DEVCB_NULL
};
-static IRQ_CALLBACK( irq_callback )
+IRQ_CALLBACK_MEMBER(qx10_state::irq_callback)
{
- return pic8259_acknowledge(device->machine().driver_data<qx10_state>()->m_pic_m );
+ return pic8259_acknowledge(m_pic_m);
}
READ8_MEMBER( qx10_state::upd7201_r )
@@ -908,7 +909,7 @@ INPUT_PORTS_END
void qx10_state::machine_start()
{
- machine().device("maincpu")->execute().set_irq_acknowledge_callback(irq_callback);
+ machine().device("maincpu")->execute().set_irq_acknowledge_callback(device_irq_acknowledge_delegate(FUNC(qx10_state::irq_callback),this));
m_fdc->setup_intrq_cb(upd765a_device::line_cb(FUNC(qx10_state::qx10_upd765_interrupt), this));
m_fdc->setup_drq_cb(upd765a_device::line_cb(FUNC(qx10_state::drq_w), this));
}
diff --git a/src/mess/drivers/sm1800.c b/src/mess/drivers/sm1800.c
index 6f8f5531f51..6ac59e19046 100644
--- a/src/mess/drivers/sm1800.c
+++ b/src/mess/drivers/sm1800.c
@@ -43,6 +43,7 @@ public:
virtual void machine_reset();
virtual void palette_init();
INTERRUPT_GEN_MEMBER(sm1800_vblank_interrupt);
+ IRQ_CALLBACK_MEMBER(sm1800_irq_callback);
};
static ADDRESS_MAP_START(sm1800_mem, AS_PROGRAM, 8, sm1800_state)
@@ -66,14 +67,14 @@ ADDRESS_MAP_END
static INPUT_PORTS_START( sm1800 )
INPUT_PORTS_END
-static IRQ_CALLBACK(sm1800_irq_callback)
+IRQ_CALLBACK_MEMBER(sm1800_state::sm1800_irq_callback)
{
return 0xff;
}
void sm1800_state::machine_reset()
{
- m_maincpu->set_irq_acknowledge_callback(sm1800_irq_callback);
+ m_maincpu->set_irq_acknowledge_callback(device_irq_acknowledge_delegate(FUNC(sm1800_state::sm1800_irq_callback),this));
}
INTERRUPT_GEN_MEMBER(sm1800_state::sm1800_vblank_interrupt)
diff --git a/src/mess/drivers/tsispch.c b/src/mess/drivers/tsispch.c
index 7691c7ec13f..abad5d27b89 100644
--- a/src/mess/drivers/tsispch.c
+++ b/src/mess/drivers/tsispch.c
@@ -180,9 +180,9 @@ static const struct pic8259_interface pic8259_config =
DEVCB_NULL
};
-static IRQ_CALLBACK(irq_callback)
+IRQ_CALLBACK_MEMBER(tsispch_state::irq_callback)
{
- return pic8259_acknowledge(device->machine().device("pic8259"));
+ return pic8259_acknowledge(machine().device("pic8259"));
}
/*****************************************************************************
@@ -272,7 +272,7 @@ void tsispch_state::machine_reset()
int i;
for (i=0; i<32; i++) m_infifo[i] = 0;
m_infifo_tail_ptr = m_infifo_head_ptr = 0;
- machine().device("maincpu")->execute().set_irq_acknowledge_callback(irq_callback);
+ machine().device("maincpu")->execute().set_irq_acknowledge_callback(device_irq_acknowledge_delegate(FUNC(tsispch_state::irq_callback),this));
fprintf(stderr,"machine reset\n");
}