diff --git a/OSBindings/Mac/Clock Signal.xcodeproj/project.pbxproj b/OSBindings/Mac/Clock Signal.xcodeproj/project.pbxproj index 500693c7d..24d61fa11 100644 --- a/OSBindings/Mac/Clock Signal.xcodeproj/project.pbxproj +++ b/OSBindings/Mac/Clock Signal.xcodeproj/project.pbxproj @@ -147,6 +147,8 @@ 4B1497921EE4B5A800CE2596 /* ZX8081.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 4B1497901EE4B5A800CE2596 /* ZX8081.cpp */; }; 4B1497981EE4B97F00CE2596 /* ZX8081Options.xib in Resources */ = {isa = PBXBuildFile; fileRef = 4B1497961EE4B97F00CE2596 /* ZX8081Options.xib */; }; 4B1558C01F844ECD006E9A97 /* BitReverse.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 4B1558BE1F844ECD006E9A97 /* BitReverse.cpp */; }; + 4B1BA08A1FD4967800CB4ADA /* CSMSX.mm in Sources */ = {isa = PBXBuildFile; fileRef = 4B1BA0891FD4967800CB4ADA /* CSMSX.mm */; }; + 4B1BA08D1FD498B000CB4ADA /* MSXOptions.xib in Resources */ = {isa = PBXBuildFile; fileRef = 4B1BA08B1FD498B000CB4ADA /* MSXOptions.xib */; }; 4B1D08061E0F7A1100763741 /* TimeTests.mm in Sources */ = {isa = PBXBuildFile; fileRef = 4B1D08051E0F7A1100763741 /* TimeTests.mm */; }; 4B1E85811D176468001EF87D /* 6532Tests.swift in Sources */ = {isa = PBXBuildFile; fileRef = 4B1E85801D176468001EF87D /* 6532Tests.swift */; }; 4B1EDB451E39A0AC009D6819 /* chip.png in Resources */ = {isa = PBXBuildFile; fileRef = 4B1EDB431E39A0AC009D6819 /* chip.png */; }; @@ -663,6 +665,9 @@ 4B1497971EE4B97F00CE2596 /* Base */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = Base; path = "Clock Signal/Base.lproj/ZX8081Options.xib"; sourceTree = SOURCE_ROOT; }; 4B1558BE1F844ECD006E9A97 /* BitReverse.cpp */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = BitReverse.cpp; path = Data/BitReverse.cpp; sourceTree = ""; }; 4B1558BF1F844ECD006E9A97 /* BitReverse.hpp */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.h; name = BitReverse.hpp; path = Data/BitReverse.hpp; sourceTree = ""; }; + 4B1BA0881FD4967700CB4ADA /* CSMSX.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CSMSX.h; sourceTree = ""; }; + 4B1BA0891FD4967800CB4ADA /* CSMSX.mm */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.objcpp; path = CSMSX.mm; sourceTree = ""; }; + 4B1BA08C1FD498B000CB4ADA /* Base */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = Base; path = "Clock Signal/Base.lproj/MSXOptions.xib"; sourceTree = SOURCE_ROOT; }; 4B1D08051E0F7A1100763741 /* TimeTests.mm */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.objcpp; path = TimeTests.mm; sourceTree = ""; }; 4B1E857B1D174DEC001EF87D /* 6532.hpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.h; path = 6532.hpp; sourceTree = ""; }; 4B1E85801D176468001EF87D /* 6532Tests.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = 6532Tests.swift; sourceTree = ""; }; @@ -1492,6 +1497,7 @@ 4B38F34A1F2EC3CA00D9235D /* CSAmstradCPC.h */, 4B2A53991D117D36003C6002 /* CSAtari2600.h */, 4B2A539B1D117D36003C6002 /* CSElectron.h */, + 4B1BA0881FD4967700CB4ADA /* CSMSX.h */, 4BCF1FA61DADC5250039D2E7 /* CSOric.h */, 4B2A539D1D117D36003C6002 /* CSVic20.h */, 4B14978D1EE4B4D200CE2596 /* CSZX8081.h */, @@ -1499,6 +1505,7 @@ 4B38F34B1F2EC3CA00D9235D /* CSAmstradCPC.mm */, 4B2A539A1D117D36003C6002 /* CSAtari2600.mm */, 4B2A539C1D117D36003C6002 /* CSElectron.mm */, + 4B1BA0891FD4967800CB4ADA /* CSMSX.mm */, 4BCF1FA71DADC5250039D2E7 /* CSOric.mm */, 4B2A539E1D117D36003C6002 /* CSVic20.mm */, 4B14978E1EE4B4D200CE2596 /* CSZX8081.mm */, @@ -1790,6 +1797,7 @@ 4B8FE2131DA19D5F0090D3CE /* Atari2600Options.xib */, 4B8FE2171DA19D5F0090D3CE /* ElectronOptions.xib */, 4B8FE2151DA19D5F0090D3CE /* MachineDocument.xib */, + 4B1BA08B1FD498B000CB4ADA /* MSXOptions.xib */, 4B2A332B1DB86821002876E3 /* OricOptions.xib */, 4B8FE2191DA19D5F0090D3CE /* Vic20Options.xib */, 4B1497961EE4B97F00CE2596 /* ZX8081Options.xib */, @@ -2875,6 +2883,7 @@ 4B2C45421E3C3896002A2389 /* cartridge.png in Resources */, 4BB73EA91B587A5100552FC2 /* Assets.xcassets in Resources */, 4B79E4451E3AF38600141F11 /* floppy35.png in Resources */, + 4B1BA08D1FD498B000CB4ADA /* MSXOptions.xib in Resources */, 4B1EDB451E39A0AC009D6819 /* chip.png in Resources */, 4B2A332D1DB86821002876E3 /* OricOptions.xib in Resources */, 4B8FE21B1DA19D5F0090D3CE /* Atari2600Options.xib in Resources */, @@ -3364,6 +3373,7 @@ 4B4518A21F75FD1C00926311 /* G64.cpp in Sources */, 4BF829661D8F732B001BAE39 /* Disk.cpp in Sources */, 4B448E811F1C45A00009ABD6 /* TZX.cpp in Sources */, + 4B1BA08A1FD4967800CB4ADA /* CSMSX.mm in Sources */, 4BEA52631DF339D7007E74F2 /* Speaker.cpp in Sources */, 4BC5E4921D7ED365008CF980 /* StaticAnalyser.cpp in Sources */, 4BC830D11D6E7C690000A26F /* Tape.cpp in Sources */, @@ -3521,6 +3531,14 @@ name = ZX8081Options.xib; sourceTree = ""; }; + 4B1BA08B1FD498B000CB4ADA /* MSXOptions.xib */ = { + isa = PBXVariantGroup; + children = ( + 4B1BA08C1FD498B000CB4ADA /* Base */, + ); + name = MSXOptions.xib; + sourceTree = ""; + }; 4B2A332B1DB86821002876E3 /* OricOptions.xib */ = { isa = PBXVariantGroup; children = ( diff --git a/OSBindings/Mac/Clock Signal/Base.lproj/MSXOptions.xib b/OSBindings/Mac/Clock Signal/Base.lproj/MSXOptions.xib new file mode 100644 index 000000000..39bd7024b --- /dev/null +++ b/OSBindings/Mac/Clock Signal/Base.lproj/MSXOptions.xib @@ -0,0 +1,48 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/OSBindings/Mac/Clock Signal/Machine/StaticAnalyser/CSStaticAnalyser.mm b/OSBindings/Mac/Clock Signal/Machine/StaticAnalyser/CSStaticAnalyser.mm index ef3c89782..4395921b7 100644 --- a/OSBindings/Mac/Clock Signal/Machine/StaticAnalyser/CSStaticAnalyser.mm +++ b/OSBindings/Mac/Clock Signal/Machine/StaticAnalyser/CSStaticAnalyser.mm @@ -17,6 +17,7 @@ #import "CSAmstradCPC.h" #import "CSAtari2600.h" #import "CSElectron.h" +#import "CSMSX.h" #import "CSOric.h" #import "CSVic20.h" #import "CSZX8081+Instantiation.h" @@ -45,6 +46,7 @@ case StaticAnalyser::Target::AmstradCPC: return nil; case StaticAnalyser::Target::Atari2600: return @"Atari2600Options"; case StaticAnalyser::Target::Electron: return @"ElectronOptions"; + case StaticAnalyser::Target::MSX: return @"MSXOptions"; case StaticAnalyser::Target::Oric: return @"OricOptions"; case StaticAnalyser::Target::Vic20: return @"Vic20Options"; case StaticAnalyser::Target::ZX8081: return @"ZX8081Options"; @@ -57,6 +59,7 @@ case StaticAnalyser::Target::AmstradCPC: return [[CSAmstradCPC alloc] init]; case StaticAnalyser::Target::Atari2600: return [[CSAtari2600 alloc] init]; case StaticAnalyser::Target::Electron: return [[CSElectron alloc] init]; + case StaticAnalyser::Target::MSX: return [[CSMSX alloc] init]; case StaticAnalyser::Target::Oric: return [[CSOric alloc] init]; case StaticAnalyser::Target::Vic20: return [[CSVic20 alloc] init]; case StaticAnalyser::Target::ZX8081: return [[CSZX8081 alloc] initWithIntendedTarget:_target]; diff --git a/OSBindings/Mac/Clock Signal/Machine/Wrappers/CSMSX.h b/OSBindings/Mac/Clock Signal/Machine/Wrappers/CSMSX.h new file mode 100644 index 000000000..b082e92dd --- /dev/null +++ b/OSBindings/Mac/Clock Signal/Machine/Wrappers/CSMSX.h @@ -0,0 +1,15 @@ +// +// CSMSX.h +// Clock Signal +// +// Created by Thomas Harte on 03/12/2017. +// Copyright © 2017 Thomas Harte. All rights reserved. +// + +#import "CSMachine.h" + +@interface CSMSX : CSMachine + +- (instancetype)init; + +@end diff --git a/OSBindings/Mac/Clock Signal/Machine/Wrappers/CSMSX.mm b/OSBindings/Mac/Clock Signal/Machine/Wrappers/CSMSX.mm new file mode 100644 index 000000000..aac38a6fb --- /dev/null +++ b/OSBindings/Mac/Clock Signal/Machine/Wrappers/CSMSX.mm @@ -0,0 +1,25 @@ +// +// CSMSX.m +// Clock Signal +// +// Created by Thomas Harte on 03/12/2017. +// Copyright © 2017 Thomas Harte. All rights reserved. +// + +#import "CSMSX.h" + +#include "MSX.hpp" +#include "TypedDynamicMachine.hpp" + +@implementation CSMSX { + Machine::TypedDynamicMachine _msx; +} + +- (instancetype)init { + _msx = Machine::TypedDynamicMachine(MSX::Machine::MSX()); + return [super initWithMachine:&_msx]; +} + +- (NSString *)userDefaultsPrefix { return @"MSX"; } + +@end