openMSX
|
#include <MSXMemoryMapper.hh>
Public Member Functions | |
MSXMemoryMapper (const DeviceConfig &config) | |
void | writeIO (word port, byte value, EmuTime::param time) override |
Write a byte to a given IO port at a certain time to this device. | |
template<typename Archive > | |
void | serialize (Archive &ar, unsigned version) |
Public Member Functions inherited from openmsx::MSXMemoryMapperBase | |
MSXMemoryMapperBase (const DeviceConfig &config) | |
byte | getSelectedSegment (byte page) const override |
Returns the currently selected segment for the given page. | |
unsigned | getSizeInBlocks () const |
void | reset (EmuTime::param time) override |
This method is called on reset. | |
void | powerUp (EmuTime::param time) override |
This method is called when MSX is powered up. | |
byte | readIO (word port, EmuTime::param time) override |
Read a byte from an IO port at a certain time from this device. | |
byte | peekIO (word port, EmuTime::param time) const override |
Read a byte from a given IO port. | |
byte | readMem (word address, EmuTime::param time) override |
Read a byte from a location at a certain time from this device. | |
void | writeMem (word address, byte value, EmuTime::param time) override |
Write a given byte to a given location at a certain time to this device. | |
const byte * | getReadCacheLine (word start) const override |
Test that the memory in the interval [start, start + CacheLine::SIZE) is cacheable for reading. | |
byte * | getWriteCacheLine (word start) override |
Test that the memory in the interval [start, start + CacheLine::SIZE) is cacheable for writing. | |
byte | peekMem (word address, EmuTime::param time) const override |
Read a byte from a given memory location. | |
unsigned | getBaseSizeAlignment () const override |
The 'base' and 'size' attribute values need to be at least aligned to CacheLine::SIZE. | |
template<typename Archive > | |
void | serialize (Archive &ar, unsigned version) |
Public Member Functions inherited from openmsx::MSXDevice | |
MSXDevice (const MSXDevice &)=delete | |
MSXDevice (MSXDevice &&)=delete | |
MSXDevice & | operator= (const MSXDevice &)=delete |
MSXDevice & | operator= (MSXDevice &&)=delete |
virtual | ~MSXDevice ()=0 |
const HardwareConfig & | getHardwareConfig () const |
Returns the hardwareconfig this device belongs to. | |
void | testRemove (std::span< const std::unique_ptr< MSXDevice > > removed) const |
Checks whether this device can be removed (no other device has a reference to it). | |
virtual byte | readIRQVector () |
Gets IRQ vector used in IM2. | |
virtual void | powerDown (EmuTime::param time) |
This method is called when MSX is powered down. | |
virtual const std::string & | getName () const |
Returns a human-readable name for this device. | |
virtual void | getNameList (TclObject &result) const |
Returns list of name(s) of this device. | |
void | getDeviceInfo (TclObject &result) const |
Get device info. | |
void | getVisibleMemRegion (unsigned &base, unsigned &size) const |
Returns the range where this device is visible in memory. | |
virtual void | globalWrite (word address, byte value, EmuTime::param time) |
Global writes. | |
virtual void | globalRead (word address, EmuTime::param time) |
Global reads. | |
void | invalidateDeviceRWCache () |
Calls MSXCPUInterface::invalidateXXCache() for the specific (part of) the slot that this device is located in. | |
void | invalidateDeviceRCache () |
void | invalidateDeviceWCache () |
void | invalidateDeviceRWCache (unsigned start, unsigned size) |
void | invalidateDeviceRCache (unsigned start, unsigned size) |
void | invalidateDeviceWCache (unsigned start, unsigned size) |
void | fillDeviceRWCache (unsigned start, unsigned size, byte *rwData) |
Calls MSXCPUInterface::fillXXCache() for the specific (part of) the slot that this device is located in. | |
void | fillDeviceRWCache (unsigned start, unsigned size, const byte *rData, byte *wData) |
void | fillDeviceRCache (unsigned start, unsigned size, const byte *rData) |
void | fillDeviceWCache (unsigned start, unsigned size, byte *wData) |
MSXMotherBoard & | getMotherBoard () const |
Get the mother board this device belongs to. | |
const XMLElement & | getDeviceConfig () const |
Get the configuration section for this device. | |
const DeviceConfig & | getDeviceConfig2 () const |
const Devices & | getReferences () const |
Get the device references that are specified for this device. | |
EmuTime::param | getCurrentTime () const |
MSXCPU & | getCPU () const |
MSXCPUInterface & | getCPUInterface () const |
Scheduler & | getScheduler () const |
MSXCliComm & | getCliComm () const |
Reactor & | getReactor () const |
CommandController & | getCommandController () const |
PluggingController & | getPluggingController () const |
LedStatus & | getLedStatus () const |
template<typename Archive > | |
void | serialize (Archive &ar, unsigned version) |
Public Member Functions inherited from openmsx::MSXMapperIOClient | |
MSXMapperIOClient (const MSXMapperIOClient &)=delete | |
MSXMapperIOClient (MSXMapperIOClient &&)=delete | |
MSXMapperIOClient & | operator= (const MSXMapperIOClient &)=delete |
MSXMapperIOClient & | operator= (MSXMapperIOClient &&)=delete |
Additional Inherited Members | |
Public Types inherited from openmsx::MSXDevice | |
using | Devices = std::vector< MSXDevice * > |
Static Public Attributes inherited from openmsx::MSXDevice | |
static std::array< byte, 0x10000 > | unmappedRead |
static std::array< byte, 0x10000 > | unmappedWrite |
Protected Member Functions inherited from openmsx::MSXMemoryMapperBase | |
unsigned | calcAddress (word address) const |
Converts a Z80 address to a RAM address. | |
unsigned | segmentOffset (byte page) const |
void | writeIOImpl (word port, byte value, EmuTime::param time) |
Protected Member Functions inherited from openmsx::MSXDevice | |
MSXDevice (const DeviceConfig &config, std::string_view name) | |
Every MSXDevice has a config entry; this constructor gets some device properties from that config entry. | |
MSXDevice (const DeviceConfig &config) | |
virtual void | init () |
virtual bool | allowUnaligned () const |
By default we don't allow unaligned <mem> specifications in the config file. | |
virtual void | getExtraDeviceInfo (TclObject &result) const |
byte | getPrimarySlot () const |
Protected Member Functions inherited from openmsx::MSXMapperIOClient | |
MSXMapperIOClient (MSXMotherBoard &motherBoard_) | |
~MSXMapperIOClient () | |
Protected Member Functions inherited from openmsx::MSXMemoryMapperInterface | |
~MSXMemoryMapperInterface ()=default | |
Protected Attributes inherited from openmsx::MSXMemoryMapperBase | |
CheckedRam | checkedRam |
std::array< byte, 4 > | registers |
Protected Attributes inherited from openmsx::MSXDevice | |
std::string | deviceName |
Definition at line 8 of file MSXMemoryMapper.hh.
|
explicit |
Definition at line 6 of file MSXMemoryMapper.cc.
void openmsx::MSXMemoryMapper::serialize | ( | Archive & | ar, |
unsigned | version | ||
) |
Definition at line 23 of file MSXMemoryMapper.cc.
|
overridevirtual |
Write a byte to a given IO port at a certain time to this device.
The default implementation ignores the write (does nothing)
Implements openmsx::MSXMemoryMapperBase.
Definition at line 11 of file MSXMemoryMapper.cc.
References openmsx::MSXMemoryMapperBase::checkedRam, openmsx::MSXDevice::fillDeviceRWCache(), openmsx::CheckedRam::getRWCacheLines(), openmsx::MSXDevice::invalidateDeviceRWCache(), openmsx::MSXMemoryMapperBase::segmentOffset(), and openmsx::MSXMemoryMapperBase::writeIOImpl().