summaryrefslogtreecommitdiffstatshomepage
diff options
context:
space:
mode:
-rw-r--r--scripts/src/bus.lua14
-rw-r--r--src/devices/bus/heathzenith/h19/tlb.cpp (renamed from src/mame/heathzenith/tlb.cpp)0
-rw-r--r--src/devices/bus/heathzenith/h19/tlb.h (renamed from src/mame/heathzenith/tlb.h)0
-rw-r--r--src/devices/bus/heathzenith/h89/cards.cpp2
-rw-r--r--src/devices/bus/heathzenith/h89/h89bus.cpp81
-rw-r--r--src/devices/bus/heathzenith/h89/sigmasoft_parallel_port.cpp245
-rw-r--r--src/devices/bus/heathzenith/h89/sigmasoft_parallel_port.h18
-rw-r--r--src/mame/heathzenith/h19.cpp2
-rw-r--r--src/mame/heathzenith/h89.cpp60
-rw-r--r--src/mame/heathzenith/sigmasoft_parallel_port.cpp165
-rw-r--r--src/mame/heathzenith/sigmasoft_parallel_port.h67
11 files changed, 319 insertions, 335 deletions
diff --git a/scripts/src/bus.lua b/scripts/src/bus.lua
index bfbaffc229e..764abec93ac 100644
--- a/scripts/src/bus.lua
+++ b/scripts/src/bus.lua
@@ -5765,9 +5765,23 @@ if (BUSES["H89BUS"]~=null) then
MAME_DIR .. "src/devices/bus/heathzenith/h89/mms77316_fdc.h",
MAME_DIR .. "src/devices/bus/heathzenith/h89/sigmasoft_sound.cpp",
MAME_DIR .. "src/devices/bus/heathzenith/h89/sigmasoft_sound.h",
+ MAME_DIR .. "src/devices/bus/heathzenith/h89/sigmasoft_parallel_port.cpp",
+ MAME_DIR .. "src/devices/bus/heathzenith/h89/sigmasoft_parallel_port.h",
MAME_DIR .. "src/devices/bus/heathzenith/h89/we_pullup.cpp",
MAME_DIR .. "src/devices/bus/heathzenith/h89/we_pullup.h",
MAME_DIR .. "src/devices/bus/heathzenith/h89/z37_fdc.cpp",
MAME_DIR .. "src/devices/bus/heathzenith/h89/z37_fdc.h",
}
end
+
+---------------------------------------------------
+--
+--@src/devices/bus/heathzenith/h19/tlb.h,BUSES["HEATH_TLB_CONNECTOR"] = true
+---------------------------------------------------
+
+if (BUSES["HEATH_TLB_CONNECTOR"]~=null) then
+ files {
+ MAME_DIR .. "src/devices/bus/heathzenith/h19/tlb.cpp",
+ MAME_DIR .. "src/devices/bus/heathzenith/h19/tlb.h",
+ }
+end
diff --git a/src/mame/heathzenith/tlb.cpp b/src/devices/bus/heathzenith/h19/tlb.cpp
index 10b384b22cb..10b384b22cb 100644
--- a/src/mame/heathzenith/tlb.cpp
+++ b/src/devices/bus/heathzenith/h19/tlb.cpp
diff --git a/src/mame/heathzenith/tlb.h b/src/devices/bus/heathzenith/h19/tlb.h
index b0ed5ba31ef..b0ed5ba31ef 100644
--- a/src/mame/heathzenith/tlb.h
+++ b/src/devices/bus/heathzenith/h19/tlb.h
diff --git a/src/devices/bus/heathzenith/h89/cards.cpp b/src/devices/bus/heathzenith/h89/cards.cpp
index 22f379601b1..618f07d4f6a 100644
--- a/src/devices/bus/heathzenith/h89/cards.cpp
+++ b/src/devices/bus/heathzenith/h89/cards.cpp
@@ -12,12 +12,14 @@
#include "h_88_3.h"
#include "h_88_5.h"
#include "mms77316_fdc.h"
+#include "sigmasoft_parallel_port.h"
#include "sigmasoft_sound.h"
#include "we_pullup.h"
#include "z37_fdc.h"
void h89_left_cards(device_slot_interface &device)
{
+ device.option_add("ss_parallel", H89BUS_SIGMASOFT_PARALLEL);
}
void h89_right_cards(device_slot_interface &device)
diff --git a/src/devices/bus/heathzenith/h89/h89bus.cpp b/src/devices/bus/heathzenith/h89/h89bus.cpp
index 848713aa76d..17a6fab2dd6 100644
--- a/src/devices/bus/heathzenith/h89/h89bus.cpp
+++ b/src/devices/bus/heathzenith/h89/h89bus.cpp
@@ -1,5 +1,5 @@
// license:BSD-3-Clause
-// copyright-holders:R. Belmont
+// copyright-holders:R. Belmont, Mark Garlanger
/***************************************************************************
h89bus.cpp - Heath/Zenith H-89/Z-90 bus
@@ -175,8 +175,7 @@ const tiny_rom_entry *h89bus_device::device_rom_region() const
void h89bus_device::device_start()
{
- // don't claim I/O below 0x10 for now
- m_io_space->install_readwrite_handler(0x0010, 0x00ff, emu::rw_delegate(*this, FUNC(h89bus_device::io_dispatch_r)), emu::rw_delegate(*this, FUNC(h89bus_device::io_dispatch_w)));
+ m_io_space->install_readwrite_handler(0x0000, 0x00ff, emu::rw_delegate(*this, FUNC(h89bus_device::io_dispatch_r)), emu::rw_delegate(*this, FUNC(h89bus_device::io_dispatch_w)));
}
void h89bus_device::add_h89bus_left_card(device_h89bus_left_card_interface &card)
@@ -242,37 +241,33 @@ u8 h89bus_device::io_dispatch_r(offs_t offset)
{
u8 retval = 0;
- offset += 0x10;
- if (m_decode_prom[offset] != 0xff)
- {
- u16 decode = m_decode_prom[offset] ^ 0xff;
+ u16 decode = m_decode_prom[offset] ^ 0xff;
+ if (decode)
+ {
if ((decode & H89_GPP) && ((offset & 7) == 2)) return m_in_gpp_cb(offset);
if (decode & H89_NMI) return m_in_nmi_cb(offset);
if (decode & H89_TERM) return m_in_tlb_cb(offset & 7);
- if (decode)
+ for (device_h89bus_right_card_interface &entry : m_right_device_list)
{
- for (device_h89bus_right_card_interface &entry : m_right_device_list)
+ if (entry.m_p506_signals)
+ {
+ // p506 does not have CASS or LP
+ retval |= entry.read(decode & ~(H89_CASS | H89_LP), offset & 7);
+ }
+ else
{
- if (entry.m_p506_signals)
- {
- // p506 does not have CASS or LP
- retval |= entry.read(decode & ~(H89_CASS | H89_LP), offset & 7);
- }
- else
- {
- // p504/p505 does not have FLPY
- retval |= entry.read(decode & ~H89_FLPY , offset & 7);
- }
+ // p504/p505 does not have FLPY
+ retval |= entry.read(decode & ~H89_FLPY , offset & 7);
}
}
+ }
- // service left-slot cards that have a motherboard connection to snoop the I/O space
- for (device_h89bus_left_card_interface &entry : m_left_device_list)
- {
- retval |= entry.read(H89_IO, offset);
- }
+ // service left-slot cards that have a motherboard connection to snoop the I/O space
+ for (device_h89bus_left_card_interface &entry : m_left_device_list)
+ {
+ retval |= entry.read(H89_IO, offset & 0x1fff);
}
return retval;
@@ -280,37 +275,33 @@ u8 h89bus_device::io_dispatch_r(offs_t offset)
void h89bus_device::io_dispatch_w(offs_t offset, u8 data)
{
- offset += 0x10;
- if (m_decode_prom[offset] != 0xff)
- {
- u16 decode = m_decode_prom[offset] ^ 0xff;
+ u16 decode = m_decode_prom[offset] ^ 0xff;
+ if (decode)
+ {
if (decode & H89_GPP) m_out_gpp_cb(offset, data);
if (decode & H89_NMI) { m_out_nmi_cb(offset, data); return; }
if (decode & H89_TERM) { m_out_tlb_cb(offset & 7, data); return; }
- if (decode)
+ for (device_h89bus_right_card_interface &entry : m_right_device_list)
{
- for (device_h89bus_right_card_interface &entry : m_right_device_list)
+ if (entry.m_p506_signals)
+ {
+ // p506 does not have CASS or LP
+ entry.write(decode & ~(H89_CASS | H89_LP), offset & 7, data);
+ }
+ else
{
- if (entry.m_p506_signals)
- {
- // p506 does not have CASS or LP
- entry.write(decode & ~(H89_CASS | H89_LP), offset & 7, data);
- }
- else
- {
- // p504/p505 does not have FLPY
- entry.write(decode & ~H89_FLPY, offset & 7, data);
- }
+ // p504/p505 does not have FLPY
+ entry.write(decode & ~H89_FLPY, offset & 7, data);
}
}
+ }
- // service left-slot cards that have a motherboard connection to snoop the I/O space
- for (device_h89bus_left_card_interface &entry : m_left_device_list)
- {
- entry.write(H89_IO, offset, data);
- }
+ // service left-slot cards that have a motherboard connection to snoop the I/O space
+ for (device_h89bus_left_card_interface &entry : m_left_device_list)
+ {
+ entry.write(H89_IO, offset, data);
}
}
diff --git a/src/devices/bus/heathzenith/h89/sigmasoft_parallel_port.cpp b/src/devices/bus/heathzenith/h89/sigmasoft_parallel_port.cpp
new file mode 100644
index 00000000000..9f47f999198
--- /dev/null
+++ b/src/devices/bus/heathzenith/h89/sigmasoft_parallel_port.cpp
@@ -0,0 +1,245 @@
+// license:BSD-3-Clause
+// copyright-holders:Mark Garlanger
+/***************************************************************************
+
+ SigmaSoft Universal Parallel Interface Board
+
+
+****************************************************************************/
+
+#include "emu.h"
+
+#include "bus/heathzenith/h19/tlb.h"
+
+#include "sigmasoft_parallel_port.h"
+
+//
+// Logging defines
+//
+#define LOG_REG (1U << 1) // Shows register setup
+#define LOG_FUNC (1U << 2) // Function calls
+
+#define VERBOSE (0)
+
+#include "logmacro.h"
+
+#define LOGREG(...) LOGMASKED(LOG_REG, __VA_ARGS__)
+#define LOGFUNC(...) LOGMASKED(LOG_FUNC, __VA_ARGS__)
+
+#ifdef _MSC_VER
+#define FUNCNAME __func__
+#else
+#define FUNCNAME __PRETTY_FUNCTION__
+#endif
+
+// TODO make this configurable with jumper config
+static constexpr u8 BASE_ADDR = 0x08;
+
+class sigmasoft_parallel_port : public device_t, public device_h89bus_left_card_interface
+{
+public:
+ sigmasoft_parallel_port(const machine_config &mconfig, const char *tag, device_t *owner, u32 clock = 0);
+
+ virtual u8 read(u8 select_lines, u16 offset) override;
+ virtual void write(u8 select_lines, u16 offset, u8 data) override;
+
+ auto ctrl_r_cb() { return m_ctrl_r.bind(); }
+ auto video_mem_r_cb() { return m_video_mem_r.bind(); }
+
+ auto video_mem_cb() { return m_video_mem_w.bind(); }
+ auto io_lo_cb() { return m_io_lo_addr.bind(); }
+ auto io_hi_cb() { return m_io_hi_addr.bind(); }
+ auto window_lo_cb() { return m_window_lo_addr.bind(); }
+ auto window_hi_cb() { return m_window_hi_addr.bind(); }
+ auto ctrl_cb() { return m_ctrl_w.bind(); }
+
+protected:
+
+ virtual void device_start() override ATTR_COLD;
+ virtual void device_add_mconfig(machine_config& config) override ATTR_COLD;;
+
+ u8 video_mem_r();
+ void video_mem_w(u8 val);
+
+ void io_lo_addr_w(u8 val);
+ void io_hi_addr_w(u8 val);
+
+ void window_lo_addr_w(u8 val);
+ void window_hi_addr_w(u8 val);
+
+ void ctrl_w(u8 val);
+ u8 ctrl_r();
+
+private:
+
+ // Reads
+ devcb_read8 m_ctrl_r;
+ devcb_read8 m_video_mem_r;
+
+ // Writes
+ devcb_write8 m_video_mem_w;
+ devcb_write8 m_io_lo_addr;
+ devcb_write8 m_io_hi_addr;
+ devcb_write8 m_window_lo_addr;
+ devcb_write8 m_window_hi_addr;
+ devcb_write8 m_ctrl_w;
+};
+
+
+sigmasoft_parallel_port::sigmasoft_parallel_port(const machine_config &mconfig, const char *tag, device_t *owner, u32 clock):
+ device_t(mconfig, H89BUS_SIGMASOFT_PARALLEL, tag, owner, clock),
+ device_h89bus_left_card_interface(mconfig, *this),
+ m_ctrl_r(*this, 0x00),
+ m_video_mem_r(*this, 0x00),
+ m_video_mem_w(*this),
+ m_io_lo_addr(*this),
+ m_io_hi_addr(*this),
+ m_window_lo_addr(*this),
+ m_window_hi_addr(*this),
+ m_ctrl_w(*this)
+{
+}
+
+void sigmasoft_parallel_port::video_mem_w(u8 val)
+{
+ m_video_mem_w(val);
+}
+
+void sigmasoft_parallel_port::io_lo_addr_w(u8 val)
+{
+ m_io_lo_addr(val);
+}
+
+void sigmasoft_parallel_port::io_hi_addr_w(u8 val)
+{
+ m_io_hi_addr(val);
+}
+
+void sigmasoft_parallel_port::window_lo_addr_w(u8 val)
+{
+ m_window_lo_addr(val);
+}
+
+void sigmasoft_parallel_port::window_hi_addr_w(u8 val)
+{
+ m_window_hi_addr(val);
+}
+
+void sigmasoft_parallel_port::ctrl_w(u8 val)
+{
+ m_ctrl_w(val);
+}
+
+void sigmasoft_parallel_port::write(u8 select_lines, u16 offset, u8 data)
+{
+ offset -= BASE_ADDR;
+ if (!(select_lines & h89bus_device::H89_IO) || offset >= 8)
+ {
+ return;
+ }
+
+ LOGFUNC("%s: reg: %d val: %d\n", FUNCNAME, offset, data);
+
+ switch (offset)
+ {
+ case 0:
+ video_mem_w(data);
+ break;
+ case 1:
+ io_lo_addr_w(data);
+ break;
+ case 2:
+ io_hi_addr_w(data);
+ break;
+ case 3:
+ window_lo_addr_w(data);
+ break;
+ case 4:
+ window_hi_addr_w(data);
+ break;
+ case 5:
+ ctrl_w(data);
+ break;
+ case 6:
+ // TODO - Centronics interface
+ break;
+ case 7:
+ // TODO - Centronics interface
+ break;
+ }
+}
+
+u8 sigmasoft_parallel_port::video_mem_r()
+{
+ // get video memory value from igc device
+ return m_video_mem_r();
+}
+
+u8 sigmasoft_parallel_port::ctrl_r()
+{
+ // get control register from igc device
+ return m_ctrl_r();
+}
+
+u8 sigmasoft_parallel_port::read(u8 select_lines, u16 offset)
+{
+ offset -= BASE_ADDR;
+ u8 value = 0x00;
+
+ if (!(select_lines & h89bus_device::H89_IO) || offset >= 8)
+ {
+ return value;
+ }
+
+ switch (offset)
+ {
+ case 0:
+ value = video_mem_r();
+ break;
+ case 1:
+ // TODO - Light Pen Low address
+ break;
+ case 2:
+ // TODO - Light Pen High address
+ break;
+ case 3:
+ // TODO - Left input device
+ break;
+ case 4:
+ // TODO - Right input device
+ break;
+ case 5:
+ // Control Register
+ value = ctrl_r();
+ break;
+ case 6:
+ // TODO - Centronics interface
+ break;
+ case 7:
+ // TODO - Centronics interface
+ break;
+ }
+
+ LOGFUNC("%s: reg: %d val: %d\n", FUNCNAME, offset, value);
+
+ return value;
+}
+
+void sigmasoft_parallel_port::device_start()
+{
+}
+
+void sigmasoft_parallel_port::device_add_mconfig(machine_config &config)
+{
+ // connect callbacks to TLB
+ ctrl_r_cb().set("^^tlbc", FUNC(heath_tlb_connector::sigma_ctrl_r));
+ video_mem_r_cb().set("^^tlbc", FUNC(heath_tlb_connector::sigma_video_mem_r));
+ video_mem_cb().set("^^tlbc", FUNC(heath_tlb_connector::sigma_video_mem_w));
+ io_lo_cb().set("^^tlbc", FUNC(heath_tlb_connector::sigma_io_lo_addr_w));
+ io_hi_cb().set("^^tlbc", FUNC(heath_tlb_connector::sigma_io_hi_addr_w));
+ window_lo_cb().set("^^tlbc", FUNC(heath_tlb_connector::sigma_window_lo_addr_w));
+ window_hi_cb().set("^^tlbc", FUNC(heath_tlb_connector::sigma_window_hi_addr_w));
+ ctrl_cb().set("^^tlbc", FUNC(heath_tlb_connector::sigma_ctrl_w));
+}
+
+DEFINE_DEVICE_TYPE_PRIVATE(H89BUS_SIGMASOFT_PARALLEL, device_h89bus_left_card_interface, sigmasoft_parallel_port, "sigmasoft_parallel_port", "SigmaSoft Universal Parallel Board");
diff --git a/src/devices/bus/heathzenith/h89/sigmasoft_parallel_port.h b/src/devices/bus/heathzenith/h89/sigmasoft_parallel_port.h
new file mode 100644
index 00000000000..e35cdec5de6
--- /dev/null
+++ b/src/devices/bus/heathzenith/h89/sigmasoft_parallel_port.h
@@ -0,0 +1,18 @@
+// license:BSD-3-Clause
+// copyright-holders:Mark Garlanger
+/***************************************************************************
+
+ SigmaSoft Universal Parallel Interface Board
+
+****************************************************************************/
+
+#ifndef MAME_BUS_HEATHZENITH_H89_SIGMASOFT_PARALLEL_PORT_H
+#define MAME_BUS_HEATHZENITH_H89_SIGMASOFT_PARALLEL_PORT_H
+
+#pragma once
+
+#include "h89bus.h"
+
+DECLARE_DEVICE_TYPE(H89BUS_SIGMASOFT_PARALLEL, device_h89bus_left_card_interface)
+
+#endif // MAME_BUS_HEATHZENITH_H89_SIGMASOFT_PARALLEL_PORT_H
diff --git a/src/mame/heathzenith/h19.cpp b/src/mame/heathzenith/h19.cpp
index a3b0fe21fa7..acbed68032d 100644
--- a/src/mame/heathzenith/h19.cpp
+++ b/src/mame/heathzenith/h19.cpp
@@ -12,7 +12,7 @@
#include "emu.h"
-#include "tlb.h"
+#include "bus/heathzenith/h19/tlb.h"
#include "bus/rs232/rs232.h"
#include "h19.lh"
diff --git a/src/mame/heathzenith/h89.cpp b/src/mame/heathzenith/h89.cpp
index ca3bb725ccd..0412404811b 100644
--- a/src/mame/heathzenith/h89.cpp
+++ b/src/mame/heathzenith/h89.cpp
@@ -44,9 +44,8 @@
#include "emu.h"
#include "intr_cntrl.h"
-#include "sigmasoft_parallel_port.h"
-#include "tlb.h"
+#include "bus/heathzenith/h19/tlb.h"
#include "bus/heathzenith/h89/h89bus.h"
#include "bus/heathzenith/h89/cards.h"
#include "cpu/z80/z80.h"
@@ -198,17 +197,11 @@ class h89_sigmasoft_state : public h89_state
{
public:
h89_sigmasoft_state(const machine_config &mconfig, device_type type, const char *tag):
- h89_state(mconfig, type, tag),
- m_sigma_parallel(*this, "sigma_parallel")
+ h89_state(mconfig, type, tag)
{
}
void h89_sigmasoft(machine_config &config);
-
-protected:
- required_device<sigmasoft_parallel_port> m_sigma_parallel;
-
- void h89_sigmasoft_io(address_map &map);
};
@@ -377,44 +370,6 @@ void h89_base_state::h89_base_io(address_map &map)
map.global_mask(0xff);
}
-void h89_sigmasoft_state::h89_sigmasoft_io(address_map &map)
-{
- h89_base_io(map);
-
- // Add SigmaSoft parallel port board, required for IGC graphics
- map(0x08,0x0f).rw(m_sigma_parallel, FUNC(sigmasoft_parallel_port::read), FUNC(sigmasoft_parallel_port::write));
-}
-
-/*
- Memory Map for MMS 444-61C PROM
-
- PORT
- Use | Hex |
- ----------------------------+-------+
- Not specified, available | 0-37 |
- MMS 77316 | 38-3F |
- MMS Internal test fixtures | 40-47 |
- MMS 77317 ACT/XCOMP I/O | 48-4F |
- MMS 77315 CAMEO I/O | 50-56 |
- Unused | 57 |
- MMS 77314 Corvus I/O | 58-59 |
- MMS 77314 REMEX I/O | 5A-5B |
- MMS 77314,15,17 Conf Port | 5C |
- Unused | 5D-77 |
- Disk I/O #1 | 78-7B |
- Disk I/O #2 | 7C-7F |
- HDOS reserved | 80-CF |
- DCE Serial I/O | D0-D7 |
- DTE Serial I/O | D8-DF |
- DCE Serial I/O | EO-E7 |
- Console I/O | E8-EF |
- NMI | F0-F1 |
- General purpose port | F2 |
- Unused | F8-F9 |
- NMI | FA-FB |
- Unused | FC-FF |
- */
-
// Input ports
static INPUT_PORTS_START( h88 )
@@ -1032,19 +987,10 @@ void h89_sigmasoft_state::h89_sigmasoft(machine_config &config)
{
h89(config);
m_h89bus->set_default_bios_tag("444-61");
- m_maincpu->set_addrmap(AS_IO, &h89_sigmasoft_state::h89_sigmasoft_io);
sigma_tlb_options(m_tlbc);
- SIGMASOFT_PARALLEL_PORT(config, m_sigma_parallel);
- m_sigma_parallel->ctrl_r_cb().set(m_tlbc, FUNC(heath_tlb_connector::sigma_ctrl_r));
- m_sigma_parallel->video_mem_r_cb().set(m_tlbc, FUNC(heath_tlb_connector::sigma_video_mem_r));
- m_sigma_parallel->video_mem_cb().set(m_tlbc, FUNC(heath_tlb_connector::sigma_video_mem_w));
- m_sigma_parallel->io_lo_cb().set(m_tlbc, FUNC(heath_tlb_connector::sigma_io_lo_addr_w));
- m_sigma_parallel->io_hi_cb().set(m_tlbc, FUNC(heath_tlb_connector::sigma_io_hi_addr_w));
- m_sigma_parallel->window_lo_cb().set(m_tlbc, FUNC(heath_tlb_connector::sigma_window_lo_addr_w));
- m_sigma_parallel->window_hi_cb().set(m_tlbc, FUNC(heath_tlb_connector::sigma_window_hi_addr_w));
- m_sigma_parallel->ctrl_cb().set(m_tlbc, FUNC(heath_tlb_connector::sigma_ctrl_w));
+ H89BUS_LEFT_SLOT(config.replace(), "p501", "h89bus", h89_left_cards, "ss_parallel");
}
void h89_mms_state::h89_mms(machine_config &config)
diff --git a/src/mame/heathzenith/sigmasoft_parallel_port.cpp b/src/mame/heathzenith/sigmasoft_parallel_port.cpp
deleted file mode 100644
index a412f204245..00000000000
--- a/src/mame/heathzenith/sigmasoft_parallel_port.cpp
+++ /dev/null
@@ -1,165 +0,0 @@
-// license:BSD-3-Clause
-// copyright-holders:Mark Garlanger
-/***************************************************************************
-
- SigmaSoft Universal Parallel Interface Board
-
-
-****************************************************************************/
-
-#include "emu.h"
-
-#include "sigmasoft_parallel_port.h"
-
-//
-// Logging defines
-//
-#define LOG_REG (1U << 1) // Shows register setup
-#define LOG_FUNC (1U << 2) // Function calls
-
-#define VERBOSE (0)
-
-#include "logmacro.h"
-
-#define LOGREG(...) LOGMASKED(LOG_REG, __VA_ARGS__)
-#define LOGFUNC(...) LOGMASKED(LOG_FUNC, __VA_ARGS__)
-
-#ifdef _MSC_VER
-#define FUNCNAME __func__
-#else
-#define FUNCNAME __PRETTY_FUNCTION__
-#endif
-
-
-DEFINE_DEVICE_TYPE(SIGMASOFT_PARALLEL_PORT, sigmasoft_parallel_port, "sigmasoft_parallel_port", "SigmaSoft Universal Parallel Board");
-
-sigmasoft_parallel_port::sigmasoft_parallel_port(const machine_config &mconfig, const char *tag, device_t *owner, u32 clock):
- device_t(mconfig, SIGMASOFT_PARALLEL_PORT, tag, owner, clock),
- m_ctrl_r(*this, 0x00),
- m_video_mem_r(*this, 0x00),
- m_video_mem_w(*this),
- m_io_lo_addr(*this),
- m_io_hi_addr(*this),
- m_window_lo_addr(*this),
- m_window_hi_addr(*this),
- m_ctrl_w(*this)
-{
-}
-
-void sigmasoft_parallel_port::video_mem_w(u8 val)
-{
- m_video_mem_w(val);
-}
-
-void sigmasoft_parallel_port::io_lo_addr_w(u8 val)
-{
- m_io_lo_addr(val);
-}
-
-void sigmasoft_parallel_port::io_hi_addr_w(u8 val)
-{
- m_io_hi_addr(val);
-}
-
-void sigmasoft_parallel_port::window_lo_addr_w(u8 val)
-{
- m_window_lo_addr(val);
-}
-
-void sigmasoft_parallel_port::window_hi_addr_w(u8 val)
-{
- m_window_hi_addr(val);
-}
-
-void sigmasoft_parallel_port::ctrl_w(u8 val)
-{
- m_ctrl_w(val);
-}
-
-void sigmasoft_parallel_port::write(offs_t reg, u8 val)
-{
- LOGFUNC("%s: reg: %d val: %d\n", FUNCNAME, reg, val);
-
- switch (reg)
- {
- case 0:
- video_mem_w(val);
- break;
- case 1:
- io_lo_addr_w(val);
- break;
- case 2:
- io_hi_addr_w(val);
- break;
- case 3:
- window_lo_addr_w(val);
- break;
- case 4:
- window_hi_addr_w(val);
- break;
- case 5:
- ctrl_w(val);
- break;
- case 6:
- // TODO - Centronics interface
- break;
- case 7:
- // TODO - Centronics interface
- break;
- }
-}
-
-u8 sigmasoft_parallel_port::video_mem_r()
-{
- // get video memory value from igc device
- return m_video_mem_r();
-}
-
-u8 sigmasoft_parallel_port::ctrl_r()
-{
- // get control register from igc device
- return m_ctrl_r();
-}
-
-u8 sigmasoft_parallel_port::read(offs_t reg)
-{
- // default return for the h89
- u8 value = 0xff;
-
- switch (reg)
- {
- case 0:
- value = video_mem_r();
- break;
- case 1:
- // TODO - Light Pen Low address
- break;
- case 2:
- // TODO - Light Pen High address
- break;
- case 3:
- // TODO - Left input device
- break;
- case 4:
- // TODO - Right input device
- break;
- case 5:
- // Control Register
- value = ctrl_r();
- break;
- case 6:
- // TODO - Centronics interface
- break;
- case 7:
- // TODO - Centronics interface
- break;
- }
-
- LOGFUNC("%s: reg: %d val: %d\n", FUNCNAME, reg, value);
-
- return value;
-}
-
-void sigmasoft_parallel_port::device_start()
-{
-}
diff --git a/src/mame/heathzenith/sigmasoft_parallel_port.h b/src/mame/heathzenith/sigmasoft_parallel_port.h
deleted file mode 100644
index 60030b2647b..00000000000
--- a/src/mame/heathzenith/sigmasoft_parallel_port.h
+++ /dev/null
@@ -1,67 +0,0 @@
-// license:BSD-3-Clause
-// copyright-holders:Mark Garlanger
-/***************************************************************************
-
- SigmaSoft Universal Parallel Interface Board
-
-****************************************************************************/
-
-#ifndef MAME_HEATHZENITH_SIGMASOFT_PARALLEL_PORT_H
-#define MAME_HEATHZENITH_SIGMASOFT_PARALLEL_PORT_H
-
-#pragma once
-
-
-class sigmasoft_parallel_port : public device_t
-{
-public:
- sigmasoft_parallel_port(const machine_config &mconfig, const char *tag, device_t *owner, u32 clock = 0);
-
- void write(offs_t reg, u8 val);
- u8 read(offs_t reg);
-
- auto ctrl_r_cb() { return m_ctrl_r.bind(); }
- auto video_mem_r_cb() { return m_video_mem_r.bind(); }
-
- auto video_mem_cb() { return m_video_mem_w.bind(); }
- auto io_lo_cb() { return m_io_lo_addr.bind(); }
- auto io_hi_cb() { return m_io_hi_addr.bind(); }
- auto window_lo_cb() { return m_window_lo_addr.bind(); }
- auto window_hi_cb() { return m_window_hi_addr.bind(); }
- auto ctrl_cb() { return m_ctrl_w.bind(); }
-
-protected:
-
- virtual void device_start() override ATTR_COLD;
-
- u8 video_mem_r();
- void video_mem_w(u8 val);
-
- void io_lo_addr_w(u8 val);
- void io_hi_addr_w(u8 val);
-
- void window_lo_addr_w(u8 val);
- void window_hi_addr_w(u8 val);
-
- void ctrl_w(u8 val);
- u8 ctrl_r();
-
-private:
-
- // Reads
- devcb_read8 m_ctrl_r;
- devcb_read8 m_video_mem_r;
-
- // Writes
- devcb_write8 m_video_mem_w;
- devcb_write8 m_io_lo_addr;
- devcb_write8 m_io_hi_addr;
- devcb_write8 m_window_lo_addr;
- devcb_write8 m_window_hi_addr;
- devcb_write8 m_ctrl_w;
-};
-
-DECLARE_DEVICE_TYPE(SIGMASOFT_PARALLEL_PORT, sigmasoft_parallel_port)
-
-
-#endif // MAME_HEATHZENITH_SIGMASOFT_PARALLEL_PORT_H