summaryrefslogtreecommitdiffstatshomepage
path: root/src/mess/machine/amstrad.c
diff options
context:
space:
mode:
author mahlemiut <mahlemiut@users.noreply.github.com>2014-08-16 02:16:03 +0000
committer mahlemiut <mahlemiut@users.noreply.github.com>2014-08-16 02:16:03 +0000
commitbcc2c3c75301a90e3d1b3ae4067cbf344007805b (patch)
tree53a557e48bb281bbb0b9de712a091c7b477c0492 /src/mess/machine/amstrad.c
parent44f826976dc111aab2b52ef52ba6ca39474aeac8 (diff)
amstrad: removed ROMEN signal callback, it is actually an input to an
expansion device. added the ability to map in Symbiface II rewriteable ROM for reading and writing. Still not usable as an alternate source of ROMs as yet. remembered to add RAM size options to the CPC+
Diffstat (limited to 'src/mess/machine/amstrad.c')
-rw-r--r--src/mess/machine/amstrad.c26
1 files changed, 17 insertions, 9 deletions
diff --git a/src/mess/machine/amstrad.c b/src/mess/machine/amstrad.c
index 69fb4a30084..0d3a6d7da8c 100644
--- a/src/mess/machine/amstrad.c
+++ b/src/mess/machine/amstrad.c
@@ -1111,15 +1111,6 @@ WRITE_LINE_MEMBER(amstrad_state::cpc_romdis)
amstrad_rethinkMemory();
}
-WRITE_LINE_MEMBER(amstrad_state::cpc_romen)
-{
- if(state != 0)
- m_gate_array.mrer &= ~0x04;
- else
- m_gate_array.mrer |= 0x04;
- amstrad_rethinkMemory();
-}
-
/*--------------------------
- Ram and Rom management -
@@ -2027,6 +2018,23 @@ WRITE8_MEMBER(amstrad_state::amstrad_cpc_io_w)
if ((offset & (1<<13)) == 0)
{
m_gate_array.upper_bank = data;
+ // expansion devices know the selected ROM by monitoring I/O writes to DFxx
+ // there are no signals related to which ROM is selected
+ cpc_expansion_slot_device* exp_port = m_exp;
+ while(exp_port != NULL)
+ {
+ device_cpc_expansion_card_interface* temp;
+ device_t* temp_dev;
+
+ temp = dynamic_cast<device_cpc_expansion_card_interface*>(exp_port->get_card_device());
+ temp_dev = dynamic_cast<device_t*>(exp_port->get_card_device());
+ if(temp != NULL)
+ {
+ temp->set_rom_bank(data);
+ }
+ exp_port = temp_dev->subdevice<cpc_expansion_slot_device>("exp");
+ }
+
amstrad_setUpperRom();
}