From 95f5bb86b3766c5427ef92c62a297be563fe74b2 Mon Sep 17 00:00:00 2001 From: Olivier Galibert Date: Wed, 24 Feb 2021 07:51:33 +0100 Subject: addrmap: Allow creators in the memory map --- src/emu/addrmap.h | 21 +++++++++++++++++++++ 1 file changed, 21 insertions(+) diff --git a/src/emu/addrmap.h b/src/emu/addrmap.h index 6f2f903306d..c5a6c17d128 100644 --- a/src/emu/addrmap.h +++ b/src/emu/addrmap.h @@ -128,6 +128,11 @@ public: assert(&target.first == &m_devbase); return share(target.second); } + template address_map_entry &share(const memory_share_creator<_ptrt> &finder) { + const std::pair target(finder.finder_target()); + assert(&target.first == &m_devbase); + return share(target.second); + } address_map_entry &rom() { m_read.m_type = AMH_ROM; return *this; } address_map_entry &ram() { m_read.m_type = AMH_RAM; m_write.m_type = AMH_RAM; return *this; } @@ -161,6 +166,22 @@ public: address_map_entry &bankw(const char *tag) { m_write.m_type = AMH_BANK; m_write.m_tag = tag; return *this; } address_map_entry &bankrw(const char *tag) { bankr(tag); bankw(tag); return *this; } + address_map_entry &bankr(const memory_bank_creator &finder) { + const std::pair target(finder.finder_target()); + assert(&target.first == &m_devbase); + return bankr(target.second); + } + address_map_entry &bankw(const memory_bank_creator &finder) { + const std::pair target(finder.finder_target()); + assert(&target.first == &m_devbase); + return bankw(target.second); + } + address_map_entry &bankrw(const memory_bank_creator &finder) { + const std::pair target(finder.finder_target()); + assert(&target.first == &m_devbase); + return bankrw(target.second); + } + template address_map_entry &bankr(const memory_bank_finder<_reqd> &finder) { const std::pair target(finder.finder_target()); assert(&target.first == &m_devbase); -- cgit v1.2.3