From befe2c2929cdb521389f701624ec1ce884d7a03b Mon Sep 17 00:00:00 2001 From: Thomas Harte Date: Sun, 3 Nov 2019 21:57:54 -0500 Subject: [PATCH] Adds floppy drive activity indicators. --- Machines/AtariST/AtariST.cpp | 7 +++++++ Machines/AtariST/DMAController.cpp | 5 +++++ Machines/AtariST/DMAController.hpp | 3 +++ 3 files changed, 15 insertions(+) diff --git a/Machines/AtariST/AtariST.cpp b/Machines/AtariST/AtariST.cpp index 9127f1b21..e4f8463fc 100644 --- a/Machines/AtariST/AtariST.cpp +++ b/Machines/AtariST/AtariST.cpp @@ -12,6 +12,7 @@ #include "../KeyboardMachine.hpp" #include "../MouseMachine.hpp" #include "../MediaTarget.hpp" +#include "../../Activity/Source.hpp" //#define LOG_TRACE #include "../../Processors/68000/68000.hpp" @@ -49,6 +50,7 @@ class ConcreteMachine: public DMAController::Delegate, public MouseMachine::Machine, public KeyboardMachine::MappedMachine, + public Activity::Source, public MediaTarget::Machine, public GI::AY38910::PortHandler { public: @@ -533,6 +535,11 @@ class ConcreteMachine: } return true; } + + // MARK: - Activity Source + void set_activity_observer(Activity::Observer *observer) override { + dma_->set_activity_observer(observer); + } }; } diff --git a/Machines/AtariST/DMAController.cpp b/Machines/AtariST/DMAController.cpp index 381dc3f10..9f6322424 100644 --- a/Machines/AtariST/DMAController.cpp +++ b/Machines/AtariST/DMAController.cpp @@ -225,3 +225,8 @@ void DMAController::set_component_prefers_clocking(ClockingHint::Source *, Clock ClockingHint::Preference DMAController::preferred_clocking() { return (fdc_.preferred_clocking() == ClockingHint::Preference::None) ? ClockingHint::Preference::None : ClockingHint::Preference::RealTime; } + +void DMAController::set_activity_observer(Activity::Observer *observer) { + fdc_.drives_[0]->set_activity_observer(observer, "Internal", true); + fdc_.drives_[1]->set_activity_observer(observer, "External", true); +} diff --git a/Machines/AtariST/DMAController.hpp b/Machines/AtariST/DMAController.hpp index 8df40bb28..87a9ac8da 100644 --- a/Machines/AtariST/DMAController.hpp +++ b/Machines/AtariST/DMAController.hpp @@ -15,6 +15,7 @@ #include "../../ClockReceiver/ClockReceiver.hpp" #include "../../ClockReceiver/ClockingHintSource.hpp" #include "../../Components/1770/1770.hpp" +#include "../../Activity/Source.hpp" namespace Atari { namespace ST { @@ -46,6 +47,8 @@ class DMAController: public WD::WD1770::Delegate, public ClockingHint::Source, p }; void set_delegate(Delegate *delegate); + void set_activity_observer(Activity::Observer *observer); + // ClockingHint::Source. ClockingHint::Preference preferred_clocking() final;