summaryrefslogtreecommitdiffstatshomepage
path: root/src/devices/machine/upd7004.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/devices/machine/upd7004.cpp')
-rw-r--r--src/devices/machine/upd7004.cpp19
1 files changed, 6 insertions, 13 deletions
diff --git a/src/devices/machine/upd7004.cpp b/src/devices/machine/upd7004.cpp
index ceb54d09acb..8fcb49e9c62 100644
--- a/src/devices/machine/upd7004.cpp
+++ b/src/devices/machine/upd7004.cpp
@@ -40,7 +40,7 @@ ALLOW_SAVE_TYPE(upd7004_device::state);
upd7004_device::upd7004_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) :
device_t(mconfig, UPD7004, tag, owner, clock),
m_eoc_cb(*this), m_eoc_ff_cb(*this),
- m_in_cb{ {*this}, {*this}, {*this}, {*this}, {*this}, {*this}, {*this}, {*this} },
+ m_in_cb(*this, 0x3ff),
m_state(STATE_IDLE),
m_cycle_timer(nullptr),
m_div(1), m_code(false), m_address(0), m_sar(0x3ff)
@@ -53,15 +53,8 @@ upd7004_device::upd7004_device(const machine_config &mconfig, const char *tag, d
void upd7004_device::device_start()
{
- // resolve callbacks
- m_eoc_cb.resolve_safe();
- m_eoc_ff_cb.resolve_safe();
-
- for (int i = 0; i < 8; i++)
- m_in_cb[i].resolve_safe(0x3ff);
-
// allocate timers
- m_cycle_timer = timer_alloc();
+ m_cycle_timer = timer_alloc(FUNC(upd7004_device::update_state), this);
m_cycle_timer->adjust(attotime::never);
// register for save states
@@ -73,10 +66,10 @@ void upd7004_device::device_start()
}
//-------------------------------------------------
-// device_timer - handler timer events
+// update_state -
//-------------------------------------------------
-void upd7004_device::device_timer(emu_timer &timer, device_timer_id id, int param, void *ptr)
+TIMER_CALLBACK_MEMBER(upd7004_device::update_state)
{
switch (m_state)
{
@@ -114,7 +107,7 @@ void upd7004_device::device_timer(emu_timer &timer, device_timer_id id, int para
// INTERFACE
//**************************************************************************
-READ8_MEMBER(upd7004_device::read)
+uint8_t upd7004_device::read(offs_t offset)
{
uint8_t data = 0xff;
@@ -137,7 +130,7 @@ READ8_MEMBER(upd7004_device::read)
return data;
}
-WRITE8_MEMBER(upd7004_device::write)
+void upd7004_device::write(offs_t offset, uint8_t data)
{
switch (offset)
{