From 5a1bda1d827ab26a6a86bf474654c565690a208f Mon Sep 17 00:00:00 2001 From: Thomas Harte Date: Wed, 17 Mar 2021 23:38:55 -0400 Subject: [PATCH] Performs boilerplate towards a ZX Spectrum class. --- Machines/Sinclair/ZXSpectrum/ZXSpectrum.cpp | 25 ++++++++++++++ Machines/Sinclair/ZXSpectrum/ZXSpectrum.hpp | 33 +++++++++++++++++++ Machines/Utility/MachineForTarget.cpp | 2 ++ .../Clock Signal.xcodeproj/project.pbxproj | 16 +++++++++ OSBindings/Qt/ClockSignal.pro | 2 ++ OSBindings/SDL/SConstruct | 1 + 6 files changed, 79 insertions(+) create mode 100644 Machines/Sinclair/ZXSpectrum/ZXSpectrum.cpp create mode 100644 Machines/Sinclair/ZXSpectrum/ZXSpectrum.hpp diff --git a/Machines/Sinclair/ZXSpectrum/ZXSpectrum.cpp b/Machines/Sinclair/ZXSpectrum/ZXSpectrum.cpp new file mode 100644 index 000000000..0fb126aa8 --- /dev/null +++ b/Machines/Sinclair/ZXSpectrum/ZXSpectrum.cpp @@ -0,0 +1,25 @@ +// +// ZXSpectrum.cpp +// Clock Signal +// +// Created by Thomas Harte on 17/03/2021. +// Copyright © 2021 Thomas Harte. All rights reserved. +// + +#include "ZXSpectrum.hpp" + +#include "../../MachineTypes.hpp" + +#include "../../../Analyser/Static/StaticAnalyser.hpp" + + +using namespace Sinclair::ZXSpectrum; + +Machine *Machine::ZXSpectrum(const Analyser::Static::Target *target, const ROMMachine::ROMFetcher &rom_fetcher) { + /* TODO */ + (void)target; + (void)rom_fetcher; + return nullptr; +} + +Machine::~Machine() {} diff --git a/Machines/Sinclair/ZXSpectrum/ZXSpectrum.hpp b/Machines/Sinclair/ZXSpectrum/ZXSpectrum.hpp new file mode 100644 index 000000000..9a294b95d --- /dev/null +++ b/Machines/Sinclair/ZXSpectrum/ZXSpectrum.hpp @@ -0,0 +1,33 @@ +// +// ZXSpectrum.hpp +// Clock Signal +// +// Created by Thomas Harte on 17/03/2021. +// Copyright © 2021 Thomas Harte. All rights reserved. +// + +#ifndef ZXSpectrum_hpp +#define ZXSpectrum_hpp + +#include "../../../Configurable/Configurable.hpp" +#include "../../../Configurable/StandardOptions.hpp" +#include "../../../Analyser/Static/StaticAnalyser.hpp" +#include "../../ROMMachine.hpp" + +#include + +namespace Sinclair { +namespace ZXSpectrum { + +class Machine { + public: + virtual ~Machine(); + + static Machine *ZXSpectrum(const Analyser::Static::Target *target, const ROMMachine::ROMFetcher &rom_fetcher); +}; + + +} +} + +#endif /* ZXSpectrum_hpp */ diff --git a/Machines/Utility/MachineForTarget.cpp b/Machines/Utility/MachineForTarget.cpp index 58f436db3..f716635f1 100644 --- a/Machines/Utility/MachineForTarget.cpp +++ b/Machines/Utility/MachineForTarget.cpp @@ -24,6 +24,7 @@ #include "../MSX/MSX.hpp" #include "../Oric/Oric.hpp" #include "../Sinclair/ZX8081/ZX8081.hpp" +#include "../Sinclair/ZXSpectrum/ZXSpectrum.hpp" // Sources for construction options. #include "../../Analyser/Static/Acorn/Target.hpp" @@ -63,6 +64,7 @@ Machine::DynamicMachine *Machine::MachineForTarget(const Analyser::Static::Targe Bind(Oric) BindD(Sega::MasterSystem, MasterSystem) BindD(Sinclair::ZX8081, ZX8081) + BindD(Sinclair::ZXSpectrum, ZXSpectrum) default: error = Machine::Error::UnknownMachine; diff --git a/OSBindings/Mac/Clock Signal.xcodeproj/project.pbxproj b/OSBindings/Mac/Clock Signal.xcodeproj/project.pbxproj index 1a99204ec..c3b07e5b4 100644 --- a/OSBindings/Mac/Clock Signal.xcodeproj/project.pbxproj +++ b/OSBindings/Mac/Clock Signal.xcodeproj/project.pbxproj @@ -130,6 +130,8 @@ 4B0F1BE62602FF9D00B85C66 /* ZX8081.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 4B0F1BCC2602F17B00B85C66 /* ZX8081.cpp */; }; 4B0F1BEA2602FFA000B85C66 /* Keyboard.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 4B0F1BCF2602F17B00B85C66 /* Keyboard.cpp */; }; 4B0F1BEB2602FFA100B85C66 /* Keyboard.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 4B0F1BCF2602F17B00B85C66 /* Keyboard.cpp */; }; + 4B0F1BFC260300D900B85C66 /* ZXSpectrum.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 4B0F1BFA260300D900B85C66 /* ZXSpectrum.cpp */; }; + 4B0F1BFD260300D900B85C66 /* ZXSpectrum.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 4B0F1BFA260300D900B85C66 /* ZXSpectrum.cpp */; }; 4B0F94FE208C1A1600FE41D9 /* NIB.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 4B0F94FC208C1A1600FE41D9 /* NIB.cpp */; }; 4B0F94FF208C1A1600FE41D9 /* NIB.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 4B0F94FC208C1A1600FE41D9 /* NIB.cpp */; }; 4B121F9B1E06293F00BFDA12 /* PCMSegmentEventSourceTests.mm in Sources */ = {isa = PBXBuildFile; fileRef = 4B121F9A1E06293F00BFDA12 /* PCMSegmentEventSourceTests.mm */; }; @@ -1065,6 +1067,8 @@ 4B0F1BCE2602F17B00B85C66 /* Video.hpp */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.h; path = Video.hpp; sourceTree = ""; }; 4B0F1BCF2602F17B00B85C66 /* Keyboard.cpp */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; path = Keyboard.cpp; sourceTree = ""; }; 4B0F1BD02602F17B00B85C66 /* ZX8081.hpp */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.h; path = ZX8081.hpp; sourceTree = ""; }; + 4B0F1BFA260300D900B85C66 /* ZXSpectrum.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = ZXSpectrum.cpp; sourceTree = ""; }; + 4B0F1BFB260300D900B85C66 /* ZXSpectrum.hpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.h; path = ZXSpectrum.hpp; sourceTree = ""; }; 4B0F94FC208C1A1600FE41D9 /* NIB.cpp */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; path = NIB.cpp; sourceTree = ""; }; 4B0F94FD208C1A1600FE41D9 /* NIB.hpp */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.h; path = NIB.hpp; sourceTree = ""; }; 4B0F9500208C42A300FE41D9 /* Target.hpp */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.h; name = Target.hpp; path = AppleII/Target.hpp; sourceTree = ""; }; @@ -2171,6 +2175,7 @@ isa = PBXGroup; children = ( 4B0F1BCA2602F17B00B85C66 /* ZX8081 */, + 4B0F1BF9260300D900B85C66 /* ZXSpectrum */, ); path = Sinclair; sourceTree = ""; @@ -2188,6 +2193,15 @@ path = ZX8081; sourceTree = ""; }; + 4B0F1BF9260300D900B85C66 /* ZXSpectrum */ = { + isa = PBXGroup; + children = ( + 4B0F1BFA260300D900B85C66 /* ZXSpectrum.cpp */, + 4B0F1BFB260300D900B85C66 /* ZXSpectrum.hpp */, + ); + path = ZXSpectrum; + sourceTree = ""; + }; 4B1414561B58879D00E04248 /* 6502 */ = { isa = PBXGroup; children = ( @@ -5212,6 +5226,7 @@ 4B894525201967B4007DE474 /* Tape.cpp in Sources */, 4B055ACD1FAE9B030060FFFF /* Keyboard.cpp in Sources */, 4B055AB21FAE860F0060FFFF /* CommodoreTAP.cpp in Sources */, + 4B0F1BFD260300D900B85C66 /* ZXSpectrum.cpp in Sources */, 4B055ADF1FAE9B4C0060FFFF /* IRQDelegatePortHandler.cpp in Sources */, 4B74CF86231370BC00500CE8 /* MacintoshVolume.cpp in Sources */, 4B0ACC3323775819008902D0 /* Atari2600.cpp in Sources */, @@ -5464,6 +5479,7 @@ 4B8334861F5DA3780097E338 /* 6502Storage.cpp in Sources */, 4B8FE2271DA1DE2D0090D3CE /* NSBundle+DataResource.m in Sources */, 4BC91B831D1F160E00884B76 /* CommodoreTAP.cpp in Sources */, + 4B0F1BFC260300D900B85C66 /* ZXSpectrum.cpp in Sources */, 4B55DD8320DF06680043F2E5 /* MachinePicker.swift in Sources */, 4B2A539F1D117D36003C6002 /* CSAudioQueue.m in Sources */, 4B89453E201967B4007DE474 /* StaticAnalyser.cpp in Sources */, diff --git a/OSBindings/Qt/ClockSignal.pro b/OSBindings/Qt/ClockSignal.pro index b4901282e..04e9c0b8e 100644 --- a/OSBindings/Qt/ClockSignal.pro +++ b/OSBindings/Qt/ClockSignal.pro @@ -90,6 +90,7 @@ SOURCES += \ $$SRC/Machines/Oric/*.cpp \ $$SRC/Machines/Utility/*.cpp \ $$SRC/Machines/Sinclair/ZX8081/*.cpp \ + $$SRC/Machines/Sinclair/ZXSpectrum/*.cpp \ \ $$SRC/Outputs/*.cpp \ $$SRC/Outputs/CRT/*.cpp \ @@ -215,6 +216,7 @@ HEADERS += \ $$SRC/Machines/Oric/*.hpp \ $$SRC/Machines/Utility/*.hpp \ $$SRC/Machines/Sinclair/ZX8081/*.hpp \ + $$SRC/Machines/Sinclair/ZXSpectrum/*.hpp \ \ $$SRC/Numeric/*.hpp \ \ diff --git a/OSBindings/SDL/SConstruct b/OSBindings/SDL/SConstruct index f05458c17..251ba283c 100644 --- a/OSBindings/SDL/SConstruct +++ b/OSBindings/SDL/SConstruct @@ -84,6 +84,7 @@ SOURCES += glob.glob('../../Machines/MSX/*.cpp') SOURCES += glob.glob('../../Machines/Oric/*.cpp') SOURCES += glob.glob('../../Machines/Utility/*.cpp') SOURCES += glob.glob('../../Machines/Sinclair/ZX8081/*.cpp') +SOURCES += glob.glob('../../Machines/Sinclair/ZXSpectrum/*.cpp') SOURCES += glob.glob('../../Outputs/*.cpp') SOURCES += glob.glob('../../Outputs/CRT/*.cpp')