summaryrefslogtreecommitdiffstats
path: root/src/mame/includes/cybiko.h
diff options
context:
space:
mode:
Diffstat (limited to 'src/mame/includes/cybiko.h')
-rw-r--r--src/mame/includes/cybiko.h106
1 files changed, 106 insertions, 0 deletions
diff --git a/src/mame/includes/cybiko.h b/src/mame/includes/cybiko.h
new file mode 100644
index 00000000000..7bf4e0834de
--- /dev/null
+++ b/src/mame/includes/cybiko.h
@@ -0,0 +1,106 @@
+// license:BSD-3-Clause
+// copyright-holders:Tim Schuerewegen
+/*****************************************************************************
+ *
+ * includes/cybiko.h
+ *
+ * Cybiko Wireless Inter-tainment System
+ *
+ * (c) 2001-2007 Tim Schuerewegen
+ *
+ * Cybiko Classic (V1)
+ * Cybiko Classic (V2)
+ * Cybiko Xtreme
+ *
+ ****************************************************************************/
+
+#ifndef CYBIKO_H_
+#define CYBIKO_H_
+
+/* Core includes */
+#include "emu.h"
+#include "emuopts.h"
+#include "sound/speaker.h"
+
+/* Components */
+#include "cpu/h8/h8s2320.h"
+#include "cpu/h8/h8s2245.h"
+#include "video/hd66421.h"
+#include "machine/pcf8593.h"
+#include "machine/at45dbxx.h"
+#include "machine/intelfsh.h"
+#include "machine/ram.h"
+#include "imagedev/snapquik.h"
+#include "machine/nvram.h"
+
+struct CYBIKO_RS232_PINS
+{
+ int sck; // serial clock
+ int txd; // transmit data
+ int rxd; // receive data
+};
+
+struct CYBIKO_RS232
+{
+ CYBIKO_RS232_PINS pin;
+ UINT8 rx_bits, rx_byte, tx_byte, tx_bits;
+};
+
+class cybiko_state : public driver_device
+{
+public:
+ cybiko_state(const machine_config &mconfig, device_type type, const char *tag)
+ : driver_device(mconfig, type, tag),
+ m_maincpu(*this, "maincpu"),
+ m_crtc(*this, "hd66421"),
+ m_speaker(*this, "speaker"),
+ m_rtc(*this, "rtc"),
+ m_ram(*this, RAM_TAG),
+ m_flash1(*this, "flash1"),
+ m_nvram(*this, "nvram"),
+ m_input(*this, "A")
+ { }
+
+ DECLARE_READ16_MEMBER(serflash_r);
+ DECLARE_WRITE16_MEMBER(serflash_w);
+ DECLARE_READ16_MEMBER(clock_r);
+ DECLARE_WRITE16_MEMBER(clock_w);
+ DECLARE_READ16_MEMBER(xtclock_r);
+ DECLARE_WRITE16_MEMBER(xtclock_w);
+ DECLARE_READ16_MEMBER(xtpower_r);
+
+ CYBIKO_RS232 m_rs232;
+ DECLARE_READ16_MEMBER(cybiko_lcd_r);
+ DECLARE_WRITE16_MEMBER(cybiko_lcd_w);
+ DECLARE_READ16_MEMBER(cybikov1_key_r);
+ DECLARE_READ16_MEMBER(cybikov2_key_r);
+ DECLARE_READ16_MEMBER(cybikoxt_key_r);
+ DECLARE_WRITE16_MEMBER(cybiko_usb_w);
+ int cybiko_key_r( offs_t offset, int mem_mask);
+ void cybiko_rs232_write_byte(int data);
+ void cybiko_rs232_pin_sck(int data);
+ void cybiko_rs232_pin_txd(int data);
+ int cybiko_rs232_pin_rxd();
+ int cybiko_rs232_rx_queue();
+ void cybiko_rs232_init();
+ void cybiko_rs232_exit();
+ void cybiko_rs232_reset();
+
+ required_device<cpu_device> m_maincpu;
+ required_device<hd66421_device> m_crtc;
+ required_device<speaker_sound_device> m_speaker;
+ required_device<pcf8593_device> m_rtc;
+ required_device<ram_device> m_ram;
+ optional_device<at45db041_device> m_flash1;
+ required_device<nvram_device> m_nvram;
+ optional_ioport_array<15> m_input;
+ DECLARE_DRIVER_INIT(cybikoxt);
+ DECLARE_DRIVER_INIT(cybiko);
+ virtual void machine_start();
+ virtual void machine_reset();
+ void machine_stop_cybiko();
+ DECLARE_QUICKLOAD_LOAD_MEMBER( cybiko );
+ DECLARE_QUICKLOAD_LOAD_MEMBER( cybikoxt );
+};
+
+#endif /* CYBIKO_H_ */