summaryrefslogtreecommitdiffstatshomepage
path: root/src/devices/bus/vtech/memexp
diff options
context:
space:
mode:
author Dirk Best <mail@dirk-best.de>2016-04-08 19:54:32 +0200
committer Dirk Best <mail@dirk-best.de>2016-04-08 19:55:09 +0200
commit4f1ffa851ea372a18a67bb937ce8f0bc1e72c7ad (patch)
tree6f3495b7c4f811d82b9545366485dbeea76f25ef /src/devices/bus/vtech/memexp
parent978ab32a11e663b2571c9f72ec43114e2eabf2c5 (diff)
vtech1: Add support for the "Dick Smith VZ-200/300 RTTY Cartridge"
Appears to work fine, except we don't have a generic RTTY interface yet.
Diffstat (limited to 'src/devices/bus/vtech/memexp')
-rw-r--r--src/devices/bus/vtech/memexp/carts.cpp1
-rw-r--r--src/devices/bus/vtech/memexp/carts.h1
-rw-r--r--src/devices/bus/vtech/memexp/rs232.cpp4
-rw-r--r--src/devices/bus/vtech/memexp/rs232.h2
-rw-r--r--src/devices/bus/vtech/memexp/rtty.cpp88
-rw-r--r--src/devices/bus/vtech/memexp/rtty.h45
6 files changed, 138 insertions, 3 deletions
diff --git a/src/devices/bus/vtech/memexp/carts.cpp b/src/devices/bus/vtech/memexp/carts.cpp
index dc40d0e8a57..f46a15e4841 100644
--- a/src/devices/bus/vtech/memexp/carts.cpp
+++ b/src/devices/bus/vtech/memexp/carts.cpp
@@ -15,5 +15,6 @@ SLOT_INTERFACE_START( memexp_slot_carts )
SLOT_INTERFACE("laser310_16k", LASER310_16K)
SLOT_INTERFACE("laser_64k", LASER_64K)
SLOT_INTERFACE("rs232", RS232_INTERFACE)
+ SLOT_INTERFACE("rtty", RTTY_INTERFACE)
SLOT_INTERFACE("wordpro", WORDPRO)
SLOT_INTERFACE_END
diff --git a/src/devices/bus/vtech/memexp/carts.h b/src/devices/bus/vtech/memexp/carts.h
index a1e86987a31..92dd90390ae 100644
--- a/src/devices/bus/vtech/memexp/carts.h
+++ b/src/devices/bus/vtech/memexp/carts.h
@@ -16,6 +16,7 @@
#include "floppy.h"
#include "memory.h"
#include "rs232.h"
+#include "rtty.h"
#include "wordpro.h"
SLOT_INTERFACE_EXTERN( memexp_slot_carts );
diff --git a/src/devices/bus/vtech/memexp/rs232.cpp b/src/devices/bus/vtech/memexp/rs232.cpp
index 42e281151b1..ead9ac0a904 100644
--- a/src/devices/bus/vtech/memexp/rs232.cpp
+++ b/src/devices/bus/vtech/memexp/rs232.cpp
@@ -2,7 +2,7 @@
// copyright-holders:Dirk Best
/***************************************************************************
- Dick Smith VZ-200/300 RS-232 Cartridge
+ Dick Smith VZ-200/300 RS-232 Cartridge (K-6317)
***************************************************************************/
@@ -50,7 +50,7 @@ machine_config_constructor rs232_interface_device::device_mconfig_additions() co
//**************************************************************************
//-------------------------------------------------
-// wordpro_device - constructor
+// rs232_interface_device - constructor
//-------------------------------------------------
rs232_interface_device::rs232_interface_device(const machine_config &mconfig, const char *tag, device_t *owner, UINT32 clock) :
diff --git a/src/devices/bus/vtech/memexp/rs232.h b/src/devices/bus/vtech/memexp/rs232.h
index 20508d86469..23c91004533 100644
--- a/src/devices/bus/vtech/memexp/rs232.h
+++ b/src/devices/bus/vtech/memexp/rs232.h
@@ -2,7 +2,7 @@
// copyright-holders:Dirk Best
/***************************************************************************
- Dick Smith VZ-200/300 RS-232 Cartridge
+ Dick Smith VZ-200/300 RS-232 Cartridge (K-6317)
***************************************************************************/
diff --git a/src/devices/bus/vtech/memexp/rtty.cpp b/src/devices/bus/vtech/memexp/rtty.cpp
new file mode 100644
index 00000000000..bf9930c3dcf
--- /dev/null
+++ b/src/devices/bus/vtech/memexp/rtty.cpp
@@ -0,0 +1,88 @@
+// license:GPL-2.0+
+// copyright-holders:Dirk Best
+/***************************************************************************
+
+ Dick Smith VZ-200/300 RTTY Cartridge (K-6318)
+
+***************************************************************************/
+
+#include "rtty.h"
+
+
+//**************************************************************************
+// DEVICE DEFINITIONS
+//**************************************************************************
+
+const device_type RTTY_INTERFACE = &device_creator<rtty_interface_device>;
+
+//-------------------------------------------------
+// rom_region - device-specific ROM region
+//-------------------------------------------------
+
+ROM_START( rtty )
+ ROM_REGION(0x1000, "software", 0)
+ ROM_LOAD("vzrtty.ic3", 0x0000, 0x1000, CRC(ccf4289b) SHA1(de737ef0e0b582b3102da473836af1fa159a2e78))
+ROM_END
+
+const rom_entry *rtty_interface_device::device_rom_region() const
+{
+ return ROM_NAME( rtty );
+}
+
+
+//**************************************************************************
+// LIVE DEVICE
+//**************************************************************************
+
+//-------------------------------------------------
+// rtty_interface_device - constructor
+//-------------------------------------------------
+
+rtty_interface_device::rtty_interface_device(const machine_config &mconfig, const char *tag, device_t *owner, UINT32 clock) :
+ device_t(mconfig, RTTY_INTERFACE, "DSE VZ-200/300 RTTY Interface", tag, owner, clock, "vz_rtty", __FILE__),
+ device_memexp_interface(mconfig, *this)
+{
+}
+
+//-------------------------------------------------
+// device_start - device-specific startup
+//-------------------------------------------------
+
+void rtty_interface_device::device_start()
+{
+}
+
+//-------------------------------------------------
+// device_reset - device-specific reset
+//-------------------------------------------------
+
+void rtty_interface_device::device_reset()
+{
+ // program
+ m_slot->m_program->install_rom(0x4000, 0x4fff, 0, 0x1000, memregion("software")->base());
+
+ // data
+ m_slot->m_program->install_read_handler(0x5000, 0x57ff, read8_delegate(FUNC(rtty_interface_device::receive_data_r), this));
+ m_slot->m_program->install_write_handler(0x5800, 0x5fff, write8_delegate(FUNC(rtty_interface_device::transmit_data_w), this));
+ m_slot->m_program->install_write_handler(0x6000, 0x67ff, write8_delegate(FUNC(rtty_interface_device::relay_w), this));
+}
+
+
+//**************************************************************************
+// IMPLEMENTATION
+//**************************************************************************
+
+READ8_MEMBER( rtty_interface_device::receive_data_r )
+{
+ return 0xff;
+}
+
+WRITE8_MEMBER( rtty_interface_device::transmit_data_w )
+{
+ logerror("transmit_w: %d\n", BIT(data, 7));
+}
+
+WRITE8_MEMBER( rtty_interface_device::relay_w )
+{
+ logerror("relay_w: %d\n", BIT(data, 7));
+}
diff --git a/src/devices/bus/vtech/memexp/rtty.h b/src/devices/bus/vtech/memexp/rtty.h
new file mode 100644
index 00000000000..1bc25eca77a
--- /dev/null
+++ b/src/devices/bus/vtech/memexp/rtty.h
@@ -0,0 +1,45 @@
+// license:GPL-2.0+
+// copyright-holders:Dirk Best
+/***************************************************************************
+
+ Dick Smith VZ-200/300 RTTY Cartridge (K-6318)
+
+***************************************************************************/
+
+#pragma once
+
+#ifndef __VTECH_MEMEXP_RTTY_H__
+#define __VTECH_MEMEXP_RTTY_H__
+
+#include "emu.h"
+#include "memexp.h"
+
+
+//**************************************************************************
+// TYPE DEFINITIONS
+//**************************************************************************
+
+// ======================> rtty_interface_device
+
+class rtty_interface_device : public device_t, public device_memexp_interface
+{
+public:
+ // construction/destruction
+ rtty_interface_device(const machine_config &mconfig, const char *tag, device_t *owner, UINT32 clock);
+
+ DECLARE_READ8_MEMBER( receive_data_r );
+ DECLARE_WRITE8_MEMBER( transmit_data_w );
+ DECLARE_WRITE8_MEMBER( relay_w );
+
+protected:
+ virtual const rom_entry *device_rom_region() const override;
+ virtual void device_start() override;
+ virtual void device_reset() override;
+
+private:
+};
+
+// device type definition
+extern const device_type RTTY_INTERFACE;
+
+#endif // __VTECH_MEMEXP_RTTY_H__