summaryrefslogtreecommitdiffstatshomepage
path: root/src/devices/bus/svi3x8
diff options
context:
space:
mode:
author Dirk Best <mail@dirk-best.de>2024-04-20 01:21:05 +0200
committer Dirk Best <mail@dirk-best.de>2024-04-20 01:27:38 +0200
commit1c5e5b9b4370d4e7a83a5b844e75c16546f706c3 (patch)
tree998d514dee486614b2a9882c0fb6174c09b698ec /src/devices/bus/svi3x8
parent54b05196ee4f7bd0b8c267c75ea71be66bc3c2a3 (diff)
coleco/cartridge: Add support for 'Activision' type cartridges
Software list items promoted to working (coleco_homebrew.xml) ------------------------------------------------------------- The Black Onyx Boxxle Space Shuttle: A Journey Into Space (64k)
Diffstat (limited to 'src/devices/bus/svi3x8')
-rw-r--r--src/devices/bus/svi3x8/expander/sv603.cpp21
1 files changed, 15 insertions, 6 deletions
diff --git a/src/devices/bus/svi3x8/expander/sv603.cpp b/src/devices/bus/svi3x8/expander/sv603.cpp
index e8d3dd81b3b..d64b5ef13a2 100644
--- a/src/devices/bus/svi3x8/expander/sv603.cpp
+++ b/src/devices/bus/svi3x8/expander/sv603.cpp
@@ -105,17 +105,17 @@ uint8_t sv603_device::mreq_r(offs_t offset)
uint8_t data = 0xff;
// ls138 (active low)
- int ccs1 = ((offset >> 13) == 0) ? 0 : 1;
- int ccs2 = ((offset >> 13) == 1) ? 0 : 1;
- int ccs3 = ((offset >> 13) == 2) ? 0 : 1;
- int ccs4 = ((offset >> 13) == 3) ? 0 : 1;
- int bios = ((offset >> 13) == 4) ? 0 : 1;
+ const int ccs1 = ((offset >> 13) == 0) ? 0 : 1;
+ const int ccs2 = ((offset >> 13) == 1) ? 0 : 1;
+ const int ccs3 = ((offset >> 13) == 2) ? 0 : 1;
+ const int ccs4 = ((offset >> 13) == 3) ? 0 : 1;
+ const int bios = ((offset >> 13) == 4) ? 0 : 1;
// 5, 6, 7: not connected
m_expander->romdis_w(0);
m_expander->ramdis_w(bios);
- data &= m_cart->bd_r(offset, data, ccs1, ccs2, ccs3, ccs4);
+ data &= m_cart->read(offset, ccs1, ccs2, ccs3, ccs4);
if (bios == 0)
data &= m_bios->as_u8(offset & 0x1fff);
@@ -125,7 +125,16 @@ uint8_t sv603_device::mreq_r(offs_t offset)
void sv603_device::mreq_w(offs_t offset, uint8_t data)
{
+ const int ccs1 = ((offset >> 13) == 0) ? 0 : 1;
+ const int ccs2 = ((offset >> 13) == 1) ? 0 : 1;
+ const int ccs3 = ((offset >> 13) == 2) ? 0 : 1;
+ const int ccs4 = ((offset >> 13) == 3) ? 0 : 1;
+ const int bios = ((offset >> 13) == 4) ? 0 : 1;
+
m_expander->romdis_w(0);
+ m_expander->ramdis_w(bios);
+
+ m_cart->write(offset, data, ccs1, ccs2, ccs3, ccs4);
}
uint8_t sv603_device::iorq_r(offs_t offset)