summaryrefslogtreecommitdiffstatshomepage
path: root/src/devices/bus/electron/cart/cumana.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/devices/bus/electron/cart/cumana.cpp')
-rw-r--r--src/devices/bus/electron/cart/cumana.cpp13
1 files changed, 6 insertions, 7 deletions
diff --git a/src/devices/bus/electron/cart/cumana.cpp b/src/devices/bus/electron/cart/cumana.cpp
index 80ebeab394b..200fc6d8abe 100644
--- a/src/devices/bus/electron/cart/cumana.cpp
+++ b/src/devices/bus/electron/cart/cumana.cpp
@@ -48,12 +48,13 @@ void cumana_floppies(device_slot_interface &device)
void electron_cumana_device::device_add_mconfig(machine_config &config)
{
/* fdc */
- FD1793(config, m_fdc, 16_MHz_XTAL / 16); // TODO: Not known whether DRQ and INTRQ are connected
+ FD1793(config, m_fdc, DERIVED_CLOCK(1, 16)); // TODO: Not known whether DRQ and INTRQ are connected
FLOPPY_CONNECTOR(config, m_floppy0, cumana_floppies, "525qd", electron_cumana_device::floppy_formats).enable_sound(true);
FLOPPY_CONNECTOR(config, m_floppy1, cumana_floppies, nullptr, electron_cumana_device::floppy_formats).enable_sound(true);
/* rtc */
MC146818(config, m_rtc, 32.768_kHz_XTAL);
+ m_rtc->irq().set(DEVICE_SELF_OWNER, FUNC(electron_cartslot_device::irq_w));
}
//**************************************************************************
@@ -86,7 +87,7 @@ void electron_cumana_device::device_start()
// read - cartridge data read
//-------------------------------------------------
-uint8_t electron_cumana_device::read(address_space &space, offs_t offset, int infc, int infd, int romqa)
+uint8_t electron_cumana_device::read(address_space &space, offs_t offset, int infc, int infd, int romqa, int oe, int oe2)
{
uint8_t data = 0xff;
@@ -106,8 +107,7 @@ uint8_t electron_cumana_device::read(address_space &space, offs_t offset, int in
break;
}
}
-
- if (!infc && !infd)
+ else if (oe)
{
switch (romqa)
{
@@ -134,7 +134,7 @@ uint8_t electron_cumana_device::read(address_space &space, offs_t offset, int in
// write - cartridge data write
//-------------------------------------------------
-void electron_cumana_device::write(address_space &space, offs_t offset, uint8_t data, int infc, int infd, int romqa)
+void electron_cumana_device::write(address_space &space, offs_t offset, uint8_t data, int infc, int infd, int romqa, int oe, int oe2)
{
if (infc)
{
@@ -156,8 +156,7 @@ void electron_cumana_device::write(address_space &space, offs_t offset, uint8_t
break;
}
}
-
- if (!infc && !infd)
+ else if (oe)
{
if (romqa == 0 && offset >= 0x3800)
{