openMSX
MSXResetStatusRegister.cc
Go to the documentation of this file.
2 #include "serialize.hh"
3 
4 namespace openmsx {
5 
7  : MSXDevice(config)
8  , inverted(config.getChildDataAsBool("inverted", false))
9 {
10  reset(EmuTime::dummy());
11 }
12 
13 void MSXResetStatusRegister::reset(EmuTime::param /*time*/)
14 {
15  status = inverted ? 0xFF : 0x00;
16 }
17 
18 byte MSXResetStatusRegister::readIO(word port, EmuTime::param time)
19 {
20  return peekIO(port, time);
21 }
22 
23 byte MSXResetStatusRegister::peekIO(word /*port*/, EmuTime::param /*time*/) const
24 {
25  return status;
26 }
27 
28 void MSXResetStatusRegister::writeIO(word /*port*/, byte value, EmuTime::param /*time*/)
29 {
30  if (inverted) {
31  status = value | 0x7F;
32  } else {
33  status = (status & 0x20) | (value & 0xA0);
34  }
35 }
36 
37 template<typename Archive>
38 void MSXResetStatusRegister::serialize(Archive& ar, unsigned /*version*/)
39 {
40  ar.template serializeBase<MSXDevice>(*this);
41  ar.serialize("status", status);
42 }
44 REGISTER_MSXDEVICE(MSXResetStatusRegister, "F4Device"); // TODO: find a way to handle renames of classes and keep bw compat with savestates....
45 
46 } // namespace openmsx
An MSXDevice is an emulated hardware component connected to the bus of the emulated MSX.
Definition: MSXDevice.hh:32
MSXResetStatusRegister(const DeviceConfig &config)
void serialize(Archive &ar, unsigned version)
byte peekIO(word port, EmuTime::param time) const override
Read a byte from a given IO port.
void reset(EmuTime::param time) override
This method is called on reset.
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.
byte readIO(word port, EmuTime::param time) override
Read a byte from an IO port at a certain time from this device.
This file implemented 3 utility functions:
Definition: Autofire.cc:5
REGISTER_MSXDEVICE(ChakkariCopy, "ChakkariCopy")
uint16_t word
16 bit unsigned integer
Definition: openmsx.hh:29
#define INSTANTIATE_SERIALIZE_METHODS(CLASS)
Definition: serialize.hh:983