diff --git a/Analyser/Static/TandyCoCo/Target.hpp b/Analyser/Static/TandyCoCo/Target.hpp new file mode 100644 index 000000000..8beece651 --- /dev/null +++ b/Analyser/Static/TandyCoCo/Target.hpp @@ -0,0 +1,25 @@ +// +// Target.hpp +// Clock Signal +// +// Created by Thomas Harte on 02/05/2026. +// Copyright © 2026 Thomas Harte. All rights reserved. +// + +#pragma once + +#include "Reflection/Enum.hpp" +#include "Reflection/Struct.hpp" +#include "Analyser/Static/StaticAnalyser.hpp" + +namespace Analyser::Static::TandyCoCo { + +struct Target: public Analyser::Static::Target, public Reflection::StructImpl { + Target() : Analyser::Static::Target(Machine::TandyCoCo) {} + +private: + friend Reflection::StructImpl; + void declare_fields() {} +}; + +} diff --git a/Machines/Utility/MachineForTarget.cpp b/Machines/Utility/MachineForTarget.cpp index 2613866e1..35001c241 100644 --- a/Machines/Utility/MachineForTarget.cpp +++ b/Machines/Utility/MachineForTarget.cpp @@ -49,6 +49,7 @@ #include "Analyser/Static/Oric/Target.hpp" #include "Analyser/Static/PCCompatible/Target.hpp" #include "Analyser/Static/Sega/Target.hpp" +#include "Analyser/Static/TandyCoCo/Target.hpp" #include "Analyser/Static/Thomson/Target.hpp" #include "Analyser/Static/ZX8081/Target.hpp" #include "Analyser/Static/ZXSpectrum/Target.hpp" @@ -266,10 +267,12 @@ struct OptionsList { template void emplace(const Analyser::Machine machine) { - options.emplace( - Machine::LongNameForTargetMachine(machine), - std::make_unique(Configurable::OptionsType::UserFriendly) - ); + if constexpr (requires{ MachineT::Options(Configurable::OptionsType()); }) { + options.emplace( + Machine::LongNameForTargetMachine(machine), + std::make_unique(Configurable::OptionsType::UserFriendly) + ); + } }; }; } @@ -278,9 +281,12 @@ std::map> Machine::AllOptionsBy OptionsList options; using enum Analyser::Machine; + options.emplace(Amiga); options.emplace(AmstradCPC); options.emplace(AppleII); + options.emplace(AppleIIgs); options.emplace(Archimedes); + options.emplace(Atari2600); options.emplace(AtariST); options.emplace(BBCMicro); options.emplace(ColecoVision); @@ -292,6 +298,7 @@ std::map> Machine::AllOptionsBy options.emplace(Oric); options.emplace(Plus4); options.emplace(PCCompatible); + options.emplace(TandyCoCo); options.emplace(ThomsonMO); options.emplace(Vic20); options.emplace(ZX8081); @@ -341,6 +348,7 @@ std::map> Machine::Target targets.emplace(Oric); targets.emplace(Plus4); targets.emplace(PCCompatible); + targets.emplace(TandyCoCo); targets.emplace(ThomsonMO); targets.emplace(Vic20); targets.emplace(ZX8081); diff --git a/OSBindings/Mac/Clock Signal.xcodeproj/project.pbxproj b/OSBindings/Mac/Clock Signal.xcodeproj/project.pbxproj index e58790a2f..8f4ba18f9 100644 --- a/OSBindings/Mac/Clock Signal.xcodeproj/project.pbxproj +++ b/OSBindings/Mac/Clock Signal.xcodeproj/project.pbxproj @@ -1634,6 +1634,7 @@ 4B4195F62EBAB06C001C966D /* TubeZ80.hpp */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.h; path = TubeZ80.hpp; sourceTree = ""; }; 4B41EF6E2FA55F980086D909 /* CoCo.hpp */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.h; path = CoCo.hpp; sourceTree = ""; }; 4B41EF6F2FA55F980086D909 /* CoCo.cpp */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; path = CoCo.cpp; sourceTree = ""; }; + 4B41EF762FA650000086D909 /* Target.hpp */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.h; path = Target.hpp; sourceTree = ""; }; 4B43983829620FB1006B0BFC /* 9918.cpp */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; path = 9918.cpp; sourceTree = ""; }; 4B43983C29621024006B0BFC /* ClockConverter.hpp */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.h; path = ClockConverter.hpp; sourceTree = ""; }; 4B43983E29628538006B0BFC /* Fetch.hpp */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.h; path = Fetch.hpp; sourceTree = ""; }; @@ -3429,6 +3430,14 @@ path = Tandy; sourceTree = ""; }; + 4B41EF772FA650000086D909 /* TandyCoCo */ = { + isa = PBXGroup; + children = ( + 4B41EF762FA650000086D909 /* Target.hpp */, + ); + path = TandyCoCo; + sourceTree = ""; + }; 4B4518701F75E91800926311 /* Track */ = { isa = PBXGroup; children = ( @@ -4137,6 +4146,7 @@ 4B8944F6201967B4007DE474 /* Oric */, 4238200D2B17CBC800964EFE /* PCCompatible */, 4B7F1894215486A100388727 /* Sega */, + 4B41EF772FA650000086D909 /* TandyCoCo */, 4BBC7DD22F7186D600E71794 /* Thomson */, 4B894504201967B4007DE474 /* ZX8081 */, 4B0F1BAF2602645900B85C66 /* ZXSpectrum */, diff --git a/OSBindings/Mac/Clock Signal.xcodeproj/xcshareddata/xcschemes/Clock Signal Kiosk.xcscheme b/OSBindings/Mac/Clock Signal.xcodeproj/xcshareddata/xcschemes/Clock Signal Kiosk.xcscheme index b678f4e5a..53a882f1b 100644 --- a/OSBindings/Mac/Clock Signal.xcodeproj/xcshareddata/xcschemes/Clock Signal Kiosk.xcscheme +++ b/OSBindings/Mac/Clock Signal.xcodeproj/xcshareddata/xcschemes/Clock Signal Kiosk.xcscheme @@ -95,7 +95,7 @@ + isEnabled = "NO"> + isEnabled = "NO"> + isEnabled = "YES">