OXYGENHUB
◆ main openmsx / src / memory / RomGeneric8kB.cc
747 B · C++ · last changed chore(): initial commit 1 month ago source blame history raw
1
#include "RomGeneric8kB.hh"
2
3
#include "xrange.hh"
4
5
namespace openmsx {
6
7
RomGeneric8kB::RomGeneric8kB(const DeviceConfig& config, Rom&& rom_)
8
	: Rom8kBBlocks(config, std::move(rom_))
9
{
10
	reset(EmuTime::dummy());
11
}
12
13
void RomGeneric8kB::reset(EmuTime /*time*/)
14
{
15
	setUnmapped(0);
16
	setUnmapped(1);
17
	for (auto i : xrange(2, 6)) {
18
		setRom(i, i - 2);
19
	}
20
	setUnmapped(6);
21
	setUnmapped(7);
22
}
23
24
void RomGeneric8kB::writeMem(uint16_t address, byte value, EmuTime /*time*/)
25
{
26
	setRom(address >> 13, value);
27
}
28
29
byte* RomGeneric8kB::getWriteCacheLine(uint16_t address)
30
{
31
	if ((0x4000 <= address) && (address < 0xC000)) {
32
		return nullptr;
33
	} else {
34
		return unmappedWrite.data();
35
	}
36
}
37
38
REGISTER_MSXDEVICE(RomGeneric8kB, "RomGeneric8kB");
39
40
} // namespace openmsx