(MESS) Used modern accessors for i8259. (nw)

This commit is contained in:
Curt Coder 2013-02-02 22:24:47 +00:00
parent e67051001f
commit 6ab6bf735a
27 changed files with 141 additions and 146 deletions

View File

@ -205,7 +205,10 @@ int pic8259_acknowledge(device_t *device)
return 0;
}
UINT8 pic8259_device::inta_r()
{
return pic8259_acknowledge(this);
}
READ8_DEVICE_HANDLER( pic8259_r )
{

View File

@ -46,6 +46,8 @@ public:
DECLARE_WRITE_LINE_MEMBER( ir6_w );
DECLARE_WRITE_LINE_MEMBER( ir7_w );
UINT8 inta_r();
// access to legacy token
void *token() const { assert(m_token != NULL); return m_token; }
protected:

View File

@ -117,7 +117,7 @@ WRITE_LINE_MEMBER( apricot_state::apricot_pit8253_out2 )
static const struct pit8253_config apricot_pit8253_intf =
{
{
{ XTAL_4MHz / 16, DEVCB_LINE_VCC, DEVCB_DEVICE_LINE("ic31", pic8259_ir6_w) },
{ XTAL_4MHz / 16, DEVCB_LINE_VCC, DEVCB_DEVICE_LINE_MEMBER("ic31", pic8259_device, ir6_w) },
{ 0 /*XTAL_4MHz / 2*/, DEVCB_LINE_VCC, DEVCB_DRIVER_LINE_MEMBER(apricot_state, apricot_pit8253_out1) },
{ 0 /*XTAL_4MHz / 2*/, DEVCB_LINE_VCC, DEVCB_DRIVER_LINE_MEMBER(apricot_state, apricot_pit8253_out2) }
}
@ -145,7 +145,7 @@ static const z80sio_interface apricot_z80sio_intf =
IRQ_CALLBACK_MEMBER(apricot_state::apricot_irq_ack)
{
return pic8259_acknowledge(m_pic);
return m_pic->inta_r();
}
static const struct pic8259_interface apricot_pic8259_intf =

View File

@ -418,7 +418,7 @@ static APRICOT_KEYBOARD_INTERFACE( kb_intf )
IRQ_CALLBACK_MEMBER(fp_state::fp_irq_callback)
{
return pic8259_acknowledge(m_pic);
return m_pic->inta_r();
}
/*
@ -543,7 +543,7 @@ void fp_state::fdc_drq_w(bool state)
WRITE_LINE_MEMBER( fp_state::busy_w )
{
if (!state) pic8259_ir6_w(m_pic, ASSERT_LINE);
if (!state) m_pic->ir6_w(ASSERT_LINE);
}
static const centronics_interface centronics_intf =

View File

@ -296,7 +296,7 @@ static const at_keyboard_controller_interface keyboard_controller_intf =
{
DEVCB_CPU_INPUT_LINE("maincpu", INPUT_LINE_RESET),
DEVCB_CPU_INPUT_LINE("maincpu", INPUT_LINE_A20),
DEVCB_DEVICE_LINE("pic8259_master", pic8259_ir1_w),
DEVCB_DEVICE_LINE_MEMBER("pic8259_master", pic8259_device, ir1_w),
DEVCB_NULL,
DEVCB_DEVICE_LINE_MEMBER("pc_kbdc", pc_kbdc_device, clock_write_from_mb),
DEVCB_DEVICE_LINE_MEMBER("pc_kbdc", pc_kbdc_device, data_write_from_mb)
@ -310,7 +310,7 @@ static const pc_kbdc_interface pc_kbdc_intf =
WRITE_LINE_MEMBER( at_state::at_mc146818_irq )
{
pic8259_ir0_w(m_pic8259_slave, (state) ? 0 : 1);
m_pic8259_slave->ir0_w((state) ? 0 : 1);
}
const struct mc146818_interface at_mc146818_config =
@ -321,18 +321,18 @@ const struct mc146818_interface at_mc146818_config =
static const isa16bus_interface isabus_intf =
{
// interrupts
DEVCB_DEVICE_LINE("pic8259_slave", pic8259_ir2_w), // in place of irq 2 on at irq 9 is used
DEVCB_DEVICE_LINE("pic8259_master", pic8259_ir3_w),
DEVCB_DEVICE_LINE("pic8259_master", pic8259_ir4_w),
DEVCB_DEVICE_LINE("pic8259_master", pic8259_ir5_w),
DEVCB_DEVICE_LINE("pic8259_master", pic8259_ir6_w),
DEVCB_DEVICE_LINE("pic8259_master", pic8259_ir7_w),
DEVCB_DEVICE_LINE_MEMBER("pic8259_slave", pic8259_device, ir2_w), // in place of irq 2 on at irq 9 is used
DEVCB_DEVICE_LINE_MEMBER("pic8259_master", pic8259_device, ir3_w),
DEVCB_DEVICE_LINE_MEMBER("pic8259_master", pic8259_device, ir4_w),
DEVCB_DEVICE_LINE_MEMBER("pic8259_master", pic8259_device, ir5_w),
DEVCB_DEVICE_LINE_MEMBER("pic8259_master", pic8259_device, ir6_w),
DEVCB_DEVICE_LINE_MEMBER("pic8259_master", pic8259_device, ir7_w),
DEVCB_DEVICE_LINE("pic8259_slave", pic8259_ir3_w),
DEVCB_DEVICE_LINE("pic8259_slave", pic8259_ir4_w),
DEVCB_DEVICE_LINE("pic8259_slave", pic8259_ir5_w),
DEVCB_DEVICE_LINE("pic8259_slave", pic8259_ir6_w),
DEVCB_DEVICE_LINE("pic8259_slave", pic8259_ir7_w),
DEVCB_DEVICE_LINE_MEMBER("pic8259_slave", pic8259_device, ir3_w),
DEVCB_DEVICE_LINE_MEMBER("pic8259_slave", pic8259_device, ir4_w),
DEVCB_DEVICE_LINE_MEMBER("pic8259_slave", pic8259_device, ir5_w),
DEVCB_DEVICE_LINE_MEMBER("pic8259_slave", pic8259_device, ir6_w),
DEVCB_DEVICE_LINE_MEMBER("pic8259_slave", pic8259_device, ir7_w),
// dma request
DEVCB_DEVICE_LINE_MEMBER("dma8237_1", am9517a_device, dreq0_w),

View File

@ -1727,7 +1727,7 @@ static IEEE488_INTERFACE( ieee488_intf )
IRQ_CALLBACK_MEMBER(cbm2_state::pic_irq_callback)
{
return pic8259_acknowledge(m_ext_pic);
return m_ext_pic->inta_r();
}
static pic8259_interface ext_pic_intf =

View File

@ -221,7 +221,7 @@ ADDRESS_MAP_END
INPUT_CHANGED_MEMBER(iq151_state::iq151_break)
{
pic8259_ir5_w(m_pic, newval & 1);
m_pic->ir5_w(newval & 1);
}
/* Input ports */
@ -324,13 +324,13 @@ WRITE_LINE_MEMBER( iq151_state::pic_set_int_line )
INTERRUPT_GEN_MEMBER(iq151_state::iq151_vblank_interrupt)
{
pic8259_ir6_w(m_pic, m_vblank_irq_state & 1);
m_pic->ir6_w(m_vblank_irq_state & 1);
m_vblank_irq_state ^= 1;
}
IRQ_CALLBACK_MEMBER(iq151_state::iq151_irq_callback)
{
return pic8259_acknowledge(m_pic);
return m_pic->inta_r();
}
TIMER_DEVICE_CALLBACK_MEMBER(iq151_state::cassette_timer)
@ -403,11 +403,11 @@ static const cassette_interface iq151_cassette_interface =
static const iq151cart_interface iq151_cart_interface =
{
DEVCB_DEVICE_LINE("pic8259", pic8259_ir0_w),
DEVCB_DEVICE_LINE("pic8259", pic8259_ir1_w),
DEVCB_DEVICE_LINE("pic8259", pic8259_ir2_w),
DEVCB_DEVICE_LINE("pic8259", pic8259_ir3_w),
DEVCB_DEVICE_LINE("pic8259", pic8259_ir4_w),
DEVCB_DEVICE_LINE_MEMBER("pic8259", pic8259_device, ir0_w),
DEVCB_DEVICE_LINE_MEMBER("pic8259", pic8259_device, ir1_w),
DEVCB_DEVICE_LINE_MEMBER("pic8259", pic8259_device, ir2_w),
DEVCB_DEVICE_LINE_MEMBER("pic8259", pic8259_device, ir3_w),
DEVCB_DEVICE_LINE_MEMBER("pic8259", pic8259_device, ir4_w),
DEVCB_NULL
};

View File

@ -475,7 +475,7 @@ static const pit8253_config pc_pit8254_config =
{
4772720/4, /* heartbeat IRQ */
DEVCB_NULL,
DEVCB_DEVICE_LINE("pic8259", pic8259_ir0_w)
DEVCB_DEVICE_LINE_MEMBER("pic8259", pic8259_device, ir0_w)
}, {
4772720/4, /* dram refresh */
DEVCB_NULL,

View File

@ -913,7 +913,7 @@ static I8237_INTERFACE( dmac_intf )
IRQ_CALLBACK_MEMBER(pc1512_state::pc1512_irq_callback)
{
return pic8259_acknowledge(m_pic);
return m_pic->inta_r();
}
static const struct pic8259_interface pic_intf =

View File

@ -1641,7 +1641,7 @@ static const struct pic8259_interface pc88va_pic8259_master_config =
static const struct pic8259_interface pc88va_pic8259_slave_config =
{
DEVCB_DEVICE_LINE("pic8259_master", pic8259_ir7_w),
DEVCB_DEVICE_LINE_MEMBER("pic8259_master", pic8259_device, ir7_w),
DEVCB_LINE_GND,
DEVCB_NULL
};

View File

@ -2934,7 +2934,7 @@ static const struct pic8259_interface pic8259_master_config =
static const struct pic8259_interface pic8259_slave_config =
{
DEVCB_DEVICE_LINE("pic8259_master", pic8259_ir7_w), //TODO: check me
DEVCB_DEVICE_LINE_MEMBER("pic8259_master", pic8259_device, ir7_w), //TODO: check me
DEVCB_LINE_GND,
DEVCB_NULL
};

View File

@ -327,7 +327,7 @@ void qx10_state::qx10_upd765_interrupt(bool state)
//logerror("Interrupt from upd765: %d\n", state);
// signal interrupt
pic8259_ir6_w(m_pic_m, state);
m_pic_m->ir6_w(state);
}
void qx10_state::drq_w(bool state)
@ -545,7 +545,7 @@ WRITE_LINE_MEMBER( qx10_state::qx10_pic8259_master_set_int_line )
READ8_MEMBER( qx10_state::get_slave_ack )
{
if (offset==7) { // IRQ = 7
return pic8259_acknowledge(m_pic_s);
return m_pic_s->inta_r();
}
return 0x00;
}
@ -572,7 +572,7 @@ static const struct pic8259_interface qx10_pic8259_master_config =
static const struct pic8259_interface qx10_pic8259_slave_config =
{
DEVCB_DEVICE_LINE("pic8259_master", pic8259_ir7_w),
DEVCB_DEVICE_LINE_MEMBER("pic8259_master", pic8259_device, ir7_w),
DEVCB_LINE_GND,
DEVCB_NULL
};
@ -611,7 +611,7 @@ WRITE8_MEMBER( qx10_state::upd7201_w )
m_keyb.led[(data & 0xe) >> 1] = data & 1;
printf("keyb Set led %02x %s\n",((data & 0xe) >> 1),data & 1 ? "on" : "off");
m_keyb.rx = (data & 0xf) | 0xc0;
pic8259_ir4_w(machine().device("pic8259_master"), 1);
m_pic_m->ir4_w(1);
break;
case 0x60:
printf("keyb Read LED status\n");
@ -702,7 +702,7 @@ INPUT_CHANGED_MEMBER(qx10_state::key_stroke)
if(newval && !oldval)
{
m_keyb.rx = (UINT8)(FPTR)(param) & 0x7f;
pic8259_ir4_w(machine().device("pic8259_master"), 1);
m_pic_m->ir4_w(1);
}
if(oldval && !newval)

View File

@ -725,7 +725,7 @@ static const z80_daisy_config trs80m2_daisy_chain[] =
IRQ_CALLBACK_MEMBER(trs80m16_state::trs80m16_irq_callback)
{
return pic8259_acknowledge(m_pic);
return m_pic->inta_r();
}
static const struct pic8259_interface pic_intf =

View File

@ -119,7 +119,7 @@ static MC6845_INTERFACE( hd46505s_intf )
DEVCB_NULL,
DEVCB_NULL,
DEVCB_NULL,
DEVCB_DEVICE_LINE(I8259A_TAG, pic8259_ir7_w),
DEVCB_DEVICE_LINE_MEMBER(I8259A_TAG, pic8259_device, ir7_w),
NULL
};
@ -147,7 +147,7 @@ static const struct pit8253_config pit_intf =
}, {
100000,
DEVCB_LINE_VCC,
DEVCB_DEVICE_LINE(I8259A_TAG, pic8259_ir2_w)
DEVCB_DEVICE_LINE_MEMBER(I8259A_TAG, pic8259_device, ir2_w)
}
}
};
@ -218,7 +218,7 @@ WRITE_LINE_MEMBER( victor9k_state::ssda_irq_w )
{
m_ssda_irq = state;
pic8259_ir3_w(m_pic, m_ssda_irq | m_via1_irq | m_via2_irq | m_via3_irq | m_via4_irq | m_via5_irq | m_via6_irq);
m_pic->ir3_w(m_ssda_irq || m_via1_irq || m_via2_irq || m_via3_irq || m_via4_irq || m_via5_irq || m_via6_irq);
}
static MC6852_INTERFACE( ssda_intf )
@ -352,7 +352,7 @@ WRITE_LINE_MEMBER( victor9k_state::via1_irq_w )
{
m_via1_irq = state;
pic8259_ir3_w(m_pic, m_ssda_irq | m_via1_irq | m_via2_irq | m_via3_irq | m_via4_irq | m_via5_irq | m_via6_irq);
m_pic->ir3_w(m_ssda_irq || m_via1_irq || m_via2_irq || m_via3_irq || m_via4_irq || m_via5_irq || m_via6_irq);
}
static const via6522_interface via1_intf =
@ -451,7 +451,7 @@ WRITE_LINE_MEMBER( victor9k_state::via2_irq_w )
{
m_via2_irq = state;
pic8259_ir3_w(m_pic, m_ssda_irq | m_via1_irq | m_via2_irq | m_via3_irq | m_via4_irq | m_via5_irq | m_via6_irq);
m_pic->ir3_w(m_ssda_irq || m_via1_irq || m_via2_irq || m_via3_irq || m_via4_irq || m_via5_irq || m_via6_irq);
}
static const via6522_interface via2_intf =
@ -557,7 +557,7 @@ WRITE_LINE_MEMBER( victor9k_state::via3_irq_w )
{
m_via3_irq = state;
pic8259_ir3_w(m_pic, m_ssda_irq | m_via1_irq | m_via2_irq | m_via3_irq | m_via4_irq | m_via5_irq | m_via6_irq);
m_pic->ir3_w(m_ssda_irq || m_via1_irq || m_via2_irq || m_via3_irq || m_via4_irq || m_via5_irq || m_via6_irq);
}
static const via6522_interface via3_intf =
@ -627,7 +627,7 @@ WRITE_LINE_MEMBER( victor9k_state::via4_irq_w )
{
m_via4_irq = state;
pic8259_ir3_w(m_pic, m_ssda_irq | m_via1_irq | m_via2_irq | m_via3_irq | m_via4_irq | m_via5_irq | m_via6_irq);
m_pic->ir3_w(m_ssda_irq || m_via1_irq || m_via2_irq || m_via3_irq || m_via4_irq || m_via5_irq || m_via6_irq);
}
static const via6522_interface via4_intf =
@ -691,7 +691,7 @@ WRITE_LINE_MEMBER( victor9k_state::via5_irq_w )
{
m_via5_irq = state;
pic8259_ir3_w(m_pic, m_ssda_irq | m_via1_irq | m_via2_irq | m_via3_irq | m_via4_irq | m_via5_irq | m_via6_irq);
m_pic->ir3_w(m_ssda_irq || m_via1_irq || m_via2_irq || m_via3_irq || m_via4_irq || m_via5_irq || m_via6_irq);
}
static const via6522_interface via5_intf =
@ -733,13 +733,13 @@ READ8_MEMBER( victor9k_state::via6_pa_r )
UINT8 data = 0;
// track 0 drive A sense
data |= floppy_tk00_r(m_floppy0) << 1;
data |= m_floppy0->trk00_r() << 1;
// track 0 drive B sense
data |= floppy_tk00_r(m_floppy1) << 3;
data |= m_floppy1->trk00_r() << 3;
// write protect sense
data |= floppy_wpt_r(m_drive ? m_floppy1 : m_floppy0) << 6;
data |= (m_drive ? m_floppy1->wpt_r() : m_floppy0->wpt_r()) << 6;
// disk sync detect
@ -804,7 +804,7 @@ READ8_MEMBER( victor9k_state::via6_pb_r )
// door A sense
// single/double sided
data |= floppy_twosid_r(m_drive ? m_floppy1 : m_floppy0) << 5;
data |= (m_drive ? m_floppy1->twosid_r() : m_floppy0->twosid_r()) << 5;
return data;
}
@ -848,7 +848,7 @@ WRITE_LINE_MEMBER( victor9k_state::via6_irq_w )
{
m_via6_irq = state;
pic8259_ir3_w(m_pic, m_ssda_irq | m_via1_irq | m_via2_irq | m_via3_irq | m_via4_irq | m_via5_irq | m_via6_irq);
m_pic->ir3_w(m_ssda_irq || m_via1_irq || m_via2_irq || m_via3_irq || m_via4_irq || m_via5_irq || m_via6_irq);
}
static const via6522_interface via6_intf =
@ -876,7 +876,7 @@ WRITE_LINE_MEMBER( victor9k_state::kbrdy_w )
{
m_via2->write_cb1(state);
pic8259_ir6_w(m_pic, state ? CLEAR_LINE : ASSERT_LINE);
m_pic->ir6_w(state ? CLEAR_LINE : ASSERT_LINE);
}
static VICTOR9K_KEYBOARD_INTERFACE( kb_intf )
@ -884,21 +884,6 @@ static VICTOR9K_KEYBOARD_INTERFACE( kb_intf )
DEVCB_DRIVER_LINE_MEMBER(victor9k_state, kbrdy_w)
};
// Floppy Configuration
static const floppy_interface victor9k_floppy_interface =
{
DEVCB_NULL,
DEVCB_NULL,
DEVCB_NULL,
DEVCB_NULL,
DEVCB_NULL,
FLOPPY_STANDARD_5_25_DSQD,
LEGACY_FLOPPY_OPTIONS_NAME(default),
"floppy_5_25",
NULL
};
// IEEE-488 Interface
static IEEE488_INTERFACE( ieee488_intf )
@ -913,11 +898,15 @@ static IEEE488_INTERFACE( ieee488_intf )
DEVCB_NULL
};
static SLOT_INTERFACE_START( victor9k_floppies )
SLOT_INTERFACE( "525qd", FLOPPY_525_QD )
SLOT_INTERFACE_END
// Machine Initialization
IRQ_CALLBACK_MEMBER(victor9k_state::victor9k_irq_callback)
{
return pic8259_acknowledge(m_pic);
return m_pic->inta_r();
}
void victor9k_state::machine_start()
@ -970,7 +959,8 @@ static MACHINE_CONFIG_START( victor9k, victor9k_state )
MCFG_VIA6522_ADD(M6522_4_TAG, XTAL_30MHz/30, via4_intf)
MCFG_VIA6522_ADD(M6522_5_TAG, XTAL_30MHz/30, via5_intf)
MCFG_VIA6522_ADD(M6522_6_TAG, XTAL_30MHz/30, via6_intf)
MCFG_LEGACY_FLOPPY_2_DRIVES_ADD(victor9k_floppy_interface)
MCFG_FLOPPY_DRIVE_ADD(I8048_TAG":0", victor9k_floppies, "525qd", 0, floppy_image_device::default_floppy_formats)
MCFG_FLOPPY_DRIVE_ADD(I8048_TAG":1", victor9k_floppies, "525qd", 0, floppy_image_device::default_floppy_formats)
MCFG_VICTOR9K_KEYBOARD_ADD(kb_intf)
// internal ram

View File

@ -273,7 +273,7 @@ WRITE8_MEMBER( wangpc_state::timer0_irq_clr_w )
{
//if (LOG) logerror("%s: Timer 0 IRQ clear\n", machine().describe_context());
pic8259_ir0_w(m_pic, CLEAR_LINE);
m_pic->ir0_w(CLEAR_LINE);
}
@ -733,19 +733,19 @@ void wangpc_state::check_level1_interrupts()
{
int state = !m_timer2_irq || m_epci->rxrdy_r() || m_epci->txemt_r() || !m_acknlg || !m_dav || !m_busy;
pic8259_ir1_w(m_pic, state);
m_pic->ir1_w(state);
}
void wangpc_state::check_level2_interrupts()
{
int state = !m_dma_eop || m_uart_dr || m_uart_tbre || m_fdc_dd0 || m_fdc_dd1 || m_fdc->get_irq() || m_fpu_irq || m_bus_irq2;
pic8259_ir2_w(m_pic, state);
m_pic->ir2_w(state);
}
IRQ_CALLBACK_MEMBER( wangpc_state::wangpc_irq_callback )
{
return pic8259_acknowledge(m_pic);
return m_pic->inta_r();
}
static const struct pic8259_interface pic_intf =
@ -903,7 +903,7 @@ static const struct pit8253_config pit_intf =
{
500000,
DEVCB_LINE_VCC,
DEVCB_DEVICE_LINE(I8259A_TAG, pic8259_ir0_w)
DEVCB_DEVICE_LINE_MEMBER(I8259A_TAG, pic8259_device, ir0_w)
}, {
2000000,
DEVCB_LINE_VCC,
@ -1062,11 +1062,11 @@ WRITE_LINE_MEMBER( wangpc_state::bus_irq2_w )
static WANGPC_BUS_INTERFACE( bus_intf )
{
DEVCB_DRIVER_LINE_MEMBER(wangpc_state, bus_irq2_w),
DEVCB_DEVICE_LINE(I8259A_TAG, pic8259_ir3_w),
DEVCB_DEVICE_LINE(I8259A_TAG, pic8259_ir4_w),
DEVCB_DEVICE_LINE(I8259A_TAG, pic8259_ir5_w),
DEVCB_DEVICE_LINE(I8259A_TAG, pic8259_ir6_w),
DEVCB_DEVICE_LINE(I8259A_TAG, pic8259_ir7_w),
DEVCB_DEVICE_LINE_MEMBER(I8259A_TAG, pic8259_device, ir3_w),
DEVCB_DEVICE_LINE_MEMBER(I8259A_TAG, pic8259_device, ir4_w),
DEVCB_DEVICE_LINE_MEMBER(I8259A_TAG, pic8259_device, ir5_w),
DEVCB_DEVICE_LINE_MEMBER(I8259A_TAG, pic8259_device, ir6_w),
DEVCB_DEVICE_LINE_MEMBER(I8259A_TAG, pic8259_device, ir7_w),
DEVCB_DEVICE_LINE_MEMBER(AM9517A_TAG, am9517a_device, dreq1_w),
DEVCB_DEVICE_LINE_MEMBER(AM9517A_TAG, am9517a_device, dreq2_w),
DEVCB_DEVICE_LINE_MEMBER(AM9517A_TAG, am9517a_device, dreq3_w),

View File

@ -597,19 +597,19 @@ INPUT_PORTS_END
IRQ_CALLBACK_MEMBER(z100_state::z100_irq_callback)
{
return pic8259_acknowledge( machine().device( "pic8259_master" ) );
return m_picm->inta_r();
}
WRITE_LINE_MEMBER( z100_state::z100_pic_irq )
{
machine().device("maincpu")->execute().set_input_line(0, state ? HOLD_LINE : CLEAR_LINE);
m_maincpu->set_input_line(0, state ? HOLD_LINE : CLEAR_LINE);
// logerror("PIC#1: set IRQ line to %i\n",interrupt);
}
READ8_MEMBER( z100_state::get_slave_ack )
{
if (offset==7) { // IRQ = 7
return pic8259_acknowledge(m_pics);
return m_pics->inta_r();
}
return 0;
}
@ -623,7 +623,7 @@ static const struct pic8259_interface z100_pic8259_master_config =
static const struct pic8259_interface z100_pic8259_slave_config =
{
DEVCB_DEVICE_LINE("pic8259_master", pic8259_ir3_w),
DEVCB_DEVICE_LINE_MEMBER("pic8259_master", pic8259_device, ir3_w),
DEVCB_LINE_GND,
DEVCB_NULL
};

View File

@ -7,7 +7,7 @@
#include "emu.h"
#include "cpu/i86/i86.h"
#include "cpu/mcs48/mcs48.h"
#include "imagedev/flopdrv.h"
#include "imagedev/floppy.h"
#include "machine/ram.h"
#include "machine/ctronics.h"
#include "machine/6522via.h"
@ -52,11 +52,11 @@ public:
m_cvsd(*this, HC55516_TAG),
m_crtc(*this, HD46505S_TAG),
m_ram(*this, RAM_TAG),
m_floppy0(*this, FLOPPY_0),
m_floppy1(*this, FLOPPY_1),
m_kb(*this, VICTOR9K_KEYBOARD_TAG)
,
m_video_ram(*this, "video_ram"){ }
m_floppy0(*this, I8048_TAG":0:525qd"),
m_floppy1(*this, I8048_TAG":1:525qd"),
m_kb(*this, VICTOR9K_KEYBOARD_TAG),
m_video_ram(*this, "video_ram")
{ }
required_device<cpu_device> m_maincpu;
required_device<cpu_device> m_fdc_cpu;
@ -68,8 +68,8 @@ public:
required_device<hc55516_device> m_cvsd;
required_device<mc6845_device> m_crtc;
required_device<ram_device> m_ram;
required_device<legacy_floppy_image_device> m_floppy0;
required_device<legacy_floppy_image_device> m_floppy1;
required_device<floppy_image_device> m_floppy0;
required_device<floppy_image_device> m_floppy1;
required_device<victor9k_keyboard_device> m_kb;
virtual void machine_start();

View File

@ -16,7 +16,7 @@
READ8_MEMBER( at_state::get_slave_ack )
{
if (offset==2) // IRQ = 2
return pic8259_acknowledge(m_pic8259_slave);
return m_pic8259_slave->inta_r();
return 0x00;
}
@ -30,7 +30,7 @@ const struct pic8259_interface at_pic8259_master_config =
const struct pic8259_interface at_pic8259_slave_config =
{
DEVCB_DEVICE_LINE("pic8259_master", pic8259_ir2_w),
DEVCB_DEVICE_LINE_MEMBER("pic8259_master", pic8259_device, ir2_w),
DEVCB_LINE_GND,
DEVCB_NULL
};
@ -352,7 +352,7 @@ DRIVER_INIT_MEMBER(at_state,atvga)
IRQ_CALLBACK_MEMBER(at_state::at_irq_callback)
{
return pic8259_acknowledge(m_pic8259_master);
return m_pic8259_master->inta_r();
}
MACHINE_START_MEMBER(at_state,at)

View File

@ -154,7 +154,7 @@ const struct pit8253_config b2m_pit8253_intf =
{
0,
DEVCB_NULL,
DEVCB_DEVICE_LINE("pic8259", pic8259_ir1_w)
DEVCB_DEVICE_LINE_MEMBER("pic8259", pic8259_device, ir1_w)
},
{
2000000,

View File

@ -178,8 +178,8 @@ void compis_state::fdc_irq(bool state)
{
if (m_8259m)
{
pic8259_ir0_w(m_8259m, 1);
pic8259_ir0_w(m_8259m, 0);
m_8259m->ir0_w(1);
m_8259m->ir0_w(0);
}
}
}
@ -1272,7 +1272,7 @@ WRITE_LINE_MEMBER( compis_state::compis_pic8259_slave_set_int_line )
READ8_MEMBER( compis_state::get_slave_ack )
{
if (offset==2) { // IRQ = 2
return pic8259_acknowledge(m_8259s);
return m_8259s->inta_r();
}
return 0;
}
@ -1294,7 +1294,7 @@ const struct pic8259_interface compis_pic8259_slave_config =
IRQ_CALLBACK_MEMBER(compis_state::compis_irq_callback)
{
return pic8259_acknowledge(m_8259m);
return m_8259m->inta_r();
}

View File

@ -237,7 +237,7 @@ const struct pit8253_config pc_pit8253_config =
{
XTAL_14_31818MHz/12, /* heartbeat IRQ */
DEVCB_NULL,
DEVCB_DEVICE_LINE("pic8259", pic8259_ir0_w)
DEVCB_DEVICE_LINE_MEMBER("pic8259", pic8259_device, ir0_w)
}, {
XTAL_14_31818MHz/12, /* dram refresh */
DEVCB_NULL,
@ -413,7 +413,7 @@ WRITE8_MEMBER( ibm5160_mb_device::pc_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;
}
@ -433,12 +433,12 @@ I8255A_INTERFACE( pc_ppi8255_interface )
static const isa8bus_interface isabus_intf =
{
// interrupts
DEVCB_DEVICE_LINE("pic8259", pic8259_ir2_w),
DEVCB_DEVICE_LINE("pic8259", pic8259_ir3_w),
DEVCB_DEVICE_LINE("pic8259", pic8259_ir4_w),
DEVCB_DEVICE_LINE("pic8259", pic8259_ir5_w),
DEVCB_DEVICE_LINE("pic8259", pic8259_ir6_w),
DEVCB_DEVICE_LINE("pic8259", pic8259_ir7_w),
DEVCB_DEVICE_LINE_MEMBER("pic8259", pic8259_device, ir2_w),
DEVCB_DEVICE_LINE_MEMBER("pic8259", pic8259_device, ir3_w),
DEVCB_DEVICE_LINE_MEMBER("pic8259", pic8259_device, ir4_w),
DEVCB_DEVICE_LINE_MEMBER("pic8259", pic8259_device, ir5_w),
DEVCB_DEVICE_LINE_MEMBER("pic8259", pic8259_device, ir6_w),
DEVCB_DEVICE_LINE_MEMBER("pic8259", pic8259_device, ir7_w),
// dma request
DEVCB_DEVICE_LINE_MEMBER("dma8237", am9517a_device, dreq1_w),
@ -654,7 +654,7 @@ void ibm5160_mb_device::device_start()
IRQ_CALLBACK_MEMBER(ibm5160_mb_device::pc_irq_callback)
{
return pic8259_acknowledge(m_pic8259);
return m_pic8259->inta_r();
}
@ -874,7 +874,7 @@ WRITE8_MEMBER( ibm5150_mb_device::pc_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;
}

View File

@ -135,7 +135,7 @@ const struct pit8253_config irisha_pit8253_intf =
{
XTAL_16MHz / 9,
DEVCB_LINE_VCC,
DEVCB_DEVICE_LINE("pic8259", pic8259_ir0_w)
DEVCB_DEVICE_LINE_MEMBER("pic8259", pic8259_device, ir0_w)
},
{
XTAL_16MHz / 9 / 8 / 8,

View File

@ -128,7 +128,7 @@ WRITE8_MEMBER(mbc55x_state::mbcpic8259_w)
IRQ_CALLBACK_MEMBER(mbc55x_state::mbc55x_irq_callback)
{
return pic8259_acknowledge(m_pic);
return m_pic->inta_r();
}
/* PIT8253 Configuration */
@ -139,12 +139,12 @@ const struct pit8253_config mbc55x_pit8253_config =
{
PIT_C0_CLOCK,
DEVCB_NULL,
DEVCB_DEVICE_LINE(PIC8259_TAG, pic8259_ir0_w)
DEVCB_DEVICE_LINE_MEMBER(PIC8259_TAG, pic8259_device, ir0_w)
},
{
PIT_C1_CLOCK,
DEVCB_NULL,
DEVCB_DEVICE_LINE(PIC8259_TAG, pic8259_ir1_w)
DEVCB_DEVICE_LINE_MEMBER(PIC8259_TAG, pic8259_device, ir1_w)
},
{
PIT_C2_CLOCK,
@ -298,7 +298,7 @@ const i8251_interface mbc55x_i8251a_interface =
DEVCB_NULL,
DEVCB_NULL,
DEVCB_NULL,
DEVCB_DEVICE_LINE(PIC8259_TAG, pic8259_ir3_w),
DEVCB_DEVICE_LINE_MEMBER(PIC8259_TAG, pic8259_device, ir3_w),
DEVCB_NULL,
DEVCB_NULL,
DEVCB_NULL

View File

@ -397,7 +397,7 @@ const struct pit8253_config ibm5150_pit8253_config =
{
XTAL_14_31818MHz/12, /* heartbeat IRQ */
DEVCB_NULL,
DEVCB_DEVICE_LINE("pic8259", pic8259_ir0_w)
DEVCB_DEVICE_LINE_MEMBER("pic8259", pic8259_device, ir0_w)
}, {
XTAL_14_31818MHz/12, /* dram refresh */
DEVCB_NULL,
@ -423,7 +423,7 @@ const struct pit8253_config pcjr_pit8253_config =
{
XTAL_14_31818MHz/12, /* heartbeat IRQ */
DEVCB_NULL,
DEVCB_DEVICE_LINE("pic8259", pic8259_ir0_w)
DEVCB_DEVICE_LINE_MEMBER("pic8259", pic8259_device, ir0_w)
}, {
XTAL_14_31818MHz/12, /* dram refresh */
DEVCB_NULL,
@ -444,7 +444,7 @@ const struct pit8253_config mc1502_pit8253_config =
{
XTAL_16MHz/12, /* heartbeat IRQ */
DEVCB_NULL,
DEVCB_DEVICE_LINE("pic8259", pic8259_ir0_w)
DEVCB_DEVICE_LINE_MEMBER("pic8259", pic8259_device, ir0_w)
}, {
XTAL_16MHz/12, /* serial port */
DEVCB_NULL,

View File

@ -967,7 +967,7 @@ const struct pit8253_config pk8020_pit8253_intf =
{
(XTAL_20MHz / 8) / 164,
DEVCB_NULL,
DEVCB_DEVICE_LINE("pic8259", pic8259_ir5_w)
DEVCB_DEVICE_LINE_MEMBER("pic8259", pic8259_device, ir5_w)
}
}
};

View File

@ -86,7 +86,7 @@ static ins8250_interface ace1_intf =
{
DEVCB_NULL,
DEVCB_NULL,
DEVCB_DEVICE_LINE(I8259A_TAG, pic8259_ir3_w),
DEVCB_DEVICE_LINE_MEMBER(I8259A_TAG, pic8259_device, ir3_w),
DEVCB_NULL,
DEVCB_NULL,
DEVCB_NULL
@ -101,7 +101,7 @@ static ins8250_interface ace2_intf =
{
DEVCB_NULL,
DEVCB_NULL,
DEVCB_DEVICE_LINE(I8259A_TAG, pic8259_ir4_w),
DEVCB_DEVICE_LINE_MEMBER(I8259A_TAG, pic8259_device, ir4_w),
DEVCB_NULL,
DEVCB_NULL,
DEVCB_NULL
@ -116,7 +116,7 @@ static ins8250_interface ace3_intf =
{
DEVCB_NULL,
DEVCB_NULL,
DEVCB_DEVICE_LINE(I8259A_TAG, pic8259_ir5_w),
DEVCB_DEVICE_LINE_MEMBER(I8259A_TAG, pic8259_device, ir5_w),
DEVCB_NULL,
DEVCB_NULL,
DEVCB_NULL
@ -132,7 +132,7 @@ WRITE_LINE_MEMBER( s100_wunderbus_device::rtc_tp_w )
if (state)
{
m_rtc_tp = state;
pic8259_ir7_w(m_pic, m_rtc_tp);
m_pic->ir7_w(m_rtc_tp);
}
}
@ -301,7 +301,7 @@ void s100_wunderbus_device::device_reset()
void s100_wunderbus_device::s100_vi0_w(int state)
{
pic8259_ir0_w(m_pic, state);
m_pic->ir0_w(state);
}
@ -311,7 +311,7 @@ void s100_wunderbus_device::s100_vi0_w(int state)
void s100_wunderbus_device::s100_vi1_w(int state)
{
pic8259_ir1_w(m_pic, state);
m_pic->ir1_w(state);
}
@ -321,7 +321,7 @@ void s100_wunderbus_device::s100_vi1_w(int state)
void s100_wunderbus_device::s100_vi2_w(int state)
{
pic8259_ir2_w(m_pic, state);
m_pic->ir2_w(state);
}
@ -400,7 +400,7 @@ UINT8 s100_wunderbus_device::s100_sinp_r(address_space &space, offs_t offset)
// reset clock interrupt
m_rtc_tp = 0;
pic8259_ir7_w(m_pic, m_rtc_tp);
m_pic->ir7_w(m_rtc_tp);
break;
case 3: // Parallel data IN
@ -408,7 +408,7 @@ UINT8 s100_wunderbus_device::s100_sinp_r(address_space &space, offs_t offset)
case 4: // 8259 0 register
case 5: // 8259 1 register
data = pic8259_r(m_pic, space, offset & 0x01);
data = m_pic->read(space, offset & 0x01);
break;
case 6: // not used
@ -517,7 +517,7 @@ void s100_wunderbus_device::s100_sout_w(address_space &space, offs_t offset, UIN
case 4: // 8259 0 register
case 5: // 8259 1 register
pic8259_w(m_pic, space, offset & 0x01, data);
m_pic->write(space, offset & 0x01, data);
break;
case 6: // Par. port cntrl.

View File

@ -19,7 +19,7 @@ const struct pic8259_interface at_pic8259_master_config =
const struct pic8259_interface at_pic8259_slave_config =
{
DEVCB_DEVICE_LINE("pic8259_master", pic8259_ir2_w),
DEVCB_DEVICE_LINE_MEMBER("pic8259_master", pic8259_device, ir2_w),
DEVCB_LINE_GND,
DEVCB_NULL
};
@ -75,7 +75,7 @@ static const at_keyboard_controller_interface keyboard_controller_intf =
{
DEVCB_CPU_INPUT_LINE(":maincpu", INPUT_LINE_RESET),
DEVCB_CPU_INPUT_LINE(":maincpu", INPUT_LINE_A20),
DEVCB_DEVICE_LINE("pic8259_master", pic8259_ir1_w),
DEVCB_DEVICE_LINE_MEMBER("pic8259_master", pic8259_device, ir1_w),
DEVCB_NULL,
DEVCB_DEVICE_LINE_MEMBER("pc_kbdc", pc_kbdc_device, clock_write_from_mb),
DEVCB_DEVICE_LINE_MEMBER("pc_kbdc", pc_kbdc_device, data_write_from_mb)
@ -90,18 +90,18 @@ static const pc_kbdc_interface pc_kbdc_intf =
static const isa16bus_interface isabus_intf =
{
// interrupts
DEVCB_DEVICE_LINE("pic8259_slave", pic8259_ir2_w), // in place of irq 2 on at irq 9 is used
DEVCB_DEVICE_LINE("pic8259_master", pic8259_ir3_w),
DEVCB_DEVICE_LINE("pic8259_master", pic8259_ir4_w),
DEVCB_DEVICE_LINE("pic8259_master", pic8259_ir5_w),
DEVCB_DEVICE_LINE("pic8259_master", pic8259_ir6_w),
DEVCB_DEVICE_LINE("pic8259_master", pic8259_ir7_w),
DEVCB_DEVICE_LINE_MEMBER("pic8259_slave", pic8259_device, ir2_w), // in place of irq 2 on at irq 9 is used
DEVCB_DEVICE_LINE_MEMBER("pic8259_master", pic8259_device, ir3_w),
DEVCB_DEVICE_LINE_MEMBER("pic8259_master", pic8259_device, ir4_w),
DEVCB_DEVICE_LINE_MEMBER("pic8259_master", pic8259_device, ir5_w),
DEVCB_DEVICE_LINE_MEMBER("pic8259_master", pic8259_device, ir6_w),
DEVCB_DEVICE_LINE_MEMBER("pic8259_master", pic8259_device, ir7_w),
DEVCB_DEVICE_LINE("pic8259_slave", pic8259_ir3_w),
DEVCB_DEVICE_LINE("pic8259_slave", pic8259_ir4_w),
DEVCB_DEVICE_LINE("pic8259_slave", pic8259_ir5_w),
DEVCB_DEVICE_LINE("pic8259_slave", pic8259_ir6_w),
DEVCB_DEVICE_LINE("pic8259_slave", pic8259_ir7_w),
DEVCB_DEVICE_LINE_MEMBER("pic8259_slave", pic8259_device, ir3_w),
DEVCB_DEVICE_LINE_MEMBER("pic8259_slave", pic8259_device, ir4_w),
DEVCB_DEVICE_LINE_MEMBER("pic8259_slave", pic8259_device, ir5_w),
DEVCB_DEVICE_LINE_MEMBER("pic8259_slave", pic8259_device, ir6_w),
DEVCB_DEVICE_LINE_MEMBER("pic8259_slave", pic8259_device, ir7_w),
// dma request
DEVCB_DEVICE_LINE("dma8237_1", i8237_dreq0_w),
@ -183,7 +183,7 @@ southbridge_device::southbridge_device(const machine_config &mconfig, device_typ
IRQ_CALLBACK_MEMBER(southbridge_device::at_irq_callback)
{
return pic8259_acknowledge(m_pic8259_master);
return m_pic8259_master->inta_r();
}
//-------------------------------------------------
@ -232,7 +232,7 @@ void southbridge_device::device_reset()
READ8_MEMBER( southbridge_device::get_slave_ack )
{
if (offset==2) // IRQ = 2
return pic8259_acknowledge(m_pic8259_slave);
return m_pic8259_slave->inta_r();
return 0x00;
}
@ -266,7 +266,7 @@ void southbridge_device::at_speaker_set_input(UINT8 data)
WRITE_LINE_MEMBER( southbridge_device::at_pit8254_out0_changed )
{
if (m_pic8259_master)
pic8259_ir0_w(m_pic8259_master, state);
m_pic8259_master->ir0_w(state);
}