MSXHiResTimer.hh 693 B

12345678910111213141516171819202122232425262728293031
  1. #ifndef MSXHIRESTIMER_HH
  2. #define MSXHIRESTIMER_HH
  3. #include "MSXDevice.hh"
  4. #include "Clock.hh"
  5. namespace openmsx {
  6. class MSXHiResTimer final : public MSXDevice
  7. {
  8. public:
  9. explicit MSXHiResTimer(const DeviceConfig& config);
  10. void reset(EmuTime::param time) override;
  11. void writeIO(word port, byte value, EmuTime::param time) override;
  12. byte readIO(word port, EmuTime::param time) override;
  13. byte peekIO(word port, EmuTime::param time) const override;
  14. template<typename Archive>
  15. void serialize(Archive& ar, unsigned version);
  16. private:
  17. Clock<3579545> reference; // last time the counter was reset
  18. unsigned latchedValue; // last latched timer value
  19. };
  20. } // namespace openmsx
  21. #endif