summaryrefslogtreecommitdiffstatshomepage
path: root/src/devices/bus/nasbus/nasbus.h
diff options
context:
space:
mode:
Diffstat (limited to 'src/devices/bus/nasbus/nasbus.h')
-rw-r--r--src/devices/bus/nasbus/nasbus.h45
1 files changed, 26 insertions, 19 deletions
diff --git a/src/devices/bus/nasbus/nasbus.h b/src/devices/bus/nasbus/nasbus.h
index 7d6151d513e..c20445c741c 100644
--- a/src/devices/bus/nasbus/nasbus.h
+++ b/src/devices/bus/nasbus/nasbus.h
@@ -87,10 +87,10 @@
***************************************************************************/
-#pragma once
+#ifndef MAME_BUS_NASBUS_NASBUS_H
+#define MAME_BUS_NASBUS_NASBUS_H
-#ifndef __NASBUS_H__
-#define __NASBUS_H__
+#pragma once
@@ -131,34 +131,34 @@ class nasbus_slot_device : public device_t, public device_slot_interface
public:
// construction/destruction
nasbus_slot_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock);
- nasbus_slot_device(const machine_config &mconfig, device_type type, const char *name,
- const char *tag, device_t *owner, uint32_t clock, const char *shortname, const char *source);
-
- // device-level overrides
- virtual void device_start() override;
-
// inline configuration
static void set_nasbus_slot(device_t &device, device_t *owner, const char *nasbus_tag);
protected:
+ nasbus_slot_device(const machine_config &mconfig, device_type type, const char *tag, device_t *owner, uint32_t clock);
+
+ // device-level overrides
+ virtual void device_start() override;
+
// configuration
const char *m_nasbus_tag;
};
// device type definition
-extern const device_type NASBUS_SLOT;
+DECLARE_DEVICE_TYPE(NASBUS_SLOT, nasbus_slot_device)
// ======================> nasbus_device
class nasbus_device : public device_t
{
+ friend class device_nasbus_card_interface;
public:
// construction/destruction
nasbus_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock);
virtual ~nasbus_device();
- template<class _Object> static devcb_base &set_ram_disable_handler(device_t &device, _Object object)
- { return downcast<nasbus_device &>(device).m_ram_disable_handler.set_callback(object); }
+ template <class Object> static devcb_base &set_ram_disable_handler(device_t &device, Object &&cb)
+ { return downcast<nasbus_device &>(device).m_ram_disable_handler.set_callback(std::forward<Object>(cb)); }
void add_card(device_nasbus_card_interface *card);
@@ -168,42 +168,49 @@ public:
// from cards
DECLARE_WRITE_LINE_MEMBER( ram_disable_w );
- address_space *m_program;
- address_space *m_io;
-
protected:
// device-level overrides
virtual void device_start() override;
virtual void device_reset() override;
private:
+ address_space *m_program;
+ address_space *m_io;
+
simple_list<device_nasbus_card_interface> m_dev;
devcb_write_line m_ram_disable_handler;
};
// device type definition
-extern const device_type NASBUS;
+DECLARE_DEVICE_TYPE(NASBUS, nasbus_device)
// ======================> device_nasbus_interface
class device_nasbus_card_interface : public device_slot_card_interface
{
+ template <class ElementType> friend class simple_list;
public:
// construction/destruction
- device_nasbus_card_interface(const machine_config &mconfig, device_t &device);
virtual ~device_nasbus_card_interface();
void set_nasbus_device(nasbus_device *nasbus);
device_nasbus_card_interface *next() const { return m_next; }
- device_nasbus_card_interface *m_next;
protected:
+ device_nasbus_card_interface(const machine_config &mconfig, device_t &device);
+
+ address_space &program_space() { return *m_nasbus->m_program; }
+ address_space &io_space() { return *m_nasbus->m_io; }
+
nasbus_device *m_nasbus;
+
+private:
+ device_nasbus_card_interface *m_next;
};
// include here so drivers don't need to
#include "cards.h"
-#endif // __NASBUS_H__
+#endif // MAME_BUS_NASBUS_NASBUS_H