diff --git a/ClockReceiver/JustInTime.hpp b/ClockReceiver/JustInTime.hpp index 865f8ed53..610b04737 100644 --- a/ClockReceiver/JustInTime.hpp +++ b/ClockReceiver/JustInTime.hpp @@ -21,14 +21,18 @@ Machines that accumulate HalfCycle time but supply to a Cycle-counted device may supply a separate @c TargetTimeScale at template declaration. */ -template class JustInTimeActor { +template class JustInTimeActor { public: /// Constructs a new JustInTimeActor using the same construction arguments as the included object. template JustInTimeActor(Args&&... args) : object_(std::forward(args)...) {} /// Adds time to the actor. inline void operator += (const LocalTimeScale &rhs) { - time_since_update_ += rhs; + if(multiplier != 1) { + time_since_update_ += rhs * multiplier; + } else { + time_since_update_ += rhs; + } is_flushed_ = false; } diff --git a/Machines/Apple/Macintosh/Macintosh.cpp b/Machines/Apple/Macintosh/Macintosh.cpp index 231b5f242..6f6daa9f0 100644 --- a/Machines/Apple/Macintosh/Macintosh.cpp +++ b/Machines/Apple/Macintosh/Macintosh.cpp @@ -656,7 +656,7 @@ template class ConcreteMachin return mouse_; } - using IWMActor = JustInTimeActor; + using IWMActor = JustInTimeActor; class VIAPortHandler: public MOS::MOS6522::PortHandler { public: diff --git a/Machines/AtariST/AtariST.cpp b/Machines/AtariST/AtariST.cpp index 2cd49baf2..5eb927fab 100644 --- a/Machines/AtariST/AtariST.cpp +++ b/Machines/AtariST/AtariST.cpp @@ -32,7 +32,7 @@ namespace Atari { namespace ST { -const int CLOCK_RATE = 8000000; +const int CLOCK_RATE = 8021247; /*! A receiver for the Atari ST's "intelligent keyboard" commands, which actually cover @@ -604,7 +604,8 @@ class ConcreteMachine: JustInTimeActor