summaryrefslogtreecommitdiffstatshomepage
path: root/src/mame/drivers/exidy.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/mame/drivers/exidy.c')
-rw-r--r--src/mame/drivers/exidy.c16
1 files changed, 13 insertions, 3 deletions
diff --git a/src/mame/drivers/exidy.c b/src/mame/drivers/exidy.c
index ad391b2f1e8..4d88d4ef512 100644
--- a/src/mame/drivers/exidy.c
+++ b/src/mame/drivers/exidy.c
@@ -186,11 +186,18 @@ CUSTOM_INPUT_MEMBER(exidy_state::teetert_input_r)
WRITE8_MEMBER(exidy_state::fax_bank_select_w)
{
+ m_fax_bank = data;
+
+ fax_bank_restore();
+}
+
+void exidy_state::fax_bank_restore()
+{
UINT8 *RAM = memregion("maincpu")->base();
- membank("bank1")->set_base(&RAM[0x10000 + (0x2000 * (data & 0x1f))]);
- if ((data & 0x1f) > 0x17)
- logerror("Banking to unpopulated ROM bank %02X!\n",data & 0x1f);
+ membank("bank1")->set_base(&RAM[0x10000 + (0x2000 * (m_fax_bank & 0x1f))]);
+ if ((m_fax_bank & 0x1f) > 0x17)
+ logerror("Banking to unpopulated ROM bank %02X!\n", m_fax_bank & 0x1f);
}
@@ -1543,6 +1550,9 @@ DRIVER_INIT_MEMBER(exidy_state,fax)
/* reset the ROM bank */
fax_bank_select_w(space,0,0);
+
+ save_item(NAME(m_fax_bank));
+ machine().save().register_postload(save_prepost_delegate(FUNC(exidy_state::fax_bank_restore), this));
}