-devices/bus/bbc/1mhzbus/ieee488: Removed MACHINE_CONFIG macros, nw

-devices/bus/cbmiec/interpod: Removed MACHINE_CONFIG macros, nw

-devices/bus/ieee488/ieee488: Removed MCFG macros, nw

-devices/bus/ieee488/softbox: Removed MACHINE_CONFIG macros, nw

-devices/bus/imi7000/imi7000: Removed MCFG macro, nw

-devices/imagedev/harddriv: Added constructor for setting interface tag, nw

-gridcomp, hp_ipc, hp64k, sage2, softbox: Removed MACHINE_CONFIG macros, nw
This commit is contained in:
mooglyguy 2019-02-03 19:49:33 +01:00 committed by MooglyGuy
parent 44f375b47d
commit 878e535eac
12 changed files with 237 additions and 276 deletions

View File

@ -54,7 +54,8 @@ ROM_END
// device_add_mconfig - add device configuration
//-------------------------------------------------
MACHINE_CONFIG_START(bbc_ieee488_device::device_add_mconfig)
void bbc_ieee488_device::device_add_mconfig(machine_config &config)
{
TMS9914(config, m_tms9914, 5_MHz_XTAL);
m_tms9914->int_write_cb().set(DEVICE_SELF_OWNER, FUNC(bbc_1mhzbus_slot_device::irq_w));
m_tms9914->dio_read_cb().set(IEEE488_TAG, FUNC(ieee488_device::dio_r));
@ -67,23 +68,25 @@ MACHINE_CONFIG_START(bbc_ieee488_device::device_add_mconfig)
m_tms9914->srq_write_cb().set(IEEE488_TAG, FUNC(ieee488_device::host_srq_w));
m_tms9914->atn_write_cb().set(IEEE488_TAG, FUNC(ieee488_device::host_atn_w));
m_tms9914->ren_write_cb().set(IEEE488_TAG, FUNC(ieee488_device::host_ren_w));
MCFG_IEEE488_BUS_ADD()
MCFG_IEEE488_EOI_CALLBACK(WRITELINE(m_tms9914, tms9914_device, eoi_w))
MCFG_IEEE488_DAV_CALLBACK(WRITELINE(m_tms9914, tms9914_device, dav_w))
MCFG_IEEE488_NRFD_CALLBACK(WRITELINE(m_tms9914, tms9914_device, nrfd_w))
MCFG_IEEE488_NDAC_CALLBACK(WRITELINE(m_tms9914, tms9914_device, ndac_w))
MCFG_IEEE488_IFC_CALLBACK(WRITELINE(m_tms9914, tms9914_device, ifc_w))
MCFG_IEEE488_SRQ_CALLBACK(WRITELINE(m_tms9914, tms9914_device, srq_w))
MCFG_IEEE488_ATN_CALLBACK(WRITELINE(m_tms9914, tms9914_device, atn_w))
MCFG_IEEE488_REN_CALLBACK(WRITELINE(m_tms9914, tms9914_device, ren_w))
MCFG_IEEE488_SLOT_ADD("ieee_dev", 0, cbm_ieee488_devices, nullptr)
IEEE488(config, m_ieee);
m_ieee->eoi_callback().set(m_tms9914, FUNC(tms9914_device::eoi_w));
m_ieee->dav_callback().set(m_tms9914, FUNC(tms9914_device::dav_w));
m_ieee->nrfd_callback().set(m_tms9914, FUNC(tms9914_device::nrfd_w));
m_ieee->ndac_callback().set(m_tms9914, FUNC(tms9914_device::ndac_w));
m_ieee->ifc_callback().set(m_tms9914, FUNC(tms9914_device::ifc_w));
m_ieee->srq_callback().set(m_tms9914, FUNC(tms9914_device::srq_w));
m_ieee->atn_callback().set(m_tms9914, FUNC(tms9914_device::atn_w));
m_ieee->ren_callback().set(m_tms9914, FUNC(tms9914_device::ren_w));
IEEE488_SLOT(config, "ieee_dev", 0, cbm_ieee488_devices, nullptr);
BBC_1MHZBUS_SLOT(config, m_1mhzbus, DERIVED_CLOCK(1, 1), bbc_1mhzbus_devices, nullptr);
m_1mhzbus->irq_handler().set(DEVICE_SELF_OWNER, FUNC(bbc_1mhzbus_slot_device::irq_w));
m_1mhzbus->nmi_handler().set(DEVICE_SELF_OWNER, FUNC(bbc_1mhzbus_slot_device::nmi_w));
MACHINE_CONFIG_END
}
MACHINE_CONFIG_START(bbc_b488_device::device_add_mconfig)
void bbc_b488_device::device_add_mconfig(machine_config &config)
{
TMS9914(config, m_tms9914, 5_MHz_XTAL); // TODO: verify clock
m_tms9914->int_write_cb().set(DEVICE_SELF_OWNER, FUNC(bbc_1mhzbus_slot_device::irq_w));
m_tms9914->dio_read_cb().set(IEEE488_TAG, FUNC(ieee488_device::dio_r));
@ -96,35 +99,37 @@ MACHINE_CONFIG_START(bbc_b488_device::device_add_mconfig)
m_tms9914->srq_write_cb().set(IEEE488_TAG, FUNC(ieee488_device::host_srq_w));
m_tms9914->atn_write_cb().set(IEEE488_TAG, FUNC(ieee488_device::host_atn_w));
m_tms9914->ren_write_cb().set(IEEE488_TAG, FUNC(ieee488_device::host_ren_w));
MCFG_IEEE488_BUS_ADD()
MCFG_IEEE488_EOI_CALLBACK(WRITELINE(m_tms9914, tms9914_device, eoi_w))
MCFG_IEEE488_DAV_CALLBACK(WRITELINE(m_tms9914, tms9914_device, dav_w))
MCFG_IEEE488_NRFD_CALLBACK(WRITELINE(m_tms9914, tms9914_device, nrfd_w))
MCFG_IEEE488_NDAC_CALLBACK(WRITELINE(m_tms9914, tms9914_device, ndac_w))
MCFG_IEEE488_IFC_CALLBACK(WRITELINE(m_tms9914, tms9914_device, ifc_w))
MCFG_IEEE488_SRQ_CALLBACK(WRITELINE(m_tms9914, tms9914_device, srq_w))
MCFG_IEEE488_ATN_CALLBACK(WRITELINE(m_tms9914, tms9914_device, atn_w))
MCFG_IEEE488_REN_CALLBACK(WRITELINE(m_tms9914, tms9914_device, ren_w))
MCFG_IEEE488_SLOT_ADD("ieee_dev", 0, cbm_ieee488_devices, nullptr)
IEEE488(config, m_ieee);
m_ieee->eoi_callback().set(m_tms9914, FUNC(tms9914_device::eoi_w));
m_ieee->dav_callback().set(m_tms9914, FUNC(tms9914_device::dav_w));
m_ieee->nrfd_callback().set(m_tms9914, FUNC(tms9914_device::nrfd_w));
m_ieee->ndac_callback().set(m_tms9914, FUNC(tms9914_device::ndac_w));
m_ieee->ifc_callback().set(m_tms9914, FUNC(tms9914_device::ifc_w));
m_ieee->srq_callback().set(m_tms9914, FUNC(tms9914_device::srq_w));
m_ieee->atn_callback().set(m_tms9914, FUNC(tms9914_device::atn_w));
m_ieee->ren_callback().set(m_tms9914, FUNC(tms9914_device::ren_w));
IEEE488_SLOT(config, "ieee_dev", 0, cbm_ieee488_devices, nullptr);
// TODO: LED's for ATN, TALK, and DATA
MACHINE_CONFIG_END
}
//MACHINE_CONFIG_START(bbc_procyon_device::device_add_mconfig)
//void bbc_procyon_device::device_add_mconfig(machine_config &config)
//{
// TODO: Implement MC68488
//MCFG_IEEE488_BUS_ADD()
//MCFG_IEEE488_EOI_CALLBACK(WRITELINE(m_mc68488, mc68488_device, eoi_w))
//MCFG_IEEE488_DAV_CALLBACK(WRITELINE(m_mc68488, mc68488_device, dav_w))
//MCFG_IEEE488_NRFD_CALLBACK(WRITELINE(m_mc68488, mc68488_device, nrfd_w))
//MCFG_IEEE488_NDAC_CALLBACK(WRITELINE(m_mc68488, mc68488_device, ndac_w))
//MCFG_IEEE488_IFC_CALLBACK(WRITELINE(m_mc68488, mc68488_device, ifc_w))
//MCFG_IEEE488_SRQ_CALLBACK(WRITELINE(m_mc68488, mc68488_device, srq_w))
//MCFG_IEEE488_ATN_CALLBACK(WRITELINE(m_mc68488, mc68488_device, atn_w))
//MCFG_IEEE488_REN_CALLBACK(WRITELINE(m_mc68488, mc68488_device, ren_w))
//MCFG_IEEE488_SLOT_ADD("ieee_dev", 0, cbm_ieee488_devices, nullptr)
//IEEE488(config, m_ieee);
//m_ieee->eoi_callback(m_mc68488, FUNC(mc68488_device::eoi_w));
//m_ieee->dav_callback(m_mc68488, FUNC(mc68488_device::dav_w));
//m_ieee->nrfd_callback(m_mc68488, FUNC(mc68488_device::nrfd_w));
//m_ieee->ndac_callback(m_mc68488, FUNC(mc68488_device::ndac_w));
//m_ieee->ifc_callback(m_mc68488, FUNC(mc68488_device::ifc_w));
//m_ieee->srq_callback(m_mc68488, FUNC(mc68488_device::srq_w));
//m_ieee->atn_callback(m_mc68488, FUNC(mc68488_device::atn_w));
//m_ieee->ren_callback(m_mc68488, FUNC(mc68488_device::ren_w));
//IEEE488_SLOT(config, "ieee_dev", 0, cbm_ieee488_devices, nullptr);
// TODO: LED's for Bus Active, Byte Out, and Byte In
//MACHINE_CONFIG_END
//}
//-------------------------------------------------
// rom_region - device-specific ROM region

View File

@ -123,16 +123,17 @@ void interpod_device::interpod_mem(address_map &map)
// device_add_mconfig - add device configuration
//-------------------------------------------------
MACHINE_CONFIG_START(interpod_device::device_add_mconfig)
MCFG_DEVICE_ADD(R6502_TAG, M6502, 1000000)
MCFG_DEVICE_PROGRAM_MAP(interpod_mem)
void interpod_device::device_add_mconfig(machine_config &config)
{
M6502(config, m_maincpu, 1000000);
m_maincpu->set_addrmap(AS_PROGRAM, &interpod_device::interpod_mem);
MCFG_DEVICE_ADD(R6522_TAG, VIA6522, 1000000)
MCFG_DEVICE_ADD(R6532_TAG, MOS6532_NEW, 1000000)
MCFG_DEVICE_ADD(MC6850_TAG, ACIA6850, 0)
VIA6522(config, m_via, 1000000);
MOS6532_NEW(config, m_riot, 1000000);
ACIA6850(config, m_acia, 0);
MCFG_CBM_IEEE488_ADD(nullptr)
MACHINE_CONFIG_END
ieee488_device::add_cbm_devices(config, nullptr);
}
//**************************************************************************

View File

@ -363,9 +363,10 @@ const tiny_rom_entry *hp98034_io_card_device::device_rom_region() const
return ROM_NAME(hp98034);
}
MACHINE_CONFIG_START(hp98034_io_card_device::device_add_mconfig)
// Clock for NP is generated by a RC oscillator. Manual says its typical frequency
// is around 2 MHz.
void hp98034_io_card_device::device_add_mconfig(machine_config &config)
{
// Clock for NP is generated by a RC oscillator. Manual says its typical frequency
// is around 2 MHz.
HP_NANOPROCESSOR(config, m_cpu, 2000000);
m_cpu->set_addrmap(AS_PROGRAM, &hp98034_io_card_device::np_program_map);
m_cpu->set_addrmap(AS_IO, &hp98034_io_card_device::np_io_map);
@ -373,12 +374,12 @@ MACHINE_CONFIG_START(hp98034_io_card_device::device_add_mconfig)
m_cpu->read_dc().set(FUNC(hp98034_io_card_device::dc_r));
m_cpu->set_irq_acknowledge_callback(FUNC(hp98034_io_card_device::irq_callback));
MCFG_IEEE488_SLOT_ADD("ieee_dev" , 0 , hp_ieee488_devices , nullptr)
MCFG_IEEE488_SLOT_ADD("ieee_rem" , 0 , remote488_devices , nullptr)
MCFG_IEEE488_BUS_ADD()
MCFG_IEEE488_IFC_CALLBACK(WRITELINE(*this, hp98034_io_card_device , ieee488_ctrl_w))
MCFG_IEEE488_ATN_CALLBACK(WRITELINE(*this, hp98034_io_card_device , ieee488_ctrl_w))
MACHINE_CONFIG_END
IEEE488_SLOT(config , "ieee_dev" , 0 , hp_ieee488_devices , nullptr);
IEEE488_SLOT(config , "ieee_rem" , 0 , remote488_devices , nullptr);
IEEE488(config, m_ieee488);
m_ieee488->ifc_callback().set(FUNC(hp98034_io_card_device::ieee488_ctrl_w));
m_ieee488->atn_callback().set(FUNC(hp98034_io_card_device::ieee488_ctrl_w));
}
// device type definition
DEFINE_DEVICE_TYPE(HP98034_IO_CARD, hp98034_io_card_device, "hp98034", "HP98034 card")

View File

@ -12,8 +12,12 @@
#pragma once
void cbm_ieee488_devices(device_slot_interface &device);
void hp_ieee488_devices(device_slot_interface &device);
void remote488_devices(device_slot_interface &device);
DECLARE_DEVICE_TYPE(IEEE488, ieee488_device)
DECLARE_DEVICE_TYPE(IEEE488_SLOT, ieee488_slot_device)
//**************************************************************************
// MACROS / CONSTANTS
@ -23,65 +27,6 @@
//**************************************************************************
// INTERFACE CONFIGURATION MACROS
//**************************************************************************
#define MCFG_IEEE488_BUS_ADD() \
MCFG_DEVICE_ADD(IEEE488_TAG, IEEE488, 0)
#define MCFG_IEEE488_EOI_CALLBACK(_write) \
downcast<ieee488_device *>(device)->set_eoi_callback(DEVCB_##_write);
#define MCFG_IEEE488_DAV_CALLBACK(_write) \
downcast<ieee488_device *>(device)->set_dav_callback(DEVCB_##_write);
#define MCFG_IEEE488_NRFD_CALLBACK(_write) \
downcast<ieee488_device *>(device)->set_nrfd_callback(DEVCB_##_write);
#define MCFG_IEEE488_NDAC_CALLBACK(_write) \
downcast<ieee488_device *>(device)->set_ndac_callback(DEVCB_##_write);
#define MCFG_IEEE488_IFC_CALLBACK(_write) \
downcast<ieee488_device *>(device)->set_ifc_callback(DEVCB_##_write);
#define MCFG_IEEE488_SRQ_CALLBACK(_write) \
downcast<ieee488_device *>(device)->set_srq_callback(DEVCB_##_write);
#define MCFG_IEEE488_ATN_CALLBACK(_write) \
downcast<ieee488_device *>(device)->set_atn_callback(DEVCB_##_write);
#define MCFG_IEEE488_REN_CALLBACK(_write) \
downcast<ieee488_device *>(device)->set_ren_callback(DEVCB_##_write);
// This CB reports changes to the DIO lines on the bus (whose value comes from
// ANDing the DIO lines of each device on the bus)
// This CB is needed by those controllers that start a parallel poll and wait
// for some condition to be set by devices on the DIO lines (e.g. PHI controller).
#define MCFG_IEEE488_DIO_CALLBACK(_write) \
downcast<ieee488_device *>(device)->set_dio_callback(DEVCB_##_write);
#define MCFG_IEEE488_SLOT_ADD(_tag, _address, _slot_intf, _def_slot) \
MCFG_DEVICE_ADD(_tag, IEEE488_SLOT, 0) \
MCFG_DEVICE_SLOT_INTERFACE(_slot_intf, _def_slot, false) \
downcast<ieee488_slot_device *>(device)->set_address(_address);
#define MCFG_CBM_IEEE488_ADD(_default_drive) \
MCFG_IEEE488_SLOT_ADD("ieee4", 4, cbm_ieee488_devices, nullptr) \
MCFG_IEEE488_SLOT_ADD("ieee8", 8, cbm_ieee488_devices, _default_drive) \
MCFG_IEEE488_SLOT_ADD("ieee9", 9, cbm_ieee488_devices, nullptr) \
MCFG_IEEE488_SLOT_ADD("ieee10", 10, cbm_ieee488_devices, nullptr) \
MCFG_IEEE488_SLOT_ADD("ieee11", 11, cbm_ieee488_devices, nullptr) \
MCFG_IEEE488_SLOT_ADD("ieee12", 12, cbm_ieee488_devices, nullptr) \
MCFG_IEEE488_SLOT_ADD("ieee13", 13, cbm_ieee488_devices, nullptr) \
MCFG_IEEE488_SLOT_ADD("ieee14", 14, cbm_ieee488_devices, nullptr) \
MCFG_IEEE488_SLOT_ADD("ieee15", 15, cbm_ieee488_devices, nullptr) \
MCFG_IEEE488_BUS_ADD()
//**************************************************************************
// TYPE DEFINITIONS
//**************************************************************************
@ -97,16 +42,6 @@ public:
// construction/destruction
ieee488_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock = 0);
template <class Object> devcb_base &set_eoi_callback(Object &&cb) { return m_write_eoi.set_callback(std::forward<Object>(cb)); }
template <class Object> devcb_base &set_dav_callback(Object &&cb) { return m_write_dav.set_callback(std::forward<Object>(cb)); }
template <class Object> devcb_base &set_nrfd_callback(Object &&cb) { return m_write_nrfd.set_callback(std::forward<Object>(cb)); }
template <class Object> devcb_base &set_ndac_callback(Object &&cb) { return m_write_ndac.set_callback(std::forward<Object>(cb)); }
template <class Object> devcb_base &set_ifc_callback(Object &&cb) { return m_write_ifc.set_callback(std::forward<Object>(cb)); }
template <class Object> devcb_base &set_srq_callback(Object &&cb) { return m_write_srq.set_callback(std::forward<Object>(cb)); }
template <class Object> devcb_base &set_atn_callback(Object &&cb) { return m_write_atn.set_callback(std::forward<Object>(cb)); }
template <class Object> devcb_base &set_ren_callback(Object &&cb) { return m_write_ren.set_callback(std::forward<Object>(cb)); }
template <class Object> devcb_base &set_dio_callback(Object &&cb) { return m_write_dio.set_callback(std::forward<Object>(cb)); }
auto eoi_callback() { return m_write_eoi.bind(); }
auto dav_callback() { return m_write_dav.bind(); }
auto nrfd_callback() { return m_write_nrfd.bind(); }
@ -115,6 +50,11 @@ public:
auto srq_callback() { return m_write_srq.bind(); }
auto atn_callback() { return m_write_atn.bind(); }
auto ren_callback() { return m_write_ren.bind(); }
// This CB reports changes to the DIO lines on the bus (whose value comes from
// ANDing the DIO lines of each device on the bus)
// This CB is needed by those controllers that start a parallel poll and wait
// for some condition to be set by devices on the DIO lines (e.g. PHI controller).
auto dio_callback() { return m_write_dio.bind(); }
void add_device(ieee488_slot_device *slot, device_t *target);
@ -154,6 +94,20 @@ public:
void atn_w(device_t *device, int state) { set_signal(device, ATN, state); }
void ren_w(device_t *device, int state) { set_signal(device, REN, state); }
// helper functions
static void add_cbm_devices(machine_config &config, const char *_default_drive)
{
IEEE488_SLOT(config, "ieee4", 4, cbm_ieee488_devices, nullptr);
IEEE488_SLOT(config, "ieee8", 8, cbm_ieee488_devices, _default_drive);
IEEE488_SLOT(config, "ieee9", 9, cbm_ieee488_devices, nullptr);
IEEE488_SLOT(config, "ieee10", 10, cbm_ieee488_devices, nullptr);
IEEE488_SLOT(config, "ieee11", 11, cbm_ieee488_devices, nullptr);
IEEE488_SLOT(config, "ieee12", 12, cbm_ieee488_devices, nullptr);
IEEE488_SLOT(config, "ieee13", 13, cbm_ieee488_devices, nullptr);
IEEE488_SLOT(config, "ieee14", 14, cbm_ieee488_devices, nullptr);
IEEE488_SLOT(config, "ieee15", 15, cbm_ieee488_devices, nullptr);
IEEE488(config, IEEE488_TAG);
}
protected:
enum
{
@ -208,8 +162,6 @@ private:
uint8_t m_dio;
};
DECLARE_DEVICE_TYPE(IEEE488, ieee488_device)
// ======================> ieee488_slot_device
@ -218,6 +170,16 @@ class ieee488_slot_device : public device_t,
{
public:
// construction/destruction
template <typename T>
ieee488_slot_device(machine_config const &mconfig, char const *tag, device_t *owner, int address, T &&opts, char const *dflt)
: ieee488_slot_device(mconfig, tag, owner, (uint32_t)0)
{
option_reset();
opts(*this);
set_default_option(dflt);
set_fixed(false);
set_address(address);
}
ieee488_slot_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock);
static void add_cbm_slot(machine_config &config, const char *_tag, int _address, const char *_def_slot);
@ -244,8 +206,6 @@ protected:
int m_address;
};
DECLARE_DEVICE_TYPE(IEEE488_SLOT, ieee488_slot_device)
// ======================> device_ieee488_interface
@ -280,10 +240,4 @@ private:
device_ieee488_interface *m_next;
};
void cbm_ieee488_devices(device_slot_interface &device);
void hp_ieee488_devices(device_slot_interface &device);
void remote488_devices(device_slot_interface &device);
#endif // MAME_BUS_IEEE488_IEEE488_H

View File

@ -232,11 +232,12 @@ DEVICE_INPUT_DEFAULTS_END
// device_add_mconfig - add device configuration
//-------------------------------------------------
MACHINE_CONFIG_START(softbox_device::device_add_mconfig)
void softbox_device::device_add_mconfig(machine_config &config)
{
// basic machine hardware
MCFG_DEVICE_ADD(Z80_TAG, Z80, XTAL(8'000'000)/2)
MCFG_DEVICE_PROGRAM_MAP(softbox_mem)
MCFG_DEVICE_IO_MAP(softbox_io)
Z80(config, m_maincpu, XTAL(8'000'000)/2);
m_maincpu->set_addrmap(AS_PROGRAM, &softbox_device::softbox_mem);
m_maincpu->set_addrmap(AS_IO, &softbox_device::softbox_io);
// devices
i8251_device &i8251(I8251(config, I8251_TAG, 0));
@ -264,17 +265,13 @@ MACHINE_CONFIG_START(softbox_device::device_add_mconfig)
m_dbrg->fr_handler().set(I8251_TAG, FUNC(i8251_device::write_rxc));
m_dbrg->ft_handler().set(I8251_TAG, FUNC(i8251_device::write_txc));
MCFG_DEVICE_ADD(m_hdc, CORVUS_HDC, 0)
MCFG_HARDDISK_ADD("harddisk1")
MCFG_HARDDISK_INTERFACE("corvus_hdd")
MCFG_HARDDISK_ADD("harddisk2")
MCFG_HARDDISK_INTERFACE("corvus_hdd")
MCFG_HARDDISK_ADD("harddisk3")
MCFG_HARDDISK_INTERFACE("corvus_hdd")
MCFG_HARDDISK_ADD("harddisk4")
MCFG_HARDDISK_INTERFACE("corvus_hdd")
//MCFG_IMI7000_BUS_ADD("imi5000h", nullptr, nullptr, nullptr)
MACHINE_CONFIG_END
CORVUS_HDC(config, m_hdc, 0);
HARDDISK(config, "harddisk1", "corvus_hdd");
HARDDISK(config, "harddisk2", "corvus_hdd");
HARDDISK(config, "harddisk3", "corvus_hdd");
HARDDISK(config, "harddisk4", "corvus_hdd");
//imi7000_bus_device::add_config(config, "imi5000h", nullptr, nullptr, nullptr);
}
//-------------------------------------------------

View File

@ -31,8 +31,10 @@
#pragma once
void imi7000_devices(device_slot_interface &device);
DECLARE_DEVICE_TYPE(IMI7000_BUS, imi7000_bus_device)
DECLARE_DEVICE_TYPE(IMI7000_SLOT, imi7000_slot_device)
//**************************************************************************
// CONSTANTS
@ -42,23 +44,6 @@
//**************************************************************************
// INTERFACE CONFIGURATION MACROS
//**************************************************************************
#define MCFG_IMI7000_BUS_ADD(_def_slot1, _def_slot2, _def_slot3, _def_slot4) \
MCFG_DEVICE_ADD(IMI7000_BUS_TAG, IMI7000_BUS, 0) \
MCFG_DEVICE_ADD(IMI7000_BUS_TAG":0", IMI7000_SLOT, 0) \
MCFG_DEVICE_SLOT_INTERFACE(imi7000_devices, _def_slot1, false) \
MCFG_DEVICE_ADD(IMI7000_BUS_TAG":1", IMI7000_SLOT, 0) \
MCFG_DEVICE_SLOT_INTERFACE(imi7000_devices, _def_slot2, false) \
MCFG_DEVICE_ADD(IMI7000_BUS_TAG":2", IMI7000_SLOT, 0) \
MCFG_DEVICE_SLOT_INTERFACE(imi7000_devices, _def_slot3, false) \
MCFG_DEVICE_ADD(IMI7000_BUS_TAG":3", IMI7000_SLOT, 0) \
MCFG_DEVICE_SLOT_INTERFACE(imi7000_devices, _def_slot4, false)
//**************************************************************************
// TYPE DEFINITIONS
//**************************************************************************
@ -73,7 +58,17 @@ class imi7000_bus_device : public device_t
{
public:
// construction/destruction
imi7000_bus_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock);
imi7000_bus_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock = 0);
template <typename T, typename U, typename V, typename W>
static void add_config(machine_config &config, T &&_def_slot1, U &&_def_slot2, V &&_def_slot3, W &&_def_slot4)
{
IMI7000_BUS(config, IMI7000_BUS_TAG);
IMI7000_SLOT(config, IMI7000_BUS_TAG":0", imi7000_devices, std::forward<T>(_def_slot1));
IMI7000_SLOT(config, IMI7000_BUS_TAG":1", imi7000_devices, std::forward<U>(_def_slot2));
IMI7000_SLOT(config, IMI7000_BUS_TAG":2", imi7000_devices, std::forward<V>(_def_slot3));
IMI7000_SLOT(config, IMI7000_BUS_TAG":3", imi7000_devices, std::forward<W>(_def_slot4));
}
protected:
// device-level overrides
@ -90,6 +85,15 @@ class imi7000_slot_device : public device_t,
{
public:
// construction/destruction
template <typename T>
imi7000_slot_device(machine_config const &mconfig, char const *tag, device_t *owner, T &&opts, char const *dflt)
: imi7000_slot_device(mconfig, tag, owner, (uint32_t)0)
{
option_reset();
opts(*this);
set_default_option(dflt);
set_fixed(false);
}
imi7000_slot_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock);
protected:
@ -113,13 +117,4 @@ protected:
imi7000_slot_device *m_slot;
};
// device type definition
DECLARE_DEVICE_TYPE(IMI7000_BUS, imi7000_bus_device)
DECLARE_DEVICE_TYPE(IMI7000_SLOT, imi7000_slot_device)
// slot interface
void imi7000_devices(device_slot_interface &device);
#endif // MAME_BUS_IMI7000_IMI7000_H

View File

@ -25,6 +25,11 @@ class harddisk_image_device : public device_t,
{
public:
// construction/destruction
harddisk_image_device(const machine_config &mconfig, const char *tag, device_t *owner, const char *intf)
: harddisk_image_device(mconfig, tag, owner, (uint32_t)0)
{
set_interface(intf);
}
harddisk_image_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock = 0);
virtual ~harddisk_image_device();

View File

@ -367,11 +367,12 @@ INPUT_PORTS_END
* IRQ6 8087
* IRQ7 ring
*/
MACHINE_CONFIG_START(gridcomp_state::grid1101)
MCFG_DEVICE_ADD("maincpu", I8086, XTAL(15'000'000) / 3)
MCFG_DEVICE_PROGRAM_MAP(grid1101_map)
MCFG_DEVICE_IO_MAP(grid1101_io)
MCFG_DEVICE_IRQ_ACKNOWLEDGE_DRIVER(gridcomp_state, irq_callback)
void gridcomp_state::grid1101(machine_config &config)
{
I8086(config, m_maincpu, XTAL(15'000'000) / 3);
m_maincpu->set_addrmap(AS_PROGRAM, &gridcomp_state::grid1101_map);
m_maincpu->set_addrmap(AS_IO, &gridcomp_state::grid1101_io);
m_maincpu->set_irq_acknowledge_callback(FUNC(gridcomp_state::irq_callback));
MCFG_MACHINE_START_OVERRIDE(gridcomp_state, gridcomp)
MCFG_MACHINE_RESET_OVERRIDE(gridcomp_state, gridcomp)
@ -380,14 +381,14 @@ MACHINE_CONFIG_START(gridcomp_state::grid1101)
m_osp->irq().set_inputline("maincpu", 0);
SPEAKER(config, "mono").front_center();
MCFG_DEVICE_ADD("speaker", SPEAKER_SOUND)
MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 1.00)
SPEAKER_SOUND(config, m_speaker).add_route(ALL_OUTPUTS, "mono", 1.00);
MCFG_SCREEN_ADD_MONOCHROME("screen", LCD, rgb_t::amber()) // actually a kind of EL display
MCFG_SCREEN_UPDATE_DRIVER(gridcomp_state, screen_update_110x)
MCFG_SCREEN_RAW_PARAMS(XTAL(15'000'000)/2, 424, 0, 320, 262, 0, 240) // XXX 66 Hz refresh
MCFG_SCREEN_VBLANK_CALLBACK(WRITELINE(I80130_TAG, i80130_device, ir3_w))
MCFG_SCREEN_PALETTE("palette")
screen_device &screen(SCREEN(config, "screen", SCREEN_TYPE_LCD)); // actually a kind of EL display
screen.set_color(rgb_t::amber());
screen.set_screen_update(FUNC(gridcomp_state::screen_update_110x));
screen.set_raw(XTAL(15'000'000)/2, 424, 0, 320, 262, 0, 240); // XXX 66 Hz refresh
screen.screen_vblank().set(m_osp, FUNC(i80130_device::ir3_w));
screen.set_palette("palette");
PALETTE(config, "palette", palette_device::MONOCHROME);
@ -411,23 +412,24 @@ MACHINE_CONFIG_START(gridcomp_state::grid1101)
hpib.srq_write_cb().set(IEEE488_TAG, FUNC(ieee488_device::host_srq_w));
hpib.atn_write_cb().set(IEEE488_TAG, FUNC(ieee488_device::host_atn_w));
hpib.ren_write_cb().set(IEEE488_TAG, FUNC(ieee488_device::host_ren_w));
MCFG_IEEE488_BUS_ADD()
MCFG_IEEE488_EOI_CALLBACK(WRITELINE("hpib", tms9914_device, eoi_w))
MCFG_IEEE488_DAV_CALLBACK(WRITELINE("hpib", tms9914_device, dav_w))
MCFG_IEEE488_NRFD_CALLBACK(WRITELINE("hpib", tms9914_device, nrfd_w))
MCFG_IEEE488_NDAC_CALLBACK(WRITELINE("hpib", tms9914_device, ndac_w))
MCFG_IEEE488_IFC_CALLBACK(WRITELINE("hpib", tms9914_device, ifc_w))
MCFG_IEEE488_SRQ_CALLBACK(WRITELINE("hpib", tms9914_device, srq_w))
MCFG_IEEE488_ATN_CALLBACK(WRITELINE("hpib", tms9914_device, atn_w))
MCFG_IEEE488_REN_CALLBACK(WRITELINE("hpib", tms9914_device, ren_w))
MCFG_IEEE488_SLOT_ADD("ieee_rem", 0, remote488_devices, nullptr)
ieee488_device &ieee(IEEE488(config, IEEE488_TAG));
ieee.eoi_callback().set("hpib", FUNC(tms9914_device::eoi_w));
ieee.dav_callback().set("hpib", FUNC(tms9914_device::dav_w));
ieee.nrfd_callback().set("hpib", FUNC(tms9914_device::nrfd_w));
ieee.ndac_callback().set("hpib", FUNC(tms9914_device::ndac_w));
ieee.ifc_callback().set("hpib", FUNC(tms9914_device::ifc_w));
ieee.srq_callback().set("hpib", FUNC(tms9914_device::srq_w));
ieee.atn_callback().set("hpib", FUNC(tms9914_device::atn_w));
ieee.ren_callback().set("hpib", FUNC(tms9914_device::ren_w));
IEEE488_SLOT(config, "ieee_rem", 0, remote488_devices, nullptr);
I8274_NEW(config, m_uart8274, XTAL(4'032'000));
MCFG_DEVICE_ADD("modem", I8255, 0)
I8255(config, "modem", 0);
RAM(config, m_ram).set_default_size("256K").set_default_value(0);
MACHINE_CONFIG_END
}
void gridcomp_state::grid1109(machine_config &config)
{
@ -435,12 +437,12 @@ void gridcomp_state::grid1109(machine_config &config)
m_ram->set_default_size("512K");
}
MACHINE_CONFIG_START(gridcomp_state::grid1121)
void gridcomp_state::grid1121(machine_config &config)
{
grid1101(config);
MCFG_DEVICE_MODIFY("maincpu")
MCFG_DEVICE_CLOCK(XTAL(24'000'000) / 3) // XXX
MCFG_DEVICE_PROGRAM_MAP(grid1121_map)
MACHINE_CONFIG_END
m_maincpu->set_clock(XTAL(24'000'000) / 3); // XXX
m_maincpu->set_addrmap(AS_PROGRAM, &gridcomp_state::grid1121_map);
}
void gridcomp_state::grid1129(machine_config &config)
{
@ -448,12 +450,12 @@ void gridcomp_state::grid1129(machine_config &config)
m_ram->set_default_size("512K");
}
MACHINE_CONFIG_START(gridcomp_state::grid1131)
void gridcomp_state::grid1131(machine_config &config)
{
grid1121(config);
MCFG_SCREEN_MODIFY("screen")
MCFG_SCREEN_UPDATE_DRIVER(gridcomp_state, screen_update_113x)
MCFG_SCREEN_RAW_PARAMS(XTAL(15'000'000)/2, 720, 0, 512, 262, 0, 240) // XXX
MACHINE_CONFIG_END
subdevice<screen_device>("screen")->set_screen_update(FUNC(gridcomp_state::screen_update_113x));
subdevice<screen_device>("screen")->set_raw(XTAL(15'000'000)/2, 720, 0, 512, 262, 0, 240); // XXX
}
void gridcomp_state::grid1139(machine_config &config)
{

View File

@ -1372,15 +1372,16 @@ INPUT_PORTS_END
static void hp64k_floppies(device_slot_interface &device)
{
device.option_add("525dd" , FLOPPY_525_DD);
device.option_add("525dd", FLOPPY_525_DD);
}
MACHINE_CONFIG_START(hp64k_state::hp64k)
HP_5061_3011(config , m_cpu , 6250000);
void hp64k_state::hp64k(machine_config &config)
{
HP_5061_3011(config, m_cpu, 6250000);
m_cpu->set_rw_cycles(6 , 6);
m_cpu->set_relative_mode(true);
m_cpu->set_addrmap(AS_PROGRAM , &hp64k_state::cpu_mem_map);
m_cpu->set_addrmap(AS_IO , &hp64k_state::cpu_io_map);
m_cpu->set_addrmap(AS_PROGRAM, &hp64k_state::cpu_mem_map);
m_cpu->set_addrmap(AS_IO, &hp64k_state::cpu_io_map);
m_cpu->set_irq_acknowledge_callback(FUNC(hp64k_state::hp64k_irq_callback));
// Actual keyboard refresh rate should be between 1 and 2 kHz
@ -1397,11 +1398,12 @@ MACHINE_CONFIG_START(hp64k_state::hp64k)
m_crtc->drq_wr_callback().set(FUNC(hp64k_state::hp64k_crtc_drq_w));
m_crtc->vrtc_wr_callback().set(FUNC(hp64k_state::hp64k_crtc_vrtc_w));
MCFG_SCREEN_ADD_MONOCHROME("screen", RASTER, rgb_t::green())
MCFG_SCREEN_UPDATE_DEVICE("crtc", i8275_device, screen_update)
MCFG_SCREEN_REFRESH_RATE(60)
MCFG_SCREEN_SIZE(720, 390)
MCFG_SCREEN_VISIBLE_AREA(0, 720-1, 0, 390-1)
screen_device &screen(SCREEN(config, "screen", SCREEN_TYPE_RASTER));
screen.set_color(rgb_t::green());
screen.set_screen_update("crtc", FUNC(i8275_device::screen_update));
screen.set_refresh_hz(60);
screen.set_size(720, 390);
screen.set_visarea(0, 720-1, 0, 390-1);
PALETTE(config, m_palette, palette_device::MONOCHROME_HIGHLIGHT);
FD1791(config, m_fdc, 4_MHz_XTAL / 4);
@ -1463,21 +1465,21 @@ MACHINE_CONFIG_START(hp64k_state::hp64k)
m_phi->signal_write_cb<phi_device::PHI_488_ATN>().set(IEEE488_TAG, FUNC(ieee488_device::host_atn_w));
m_phi->signal_write_cb<phi_device::PHI_488_REN>().set(IEEE488_TAG, FUNC(ieee488_device::host_ren_w));
MCFG_IEEE488_BUS_ADD()
MCFG_IEEE488_EOI_CALLBACK(WRITELINE(m_phi, phi_device, eoi_w))
MCFG_IEEE488_DAV_CALLBACK(WRITELINE(m_phi, phi_device, dav_w))
MCFG_IEEE488_NRFD_CALLBACK(WRITELINE(m_phi, phi_device, nrfd_w))
MCFG_IEEE488_NDAC_CALLBACK(WRITELINE(m_phi, phi_device, ndac_w))
MCFG_IEEE488_IFC_CALLBACK(WRITELINE(m_phi, phi_device, ifc_w))
MCFG_IEEE488_SRQ_CALLBACK(WRITELINE(m_phi, phi_device, srq_w))
MCFG_IEEE488_ATN_CALLBACK(WRITELINE(m_phi, phi_device, atn_w))
MCFG_IEEE488_REN_CALLBACK(WRITELINE(m_phi, phi_device, ren_w))
MCFG_IEEE488_DIO_CALLBACK(WRITE8(m_phi, phi_device , bus_dio_w))
MCFG_IEEE488_SLOT_ADD("ieee_rem" , 0 , remote488_devices , nullptr)
MACHINE_CONFIG_END
ieee488_device &ieee(IEEE488(config, IEEE488_TAG));
ieee.eoi_callback().set(m_phi, FUNC(phi_device::eoi_w));
ieee.dav_callback().set(m_phi, FUNC(phi_device::dav_w));
ieee.nrfd_callback().set(m_phi, FUNC(phi_device::nrfd_w));
ieee.ndac_callback().set(m_phi, FUNC(phi_device::ndac_w));
ieee.ifc_callback().set(m_phi, FUNC(phi_device::ifc_w));
ieee.srq_callback().set(m_phi, FUNC(phi_device::srq_w));
ieee.atn_callback().set(m_phi, FUNC(phi_device::atn_w));
ieee.ren_callback().set(m_phi, FUNC(phi_device::ren_w));
ieee.dio_callback().set(m_phi, FUNC(phi_device::bus_dio_w));
IEEE488_SLOT(config, "ieee_rem", 0, remote488_devices, nullptr);
}
ROM_START(hp64k)
ROM_REGION(0x8000 , "cpu" , ROMREGION_16BIT | ROMREGION_BE | ROMREGION_INVERT)
ROM_REGION(0x8000, "cpu" , ROMREGION_16BIT | ROMREGION_BE | ROMREGION_INVERT)
ROM_LOAD16_BYTE("64100_80022.bin" , 0x0000 , 0x1000 , CRC(38b2aae5) SHA1(bfd0f126bfaf3724dc501979ad2d46afc41913aa))
ROM_LOAD16_BYTE("64100_80020.bin" , 0x0001 , 0x1000 , CRC(ac01b436) SHA1(be1e827ea1393a95abb02a52ab5cc35dc2cd96e4))
ROM_LOAD16_BYTE("64100_80023.bin" , 0x2000 , 0x1000 , CRC(6b4bc2ce) SHA1(00e6c58ccae9640dc81cb3e92db90a8c69b02a93))

View File

@ -737,9 +737,10 @@ static void hp_ipc_floppies(device_slot_interface &device)
* 2 HP-HIL devices (keyboard, mouse)
* 1 Real-time clock
*/
MACHINE_CONFIG_START(hp_ipc_state::hp_ipc_base)
MCFG_DEVICE_ADD("maincpu", M68000, 15.92_MHz_XTAL / 2)
MCFG_DEVICE_PROGRAM_MAP(hp_ipc_mem_outer)
void hp_ipc_state::hp_ipc_base(machine_config &config)
{
M68000(config, m_maincpu, 15.92_MHz_XTAL / 2);
m_maincpu->set_addrmap(AS_PROGRAM, &hp_ipc_state::hp_ipc_mem_outer);
HP1LL3(config , m_gpu , 24_MHz_XTAL / 8).set_screen("screen");
@ -774,21 +775,23 @@ MACHINE_CONFIG_START(hp_ipc_state::hp_ipc_base)
hpib.srq_write_cb().set(IEEE488_TAG, FUNC(ieee488_device::host_srq_w));
hpib.atn_write_cb().set(IEEE488_TAG, FUNC(ieee488_device::host_atn_w));
hpib.ren_write_cb().set(IEEE488_TAG, FUNC(ieee488_device::host_ren_w));
MCFG_IEEE488_BUS_ADD()
MCFG_IEEE488_EOI_CALLBACK(WRITELINE("hpib" , tms9914_device , eoi_w))
MCFG_IEEE488_DAV_CALLBACK(WRITELINE("hpib" , tms9914_device , dav_w))
MCFG_IEEE488_NRFD_CALLBACK(WRITELINE("hpib" , tms9914_device , nrfd_w))
MCFG_IEEE488_NDAC_CALLBACK(WRITELINE("hpib" , tms9914_device , ndac_w))
MCFG_IEEE488_IFC_CALLBACK(WRITELINE("hpib" , tms9914_device , ifc_w))
MCFG_IEEE488_SRQ_CALLBACK(WRITELINE("hpib" , tms9914_device , srq_w))
MCFG_IEEE488_ATN_CALLBACK(WRITELINE("hpib" , tms9914_device , atn_w))
MCFG_IEEE488_REN_CALLBACK(WRITELINE("hpib" , tms9914_device , ren_w))
MCFG_IEEE488_SLOT_ADD("ieee_rem" , 0 , remote488_devices , nullptr)
ieee488_device &ieee(IEEE488(config, IEEE488_TAG));
ieee.eoi_callback().set("hpib" , FUNC(tms9914_device::eoi_w));
ieee.dav_callback().set("hpib" , FUNC(tms9914_device::dav_w));
ieee.nrfd_callback().set("hpib" , FUNC(tms9914_device::nrfd_w));
ieee.ndac_callback().set("hpib" , FUNC(tms9914_device::ndac_w));
ieee.ifc_callback().set("hpib" , FUNC(tms9914_device::ifc_w));
ieee.srq_callback().set("hpib" , FUNC(tms9914_device::srq_w));
ieee.atn_callback().set("hpib" , FUNC(tms9914_device::atn_w));
ieee.ren_callback().set("hpib" , FUNC(tms9914_device::ren_w));
IEEE488_SLOT(config , "ieee_rem" , 0 , remote488_devices , nullptr);
RAM(config, RAM_TAG).set_default_size("512K").set_extra_options("768K,1M,1576K,2M,3M,4M,5M,6M,7M,7680K");
MACHINE_CONFIG_END
}
MACHINE_CONFIG_START(hp_ipc_state::hp_ipc)
void hp_ipc_state::hp_ipc(machine_config &config)
{
hp_ipc_base(config);
ADDRESS_MAP_BANK(config, "bankdev").set_map(&hp_ipc_state::hp_ipc_mem_inner_9807a).set_options(ENDIANNESS_BIG, 16, 25, 0x1000000);
@ -807,9 +810,10 @@ MACHINE_CONFIG_START(hp_ipc_state::hp_ipc)
m_screen->set_palette("palette");
PALETTE(config, "palette", palette_device::MONOCHROME);
MACHINE_CONFIG_END
}
MACHINE_CONFIG_START(hp_ipc_state::hp9808a)
void hp_ipc_state::hp9808a(machine_config &config)
{
hp_ipc_base(config);
ADDRESS_MAP_BANK(config, "bankdev").set_map(&hp_ipc_state::hp_ipc_mem_inner_9808a).set_options(ENDIANNESS_BIG, 16, 25, 0x1000000);
@ -825,7 +829,7 @@ MACHINE_CONFIG_START(hp_ipc_state::hp9808a)
m_screen->set_palette("palette");
PALETTE(config, "palette", palette_device::MONOCHROME);
MACHINE_CONFIG_END
}
ROM_START(hp_ipc)

View File

@ -408,10 +408,11 @@ READ16_MEMBER(sage2_state::rom_r)
// MACHINE_CONFIG( sage2 )
//-------------------------------------------------
MACHINE_CONFIG_START(sage2_state::sage2)
void sage2_state::sage2(machine_config &config)
{
// basic machine hardware
MCFG_DEVICE_ADD(M68000_TAG, M68000, XTAL(16'000'000)/2)
MCFG_DEVICE_PROGRAM_MAP(sage2_mem)
M68000(config, m_maincpu, XTAL(16'000'000)/2);
m_maincpu->set_addrmap(AS_PROGRAM, &sage2_state::sage2_mem);
// devices
PIC8259(config, m_pic, 0);
@ -482,14 +483,15 @@ MACHINE_CONFIG_START(sage2_state::sage2)
FLOPPY_CONNECTOR(config, UPD765_TAG ":0", sage2_floppies, "525qd", floppy_image_device::default_floppy_formats);
FLOPPY_CONNECTOR(config, UPD765_TAG ":1", sage2_floppies, "525qd", floppy_image_device::default_floppy_formats);
MCFG_IEEE488_BUS_ADD()
IEEE488(config, m_ieee488);
// internal ram
RAM(config, RAM_TAG).set_default_size("512K");
// software list
SOFTWARE_LIST(config, "flop_list").set_original("sage2");
MACHINE_CONFIG_END
}

View File

@ -355,15 +355,12 @@ void softbox_state::ieee488_ifc(int state)
// MACHINE CONFIGURATION
//**************************************************************************
//-------------------------------------------------
// MACHINE_CONFIG( softbox )
//-------------------------------------------------
MACHINE_CONFIG_START(softbox_state::softbox)
void softbox_state::softbox(machine_config &config)
{
// basic machine hardware
MCFG_DEVICE_ADD(Z80_TAG, Z80, XTAL(8'000'000)/2)
MCFG_DEVICE_PROGRAM_MAP(softbox_mem)
MCFG_DEVICE_IO_MAP(softbox_io)
Z80(config, m_maincpu, XTAL(8'000'000)/2);
m_maincpu->set_addrmap(AS_PROGRAM, &softbox_state::softbox_mem);
m_maincpu->set_addrmap(AS_IO, &softbox_state::softbox_io);
// devices
i8251_device &i8251(I8251(config, I8251_TAG, 0));
@ -392,23 +389,19 @@ MACHINE_CONFIG_START(softbox_state::softbox)
dbrg.fr_handler().set(I8251_TAG, FUNC(i8251_device::write_rxc));
dbrg.ft_handler().set(I8251_TAG, FUNC(i8251_device::write_txc));
MCFG_CBM_IEEE488_ADD("c8050")
ieee488_device::add_cbm_devices(config, "c8050");
MCFG_DEVICE_ADD(CORVUS_HDC_TAG, CORVUS_HDC, 0)
MCFG_HARDDISK_ADD("harddisk1")
MCFG_HARDDISK_INTERFACE("corvus_hdd")
MCFG_HARDDISK_ADD("harddisk2")
MCFG_HARDDISK_INTERFACE("corvus_hdd")
MCFG_HARDDISK_ADD("harddisk3")
MCFG_HARDDISK_INTERFACE("corvus_hdd")
MCFG_HARDDISK_ADD("harddisk4")
MCFG_HARDDISK_INTERFACE("corvus_hdd")
CORVUS_HDC(config, m_hdc, 0);
HARDDISK(config, "harddisk1", "corvus_hdd");
HARDDISK(config, "harddisk2", "corvus_hdd");
HARDDISK(config, "harddisk3", "corvus_hdd");
HARDDISK(config, "harddisk4", "corvus_hdd");
MCFG_IMI7000_BUS_ADD("imi5000h", nullptr, nullptr, nullptr)
imi7000_bus_device::add_config(config, "imi5000h", nullptr, nullptr, nullptr);
// software lists
SOFTWARE_LIST(config, "flop_list").set_original("softbox");
MACHINE_CONFIG_END
}