summaryrefslogtreecommitdiffstatshomepage
path: root/src/devices/bus/centronics/epson_lx810l.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/devices/bus/centronics/epson_lx810l.cpp')
-rw-r--r--src/devices/bus/centronics/epson_lx810l.cpp15
1 files changed, 15 insertions, 0 deletions
diff --git a/src/devices/bus/centronics/epson_lx810l.cpp b/src/devices/bus/centronics/epson_lx810l.cpp
index a5f0fbff7cb..8b1d862711d 100644
--- a/src/devices/bus/centronics/epson_lx810l.cpp
+++ b/src/devices/bus/centronics/epson_lx810l.cpp
@@ -163,6 +163,7 @@ void epson_lx810l_device::device_add_mconfig(machine_config &config)
e05a30.centronics_perror().set(FUNC(epson_lx810l_device::e05a30_centronics_perror));
e05a30.centronics_fault().set(FUNC(epson_lx810l_device::e05a30_centronics_fault));
e05a30.centronics_select().set(FUNC(epson_lx810l_device::e05a30_centronics_select));
+ e05a30.cpu_reset().set(FUNC(epson_lx810l_device::e05a30_cpu_reset));
/* 256-bit eeprom */
EEPROM_93C06_16BIT(config, "eeprom");
@@ -189,6 +190,9 @@ static INPUT_PORTS_START( epson_lx810l )
PORT_BIT(0x01, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("Load/Eject") PORT_CODE(KEYCODE_1_PAD)
PORT_START("PAPEREND")
PORT_BIT(0x01, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("Paper End Sensor") PORT_CODE(KEYCODE_6_PAD)
+ PORT_START("RESET")
+ PORT_BIT(0x01, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("Reset Printer") PORT_CODE(KEYCODE_2_PAD) PORT_CHANGED_MEMBER(DEVICE_SELF, epson_lx810l_device, reset_printer, 0)
+
/* DIPSW1 */
PORT_START("DIPSW1")
@@ -266,6 +270,17 @@ INPUT_CHANGED_MEMBER(epson_lx810l_device::online_sw)
m_maincpu->set_input_line(UPD7810_INTF2, newval ? CLEAR_LINE : ASSERT_LINE);
}
+INPUT_CHANGED_MEMBER(epson_lx810l_device::reset_printer)
+{
+ if (newval)
+ {
+ m_maincpu->pulse_input_line(INPUT_LINE_RESET, attotime::zero); // reset cpu
+ m_e05a30->reset(); // this will generate an NMI interrupt when the e05a30 is ready (minimum 0.9 seconds after reset)
+ }
+}
+
+
+
//**************************************************************************
// LIVE DEVICE