From 39d779edf089761332d5b689763f8187539b2be6 Mon Sep 17 00:00:00 2001 From: Thomas Harte Date: Fri, 11 May 2018 21:45:46 -0400 Subject: [PATCH] Makes CPC an activity source. --- Machines/AmstradCPC/AmstradCPC.cpp | 14 +++++++++++++- 1 file changed, 13 insertions(+), 1 deletion(-) diff --git a/Machines/AmstradCPC/AmstradCPC.cpp b/Machines/AmstradCPC/AmstradCPC.cpp index db1720cb5..fa60a0d4f 100644 --- a/Machines/AmstradCPC/AmstradCPC.cpp +++ b/Machines/AmstradCPC/AmstradCPC.cpp @@ -20,6 +20,7 @@ #include "../Utility/MemoryFuzzer.hpp" #include "../Utility/Typer.hpp" +#include "../../Activity/Source.hpp" #include "../ConfigurationTarget.hpp" #include "../CRTMachine.hpp" #include "../KeyboardMachine.hpp" @@ -607,6 +608,10 @@ class FDC: public Intel::i8272::i8272 { void set_disk(std::shared_ptr disk, int drive) { drive_->set_disk(disk); } + + void set_activity_observer(Activity::Observer *observer) { + drive_->set_activity_observer(observer, "Drive 1", true); + } }; /*! @@ -690,7 +695,8 @@ class ConcreteMachine: public Utility::TypeRecipient, public CPU::Z80::BusHandler, public Sleeper::SleepObserver, - public Machine { + public Machine, + public Activity::Source { public: ConcreteMachine() : z80_(*this), @@ -995,6 +1001,12 @@ class ConcreteMachine: return &keyboard_mapper_; } + // MARK: - Activity Source + void set_activity_observer(Activity::Observer *observer) override { + if(has_fdc_) fdc_.set_activity_observer(observer); + } + + private: inline void write_to_gate_array(uint8_t value) { switch(value >> 6) {