machine/pic8259.h: removed MCFG macros (nw)

This commit is contained in:
Ivan Vangelista 2018-10-31 22:19:17 +01:00
parent e7edb3d174
commit c70e5f7f7e
51 changed files with 368 additions and 402 deletions

View File

@ -46,19 +46,19 @@ void dmv_k230_device::k230_io(address_map &map)
map(0x00, 0xff).rw(FUNC(dmv_k230_device::io_r), FUNC(dmv_k230_device::io_w));
}
void dmv_k230_device::k234_mem(address_map &map)
void dmv_k234_device::k234_mem(address_map &map)
{
map.unmap_value_high();
map(0x00000, 0x7ffff).rw(FUNC(dmv_k230_device::program_r), FUNC(dmv_k230_device::program_w));
map(0xfff00, 0xfffff).rw(FUNC(dmv_k230_device::io_r), FUNC(dmv_k230_device::io_w));
map(0x00000, 0x7ffff).rw(FUNC(dmv_k234_device::program_r), FUNC(dmv_k234_device::program_w));
map(0xfff00, 0xfffff).rw(FUNC(dmv_k234_device::io_r), FUNC(dmv_k234_device::io_w));
}
void dmv_k230_device::k235_io(address_map &map)
void dmv_k235_device::k235_io(address_map &map)
{
map.unmap_value_high();
map.global_mask(0xff);
map(0x00, 0xff).rw(FUNC(dmv_k230_device::io_r), FUNC(dmv_k230_device::io_w));
map(0x90, 0x91).rw("pic8259", FUNC(pic8259_device::read), FUNC(pic8259_device::write));
map(0x00, 0xff).rw(FUNC(dmv_k235_device::io_r), FUNC(dmv_k235_device::io_w));
map(0x90, 0x91).rw(m_pic, FUNC(pic8259_device::read), FUNC(pic8259_device::write));
}
static INPUT_PORTS_START( dmv_k235 )
@ -166,26 +166,29 @@ void dmv_k234_device::device_reset()
// device_add_mconfig - add device configuration
//-------------------------------------------------
MACHINE_CONFIG_START(dmv_k230_device::device_add_mconfig)
MCFG_DEVICE_ADD("maincpu", I8088, XTAL(15'000'000) / 3)
MCFG_DEVICE_PROGRAM_MAP(k230_mem)
MCFG_DEVICE_IO_MAP(k230_io)
MACHINE_CONFIG_END
void dmv_k230_device::device_add_mconfig(machine_config &config)
{
I8088(config, m_maincpu, XTAL(15'000'000) / 3);
m_maincpu->set_addrmap(AS_PROGRAM, &dmv_k230_device::k230_mem);
m_maincpu->set_addrmap(AS_IO, &dmv_k230_device::k230_io);
}
MACHINE_CONFIG_START(dmv_k234_device::device_add_mconfig)
MCFG_DEVICE_ADD("maincpu", M68008, XTAL(16'000'000) / 2)
MCFG_DEVICE_PROGRAM_MAP(k234_mem)
MACHINE_CONFIG_END
void dmv_k234_device::device_add_mconfig(machine_config &config)
{
M68008(config, m_maincpu, XTAL(16'000'000) / 2);
m_maincpu->set_addrmap(AS_PROGRAM, &dmv_k234_device::k234_mem);
}
MACHINE_CONFIG_START(dmv_k235_device::device_add_mconfig)
MCFG_DEVICE_ADD("maincpu", V20, XTAL(15'000'000) / 3)
MCFG_DEVICE_PROGRAM_MAP(k230_mem)
MCFG_DEVICE_IO_MAP(k235_io)
MCFG_DEVICE_IRQ_ACKNOWLEDGE_DEVICE("pic8259", pic8259_device, inta_cb)
void dmv_k235_device::device_add_mconfig(machine_config &config)
{
V20(config, m_maincpu, XTAL(15'000'000) / 3);
m_maincpu->set_addrmap(AS_PROGRAM, &dmv_k235_device::k230_mem);
m_maincpu->set_addrmap(AS_IO, &dmv_k235_device::k235_io);
m_maincpu->set_irq_acknowledge_callback("pic8259", FUNC(pic8259_device::inta_cb));
MCFG_DEVICE_ADD("pic8259", PIC8259, 0)
MCFG_PIC8259_OUT_INT_CB(INPUTLINE("maincpu", 0))
MACHINE_CONFIG_END
PIC8259(config, m_pic, 0);
m_pic->out_int_callback().set_inputline(m_maincpu, 0);
}
//-------------------------------------------------
// device_rom_region

View File

@ -48,8 +48,6 @@ protected:
void k230_io(address_map &map);
void k230_mem(address_map &map);
void k234_mem(address_map &map);
void k235_io(address_map &map);
required_device<cpu_device> m_maincpu;
optional_memory_region m_rom;
@ -58,11 +56,12 @@ protected:
int m_switch16;
int m_hold;
private:
DECLARE_READ8_MEMBER(io_r);
DECLARE_READ8_MEMBER(program_r);
DECLARE_WRITE8_MEMBER(io_w);
DECLARE_WRITE8_MEMBER(program_w);
private:
DECLARE_READ8_MEMBER(rom_r);
};
@ -108,6 +107,8 @@ private:
DECLARE_READ8_MEMBER(snr_r);
DECLARE_WRITE8_MEMBER(snr_w);
void k234_mem(address_map &map);
};
@ -140,6 +141,8 @@ protected:
private:
required_device<pic8259_device> m_pic;
required_ioport m_dsw;
void k235_io(address_map &map);
};
// device type definition

View File

@ -87,28 +87,29 @@ WRITE_LINE_MEMBER( s100_wunderbus_device::rtc_tp_w )
//-------------------------------------------------
MACHINE_CONFIG_START(s100_wunderbus_device::device_add_mconfig)
MCFG_DEVICE_ADD(I8259A_TAG, PIC8259, 0)
MCFG_PIC8259_OUT_INT_CB(WRITELINE(*this, s100_wunderbus_device, pic_int_w))
MCFG_PIC8259_IN_SP_CB(CONSTANT(1))
void s100_wunderbus_device::device_add_mconfig(machine_config &config)
{
PIC8259(config, m_pic, 0);
m_pic->out_int_callback().set(FUNC(s100_wunderbus_device::pic_int_w));
m_pic->in_sp_callback().set_constant(1);
INS8250(config, m_ace1, XTAL(18'432'000)/10);
m_ace1->out_tx_callback().set(RS232_A_TAG, FUNC(rs232_port_device::write_txd));
m_ace1->out_dtr_callback().set(RS232_A_TAG, FUNC(rs232_port_device::write_dtr));
m_ace1->out_rts_callback().set(RS232_A_TAG, FUNC(rs232_port_device::write_rts));
m_ace1->out_int_callback().set(I8259A_TAG, FUNC(pic8259_device::ir3_w));
m_ace1->out_int_callback().set(m_pic, FUNC(pic8259_device::ir3_w));
INS8250(config, m_ace2, XTAL(18'432'000)/10);
m_ace2->out_tx_callback().set(RS232_B_TAG, FUNC(rs232_port_device::write_txd));
m_ace2->out_dtr_callback().set(RS232_B_TAG, FUNC(rs232_port_device::write_dtr));
m_ace2->out_rts_callback().set(RS232_B_TAG, FUNC(rs232_port_device::write_rts));
m_ace2->out_int_callback().set(I8259A_TAG, FUNC(pic8259_device::ir4_w));
m_ace2->out_int_callback().set(m_pic, FUNC(pic8259_device::ir4_w));
INS8250(config, m_ace3, XTAL(18'432'000)/10);
m_ace3->out_tx_callback().set(RS232_C_TAG, FUNC(rs232_port_device::write_txd));
m_ace3->out_dtr_callback().set(RS232_C_TAG, FUNC(rs232_port_device::write_dtr));
m_ace3->out_rts_callback().set(RS232_C_TAG, FUNC(rs232_port_device::write_rts));
m_ace3->out_int_callback().set(I8259A_TAG, FUNC(pic8259_device::ir5_w));
m_ace3->out_int_callback().set(m_pic, FUNC(pic8259_device::ir5_w));
rs232_port_device &rs232a(RS232_PORT(config, RS232_A_TAG, default_rs232_devices, "terminal"));
rs232a.rxd_handler().set(m_ace1, FUNC(ins8250_uart_device::rx_w));
@ -134,7 +135,7 @@ MACHINE_CONFIG_START(s100_wunderbus_device::device_add_mconfig)
UPD1990A(config, m_rtc);
m_rtc->tp_callback().set(FUNC(s100_wunderbus_device::rtc_tp_w));
MACHINE_CONFIG_END
}
//-------------------------------------------------

View File

@ -48,15 +48,6 @@ public:
cs4031_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock);
// callbacks
template <class Obj> devcb_base &set_ior_callback(Obj &&ior) { return m_read_ior.set_callback(std::forward<Obj>(ior)); }
template <class Obj> devcb_base &set_iow_callback(Obj &&iow) { return m_write_iow.set_callback(std::forward<Obj>(iow)); }
template <class Obj> devcb_base &set_tc_callback(Obj &&tc) { return m_write_tc.set_callback(std::forward<Obj>(tc)); }
template <class Obj> devcb_base &set_hold_callback(Obj &&hold) { return m_write_hold.set_callback(std::forward<Obj>(hold)); }
template <class Obj> devcb_base &set_cpureset_callback(Obj &&cpureset) { return m_write_cpureset.set_callback(std::forward<Obj>(cpureset)); }
template <class Obj> devcb_base &set_nmi_callback(Obj &&nmi) { return m_write_nmi.set_callback(std::forward<Obj>(nmi)); }
template <class Obj> devcb_base &set_intr_callback(Obj &&intr) { return m_write_intr.set_callback(std::forward<Obj>(intr)); }
template <class Obj> devcb_base &set_a20m_callback(Obj &&a20m) { return m_write_a20m.set_callback(std::forward<Obj>(a20m)); }
template <class Obj> devcb_base &set_spkr_callback(Obj &&spkr) { return m_write_spkr.set_callback(std::forward<Obj>(spkr)); }
auto ior() { return m_read_ior.bind(); }
auto iow() { return m_write_iow.bind(); }
auto tc() { return m_write_tc.bind(); }

View File

@ -57,7 +57,6 @@ void pic8259_device::device_timer(emu_timer &timer, device_timer_id id, int para
m_out_int_func(0);
}
void pic8259_device::set_irq_line(int irq, int state)
{
uint8_t mask = (1 << irq);
@ -65,7 +64,7 @@ void pic8259_device::set_irq_line(int irq, int state)
if (state)
{
/* setting IRQ line */
LOG("pic8259_set_irq_line(): PIC set IRQ line #%d\n", irq);
LOG("set_irq_line(): PIC set IRQ line #%d\n", irq);
if(m_level_trig_mode || (!m_level_trig_mode && !(m_irq_lines & mask)))
{
@ -76,7 +75,7 @@ void pic8259_device::set_irq_line(int irq, int state)
else
{
/* clearing IRQ line */
LOG("pic8259_device::set_irq_line(): PIC cleared IRQ line #%d\n", irq);
LOG("set_irq_line(): PIC cleared IRQ line #%d\n", irq);
m_irq_lines &= ~mask;
m_irr &= ~mask;

View File

@ -28,31 +28,11 @@
#define MAME_MACHINE_PIC8259_H
/***************************************************************************
DEVICE CONFIGURATION MACROS
***************************************************************************/
// Interrupt request output to CPU or master 8259 (active high)
#define MCFG_PIC8259_OUT_INT_CB(_devcb) \
downcast<pic8259_device &>(*device).set_out_int_callback(DEVCB_##_devcb);
// Slave program select (VCC = master; GND = slave; pin becomes EN output in buffered mode)
#define MCFG_PIC8259_IN_SP_CB(_devcb) \
downcast<pic8259_device &>(*device).set_in_sp_callback(DEVCB_##_devcb);
// Cascaded interrupt acknowledge request for slave 8259 to place vector on data bus
#define MCFG_PIC8259_CASCADE_ACK_CB(_devcb) \
downcast<pic8259_device &>(*device).set_read_slave_ack_callback(DEVCB_##_devcb);
class pic8259_device : public device_t
{
public:
pic8259_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock);
template <class Object> devcb_base &set_out_int_callback(Object &&cb) { return m_out_int_func.set_callback(std::forward<Object>(cb)); }
template <class Object> devcb_base &set_in_sp_callback(Object &&cb) { return m_in_sp_func.set_callback(std::forward<Object>(cb)); }
template <class Object> devcb_base &set_read_slave_ack_callback(Object &&cb) { return m_read_slave_ack_func.set_callback(std::forward<Object>(cb)); }
auto out_int_callback() { return m_out_int_func.bind(); }
auto in_sp_callback() { return m_in_sp_func.bind(); }
auto read_slave_ack_callback() { return m_read_slave_ack_func.bind(); }

View File

@ -477,11 +477,11 @@ MACHINE_CONFIG_START(a7150_state::a7150)
i8087_device &i8087(I8087(config, "i8087", XTAL(9'832'000)/2));
i8087.set_addrmap(AS_PROGRAM, &a7150_state::a7150_mem);
i8087.set_data_width(16);
i8087.irq().set("pic8259", FUNC(pic8259_device::ir0_w));
i8087.irq().set(m_pic8259, FUNC(pic8259_device::ir0_w));
i8087.busy().set_inputline("maincpu", INPUT_LINE_TEST);
MCFG_DEVICE_ADD("pic8259", PIC8259, 0)
MCFG_PIC8259_OUT_INT_CB(INPUTLINE("maincpu", 0))
PIC8259(config, m_pic8259, 0);
m_pic8259->out_int_callback().set_inputline(m_maincpu, 0);
// IFSP port on processor card
i8255_device &ppi(I8255(config, "ppi8255"));

View File

@ -1325,24 +1325,25 @@ MACHINE_CONFIG_START(alphatp_34_state::alphatp3)
MCFG_FLOPPY_DRIVE_ADD("fdc:1", alphatp3_floppies, "525qd", floppy_image_device::default_floppy_formats)
MACHINE_CONFIG_END
MACHINE_CONFIG_START(alphatp_34_state::alphatp30)
void alphatp_34_state::alphatp30(machine_config &config)
{
alphatp3(config);
MCFG_DEVICE_ADD("i8088", I8088, 6000000) // unknown clock
MCFG_DEVICE_PROGRAM_MAP(alphatp30_8088_map)
MCFG_DEVICE_IO_MAP(alphatp30_8088_io)
MCFG_DEVICE_IRQ_ACKNOWLEDGE_DEVICE("pic8259", pic8259_device, inta_cb)
MCFG_DEVICE_DISABLE()
I8088(config, m_i8088, 6000000); // unknown clock
m_i8088->set_addrmap(AS_PROGRAM, &alphatp_34_state::alphatp30_8088_map);
m_i8088->set_addrmap(AS_IO, &alphatp_34_state::alphatp30_8088_io);
m_i8088->set_irq_acknowledge_callback("pic8259", FUNC(pic8259_device::inta_cb));
m_i8088->set_disable();
MCFG_DEVICE_ADD("pic8259", PIC8259, 0)
MCFG_PIC8259_OUT_INT_CB(INPUTLINE("i8088", 0))
MCFG_PIC8259_IN_SP_CB(CONSTANT(0))
PIC8259(config, m_pic, 0);
m_pic->out_int_callback().set_inputline(m_i8088, 0);
m_pic->in_sp_callback().set_constant(0);
pit8253_device &pit(PIT8253(config, "pit", 0));
pit.set_clk<0>(100000); // 15Mhz osc with unknown divisor
pit.set_clk<1>(100000);
pit.set_clk<2>(100000);
pit.out_handler<0>().set(m_pic, FUNC(pic8259_device::ir0_w));
MACHINE_CONFIG_END
}
//**************************************************************************
// ROM DEFINITIONS

View File

@ -22,9 +22,7 @@ public:
driver_device(mconfig, type, tag),
m_maincpu(*this, "maincpu"),
m_dmac(*this, "dmac"),
m_pic1(*this, "pic8259_1"),
m_pic2(*this, "pic8259_2"),
m_pic3(*this, "pic8259_3"),
m_pic(*this, "pic8259%u", 1U),
m_uart8274(*this, "uart8274"),
m_fdc(*this, "fd1797"),
m_ram(*this, RAM_TAG),
@ -91,9 +89,7 @@ private:
void format_sector();
required_device<i8086_cpu_device> m_maincpu;
required_device<i8089_device> m_dmac;
required_device<pic8259_device> m_pic1;
required_device<pic8259_device> m_pic2;
required_device<pic8259_device> m_pic3;
required_device_array<pic8259_device, 3> m_pic;
required_device<i8274_new_device> m_uart8274;
required_device<fd1797_device> m_fdc;
required_device<ram_device> m_ram;
@ -205,7 +201,7 @@ u8 altos8600_state::read_sector()
if(secoff >= 511)
{
m_dmac->drq1_w(CLEAR_LINE);
m_pic2->ir0_w(ASSERT_LINE);
m_pic[1]->ir0_w(ASSERT_LINE);
m_stat &= ~1;
m_stat |= 2;
}
@ -225,7 +221,7 @@ bool altos8600_state::write_sector(u8 data)
m_stat |= 2;
hard_disk_write(m_hdd->get_hard_disk_file(), m_lba, m_sector);
m_dmac->drq1_w(CLEAR_LINE);
m_pic2->ir0_w(ASSERT_LINE);
m_pic[1]->ir0_w(ASSERT_LINE);
return true;
}
return false;
@ -240,7 +236,7 @@ READ8_MEMBER(altos8600_state::hd_r)
return read_sector();
break;
case 3:
m_pic2->ir0_w(CLEAR_LINE);
m_pic[1]->ir0_w(CLEAR_LINE);
return m_stat;
}
return 0;
@ -332,7 +328,7 @@ WRITE8_MEMBER(altos8600_state::hd_w)
m_dmac->drq1_w(ASSERT_LINE);
break;
}
m_pic2->ir0_w(ASSERT_LINE);
m_pic[1]->ir0_w(ASSERT_LINE);
break;
}
}
@ -360,13 +356,13 @@ WRITE_LINE_MEMBER(altos8600_state::sintr1_w)
if(state)
{
m_dmac->drq1_w(CLEAR_LINE);
m_pic2->ir0_w(ASSERT_LINE);
m_pic2->ir3_w(ASSERT_LINE);
m_pic[1]->ir0_w(ASSERT_LINE);
m_pic[1]->ir3_w(ASSERT_LINE);
m_stat &= ~1;
m_stat |= 2;
}
else
m_pic2->ir3_w(CLEAR_LINE);
m_pic[1]->ir3_w(CLEAR_LINE);
}
READ16_MEMBER(altos8600_state::fault_r)
@ -480,7 +476,7 @@ WRITE8_MEMBER(altos8600_state::romport_w)
WRITE8_MEMBER(altos8600_state::clrsys_w)
{
m_pic1->ir0_w(CLEAR_LINE);
m_pic[0]->ir0_w(CLEAR_LINE);
}
WRITE8_MEMBER(altos8600_state::ics_attn_w)
@ -502,9 +498,9 @@ WRITE16_MEMBER(altos8600_state::mode_w)
READ8_MEMBER(altos8600_state::get_slave_ack)
{
if(offset == 2)
return m_pic2->acknowledge();
return m_pic[1]->acknowledge();
else if(offset == 3)
return m_pic3->acknowledge();
return m_pic[2]->acknowledge();
return 0x00;
}
@ -605,7 +601,7 @@ READ16_MEMBER(altos8600_state::cpuio_r)
{
if(m_user && !machine().side_effects_disabled())
{
m_pic1->ir0_w(ASSERT_LINE);
m_pic[0]->ir0_w(ASSERT_LINE);
return 0;
}
return m_dmac->space(AS_IO).read_word_unaligned(offset << 1, mem_mask);
@ -615,7 +611,7 @@ WRITE16_MEMBER(altos8600_state::cpuio_w)
{
if(m_user && !machine().side_effects_disabled())
{
m_pic1->ir0_w(ASSERT_LINE);
m_pic[0]->ir0_w(ASSERT_LINE);
return;
}
m_dmac->space(AS_IO).write_word_unaligned(offset << 1, data, mem_mask);
@ -661,7 +657,7 @@ IRQ_CALLBACK_MEMBER(altos8600_state::inta)
{
m_user = false;
m_mode &= ~1;
return m_pic1->acknowledge();
return m_pic[0]->acknowledge();
}
void altos8600_state::cpu_mem(address_map &map)
@ -709,10 +705,10 @@ void altos8600_state::dmac_io(address_map &map)
map(0x0048, 0x004f).rw(m_uart8274, FUNC(i8274_new_device::cd_ba_r), FUNC(i8274_new_device::cd_ba_w)).umask16(0x00ff);
map(0x0048, 0x004f).rw("pit", FUNC(pit8253_device::read), FUNC(pit8253_device::write)).umask16(0xff00);
map(0x0050, 0x0057).rw(FUNC(altos8600_state::romport_r), FUNC(altos8600_state::romport_w));
map(0x0058, 0x005f).rw(m_pic1, FUNC(pic8259_device::read), FUNC(pic8259_device::write)).umask16(0x00ff);
map(0x0058, 0x005f).rw(m_pic[0], FUNC(pic8259_device::read), FUNC(pic8259_device::write)).umask16(0x00ff);
map(0x0058, 0x005f).w(FUNC(altos8600_state::clrsys_w)).umask16(0xff00);
map(0x0060, 0x0067).rw(m_pic2, FUNC(pic8259_device::read), FUNC(pic8259_device::write)).umask16(0x00ff);
map(0x0068, 0x006f).rw(m_pic3, FUNC(pic8259_device::read), FUNC(pic8259_device::write)).umask16(0x00ff);
map(0x0060, 0x0067).rw(m_pic[1], FUNC(pic8259_device::read), FUNC(pic8259_device::write)).umask16(0x00ff);
map(0x0068, 0x006f).rw(m_pic[2], FUNC(pic8259_device::read), FUNC(pic8259_device::write)).umask16(0x00ff);
map(0x0070, 0x0077).noprw();
map(0x0078, 0x0079).w(FUNC(altos8600_state::ics_attn_w));
map(0x0200, 0x03ff).rw(FUNC(altos8600_state::mmuflags_r), FUNC(altos8600_state::mmuflags_w));
@ -740,20 +736,20 @@ MACHINE_CONFIG_START(altos8600_state::altos8600)
MCFG_DEVICE_IO_MAP(dmac_io)
MCFG_I8089_DATA_WIDTH(16)
MCFG_I8089_SINTR1(WRITELINE(*this, altos8600_state, sintr1_w))
MCFG_I8089_SINTR2(WRITELINE(m_pic2, pic8259_device, ir4_w))
MCFG_I8089_SINTR2(WRITELINE(m_pic[1], pic8259_device, ir4_w))
PIC8259(config, m_pic1, 0);
m_pic1->out_int_callback().set_inputline(m_maincpu, 0);
m_pic1->in_sp_callback().set_constant(1);
m_pic1->read_slave_ack_callback().set(FUNC(altos8600_state::get_slave_ack));
PIC8259(config, m_pic[0], 0);
m_pic[0]->out_int_callback().set_inputline(m_maincpu, 0);
m_pic[0]->in_sp_callback().set_constant(1);
m_pic[0]->read_slave_ack_callback().set(FUNC(altos8600_state::get_slave_ack));
PIC8259(config, m_pic2, 0);
m_pic2->out_int_callback().set(m_pic1, FUNC(pic8259_device::ir2_w));
m_pic2->in_sp_callback().set_constant(0);
PIC8259(config, m_pic[1], 0);
m_pic[1]->out_int_callback().set(m_pic[0], FUNC(pic8259_device::ir2_w));
m_pic[1]->in_sp_callback().set_constant(0);
PIC8259(config, m_pic3, 0);
m_pic3->out_int_callback().set(m_pic1, FUNC(pic8259_device::ir3_w));
m_pic3->in_sp_callback().set_constant(0);
PIC8259(config, m_pic[2], 0);
m_pic[2]->out_int_callback().set(m_pic[0], FUNC(pic8259_device::ir3_w));
m_pic[2]->in_sp_callback().set_constant(0);
RAM(config, RAM_TAG).set_default_size("1M");//.set_extra_options("512K");
@ -764,7 +760,7 @@ MACHINE_CONFIG_START(altos8600_state::altos8600)
m_uart8274->out_txdb_callback().set("rs232b", FUNC(rs232_port_device::write_txd));
m_uart8274->out_dtrb_callback().set("rs232b", FUNC(rs232_port_device::write_dtr));
m_uart8274->out_rtsb_callback().set("rs232b", FUNC(rs232_port_device::write_rts));
m_uart8274->out_int_callback().set("pic8259_1", FUNC(pic8259_device::ir7_w));
m_uart8274->out_int_callback().set(m_pic[0], FUNC(pic8259_device::ir7_w));
rs232_port_device &rs232a(RS232_PORT(config, "rs232a", default_rs232_devices, nullptr));
rs232a.rxd_handler().set(m_uart8274, FUNC(i8274_new_device::rxa_w));
@ -785,10 +781,10 @@ MACHINE_CONFIG_START(altos8600_state::altos8600)
pit.set_clk<1>(1228800);
pit.out_handler<1>().set(m_uart8274, FUNC(i8274_new_device::rxtxcb_w));
pit.set_clk<2>(1228800);
pit.out_handler<1>().set(m_pic1, FUNC(pic8259_device::ir1_w));
pit.out_handler<1>().set(m_pic[0], FUNC(pic8259_device::ir1_w));
FD1797(config, m_fdc, 2000000);
m_fdc->intrq_wr_callback().set(m_pic2, FUNC(pic8259_device::ir1_w));
m_fdc->intrq_wr_callback().set(m_pic[1], FUNC(pic8259_device::ir1_w));
m_fdc->drq_wr_callback().set(FUNC(altos8600_state::fddrq_w));
MCFG_FLOPPY_DRIVE_ADD("fd1797:0", altos8600_floppies, "8dd", floppy_image_device::default_floppy_formats)
MCFG_FLOPPY_DRIVE_ADD("fd1797:1", altos8600_floppies, "8dd", floppy_image_device::default_floppy_formats)
@ -797,8 +793,8 @@ MACHINE_CONFIG_START(altos8600_state::altos8600)
ACS8600_ICS(config, m_ics, 0);
m_ics->set_host_space(m_dmac, AS_PROGRAM); // TODO: fixme
m_ics->irq1_callback().set(m_pic1, FUNC(pic8259_device::ir5_w));
m_ics->irq2_callback().set(m_pic1, FUNC(pic8259_device::ir6_w));
m_ics->irq1_callback().set(m_pic[0], FUNC(pic8259_device::ir5_w));
m_ics->irq2_callback().set(m_pic[0], FUNC(pic8259_device::ir6_w));
MCFG_HARDDISK_ADD("hdd")
MACHINE_CONFIG_END

View File

@ -534,13 +534,13 @@ PALETTE_INIT_MEMBER(amusco_state,amusco)
MACHINE_CONFIG_START(amusco_state::amusco)
/* basic machine hardware */
MCFG_DEVICE_ADD("maincpu", I8088, CPU_CLOCK) // 5 MHz ?
MCFG_DEVICE_PROGRAM_MAP(amusco_mem_map)
MCFG_DEVICE_IO_MAP(amusco_io_map)
MCFG_DEVICE_IRQ_ACKNOWLEDGE_DEVICE("pic8259", pic8259_device, inta_cb)
I8088(config, m_maincpu, CPU_CLOCK); // 5 MHz ?
m_maincpu->set_addrmap(AS_PROGRAM, &amusco_state::amusco_mem_map);
m_maincpu->set_addrmap(AS_IO, &amusco_state::amusco_io_map);
m_maincpu->set_irq_acknowledge_callback("pic8259", FUNC(pic8259_device::inta_cb));
MCFG_DEVICE_ADD("pic8259", PIC8259, 0)
MCFG_PIC8259_OUT_INT_CB(INPUTLINE("maincpu", 0))
PIC8259(config, m_pic, 0);
m_pic->out_int_callback().set_inputline(m_maincpu, 0);
PIT8253(config, m_pit, 0);
m_pit->set_clk<0>(PIT_CLOCK0);
@ -563,12 +563,12 @@ MACHINE_CONFIG_START(amusco_state::amusco)
i8155a.in_pb_callback().set(FUNC(amusco_state::lpt_status_r));
// Port C uses ALT 3 mode, which MAME does not currently emulate
MCFG_DEVICE_ADD("rtc", MSM5832, 32.768_kHz_XTAL)
MSM5832(config, m_rtc, 32.768_kHz_XTAL);
i8155_device &i8155b(I8155(config, "rtc_interface", 0));
i8155b.out_pa_callback().set(FUNC(amusco_state::rtc_control_w));
i8155b.in_pc_callback().set("rtc", FUNC(msm5832_device::data_r));
i8155b.out_pc_callback().set("rtc", FUNC(msm5832_device::data_w));
i8155b.in_pc_callback().set(m_rtc, FUNC(msm5832_device::data_r));
i8155b.out_pc_callback().set(m_rtc, FUNC(msm5832_device::data_w));
MCFG_TICKET_DISPENSER_ADD("hopper", attotime::from_msec(30), TICKET_MOTOR_ACTIVE_LOW, TICKET_STATUS_ACTIVE_HIGH)
@ -589,7 +589,7 @@ MACHINE_CONFIG_START(amusco_state::amusco)
MCFG_MC6845_SHOW_BORDER_AREA(false)
MCFG_MC6845_CHAR_WIDTH(8)
MCFG_MC6845_ADDR_CHANGED_CB(amusco_state, crtc_addr)
MCFG_MC6845_OUT_DE_CB(WRITELINE("pic8259", pic8259_device, ir1_w)) // IRQ1 sets 0x918 bit 3
MCFG_MC6845_OUT_DE_CB(WRITELINE(m_pic, pic8259_device, ir1_w)) // IRQ1 sets 0x918 bit 3
MCFG_MC6845_UPDATE_ROW_CB(amusco_state, update_row)
/* sound hardware */

View File

@ -370,8 +370,8 @@ MACHINE_CONFIG_START(apricot_state::apricot)
MCFG_DEVICE_PROGRAM_MAP(apricot_mem)
MCFG_DEVICE_IO_MAP(apricot_io)
MCFG_I8089_DATA_WIDTH(16)
MCFG_I8089_SINTR1(WRITELINE("ic31", pic8259_device, ir0_w))
MCFG_I8089_SINTR2(WRITELINE("ic31", pic8259_device, ir1_w))
MCFG_I8089_SINTR1(WRITELINE(m_pic, pic8259_device, ir0_w))
MCFG_I8089_SINTR2(WRITELINE(m_pic, pic8259_device, ir1_w))
// ram
RAM(config, RAM_TAG).set_default_size("256K");
@ -409,7 +409,7 @@ MACHINE_CONFIG_START(apricot_state::apricot)
PIT8253(config, m_pit, 0);
m_pit->set_clk<0>(4_MHz_XTAL / 16);
m_pit->out_handler<0>().set("ic31", FUNC(pic8259_device::ir6_w));
m_pit->out_handler<0>().set(m_pic, FUNC(pic8259_device::ir6_w));
m_pit->set_clk<1>(4_MHz_XTAL / 2);
m_pit->out_handler<1>().set("ic14", FUNC(ttl153_device::i0a_w));
m_pit->set_clk<2>(4_MHz_XTAL / 2);

View File

@ -608,7 +608,7 @@ MACHINE_CONFIG_START(fp_state::fp)
MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 1.00)
/* Devices */
MCFG_DEVICE_ADD(APRICOT_KEYBOARD_TAG, APRICOT_KEYBOARD, 0)
APRICOT_KEYBOARD(config, APRICOT_KEYBOARD_TAG, 0);
AM9517A(config, m_dmac, 250000);
m_dmac->out_eop_callback().set(m_pic, FUNC(pic8259_device::ir7_w));

View File

@ -229,8 +229,8 @@ MACHINE_CONFIG_START(b2m_state::b2m)
ppi3.out_pb_callback().set(FUNC(b2m_state::b2m_romdisk_portb_w));
ppi3.out_pc_callback().set(FUNC(b2m_state::b2m_romdisk_portc_w));
MCFG_DEVICE_ADD("pic8259", PIC8259, 0)
MCFG_PIC8259_OUT_INT_CB(INPUTLINE("maincpu", 0))
PIC8259(config, m_pic, 0);
m_pic->out_int_callback().set_inputline(m_maincpu, 0);
/* sound */
SPEAKER(config, "mono").front_center();

View File

@ -1169,7 +1169,7 @@ void cbm2_state::ext_mem(address_map &map)
void cbm2_state::ext_io(address_map &map)
{
map.global_mask(0xff);
map(0x0000, 0x0001).mirror(0x1e).rw(EXT_I8259A_TAG, FUNC(pic8259_device::read), FUNC(pic8259_device::write));
map(0x0000, 0x0001).mirror(0x1e).rw(m_ext_pic, FUNC(pic8259_device::read), FUNC(pic8259_device::write));
map(0x0020, 0x0027).mirror(0x18).rw(EXT_MOS6525_TAG, FUNC(tpi6525_device::read), FUNC(tpi6525_device::write));
}
@ -2715,13 +2715,13 @@ MACHINE_CONFIG_START(cbm2hp_state::bx256hp)
b256hp(config);
MCFG_MACHINE_START_OVERRIDE(cbm2_state, cbm2x_ntsc)
MCFG_DEVICE_ADD(EXT_I8088_TAG, I8088, XTAL(12'000'000))
MCFG_DEVICE_ADD(m_ext_cpu, I8088, XTAL(12'000'000))
MCFG_DEVICE_PROGRAM_MAP(ext_mem)
MCFG_DEVICE_IO_MAP(ext_io)
MCFG_DEVICE_IRQ_ACKNOWLEDGE_DEVICE(EXT_I8259A_TAG, pic8259_device, inta_cb)
MCFG_DEVICE_ADD(EXT_I8259A_TAG, PIC8259, 0)
MCFG_PIC8259_OUT_INT_CB(INPUTLINE(EXT_I8088_TAG, INPUT_LINE_IRQ0))
PIC8259(config, m_ext_pic, 0);
m_ext_pic->out_int_callback().set_inputline(m_ext_cpu, INPUT_LINE_IRQ0);
TPI6525(config, m_ext_tpi, 0);
m_ext_tpi->in_pa_cb().set(EXT_MOS6526_TAG, FUNC(mos6526_device::pa_r));
@ -2784,13 +2784,13 @@ MACHINE_CONFIG_START(cbm2hp_state::cbm730)
cbm720(config);
MCFG_MACHINE_START_OVERRIDE(cbm2_state, cbm2x_pal)
MCFG_DEVICE_ADD(EXT_I8088_TAG, I8088, XTAL(12'000'000))
MCFG_DEVICE_ADD(m_ext_cpu, I8088, XTAL(12'000'000))
MCFG_DEVICE_PROGRAM_MAP(ext_mem)
MCFG_DEVICE_IO_MAP(ext_io)
MCFG_DEVICE_IRQ_ACKNOWLEDGE_DEVICE(EXT_I8259A_TAG, pic8259_device, inta_cb)
MCFG_DEVICE_ADD(EXT_I8259A_TAG, PIC8259, 0)
MCFG_PIC8259_OUT_INT_CB(INPUTLINE(EXT_I8088_TAG, INPUT_LINE_IRQ0))
PIC8259(config, m_ext_pic, 0);
m_ext_pic->out_int_callback().set_inputline(m_ext_cpu, INPUT_LINE_IRQ0);
TPI6525(config, m_ext_tpi, 0);
m_ext_tpi->in_pa_cb().set(EXT_MOS6526_TAG, FUNC(mos6526_device::pa_r));

View File

@ -435,8 +435,8 @@ MACHINE_CONFIG_START(ksm_state::ksm)
MCFG_DEVICE_ADD("gfxdecode", GFXDECODE, "palette", gfx_ksm)
MCFG_PALETTE_ADD_MONOCHROME("palette")
MCFG_DEVICE_ADD("pic8259", PIC8259, 0)
MCFG_PIC8259_OUT_INT_CB(INPUTLINE("maincpu", 0))
PIC8259(config, m_pic8259, 0);
m_pic8259->out_int_callback().set_inputline(m_maincpu, 0);
// D30
i8255_device &ppi(I8255(config, "ppi8255"));
@ -448,7 +448,7 @@ MACHINE_CONFIG_START(ksm_state::ksm)
// D42 - serial connection to host
I8251(config, m_i8251line, 0);
m_i8251line->txd_handler().set(m_rs232, FUNC(rs232_port_device::write_txd));
m_i8251line->rxrdy_handler().set("pic8259", FUNC(pic8259_device::ir3_w));
m_i8251line->rxrdy_handler().set(m_pic8259, FUNC(pic8259_device::ir3_w));
RS232_PORT(config, m_rs232, default_rs232_devices, "null_modem");
m_rs232->rxd_handler().set(m_i8251line, FUNC(i8251_device::write_rxd));
@ -457,7 +457,7 @@ MACHINE_CONFIG_START(ksm_state::ksm)
// D41 - serial connection to MS7004 keyboard
I8251(config, m_i8251kbd, 0);
m_i8251kbd->rxrdy_handler().set("pic8259", FUNC(pic8259_device::ir1_w));
m_i8251kbd->rxrdy_handler().set(m_pic8259, FUNC(pic8259_device::ir1_w));
m_i8251kbd->rts_handler().set(FUNC(ksm_state::write_brga));
m_i8251kbd->dtr_handler().set(FUNC(ksm_state::write_brgb));

View File

@ -985,14 +985,14 @@ MACHINE_CONFIG_START(fanucspmg_state::fanucspmg)
m_dmac->in_ior_cb<0>().set(FUNC(fanucspmg_state::fdcdma_r));
m_dmac->out_iow_cb<0>().set(FUNC(fanucspmg_state::fdcdma_w));
MCFG_DEVICE_ADD(m_pic[0], PIC8259, 0)
MCFG_PIC8259_OUT_INT_CB(INPUTLINE("maincpu", 0))
MCFG_PIC8259_IN_SP_CB(CONSTANT(1))
MCFG_PIC8259_CASCADE_ACK_CB(READ8(*this, fanucspmg_state, get_slave_ack))
PIC8259(config, m_pic[0], 0);
m_pic[0]->out_int_callback().set_inputline(m_maincpu, 0);
m_pic[0]->in_sp_callback().set_constant(1);
m_pic[0]->read_slave_ack_callback().set(FUNC(fanucspmg_state::get_slave_ack));
MCFG_DEVICE_ADD(m_pic[1], PIC8259, 0)
MCFG_PIC8259_OUT_INT_CB(WRITELINE(m_pic[0], pic8259_device, ir7_w))
MCFG_PIC8259_IN_SP_CB(CONSTANT(0))
PIC8259(config, m_pic[1], 0);
m_pic[1]->out_int_callback().set(m_pic[0], FUNC(pic8259_device::ir7_w));
m_pic[1]->in_sp_callback().set_constant(0);
UPD765A(config, m_fdc, true, true);
m_fdc->intrq_wr_callback().set(m_pic[0], FUNC(pic8259_device::ir3_w));

View File

@ -649,11 +649,11 @@ MACHINE_CONFIG_START(fastinvaders_state::fastinvaders)
// MCFG_DEVICE_IO_MAP(fastinvaders_io_map)
// MCFG_DEVICE_VBLANK_INT_DRIVER("screen", fastinvaders_state, irq0_line_hold)
MCFG_I8085A_SID(READLINE(*this, fastinvaders_state, sid_read))
MCFG_DEVICE_IRQ_ACKNOWLEDGE_DEVICE("pic8259", pic8259_device, inta_cb)
MCFG_TIMER_DRIVER_ADD_SCANLINE("scantimer", fastinvaders_state, scanline_timer, "screen", 0, 1)
MCFG_DEVICE_IRQ_ACKNOWLEDGE_DEVICE("pic8259", pic8259_device, inta_cb)
MCFG_TIMER_DRIVER_ADD_SCANLINE("scantimer", fastinvaders_state, scanline_timer, "screen", 0, 1)
MCFG_DEVICE_ADD("pic8259", PIC8259, 0)
MCFG_PIC8259_OUT_INT_CB(INPUTLINE("maincpu", 0))
PIC8259(config, m_pic8259, 0);
m_pic8259->out_int_callback().set_inputline(m_maincpu, 0);
I8257(config, m_dma8257, 6144100);
m_dma8257->in_memr_cb().set(FUNC(fastinvaders_state::memory_read_byte));

View File

@ -776,8 +776,6 @@ READ8_MEMBER(towns_state::towns_port60_r)
WRITE8_MEMBER(towns_state::towns_port60_w)
{
//device_t* dev = m_pic_master;
if(data & 0x80)
{
//towns_pic_irq(dev,0);
@ -2807,14 +2805,14 @@ MACHINE_CONFIG_START(towns_state::towns_base)
pit2.out_handler<1>().set(FUNC(towns_state::pit2_out1_changed));
pit2.set_clk<2>(307200); // reserved
MCFG_DEVICE_ADD("pic8259_master", PIC8259, 0)
MCFG_PIC8259_OUT_INT_CB(INPUTLINE("maincpu", 0))
MCFG_PIC8259_IN_SP_CB(CONSTANT(1))
MCFG_PIC8259_CASCADE_ACK_CB(READ8(*this, towns_state, get_slave_ack))
PIC8259(config, m_pic_master, 0);
m_pic_master->out_int_callback().set_inputline(m_maincpu, 0);
m_pic_master->in_sp_callback().set_constant(1);
m_pic_master->read_slave_ack_callback().set(FUNC(towns_state::get_slave_ack));
MCFG_DEVICE_ADD("pic8259_slave", PIC8259, 0)
MCFG_PIC8259_OUT_INT_CB(WRITELINE("pic8259_master", pic8259_device, ir7_w))
MCFG_PIC8259_IN_SP_CB(CONSTANT(0))
PIC8259(config, m_pic_slave, 0);
m_pic_slave->out_int_callback().set(m_pic_master, FUNC(pic8259_device::ir7_w));
m_pic_slave->in_sp_callback().set_constant(0);
MB8877(config, m_fdc, 8'000'000 / 4); // clock unknown
m_fdc->intrq_wr_callback().set(FUNC(towns_state::mb8877a_irq_w));

View File

@ -899,8 +899,8 @@ MACHINE_CONFIG_START(ibm6580_state::ibm6580)
MCFG_PALETTE_ADD("palette", 3)
MCFG_PALETTE_INIT_OWNER(ibm6580_state, ibm6580)
MCFG_DEVICE_ADD("pic8259", PIC8259, 0)
MCFG_PIC8259_OUT_INT_CB(INPUTLINE("maincpu", 0))
PIC8259(config, m_pic8259, 0);
m_pic8259->out_int_callback().set_inputline(m_maincpu, 0);
i8255_device &ppi(I8255(config, "ppi8255"));
ppi.in_pa_callback().set(FUNC(ibm6580_state::ppi_a_r));
@ -926,7 +926,7 @@ MACHINE_CONFIG_START(ibm6580_state::ibm6580)
UPD765A(config, m_fdc, false, false);
m_fdc->intrq_wr_callback().set(FUNC(ibm6580_state::floppy_intrq));
// m_fdc->intrq_wr_callback().append("pic8259", FUNC(pic8259_device::ir4_w));
// m_fdc->intrq_wr_callback().append(m_pic8259, FUNC(pic8259_device::ir4_w));
m_fdc->drq_wr_callback().set(m_dma8257, FUNC(i8257_device::dreq0_w));
MCFG_FLOPPY_DRIVE_ADD(UPD765_TAG ":0", dw_floppies, "8sssd", floppy_image_device::default_floppy_formats)
MCFG_FLOPPY_DRIVE_ADD(UPD765_TAG ":1", dw_floppies, "8sssd", floppy_image_device::default_floppy_formats)
@ -935,8 +935,8 @@ MACHINE_CONFIG_START(ibm6580_state::ibm6580)
upd8251a.txd_handler().set("rs232a", FUNC(rs232_port_device::write_txd));
upd8251a.dtr_handler().set("rs232a", FUNC(rs232_port_device::write_dtr));
upd8251a.rts_handler().set("rs232a", FUNC(rs232_port_device::write_rts));
upd8251a.rxrdy_handler().set("pic8259", FUNC(pic8259_device::ir2_w));
upd8251a.txrdy_handler().set("pic8259", FUNC(pic8259_device::ir2_w));
upd8251a.rxrdy_handler().set(m_pic8259, FUNC(pic8259_device::ir2_w));
upd8251a.txrdy_handler().set(m_pic8259, FUNC(pic8259_device::ir2_w));
rs232_port_device &rs232a(RS232_PORT(config, "rs232a", default_rs232_devices, nullptr));
rs232a.rxd_handler().set("upd8251a", FUNC(i8251_device::write_rxd));
@ -947,8 +947,8 @@ MACHINE_CONFIG_START(ibm6580_state::ibm6580)
upd8251b.txd_handler().set("rs232b", FUNC(rs232_port_device::write_txd));
upd8251b.dtr_handler().set("rs232b", FUNC(rs232_port_device::write_dtr));
upd8251b.rts_handler().set("rs232b", FUNC(rs232_port_device::write_rts));
upd8251b.rxrdy_handler().set("pic8259", FUNC(pic8259_device::ir2_w));
upd8251b.txrdy_handler().set("pic8259", FUNC(pic8259_device::ir2_w));
upd8251b.rxrdy_handler().set(m_pic8259, FUNC(pic8259_device::ir2_w));
upd8251b.txrdy_handler().set(m_pic8259, FUNC(pic8259_device::ir2_w));
rs232_port_device &rs232b(RS232_PORT(config, "rs232b", default_rs232_devices, nullptr));
rs232b.rxd_handler().set("upd8251b", FUNC(i8251_device::write_rxd));

View File

@ -599,10 +599,10 @@ void pcjr_state::ibmpcjx_io(address_map &map)
MACHINE_CONFIG_START(pcjr_state::ibmpcjr)
/* basic machine hardware */
MCFG_DEVICE_ADD("maincpu", I8088, 4900000)
MCFG_DEVICE_PROGRAM_MAP(ibmpcjr_map)
MCFG_DEVICE_IO_MAP(ibmpcjr_io)
MCFG_DEVICE_IRQ_ACKNOWLEDGE_DEVICE("pic8259", pic8259_device, inta_cb)
I8088(config, m_maincpu, 4900000);
m_maincpu->set_addrmap(AS_PROGRAM, &pcjr_state::ibmpcjr_map);
m_maincpu->set_addrmap(AS_IO, &pcjr_state::ibmpcjr_io);
m_maincpu->set_irq_acknowledge_callback("pic8259", FUNC(pic8259_device::inta_cb));
/*
On the PC Jr the input for clock 1 seems to be selectable
@ -616,8 +616,8 @@ MACHINE_CONFIG_START(pcjr_state::ibmpcjr)
m_pit8253->set_clk<2>(XTAL(14'318'181)/12);
m_pit8253->out_handler<2>().set(FUNC(pcjr_state::out2_changed));
MCFG_DEVICE_ADD(m_pic8259, PIC8259, 0)
MCFG_PIC8259_OUT_INT_CB(WRITELINE(*this, pcjr_state, pic8259_set_int_line))
PIC8259(config, m_pic8259, 0);
m_pic8259->out_int_callback().set(FUNC(pcjr_state::pic8259_set_int_line));
i8255_device &ppi(I8255(config, "ppi8255"));
ppi.in_pa_callback().set_constant(0xff);

View File

@ -97,7 +97,7 @@ MACHINE_CONFIG_START(if800_state::if800)
MCFG_DEVICE_IO_MAP(if800_io)
// MCFG_PIC8259_ADD( "pic8259", if800_pic8259_config )
// PIC8259(config, "pic8259", 0);
MCFG_DEVICE_ADD("upd7220", UPD7220, 8000000/4)
MCFG_DEVICE_ADDRESS_MAP(0, upd7220_map)
MCFG_UPD7220_DISPLAY_PIXELS_CALLBACK_OWNER(if800_state, hgdc_display_pixels)

View File

@ -390,11 +390,11 @@ static void iq151_cart(device_slot_interface &device)
MACHINE_CONFIG_START(iq151_state::iq151)
/* basic machine hardware */
MCFG_DEVICE_ADD("maincpu",I8080, XTAL(2'000'000))
MCFG_DEVICE_PROGRAM_MAP(iq151_mem)
MCFG_DEVICE_IO_MAP(iq151_io)
MCFG_DEVICE_VBLANK_INT_DRIVER("screen", iq151_state, iq151_vblank_interrupt)
MCFG_DEVICE_IRQ_ACKNOWLEDGE_DEVICE("pic8259", pic8259_device, inta_cb)
I8080(config, m_maincpu, XTAL(2'000'000));
m_maincpu->set_addrmap(AS_PROGRAM, &iq151_state::iq151_mem);
m_maincpu->set_addrmap(AS_IO, &iq151_state::iq151_io);
m_maincpu->set_vblank_int("screen", FUNC(iq151_state::iq151_vblank_interrupt));
m_maincpu->set_irq_acknowledge_callback("pic8259", FUNC(pic8259_device::inta_cb));
/* video hardware */
MCFG_SCREEN_ADD_MONOCHROME("screen", RASTER, rgb_t::green())
@ -412,8 +412,8 @@ MACHINE_CONFIG_START(iq151_state::iq151)
MCFG_DEVICE_ADD("speaker", SPEAKER_SOUND)
MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.50)
MCFG_DEVICE_ADD("pic8259", PIC8259, 0)
MCFG_PIC8259_OUT_INT_CB(INPUTLINE("maincpu", 0))
PIC8259(config, m_pic, 0);
m_pic->out_int_callback().set_inputline(m_maincpu, 0);
i8255_device &ppi(I8255(config, "ppi8255"));
ppi.in_pa_callback().set(FUNC(iq151_state::keyboard_row_r));
@ -431,43 +431,43 @@ MACHINE_CONFIG_START(iq151_state::iq151)
MCFG_DEVICE_ADD("slot1", IQ151CART_SLOT, 0)
MCFG_DEVICE_SLOT_INTERFACE(iq151_cart, nullptr, false)
MCFG_IQ151CART_SLOT_SCREEN_TAG("screen")
MCFG_IQ151CART_SLOT_OUT_IRQ0_CB(WRITELINE("pic8259", pic8259_device, ir0_w))
MCFG_IQ151CART_SLOT_OUT_IRQ1_CB(WRITELINE("pic8259", pic8259_device, ir1_w))
MCFG_IQ151CART_SLOT_OUT_IRQ2_CB(WRITELINE("pic8259", pic8259_device, ir2_w))
MCFG_IQ151CART_SLOT_OUT_IRQ3_CB(WRITELINE("pic8259", pic8259_device, ir3_w))
MCFG_IQ151CART_SLOT_OUT_IRQ4_CB(WRITELINE("pic8259", pic8259_device, ir4_w))
MCFG_IQ151CART_SLOT_OUT_IRQ0_CB(WRITELINE(m_pic, pic8259_device, ir0_w))
MCFG_IQ151CART_SLOT_OUT_IRQ1_CB(WRITELINE(m_pic, pic8259_device, ir1_w))
MCFG_IQ151CART_SLOT_OUT_IRQ2_CB(WRITELINE(m_pic, pic8259_device, ir2_w))
MCFG_IQ151CART_SLOT_OUT_IRQ3_CB(WRITELINE(m_pic, pic8259_device, ir3_w))
MCFG_IQ151CART_SLOT_OUT_IRQ4_CB(WRITELINE(m_pic, pic8259_device, ir4_w))
MCFG_DEVICE_ADD("slot2", IQ151CART_SLOT, 0)
MCFG_DEVICE_SLOT_INTERFACE(iq151_cart, nullptr, false)
MCFG_IQ151CART_SLOT_SCREEN_TAG("screen")
MCFG_IQ151CART_SLOT_OUT_IRQ0_CB(WRITELINE("pic8259", pic8259_device, ir0_w))
MCFG_IQ151CART_SLOT_OUT_IRQ1_CB(WRITELINE("pic8259", pic8259_device, ir1_w))
MCFG_IQ151CART_SLOT_OUT_IRQ2_CB(WRITELINE("pic8259", pic8259_device, ir2_w))
MCFG_IQ151CART_SLOT_OUT_IRQ3_CB(WRITELINE("pic8259", pic8259_device, ir3_w))
MCFG_IQ151CART_SLOT_OUT_IRQ4_CB(WRITELINE("pic8259", pic8259_device, ir4_w))
MCFG_IQ151CART_SLOT_OUT_IRQ0_CB(WRITELINE(m_pic, pic8259_device, ir0_w))
MCFG_IQ151CART_SLOT_OUT_IRQ1_CB(WRITELINE(m_pic, pic8259_device, ir1_w))
MCFG_IQ151CART_SLOT_OUT_IRQ2_CB(WRITELINE(m_pic, pic8259_device, ir2_w))
MCFG_IQ151CART_SLOT_OUT_IRQ3_CB(WRITELINE(m_pic, pic8259_device, ir3_w))
MCFG_IQ151CART_SLOT_OUT_IRQ4_CB(WRITELINE(m_pic, pic8259_device, ir4_w))
MCFG_DEVICE_ADD("slot3", IQ151CART_SLOT, 0)
MCFG_DEVICE_SLOT_INTERFACE(iq151_cart, nullptr, false)
MCFG_IQ151CART_SLOT_SCREEN_TAG("screen")
MCFG_IQ151CART_SLOT_OUT_IRQ0_CB(WRITELINE("pic8259", pic8259_device, ir0_w))
MCFG_IQ151CART_SLOT_OUT_IRQ1_CB(WRITELINE("pic8259", pic8259_device, ir1_w))
MCFG_IQ151CART_SLOT_OUT_IRQ2_CB(WRITELINE("pic8259", pic8259_device, ir2_w))
MCFG_IQ151CART_SLOT_OUT_IRQ3_CB(WRITELINE("pic8259", pic8259_device, ir3_w))
MCFG_IQ151CART_SLOT_OUT_IRQ4_CB(WRITELINE("pic8259", pic8259_device, ir4_w))
MCFG_IQ151CART_SLOT_OUT_IRQ0_CB(WRITELINE(m_pic, pic8259_device, ir0_w))
MCFG_IQ151CART_SLOT_OUT_IRQ1_CB(WRITELINE(m_pic, pic8259_device, ir1_w))
MCFG_IQ151CART_SLOT_OUT_IRQ2_CB(WRITELINE(m_pic, pic8259_device, ir2_w))
MCFG_IQ151CART_SLOT_OUT_IRQ3_CB(WRITELINE(m_pic, pic8259_device, ir3_w))
MCFG_IQ151CART_SLOT_OUT_IRQ4_CB(WRITELINE(m_pic, pic8259_device, ir4_w))
MCFG_DEVICE_ADD("slot4", IQ151CART_SLOT, 0)
MCFG_DEVICE_SLOT_INTERFACE(iq151_cart, nullptr, false)
MCFG_IQ151CART_SLOT_SCREEN_TAG("screen")
MCFG_IQ151CART_SLOT_OUT_IRQ0_CB(WRITELINE("pic8259", pic8259_device, ir0_w))
MCFG_IQ151CART_SLOT_OUT_IRQ1_CB(WRITELINE("pic8259", pic8259_device, ir1_w))
MCFG_IQ151CART_SLOT_OUT_IRQ2_CB(WRITELINE("pic8259", pic8259_device, ir2_w))
MCFG_IQ151CART_SLOT_OUT_IRQ3_CB(WRITELINE("pic8259", pic8259_device, ir3_w))
MCFG_IQ151CART_SLOT_OUT_IRQ4_CB(WRITELINE("pic8259", pic8259_device, ir4_w))
MCFG_IQ151CART_SLOT_OUT_IRQ0_CB(WRITELINE(m_pic, pic8259_device, ir0_w))
MCFG_IQ151CART_SLOT_OUT_IRQ1_CB(WRITELINE(m_pic, pic8259_device, ir1_w))
MCFG_IQ151CART_SLOT_OUT_IRQ2_CB(WRITELINE(m_pic, pic8259_device, ir2_w))
MCFG_IQ151CART_SLOT_OUT_IRQ3_CB(WRITELINE(m_pic, pic8259_device, ir3_w))
MCFG_IQ151CART_SLOT_OUT_IRQ4_CB(WRITELINE(m_pic, pic8259_device, ir4_w))
MCFG_DEVICE_ADD("slot5", IQ151CART_SLOT, 0)
MCFG_DEVICE_SLOT_INTERFACE(iq151_cart, "video32", false)
MCFG_IQ151CART_SLOT_SCREEN_TAG("screen")
MCFG_IQ151CART_SLOT_OUT_IRQ0_CB(WRITELINE("pic8259", pic8259_device, ir0_w))
MCFG_IQ151CART_SLOT_OUT_IRQ1_CB(WRITELINE("pic8259", pic8259_device, ir1_w))
MCFG_IQ151CART_SLOT_OUT_IRQ2_CB(WRITELINE("pic8259", pic8259_device, ir2_w))
MCFG_IQ151CART_SLOT_OUT_IRQ3_CB(WRITELINE("pic8259", pic8259_device, ir3_w))
MCFG_IQ151CART_SLOT_OUT_IRQ4_CB(WRITELINE("pic8259", pic8259_device, ir4_w))
MCFG_IQ151CART_SLOT_OUT_IRQ0_CB(WRITELINE(m_pic, pic8259_device, ir0_w))
MCFG_IQ151CART_SLOT_OUT_IRQ1_CB(WRITELINE(m_pic, pic8259_device, ir1_w))
MCFG_IQ151CART_SLOT_OUT_IRQ2_CB(WRITELINE(m_pic, pic8259_device, ir2_w))
MCFG_IQ151CART_SLOT_OUT_IRQ3_CB(WRITELINE(m_pic, pic8259_device, ir3_w))
MCFG_IQ151CART_SLOT_OUT_IRQ4_CB(WRITELINE(m_pic, pic8259_device, ir4_w))
/* Software lists */
MCFG_SOFTWARE_LIST_ADD("cart_list", "iq151_cart")

View File

@ -388,7 +388,7 @@ MACHINE_CONFIG_START(irisha_state::irisha)
MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.50)
/* Devices */
MCFG_DEVICE_ADD("uart", I8251, 0)
I8251(config, "uart", 0);
PIT8253(config, m_pit, 0);
m_pit->set_clk<0>(16_MHz_XTAL / 9);
@ -406,8 +406,8 @@ MACHINE_CONFIG_START(irisha_state::irisha)
ppi.in_pc_callback().set(FUNC(irisha_state::irisha_8255_portc_r));
ppi.out_pc_callback().set(FUNC(irisha_state::irisha_8255_portc_w));
MCFG_DEVICE_ADD("pic8259", PIC8259, 0)
MCFG_PIC8259_OUT_INT_CB(INPUTLINE("maincpu", 0))
pic8259_device &pic8259(PIC8259(config, "pic8259", 0));
pic8259.out_int_callback().set_inputline(m_maincpu, 0);
MACHINE_CONFIG_END
/* ROM definition */

View File

@ -481,7 +481,7 @@ MACHINE_CONFIG_START(isbc_state::isbc286)
m_uart8274->out_dtrb_callback().set("rs232b", FUNC(rs232_port_device::write_dtr));
m_uart8274->out_rtsb_callback().set("rs232b", FUNC(rs232_port_device::write_rts));
// m_uart8274->out_int_callback().set(FUNC(isbc_state::isbc_uart8274_irq));
m_uart8274->out_int_callback().set("pic_0", FUNC(pic8259_device::ir6_w));
m_uart8274->out_int_callback().set(m_pic_0, FUNC(pic8259_device::ir6_w));
#endif
rs232_port_device &rs232a(RS232_PORT(config, "rs232a", default_rs232_devices, nullptr));

View File

@ -742,8 +742,8 @@ MACHINE_CONFIG_START(m107_state::firebarr)
MCFG_DEVICE_PROGRAM_MAP(sound_map)
MCFG_V25_CONFIG(rtypeleo_decryption_table)
MCFG_DEVICE_ADD("upd71059c", PIC8259, 0)
MCFG_PIC8259_OUT_INT_CB(INPUTLINE("maincpu", 0))
PIC8259(config, m_upd71059c, 0);
m_upd71059c->out_int_callback().set_inputline(m_maincpu, 0);
MCFG_TIMER_DRIVER_ADD_SCANLINE("scantimer", m107_state, scanline_interrupt, "screen", 0, 1)
@ -772,7 +772,7 @@ MACHINE_CONFIG_START(m107_state::firebarr)
MCFG_GENERIC_LATCH_SEPARATE_ACKNOWLEDGE(true)
MCFG_GENERIC_LATCH_8_ADD("soundlatch2")
MCFG_GENERIC_LATCH_DATA_PENDING_CB(WRITELINE("upd71059c", pic8259_device, ir3_w))
MCFG_GENERIC_LATCH_DATA_PENDING_CB(WRITELINE(m_upd71059c, pic8259_device, ir3_w))
MCFG_DEVICE_ADD("ymsnd", YM2151, XTAL(14'318'181)/4)
MCFG_YM2151_IRQ_HANDLER(INPUTLINE("soundcpu", NEC_INPUT_LINE_INTP0))

View File

@ -838,8 +838,8 @@ MACHINE_CONFIG_START(m20_state::m20)
pit8253.set_clk<2>(1230782);
pit8253.out_handler<2>().set(FUNC(m20_state::timer_tick_w));
MCFG_DEVICE_ADD(m_i8259, PIC8259, 0)
MCFG_PIC8259_OUT_INT_CB(WRITELINE(*this, m20_state, int_w))
PIC8259(config, m_i8259, 0);
m_i8259->out_int_callback().set(FUNC(m20_state::int_w));
rs232_port_device &kbd(RS232_PORT(config, "kbd", keyboard, "m20"));
kbd.rxd_handler().set(m_kbdi8251, FUNC(i8251_device::write_rxd));

View File

@ -1847,8 +1847,8 @@ MACHINE_CONFIG_START(m72_state::m72_base)
MCFG_DEVICE_PROGRAM_MAP(sound_ram_map)
MCFG_DEVICE_IO_MAP(sound_portmap)
MCFG_DEVICE_ADD("upd71059c", PIC8259, 0)
MCFG_PIC8259_OUT_INT_CB(INPUTLINE("maincpu", 0))
PIC8259(config, m_upd71059c, 0);
m_upd71059c->out_int_callback().set_inputline(m_maincpu, 0);
/* video hardware */
MCFG_DEVICE_ADD("gfxdecode", GFXDECODE, "palette", gfx_m72)
@ -1878,7 +1878,7 @@ MACHINE_CONFIG_START(m72_state::m72_8751)
MCFG_DEVICE_IO_MAP(m72_protected_portmap)
MB8421_MB8431_16BIT(config, m_dpram);
//m_dpram->intl_callback().set("upd71059c", FUNC(pic8259_device::ir3_w)); // not actually used?
//m_dpram->intl_callback().set(m_upd71059c, FUNC(pic8259_device::ir3_w)); // not actually used?
m_dpram->intr_callback().set_inputline("mcu", MCS51_INT0_LINE);
MCFG_GENERIC_LATCH_8_ADD("mculatch")
@ -1983,8 +1983,8 @@ MACHINE_CONFIG_START(m72_state::rtype2)
MCFG_DEVICE_PERIODIC_INT_DRIVER(m72_state, nmi_line_pulse, 128*55) /* clocked by V1? (Vigilante) */
/* IRQs are generated by main Z80 and YM2151 */
MCFG_DEVICE_ADD("upd71059c", PIC8259, 0)
MCFG_PIC8259_OUT_INT_CB(INPUTLINE("maincpu", 0))
PIC8259(config, m_upd71059c, 0);
m_upd71059c->out_int_callback().set_inputline(m_maincpu, 0);
/* video hardware */
MCFG_DEVICE_ADD("gfxdecode", GFXDECODE, "palette", gfx_rtype2)
@ -2029,7 +2029,7 @@ MACHINE_CONFIG_START(m72_state::cosmccop)
MCFG_MACHINE_START_OVERRIDE(m72_state,kengo)
MCFG_MACHINE_RESET_OVERRIDE(m72_state,kengo)
// upd71059c isn't needed beacuse the V35 has its own IRQ controller
// upd71059c isn't needed because the V35 has its own IRQ controller
/* video hardware */
MCFG_DEVICE_ADD("gfxdecode", GFXDECODE, "palette", gfx_rtype2)
@ -2073,8 +2073,8 @@ MACHINE_CONFIG_START(m72_state::m82)
MCFG_DEVICE_PERIODIC_INT_DRIVER(m72_state, nmi_line_pulse, 128*55) /* clocked by V1? (Vigilante) */
/* IRQs are generated by main Z80 and YM2151 */
MCFG_DEVICE_ADD("upd71059c", PIC8259, 0)
MCFG_PIC8259_OUT_INT_CB(INPUTLINE("maincpu", 0))
PIC8259(config, m_upd71059c, 0);
m_upd71059c->out_int_callback().set_inputline(m_maincpu, 0);
/* video hardware */
MCFG_DEVICE_ADD("gfxdecode", GFXDECODE, "palette", gfx_majtitle)
@ -2108,8 +2108,8 @@ MACHINE_CONFIG_START(m72_state::poundfor)
MCFG_DEVICE_PERIODIC_INT_DRIVER(m72_state, fake_nmi, 128*55) /* clocked by V1? (Vigilante) */
/* IRQs are generated by main Z80 and YM2151 */
MCFG_DEVICE_ADD("upd71059c", PIC8259, 0)
MCFG_PIC8259_OUT_INT_CB(INPUTLINE("maincpu", 0))
PIC8259(config, m_upd71059c, 0);
m_upd71059c->out_int_callback().set_inputline(m_maincpu, 0);
UPD4701A(config, m_upd4701[0]);
m_upd4701[0]->set_portx_tag("TRACK0_X");

View File

@ -925,8 +925,8 @@ MACHINE_CONFIG_START(m92_state::m92)
MCFG_DEVICE_ADD("soundcpu" ,V35, XTAL(14'318'181))
MCFG_DEVICE_PROGRAM_MAP(sound_map)
MCFG_DEVICE_ADD("upd71059c", PIC8259, 0)
MCFG_PIC8259_OUT_INT_CB(INPUTLINE("maincpu", 0))
PIC8259(config, m_upd71059c, 0);
m_upd71059c->out_int_callback().set_inputline(m_maincpu, 0);
MCFG_MACHINE_RESET_OVERRIDE(m92_state,m92)
@ -957,7 +957,7 @@ MACHINE_CONFIG_START(m92_state::m92)
MCFG_GENERIC_LATCH_SEPARATE_ACKNOWLEDGE(true)
MCFG_GENERIC_LATCH_8_ADD("soundlatch2")
MCFG_GENERIC_LATCH_DATA_PENDING_CB(WRITELINE("upd71059c", pic8259_device, ir3_w))
MCFG_GENERIC_LATCH_DATA_PENDING_CB(WRITELINE(m_upd71059c, pic8259_device, ir3_w))
MCFG_DEVICE_ADD("ymsnd", YM2151, XTAL(14'318'181)/4)
MCFG_YM2151_IRQ_HANDLER(INPUTLINE("soundcpu", NEC_INPUT_LINE_INTP0))

View File

@ -243,10 +243,10 @@ static void mbc55x_floppies(device_slot_interface &device)
MACHINE_CONFIG_START(mbc55x_state::mbc55x)
/* basic machine hardware */
MCFG_DEVICE_ADD(MAINCPU_TAG, I8088, 3600000)
MCFG_DEVICE_PROGRAM_MAP(mbc55x_mem)
MCFG_DEVICE_IO_MAP(mbc55x_io)
MCFG_DEVICE_IRQ_ACKNOWLEDGE_DEVICE(PIC8259_TAG, pic8259_device, inta_cb)
I8088(config, m_maincpu, 3600000);
m_maincpu->set_addrmap(AS_PROGRAM, &mbc55x_state::mbc55x_mem);
m_maincpu->set_addrmap(AS_IO, &mbc55x_state::mbc55x_io);
m_maincpu->set_irq_acknowledge_callback(PIC8259_TAG, FUNC(pic8259_device::inta_cb));
/* video hardware */
MCFG_SCREEN_ADD(SCREEN_TAG, RASTER)
@ -267,7 +267,7 @@ MACHINE_CONFIG_START(mbc55x_state::mbc55x)
/* Devices */
I8251(config, m_kb_uart, 0);
m_kb_uart->rxrdy_handler().set(PIC8259_TAG, FUNC(pic8259_device::ir3_w));
m_kb_uart->rxrdy_handler().set(m_pic, FUNC(pic8259_device::ir3_w));
PIT8253(config, m_pit, 0);
m_pit->set_clk<0>(PIT_C0_CLOCK);
@ -277,8 +277,8 @@ MACHINE_CONFIG_START(mbc55x_state::mbc55x)
m_pit->set_clk<2>(PIT_C2_CLOCK);
m_pit->out_handler<2>().set(FUNC(mbc55x_state::pit8253_t2));
MCFG_DEVICE_ADD(PIC8259_TAG, PIC8259, 0)
MCFG_PIC8259_OUT_INT_CB(INPUTLINE(MAINCPU_TAG, INPUT_LINE_IRQ0))
PIC8259(config, m_pic, 0);
m_pic->out_int_callback().set_inputline(m_maincpu, INPUT_LINE_IRQ0);
I8255(config, m_ppi);
m_ppi->in_pa_callback().set(FUNC(mbc55x_state::mbc55x_ppi_porta_r));

View File

@ -230,10 +230,10 @@ static INPUT_PORTS_START( mc1502 )
INPUT_PORTS_END
MACHINE_CONFIG_START(mc1502_state::mc1502)
MCFG_DEVICE_ADD("maincpu", I8088, XTAL(16'000'000)/3)
MCFG_DEVICE_PROGRAM_MAP(mc1502_map)
MCFG_DEVICE_IO_MAP(mc1502_io)
MCFG_DEVICE_IRQ_ACKNOWLEDGE_DEVICE("pic8259", pic8259_device, inta_cb)
I8088(config, m_maincpu, XTAL(16'000'000)/3);
m_maincpu->set_addrmap(AS_PROGRAM, &mc1502_state::mc1502_map);
m_maincpu->set_addrmap(AS_IO, &mc1502_state::mc1502_io);
m_maincpu->set_irq_acknowledge_callback("pic8259", FUNC(pic8259_device::inta_cb));
MCFG_MACHINE_START_OVERRIDE( mc1502_state, mc1502 )
MCFG_MACHINE_RESET_OVERRIDE( mc1502_state, mc1502 )
@ -246,8 +246,8 @@ MACHINE_CONFIG_START(mc1502_state::mc1502)
m_pit8253->set_clk<2>(XTAL(16'000'000)/12); /* pio port c pin 4, and speaker polling enough */
m_pit8253->out_handler<2>().set(FUNC(mc1502_state::mc1502_pit8253_out2_changed));
MCFG_DEVICE_ADD("pic8259", PIC8259, 0)
MCFG_PIC8259_OUT_INT_CB(INPUTLINE("maincpu", 0))
PIC8259(config, m_pic8259, 0);
m_pic8259->out_int_callback().set_inputline(m_maincpu, 0);
I8255(config, m_ppi8255n1);
m_ppi8255n1->out_pa_callback().set("cent_data_out", FUNC(output_latch_device::bus_w));
@ -266,8 +266,8 @@ MACHINE_CONFIG_START(mc1502_state::mc1502)
m_upd8251->dtr_handler().set("rs232", FUNC(rs232_port_device::write_dtr));
m_upd8251->rts_handler().set("rs232", FUNC(rs232_port_device::write_rts));
/* XXX RxD data are accessible via PPI port C, bit 7 */
m_upd8251->rxrdy_handler().set("pic8259", FUNC(pic8259_device::ir7_w)); /* default handler does nothing */
m_upd8251->txrdy_handler().set("pic8259", FUNC(pic8259_device::ir7_w));
m_upd8251->rxrdy_handler().set(m_pic8259, FUNC(pic8259_device::ir7_w)); /* default handler does nothing */
m_upd8251->txrdy_handler().set(m_pic8259, FUNC(pic8259_device::ir7_w));
m_upd8251->syndet_handler().set(FUNC(mc1502_state::mc1502_i8251_syndet));
rs232_port_device &rs232(RS232_PORT(config, "rs232", default_rs232_devices, nullptr));
@ -277,12 +277,12 @@ MACHINE_CONFIG_START(mc1502_state::mc1502)
MCFG_DEVICE_ADD("isa", ISA8, 0)
MCFG_ISA8_CPU("maincpu")
MCFG_ISA_OUT_IRQ2_CB(WRITELINE("pic8259", pic8259_device, ir2_w))
MCFG_ISA_OUT_IRQ3_CB(WRITELINE("pic8259", pic8259_device, ir3_w))
MCFG_ISA_OUT_IRQ4_CB(WRITELINE("pic8259", pic8259_device, ir4_w))
MCFG_ISA_OUT_IRQ5_CB(WRITELINE("pic8259", pic8259_device, ir5_w))
MCFG_ISA_OUT_IRQ6_CB(WRITELINE("pic8259", pic8259_device, ir6_w))
MCFG_ISA_OUT_IRQ7_CB(WRITELINE("pic8259", pic8259_device, ir7_w))
MCFG_ISA_OUT_IRQ2_CB(WRITELINE(m_pic8259, pic8259_device, ir2_w))
MCFG_ISA_OUT_IRQ3_CB(WRITELINE(m_pic8259, pic8259_device, ir3_w))
MCFG_ISA_OUT_IRQ4_CB(WRITELINE(m_pic8259, pic8259_device, ir4_w))
MCFG_ISA_OUT_IRQ5_CB(WRITELINE(m_pic8259, pic8259_device, ir5_w))
MCFG_ISA_OUT_IRQ6_CB(WRITELINE(m_pic8259, pic8259_device, ir6_w))
MCFG_ISA_OUT_IRQ7_CB(WRITELINE(m_pic8259, pic8259_device, ir7_w))
MCFG_DEVICE_ADD("board0", ISA8_SLOT, 0, "isa", mc1502_isa8_cards, "cga_mc1502", true) // FIXME: determine ISA bus clock
MCFG_DEVICE_ADD("isa1", ISA8_SLOT, 0, "isa", mc1502_isa8_cards, "fdc", false)

View File

@ -224,10 +224,11 @@ static void miniframe_floppies(device_slot_interface &device)
device.option_add("525dd", FLOPPY_525_DD);
}
MACHINE_CONFIG_START(miniframe_state::miniframe)
void miniframe_state::miniframe(machine_config &config)
{
// basic machine hardware
MCFG_DEVICE_ADD("maincpu", M68010, XTAL(10'000'000))
MCFG_DEVICE_PROGRAM_MAP(miniframe_mem)
M68010(config, m_maincpu, XTAL(10'000'000));
m_maincpu->set_addrmap(AS_PROGRAM, &miniframe_state::miniframe_mem);
// internal ram
RAM(config, RAM_TAG).set_default_size("1M").set_extra_options("2M");
@ -239,7 +240,7 @@ MACHINE_CONFIG_START(miniframe_state::miniframe)
WD2797(config, m_wd2797, 1000000);
// m_wd2797->intrq_wr_callback().set(FUNC(miniframe_state::wd2797_intrq_w));
// m_wd2797->drq_wr_callback().set(FUNC(miniframe_state::wd2797_drq_w));
MCFG_FLOPPY_DRIVE_ADD("wd2797:0", miniframe_floppies, "525dd", floppy_image_device::default_floppy_formats)
FLOPPY_CONNECTOR(config, "wd2797:0", miniframe_floppies, "525dd", floppy_image_device::default_floppy_formats);
// 8263s
pit8253_device &pit8253(PIT8253(config, "pit8253", 0));
@ -257,10 +258,10 @@ MACHINE_CONFIG_START(miniframe_state::miniframe)
baudgen.set_clk<2>(1228800);
// PIC8259s
MCFG_DEVICE_ADD("pic8259", PIC8259, 0)
MCFG_PIC8259_OUT_INT_CB(INPUTLINE("maincpu", M68K_IRQ_4))
MCFG_PIC8259_IN_SP_CB(CONSTANT(1))
MACHINE_CONFIG_END
pic8259_device &pic8259(PIC8259(config, "pic8259", 0));
pic8259.out_int_callback().set_inputline(m_maincpu, M68K_IRQ_4);
pic8259.in_sp_callback().set_constant(1);
}
/***************************************************************************

View File

@ -278,11 +278,11 @@ MACHINE_CONFIG_START(mrflea_state::mrflea)
i8255_device &subppi(I8255(config, "subppi", 0));
subppi.in_pa_callback().set("mainppi", FUNC(i8255_device::pa_r));
subppi.out_pc_callback().set("mainppi", FUNC(i8255_device::pc6_w)).bit(5); // IBFA -> ACKA
subppi.out_pc_callback().append("pic", FUNC(pic8259_device::ir0_w)).bit(3); // INTRA
subppi.out_pc_callback().append(m_pic, FUNC(pic8259_device::ir0_w)).bit(3); // INTRA
subppi.out_pc_callback().append("mainppi", FUNC(i8255_device::pc2_w)).bit(1); // OBFB -> STBB
MCFG_DEVICE_ADD("pic", PIC8259, 0)
MCFG_PIC8259_OUT_INT_CB(INPUTLINE("subcpu", 0))
PIC8259(config, m_pic, 0);
m_pic->out_int_callback().set_inputline(m_subcpu, 0);
/* video hardware */
MCFG_SCREEN_ADD("screen", RASTER)

View File

@ -140,10 +140,10 @@ void multi16_state::machine_reset()
MACHINE_CONFIG_START(multi16_state::multi16)
/* basic machine hardware */
MCFG_DEVICE_ADD("maincpu", I8086, 8000000)
MCFG_DEVICE_PROGRAM_MAP(multi16_map)
MCFG_DEVICE_IO_MAP(multi16_io)
MCFG_DEVICE_IRQ_ACKNOWLEDGE_DEVICE("pic8259", pic8259_device, inta_cb)
I8086(config, m_maincpu, 8000000);
m_maincpu->set_addrmap(AS_PROGRAM, &multi16_state::multi16_map);
m_maincpu->set_addrmap(AS_IO, &multi16_state::multi16_io);
m_maincpu->set_irq_acknowledge_callback("pic8259", FUNC(pic8259_device::inta_cb));
/* video hardware */
MCFG_SCREEN_ADD("screen", RASTER)
@ -161,8 +161,8 @@ MACHINE_CONFIG_START(multi16_state::multi16)
MCFG_MC6845_SHOW_BORDER_AREA(false)
MCFG_MC6845_CHAR_WIDTH(8)
MCFG_DEVICE_ADD("pic8259", PIC8259, 0)
MCFG_PIC8259_OUT_INT_CB(INPUTLINE("maincpu", 0))
PIC8259(config, m_pic, 0);
m_pic->out_int_callback().set_inputline(m_maincpu, 0);
MACHINE_CONFIG_END
/* ROM definition */

View File

@ -932,17 +932,17 @@ static void stepone_isa_cards(device_slot_interface &device)
MACHINE_CONFIG_START(myb3k_state::myb3k)
/* basic machine hardware */
MCFG_DEVICE_ADD("maincpu", I8088, XTAL(14'318'181) / 3) /* 14.3182 main crystal divided by three through a 8284A */
MCFG_DEVICE_PROGRAM_MAP(myb3k_map)
MCFG_DEVICE_IO_MAP(myb3k_io)
MCFG_DEVICE_IRQ_ACKNOWLEDGE_DEVICE("pic", pic8259_device, inta_cb)
I8088(config, m_maincpu, XTAL(14'318'181) / 3); /* 14.3182 main crystal divided by three through a 8284A */
m_maincpu->set_addrmap(AS_PROGRAM, &myb3k_state::myb3k_map);
m_maincpu->set_addrmap(AS_IO, &myb3k_state::myb3k_io);
m_maincpu->set_irq_acknowledge_callback("pic8259", FUNC(pic8259_device::inta_cb));
/* RAM options */
RAM(config, RAM_TAG).set_default_size("256K").set_extra_options("128K, 256K");
/* Interrupt controller */
MCFG_DEVICE_ADD("pic", PIC8259, 0)
MCFG_PIC8259_OUT_INT_CB(WRITELINE(*this, myb3k_state, pic_int_w))
PIC8259(config, m_pic8259, 0);
m_pic8259->out_int_callback().set(FUNC(myb3k_state::pic_int_w));
/* Parallel port */
I8255A(config, m_ppi8255);
@ -987,11 +987,11 @@ MACHINE_CONFIG_START(myb3k_state::myb3k)
/* ISA8+ Expansion bus */
MCFG_DEVICE_ADD("isa", ISA8, 0)
MCFG_ISA8_CPU("maincpu")
MCFG_ISA_OUT_IRQ2_CB(WRITELINE("pic", pic8259_device, ir2_w))
MCFG_ISA_OUT_IRQ3_CB(WRITELINE("pic", pic8259_device, ir3_w))
MCFG_ISA_OUT_IRQ4_CB(WRITELINE("pic", pic8259_device, ir4_w))
MCFG_ISA_OUT_IRQ2_CB(WRITELINE(m_pic8259, pic8259_device, ir2_w))
MCFG_ISA_OUT_IRQ3_CB(WRITELINE(m_pic8259, pic8259_device, ir3_w))
MCFG_ISA_OUT_IRQ4_CB(WRITELINE(m_pic8259, pic8259_device, ir4_w))
MCFG_ISA_OUT_IRQ5_CB(WRITELINE(*this, myb3k_state, isa_irq5_w)) // Jumper J4 selectable
MCFG_ISA_OUT_IRQ6_CB(WRITELINE("pic", pic8259_device, ir6_w))
MCFG_ISA_OUT_IRQ6_CB(WRITELINE(m_pic8259, pic8259_device, ir6_w))
MCFG_ISA_OUT_IRQ7_CB(WRITELINE(*this, myb3k_state, isa_irq7_w)) // Jumper J5 selectable
//MCFG_ISA_OUT_DRQ0_CB(WRITELINE("dma", i8257_device, dreq0_w)) // Part of ISA16 but not ISA8 standard but implemented on ISA8 B8 (SRDY) on this motherboard
MCFG_ISA_OUT_DRQ1_CB(WRITELINE("dma", i8257_device, dreq1_w))

View File

@ -800,24 +800,23 @@ INPUT_PORTS_END
MACHINE_CONFIG_START(notetaker_state::notetakr)
/* basic machine hardware */
/* IO CPU: 8086@8MHz */
MCFG_DEVICE_ADD("iop_cpu", I8086, 24_MHz_XTAL / 3) /* iD8086-2 @ E4A; 24Mhz crystal divided down to 8Mhz by i8284 clock generator */
MCFG_DEVICE_PROGRAM_MAP(iop_mem)
MCFG_DEVICE_IO_MAP(iop_io)
MCFG_DEVICE_IRQ_ACKNOWLEDGE_DEVICE("iop_pic8259", pic8259_device, inta_cb)
I8086(config, m_iop_cpu, 24_MHz_XTAL / 3); /* iD8086-2 @ E4A; 24Mhz crystal divided down to 8Mhz by i8284 clock generator */
m_iop_cpu->set_addrmap(AS_PROGRAM, &notetaker_state::iop_mem);
m_iop_cpu->set_addrmap(AS_IO, &notetaker_state::iop_io);
m_iop_cpu->set_irq_acknowledge_callback("iop_pic8259", FUNC(pic8259_device::inta_cb));
MCFG_DEVICE_ADD("iop_pic8259", PIC8259, 0) // iP8259A-2 @ E6
MCFG_PIC8259_OUT_INT_CB(INPUTLINE("iop_cpu", 0))
PIC8259(config, m_iop_pic, 0); // iP8259A-2 @ E6
m_iop_pic->out_int_callback().set_inputline(m_iop_cpu, 0);
/* Emulator CPU: 8086@5MHz */
MCFG_DEVICE_ADD("ep_cpu", I8086, 15_MHz_XTAL / 3)
MCFG_DEVICE_DISABLE() // TODO: implement the cpu control bits so this doesn't execute garbage/zeroes before its firmware gets loaded
MCFG_DEVICE_PROGRAM_MAP(ep_mem)
MCFG_DEVICE_IO_MAP(ep_io)
MCFG_DEVICE_IRQ_ACKNOWLEDGE_DEVICE("ep_pic8259", pic8259_device, inta_cb)
MCFG_DEVICE_ADD("ep_pic8259", PIC8259, 0) // iP8259A-2 @ E6
MCFG_PIC8259_OUT_INT_CB(INPUTLINE("ep_cpu", 0))
I8086(config, m_ep_cpu, 15_MHz_XTAL / 3);
m_ep_cpu->set_disable(); // TODO: implement the cpu control bits so this doesn't execute garbage/zeroes before its firmware gets loaded
m_ep_cpu->set_addrmap(AS_PROGRAM, &notetaker_state::ep_mem);
m_ep_cpu->set_addrmap(AS_IO, &notetaker_state::ep_io);
m_ep_cpu->set_irq_acknowledge_callback("ep_pic8259", FUNC(pic8259_device::inta_cb));
PIC8259(config, m_ep_pic, 0); // iP8259A-2 @ E6
m_ep_pic->out_int_callback().set_inputline(m_ep_cpu, 0);
/* video hardware */
MCFG_SCREEN_ADD("screen", RASTER)
@ -843,18 +842,18 @@ MACHINE_CONFIG_START(notetaker_state::notetakr)
// TODO: for now, we just hack it to the latter setting from start; this should be handled correctly in iop_reset();
m_crtc->set_char_width(8); //(8 pixels per column/halfword, 16 pixels per fullword)
// TODO: below is HACKED to trigger the odd/even int ir4 instead of vblank int ir7 since ir4 is required for anything to be drawn to screen! hence with the hack this interrupt triggers twice as often as it should
m_crtc->vsyn_callback().set("iop_pic8259", FUNC(pic8259_device::ir4_w)); // note this triggers interrupts on both the iop (ir7) and emulatorcpu (ir4)
m_crtc->vsyn_callback().set(m_iop_pic, FUNC(pic8259_device::ir4_w)); // note this triggers interrupts on both the iop (ir7) and emulatorcpu (ir4)
m_crtc->set_screen("screen");
AY31015(config, m_kbduart); // HD6402, == AY-3-1015D
m_kbduart->set_rx_clock(960_kHz_XTAL); // hard-wired to 960KHz xtal #f11 (60000 baud, 16 clocks per baud)
m_kbduart->set_tx_clock(960_kHz_XTAL); // hard-wired to 960KHz xtal #f11 (60000 baud, 16 clocks per baud)
m_kbduart->write_dav_callback().set("iop_pic8259", FUNC(pic8259_device::ir6_w)); // DataRecvd = KbdInt
m_kbduart->write_dav_callback().set(m_iop_pic, FUNC(pic8259_device::ir6_w)); // DataRecvd = KbdInt
AY31015(config, m_eiauart); // HD6402, == AY-3-1015D
m_eiauart->set_rx_clock(((960_kHz_XTAL/10)/4)/5); // hard-wired through an mc14568b divider set to divide by 4, the result set to divide by 5; this resulting 4800hz signal being 300 baud (16 clocks per baud)
m_eiauart->set_tx_clock(((960_kHz_XTAL/10)/4)/5); // hard-wired through an mc14568b divider set to divide by 4, the result set to divide by 5; this resulting 4800hz signal being 300 baud (16 clocks per baud)
m_eiauart->write_dav_callback().set("iop_pic8259", FUNC(pic8259_device::ir3_w)); // EIADataReady = EIAInt
m_eiauart->write_dav_callback().set(m_iop_pic, FUNC(pic8259_device::ir3_w)); // EIADataReady = EIAInt
/* Floppy */
FD1791(config, m_fdc, (((24_MHz_XTAL/3)/2)/2)); // 2mhz, from 24mhz ip clock divided by 6 via 8284, an additional 2 by LS161 at #e1 on display/floppy board

View File

@ -511,8 +511,8 @@ MACHINE_CONFIG_START( olyboss_state::bossb85 )
/* devices */
MCFG_DEVICE_ADD("pic", PIC8259, 0)
MCFG_PIC8259_OUT_INT_CB(INPUTLINE("maincpu", 0))
PIC8259(config, m_pic, 0);
m_pic->out_int_callback().set_inputline(m_maincpu, 0);
UPD765A(config, m_fdc, true, true);
m_fdc->intrq_wr_callback().set_inputline(m_maincpu, I8085_RST65_LINE);

View File

@ -339,7 +339,7 @@ WRITE8_MEMBER( pc100_state::pc100_crtc_data_w )
void pc100_state::pc100_io(address_map &map)
{
map.global_mask(0xff);
map(0x00, 0x03).rw("pic8259", FUNC(pic8259_device::read), FUNC(pic8259_device::write)).umask16(0x00ff); // i8259
map(0x00, 0x03).rw(m_pic, FUNC(pic8259_device::read), FUNC(pic8259_device::write)).umask16(0x00ff); // i8259
// AM_RANGE(0x04, 0x07) i8237?
map(0x08, 0x0b).m(m_fdc, FUNC(upd765a_device::map)).umask16(0x00ff); // upd765
map(0x10, 0x17).rw("ppi8255_1", FUNC(i8255_device::read), FUNC(i8255_device::write)).umask16(0x00ff); // i8255 #1
@ -636,11 +636,11 @@ static void pc100_floppies(device_slot_interface &device)
MACHINE_CONFIG_START(pc100_state::pc100)
/* basic machine hardware */
MCFG_DEVICE_ADD("maincpu", I8086, MASTER_CLOCK)
MCFG_DEVICE_PROGRAM_MAP(pc100_map)
MCFG_DEVICE_IO_MAP(pc100_io)
MCFG_DEVICE_VBLANK_INT_DRIVER("screen", pc100_state, pc100_vblank_irq)
MCFG_DEVICE_IRQ_ACKNOWLEDGE_DEVICE("pic8259", pic8259_device, inta_cb)
I8086(config, m_maincpu, MASTER_CLOCK);
m_maincpu->set_addrmap(AS_PROGRAM, &pc100_state::pc100_map);
m_maincpu->set_addrmap(AS_IO, &pc100_state::pc100_io);
m_maincpu->set_vblank_int("screen", FUNC(pc100_state::pc100_vblank_irq));
m_maincpu->set_irq_acknowledge_callback("pic8259", FUNC(pic8259_device::inta_cb));
MCFG_TIMER_DRIVER_ADD_PERIODIC("600hz", pc100_state, pc100_600hz_irq, attotime::from_hz(MASTER_CLOCK/600))
MCFG_TIMER_DRIVER_ADD_PERIODIC("100hz", pc100_state, pc100_100hz_irq, attotime::from_hz(MASTER_CLOCK/100))
@ -657,15 +657,15 @@ MACHINE_CONFIG_START(pc100_state::pc100)
ppi2.out_pb_callback().set(FUNC(pc100_state::upper_mask_w));
ppi2.out_pc_callback().set(FUNC(pc100_state::crtc_bank_w));
MCFG_DEVICE_ADD("pic8259", PIC8259, 0)
MCFG_PIC8259_OUT_INT_CB(INPUTLINE("maincpu", 0))
MCFG_PIC8259_IN_SP_CB(CONSTANT(0)) // ???
PIC8259(config, m_pic, 0);
m_pic->out_int_callback().set_inputline(m_maincpu, 0);
m_pic->in_sp_callback().set_constant(0); // ???
i8251_device &i8251(I8251(config, "uart8251", 0));
//i8251.txd_handler().set("rs232", FUNC(rs232_port_device::write_txd));
//i8251.dtr_handler().set("rs232", FUNC(rs232_port_device::write_dtr));
//i8251.rts_handler().set("rs232", FUNC(rs232_port_device::write_rts));
i8251.rxrdy_handler().set("pic8259", FUNC(pic8259_device::ir1_w));
i8251.rxrdy_handler().set(m_pic, FUNC(pic8259_device::ir1_w));
UPD765A(config, m_fdc, true, true);
m_fdc->intrq_wr_callback().set(FUNC(pc100_state::irqnmi_w));

View File

@ -508,13 +508,13 @@ MACHINE_CONFIG_START(pcd_state::pcd)
MCFG_TIMER_DRIVER_ADD_PERIODIC("timer0_tick", pcd_state, timer0_tick, attotime::from_hz(16_MHz_XTAL / 24)) // adjusted to pass post
MCFG_DEVICE_ADD(m_pic1, PIC8259, 0)
MCFG_PIC8259_OUT_INT_CB(WRITELINE("maincpu", i80186_cpu_device, int0_w))
PIC8259(config, m_pic1, 0);
m_pic1->out_int_callback().set(m_maincpu, FUNC(i80186_cpu_device::int0_w));
MCFG_DEVICE_ADD(m_pic2, PIC8259, 0)
MCFG_PIC8259_OUT_INT_CB(WRITELINE("maincpu", i80186_cpu_device, int1_w))
PIC8259(config, m_pic2, 0);
m_pic2->out_int_callback().set(m_maincpu, FUNC(i80186_cpu_device::int1_w));
MCFG_DEVICE_ADD("video", PCD_VIDEO, 0)
PCD_VIDEO(config, "video", 0);
RAM(config, RAM_TAG).set_default_size("1M");

View File

@ -244,10 +244,10 @@ DEVICE_INPUT_DEFAULTS_END
MACHINE_CONFIG_START(peoplepc_state::olypeopl)
/* basic machine hardware */
MCFG_DEVICE_ADD("maincpu", I8086, XTAL(14'745'600)/3)
MCFG_DEVICE_PROGRAM_MAP(peoplepc_map)
MCFG_DEVICE_IO_MAP(peoplepc_io)
MCFG_DEVICE_IRQ_ACKNOWLEDGE_DEVICE("pic8259_0", pic8259_device, inta_cb)
I8086(config, m_maincpu, XTAL(14'745'600)/3);
m_maincpu->set_addrmap(AS_PROGRAM, &peoplepc_state::peoplepc_map);
m_maincpu->set_addrmap(AS_IO, &peoplepc_state::peoplepc_io);
m_maincpu->set_irq_acknowledge_callback("pic8259_0", FUNC(pic8259_device::inta_cb));
pit8253_device &pit8253(PIT8253(config, "pit8253", 0));
pit8253.set_clk<0>(XTAL(14'745'600)/6);
@ -257,16 +257,16 @@ MACHINE_CONFIG_START(peoplepc_state::olypeopl)
pit8253.set_clk<2>(XTAL(14'745'600)/6);
pit8253.out_handler<2>().set("pic8259_0", FUNC(pic8259_device::ir0_w));
MCFG_DEVICE_ADD("pic8259_0", PIC8259, 0)
MCFG_PIC8259_OUT_INT_CB(INPUTLINE("maincpu", 0))
MCFG_PIC8259_IN_SP_CB(CONSTANT(1))
MCFG_PIC8259_CASCADE_ACK_CB(READ8(*this, peoplepc_state, get_slave_ack))
pic8259_device &pic8259_0(PIC8259(config, "pic8259_0", 0));
pic8259_0.out_int_callback().set_inputline(m_maincpu, 0);
pic8259_0.in_sp_callback().set_constant(1);
pic8259_0.read_slave_ack_callback().set(FUNC(peoplepc_state::get_slave_ack));
MCFG_DEVICE_ADD("pic8259_1", PIC8259, 0)
MCFG_PIC8259_OUT_INT_CB(WRITELINE("pic8259_0", pic8259_device, ir7_w))
MCFG_PIC8259_IN_SP_CB(CONSTANT(0))
PIC8259(config, m_pic_1, 0);
m_pic_1->out_int_callback().set("pic8259_0", FUNC(pic8259_device::ir7_w));
m_pic_1->in_sp_callback().set_constant(0);
MCFG_DEVICE_ADD("ppi8255", I8255, 0)
I8255(config, "ppi8255");
MCFG_SCREEN_ADD_MONOCHROME("screen", RASTER, rgb_t::green())
MCFG_SCREEN_RAW_PARAMS(XTAL(22'000'000),640,0,640,475,0,475)

View File

@ -427,9 +427,9 @@ MACHINE_CONFIG_START(pg685_state::pg675)
MCFG_DEVICE_PROGRAM_MAP(pg675_mem)
MCFG_DEVICE_IRQ_ACKNOWLEDGE_DEVICE("mainpic", pic8259_device, inta_cb)
MCFG_DEVICE_ADD("mainpic", PIC8259, 0)
MCFG_PIC8259_OUT_INT_CB(INPUTLINE("maincpu", 0))
MCFG_PIC8259_IN_SP_CB(CONSTANT(1))
pic8259_device &mainpic(PIC8259(config, "mainpic", 0));
mainpic.out_int_callback().set_inputline(m_maincpu, 0);
mainpic.in_sp_callback().set_constant(1);
// i/o cpu
@ -476,9 +476,9 @@ MACHINE_CONFIG_START(pg685_state::pg685)
MCFG_DEVICE_PROGRAM_MAP(pg685_mem)
MCFG_DEVICE_IRQ_ACKNOWLEDGE_DEVICE("mainpic", pic8259_device, inta_cb)
MCFG_DEVICE_ADD("mainpic", PIC8259, 0)
MCFG_PIC8259_OUT_INT_CB(INPUTLINE("maincpu", 0))
MCFG_PIC8259_IN_SP_CB(CONSTANT(1))
pic8259_device &mainpic(PIC8259(config, "mainpic", 0));
mainpic.out_int_callback().set_inputline(m_maincpu, 0);
mainpic.in_sp_callback().set_constant(1);
// i/o cpu
@ -527,9 +527,9 @@ MACHINE_CONFIG_START(pg685_state::pg685oua12)
MCFG_DEVICE_PROGRAM_MAP(pg685oua12_mem)
MCFG_DEVICE_IRQ_ACKNOWLEDGE_DEVICE("mainpic", pic8259_device, inta_cb)
MCFG_DEVICE_ADD("mainpic", PIC8259, 0)
MCFG_PIC8259_OUT_INT_CB(INPUTLINE("maincpu", 0))
MCFG_PIC8259_IN_SP_CB(CONSTANT(1))
pic8259_device &mainpic(PIC8259(config, "mainpic", 0));
mainpic.out_int_callback().set_inputline(m_maincpu, 0);
mainpic.in_sp_callback().set_constant(1);
// i/o cpu

View File

@ -230,13 +230,13 @@ MACHINE_CONFIG_START(pk8020_state::pk8020)
m_pit8253->set_clk<2>((20_MHz_XTAL / 8) / 164);
m_pit8253->out_handler<2>().set(m_pic8259, FUNC(pic8259_device::ir5_w));
MCFG_DEVICE_ADD("pic8259", PIC8259, 0)
MCFG_PIC8259_OUT_INT_CB(INPUTLINE("maincpu", 0))
PIC8259(config, m_pic8259, 0);
m_pic8259->out_int_callback().set_inputline(m_maincpu, 0);
I8251(config, m_rs232, 0);
m_rs232->txd_handler().set("rs232", FUNC(rs232_port_device::write_txd));
m_rs232->rxrdy_handler().set("pic8259", FUNC(pic8259_device::ir1_w));
m_rs232->txrdy_handler().set("pic8259", FUNC(pic8259_device::ir2_w));
m_rs232->rxrdy_handler().set(m_pic8259, FUNC(pic8259_device::ir1_w));
m_rs232->txrdy_handler().set(m_pic8259, FUNC(pic8259_device::ir2_w));
rs232_port_device &rs232(RS232_PORT(config, "rs232", default_rs232_devices, nullptr));
rs232.rxd_handler().set(m_rs232, FUNC(i8251_device::write_rxd));

View File

@ -647,10 +647,10 @@ INPUT_PORTS_END
MACHINE_CONFIG_START(p1_state::poisk1)
/* basic machine hardware */
MCFG_DEVICE_ADD("maincpu", I8088, 5000000)
MCFG_DEVICE_PROGRAM_MAP(poisk1_map)
MCFG_DEVICE_IO_MAP(poisk1_io)
MCFG_DEVICE_IRQ_ACKNOWLEDGE_DEVICE("pic8259", pic8259_device, inta_cb)
I8088(config, m_maincpu, 5000000);
m_maincpu->set_addrmap(AS_PROGRAM, &p1_state::poisk1_map);
m_maincpu->set_addrmap(AS_IO, &p1_state::poisk1_io);
m_maincpu->set_irq_acknowledge_callback("pic8259", FUNC(pic8259_device::inta_cb));
MCFG_MACHINE_START_OVERRIDE( p1_state, poisk1 )
MCFG_MACHINE_RESET_OVERRIDE( p1_state, poisk1 )
@ -663,8 +663,8 @@ MACHINE_CONFIG_START(p1_state::poisk1)
m_pit8253->set_clk<2>(XTAL(15'000'000)/12); /* pio port c pin 4, and speaker polling enough */
m_pit8253->out_handler<2>().set(FUNC(p1_state::p1_pit8253_out2_changed));
MCFG_DEVICE_ADD("pic8259", PIC8259, 0)
MCFG_PIC8259_OUT_INT_CB(INPUTLINE("maincpu", 0))
PIC8259(config, m_pic8259, 0);
m_pic8259->out_int_callback().set_inputline(m_maincpu, 0);
I8255A(config, m_ppi8255n1);
m_ppi8255n1->in_pa_callback().set(FUNC(p1_state::p1_ppi_porta_r)); /*60H*/
@ -680,11 +680,11 @@ MACHINE_CONFIG_START(p1_state::poisk1)
MCFG_DEVICE_ADD("isa", ISA8, 0)
MCFG_ISA8_CPU("maincpu")
MCFG_ISA_OUT_IRQ2_CB(WRITELINE("pic8259", pic8259_device, ir2_w))
MCFG_ISA_OUT_IRQ3_CB(WRITELINE("pic8259", pic8259_device, ir3_w))
MCFG_ISA_OUT_IRQ4_CB(WRITELINE("pic8259", pic8259_device, ir4_w))
MCFG_ISA_OUT_IRQ5_CB(WRITELINE("pic8259", pic8259_device, ir5_w))
MCFG_ISA_OUT_IRQ7_CB(WRITELINE("pic8259", pic8259_device, ir7_w))
MCFG_ISA_OUT_IRQ2_CB(WRITELINE(m_pic8259, pic8259_device, ir2_w))
MCFG_ISA_OUT_IRQ3_CB(WRITELINE(m_pic8259, pic8259_device, ir3_w))
MCFG_ISA_OUT_IRQ4_CB(WRITELINE(m_pic8259, pic8259_device, ir4_w))
MCFG_ISA_OUT_IRQ5_CB(WRITELINE(m_pic8259, pic8259_device, ir5_w))
MCFG_ISA_OUT_IRQ7_CB(WRITELINE(m_pic8259, pic8259_device, ir7_w))
MCFG_DEVICE_ADD("isa1", ISA8_SLOT, 0, "isa", p1_isa8_cards, "fdc", false) // FIXME: determine ISA bus clock
MCFG_DEVICE_ADD("isa2", ISA8_SLOT, 0, "isa", p1_isa8_cards, nullptr, false)
MCFG_DEVICE_ADD("isa3", ISA8_SLOT, 0, "isa", p1_isa8_cards, nullptr, false)

View File

@ -540,8 +540,8 @@ MACHINE_CONFIG_START(rc759_state::rc759)
MCFG_80186_TMROUT1_HANDLER(WRITELINE(*this, rc759_state, i186_timer1_w))
// interrupt controller
MCFG_DEVICE_ADD("pic", PIC8259, 0)
MCFG_PIC8259_OUT_INT_CB(WRITELINE("maincpu", i80186_cpu_device, int0_w))
PIC8259(config, m_pic, 0);
m_pic->out_int_callback().set(m_maincpu, FUNC(i80186_cpu_device::int0_w));
// nvram
NVRAM(config, "nvram").set_custom_handler(FUNC(rc759_state::nvram_init));
@ -554,7 +554,7 @@ MACHINE_CONFIG_START(rc759_state::rc759)
// rtc
MCFG_DEVICE_ADD("rtc", MM58167, 32.768_kHz_XTAL)
MCFG_MM58167_IRQ_CALLBACK(WRITELINE("pic", pic8259_device, ir3_w))
MCFG_MM58167_IRQ_CALLBACK(WRITELINE(m_pic, pic8259_device, ir3_w))
// video
MCFG_SCREEN_ADD("screen", RASTER)
@ -564,7 +564,7 @@ MACHINE_CONFIG_START(rc759_state::rc759)
MCFG_I82730_ADD("txt", "maincpu", 1250000)
MCFG_VIDEO_SET_SCREEN("screen")
MCFG_I82730_UPDATE_ROW_CB(rc759_state, txt_update_row)
MCFG_I82730_SINT_HANDLER(WRITELINE("pic", pic8259_device, ir4_w))
MCFG_I82730_SINT_HANDLER(WRITELINE(m_pic, pic8259_device, ir4_w))
// keyboard
MCFG_DEVICE_ADD("keyb", GENERIC_KEYBOARD, 0)

View File

@ -414,8 +414,8 @@ MACHINE_CONFIG_START(sage2_state::sage2)
MCFG_DEVICE_PROGRAM_MAP(sage2_mem)
// devices
MCFG_DEVICE_ADD(I8259_TAG, PIC8259, 0)
MCFG_PIC8259_OUT_INT_CB(INPUTLINE(M68000_TAG, M68K_IRQ_1))
PIC8259(config, m_pic, 0);
m_pic->out_int_callback().set_inputline(m_maincpu, M68K_IRQ_1);
i8255_device &ppi0(I8255A(config, I8255A_0_TAG));
ppi0.in_pa_callback().set_ioport("J7");
@ -448,7 +448,7 @@ MACHINE_CONFIG_START(sage2_state::sage2)
m_usart0->dtr_handler().set(RS232_A_TAG, FUNC(rs232_port_device::write_dtr));
m_usart0->rts_handler().set(RS232_A_TAG, FUNC(rs232_port_device::write_rts));
m_usart0->rxrdy_handler().set_inputline(M68000_TAG, M68K_IRQ_5);
m_usart0->txrdy_handler().set(I8259_TAG, FUNC(pic8259_device::ir2_w));
m_usart0->txrdy_handler().set(m_pic, FUNC(pic8259_device::ir2_w));
rs232_port_device &rs232a(RS232_PORT(config, RS232_A_TAG, default_rs232_devices, "terminal"));
rs232a.rxd_handler().set(m_usart0, FUNC(i8251_device::write_rxd));
@ -460,8 +460,8 @@ MACHINE_CONFIG_START(sage2_state::sage2)
m_usart1->txd_handler().set(RS232_B_TAG, FUNC(rs232_port_device::write_txd));
m_usart1->dtr_handler().set(RS232_B_TAG, FUNC(rs232_port_device::write_dtr));
m_usart1->rts_handler().set(RS232_B_TAG, FUNC(rs232_port_device::write_rts));
m_usart1->rxrdy_handler().set(I8259_TAG, FUNC(pic8259_device::ir1_w));
m_usart1->txrdy_handler().set(I8259_TAG, FUNC(pic8259_device::ir3_w));
m_usart1->rxrdy_handler().set(m_pic, FUNC(pic8259_device::ir1_w));
m_usart1->txrdy_handler().set(m_pic, FUNC(pic8259_device::ir3_w));
rs232_port_device &rs232b(RS232_PORT(config, RS232_B_TAG, default_rs232_devices, nullptr));
rs232b.rxd_handler().set(m_usart1, FUNC(i8251_device::write_rxd));

View File

@ -373,15 +373,15 @@ MACHINE_CONFIG_START(sm7238_state::sm7238)
MCFG_SCREEN_ADD("screen", RASTER)
MCFG_SCREEN_RAW_PARAMS(20.625_MHz_XTAL, KSM_TOTAL_HORZ, 0, KSM_DISP_HORZ, KSM_TOTAL_VERT, 0, KSM_DISP_VERT);
MCFG_SCREEN_UPDATE_DRIVER(sm7238_state, screen_update)
MCFG_SCREEN_VBLANK_CALLBACK(WRITELINE("pic8259", pic8259_device, ir2_w))
MCFG_SCREEN_VBLANK_CALLBACK(WRITELINE(m_pic8259, pic8259_device, ir2_w))
MCFG_SCREEN_PALETTE("palette")
MCFG_PALETTE_ADD("palette", 3)
MCFG_PALETTE_INIT_OWNER(sm7238_state, sm7238)
MCFG_DEVICE_ADD("gfxdecode", GFXDECODE, "palette", gfx_sm7238)
MCFG_DEVICE_ADD("pic8259", PIC8259, 0)
MCFG_PIC8259_OUT_INT_CB(INPUTLINE("maincpu", 0))
PIC8259(config, m_pic8259, 0);
m_pic8259->out_int_callback().set_inputline(m_maincpu, 0);
PIT8253(config, m_t_hblank, 0);
m_t_hblank->set_clk<1>(16.384_MHz_XTAL/9); // XXX workaround -- keyboard is slower and doesn't sync otherwise

View File

@ -845,11 +845,11 @@ MACHINE_CONFIG_START(tandy2k_state::tandy2k)
//m_pit->set_clk<2>(16_MHz_XTAL / 8);
//m_pit->out_handler<2>().set(FUNC(tandy2k_state::rfrqpulse_w));
MCFG_DEVICE_ADD(I8259A_0_TAG, PIC8259, 0)
MCFG_PIC8259_OUT_INT_CB(WRITELINE(I80186_TAG, i80186_cpu_device, int0_w))
PIC8259(config, m_pic0, 0);
m_pic0->out_int_callback().set(m_maincpu, FUNC(i80186_cpu_device::int0_w));
MCFG_DEVICE_ADD(I8259A_1_TAG, PIC8259, 0)
MCFG_PIC8259_OUT_INT_CB(WRITELINE(I80186_TAG, i80186_cpu_device, int1_w))
PIC8259(config, m_pic1, 0);
m_pic1->out_int_callback().set(m_maincpu, FUNC(i80186_cpu_device::int1_w));
I8272A(config, m_fdc, true);
m_fdc->set_select_lines_connected(true);

View File

@ -372,10 +372,10 @@ INPUT_PORTS_END
MACHINE_CONFIG_START(tsispch_state::prose2k)
/* basic machine hardware */
/* There are two crystals on the board: a 24MHz xtal at Y2 and a 16MHz xtal at Y1 */
MCFG_DEVICE_ADD("maincpu", I8086, 8000000) /* VERIFIED clock, unknown divider */
MCFG_DEVICE_PROGRAM_MAP(i8086_mem)
MCFG_DEVICE_IO_MAP(i8086_io)
MCFG_DEVICE_IRQ_ACKNOWLEDGE_DEVICE("pic8259", pic8259_device, inta_cb)
I8086(config, m_maincpu, 8000000); /* VERIFIED clock, unknown divider */
m_maincpu->set_addrmap(AS_PROGRAM, &tsispch_state::i8086_mem);
m_maincpu->set_addrmap(AS_IO, &tsispch_state::i8086_io);
m_maincpu->set_irq_acknowledge_callback("pic8259", FUNC(pic8259_device::inta_cb));
/* TODO: the UPD7720 has a 10KHz clock to its INT pin */
/* TODO: the UPD7720 has a 2MHz clock to its SCK pin */
@ -387,8 +387,8 @@ MACHINE_CONFIG_START(tsispch_state::prose2k)
MCFG_NECDSP_OUT_P1_CB(WRITELINE(*this, tsispch_state, dsp_to_8086_p1_w))
/* PIC 8259 */
MCFG_DEVICE_ADD("pic8259", PIC8259, 0)
MCFG_PIC8259_OUT_INT_CB(INPUTLINE("maincpu", 0))
PIC8259(config, m_pic, 0);
m_pic->out_int_callback().set_inputline(m_maincpu, 0);
/* uarts */
i8251_device &u15(I8251(config, "i8251a_u15", 0));

View File

@ -438,7 +438,7 @@ INPUT_CHANGED_MEMBER(z100_state::key_stroke)
{
/* TODO: table */
m_keyb_press = (uint8_t)(uintptr_t)(param) & 0xff;
//pic8259_ir6_w(m_picm, 1);
//m_picm->ir6_w(1);
m_keyb_status = 1;
}
@ -676,10 +676,10 @@ static void z100_floppies(device_slot_interface &device)
MACHINE_CONFIG_START(z100_state::z100)
/* basic machine hardware */
MCFG_DEVICE_ADD("maincpu", I8088, 14.318181_MHz_XTAL / 3)
MCFG_DEVICE_PROGRAM_MAP(z100_mem)
MCFG_DEVICE_IO_MAP(z100_io)
MCFG_DEVICE_IRQ_ACKNOWLEDGE_DEVICE("pic8259_master", pic8259_device, inta_cb)
I8088(config, m_maincpu, 14.318181_MHz_XTAL / 3);
m_maincpu->set_addrmap(AS_PROGRAM, &z100_state::z100_mem);
m_maincpu->set_addrmap(AS_IO, &z100_state::z100_io);
m_maincpu->set_irq_acknowledge_callback("pic8259_master", FUNC(pic8259_device::inta_cb));
/* video hardware */
MCFG_SCREEN_ADD("screen", RASTER)
@ -697,14 +697,14 @@ MACHINE_CONFIG_START(z100_state::z100)
MCFG_MC6845_SHOW_BORDER_AREA(false)
MCFG_MC6845_CHAR_WIDTH(8)
MCFG_DEVICE_ADD("pic8259_master", PIC8259, 0)
MCFG_PIC8259_OUT_INT_CB(INPUTLINE("maincpu", 0))
MCFG_PIC8259_IN_SP_CB(CONSTANT(1))
MCFG_PIC8259_CASCADE_ACK_CB(READ8(*this, z100_state, get_slave_ack))
PIC8259(config, m_picm, 0);
m_picm->out_int_callback().set_inputline(m_maincpu, 0);
m_picm->in_sp_callback().set_constant(1);
m_picm->read_slave_ack_callback().set(FUNC(z100_state::get_slave_ack));
MCFG_DEVICE_ADD("pic8259_slave", PIC8259, 0)
MCFG_PIC8259_OUT_INT_CB(WRITELINE("pic8259_master", pic8259_device, ir3_w))
MCFG_PIC8259_IN_SP_CB(CONSTANT(0))
PIC8259(config, m_pics, 0);
m_pics->out_int_callback().set(m_picm, FUNC(pic8259_device::ir3_w));
m_pics->in_sp_callback().set_constant(0);
PIA6821(config, m_pia0, 0);
m_pia0->writepa_handler().set(FUNC(z100_state::video_pia_A_w));

View File

@ -941,14 +941,14 @@ MACHINE_CONFIG_START(xbox_base_state::xbox_base)
MCFG_MCPX_NV2A_GPU_CPU(m_maincpu)
MCFG_MCPX_NV2A_GPU_INTERRUPT_HANDLER(WRITELINE(*this, xbox_base_state, xbox_nv2a_interrupt_changed))
MCFG_DEVICE_ADD("pic8259_1", PIC8259, 0)
MCFG_PIC8259_OUT_INT_CB(WRITELINE(*this, xbox_base_state, xbox_pic8259_1_set_int_line))
MCFG_PIC8259_IN_SP_CB(CONSTANT(1))
MCFG_PIC8259_CASCADE_ACK_CB(READ8(*this, xbox_base_state, get_slave_ack))
pic8259_device &pic8259_1(PIC8259(config, "pic8259_1", 0));
pic8259_1.out_int_callback().set(FUNC(xbox_base_state::xbox_pic8259_1_set_int_line));
pic8259_1.in_sp_callback().set_constant(1);
pic8259_1.read_slave_ack_callback().set(FUNC(xbox_base_state::get_slave_ack));
MCFG_DEVICE_ADD("pic8259_2", PIC8259, 0)
MCFG_PIC8259_OUT_INT_CB(WRITELINE("pic8259_1", pic8259_device, ir2_w))
MCFG_PIC8259_IN_SP_CB(CONSTANT(0))
pic8259_device &pic8259_2(PIC8259(config, "pic8259_2", 0));
pic8259_2.out_int_callback().set("pic8259_1", FUNC(pic8259_device::ir2_w));
pic8259_2.in_sp_callback().set_constant(0);
pit8254_device &pit8254(PIT8254(config, "pit8254", 0));
pit8254.set_clk<0>(1125000); /* heartbeat IRQ */

View File

@ -511,12 +511,10 @@ READ8_MEMBER(towns_state::towns_video_5c8_r)
WRITE8_MEMBER(towns_state::towns_video_5c8_w)
{
pic8259_device* dev = m_pic_slave;
switch(offset)
{
case 0x02: // 0x5ca - VSync clear?
dev->ir3_w(0);
m_pic_slave->ir3_w(0);
if(IRQ_LOG) logerror("PIC: IRQ11 (VSync) set low\n");
//towns_vblank_flag = 0;
break;
@ -1488,19 +1486,17 @@ TIMER_CALLBACK_MEMBER(towns_state::towns_sprite_done)
TIMER_CALLBACK_MEMBER(towns_state::towns_vblank_end)
{
// here we'll clear the vsync signal, I presume it goes low on it's own eventually
device_t* dev = (device_t*)ptr;
downcast<pic8259_device *>(dev)->ir3_w(0); // IRQ11 = VSync
m_pic_slave->ir3_w(0); // IRQ11 = VSync
if(IRQ_LOG) logerror("PIC: IRQ11 (VSync) set low\n");
m_video.towns_vblank_flag = 0;
}
INTERRUPT_GEN_MEMBER(towns_state::towns_vsync_irq)
{
pic8259_device* dev = m_pic_slave;
dev->ir3_w(1); // IRQ11 = VSync
m_pic_slave->ir3_w(1); // IRQ11 = VSync
if(IRQ_LOG) logerror("PIC: IRQ11 (VSync) set high\n");
m_video.towns_vblank_flag = 1;
machine().scheduler().timer_set(m_screen->time_until_vblank_end(), timer_expired_delegate(FUNC(towns_state::towns_vblank_end),this), 0, (void*)dev);
machine().scheduler().timer_set(m_screen->time_until_vblank_end(), timer_expired_delegate(FUNC(towns_state::towns_vblank_end),this), 0, (void*)m_pic_slave);
if(m_video.towns_tvram_enable)
draw_text_layer();
if(m_video.towns_sprite_reg[1] & 0x80)

View File

@ -122,9 +122,7 @@ WRITE16_MEMBER(m107_state::control_w)
void m107_state::video_start()
{
int laynum;
for (laynum = 0; laynum < 4; laynum++)
for (int laynum = 0; laynum < 4; laynum++)
{
pf_layer_info *layer = &m_pf_layer[laynum];