summaryrefslogtreecommitdiffstatshomepage
path: root/src/devices/machine/atadev.h
diff options
context:
space:
mode:
Diffstat (limited to 'src/devices/machine/atadev.h')
-rw-r--r--src/devices/machine/atadev.h44
1 files changed, 44 insertions, 0 deletions
diff --git a/src/devices/machine/atadev.h b/src/devices/machine/atadev.h
new file mode 100644
index 00000000000..3b96a6b580c
--- /dev/null
+++ b/src/devices/machine/atadev.h
@@ -0,0 +1,44 @@
+// license:BSD-3-Clause
+// copyright-holders:smf
+/***************************************************************************
+
+ atadev.h
+
+ ATA Device implementation.
+
+***************************************************************************/
+
+#pragma once
+
+#ifndef __ATADEV_H__
+#define __ATADEV_H__
+
+#include "emu.h"
+
+// ======================> ata_device_interface
+
+class ata_device_interface
+{
+public:
+ ata_device_interface(const machine_config &mconfig, device_t &device);
+ virtual ~ata_device_interface() {}
+
+ virtual UINT16 read_dma() = 0;
+ virtual DECLARE_READ16_MEMBER(read_cs0) = 0;
+ virtual DECLARE_READ16_MEMBER(read_cs1) = 0;
+
+ virtual void write_dma(UINT16 data) = 0;
+ virtual DECLARE_WRITE16_MEMBER(write_cs0) = 0;
+ virtual DECLARE_WRITE16_MEMBER(write_cs1) = 0;
+ virtual DECLARE_WRITE_LINE_MEMBER(write_dmack) = 0;
+ virtual DECLARE_WRITE_LINE_MEMBER(write_csel) = 0;
+ virtual DECLARE_WRITE_LINE_MEMBER(write_dasp) = 0;
+ virtual DECLARE_WRITE_LINE_MEMBER(write_pdiag) = 0;
+
+ devcb_write_line m_irq_handler;
+ devcb_write_line m_dmarq_handler;
+ devcb_write_line m_dasp_handler;
+ devcb_write_line m_pdiag_handler;
+};
+
+#endif