mirror of
https://github.com/holub/mame
synced 2025-07-06 10:29:38 +03:00
machine/pic8259.h: removed MCFG macros (nw)
This commit is contained in:
parent
e7edb3d174
commit
c70e5f7f7e
@ -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
|
||||
|
@ -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
|
||||
|
@ -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
|
||||
}
|
||||
|
||||
|
||||
//-------------------------------------------------
|
||||
|
@ -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(); }
|
||||
|
@ -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;
|
||||
|
@ -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(); }
|
||||
|
@ -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"));
|
||||
|
@ -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
|
||||
|
@ -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
|
||||
|
@ -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 */
|
||||
|
@ -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);
|
||||
|
@ -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));
|
||||
|
@ -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();
|
||||
|
@ -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));
|
||||
|
@ -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));
|
||||
|
||||
|
@ -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));
|
||||
|
@ -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));
|
||||
|
@ -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));
|
||||
|
@ -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));
|
||||
|
@ -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);
|
||||
|
@ -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)
|
||||
|
@ -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")
|
||||
|
@ -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 */
|
||||
|
@ -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));
|
||||
|
@ -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))
|
||||
|
@ -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));
|
||||
|
@ -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");
|
||||
|
@ -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))
|
||||
|
@ -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));
|
||||
|
@ -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)
|
||||
|
@ -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);
|
||||
}
|
||||
|
||||
|
||||
/***************************************************************************
|
||||
|
@ -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)
|
||||
|
@ -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 */
|
||||
|
@ -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))
|
||||
|
@ -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, ¬etaker_state::iop_mem);
|
||||
m_iop_cpu->set_addrmap(AS_IO, ¬etaker_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, ¬etaker_state::ep_mem);
|
||||
m_ep_cpu->set_addrmap(AS_IO, ¬etaker_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
|
||||
|
@ -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);
|
||||
|
@ -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));
|
||||
|
@ -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");
|
||||
|
||||
|
@ -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)
|
||||
|
@ -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
|
||||
|
||||
|
@ -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));
|
||||
|
@ -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)
|
||||
|
@ -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)
|
||||
|
@ -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));
|
||||
|
@ -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
|
||||
|
@ -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);
|
||||
|
@ -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));
|
||||
|
@ -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));
|
||||
|
@ -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 */
|
||||
|
@ -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)
|
||||
|
@ -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];
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user