summaryrefslogtreecommitdiffstatshomepage
path: root/src/mame/drivers/geneve.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/mame/drivers/geneve.cpp')
-rw-r--r--src/mame/drivers/geneve.cpp16
1 files changed, 12 insertions, 4 deletions
diff --git a/src/mame/drivers/geneve.cpp b/src/mame/drivers/geneve.cpp
index c7b871d56a6..4750d747ce9 100644
--- a/src/mame/drivers/geneve.cpp
+++ b/src/mame/drivers/geneve.cpp
@@ -314,7 +314,8 @@ private:
required_device<at29c040_device> m_pfm512;
required_device<at29c040a_device> m_pfm512a;
void read_eprom_or_pfm(offs_t offset, uint8_t& value);
- DECLARE_WRITE8_MEMBER( write_pfm );
+ void write_pfm(offs_t offset, uint8_t data);
+
DECLARE_WRITE_LINE_MEMBER( pfm_a17 );
DECLARE_WRITE_LINE_MEMBER( pfm_a18 );
DECLARE_WRITE_LINE_MEMBER( pfm_oe );
@@ -675,6 +676,10 @@ WRITE8_MEMBER( geneve_state::memwrite )
m_sound->write(data);
}
+ // Boot ROM or PFM (normal and Genmod)
+ if (m_gatearray->romen_out()==ASSERT_LINE)
+ write_pfm(offset, data);
+
// Stock SRAM 32K
if (m_gatearray->ramen_out()==ASSERT_LINE)
{
@@ -774,22 +779,25 @@ void geneve_state::read_eprom_or_pfm(offs_t offset, uint8_t& value)
}
}
-WRITE8_MEMBER( geneve_state::write_pfm )
+void geneve_state::write_pfm(offs_t offset, uint8_t data)
{
// Nota bene: The PFM must be write protected on startup, or the RESET
// of the 9995 will attempt to write the return vector into the flash EEPROM
offs_t addr13 = offset & 0x1fff;
int pfmaddress = addr13 | m_gatearray->get_prefix(AMA | AB0 | AB1 | AB2) | m_pfm_prefix;
- LOGMASKED(LOG_PFM, "Writing to PFM at address %05x <- %02x\n", pfmaddress, data);
-
switch (m_boot_rom)
{
+ case GENEVE_EPROM:
+ LOGMASKED(LOG_WARN, "Write to EPROM at %05x ignored\n");
+ break;
case GENEVE_PFM512:
m_pfm512->write(pfmaddress, data);
+ LOGMASKED(LOG_PFM, "PFM %05x <- %02x\n", pfmaddress, data);
break;
case GENEVE_PFM512A:
m_pfm512a->write(pfmaddress, data);
+ LOGMASKED(LOG_PFM, "PFM %05x <- %02x\n", pfmaddress, data);
break;
default:
LOGMASKED(LOG_WARN, "Illegal mode for writing to PFM: %d\n", m_boot_rom);