-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 // 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); 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->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)); 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->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->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)); 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)) IEEE488(config, m_ieee);
MCFG_IEEE488_DAV_CALLBACK(WRITELINE(m_tms9914, tms9914_device, dav_w)) m_ieee->eoi_callback().set(m_tms9914, FUNC(tms9914_device::eoi_w));
MCFG_IEEE488_NRFD_CALLBACK(WRITELINE(m_tms9914, tms9914_device, nrfd_w)) m_ieee->dav_callback().set(m_tms9914, FUNC(tms9914_device::dav_w));
MCFG_IEEE488_NDAC_CALLBACK(WRITELINE(m_tms9914, tms9914_device, ndac_w)) m_ieee->nrfd_callback().set(m_tms9914, FUNC(tms9914_device::nrfd_w));
MCFG_IEEE488_IFC_CALLBACK(WRITELINE(m_tms9914, tms9914_device, ifc_w)) m_ieee->ndac_callback().set(m_tms9914, FUNC(tms9914_device::ndac_w));
MCFG_IEEE488_SRQ_CALLBACK(WRITELINE(m_tms9914, tms9914_device, srq_w)) m_ieee->ifc_callback().set(m_tms9914, FUNC(tms9914_device::ifc_w));
MCFG_IEEE488_ATN_CALLBACK(WRITELINE(m_tms9914, tms9914_device, atn_w)) m_ieee->srq_callback().set(m_tms9914, FUNC(tms9914_device::srq_w));
MCFG_IEEE488_REN_CALLBACK(WRITELINE(m_tms9914, tms9914_device, ren_w)) m_ieee->atn_callback().set(m_tms9914, FUNC(tms9914_device::atn_w));
MCFG_IEEE488_SLOT_ADD("ieee_dev", 0, cbm_ieee488_devices, nullptr) 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); 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->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)); 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 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->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)); 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->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->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)); 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)) IEEE488(config, m_ieee);
MCFG_IEEE488_DAV_CALLBACK(WRITELINE(m_tms9914, tms9914_device, dav_w)) m_ieee->eoi_callback().set(m_tms9914, FUNC(tms9914_device::eoi_w));
MCFG_IEEE488_NRFD_CALLBACK(WRITELINE(m_tms9914, tms9914_device, nrfd_w)) m_ieee->dav_callback().set(m_tms9914, FUNC(tms9914_device::dav_w));
MCFG_IEEE488_NDAC_CALLBACK(WRITELINE(m_tms9914, tms9914_device, ndac_w)) m_ieee->nrfd_callback().set(m_tms9914, FUNC(tms9914_device::nrfd_w));
MCFG_IEEE488_IFC_CALLBACK(WRITELINE(m_tms9914, tms9914_device, ifc_w)) m_ieee->ndac_callback().set(m_tms9914, FUNC(tms9914_device::ndac_w));
MCFG_IEEE488_SRQ_CALLBACK(WRITELINE(m_tms9914, tms9914_device, srq_w)) m_ieee->ifc_callback().set(m_tms9914, FUNC(tms9914_device::ifc_w));
MCFG_IEEE488_ATN_CALLBACK(WRITELINE(m_tms9914, tms9914_device, atn_w)) m_ieee->srq_callback().set(m_tms9914, FUNC(tms9914_device::srq_w));
MCFG_IEEE488_REN_CALLBACK(WRITELINE(m_tms9914, tms9914_device, ren_w)) m_ieee->atn_callback().set(m_tms9914, FUNC(tms9914_device::atn_w));
MCFG_IEEE488_SLOT_ADD("ieee_dev", 0, cbm_ieee488_devices, nullptr) 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 // 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 // TODO: Implement MC68488
//MCFG_IEEE488_BUS_ADD() //IEEE488(config, m_ieee);
//MCFG_IEEE488_EOI_CALLBACK(WRITELINE(m_mc68488, mc68488_device, eoi_w)) //m_ieee->eoi_callback(m_mc68488, FUNC(mc68488_device::eoi_w));
//MCFG_IEEE488_DAV_CALLBACK(WRITELINE(m_mc68488, mc68488_device, dav_w)) //m_ieee->dav_callback(m_mc68488, FUNC(mc68488_device::dav_w));
//MCFG_IEEE488_NRFD_CALLBACK(WRITELINE(m_mc68488, mc68488_device, nrfd_w)) //m_ieee->nrfd_callback(m_mc68488, FUNC(mc68488_device::nrfd_w));
//MCFG_IEEE488_NDAC_CALLBACK(WRITELINE(m_mc68488, mc68488_device, ndac_w)) //m_ieee->ndac_callback(m_mc68488, FUNC(mc68488_device::ndac_w));
//MCFG_IEEE488_IFC_CALLBACK(WRITELINE(m_mc68488, mc68488_device, ifc_w)) //m_ieee->ifc_callback(m_mc68488, FUNC(mc68488_device::ifc_w));
//MCFG_IEEE488_SRQ_CALLBACK(WRITELINE(m_mc68488, mc68488_device, srq_w)) //m_ieee->srq_callback(m_mc68488, FUNC(mc68488_device::srq_w));
//MCFG_IEEE488_ATN_CALLBACK(WRITELINE(m_mc68488, mc68488_device, atn_w)) //m_ieee->atn_callback(m_mc68488, FUNC(mc68488_device::atn_w));
//MCFG_IEEE488_REN_CALLBACK(WRITELINE(m_mc68488, mc68488_device, ren_w)) //m_ieee->ren_callback(m_mc68488, FUNC(mc68488_device::ren_w));
//MCFG_IEEE488_SLOT_ADD("ieee_dev", 0, cbm_ieee488_devices, nullptr) //IEEE488_SLOT(config, "ieee_dev", 0, cbm_ieee488_devices, nullptr);
// TODO: LED's for Bus Active, Byte Out, and Byte In // TODO: LED's for Bus Active, Byte Out, and Byte In
//MACHINE_CONFIG_END //}
//------------------------------------------------- //-------------------------------------------------
// rom_region - device-specific ROM region // 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 // device_add_mconfig - add device configuration
//------------------------------------------------- //-------------------------------------------------
MACHINE_CONFIG_START(interpod_device::device_add_mconfig) void interpod_device::device_add_mconfig(machine_config &config)
MCFG_DEVICE_ADD(R6502_TAG, M6502, 1000000) {
MCFG_DEVICE_PROGRAM_MAP(interpod_mem) M6502(config, m_maincpu, 1000000);
m_maincpu->set_addrmap(AS_PROGRAM, &interpod_device::interpod_mem);
MCFG_DEVICE_ADD(R6522_TAG, VIA6522, 1000000) VIA6522(config, m_via, 1000000);
MCFG_DEVICE_ADD(R6532_TAG, MOS6532_NEW, 1000000) MOS6532_NEW(config, m_riot, 1000000);
MCFG_DEVICE_ADD(MC6850_TAG, ACIA6850, 0) ACIA6850(config, m_acia, 0);
MCFG_CBM_IEEE488_ADD(nullptr) ieee488_device::add_cbm_devices(config, nullptr);
MACHINE_CONFIG_END }
//************************************************************************** //**************************************************************************

View File

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

View File

@ -12,8 +12,12 @@
#pragma once #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 // 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 // TYPE DEFINITIONS
//************************************************************************** //**************************************************************************
@ -97,16 +42,6 @@ public:
// construction/destruction // construction/destruction
ieee488_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock = 0); 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 eoi_callback() { return m_write_eoi.bind(); }
auto dav_callback() { return m_write_dav.bind(); } auto dav_callback() { return m_write_dav.bind(); }
auto nrfd_callback() { return m_write_nrfd.bind(); } auto nrfd_callback() { return m_write_nrfd.bind(); }
@ -115,6 +50,11 @@ public:
auto srq_callback() { return m_write_srq.bind(); } auto srq_callback() { return m_write_srq.bind(); }
auto atn_callback() { return m_write_atn.bind(); } auto atn_callback() { return m_write_atn.bind(); }
auto ren_callback() { return m_write_ren.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(); } auto dio_callback() { return m_write_dio.bind(); }
void add_device(ieee488_slot_device *slot, device_t *target); 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 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); } 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: protected:
enum enum
{ {
@ -208,8 +162,6 @@ private:
uint8_t m_dio; uint8_t m_dio;
}; };
DECLARE_DEVICE_TYPE(IEEE488, ieee488_device)
// ======================> ieee488_slot_device // ======================> ieee488_slot_device
@ -218,6 +170,16 @@ class ieee488_slot_device : public device_t,
{ {
public: public:
// construction/destruction // 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); 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); 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; int m_address;
}; };
DECLARE_DEVICE_TYPE(IEEE488_SLOT, ieee488_slot_device)
// ======================> device_ieee488_interface // ======================> device_ieee488_interface
@ -280,10 +240,4 @@ private:
device_ieee488_interface *m_next; 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 #endif // MAME_BUS_IEEE488_IEEE488_H

View File

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

View File

@ -31,8 +31,10 @@
#pragma once #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 // 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 // TYPE DEFINITIONS
//************************************************************************** //**************************************************************************
@ -73,7 +58,17 @@ class imi7000_bus_device : public device_t
{ {
public: public:
// construction/destruction // 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: protected:
// device-level overrides // device-level overrides
@ -90,6 +85,15 @@ class imi7000_slot_device : public device_t,
{ {
public: public:
// construction/destruction // 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); imi7000_slot_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock);
protected: protected:
@ -113,13 +117,4 @@ protected:
imi7000_slot_device *m_slot; 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 #endif // MAME_BUS_IMI7000_IMI7000_H

View File

@ -25,6 +25,11 @@ class harddisk_image_device : public device_t,
{ {
public: public:
// construction/destruction // 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); harddisk_image_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock = 0);
virtual ~harddisk_image_device(); virtual ~harddisk_image_device();

View File

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

View File

@ -1372,15 +1372,16 @@ INPUT_PORTS_END
static void hp64k_floppies(device_slot_interface &device) 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) void hp64k_state::hp64k(machine_config &config)
HP_5061_3011(config , m_cpu , 6250000); {
HP_5061_3011(config, m_cpu, 6250000);
m_cpu->set_rw_cycles(6 , 6); m_cpu->set_rw_cycles(6 , 6);
m_cpu->set_relative_mode(true); m_cpu->set_relative_mode(true);
m_cpu->set_addrmap(AS_PROGRAM , &hp64k_state::cpu_mem_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_addrmap(AS_IO, &hp64k_state::cpu_io_map);
m_cpu->set_irq_acknowledge_callback(FUNC(hp64k_state::hp64k_irq_callback)); m_cpu->set_irq_acknowledge_callback(FUNC(hp64k_state::hp64k_irq_callback));
// Actual keyboard refresh rate should be between 1 and 2 kHz // 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->drq_wr_callback().set(FUNC(hp64k_state::hp64k_crtc_drq_w));
m_crtc->vrtc_wr_callback().set(FUNC(hp64k_state::hp64k_crtc_vrtc_w)); m_crtc->vrtc_wr_callback().set(FUNC(hp64k_state::hp64k_crtc_vrtc_w));
MCFG_SCREEN_ADD_MONOCHROME("screen", RASTER, rgb_t::green()) screen_device &screen(SCREEN(config, "screen", SCREEN_TYPE_RASTER));
MCFG_SCREEN_UPDATE_DEVICE("crtc", i8275_device, screen_update) screen.set_color(rgb_t::green());
MCFG_SCREEN_REFRESH_RATE(60) screen.set_screen_update("crtc", FUNC(i8275_device::screen_update));
MCFG_SCREEN_SIZE(720, 390) screen.set_refresh_hz(60);
MCFG_SCREEN_VISIBLE_AREA(0, 720-1, 0, 390-1) screen.set_size(720, 390);
screen.set_visarea(0, 720-1, 0, 390-1);
PALETTE(config, m_palette, palette_device::MONOCHROME_HIGHLIGHT); PALETTE(config, m_palette, palette_device::MONOCHROME_HIGHLIGHT);
FD1791(config, m_fdc, 4_MHz_XTAL / 4); 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_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)); m_phi->signal_write_cb<phi_device::PHI_488_REN>().set(IEEE488_TAG, FUNC(ieee488_device::host_ren_w));
MCFG_IEEE488_BUS_ADD() ieee488_device &ieee(IEEE488(config, IEEE488_TAG));
MCFG_IEEE488_EOI_CALLBACK(WRITELINE(m_phi, phi_device, eoi_w)) ieee.eoi_callback().set(m_phi, FUNC(phi_device::eoi_w));
MCFG_IEEE488_DAV_CALLBACK(WRITELINE(m_phi, phi_device, dav_w)) ieee.dav_callback().set(m_phi, FUNC(phi_device::dav_w));
MCFG_IEEE488_NRFD_CALLBACK(WRITELINE(m_phi, phi_device, nrfd_w)) ieee.nrfd_callback().set(m_phi, FUNC(phi_device::nrfd_w));
MCFG_IEEE488_NDAC_CALLBACK(WRITELINE(m_phi, phi_device, ndac_w)) ieee.ndac_callback().set(m_phi, FUNC(phi_device::ndac_w));
MCFG_IEEE488_IFC_CALLBACK(WRITELINE(m_phi, phi_device, ifc_w)) ieee.ifc_callback().set(m_phi, FUNC(phi_device::ifc_w));
MCFG_IEEE488_SRQ_CALLBACK(WRITELINE(m_phi, phi_device, srq_w)) ieee.srq_callback().set(m_phi, FUNC(phi_device::srq_w));
MCFG_IEEE488_ATN_CALLBACK(WRITELINE(m_phi, phi_device, atn_w)) ieee.atn_callback().set(m_phi, FUNC(phi_device::atn_w));
MCFG_IEEE488_REN_CALLBACK(WRITELINE(m_phi, phi_device, ren_w)) ieee.ren_callback().set(m_phi, FUNC(phi_device::ren_w));
MCFG_IEEE488_DIO_CALLBACK(WRITE8(m_phi, phi_device , bus_dio_w)) ieee.dio_callback().set(m_phi, FUNC(phi_device::bus_dio_w));
MCFG_IEEE488_SLOT_ADD("ieee_rem" , 0 , remote488_devices , nullptr) IEEE488_SLOT(config, "ieee_rem", 0, remote488_devices, nullptr);
MACHINE_CONFIG_END }
ROM_START(hp64k) 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_80022.bin" , 0x0000 , 0x1000 , CRC(38b2aae5) SHA1(bfd0f126bfaf3724dc501979ad2d46afc41913aa))
ROM_LOAD16_BYTE("64100_80020.bin" , 0x0001 , 0x1000 , CRC(ac01b436) SHA1(be1e827ea1393a95abb02a52ab5cc35dc2cd96e4)) ROM_LOAD16_BYTE("64100_80020.bin" , 0x0001 , 0x1000 , CRC(ac01b436) SHA1(be1e827ea1393a95abb02a52ab5cc35dc2cd96e4))
ROM_LOAD16_BYTE("64100_80023.bin" , 0x2000 , 0x1000 , CRC(6b4bc2ce) SHA1(00e6c58ccae9640dc81cb3e92db90a8c69b02a93)) 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) * 2 HP-HIL devices (keyboard, mouse)
* 1 Real-time clock * 1 Real-time clock
*/ */
MACHINE_CONFIG_START(hp_ipc_state::hp_ipc_base) void hp_ipc_state::hp_ipc_base(machine_config &config)
MCFG_DEVICE_ADD("maincpu", M68000, 15.92_MHz_XTAL / 2) {
MCFG_DEVICE_PROGRAM_MAP(hp_ipc_mem_outer) 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"); 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.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.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)); 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)) ieee488_device &ieee(IEEE488(config, IEEE488_TAG));
MCFG_IEEE488_DAV_CALLBACK(WRITELINE("hpib" , tms9914_device , dav_w)) ieee.eoi_callback().set("hpib" , FUNC(tms9914_device::eoi_w));
MCFG_IEEE488_NRFD_CALLBACK(WRITELINE("hpib" , tms9914_device , nrfd_w)) ieee.dav_callback().set("hpib" , FUNC(tms9914_device::dav_w));
MCFG_IEEE488_NDAC_CALLBACK(WRITELINE("hpib" , tms9914_device , ndac_w)) ieee.nrfd_callback().set("hpib" , FUNC(tms9914_device::nrfd_w));
MCFG_IEEE488_IFC_CALLBACK(WRITELINE("hpib" , tms9914_device , ifc_w)) ieee.ndac_callback().set("hpib" , FUNC(tms9914_device::ndac_w));
MCFG_IEEE488_SRQ_CALLBACK(WRITELINE("hpib" , tms9914_device , srq_w)) ieee.ifc_callback().set("hpib" , FUNC(tms9914_device::ifc_w));
MCFG_IEEE488_ATN_CALLBACK(WRITELINE("hpib" , tms9914_device , atn_w)) ieee.srq_callback().set("hpib" , FUNC(tms9914_device::srq_w));
MCFG_IEEE488_REN_CALLBACK(WRITELINE("hpib" , tms9914_device , ren_w)) ieee.atn_callback().set("hpib" , FUNC(tms9914_device::atn_w));
MCFG_IEEE488_SLOT_ADD("ieee_rem" , 0 , remote488_devices , nullptr) 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"); 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); 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); 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"); m_screen->set_palette("palette");
PALETTE(config, "palette", palette_device::MONOCHROME); 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); 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); 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"); m_screen->set_palette("palette");
PALETTE(config, "palette", palette_device::MONOCHROME); PALETTE(config, "palette", palette_device::MONOCHROME);
MACHINE_CONFIG_END }
ROM_START(hp_ipc) ROM_START(hp_ipc)

View File

@ -408,10 +408,11 @@ READ16_MEMBER(sage2_state::rom_r)
// MACHINE_CONFIG( sage2 ) // MACHINE_CONFIG( sage2 )
//------------------------------------------------- //-------------------------------------------------
MACHINE_CONFIG_START(sage2_state::sage2) void sage2_state::sage2(machine_config &config)
{
// basic machine hardware // basic machine hardware
MCFG_DEVICE_ADD(M68000_TAG, M68000, XTAL(16'000'000)/2) M68000(config, m_maincpu, XTAL(16'000'000)/2);
MCFG_DEVICE_PROGRAM_MAP(sage2_mem) m_maincpu->set_addrmap(AS_PROGRAM, &sage2_state::sage2_mem);
// devices // devices
PIC8259(config, m_pic, 0); 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 ":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); 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 // internal ram
RAM(config, RAM_TAG).set_default_size("512K"); RAM(config, RAM_TAG).set_default_size("512K");
// software list // software list
SOFTWARE_LIST(config, "flop_list").set_original("sage2"); 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 CONFIGURATION
//************************************************************************** //**************************************************************************
//------------------------------------------------- void softbox_state::softbox(machine_config &config)
// MACHINE_CONFIG( softbox ) {
//-------------------------------------------------
MACHINE_CONFIG_START(softbox_state::softbox)
// basic machine hardware // basic machine hardware
MCFG_DEVICE_ADD(Z80_TAG, Z80, XTAL(8'000'000)/2) Z80(config, m_maincpu, XTAL(8'000'000)/2);
MCFG_DEVICE_PROGRAM_MAP(softbox_mem) m_maincpu->set_addrmap(AS_PROGRAM, &softbox_state::softbox_mem);
MCFG_DEVICE_IO_MAP(softbox_io) m_maincpu->set_addrmap(AS_IO, &softbox_state::softbox_io);
// devices // devices
i8251_device &i8251(I8251(config, I8251_TAG, 0)); 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.fr_handler().set(I8251_TAG, FUNC(i8251_device::write_rxc));
dbrg.ft_handler().set(I8251_TAG, FUNC(i8251_device::write_txc)); 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) CORVUS_HDC(config, m_hdc, 0);
MCFG_HARDDISK_ADD("harddisk1") HARDDISK(config, "harddisk1", "corvus_hdd");
MCFG_HARDDISK_INTERFACE("corvus_hdd") HARDDISK(config, "harddisk2", "corvus_hdd");
MCFG_HARDDISK_ADD("harddisk2") HARDDISK(config, "harddisk3", "corvus_hdd");
MCFG_HARDDISK_INTERFACE("corvus_hdd") HARDDISK(config, "harddisk4", "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) imi7000_bus_device::add_config(config, "imi5000h", nullptr, nullptr, nullptr);
// software lists // software lists
SOFTWARE_LIST(config, "flop_list").set_original("softbox"); SOFTWARE_LIST(config, "flop_list").set_original("softbox");
MACHINE_CONFIG_END }