summaryrefslogtreecommitdiffstatshomepage
path: root/src/devices/bus/hp_dio/hp98644.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/devices/bus/hp_dio/hp98644.cpp')
-rw-r--r--src/devices/bus/hp_dio/hp98644.cpp16
1 files changed, 14 insertions, 2 deletions
diff --git a/src/devices/bus/hp_dio/hp98644.cpp b/src/devices/bus/hp_dio/hp98644.cpp
index b47680e527e..82b814d6f90 100644
--- a/src/devices/bus/hp_dio/hp98644.cpp
+++ b/src/devices/bus/hp_dio/hp98644.cpp
@@ -10,6 +10,7 @@
#include "hp98644.h"
#include "bus/rs232/rs232.h"
+
//**************************************************************************
// GLOBAL VARIABLES
//**************************************************************************
@@ -21,6 +22,9 @@ DEFINE_DEVICE_TYPE(HPDIO_98644, dio16_98644_device, "dio98644", "HP98644A Asynch
// device_add_mconfig - add device configuration
//-------------------------------------------------
+#define RS232_TAG "rs232"
+#define INS8250_TAG "ins8250"
+
MACHINE_CONFIG_START( dio16_98644_device::device_add_mconfig )
MCFG_DEVICE_ADD(INS8250_TAG, INS8250, XTAL(2'457'600))
@@ -136,6 +140,7 @@ void dio16_98644_device::device_start()
{
// set_nubus_device makes m_slot valid
set_dio_device();
+ m_installed_io = false;
}
//-------------------------------------------------
@@ -147,8 +152,15 @@ void dio16_98644_device::device_reset()
uint8_t code = m_switches->read() >> REG_SWITCHES_SELECT_CODE_SHIFT;
code &= REG_SWITCHES_SELECT_CODE_MASK;
- m_dio->install_memory(0x600000 + (code * 0x10000), 0x6007ff + (code * 0x10000), read16_delegate(FUNC(dio16_98644_device::io_r), this),
- write16_delegate(FUNC(dio16_98644_device::io_w), this));
+ if (!m_installed_io)
+ {
+ m_dio->install_memory(
+ 0x600000 + (code * 0x10000),
+ 0x6007ff + (code * 0x10000),
+ read16_delegate(FUNC(dio16_98644_device::io_r), this),
+ write16_delegate(FUNC(dio16_98644_device::io_w), this));
+ m_installed_io = true;
+ }
}
READ16_MEMBER(dio16_98644_device::io_r)