summaryrefslogtreecommitdiffstatshomepage
path: root/src/mess/machine
diff options
context:
space:
mode:
author Wilbert Pol <wilbert@jdg.info>2013-05-14 20:48:27 +0000
committer Wilbert Pol <wilbert@jdg.info>2013-05-14 20:48:27 +0000
commit34be6878ec112891732038e4ecdc0b8c251bdba6 (patch)
tree5128175d86b67f9e700056a99d175e92d06775d5 /src/mess/machine
parent7a03b5c0c6efc55c2871829fe85e9988b823f78b (diff)
pic8259.c: Continue modernization. (nw)
Diffstat (limited to 'src/mess/machine')
-rw-r--r--src/mess/machine/apollo.c54
-rw-r--r--src/mess/machine/at.c2
-rw-r--r--src/mess/machine/b2m.c6
-rw-r--r--src/mess/machine/bebox.c18
-rw-r--r--src/mess/machine/compis.c2
-rw-r--r--src/mess/machine/genpc.c4
-rw-r--r--src/mess/machine/mbc55x.c4
-rw-r--r--src/mess/machine/pc.c40
-rw-r--r--src/mess/machine/pc9801_118.c2
-rw-r--r--src/mess/machine/pc9801_26.c2
-rw-r--r--src/mess/machine/pc9801_86.c2
-rw-r--r--src/mess/machine/pk8020.c8
-rw-r--r--src/mess/machine/southbridge.c6
13 files changed, 75 insertions, 75 deletions
diff --git a/src/mess/machine/apollo.c b/src/mess/machine/apollo.c
index 8c406e32050..668d339c7e9 100644
--- a/src/mess/machine/apollo.c
+++ b/src/mess/machine/apollo.c
@@ -599,11 +599,11 @@ static I8237_INTERFACE( apollo_dma8237_2_config )
#undef VERBOSE
#define VERBOSE 0
-INLINE device_t *get_pic8259_master(device_t *device) {
+INLINE pic8259_device *get_pic8259_master(device_t *device) {
return device->machine().driver_data<apollo_state>()->pic8259_master;
}
-INLINE device_t *get_pic8259_slave(device_t *device) {
+INLINE pic8259_device *get_pic8259_slave(device_t *device) {
return device->machine().driver_data<apollo_state>()->pic8259_slave;
}
@@ -613,11 +613,11 @@ INLINE device_t *get_pic8259_slave(device_t *device) {
WRITE8_DEVICE_HANDLER(apollo_pic8259_master_w ) {
DLOG1(("writing %s at offset %X = %02x", device->tag(), offset, data));
- pic8259_w(device, space, offset, data);
+ downcast<pic8259_device *>(device)->write(space, offset, data);
}
READ8_DEVICE_HANDLER( apollo_pic8259_master_r ) {
- UINT8 data = pic8259_r(device, space, offset);
+ UINT8 data = downcast<pic8259_device *>(device)->read(space, offset);
DLOG1(("reading %s at offset %X = %02x", device->tag(), offset, data));
return data;
}
@@ -628,11 +628,11 @@ READ8_DEVICE_HANDLER( apollo_pic8259_master_r ) {
WRITE8_DEVICE_HANDLER(apollo_pic8259_slave_w ) {
DLOG1(("writing %s at offset %X = %02x", device->tag(), offset, data));
- pic8259_w(device, space, offset, data);
+ downcast<pic8259_device *>(device)->write(space, offset, data);
}
READ8_DEVICE_HANDLER( apollo_pic8259_slave_r ) {
- UINT8 data = pic8259_r(device, space, offset);
+ UINT8 data = downcast<pic8259_device *>(device)->read(space, offset);
DLOG1(("reading %s at offset %X = %02x", device->tag(), offset, data));
return data;
}
@@ -644,31 +644,31 @@ static void apollo_pic_set_irq_line(device_t *device, int irq, int state) {
}
switch (irq) {
- case 0: pic8259_ir0_w(get_pic8259_master(device), state); break;
- case 1: pic8259_ir1_w(get_pic8259_master(device), state); break;
- case 2: pic8259_ir2_w(get_pic8259_master(device), state); break;
- case 3: pic8259_ir3_w(get_pic8259_master(device), state); break;
- case 4: pic8259_ir4_w(get_pic8259_master(device), state); break;
- case 5: pic8259_ir5_w(get_pic8259_master(device), state); break;
- case 6: pic8259_ir6_w(get_pic8259_master(device), state); break;
- case 7: pic8259_ir7_w(get_pic8259_master(device), state); break;
-
- case 8: pic8259_ir0_w(get_pic8259_slave(device), state); break;
- case 9: pic8259_ir1_w(get_pic8259_slave(device), state); break;
- case 10: pic8259_ir2_w(get_pic8259_slave(device), state); break;
- case 11: pic8259_ir3_w(get_pic8259_slave(device), state); break;
- case 12: pic8259_ir4_w(get_pic8259_slave(device), state); break;
- case 13: pic8259_ir5_w(get_pic8259_slave(device), state); break;
- case 14: pic8259_ir6_w(get_pic8259_slave(device), state); break;
- case 15: pic8259_ir7_w(get_pic8259_slave(device), state); break;
+ case 0: get_pic8259_master(device)->ir0_w(state); break;
+ case 1: get_pic8259_master(device)->ir1_w(state); break;
+ case 2: get_pic8259_master(device)->ir2_w(state); break;
+ case 3: get_pic8259_master(device)->ir3_w(state); break;
+ case 4: get_pic8259_master(device)->ir4_w(state); break;
+ case 5: get_pic8259_master(device)->ir5_w(state); break;
+ case 6: get_pic8259_master(device)->ir6_w(state); break;
+ case 7: get_pic8259_master(device)->ir7_w(state); break;
+
+ case 8: get_pic8259_slave(device)->ir0_w(state); break;
+ case 9: get_pic8259_slave(device)->ir1_w(state); break;
+ case 10: get_pic8259_slave(device)->ir2_w(state); break;
+ case 11: get_pic8259_slave(device)->ir3_w(state); break;
+ case 12: get_pic8259_slave(device)->ir4_w(state); break;
+ case 13: get_pic8259_slave(device)->ir5_w(state); break;
+ case 14: get_pic8259_slave(device)->ir6_w(state); break;
+ case 15: get_pic8259_slave(device)->ir7_w(state); break;
}
}
IRQ_CALLBACK_MEMBER(apollo_state::apollo_pic_acknowledge)
{
- UINT32 vector = pic8259_acknowledge(get_pic8259_master(&device));
+ UINT32 vector = get_pic8259_master(&device)->acknowledge();
if ((vector & 0x0f) == APOLLO_IRQ_PIC_SLAVE) {
- vector = pic8259_acknowledge(get_pic8259_slave(&device));
+ vector = get_pic8259_slave(&device)->acknowledge();
}
// don't log ptm interrupts
@@ -1419,8 +1419,8 @@ MACHINE_RESET_MEMBER(apollo_state,apollo)
dma8237_1 = machine().device<i8237_device>(APOLLO_DMA1_TAG);
dma8237_2 = machine().device<i8237_device>(APOLLO_DMA2_TAG);
- pic8259_master = machine().device(APOLLO_PIC1_TAG);
- pic8259_slave = machine().device(APOLLO_PIC2_TAG);
+ pic8259_master = machine().device<pic8259_device>(APOLLO_PIC1_TAG);
+ pic8259_slave = machine().device<pic8259_device>(APOLLO_PIC2_TAG);
// set configuration
apollo_csr_set_servicemode(apollo_config(APOLLO_CONF_SERVICE_MODE));
diff --git a/src/mess/machine/at.c b/src/mess/machine/at.c
index 6d3c4b9b0b4..b2305d4d7a0 100644
--- a/src/mess/machine/at.c
+++ b/src/mess/machine/at.c
@@ -66,7 +66,7 @@ void at_state::at_speaker_set_input(UINT8 data)
WRITE_LINE_MEMBER( at_state::at_pit8254_out0_changed )
{
if (m_pic8259_master)
- pic8259_ir0_w(m_pic8259_master, state);
+ m_pic8259_master->ir0_w(state);
}
diff --git a/src/mess/machine/b2m.c b/src/mess/machine/b2m.c
index 6c825aee8fd..420261e7f3e 100644
--- a/src/mess/machine/b2m.c
+++ b/src/mess/machine/b2m.c
@@ -324,7 +324,7 @@ void b2m_state::b2m_postload()
void b2m_state::machine_start()
{
- m_pic = machine().device("pic8259");
+ m_pic = machine().device<pic8259_device>("pic8259");
m_fdc = machine().device<fd1793_t>("fd1793");
m_fdc->setup_drq_cb(fd1793_t::line_cb(FUNC(b2m_state::b2m_fdc_drq), this));
@@ -347,7 +347,7 @@ void b2m_state::machine_start()
IRQ_CALLBACK_MEMBER(b2m_state::b2m_irq_callback)
{
- return pic8259_acknowledge(m_pic);
+ return m_pic->acknowledge();
}
const struct pic8259_interface b2m_pic8259_config =
@@ -361,7 +361,7 @@ INTERRUPT_GEN_MEMBER(b2m_state::b2m_vblank_interrupt)
{
m_vblank_state++;
if (m_vblank_state>1) m_vblank_state=0;
- pic8259_ir0_w(m_pic, m_vblank_state);
+ m_pic->ir0_w(m_vblank_state);
}
void b2m_state::machine_reset()
diff --git a/src/mess/machine/bebox.c b/src/mess/machine/bebox.c
index 9551ec5ab84..65dca06ee89 100644
--- a/src/mess/machine/bebox.c
+++ b/src/mess/machine/bebox.c
@@ -454,7 +454,7 @@ void bebox_state::fdc_interrupt(bool state)
{
bebox_set_irq_bit(machine(), 13, state);
if ( m_devices.pic8259_master ) {
- pic8259_ir6_w(m_devices.pic8259_master, state);
+ m_devices.pic8259_master->ir6_w(state);
}
}
@@ -474,8 +474,8 @@ void bebox_state::fdc_dma_drq(bool state)
READ64_MEMBER(bebox_state::bebox_interrupt_ack_r )
{
- int result;
- result = pic8259_acknowledge( m_devices.pic8259_master );
+ UINT32 result;
+ result = m_devices.pic8259_master->acknowledge();
bebox_set_irq_bit(space.machine(), 5, 0); /* HACK */
return ((UINT64) result) << 56;
}
@@ -495,13 +495,13 @@ WRITE_LINE_MEMBER(bebox_state::bebox_pic8259_master_set_int_line)
WRITE_LINE_MEMBER(bebox_state::bebox_pic8259_slave_set_int_line)
{
if (m_devices.pic8259_master)
- pic8259_ir2_w(m_devices.pic8259_master, state);
+ m_devices.pic8259_master->ir2_w(state);
}
READ8_MEMBER(bebox_state::get_slave_ack)
{
if (offset==2) { // IRQ = 2
- return pic8259_acknowledge(m_devices.pic8259_slave);
+ return m_devices.pic8259_slave->acknowledge();
}
return 0x00;
}
@@ -558,7 +558,7 @@ WRITE_LINE_MEMBER(bebox_state::bebox_ide_interrupt)
{
bebox_set_irq_bit(machine(), 7, state);
if ( m_devices.pic8259_master ) {
- pic8259_ir6_w(m_devices.pic8259_master, state);
+ m_devices.pic8259_master->ir6_w(state);
}
}
@@ -787,7 +787,7 @@ I8237_INTERFACE( bebox_dma8237_2_config )
WRITE_LINE_MEMBER(bebox_state::bebox_timer0_w)
{
if (m_devices.pic8259_master)
- pic8259_ir0_w(m_devices.pic8259_master, state);
+ m_devices.pic8259_master->ir0_w(state);
}
@@ -969,8 +969,8 @@ void scsi53c810_pci_write(device_t *busdevice, device_t *device, int function, i
TIMER_CALLBACK_MEMBER(bebox_state::bebox_get_devices){
- m_devices.pic8259_master = machine().device("pic8259_master");
- m_devices.pic8259_slave = machine().device("pic8259_slave");
+ m_devices.pic8259_master = machine().device<pic8259_device>("pic8259_master");
+ m_devices.pic8259_slave = machine().device<pic8259_device>("pic8259_slave");
m_devices.dma8237_1 = machine().device<i8237_device>("dma8237_1");
m_devices.dma8237_2 = machine().device<i8237_device>("dma8237_2");
}
diff --git a/src/mess/machine/compis.c b/src/mess/machine/compis.c
index 088fe8e7926..c5e6d705b79 100644
--- a/src/mess/machine/compis.c
+++ b/src/mess/machine/compis.c
@@ -1263,7 +1263,7 @@ WRITE_LINE_MEMBER( compis_state::compis_pic8259_master_set_int_line )
WRITE_LINE_MEMBER( compis_state::compis_pic8259_slave_set_int_line )
{
if (m_8259m)
- pic8259_ir2_w(m_8259m, state);
+ m_8259m->ir2_w(state);
}
READ8_MEMBER( compis_state::get_slave_ack )
diff --git a/src/mess/machine/genpc.c b/src/mess/machine/genpc.c
index c394ba1008a..529e6545ffe 100644
--- a/src/mess/machine/genpc.c
+++ b/src/mess/machine/genpc.c
@@ -323,7 +323,7 @@ WRITE_LINE_MEMBER( ibm5160_mb_device::keyboard_clock_w )
m_ppi_shift_register = ( m_ppi_shift_register >> 1 ) | ( m_ppi_data_signal << 7 );
if ( trigger_irq )
{
- pic8259_ir1_w(m_pic8259, 1);
+ m_pic8259->ir1_w(1);
m_ppi_shift_enable = 0;
m_ppi_clock_signal = 0;
m_pc_kbdc->clock_write_from_mb(m_ppi_clock_signal);
@@ -628,7 +628,7 @@ void ibm5160_mb_device::install_device(offs_t start, offs_t end, offs_t mask, of
void ibm5160_mb_device::device_start()
{
install_device(0x0000, 0x000f, 0, 0, read8_delegate(FUNC(am9517a_device::read), (am9517a_device*)m_dma8237), write8_delegate(FUNC(am9517a_device::write), (am9517a_device*)m_dma8237) );
- install_device(m_pic8259, 0x0020, 0x0021, 0, 0, FUNC(pic8259_r), FUNC(pic8259_w) );
+ install_device(0x0020, 0x0021, 0, 0, read8_delegate(FUNC(pic8259_device::read), (pic8259_device*)m_pic8259), write8_delegate(FUNC(pic8259_device::write), (pic8259_device*)m_pic8259) );
install_device(m_pit8253, 0x0040, 0x0043, 0, 0, FUNC(pit8253_r), FUNC(pit8253_w) );
// install_device(m_ppi8255, 0x0060, 0x0063, 0, 0, FUNC(i8255a_r), FUNC(i8255a_w) );
diff --git a/src/mess/machine/mbc55x.c b/src/mess/machine/mbc55x.c
index a61429d1ff6..08cbd0730c7 100644
--- a/src/mess/machine/mbc55x.c
+++ b/src/mess/machine/mbc55x.c
@@ -118,12 +118,12 @@ const struct pic8259_interface mbc55x_pic8259_config =
READ8_MEMBER(mbc55x_state::mbcpic8259_r)
{
- return pic8259_r(m_pic, space, offset>>1);
+ return m_pic->read(space, offset>>1);
}
WRITE8_MEMBER(mbc55x_state::mbcpic8259_w)
{
- pic8259_w(m_pic, space, offset>>1, data);
+ m_pic->write(space, offset>>1, data);
}
IRQ_CALLBACK_MEMBER(mbc55x_state::mbc55x_irq_callback)
diff --git a/src/mess/machine/pc.c b/src/mess/machine/pc.c
index 5783fe49355..cc318fd6524 100644
--- a/src/mess/machine/pc.c
+++ b/src/mess/machine/pc.c
@@ -457,12 +457,12 @@ const struct pit8253_config mc1502_pit8253_config =
/* called when a interrupt is set/cleared from com hardware */
WRITE_LINE_MEMBER(pc_state::pc_com_interrupt_1)
{
- pic8259_ir4_w(m_pic8259, state);
+ m_pic8259->ir4_w(state);
}
WRITE_LINE_MEMBER(pc_state::pc_com_interrupt_2)
{
- pic8259_ir3_w(m_pic8259, state);
+ m_pic8259->ir3_w(state);
}
const ins8250_interface ibm5150_com_interface[4]=
@@ -740,7 +740,7 @@ WRITE_LINE_MEMBER( pc_state::keyboard_clock_w )
m_ppi_shift_register = ( m_ppi_shift_register >> 1 ) | ( m_ppi_data_signal << 7 );
if ( trigger_irq )
{
- pic8259_ir1_w(m_pic8259, 1);
+ m_pic8259->ir1_w(1);
m_ppi_shift_enable = 0;
m_ppi_clock_signal = 0;
m_pc_kbdc->clock_write_from_mb(m_ppi_clock_signal);
@@ -832,7 +832,7 @@ WRITE8_MEMBER(pc_state::ibm5160_ppi_portb_w)
/* If PB7 is set clear the shift register and reset the IRQ line */
if ( m_ppi_keyboard_clear )
{
- pic8259_ir1_w(m_pic8259, 0);
+ m_pic8259->ir1_w(0);
m_ppi_shift_register = 0;
m_ppi_shift_enable = 1;
}
@@ -945,7 +945,7 @@ TIMER_CALLBACK_MEMBER(pc_state::mc1502_keyb_signal_callback)
}
if (mc1502_keyb.pulsing) {
- pic8259_ir1_w(m_pic8259, (mc1502_keyb.pulsing & 1));
+ m_pic8259->ir1_w(mc1502_keyb.pulsing & 1);
mc1502_keyb.pulsing--;
}
}
@@ -962,7 +962,7 @@ WRITE8_MEMBER(pc_state::mc1502_ppi_porta_w)
mc1502_keyb.latch = data;
if (mc1502_keyb.pulsing)
mc1502_keyb.pulsing--;
- pic8259_ir1_w(m_pic8259, 0);
+ m_pic8259->ir1_w(0);
}
WRITE8_MEMBER(pc_state::mc1502_ppi_portb_w)
@@ -1146,7 +1146,7 @@ void pc_state::fdc_interrupt(bool state)
{
if (m_pic8259)
{
- pic8259_ir6_w(m_pic8259, state);
+ m_pic8259->ir6_w(state);
}
}
@@ -1161,14 +1161,14 @@ static void pc_set_irq_line(running_machine &machine,int irq, int state)
switch (irq)
{
- case 0: pic8259_ir0_w(st->m_pic8259, state); break;
- case 1: pic8259_ir1_w(st->m_pic8259, state); break;
- case 2: pic8259_ir2_w(st->m_pic8259, state); break;
- case 3: pic8259_ir3_w(st->m_pic8259, state); break;
- case 4: pic8259_ir4_w(st->m_pic8259, state); break;
- case 5: pic8259_ir5_w(st->m_pic8259, state); break;
- case 6: pic8259_ir6_w(st->m_pic8259, state); break;
- case 7: pic8259_ir7_w(st->m_pic8259, state); break;
+ case 0: st->m_pic8259->ir0_w(state); break;
+ case 1: st->m_pic8259->ir1_w(state); break;
+ case 2: st->m_pic8259->ir2_w(state); break;
+ case 3: st->m_pic8259->ir3_w(state); break;
+ case 4: st->m_pic8259->ir4_w(state); break;
+ case 5: st->m_pic8259->ir5_w(state); break;
+ case 6: st->m_pic8259->ir6_w(state); break;
+ case 7: st->m_pic8259->ir7_w(state); break;
}
}
@@ -1469,13 +1469,13 @@ DRIVER_INIT_MEMBER(pc_state,mc1502)
IRQ_CALLBACK_MEMBER(pc_state::pc_irq_callback)
{
- return pic8259_acknowledge(m_pic8259);
+ return m_pic8259->acknowledge();
}
MACHINE_START_MEMBER(pc_state,pc)
{
- m_pic8259 = machine().device("pic8259");
+ m_pic8259 = machine().device<pic8259_device>("pic8259");
m_pit8253 = machine().device("pit8253");
m_maincpu->set_irq_acknowledge_callback(device_irq_acknowledge_delegate(FUNC(pc_state::pc_irq_callback),this));
@@ -1512,7 +1512,7 @@ MACHINE_START_MEMBER(pc_state,mc1502)
{
m_maincpu->set_irq_acknowledge_callback(device_irq_acknowledge_delegate(FUNC(pc_state::pc_irq_callback),this));
- m_pic8259 = machine().device("pic8259");
+ m_pic8259 = machine().device<pic8259_device>("pic8259");
m_pit8253 = machine().device("pit8253");
/*
@@ -1521,7 +1521,7 @@ MACHINE_START_MEMBER(pc_state,mc1502)
40ms (check) for 20ms (check) until all keys are released.
Last pulse causes BIOS to write a 'break' scancode into port 60h.
*/
- pic8259_ir1_w(m_pic8259, 1);
+ m_pic8259->ir1_w(1);
memset(&mc1502_keyb, 0, sizeof(mc1502_keyb));
mc1502_keyb.keyb_signal_timer = machine().scheduler().timer_alloc(timer_expired_delegate(FUNC(pc_state::mc1502_keyb_signal_callback),this));
mc1502_keyb.keyb_signal_timer->adjust( attotime::from_msec(20), 0, attotime::from_msec(20) );
@@ -1542,7 +1542,7 @@ MACHINE_START_MEMBER(pc_state,pcjr)
machine().device<upd765a_device>("upd765")->set_ready_line_connected(false);
- m_pic8259 = machine().device("pic8259");
+ m_pic8259 = machine().device<pic8259_device>("pic8259");
m_pit8253 = machine().device("pit8253");
}
diff --git a/src/mess/machine/pc9801_118.c b/src/mess/machine/pc9801_118.c
index ffee7810610..9bd8925735f 100644
--- a/src/mess/machine/pc9801_118.c
+++ b/src/mess/machine/pc9801_118.c
@@ -38,7 +38,7 @@ WRITE8_MEMBER(pc9801_118_device::opn_portb_w){ m_joy_sel = data; }
WRITE_LINE_MEMBER(pc9801_118_device::pc9801_sound_irq)
{
/* TODO: seems to die very often */
- pic8259_ir4_w(machine().device("pic8259_slave"), state);
+ machine().device<pic8259_device>(":pic8259_slave")->ir4_w(state);
}
static const ay8910_interface ay8910_config =
diff --git a/src/mess/machine/pc9801_26.c b/src/mess/machine/pc9801_26.c
index 61e24f4532a..150ebfd0e2c 100644
--- a/src/mess/machine/pc9801_26.c
+++ b/src/mess/machine/pc9801_26.c
@@ -38,7 +38,7 @@ WRITE8_MEMBER(pc9801_26_device::opn_portb_w){ m_joy_sel = data; }
WRITE_LINE_MEMBER(pc9801_26_device::pc9801_sound_irq)
{
/* TODO: seems to die very often */
- pic8259_ir4_w(machine().device("pic8259_slave"), state);
+ machine().device<pic8259_device>(":pic8259_slave")->ir4_w(state);
}
static const ay8910_interface ay8910_config =
diff --git a/src/mess/machine/pc9801_86.c b/src/mess/machine/pc9801_86.c
index 4d60e9a8be5..1c59a4f0630 100644
--- a/src/mess/machine/pc9801_86.c
+++ b/src/mess/machine/pc9801_86.c
@@ -38,7 +38,7 @@ WRITE8_MEMBER(pc9801_86_device::opn_portb_w){ m_joy_sel = data; }
WRITE_LINE_MEMBER(pc9801_86_device::pc9801_sound_irq)
{
/* TODO: seems to die very often */
- pic8259_ir4_w(machine().device("pic8259_slave"), state);
+ machine().device<pic8259_device>(":pic8259_slave")->ir4_w(state);
}
static const ay8910_interface ay8910_config =
diff --git a/src/mess/machine/pk8020.c b/src/mess/machine/pk8020.c
index 67392a59b3d..fc99e312a26 100644
--- a/src/mess/machine/pk8020.c
+++ b/src/mess/machine/pk8020.c
@@ -167,7 +167,7 @@ READ8_MEMBER(pk8020_state::devices_r)
case 1 : return m_lan->status_r(space,0);
}
break;
- case 0x28: return pic8259_r(m_pic8259,space, offset & 1);
+ case 0x28: return m_pic8259->read(space, offset & 1);
case 0x30: return m_ppi8255_2->read(space,offset & 3);
case 0x38: return m_ppi8255_1->read(space,offset & 3);
}
@@ -197,7 +197,7 @@ WRITE8_MEMBER(pk8020_state::devices_w)
case 1 : m_lan->control_w(space,0,data); break;
}
break;
- case 0x28: pic8259_w(m_pic8259,space, offset & 1,data);break;
+ case 0x28: m_pic8259->write(space, offset & 1,data);break;
case 0x30: m_ppi8255_2->write(space,offset & 3,data); break;
case 0x38: m_ppi8255_1->write(space,offset & 3,data); break;
}
@@ -955,7 +955,7 @@ const struct pic8259_interface pk8020_pic8259_config =
IRQ_CALLBACK_MEMBER(pk8020_state::pk8020_irq_callback)
{
- return pic8259_acknowledge(m_pic8259);
+ return m_pic8259->acknowledge();
}
void pk8020_state::machine_start()
@@ -983,5 +983,5 @@ void pk8020_state::machine_reset()
INTERRUPT_GEN_MEMBER(pk8020_state::pk8020_interrupt)
{
m_takt ^= 1;
- pic8259_ir4_w(m_pic8259, 1);
+ m_pic8259->ir4_w(1);
}
diff --git a/src/mess/machine/southbridge.c b/src/mess/machine/southbridge.c
index 08f12fc521e..e700b5f6e95 100644
--- a/src/mess/machine/southbridge.c
+++ b/src/mess/machine/southbridge.c
@@ -194,13 +194,13 @@ void southbridge_device::device_start()
address_space& spaceio = machine().device(":maincpu")->memory().space(AS_IO);
spaceio.install_readwrite_handler(0x0000, 0x001f, read8_delegate(FUNC(am9517a_device::read),&(*m_dma8237_1)), write8_delegate(FUNC(am9517a_device::write),&(*m_dma8237_1)), 0xffffffff);
- spaceio.install_legacy_readwrite_handler(*m_pic8259_master, 0x0020, 0x003f, FUNC(pic8259_r), FUNC(pic8259_w), 0xffffffff);
+ spaceio.install_readwrite_handler(0x0020, 0x003f, read8_delegate(FUNC(pic8259_device::read),&(*m_pic8259_master)), write8_delegate(FUNC(pic8259_device::write),&(*m_pic8259_master)), 0xffffffff);
spaceio.install_legacy_readwrite_handler(*m_pit8254, 0x0040, 0x005f, FUNC(pit8253_r), FUNC(pit8253_w), 0xffffffff);
spaceio.install_readwrite_handler(0x0060, 0x0063, read8_delegate(FUNC(southbridge_device::at_keybc_r),this), write8_delegate(FUNC(southbridge_device::at_keybc_w),this), 0xffffffff);
spaceio.install_readwrite_handler(0x0064, 0x0067, read8_delegate(FUNC(at_keyboard_controller_device::status_r),&(*m_keybc)), write8_delegate(FUNC(at_keyboard_controller_device::command_w),&(*m_keybc)), 0xffffffff);
spaceio.install_readwrite_handler(0x0070, 0x007f, read8_delegate(FUNC(mc146818_device::read),&(*m_mc146818)), write8_delegate(FUNC(mc146818_device::write),&(*m_mc146818)), 0xffffffff);
spaceio.install_readwrite_handler(0x0080, 0x009f, read8_delegate(FUNC(southbridge_device::at_page8_r),this), write8_delegate(FUNC(southbridge_device::at_page8_w),this), 0xffffffff);
- spaceio.install_legacy_readwrite_handler(*m_pic8259_slave, 0x00a0, 0x00bf, FUNC(pic8259_r), FUNC(pic8259_w), 0xffffffff);
+ spaceio.install_readwrite_handler(0x00a0, 0x00bf, read8_delegate(FUNC(pic8259_device::read),&(*m_pic8259_slave)), write8_delegate(FUNC(pic8259_device::write),&(*m_pic8259_slave)), 0xffffffff);
spaceio.install_readwrite_handler(0x00c0, 0x00df, read8_delegate(FUNC(southbridge_device::at_dma8237_2_r),this), write8_delegate(FUNC(southbridge_device::at_dma8237_2_w),this), 0xffffffff);
spaceio.nop_readwrite(0x00e0, 0x00ef);
@@ -460,7 +460,7 @@ WRITE8_MEMBER( southbridge_device::at_portb_w )
WRITE_LINE_MEMBER( southbridge_device::at_mc146818_irq )
{
- pic8259_ir0_w(m_pic8259_slave, (state) ? 0 : 1);
+ m_pic8259_slave->ir0_w((state) ? 0 : 1);
}
READ8_MEMBER( southbridge_device::at_dma8237_2_r )