From af1dc2d3b2531b5d2a10868e4b05a502418954e4 Mon Sep 17 00:00:00 2001 From: Thomas Harte Date: Tue, 20 Apr 2021 21:56:58 -0400 Subject: [PATCH 1/3] Switches to correct non-value sentinel. --- Components/68901/MFP68901.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Components/68901/MFP68901.cpp b/Components/68901/MFP68901.cpp index c44fa8883..c2f04d631 100644 --- a/Components/68901/MFP68901.cpp +++ b/Components/68901/MFP68901.cpp @@ -208,7 +208,7 @@ void MFP68901::run_for(HalfCycles time) { } HalfCycles MFP68901::get_next_sequence_point() { - return HalfCycles(-1); + return HalfCycles::max(); } // MARK: - Timers From 73c8157197137820ca0111f5a3d58c6526bbec0a Mon Sep 17 00:00:00 2001 From: Thomas Harte Date: Tue, 20 Apr 2021 22:26:43 -0400 Subject: [PATCH 2/3] Retain 6850 time tracking at all times. --- Components/6850/6850.cpp | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/Components/6850/6850.cpp b/Components/6850/6850.cpp index 100f82c8d..561a1caac 100644 --- a/Components/6850/6850.cpp +++ b/Components/6850/6850.cpp @@ -129,8 +129,8 @@ ClockingHint::Preference ACIA::preferred_clocking() const { // because it's unclear when the interrupt might come. if(bits_incoming_ && receive_interrupt_enabled_) return ClockingHint::Preference::RealTime; - // No clocking required then. - return ClockingHint::Preference::None; + // Real-time clocking not required then. + return ClockingHint::Preference::JustInTime; } bool ACIA::get_interrupt_line() const { From ef01471e17dafe5bc9bc82a0fd125528b8c5bdcb Mon Sep 17 00:00:00 2001 From: Thomas Harte Date: Tue, 20 Apr 2021 22:34:13 -0400 Subject: [PATCH 3/3] Ensures the DMA controller remains clocked. --- Machines/Atari/ST/DMAController.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Machines/Atari/ST/DMAController.cpp b/Machines/Atari/ST/DMAController.cpp index 0259d5ed3..104d5efc5 100644 --- a/Machines/Atari/ST/DMAController.cpp +++ b/Machines/Atari/ST/DMAController.cpp @@ -252,7 +252,7 @@ void DMAController::set_component_prefers_clocking(ClockingHint::Source *, Clock } ClockingHint::Preference DMAController::preferred_clocking() const { - return (fdc_.preferred_clocking() == ClockingHint::Preference::None) ? ClockingHint::Preference::None : ClockingHint::Preference::RealTime; + return (fdc_.preferred_clocking() == ClockingHint::Preference::None) ? ClockingHint::Preference::JustInTime : ClockingHint::Preference::RealTime; } void DMAController::set_activity_observer(Activity::Observer *observer) {