summaryrefslogtreecommitdiffstatshomepage
path: root/src/devices/bus/psion/honda/parallel.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/devices/bus/psion/honda/parallel.cpp')
-rw-r--r--src/devices/bus/psion/honda/parallel.cpp67
1 files changed, 67 insertions, 0 deletions
diff --git a/src/devices/bus/psion/honda/parallel.cpp b/src/devices/bus/psion/honda/parallel.cpp
new file mode 100644
index 00000000000..417845f92c9
--- /dev/null
+++ b/src/devices/bus/psion/honda/parallel.cpp
@@ -0,0 +1,67 @@
+// license:BSD-3-Clause
+// copyright-holders:Nigel Barnes
+/**********************************************************************
+
+ Psion Parallel Printer Link cable
+
+ TODO:
+ - dump PIC internal ROM and hook up.
+
+**********************************************************************/
+
+#include "emu.h"
+#include "parallel.h"
+
+#include "bus/centronics/ctronics.h"
+#include "cpu/pic16c62x/pic16c62x.h"
+
+
+namespace {
+
+class psion_parallel_device : public device_t, public device_psion_honda_interface
+{
+public:
+ psion_parallel_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock)
+ : device_t(mconfig, PSION_PARALLEL, tag, owner, clock)
+ , device_psion_honda_interface(mconfig, *this)
+ {
+ }
+
+ static constexpr feature_type unemulated_features() { return feature::PRINTER; }
+
+protected:
+ virtual void device_start() override ATTR_COLD { }
+
+ virtual void device_add_mconfig(machine_config &config) override ATTR_COLD
+ {
+ PIC16C620(config, "mcu", 9.8304_MHz_XTAL).set_disable();
+
+ CENTRONICS(config, "centronics", centronics_devices, "printer");
+ }
+
+ virtual const tiny_rom_entry *device_rom_region() const override ATTR_COLD;
+};
+
+
+//-------------------------------------------------
+// ROM( psion_parallel )
+//-------------------------------------------------
+
+ROM_START(psion_parallel)
+ ROM_REGION(0x0400, "mcu", ROMREGION_ERASEFF)
+ ROM_LOAD("pic16c620.bin", 0x0000, 0x0400, NO_DUMP)
+ROM_END
+
+//-------------------------------------------------
+// rom_region - device-specific ROM region
+//-------------------------------------------------
+
+const tiny_rom_entry *psion_parallel_device::device_rom_region() const
+{
+ return ROM_NAME(psion_parallel);
+}
+
+} // anonymous namespace
+
+
+DEFINE_DEVICE_TYPE_PRIVATE(PSION_PARALLEL, device_psion_honda_interface, psion_parallel_device, "psion_parallel", "Psion Parallel Printer Link cable")