summaryrefslogtreecommitdiffstatshomepage
path: root/src/devices/machine/alpha_8921.h
diff options
context:
space:
mode:
Diffstat (limited to 'src/devices/machine/alpha_8921.h')
-rw-r--r--src/devices/machine/alpha_8921.h67
1 files changed, 67 insertions, 0 deletions
diff --git a/src/devices/machine/alpha_8921.h b/src/devices/machine/alpha_8921.h
new file mode 100644
index 00000000000..88ecd850eb9
--- /dev/null
+++ b/src/devices/machine/alpha_8921.h
@@ -0,0 +1,67 @@
+// license:BSD-3-Clause
+// copyright-holders:cam900
+/***************************************************************************
+
+ Alpha denshi ALPHA-8921 emulation
+
+***************************************************************************/
+
+#ifndef MAME_MACHINE_ALPHA_8921_H
+#define MAME_MACHINE_ALPHA_8921_H
+
+#pragma once
+
+
+// ======================> alpha_8921_device
+
+class alpha_8921_device : public device_t
+{
+public:
+ // construction/destruction
+ alpha_8921_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock);
+
+ // inputs
+ DECLARE_WRITE_LINE_MEMBER(clk_w);
+ DECLARE_WRITE_LINE_MEMBER(load_w);
+ DECLARE_WRITE_LINE_MEMBER(even_w);
+ DECLARE_WRITE_LINE_MEMBER(h_w);
+ void c_w(u32 data);
+
+ // outputs
+ u8 gad_r();
+ u8 gbd_r();
+ DECLARE_READ_LINE_MEMBER(dota_r);
+ DECLARE_READ_LINE_MEMBER(dotb_r);
+
+protected:
+ // device-level overrides
+ virtual void device_start() override;
+ virtual void device_reset() override;
+
+private:
+ // inputs
+ bool m_clk = false; // CLK pin
+ bool m_load = false; // LOAD pin
+ bool m_even = false; // EVEN pin
+ bool m_h = false; // H pin
+ u32 m_c = 0; // C data (32 bit)
+
+ // outputs
+ u8 m_gad = 0; // GAD data (4 bit)
+ u8 m_gbd = 0; // GBD data (4 bit)
+ bool m_dota = false; // DOTA pin
+ bool m_dotb = false; // DOTB pin
+
+ // internal status
+ u32 m_sr = 0;
+ u32 m_old_sr = ~0;
+ bool m_old_even = true;
+ bool m_old_h = true;
+ void update_output();
+};
+
+
+// device type definition
+DECLARE_DEVICE_TYPE(ALPHA_8921, alpha_8921_device)
+
+#endif // MAME_MACHINE_ALPHA_8921_H