Add Tandy CoCo target.

This commit is contained in:
Thomas Harte committed 2026-05-02 11:57:04 -04:00
1 parent 5eb2cf108e
commit 71bd4c8d28
4 files changed
+50 -7

No files matched your search

+25
View File
@@ -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> {
Target() : Analyser::Static::Target(Machine::TandyCoCo) {}
private:
friend Reflection::StructImpl<Target>;
void declare_fields() {}
};
}
+12 -4
View File
@@ -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 <typename MachineT>
void emplace(const Analyser::Machine machine) {
options.emplace(
Machine::LongNameForTargetMachine(machine),
std::make_unique<typename MachineT::Options>(Configurable::OptionsType::UserFriendly)
);
if constexpr (requires{ MachineT::Options(Configurable::OptionsType()); }) {
options.emplace(
Machine::LongNameForTargetMachine(machine),
std::make_unique<typename MachineT::Options>(Configurable::OptionsType::UserFriendly)
);
}
};
};
}
@@ -278,9 +281,12 @@ std::map<std::string, std::unique_ptr<Reflection::Struct>> Machine::AllOptionsBy
OptionsList options;
using enum Analyser::Machine;
options.emplace<Amiga::Machine>(Amiga);
options.emplace<AmstradCPC::Machine>(AmstradCPC);
options.emplace<Apple::II::Machine>(AppleII);
options.emplace<Apple::IIgs::Machine>(AppleIIgs);
options.emplace<Archimedes::Machine>(Archimedes);
options.emplace<Atari2600::Machine>(Atari2600);
options.emplace<Atari::ST::Machine>(AtariST);
options.emplace<BBCMicro::Machine>(BBCMicro);
options.emplace<Coleco::Vision::Machine>(ColecoVision);
@@ -292,6 +298,7 @@ std::map<std::string, std::unique_ptr<Reflection::Struct>> Machine::AllOptionsBy
options.emplace<Oric::Machine>(Oric);
options.emplace<Commodore::Plus4::Machine>(Plus4);
options.emplace<PCCompatible::Machine>(PCCompatible);
options.emplace<Tandy::CoCo::Machine>(TandyCoCo);
options.emplace<Thomson::MO::Machine>(ThomsonMO);
options.emplace<Commodore::Vic20::Machine>(Vic20);
options.emplace<Sinclair::ZX8081::Machine>(ZX8081);
@@ -341,6 +348,7 @@ std::map<std::string, std::unique_ptr<Analyser::Static::Target>> Machine::Target
targets.emplace<Analyser::Static::Oric::Target>(Oric);
targets.emplace<Analyser::Static::Commodore::Plus4Target>(Plus4);
targets.emplace<Analyser::Static::PCCompatible::Target>(PCCompatible);
targets.emplace<Analyser::Static::TandyCoCo::Target>(TandyCoCo);
targets.emplace<Analyser::Static::Thomson::MOTarget>(ThomsonMO);
targets.emplace<Analyser::Static::Commodore::Vic20Target>(Vic20);
targets.emplace<Analyser::Static::ZX8081::Target>(ZX8081);
@@ -1634,6 +1634,7 @@
4B4195F62EBAB06C001C966D /* TubeZ80.hpp */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.h; path = TubeZ80.hpp; sourceTree = "<group>"; };
4B41EF6E2FA55F980086D909 /* CoCo.hpp */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.h; path = CoCo.hpp; sourceTree = "<group>"; };
4B41EF6F2FA55F980086D909 /* CoCo.cpp */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; path = CoCo.cpp; sourceTree = "<group>"; };
4B41EF762FA650000086D909 /* Target.hpp */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.h; path = Target.hpp; sourceTree = "<group>"; };
4B43983829620FB1006B0BFC /* 9918.cpp */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; path = 9918.cpp; sourceTree = "<group>"; };
4B43983C29621024006B0BFC /* ClockConverter.hpp */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.h; path = ClockConverter.hpp; sourceTree = "<group>"; };
4B43983E29628538006B0BFC /* Fetch.hpp */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.h; path = Fetch.hpp; sourceTree = "<group>"; };
@@ -3429,6 +3430,14 @@
path = Tandy;
sourceTree = "<group>";
};
4B41EF772FA650000086D909 /* TandyCoCo */ = {
isa = PBXGroup;
children = (
4B41EF762FA650000086D909 /* Target.hpp */,
);
path = TandyCoCo;
sourceTree = "<group>";
};
4B4518701F75E91800926311 /* Track */ = {
isa = PBXGroup;
children = (
@@ -4137,6 +4146,7 @@
4B8944F6201967B4007DE474 /* Oric */,
4238200D2B17CBC800964EFE /* PCCompatible */,
4B7F1894215486A100388727 /* Sega */,
4B41EF772FA650000086D909 /* TandyCoCo */,
4BBC7DD22F7186D600E71794 /* Thomson */,
4B894504201967B4007DE474 /* ZX8081 */,
4B0F1BAF2602645900B85C66 /* ZXSpectrum */,
@@ -95,7 +95,7 @@
</CommandLineArgument>
<CommandLineArgument
argument = "&quot;/Users/thomasharte/Library/Mobile Documents/com~apple~CloudDocs/Soft/Oric/Disks/Doggy.dsk&quot;"
isEnabled = "YES">
isEnabled = "NO">
</CommandLineArgument>
<CommandLineArgument
argument = "--volume=0.01"
@@ -111,11 +111,11 @@
</CommandLineArgument>
<CommandLineArgument
argument = "--display=CompositeColour"
isEnabled = "YES">
isEnabled = "NO">
</CommandLineArgument>
<CommandLineArgument
argument = "--help"
isEnabled = "NO">
isEnabled = "YES">
</CommandLineArgument>
</CommandLineArguments>
</LaunchAction>