summaryrefslogtreecommitdiffstatshomepage
path: root/src/devices/bus/neogeo_ctrl/ctrl.h
diff options
context:
space:
mode:
Diffstat (limited to 'src/devices/bus/neogeo_ctrl/ctrl.h')
-rw-r--r--src/devices/bus/neogeo_ctrl/ctrl.h52
1 files changed, 50 insertions, 2 deletions
diff --git a/src/devices/bus/neogeo_ctrl/ctrl.h b/src/devices/bus/neogeo_ctrl/ctrl.h
index 0505d35d3eb..437dc8addd3 100644
--- a/src/devices/bus/neogeo_ctrl/ctrl.h
+++ b/src/devices/bus/neogeo_ctrl/ctrl.h
@@ -19,6 +19,7 @@
//**************************************************************************
class neogeo_control_port_device;
+class neogeo_ctrl_edge_port_device;
// ======================> device_neogeo_control_port_interface
@@ -60,8 +61,50 @@ protected:
};
+// ======================> device_neogeo_ctrl_edge_interface
+
+class device_neogeo_ctrl_edge_interface : public device_slot_card_interface
+{
+public:
+ // construction/destruction
+ device_neogeo_ctrl_edge_interface(const machine_config &mconfig, device_t &device);
+ virtual ~device_neogeo_ctrl_edge_interface();
+
+ virtual UINT8 read_start_sel() { return 0xff; }
+ virtual DECLARE_READ8_MEMBER( in0_r ) { return 0xff; }
+ virtual DECLARE_READ8_MEMBER( in1_r ) { return 0xff; }
+ virtual void write_ctrlsel(UINT8 data) { }
+
+protected:
+ neogeo_ctrl_edge_port_device *m_port;
+};
+
+// ======================> neogeo_ctrl_edge_port_device
+
+class neogeo_ctrl_edge_port_device : public device_t,
+ public device_slot_interface
+{
+public:
+ // construction/destruction
+ neogeo_ctrl_edge_port_device(const machine_config &mconfig, const char *tag, device_t *owner, UINT32 clock);
+ virtual ~neogeo_ctrl_edge_port_device();
+
+ UINT8 read_start_sel();
+ DECLARE_READ8_MEMBER( in0_r );
+ DECLARE_READ8_MEMBER( in1_r );
+ void write_ctrlsel(UINT8 data);
+
+protected:
+ // device-level overrides
+ virtual void device_start() override;
+
+ device_neogeo_ctrl_edge_interface *m_device;
+};
+
+
// device type definition
extern const device_type NEOGEO_CONTROL_PORT;
+extern const device_type NEOGEO_CTRL_EDGE_CONNECTOR;
//**************************************************************************
@@ -72,11 +115,16 @@ extern const device_type NEOGEO_CONTROL_PORT;
MCFG_DEVICE_ADD(_tag, NEOGEO_CONTROL_PORT, 0) \
MCFG_DEVICE_SLOT_INTERFACE(_slot_intf, _def_slot, _fixed)
+#define MCFG_NEOGEO_CONTROL_EDGE_CONNECTOR_ADD(_tag, _slot_intf, _def_slot, _fixed) \
+ MCFG_DEVICE_ADD(_tag, NEOGEO_CTRL_EDGE_CONNECTOR, 0) \
+ MCFG_DEVICE_SLOT_INTERFACE(_slot_intf, _def_slot, _fixed)
+
SLOT_INTERFACE_EXTERN( neogeo_controls );
-SLOT_INTERFACE_EXTERN( neogeo_arc_ctrls );
-SLOT_INTERFACE_EXTERN( neogeo_kiz4p );
+SLOT_INTERFACE_EXTERN( neogeo_arc_edge );
+SLOT_INTERFACE_EXTERN( neogeo_arc_edge_fixed );
+SLOT_INTERFACE_EXTERN( neogeo_arc_pin15 );
#endif