summaryrefslogtreecommitdiffstatshomepage
path: root/src/devices/cpu/tlcs870/tlcs870.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/devices/cpu/tlcs870/tlcs870.cpp')
-rw-r--r--src/devices/cpu/tlcs870/tlcs870.cpp68
1 files changed, 53 insertions, 15 deletions
diff --git a/src/devices/cpu/tlcs870/tlcs870.cpp b/src/devices/cpu/tlcs870/tlcs870.cpp
index d35b3183a57..d29ae07b7b6 100644
--- a/src/devices/cpu/tlcs870/tlcs870.cpp
+++ b/src/devices/cpu/tlcs870/tlcs870.cpp
@@ -15,7 +15,6 @@
#include "emu.h"
#include "tlcs870.h"
#include "tlcs870d.h"
-#include "debugger.h"
//#define VERBOSE 1
#include "logmacro.h"
@@ -111,9 +110,9 @@ tlcs870_device::tlcs870_device(const machine_config &mconfig, device_type optype
, m_io_config("io", ENDIANNESS_LITTLE, 8, 16, 0)
, m_intram(*this, "intram")
, m_dbr(*this, "dbr")
- , m_port_in_cb(*this)
+ , m_port_in_cb(*this, 0xff)
, m_port_out_cb(*this)
- , m_port_analog_in_cb(*this)
+ , m_port_analog_in_cb(*this, 0xff)
, m_serial_out_cb(*this)
{
}
@@ -1240,18 +1239,57 @@ void tlcs870_device::device_start()
set_icountptr(m_icount);
- m_port_in_cb.resolve_all_safe(0xff);
- m_port_out_cb.resolve_all_safe();
- m_port_analog_in_cb.resolve_all_safe(0xff);
- m_serial_out_cb.resolve_all_safe();
-
- m_serial_transmit_timer[0] = machine().scheduler().timer_alloc(timer_expired_delegate(FUNC(tlcs870_device::sio0_transmit_cb), this));
- m_serial_transmit_timer[1] = machine().scheduler().timer_alloc(timer_expired_delegate(FUNC(tlcs870_device::sio1_transmit_cb), this));
-
- m_tcx_timer[0] = machine().scheduler().timer_alloc(timer_expired_delegate(FUNC(tlcs870_device::tc1_cb), this));
- m_tcx_timer[1] = machine().scheduler().timer_alloc(timer_expired_delegate(FUNC(tlcs870_device::tc2_cb), this));
- m_tcx_timer[2] = machine().scheduler().timer_alloc(timer_expired_delegate(FUNC(tlcs870_device::tc3_cb), this));
- m_tcx_timer[3] = machine().scheduler().timer_alloc(timer_expired_delegate(FUNC(tlcs870_device::tc4_cb), this));
+ m_serial_transmit_timer[0] = timer_alloc(FUNC(tlcs870_device::sio0_transmit_cb), this);
+ m_serial_transmit_timer[1] = timer_alloc(FUNC(tlcs870_device::sio1_transmit_cb), this);
+
+ m_tcx_timer[0] = timer_alloc(FUNC(tlcs870_device::tc1_cb), this);
+ m_tcx_timer[1] = timer_alloc(FUNC(tlcs870_device::tc2_cb), this);
+ m_tcx_timer[2] = timer_alloc(FUNC(tlcs870_device::tc3_cb), this);
+ m_tcx_timer[3] = timer_alloc(FUNC(tlcs870_device::tc4_cb), this);
+
+ save_item(NAME(m_prvpc));
+ save_item(NAME(m_pc));
+ save_item(NAME(m_sp));
+ save_item(NAME(m_port_out_latch));
+ save_item(NAME(m_read_input_port));
+ save_item(NAME(m_port0_cr));
+ save_item(NAME(m_port1_cr));
+ save_item(NAME(m_port6_cr));
+ save_item(NAME(m_port7_cr));
+ save_item(NAME(m_cycles));
+ save_item(NAME(m_tmppc));
+ save_item(NAME(m_addr));
+ save_item(NAME(m_F));
+ save_item(NAME(m_RBS));
+ save_item(NAME(m_IL));
+ save_item(NAME(m_EIR));
+ save_item(NAME(m_EINTCR));
+ save_item(NAME(m_ADCCR));
+ save_item(NAME(m_ADCDR));
+ save_item(NAME(m_SYSCR1));
+ save_item(NAME(m_SYSCR2));
+ save_item(NAME(m_TBTCR));
+ save_item(NAME(m_TREG1A));
+ save_item(NAME(m_TREG1B));
+ save_item(NAME(m_TC1CR));
+ save_item(NAME(m_TREG2));
+ save_item(NAME(m_TC2CR));
+ save_item(NAME(m_TREG3A));
+ save_item(NAME(m_TREG3B));
+ save_item(NAME(m_TC3CR));
+ save_item(NAME(m_TREG4));
+ save_item(NAME(m_TC4CR));
+ save_item(NAME(m_SIOCR1));
+ save_item(NAME(m_SIOCR2));
+ save_item(NAME(m_WDTCR1));
+ save_item(NAME(m_irqstate));
+ save_item(NAME(m_transfer_numbytes));
+ save_item(NAME(m_transfer_pos));
+ save_item(NAME(m_transfer_shiftreg));
+ save_item(NAME(m_transfer_shiftpos));
+ save_item(NAME(m_transfer_mode));
+ save_item(NAME(m_transmit_bits));
+ save_item(NAME(m_receive_bits));
}