21 reset(EmuTime::dummy());
28 for (
auto i :
xrange(2, 6)) {
39 if (address == 0xBA00) {
43 if (blockOffset >= 2) {
44 for (
auto i :
xrange(2, 6)) {
48 }
else if ((blockOffset >= 2) &&
49 (address ==
one_of(0x5000, 0x6000, 0x8000, 0xA000))) {
50 setRom(address >> 13, value + blockOffset - 2);
56 if ((0x5000 <= address) && (address < 0xC000)) {
63template<
typename Archive>
66 ar.template serializeBase<Rom8kBBlocks>(*
this);
68 ar.serialize(
"blockOffset", blockOffset);
#define REGISTER_MSXDEVICE(CLASS, NAME)
static std::array< byte, 0x10000 > unmappedWrite
void setUnmapped(unsigned region)
Select 'unmapped' memory for this region.
void setRom(unsigned region, unsigned block)
Selects a block of the ROM image for reading in a certain region.
std::array< byte, NUM_BANKS > blockNr
void serialize(Archive &ar, unsigned version)
byte * getWriteCacheLine(word address) override
Test that the memory in the interval [start, start + CacheLine::SIZE) is cacheable for writing.
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.
void reset(EmuTime::param time) override
This method is called on reset.
RomMatraCompilation(const DeviceConfig &config, Rom &&rom)
This file implemented 3 utility functions:
uint16_t word
16 bit unsigned integer
#define INSTANTIATE_SERIALIZE_METHODS(CLASS)
constexpr auto xrange(T e)