pc_fdc: removed MCFG macros (nw)

This commit is contained in:
Ivan Vangelista 2018-11-15 19:28:36 +01:00
parent 9b35e2a294
commit 00391d6124
6 changed files with 54 additions and 60 deletions

View File

@ -38,14 +38,14 @@ static void pc_hd_floppies(device_slot_interface &device)
isa8_fdc_device::isa8_fdc_device(const machine_config &mconfig, device_type type, const char *tag, device_t *owner, uint32_t clock) :
device_t(mconfig, type, tag, owner, clock),
device_isa8_card_interface(mconfig, *this),
fdc(*this, "fdc")
m_fdc(*this, "fdc")
{
}
void isa8_fdc_device::device_start()
{
set_isa_device();
m_isa->install_device(0x03f0, 0x03f7, *fdc, &pc_fdc_interface::map);
m_isa->install_device(0x03f0, 0x03f7, *m_fdc, &pc_fdc_interface::map);
m_isa->set_dma_channel(2, this, true);
}
@ -65,17 +65,17 @@ WRITE_LINE_MEMBER( isa8_fdc_device::drq_w )
uint8_t isa8_fdc_device::dack_r(int line)
{
return fdc->dma_r();
return m_fdc->dma_r();
}
void isa8_fdc_device::dack_w(int line, uint8_t data)
{
return fdc->dma_w(data);
return m_fdc->dma_w(data);
}
void isa8_fdc_device::eop_w(int state)
{
fdc->tc_w(state == ASSERT_LINE);
m_fdc->tc_w(state == ASSERT_LINE);
}
@ -83,26 +83,28 @@ isa8_fdc_xt_device::isa8_fdc_xt_device(const machine_config &mconfig, const char
{
}
MACHINE_CONFIG_START(isa8_fdc_xt_device::device_add_mconfig)
MCFG_PC_FDC_XT_ADD("fdc")
MCFG_PC_FDC_INTRQ_CALLBACK(WRITELINE(*this, isa8_fdc_device, irq_w))
MCFG_PC_FDC_DRQ_CALLBACK(WRITELINE(*this, isa8_fdc_device, drq_w))
MCFG_FLOPPY_DRIVE_ADD("fdc:0", pc_dd_floppies, "525dd", isa8_fdc_device::floppy_formats)
MCFG_FLOPPY_DRIVE_ADD("fdc:1", pc_dd_floppies, "525dd", isa8_fdc_device::floppy_formats)
MACHINE_CONFIG_END
void isa8_fdc_xt_device::device_add_mconfig(machine_config &config)
{
pc_fdc_xt_device &pc_fdc_xt(PC_FDC_XT(config, m_fdc, 0));
pc_fdc_xt.intrq_wr_callback().set(FUNC(isa8_fdc_device::irq_w));
pc_fdc_xt.drq_wr_callback().set(FUNC(isa8_fdc_device::drq_w));
FLOPPY_CONNECTOR(config, "fdc:0", pc_dd_floppies, "525dd", isa8_fdc_device::floppy_formats);
FLOPPY_CONNECTOR(config, "fdc:1", pc_dd_floppies, "525dd", isa8_fdc_device::floppy_formats);
}
isa8_fdc_at_device::isa8_fdc_at_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) : isa8_fdc_device(mconfig, ISA8_FDC_AT, tag, owner, clock)
{
}
MACHINE_CONFIG_START(isa8_fdc_at_device::device_add_mconfig)
MCFG_PC_FDC_AT_ADD("fdc")
MCFG_PC_FDC_INTRQ_CALLBACK(WRITELINE(*this, isa8_fdc_device, irq_w))
MCFG_PC_FDC_DRQ_CALLBACK(WRITELINE(*this, isa8_fdc_device, drq_w))
MCFG_FLOPPY_DRIVE_ADD("fdc:0", pc_hd_floppies, "35hd", isa8_fdc_device::floppy_formats)
MCFG_FLOPPY_DRIVE_ADD("fdc:1", pc_hd_floppies, "35hd", isa8_fdc_device::floppy_formats)
MACHINE_CONFIG_END
void isa8_fdc_at_device::device_add_mconfig(machine_config &config)
{
pc_fdc_at_device &pc_fdc_at(PC_FDC_AT(config, m_fdc, 0));
pc_fdc_at.intrq_wr_callback().set(FUNC(isa8_fdc_device::irq_w));
pc_fdc_at.drq_wr_callback().set(FUNC(isa8_fdc_device::drq_w));
FLOPPY_CONNECTOR(config, "fdc:0", pc_hd_floppies, "35hd", isa8_fdc_device::floppy_formats);
FLOPPY_CONNECTOR(config, "fdc:1", pc_hd_floppies, "35hd", isa8_fdc_device::floppy_formats);
}
isa8_fdc_smc_device::isa8_fdc_smc_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) : isa8_fdc_device(mconfig, ISA8_FDC_SMC, tag, owner, clock)
{
@ -110,7 +112,7 @@ isa8_fdc_smc_device::isa8_fdc_smc_device(const machine_config &mconfig, const ch
void isa8_fdc_smc_device::device_add_mconfig(machine_config &config)
{
smc37c78_device &smc(SMC37C78(config, fdc));
smc37c78_device &smc(SMC37C78(config, m_fdc));
smc.intrq_wr_callback().set(FUNC(isa8_fdc_device::irq_w));
smc.drq_wr_callback().set(FUNC(isa8_fdc_device::drq_w));
FLOPPY_CONNECTOR(config, "fdc:0", pc_hd_floppies, "35hd", isa8_fdc_device::floppy_formats);
@ -123,7 +125,7 @@ isa8_fdc_ps2_device::isa8_fdc_ps2_device(const machine_config &mconfig, const ch
void isa8_fdc_ps2_device::device_add_mconfig(machine_config &config)
{
n82077aa_device &n82077aa(N82077AA(config, fdc, n82077aa_device::MODE_PS2));
n82077aa_device &n82077aa(N82077AA(config, m_fdc, n82077aa_device::MODE_PS2));
n82077aa.intrq_wr_callback().set(FUNC(isa8_fdc_device::irq_w));
n82077aa.drq_wr_callback().set(FUNC(isa8_fdc_device::drq_w));
FLOPPY_CONNECTOR(config, "fdc:0", pc_hd_floppies, "35hd", isa8_fdc_device::floppy_formats);
@ -136,7 +138,7 @@ isa8_fdc_superio_device::isa8_fdc_superio_device(const machine_config &mconfig,
void isa8_fdc_superio_device::device_add_mconfig(machine_config &config)
{
pc_fdc_superio_device &superio(PC_FDC_SUPERIO(config, fdc));
pc_fdc_superio_device &superio(PC_FDC_SUPERIO(config, m_fdc));
superio.intrq_wr_callback().set(FUNC(isa8_fdc_device::irq_w));
superio.drq_wr_callback().set(FUNC(isa8_fdc_device::drq_w));
FLOPPY_CONNECTOR(config, "fdc:0", pc_hd_floppies, "35hd", isa8_fdc_device::floppy_formats);
@ -160,15 +162,17 @@ WRITE_LINE_MEMBER( isa8_ec1841_0003_device::aux_irq_w )
m_isa->irq4_w(state ? ASSERT_LINE : CLEAR_LINE);
}
MACHINE_CONFIG_START( isa8_ec1841_0003_device::device_add_mconfig )
MCFG_PC_FDC_XT_ADD("fdc")
MCFG_PC_FDC_INTRQ_CALLBACK(WRITELINE(*this, isa8_fdc_device, irq_w))
MCFG_PC_FDC_DRQ_CALLBACK(WRITELINE(*this, isa8_fdc_device, drq_w))
MCFG_FLOPPY_DRIVE_ADD("fdc:0", pc_dd_floppies, "525dd", isa8_fdc_device::floppy_formats)
MCFG_FLOPPY_DRIVE_ADD("fdc:1", pc_dd_floppies, "525dd", isa8_fdc_device::floppy_formats)
void isa8_ec1841_0003_device::device_add_mconfig(machine_config &config)
{
pc_fdc_xt_device &pc_fdc_xt(PC_FDC_XT(config, m_fdc, 0));
pc_fdc_xt.intrq_wr_callback().set(FUNC(isa8_fdc_device::irq_w));
pc_fdc_xt.drq_wr_callback().set(FUNC(isa8_fdc_device::drq_w));
FLOPPY_CONNECTOR(config, "fdc:0", pc_dd_floppies, "525dd", isa8_fdc_device::floppy_formats);
FLOPPY_CONNECTOR(config, "fdc:1", pc_dd_floppies, "525dd", isa8_fdc_device::floppy_formats);
BUS_MOUSE(config, "bus_mouse", 0).extint_callback().set(FUNC(isa8_ec1841_0003_device::aux_irq_w));
MACHINE_CONFIG_END
}
DEFINE_DEVICE_TYPE(ISA8_FDC_XT, isa8_fdc_xt_device, "isa8_fdc_xt", "ISA 8bits XT FDC hookup")
DEFINE_DEVICE_TYPE(ISA8_FDC_AT, isa8_fdc_at_device, "isa8_fdc_at", "ISA 8bits AT FDC hookup")

View File

@ -41,7 +41,7 @@ protected:
virtual void dack_w(int line, uint8_t data) override;
virtual void eop_w(int state) override;
required_device<pc_fdc_interface> fdc;
required_device<pc_fdc_interface> m_fdc;
};
class isa8_fdc_xt_device : public isa8_fdc_device {

View File

@ -243,17 +243,18 @@ static INPUT_PORTS_START( omti_port )
PORT_DIPSETTING( 0x01, "CA000h" )
INPUT_PORTS_END
MACHINE_CONFIG_START(omti8621_device::device_add_mconfig)
MCFG_DEVICE_ADD(OMTI_DISK0_TAG, OMTI_DISK, 0)
MCFG_DEVICE_ADD(OMTI_DISK1_TAG, OMTI_DISK, 0)
void omti8621_device::device_add_mconfig(machine_config &config)
{
OMTI_DISK(config, OMTI_DISK0_TAG, 0);
OMTI_DISK(config, OMTI_DISK1_TAG, 0);
MCFG_PC_FDC_AT_ADD(OMTI_FDC_TAG)
MCFG_PC_FDC_INTRQ_CALLBACK(WRITELINE(*this, omti8621_device, fdc_irq_w))
MCFG_PC_FDC_DRQ_CALLBACK(WRITELINE(*this, omti8621_device, fdc_drq_w))
MCFG_FLOPPY_DRIVE_ADD(OMTI_FDC_TAG":0", pc_hd_floppies, "525hd", omti8621_device::floppy_formats)
pc_fdc_at_device &pc_fdc_at(PC_FDC_AT(config, m_fdc, 0));
pc_fdc_at.intrq_wr_callback().set(FUNC(omti8621_device::fdc_irq_w));
pc_fdc_at.drq_wr_callback().set(FUNC(omti8621_device::fdc_drq_w));
FLOPPY_CONNECTOR(config, OMTI_FDC_TAG":0", pc_hd_floppies, "525hd", omti8621_device::floppy_formats);
// Apollo workstations never have more then 1 floppy drive
// MCFG_FLOPPY_DRIVE_ADD(OMTI_FDC_TAG":1", pc_hd_floppies, "525hd", omti8621_device::floppy_formats)
MACHINE_CONFIG_END
// FLOPPY_CONNECTOR(config, OMTI_FDC_TAG":1", pc_hd_floppies, "525hd", omti8621_device::floppy_formats);
}
const tiny_rom_entry *omti8621_device::device_rom_region() const
{

View File

@ -13,22 +13,11 @@
#include "machine/upd765.h"
#define MCFG_PC_FDC_XT_ADD(_tag) \
MCFG_DEVICE_ADD(_tag, PC_FDC_XT, 0)
#define MCFG_PC_FDC_AT_ADD(_tag) \
MCFG_DEVICE_ADD(_tag, PC_FDC_AT, 0)
#define MCFG_PC_FDC_INTRQ_CALLBACK(_write) \
downcast<pc_fdc_family_device &>(*device).set_intrq_wr_callback(DEVCB_##_write);
#define MCFG_PC_FDC_DRQ_CALLBACK(_write) \
downcast<pc_fdc_family_device &>(*device).set_drq_wr_callback(DEVCB_##_write);
class pc_fdc_family_device : public pc_fdc_interface {
public:
template <class Object> devcb_base &set_intrq_wr_callback(Object &&cb) { return intrq_cb.set_callback(std::forward<Object>(cb)); }
template <class Object> devcb_base &set_drq_wr_callback(Object &&cb) { return drq_cb.set_callback(std::forward<Object>(cb)); }
auto intrq_wr_callback() { return intrq_cb.bind(); }
auto drq_wr_callback() { return drq_cb.bind(); }
virtual void map(address_map &map) override;

View File

@ -120,8 +120,8 @@ MACHINE_CONFIG_START(asst128_state::asst128)
MCFG_PC_KBDC_SLOT_ADD("mb:pc_kbdc", "kbd", pc_xt_keyboards, STR_KBD_IBM_PC_XT_83)
MCFG_PC_FDC_XT_ADD("fdc")
MCFG_PC_FDC_INTRQ_CALLBACK(WRITELINE("mb:pic8259", pic8259_device, ir6_w))
PC_FDC_XT(config, m_fdc, 0);
m_fdc->intrq_wr_callback().set("mb:pic8259", FUNC(pic8259_device::ir6_w));
MCFG_FLOPPY_DRIVE_ADD("fdc:0", asst128_floppies, "525ssqd", asst128_state::asst128_formats)
MCFG_FLOPPY_DRIVE_ADD("fdc:1", asst128_floppies, "525ssqd", asst128_state::asst128_formats)

View File

@ -1210,9 +1210,9 @@ MACHINE_CONFIG_START(pc1512_state::pc1512)
MC146818(config, m_rtc, 32.768_kHz_XTAL);
m_rtc->irq().set(m_pic, FUNC(pic8259_device::ir2_w));
MCFG_PC_FDC_XT_ADD(PC_FDC_XT_TAG)
MCFG_PC_FDC_INTRQ_CALLBACK(WRITELINE(*this, pc1512_state, fdc_int_w))
MCFG_PC_FDC_DRQ_CALLBACK(WRITELINE(*this, pc1512_state, fdc_drq_w))
PC_FDC_XT(config, m_fdc, 0);
m_fdc->intrq_wr_callback().set(FUNC(pc1512_state::fdc_int_w));
m_fdc->drq_wr_callback().set(FUNC(pc1512_state::fdc_drq_w));
MCFG_FLOPPY_DRIVE_ADD(PC_FDC_XT_TAG ":0", pc1512_floppies, "525dd", pc1512_base_state::floppy_formats)
MCFG_FLOPPY_DRIVE_ADD(PC_FDC_XT_TAG ":1", pc1512_floppies, nullptr, pc1512_base_state::floppy_formats)
@ -1341,9 +1341,9 @@ MACHINE_CONFIG_START(pc1640_state::pc1640)
MC146818(config, m_rtc, 32.768_kHz_XTAL);
m_rtc->irq().set(m_pic, FUNC(pic8259_device::ir2_w));
MCFG_PC_FDC_XT_ADD(PC_FDC_XT_TAG)
MCFG_PC_FDC_INTRQ_CALLBACK(WRITELINE(*this, pc1512_base_state, fdc_int_w))
MCFG_PC_FDC_DRQ_CALLBACK(WRITELINE(*this, pc1512_base_state, fdc_drq_w))
PC_FDC_XT(config, m_fdc, 0);
m_fdc->intrq_wr_callback().set(FUNC(pc1512_base_state::fdc_int_w));
m_fdc->drq_wr_callback().set(FUNC(pc1512_base_state::fdc_drq_w));
MCFG_FLOPPY_DRIVE_ADD(PC_FDC_XT_TAG ":0", pc1512_floppies, "525dd", pc1512_base_state::floppy_formats)
MCFG_FLOPPY_DRIVE_ADD(PC_FDC_XT_TAG ":1", pc1512_floppies, nullptr, pc1512_base_state::floppy_formats)