From ebeb21fbc5d7aa00e3f6659ca7ed3d93dcde497e Mon Sep 17 00:00:00 2001 From: Nigel Barnes Date: Sat, 8 May 2021 22:16:04 +0100 Subject: [PATCH] bbc_cumana68k: Initialise members. --- src/devices/bus/bbc/internal/cumana68k.cpp | 37 +++++++--------------- src/devices/bus/bbc/internal/cumana68k.h | 5 --- 2 files changed, 11 insertions(+), 31 deletions(-) diff --git a/src/devices/bus/bbc/internal/cumana68k.cpp b/src/devices/bus/bbc/internal/cumana68k.cpp index 672deaf91c0..2b8afcace06 100644 --- a/src/devices/bus/bbc/internal/cumana68k.cpp +++ b/src/devices/bus/bbc/internal/cumana68k.cpp @@ -12,7 +12,7 @@ - Interrupt handling needs more testing. Known Winchester: - - NEC D3126 -chs 4,615,17 -ss 256 (not yet imaged) + - NEC D3126 -chs 615,4,17 -ss 256 (not yet imaged) **********************************************************************/ @@ -95,8 +95,8 @@ void bbc_cumana68k_device::device_add_mconfig(machine_config &config) }); PIA6821(config, m_pia_sasi, 0); - m_pia_sasi->readpa_handler().set(FUNC(bbc_cumana68k_device::sasi_r)); - m_pia_sasi->writepa_handler().set(FUNC(bbc_cumana68k_device::sasi_w)); + m_pia_sasi->readpa_handler().set(m_sasi, FUNC(nscsi_callback_device::read)); + m_pia_sasi->writepa_handler().set(m_sasi, FUNC(nscsi_callback_device::write)); m_pia_sasi->writepb_handler().set(FUNC(bbc_cumana68k_device::pia_sasi_pb_w)); m_pia_sasi->readca1_handler().set(m_sasi, FUNC(nscsi_callback_device::req_r)); m_pia_sasi->readcb1_handler().set_constant(1); // tied to +5V @@ -106,8 +106,8 @@ void bbc_cumana68k_device::device_add_mconfig(machine_config &config) m_pia_sasi->irqb_handler().set(m_irqs, FUNC(input_merger_device::in_w<1>)); PIA6821(config, m_pia_rtc, 0); - m_pia_rtc->readpa_handler().set(FUNC(bbc_cumana68k_device::rtc_r)); - m_pia_rtc->writepa_handler().set(FUNC(bbc_cumana68k_device::rtc_w)); + m_pia_rtc->readpa_handler().set([this]() { return m_mc146818_data; }); + m_pia_rtc->writepa_handler().set([this](uint8_t data) { m_mc146818_data = data; }); m_pia_rtc->writepb_handler().set(FUNC(bbc_cumana68k_device::pia_rtc_pb_w)); m_pia_rtc->ca2_handler().set(FUNC(bbc_cumana68k_device::rtc_ce_w)); m_pia_rtc->cb2_handler().set(FUNC(bbc_cumana68k_device::reset68008_w)); @@ -152,6 +152,12 @@ bbc_cumana68k_device::bbc_cumana68k_device(const machine_config &mconfig, const , m_fdc(*this, "wd2797") , m_floppy(*this, "wd2797:%u", 0) , m_sasi(*this, "sasi:7:scsicb") + , m_masknmi(0) + , m_mc146818_data(0) + , m_mc146818_as(0) + , m_mc146818_ds(0) + , m_mc146818_rw(0) + , m_mc146818_ce(0) { } @@ -248,27 +254,6 @@ void bbc_cumana68k_device::mem6502_w(offs_t offset, uint8_t data) } -uint8_t bbc_cumana68k_device::sasi_r() -{ - return m_sasi->read(); -} - -void bbc_cumana68k_device::sasi_w(uint8_t data) -{ - m_sasi->write(data); -} - - -uint8_t bbc_cumana68k_device::rtc_r() -{ - return m_mc146818_data; -} - -void bbc_cumana68k_device::rtc_w(uint8_t data) -{ - m_mc146818_data = data; -} - WRITE_LINE_MEMBER(bbc_cumana68k_device::rtc_ce_w) { m_mc146818_ce = !state; diff --git a/src/devices/bus/bbc/internal/cumana68k.h b/src/devices/bus/bbc/internal/cumana68k.h index ce0c31b16b6..11122f165e1 100644 --- a/src/devices/bus/bbc/internal/cumana68k.h +++ b/src/devices/bus/bbc/internal/cumana68k.h @@ -70,13 +70,8 @@ private: void fsel_w(offs_t offset, uint8_t data); - uint8_t sasi_r(); - void sasi_w(uint8_t data); - int m_masknmi; - uint8_t rtc_r(); - void rtc_w(uint8_t data); void mc146818_set(int as, int ds, int rw); uint8_t m_mc146818_data; int m_mc146818_as;