diff options
Diffstat (limited to 'src/devices/bus/electron/cart/cumana.cpp')
-rw-r--r-- | src/devices/bus/electron/cart/cumana.cpp | 13 |
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) { |