diff options
author | 2019-01-25 19:12:43 -0500 | |
---|---|---|
committer | 2019-01-25 19:19:46 -0500 | |
commit | e50319dedb9697cdca5c200f7cdbb66bb342c37d (patch) | |
tree | 47ba345e39d8b0723ccb3c85410982dc38f98bd0 /src/devices/machine/genpc.h | |
parent | 39fd873e585bbcef5a947730f991b5f5d754dee4 (diff) |
isa: Modernize device configuration (nw)
- Configure spaces without using cpu_device
- Remove NMI enable logic (the flag is usually a property of the bus controller, not the bus itself)
- Default many unnecessary 8253 and 8259 clocks
Note that with this change, ISA devices can no longer cause a NMI on the host CPU unless the IOCHCK callback is explicitly configured.
Diffstat (limited to 'src/devices/machine/genpc.h')
-rw-r--r-- | src/devices/machine/genpc.h | 20 |
1 files changed, 11 insertions, 9 deletions
diff --git a/src/devices/machine/genpc.h b/src/devices/machine/genpc.h index 4c412a9a720..107255431ec 100644 --- a/src/devices/machine/genpc.h +++ b/src/devices/machine/genpc.h @@ -25,8 +25,7 @@ #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); + downcast<ibm5160_mb_device &>(*device).set_cputag(_cputag); // ======================> ibm5160_mb_device class ibm5160_mb_device : public device_t @@ -36,7 +35,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 +123,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); }; @@ -130,8 +135,7 @@ 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); + downcast<ibm5150_mb_device &>(*device).set_cputag(_cputag); // ======================> ibm5150_mb_device class ibm5150_mb_device : public ibm5160_mb_device @@ -165,8 +169,7 @@ 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); + downcast<ec1841_mb_device &>(*device).set_cputag(_cputag); class ec1841_mb_device : public ibm5160_mb_device { @@ -191,8 +194,7 @@ 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); + downcast<pc_noppi_mb_device &>(*device).set_cputag(_cputag); class pc_noppi_mb_device : public ibm5160_mb_device { |