diff options
Diffstat (limited to 'src/devices/machine/genpc.h')
-rw-r--r-- | src/devices/machine/genpc.h | 29 |
1 files changed, 8 insertions, 21 deletions
diff --git a/src/devices/machine/genpc.h b/src/devices/machine/genpc.h index 4c412a9a720..e222b975873 100644 --- a/src/devices/machine/genpc.h +++ b/src/devices/machine/genpc.h @@ -23,11 +23,6 @@ #include "bus/pc_kbd/pc_kbdc.h" -#define MCFG_IBM5160_MOTHERBOARD_ADD(_tag, _cputag) \ - MCFG_DEVICE_ADD(_tag, IBM5160_MOTHERBOARD, 0) \ - downcast<ibm5160_mb_device &>(*device).set_cputag(_cputag); \ - (*device->subdevice<isa8_device>("isa")).set_cputag(_cputag); - // ======================> ibm5160_mb_device class ibm5160_mb_device : public device_t { @@ -36,7 +31,12 @@ public: ibm5160_mb_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); // inline configuration - void set_cputag(const char *tag) { m_maincpu.set_tag(tag); } + template <typename T> void set_cputag(T &&tag) + { + m_maincpu.set_tag(std::forward<T>(tag)); + subdevice<isa8_device>("isa")->set_memspace(std::forward<T>(tag), AS_PROGRAM); + subdevice<isa8_device>("isa")->set_iospace(std::forward<T>(tag), AS_IO); + } void map(address_map &map); @@ -119,6 +119,7 @@ protected: DECLARE_WRITE_LINE_MEMBER( pc_dack1_w ); DECLARE_WRITE_LINE_MEMBER( pc_dack2_w ); DECLARE_WRITE_LINE_MEMBER( pc_dack3_w ); + DECLARE_WRITE_LINE_MEMBER( iochck_w ); void pc_select_dma_channel(int channel, bool state); }; @@ -128,11 +129,6 @@ protected: DECLARE_DEVICE_TYPE(IBM5160_MOTHERBOARD, ibm5160_mb_device) -#define MCFG_IBM5150_MOTHERBOARD_ADD(_tag, _cputag) \ - MCFG_DEVICE_ADD(_tag, IBM5150_MOTHERBOARD, 0) \ - downcast<ibm5150_mb_device &>(*device).set_cputag(_cputag); \ - (*device->subdevice<isa8_device>("isa")).set_cputag(_cputag); - // ======================> ibm5150_mb_device class ibm5150_mb_device : public ibm5160_mb_device { @@ -162,12 +158,6 @@ private: // device type definition DECLARE_DEVICE_TYPE(IBM5150_MOTHERBOARD, ibm5150_mb_device) - -#define MCFG_EC1841_MOTHERBOARD_ADD(_tag, _cputag) \ - MCFG_DEVICE_ADD(_tag, EC1841_MOTHERBOARD, 0) \ - downcast<ec1841_mb_device &>(*device).set_cputag(_cputag); \ - (*device->subdevice<isa8_device>("isa")).set_cputag(_cputag); - class ec1841_mb_device : public ibm5160_mb_device { public: @@ -189,16 +179,13 @@ private: DECLARE_DEVICE_TYPE(EC1841_MOTHERBOARD, ec1841_mb_device) -#define MCFG_PCNOPPI_MOTHERBOARD_ADD(_tag, _cputag) \ - MCFG_DEVICE_ADD(_tag, PCNOPPI_MOTHERBOARD, 0) \ - downcast<pc_noppi_mb_device &>(*device).set_cputag(_cputag); \ - (*device->subdevice<isa8_device>("isa")).set_cputag(_cputag); class pc_noppi_mb_device : public ibm5160_mb_device { public: // construction/destruction pc_noppi_mb_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); + uint8_t pit_out2() { return m_pit_out2; } // helper for near-clones with multifunction ics instead of 8255s void map(address_map &map); |