25 switch (address & 0x3FFF) {
58 switch (address & 0x3FFF) {
99 if ((0x4000 <= address) && (address < 0x8000)) {
114 if ((start & 0x3FF8 & CacheLine::HIGH) == (0x3FF8 & CacheLine::HIGH)) {
116 }
else if ((0x4000 <= start) && (start < 0x8000)) {
126 switch (address & 0x3FFF) {
173 if ((address & 0x3FF8) == (0x3FF8 & CacheLine::HIGH)) {
181 template<
typename Archive>
184 ar.template serializeBase<WD2793BasedFDC>(*this);
185 ar.serialize(
"sideReg", sideReg);
186 ar.serialize(
"driveReg", driveReg);
void reset(EmuTime::param time) override
This method is called on reset.
byte peekDataReg(EmuTime::param time) const
const byte * getReadCacheLine(word start) const override
Test that the memory in the interval [start, start + CacheLine::SIZE) is cacheable for reading...
byte readMem(word address, EmuTime::param time) override
Read a byte from a location at a certain time from this device.
uint8_t byte
8 bit unsigned integer
void setCommandReg(byte value, EmuTime::param time)
void reset(EmuTime::param time) override
This method is called on reset.
REGISTER_MSXDEVICE(ChakkariCopy, "ChakkariCopy")
byte getStatusReg(EmuTime::param time)
byte peekSectorReg(EmuTime::param time) const
byte getSectorReg(EmuTime::param time)
bool getDTRQ(EmuTime::param time)
const byte * getReadCacheLine(word start) const override
Test that the memory in the interval [start, start + CacheLine::SIZE) is cacheable for reading...
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.
EmuTime::param getCurrentTime() const
DriveMultiplexer multiplexer
Thanks to enen for testing this on a real cartridge:
void setMotor(bool status, EmuTime::param time) override
Set motor on/off.
void setSectorReg(byte value, EmuTime::param time)
void serialize(Archive &ar, unsigned version)
uint16_t word
16 bit unsigned integer
static byte unmappedRead[0x10000]
byte peekMem(word address, EmuTime::param time) const override
Read a byte from a given memory location.
byte getDataReg(EmuTime::param time)
#define INSTANTIATE_SERIALIZE_METHODS(CLASS)
byte peekStatusReg(EmuTime::param time) const
static byte unmappedWrite[0x10000]
void setSide(bool side) override
Side select.
bool peekIRQ(EmuTime::param time) const
byte peekMem(word address, EmuTime::param time) const override
Read a byte from a given memory location.
byte peekTrackReg(EmuTime::param time) const
void setTrackReg(byte value, EmuTime::param time)
bool getIRQ(EmuTime::param time)
void selectDrive(DriveNum num, EmuTime::param time)
byte * getWriteCacheLine(word address) const override
Test that the memory in the interval [start, start + CacheLine::SIZE) is cacheable for writing...
byte getTrackReg(EmuTime::param time)
bool peekDTRQ(EmuTime::param time) const
void setDataReg(byte value, EmuTime::param time)
PhilipsFDC(const DeviceConfig &config)