summaryrefslogtreecommitdiffstatshomepage
path: root/src/devices/machine/x2201.h
diff options
context:
space:
mode:
author AJR <ajrhacker@users.noreply.github.com>2018-10-12 22:45:15 -0400
committer AJR <ajrhacker@users.noreply.github.com>2018-10-12 22:45:15 -0400
commitc6900b12fde939126e89f4bea6744dbc2cb51ed4 (patch)
tree367136d78508c11aa3a94d1d4a851f387326f2cd /src/devices/machine/x2201.h
parentd1e3e46eebab6b728d6081a1142b1e597ce176a8 (diff)
New machines marked as NOT_WORKING
---------------------------------- Scientific Instruments Model 5500 Temperature Controller [ClawGrip]
Diffstat (limited to 'src/devices/machine/x2201.h')
-rw-r--r--src/devices/machine/x2201.h75
1 files changed, 75 insertions, 0 deletions
diff --git a/src/devices/machine/x2201.h b/src/devices/machine/x2201.h
new file mode 100644
index 00000000000..670c69b349c
--- /dev/null
+++ b/src/devices/machine/x2201.h
@@ -0,0 +1,75 @@
+// license:BSD-3-Clause
+// copyright-holders:AJR
+/***************************************************************************
+
+ Xicor X2201 1024 x 1 bit Nonvolatile Static RAM
+
+****************************************************************************
+ ____ ____
+ A0 1 |* \_/ | 18 Vcc
+ A1 2 | | 17 A5
+ A2 3 | | 16 A6
+ A3 4 | | 15 A7
+ A4 5 | X2201 | 14 A8
+ DOut 6 | | 13 A9
+ /STORE 7 | | 12 DIn
+ /WE 8 | | 11 /ARRAY RECALL
+ GND 9 |___________| 10 /CS
+
+***************************************************************************/
+
+#ifndef MAME_MACHINE_X2201_H
+#define MAME_MACHINE_X2201_H
+
+#pragma once
+
+
+//**************************************************************************
+// TYPE DEFINITIONS
+//**************************************************************************
+
+// ======================> x2201_device
+
+class x2201_device : public device_t, public device_nvram_interface
+{
+public:
+ // construction/destruction
+ x2201_device(const machine_config &mconfig, const char *tag, device_t *owner, u32 clock = 0);
+
+ // read/write handlers
+ u8 read(offs_t offset);
+ u8 read_byte(offs_t offset); // hack
+ void write(offs_t offset, u8 data);
+
+ // control lines
+ DECLARE_WRITE_LINE_MEMBER(cs_w);
+ DECLARE_WRITE_LINE_MEMBER(array_recall_w);
+ DECLARE_WRITE_LINE_MEMBER(store_w);
+
+protected:
+ // device-level overrides
+ virtual void device_start() override;
+
+ // device_nvram_interface overrides
+ virtual void nvram_default() override;
+ virtual void nvram_read(emu_file &file) override;
+ virtual void nvram_write(emu_file &file) override;
+
+private:
+ // optional default data
+ optional_region_ptr<u8> m_default_data;
+
+ // memory arrays
+ std::unique_ptr<u8[]> m_ram;
+ std::unique_ptr<u8[]> m_eeprom;
+
+ // line state
+ bool m_cs;
+ bool m_store;
+ bool m_array_recall;
+};
+
+// device type definition
+DECLARE_DEVICE_TYPE(X2201, x2201_device)
+
+#endif // MAME_MACHINE_X2201_H