summaryrefslogtreecommitdiffstatshomepage
path: root/src/devices/bus/hp9845_io/98032.h
diff options
context:
space:
mode:
Diffstat (limited to 'src/devices/bus/hp9845_io/98032.h')
-rw-r--r--src/devices/bus/hp9845_io/98032.h18
1 files changed, 10 insertions, 8 deletions
diff --git a/src/devices/bus/hp9845_io/98032.h b/src/devices/bus/hp9845_io/98032.h
index 94013ca589f..4eaa33ec786 100644
--- a/src/devices/bus/hp9845_io/98032.h
+++ b/src/devices/bus/hp9845_io/98032.h
@@ -14,9 +14,11 @@
#pragma once
#include "hp9845_io.h"
+
+class device_hp98032_gpio_interface;
class hp98032_gpio_slot_device;
-class hp98032_io_card_device : public hp9845_io_card_device
+class hp98032_io_card_device : public device_t, public device_hp9845_io_interface
{
public:
// construction/destruction
@@ -61,7 +63,7 @@ private:
// The GPIO interface of HP98032 cards
class hp98032_gpio_slot_device : public device_t,
- public device_slot_interface
+ public device_single_card_slot_interface<device_hp98032_gpio_interface>
{
public:
// construction/destruction
@@ -134,10 +136,11 @@ private:
};
// A device connected to GPIO port of HP98032
-class hp98032_gpio_card_device : public device_t,
- public device_slot_card_interface
+class device_hp98032_gpio_interface : public device_interface
{
public:
+ virtual ~device_hp98032_gpio_interface();
+
virtual uint16_t get_jumpers() const = 0;
virtual uint16_t input_r() const = 0;
virtual uint8_t ext_status_r() const = 0;
@@ -148,9 +151,7 @@ public:
virtual DECLARE_WRITE_LINE_MEMBER(preset_w) = 0;
protected:
- // construction/destruction
- hp98032_gpio_card_device(const machine_config &mconfig, device_type type, const char *tag, device_t *owner, uint32_t clock);
- virtual ~hp98032_gpio_card_device();
+ device_hp98032_gpio_interface(const machine_config &mconfig, device_t &device);
DECLARE_WRITE_LINE_MEMBER(pflg_w);
DECLARE_WRITE_LINE_MEMBER(psts_w);
@@ -158,7 +159,7 @@ protected:
};
// GPIO loopback connector for HP98032
-class hp98032_gpio_loopback_device : public hp98032_gpio_card_device
+class hp98032_gpio_loopback_device : public device_t, public device_hp98032_gpio_interface
{
public:
// construction/destruction
@@ -178,6 +179,7 @@ protected:
// device-level overrides
virtual void device_start() override;
virtual void device_reset() override;
+
private:
uint16_t m_output;
uint8_t m_ext_control;