summaryrefslogtreecommitdiffstatshomepage
path: root/src/devices/bus/bbc/internal/cumana68k.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/devices/bus/bbc/internal/cumana68k.cpp')
-rw-r--r--src/devices/bus/bbc/internal/cumana68k.cpp24
1 files changed, 13 insertions, 11 deletions
diff --git a/src/devices/bus/bbc/internal/cumana68k.cpp b/src/devices/bus/bbc/internal/cumana68k.cpp
index 2b8afcace06..4a2d7c71e2e 100644
--- a/src/devices/bus/bbc/internal/cumana68k.cpp
+++ b/src/devices/bus/bbc/internal/cumana68k.cpp
@@ -16,11 +16,13 @@
**********************************************************************/
-
#include "emu.h"
#include "cumana68k.h"
#include "machine/nscsi_bus.h"
#include "bus/nscsi/devices.h"
+#include "softlist_dev.h"
+
+#include "formats/os9_dsk.h"
//**************************************************************************
@@ -46,6 +48,7 @@ void bbc_cumana68k_device::cumana68k_mem(address_map &map)
void bbc_cumana68k_device::floppy_formats(format_registration &fr)
{
+ fr.add_mfm_containers();
fr.add(FLOPPY_OS9_FORMAT);
}
@@ -94,18 +97,17 @@ void bbc_cumana68k_device::device_add_mconfig(machine_config &config)
downcast<nscsi_callback_device&>(*device).req_callback().append(m_pia_sasi, FUNC(pia6821_device::ca1_w));
});
- PIA6821(config, m_pia_sasi, 0);
+ PIA6821(config, m_pia_sasi);
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
+ m_pia_sasi->cb1_w(1); // tied to +5V
m_pia_sasi->ca2_handler().set(m_sasi, FUNC(nscsi_callback_device::ack_w));
m_pia_sasi->cb2_handler().set(m_sasi, FUNC(nscsi_callback_device::rst_w));
m_pia_sasi->irqa_handler().set(m_irqs, FUNC(input_merger_device::in_w<0>));
m_pia_sasi->irqb_handler().set(m_irqs, FUNC(input_merger_device::in_w<1>));
- PIA6821(config, m_pia_rtc, 0);
+ PIA6821(config, m_pia_rtc);
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));
@@ -196,13 +198,13 @@ void bbc_cumana68k_device::device_reset_after_children()
// IMPLEMENTATION
//**************************************************************************
-WRITE_LINE_MEMBER(bbc_cumana68k_device::reset68008_w)
+void bbc_cumana68k_device::reset68008_w(int state)
{
m_m68008->set_input_line(INPUT_LINE_HALT, state);
m_m68008->set_input_line(INPUT_LINE_RESET, state);
}
-WRITE_LINE_MEMBER(bbc_cumana68k_device::irq6502_w)
+void bbc_cumana68k_device::irq6502_w(int state)
{
m_m68008->set_input_line(M68K_IRQ_2, state);
}
@@ -254,7 +256,7 @@ void bbc_cumana68k_device::mem6502_w(offs_t offset, uint8_t data)
}
-WRITE_LINE_MEMBER(bbc_cumana68k_device::rtc_ce_w)
+void bbc_cumana68k_device::rtc_ce_w(int state)
{
m_mc146818_ce = !state;
}
@@ -267,7 +269,7 @@ void bbc_cumana68k_device::mc146818_set(int as, int ds, int rw)
/* if address select is set then set the address in the 146818 */
if (m_mc146818_as & !as)
{
- m_rtc->write(0, m_mc146818_data);
+ m_rtc->address_w(m_mc146818_data);
//logerror("addr_w: %02x\n", m_mc146818_data);
}
@@ -276,12 +278,12 @@ void bbc_cumana68k_device::mc146818_set(int as, int ds, int rw)
{
if (m_mc146818_rw)
{
- m_mc146818_data = m_rtc->read(1);
+ m_mc146818_data = m_rtc->data_r();
//logerror("data_r: %02x\n", m_mc146818_data);
}
else
{
- m_rtc->write(1, m_mc146818_data);
+ m_rtc->data_w(m_mc146818_data);
//logerror("data_w: %02x\n", m_mc146818_data);
}
}