summaryrefslogtreecommitdiffstatshomepage
path: root/src/emu/emumem_heun.h
diff options
context:
space:
mode:
Diffstat (limited to 'src/emu/emumem_heun.h')
-rw-r--r--src/emu/emumem_heun.h46
1 files changed, 30 insertions, 16 deletions
diff --git a/src/emu/emumem_heun.h b/src/emu/emumem_heun.h
index 4e76e4cb531..69a97e84f37 100644
--- a/src/emu/emumem_heun.h
+++ b/src/emu/emumem_heun.h
@@ -1,34 +1,42 @@
// license:BSD-3-Clause
// copyright-holders:Olivier Galibert
+#ifndef MAME_EMU_EMUMEM_HEUN_H
+#define MAME_EMU_EMUMEM_HEUN_H
+
+#pragma once
// handler_entry_read_unmapped/handler_entry_write_unmapped
// Logs an unmapped access
-template<int Width, int AddrShift, endianness_t Endian> class handler_entry_read_unmapped : public handler_entry_read<Width, AddrShift, Endian>
+template<int Width, int AddrShift> class handler_entry_read_unmapped : public handler_entry_read<Width, AddrShift>
{
public:
- using uX = typename emu::detail::handler_entry_size<Width>::uX;
- using inh = handler_entry_read<Width, AddrShift, Endian>;
+ using uX = emu::detail::handler_entry_size_t<Width>;
- handler_entry_read_unmapped(address_space *space) : handler_entry_read<Width, AddrShift, Endian>(space, 0) {}
+ handler_entry_read_unmapped(address_space *space, u16 flags) : handler_entry_read<Width, AddrShift>(space, handler_entry::F_UNMAP | flags) {}
~handler_entry_read_unmapped() = default;
uX read(offs_t offset, uX mem_mask) const override;
+ uX read_interruptible(offs_t offset, uX mem_mask) const override;
+ std::pair<uX, u16> read_flags(offs_t offset, uX mem_mask) const override;
+ u16 lookup_flags(offs_t offset, uX mem_mask) const override;
std::string name() const override;
};
-template<int Width, int AddrShift, endianness_t Endian> class handler_entry_write_unmapped : public handler_entry_write<Width, AddrShift, Endian>
+template<int Width, int AddrShift> class handler_entry_write_unmapped : public handler_entry_write<Width, AddrShift>
{
public:
- using uX = typename emu::detail::handler_entry_size<Width>::uX;
- using inh = handler_entry_write<Width, AddrShift, Endian>;
+ using uX = emu::detail::handler_entry_size_t<Width>;
- handler_entry_write_unmapped(address_space *space) : handler_entry_write<Width, AddrShift, Endian>(space, 0) {}
+ handler_entry_write_unmapped(address_space *space, u16 flags) : handler_entry_write<Width, AddrShift>(space, handler_entry::F_UNMAP | flags) {}
~handler_entry_write_unmapped() = default;
void write(offs_t offset, uX data, uX mem_mask) const override;
+ void write_interruptible(offs_t offset, uX data, uX mem_mask) const override;
+ u16 write_flags(offs_t offset, uX data, uX mem_mask) const override;
+ u16 lookup_flags(offs_t offset, uX mem_mask) const override;
std::string name() const override;
};
@@ -39,30 +47,36 @@ public:
// Drops an unmapped access silently
-template<int Width, int AddrShift, endianness_t Endian> class handler_entry_read_nop : public handler_entry_read<Width, AddrShift, Endian>
+template<int Width, int AddrShift> class handler_entry_read_nop : public handler_entry_read<Width, AddrShift>
{
public:
- using uX = typename emu::detail::handler_entry_size<Width>::uX;
- using inh = handler_entry_read<Width, AddrShift, Endian>;
+ using uX = emu::detail::handler_entry_size_t<Width>;
- handler_entry_read_nop(address_space *space) : handler_entry_read<Width, AddrShift, Endian>(space, 0) {}
+ handler_entry_read_nop(address_space *space, u16 flags) : handler_entry_read<Width, AddrShift>(space, flags) {}
~handler_entry_read_nop() = default;
uX read(offs_t offset, uX mem_mask) const override;
+ uX read_interruptible(offs_t offset, uX mem_mask) const override;
+ std::pair<uX, u16> read_flags(offs_t offset, uX mem_mask) const override;
+ u16 lookup_flags(offs_t offset, uX mem_mask) const override;
std::string name() const override;
};
-template<int Width, int AddrShift, endianness_t Endian> class handler_entry_write_nop : public handler_entry_write<Width, AddrShift, Endian>
+template<int Width, int AddrShift> class handler_entry_write_nop : public handler_entry_write<Width, AddrShift>
{
public:
- using uX = typename emu::detail::handler_entry_size<Width>::uX;
- using inh = handler_entry_write<Width, AddrShift, Endian>;
+ using uX = emu::detail::handler_entry_size_t<Width>;
- handler_entry_write_nop(address_space *space) : handler_entry_write<Width, AddrShift, Endian>(space, 0) {}
+ handler_entry_write_nop(address_space *space, u16 flags) : handler_entry_write<Width, AddrShift>(space, flags) {}
~handler_entry_write_nop() = default;
void write(offs_t offset, uX data, uX mem_mask) const override;
+ void write_interruptible(offs_t offset, uX data, uX mem_mask) const override;
+ u16 write_flags(offs_t offset, uX data, uX mem_mask) const override;
+ u16 lookup_flags(offs_t offset, uX mem_mask) const override;
std::string name() const override;
};
+
+#endif // MAME_EMU_EMUMEM_HEUN_H