summaryrefslogtreecommitdiffstatshomepage
path: root/src/devices/machine/genpc.h
diff options
context:
space:
mode:
Diffstat (limited to 'src/devices/machine/genpc.h')
-rw-r--r--src/devices/machine/genpc.h29
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);