mirror of
https://github.com/TomHarte/CLK.git
synced 2024-12-26 09:29:45 +00:00
Adds the IIgs as a user-selectable machine.
Albeit that there is no underlying machine yet.
This commit is contained in:
parent
3aa47f9c68
commit
5287c57ee0
@ -14,6 +14,7 @@ namespace Analyser {
|
||||
enum class Machine {
|
||||
AmstradCPC,
|
||||
AppleII,
|
||||
AppleIIgs,
|
||||
Atari2600,
|
||||
AtariST,
|
||||
ColecoVision,
|
||||
|
@ -6,8 +6,8 @@
|
||||
// Copyright 2018 Thomas Harte. All rights reserved.
|
||||
//
|
||||
|
||||
#ifndef Target_h
|
||||
#define Target_h
|
||||
#ifndef Analyser_Static_AppleII_Target_h
|
||||
#define Analyser_Static_AppleII_Target_h
|
||||
|
||||
#include "../../../Reflection/Enum.hpp"
|
||||
#include "../../../Reflection/Struct.hpp"
|
||||
@ -47,4 +47,4 @@ struct Target: public Analyser::Static::Target, public Reflection::StructImpl<Ta
|
||||
}
|
||||
}
|
||||
|
||||
#endif /* Target_h */
|
||||
#endif /* Analyser_Static_AppleII_Target_h */
|
||||
|
19
Analyser/Static/AppleIIgs/StaticAnalyser.cpp
Normal file
19
Analyser/Static/AppleIIgs/StaticAnalyser.cpp
Normal file
@ -0,0 +1,19 @@
|
||||
//
|
||||
// StaticAnalyser.cpp
|
||||
// Clock Signal
|
||||
//
|
||||
// Created by Thomas Harte on 20/10/2020.
|
||||
// Copyright 2018 Thomas Harte. All rights reserved.
|
||||
//
|
||||
|
||||
#include "StaticAnalyser.hpp"
|
||||
#include "Target.hpp"
|
||||
|
||||
Analyser::Static::TargetList Analyser::Static::AppleIIgs::GetTargets(const Media &media, const std::string &, TargetPlatform::IntType) {
|
||||
auto target = std::make_unique<Target>();
|
||||
target->media = media;
|
||||
|
||||
TargetList targets;
|
||||
targets.push_back(std::move(target));
|
||||
return targets;
|
||||
}
|
26
Analyser/Static/AppleIIgs/StaticAnalyser.hpp
Normal file
26
Analyser/Static/AppleIIgs/StaticAnalyser.hpp
Normal file
@ -0,0 +1,26 @@
|
||||
//
|
||||
// StaticAnalyser.hpp
|
||||
// Clock Signal
|
||||
//
|
||||
// Created by Thomas Harte on 20/10/2020.
|
||||
// Copyright 2018 Thomas Harte. All rights reserved.
|
||||
//
|
||||
|
||||
#ifndef Analyser_Static_AppleIIgs_StaticAnalyser_hpp
|
||||
#define Analyser_Static_AppleIIgs_StaticAnalyser_hpp
|
||||
|
||||
#include "../StaticAnalyser.hpp"
|
||||
#include "../../../Storage/TargetPlatforms.hpp"
|
||||
#include <string>
|
||||
|
||||
namespace Analyser {
|
||||
namespace Static {
|
||||
namespace AppleIIgs {
|
||||
|
||||
TargetList GetTargets(const Media &media, const std::string &file_name, TargetPlatform::IntType potential_platforms);
|
||||
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
#endif /* Analyser_Static_AppleIIgs_StaticAnalyser_hpp */
|
49
Analyser/Static/AppleIIgs/Target.hpp
Normal file
49
Analyser/Static/AppleIIgs/Target.hpp
Normal file
@ -0,0 +1,49 @@
|
||||
//
|
||||
// Target.hpp
|
||||
// Clock Signal
|
||||
//
|
||||
// Created by Thomas Harte on 20/10/2020.
|
||||
// Copyright 2018 Thomas Harte. All rights reserved.
|
||||
//
|
||||
|
||||
#ifndef Analyser_Static_AppleIIgs_Target_h
|
||||
#define Analyser_Static_AppleIIgs_Target_h
|
||||
|
||||
#include "../../../Reflection/Enum.hpp"
|
||||
#include "../../../Reflection/Struct.hpp"
|
||||
#include "../StaticAnalyser.hpp"
|
||||
|
||||
namespace Analyser {
|
||||
namespace Static {
|
||||
namespace AppleIIgs {
|
||||
|
||||
struct Target: public Analyser::Static::Target, public Reflection::StructImpl<Target> {
|
||||
ReflectableEnum(Model,
|
||||
ROM00,
|
||||
ROM01,
|
||||
ROM03
|
||||
);
|
||||
ReflectableEnum(MemoryModel,
|
||||
TwoHundredAndFiftySixKB,
|
||||
OneMB,
|
||||
EightMB
|
||||
);
|
||||
|
||||
Model model = Model::ROM03;
|
||||
MemoryModel memory_model = MemoryModel::EightMB;
|
||||
|
||||
Target() : Analyser::Static::Target(Machine::AppleIIgs) {
|
||||
if(needs_declare()) {
|
||||
DeclareField(model);
|
||||
DeclareField(memory_model);
|
||||
AnnounceEnum(Model);
|
||||
AnnounceEnum(MemoryModel);
|
||||
}
|
||||
}
|
||||
};
|
||||
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
#endif /* Analyser_Static_AppleIIgs_Target_h */
|
@ -17,6 +17,7 @@
|
||||
#include "Acorn/StaticAnalyser.hpp"
|
||||
#include "AmstradCPC/StaticAnalyser.hpp"
|
||||
#include "AppleII/StaticAnalyser.hpp"
|
||||
#include "AppleIIgs/StaticAnalyser.hpp"
|
||||
#include "Atari2600/StaticAnalyser.hpp"
|
||||
#include "AtariST/StaticAnalyser.hpp"
|
||||
#include "Coleco/StaticAnalyser.hpp"
|
||||
@ -188,6 +189,7 @@ TargetList Analyser::Static::GetTargets(const std::string &file_name) {
|
||||
if(potential_platforms & TargetPlatform::Acorn) Append(Acorn);
|
||||
if(potential_platforms & TargetPlatform::AmstradCPC) Append(AmstradCPC);
|
||||
if(potential_platforms & TargetPlatform::AppleII) Append(AppleII);
|
||||
if(potential_platforms & TargetPlatform::AppleIIgs) Append(AppleIIgs);
|
||||
if(potential_platforms & TargetPlatform::Atari2600) Append(Atari2600);
|
||||
if(potential_platforms & TargetPlatform::AtariST) Append(AtariST);
|
||||
if(potential_platforms & TargetPlatform::ColecoVision) Append(Coleco);
|
||||
|
31
Machines/Apple/AppleIIgs/AppleIIgs.cpp
Normal file
31
Machines/Apple/AppleIIgs/AppleIIgs.cpp
Normal file
@ -0,0 +1,31 @@
|
||||
//
|
||||
// AppleIIgs.cpp
|
||||
// Clock Signal
|
||||
//
|
||||
// Created by Thomas Harte on 20/10/2020.
|
||||
// Copyright 2020 Thomas Harte. All rights reserved.
|
||||
//
|
||||
|
||||
#include "AppleIIgs.hpp"
|
||||
|
||||
#include "../../../Analyser/Static/AppleIIgs/Target.hpp"
|
||||
|
||||
namespace Apple {
|
||||
namespace IIgs {
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
using namespace Apple::IIgs;
|
||||
|
||||
Machine *Machine::AppleIIgs(const Analyser::Static::Target *target, const ROMMachine::ROMFetcher &rom_fetcher) {
|
||||
using Target = Analyser::Static::AppleIIgs::Target;
|
||||
|
||||
// TODO.
|
||||
(void)target;
|
||||
(void)rom_fetcher;
|
||||
|
||||
return nullptr;
|
||||
}
|
||||
|
||||
Machine::~Machine() {}
|
33
Machines/Apple/AppleIIgs/AppleIIgs.hpp
Normal file
33
Machines/Apple/AppleIIgs/AppleIIgs.hpp
Normal file
@ -0,0 +1,33 @@
|
||||
//
|
||||
// AppleIIgs.hpp
|
||||
// Clock Signal
|
||||
//
|
||||
// Created by Thomas Harte on 20/10/2020.
|
||||
// Copyright 2020 Thomas Harte. All rights reserved.
|
||||
//
|
||||
|
||||
#ifndef AppleIIgs_hpp
|
||||
#define AppleIIgs_hpp
|
||||
|
||||
#include "../../../Configurable/Configurable.hpp"
|
||||
#include "../../../Configurable/StandardOptions.hpp"
|
||||
#include "../../../Analyser/Static/StaticAnalyser.hpp"
|
||||
#include "../../ROMMachine.hpp"
|
||||
|
||||
#include <memory>
|
||||
|
||||
namespace Apple {
|
||||
namespace IIgs {
|
||||
|
||||
class Machine {
|
||||
public:
|
||||
virtual ~Machine();
|
||||
|
||||
/// Creates and returns an AppleIIgs.
|
||||
static Machine *AppleIIgs(const Analyser::Static::Target *target, const ROMMachine::ROMFetcher &rom_fetcher);
|
||||
};
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
#endif /* AppleII_hpp */
|
@ -10,9 +10,10 @@
|
||||
|
||||
#include <algorithm>
|
||||
|
||||
// Sources for runtime options.
|
||||
// Sources for runtime options and machines.
|
||||
#include "../AmstradCPC/AmstradCPC.hpp"
|
||||
#include "../Apple/AppleII/AppleII.hpp"
|
||||
#include "../Apple/AppleIIgs/AppleIIgs.hpp"
|
||||
#include "../Apple/Macintosh/Macintosh.hpp"
|
||||
#include "../Atari/2600/Atari2600.hpp"
|
||||
#include "../Atari/ST/AtariST.hpp"
|
||||
@ -28,6 +29,7 @@
|
||||
#include "../../Analyser/Static/Acorn/Target.hpp"
|
||||
#include "../../Analyser/Static/AmstradCPC/Target.hpp"
|
||||
#include "../../Analyser/Static/AppleII/Target.hpp"
|
||||
#include "../../Analyser/Static/AppleIIgs/Target.hpp"
|
||||
#include "../../Analyser/Static/Atari2600/Target.hpp"
|
||||
#include "../../Analyser/Static/AtariST/Target.hpp"
|
||||
#include "../../Analyser/Static/Commodore/Target.hpp"
|
||||
@ -50,6 +52,7 @@ Machine::DynamicMachine *Machine::MachineForTarget(const Analyser::Static::Targe
|
||||
switch(target->machine) {
|
||||
Bind(AmstradCPC)
|
||||
BindD(Apple::II, AppleII)
|
||||
BindD(Apple::IIgs, AppleIIgs)
|
||||
BindD(Apple::Macintosh, Macintosh)
|
||||
Bind(Atari2600)
|
||||
BindD(Atari::ST, AtariST)
|
||||
@ -116,6 +119,7 @@ std::string Machine::ShortNameForTargetMachine(const Analyser::Machine machine)
|
||||
switch(machine) {
|
||||
case Analyser::Machine::AmstradCPC: return "AmstradCPC";
|
||||
case Analyser::Machine::AppleII: return "AppleII";
|
||||
case Analyser::Machine::AppleIIgs: return "AppleIIgs";
|
||||
case Analyser::Machine::Atari2600: return "Atari2600";
|
||||
case Analyser::Machine::AtariST: return "AtariST";
|
||||
case Analyser::Machine::ColecoVision: return "ColecoVision";
|
||||
@ -135,6 +139,7 @@ std::string Machine::LongNameForTargetMachine(Analyser::Machine machine) {
|
||||
switch(machine) {
|
||||
case Analyser::Machine::AmstradCPC: return "Amstrad CPC";
|
||||
case Analyser::Machine::AppleII: return "Apple II";
|
||||
case Analyser::Machine::AppleIIgs: return "Apple IIgs";
|
||||
case Analyser::Machine::Atari2600: return "Atari 2600";
|
||||
case Analyser::Machine::AtariST: return "Atari ST";
|
||||
case Analyser::Machine::ColecoVision: return "ColecoVision";
|
||||
@ -164,6 +169,7 @@ std::vector<std::string> Machine::AllMachines(Type type, bool long_names) {
|
||||
if(type == Type::Any || type == Type::DoesntRequireMedia) {
|
||||
AddName(AmstradCPC);
|
||||
AddName(AppleII);
|
||||
AddName(AppleIIgs);
|
||||
AddName(AtariST);
|
||||
AddName(Electron);
|
||||
AddName(Macintosh);
|
||||
@ -210,6 +216,7 @@ std::map<std::string, std::unique_ptr<Analyser::Static::Target>> Machine::Target
|
||||
|
||||
Add(AmstradCPC);
|
||||
Add(AppleII);
|
||||
Add(AppleIIgs);
|
||||
Add(AtariST);
|
||||
AddMapped(Electron, Acorn);
|
||||
Add(Macintosh);
|
||||
|
@ -847,6 +847,10 @@
|
||||
4BE0A3EE237BB170002AB46F /* ST.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 4BE0A3EC237BB170002AB46F /* ST.cpp */; };
|
||||
4BE0A3EF237BB170002AB46F /* ST.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 4BE0A3EC237BB170002AB46F /* ST.cpp */; };
|
||||
4BE211DE253E4E4800435408 /* 65C02_no_Rockwell_test.bin in Resources */ = {isa = PBXBuildFile; fileRef = 4BE211DD253E4E4800435408 /* 65C02_no_Rockwell_test.bin */; };
|
||||
4BE211FF253FC80900435408 /* StaticAnalyser.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 4BE211FE253FC80900435408 /* StaticAnalyser.cpp */; };
|
||||
4BE21200253FC80900435408 /* StaticAnalyser.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 4BE211FE253FC80900435408 /* StaticAnalyser.cpp */; };
|
||||
4BE21219253FCE9C00435408 /* AppleIIgs.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 4BE21214253FCE9C00435408 /* AppleIIgs.cpp */; };
|
||||
4BE2121A253FCE9C00435408 /* AppleIIgs.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 4BE21214253FCE9C00435408 /* AppleIIgs.cpp */; };
|
||||
4BE34438238389E10058E78F /* AtariSTVideoTests.mm in Sources */ = {isa = PBXBuildFile; fileRef = 4BE34437238389E10058E78F /* AtariSTVideoTests.mm */; };
|
||||
4BE76CF922641ED400ACD6FA /* QLTests.mm in Sources */ = {isa = PBXBuildFile; fileRef = 4BE76CF822641ED300ACD6FA /* QLTests.mm */; };
|
||||
4BE90FFD22D5864800FB464D /* MacintoshVideoTests.mm in Sources */ = {isa = PBXBuildFile; fileRef = 4BE90FFC22D5864800FB464D /* MacintoshVideoTests.mm */; };
|
||||
@ -1770,6 +1774,11 @@
|
||||
4BE0A3EC237BB170002AB46F /* ST.cpp */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; path = ST.cpp; sourceTree = "<group>"; };
|
||||
4BE0A3ED237BB170002AB46F /* ST.hpp */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.h; path = ST.hpp; sourceTree = "<group>"; };
|
||||
4BE211DD253E4E4800435408 /* 65C02_no_Rockwell_test.bin */ = {isa = PBXFileReference; lastKnownFileType = archive.macbinary; name = 65C02_no_Rockwell_test.bin; path = "Klaus Dormann/65C02_no_Rockwell_test.bin"; sourceTree = "<group>"; };
|
||||
4BE211FC253FC80800435408 /* StaticAnalyser.hpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.h; path = StaticAnalyser.hpp; sourceTree = "<group>"; };
|
||||
4BE211FD253FC80900435408 /* Target.hpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.h; path = Target.hpp; sourceTree = "<group>"; };
|
||||
4BE211FE253FC80900435408 /* StaticAnalyser.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = StaticAnalyser.cpp; sourceTree = "<group>"; };
|
||||
4BE2120E253FCE9C00435408 /* AppleIIgs.hpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.h; path = AppleIIgs.hpp; sourceTree = "<group>"; };
|
||||
4BE21214253FCE9C00435408 /* AppleIIgs.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = AppleIIgs.cpp; sourceTree = "<group>"; };
|
||||
4BE3231220532443006EF799 /* Target.hpp */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.h; path = Target.hpp; sourceTree = "<group>"; };
|
||||
4BE32313205327D7006EF799 /* Target.hpp */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.h; path = Target.hpp; sourceTree = "<group>"; };
|
||||
4BE32314205328FF006EF799 /* Target.hpp */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.h; path = Target.hpp; sourceTree = "<group>"; };
|
||||
@ -2896,6 +2905,7 @@
|
||||
4B8944EB201967B4007DE474 /* Acorn */,
|
||||
4B894514201967B4007DE474 /* AmstradCPC */,
|
||||
4B15A9FE20824C9F005E6C8D /* AppleII */,
|
||||
4BE211FB253FC80800435408 /* AppleIIgs */,
|
||||
4BC1316C2346DE5000E4FF3D /* Atari2600 */,
|
||||
4BC131722346DE9100E4FF3D /* AtariST */,
|
||||
4B7A90EA20410A85008514A2 /* Coleco */,
|
||||
@ -3612,9 +3622,9 @@
|
||||
4BC1316C2346DE5000E4FF3D /* Atari2600 */ = {
|
||||
isa = PBXGroup;
|
||||
children = (
|
||||
4BC1316F2346DE5000E4FF3D /* StaticAnalyser.cpp */,
|
||||
4BC1316D2346DE5000E4FF3D /* StaticAnalyser.hpp */,
|
||||
4BC1316E2346DE5000E4FF3D /* Target.hpp */,
|
||||
4BC1316F2346DE5000E4FF3D /* StaticAnalyser.cpp */,
|
||||
);
|
||||
path = Atari2600;
|
||||
sourceTree = "<group>";
|
||||
@ -3719,6 +3729,7 @@
|
||||
4BCE0048227CE8CA000CA200 /* Apple */ = {
|
||||
isa = PBXGroup;
|
||||
children = (
|
||||
4BE2120D253FCE9C00435408 /* AppleIIgs */,
|
||||
4BCE0049227CE8CA000CA200 /* AppleII */,
|
||||
4BCE0057227CFFCA000CA200 /* Macintosh */,
|
||||
);
|
||||
@ -3881,6 +3892,25 @@
|
||||
path = 5380;
|
||||
sourceTree = "<group>";
|
||||
};
|
||||
4BE211FB253FC80800435408 /* AppleIIgs */ = {
|
||||
isa = PBXGroup;
|
||||
children = (
|
||||
4BE211FE253FC80900435408 /* StaticAnalyser.cpp */,
|
||||
4BE211FC253FC80800435408 /* StaticAnalyser.hpp */,
|
||||
4BE211FD253FC80900435408 /* Target.hpp */,
|
||||
);
|
||||
path = AppleIIgs;
|
||||
sourceTree = "<group>";
|
||||
};
|
||||
4BE2120D253FCE9C00435408 /* AppleIIgs */ = {
|
||||
isa = PBXGroup;
|
||||
children = (
|
||||
4BE2120E253FCE9C00435408 /* AppleIIgs.hpp */,
|
||||
4BE21214253FCE9C00435408 /* AppleIIgs.cpp */,
|
||||
);
|
||||
path = AppleIIgs;
|
||||
sourceTree = "<group>";
|
||||
};
|
||||
4BE5F85A1C3E1C2500C43F01 /* Resources */ = {
|
||||
isa = PBXGroup;
|
||||
children = (
|
||||
@ -4571,6 +4601,7 @@
|
||||
4B89453D201967B4007DE474 /* StaticAnalyser.cpp in Sources */,
|
||||
4BC131712346DE5000E4FF3D /* StaticAnalyser.cpp in Sources */,
|
||||
4B055ACA1FAE9AFB0060FFFF /* Vic20.cpp in Sources */,
|
||||
4BE21200253FC80900435408 /* StaticAnalyser.cpp in Sources */,
|
||||
4B8318B222D3E53C006DB630 /* Video.cpp in Sources */,
|
||||
4B055ABC1FAE86170060FFFF /* ZX8081.cpp in Sources */,
|
||||
4B055AC91FAE9AFB0060FFFF /* Keyboard.cpp in Sources */,
|
||||
@ -4605,6 +4636,7 @@
|
||||
4B055A971FAE85BB0060FFFF /* ZX8081.cpp in Sources */,
|
||||
4B055AAD1FAE85FD0060FFFF /* PCMTrack.cpp in Sources */,
|
||||
4BD67DD1209BF27B00AB2146 /* Encoder.cpp in Sources */,
|
||||
4BE2121A253FCE9C00435408 /* AppleIIgs.cpp in Sources */,
|
||||
4B89451F201967B4007DE474 /* Tape.cpp in Sources */,
|
||||
4B055AA81FAE85EF0060FFFF /* Shifter.cpp in Sources */,
|
||||
4B8318B422D3E546006DB630 /* DriveSpeedAccumulator.cpp in Sources */,
|
||||
@ -4697,6 +4729,7 @@
|
||||
4B1B58F6246CC4E8009C171E /* State.cpp in Sources */,
|
||||
4BEA525E1DF33323007E74F2 /* Tape.cpp in Sources */,
|
||||
4B2BF19623E10F0100C3AD60 /* CSHighPrecisionTimer.m in Sources */,
|
||||
4BE211FF253FC80900435408 /* StaticAnalyser.cpp in Sources */,
|
||||
4B8334951F5E25B60097E338 /* C1540.cpp in Sources */,
|
||||
4B89453C201967B4007DE474 /* StaticAnalyser.cpp in Sources */,
|
||||
4B595FAD2086DFBA0083CAA8 /* AudioToggle.cpp in Sources */,
|
||||
@ -4734,6 +4767,7 @@
|
||||
4B8805F71DCFF6C9003085B1 /* Commodore.cpp in Sources */,
|
||||
4BC76E691C98E31700E6EF73 /* FIRFilter.cpp in Sources */,
|
||||
4B3BF5B01F146265005B6C36 /* CSW.cpp in Sources */,
|
||||
4BE21219253FCE9C00435408 /* AppleIIgs.cpp in Sources */,
|
||||
4BCE0060227D39AB000CA200 /* Video.cpp in Sources */,
|
||||
4B0ACC2E23775819008902D0 /* TIA.cpp in Sources */,
|
||||
4B74CF85231370BC00500CE8 /* MacintoshVolume.cpp in Sources */,
|
||||
|
@ -23,6 +23,12 @@ typedef NS_ENUM(NSInteger, CSMachineAppleIIDiskController) {
|
||||
CSMachineAppleIIDiskControllerThirteenSector
|
||||
};
|
||||
|
||||
typedef NS_ENUM(NSInteger, CSMachineAppleIIgsModel) {
|
||||
CSMachineAppleIIgsModelROM00,
|
||||
CSMachineAppleIIgsModelROM01,
|
||||
CSMachineAppleIIgsModelROM03,
|
||||
};
|
||||
|
||||
typedef NS_ENUM(NSInteger, CSMachineAtariSTModel) {
|
||||
CSMachineAtariSTModel512k,
|
||||
};
|
||||
@ -74,16 +80,17 @@ typedef int Kilobytes;
|
||||
|
||||
- (instancetype)initWithFileAtURL:(NSURL *)url;
|
||||
|
||||
- (instancetype)initWithElectronDFS:(BOOL)dfs adfs:(BOOL)adfs;
|
||||
- (instancetype)initWithAmstradCPCModel:(CSMachineCPCModel)model;
|
||||
- (instancetype)initWithAppleIIModel:(CSMachineAppleIIModel)model diskController:(CSMachineAppleIIDiskController)diskController;
|
||||
- (instancetype)initWithAppleIIgsModel:(CSMachineAppleIIgsModel)model memorySize:(Kilobytes)memorySize;
|
||||
- (instancetype)initWithAtariSTModel:(CSMachineAtariSTModel)model;
|
||||
- (instancetype)initWithElectronDFS:(BOOL)dfs adfs:(BOOL)adfs;
|
||||
- (instancetype)initWithMacintoshModel:(CSMachineMacintoshModel)model;
|
||||
- (instancetype)initWithMSXRegion:(CSMachineMSXRegion)region hasDiskDrive:(BOOL)hasDiskDrive;
|
||||
- (instancetype)initWithOricModel:(CSMachineOricModel)model diskInterface:(CSMachineOricDiskInterface)diskInterface;
|
||||
- (instancetype)initWithVic20Region:(CSMachineVic20Region)region memorySize:(Kilobytes)memorySize hasC1540:(BOOL)hasC1540;
|
||||
- (instancetype)initWithZX80MemorySize:(Kilobytes)memorySize useZX81ROM:(BOOL)useZX81ROM;
|
||||
- (instancetype)initWithZX81MemorySize:(Kilobytes)memorySize;
|
||||
- (instancetype)initWithAppleIIModel:(CSMachineAppleIIModel)model diskController:(CSMachineAppleIIDiskController)diskController;
|
||||
- (instancetype)initWithMacintoshModel:(CSMachineMacintoshModel)model;
|
||||
- (instancetype)initWithAtariSTModel:(CSMachineAtariSTModel)model;
|
||||
|
||||
@property(nonatomic, readonly) NSString *optionsPanelNibName;
|
||||
@property(nonatomic, readonly) NSString *displayName;
|
||||
|
@ -16,6 +16,7 @@
|
||||
#include "../../../../../Analyser/Static/Acorn/Target.hpp"
|
||||
#include "../../../../../Analyser/Static/AmstradCPC/Target.hpp"
|
||||
#include "../../../../../Analyser/Static/AppleII/Target.hpp"
|
||||
#include "../../../../../Analyser/Static/AppleIIgs/Target.hpp"
|
||||
#include "../../../../../Analyser/Static/AtariST/Target.hpp"
|
||||
#include "../../../../../Analyser/Static/Commodore/Target.hpp"
|
||||
#include "../../../../../Analyser/Static/Macintosh/Target.hpp"
|
||||
@ -83,6 +84,27 @@
|
||||
return self;
|
||||
}
|
||||
|
||||
- (instancetype)initWithAppleIIgsModel:(CSMachineAppleIIgsModel)model memorySize:(Kilobytes)memorySize {
|
||||
self = [super init];
|
||||
if(self) {
|
||||
using Target = Analyser::Static::AppleIIgs::Target;
|
||||
auto target = std::make_unique<Target>();
|
||||
switch(model) {
|
||||
default: target->model = Target::Model::ROM00; break;
|
||||
case CSMachineAppleIIgsModelROM01: target->model = Target::Model::ROM01; break;
|
||||
case CSMachineAppleIIgsModelROM03: target->model = Target::Model::ROM03; break;
|
||||
}
|
||||
switch(memorySize) {
|
||||
default: target->memory_model = Target::MemoryModel::EightMB; break;
|
||||
case 1024: target->memory_model = Target::MemoryModel::OneMB; break;
|
||||
case 256: target->memory_model = Target::MemoryModel::TwoHundredAndFiftySixKB; break;
|
||||
}
|
||||
_targets.push_back(std::move(target));
|
||||
}
|
||||
return self;
|
||||
}
|
||||
|
||||
|
||||
- (instancetype)initWithAtariSTModel:(CSMachineAtariSTModel)model {
|
||||
self = [super init];
|
||||
if(self) {
|
||||
|
@ -1,8 +1,8 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<document type="com.apple.InterfaceBuilder3.Cocoa.XIB" version="3.0" toolsVersion="16097" targetRuntime="MacOSX.Cocoa" propertyAccessControl="none" useAutolayout="YES" customObjectInstantitationMethod="direct">
|
||||
<document type="com.apple.InterfaceBuilder3.Cocoa.XIB" version="3.0" toolsVersion="17156" targetRuntime="MacOSX.Cocoa" propertyAccessControl="none" useAutolayout="YES" customObjectInstantitationMethod="direct">
|
||||
<dependencies>
|
||||
<deployment identifier="macosx"/>
|
||||
<plugIn identifier="com.apple.InterfaceBuilder.CocoaPlugin" version="16097"/>
|
||||
<plugIn identifier="com.apple.InterfaceBuilder.CocoaPlugin" version="17156"/>
|
||||
<capability name="documents saved in the Xcode 8 format" minToolsVersion="8.0"/>
|
||||
</dependencies>
|
||||
<objects>
|
||||
@ -17,14 +17,14 @@
|
||||
<window title="Window" allowsToolTipsWhenApplicationIsInactive="NO" autorecalculatesKeyViewLoop="NO" releasedWhenClosed="NO" visibleAtLaunch="NO" animationBehavior="default" titleVisibility="hidden" id="QvC-M9-y7g">
|
||||
<windowStyleMask key="styleMask" titled="YES" documentModal="YES"/>
|
||||
<windowPositionMask key="initialPositionMask" leftStrut="YES" rightStrut="YES" topStrut="YES" bottomStrut="YES"/>
|
||||
<rect key="contentRect" x="196" y="240" width="720" height="205"/>
|
||||
<rect key="contentRect" x="196" y="240" width="726" height="205"/>
|
||||
<rect key="screenRect" x="0.0" y="0.0" width="3840" height="2137"/>
|
||||
<view key="contentView" wantsLayer="YES" id="EiT-Mj-1SZ">
|
||||
<rect key="frame" x="0.0" y="0.0" width="720" height="205"/>
|
||||
<rect key="frame" x="0.0" y="0.0" width="726" height="205"/>
|
||||
<autoresizingMask key="autoresizingMask" widthSizable="YES" heightSizable="YES"/>
|
||||
<subviews>
|
||||
<button verticalHuggingPriority="750" translatesAutoresizingMaskIntoConstraints="NO" id="hKn-1l-OSN">
|
||||
<rect key="frame" x="619" y="13" width="87" height="32"/>
|
||||
<rect key="frame" x="625" y="13" width="87" height="32"/>
|
||||
<buttonCell key="cell" type="push" title="Choose" bezelStyle="rounded" alignment="center" borderStyle="border" imageScaling="proportionallyDown" inset="2" id="MnM-xo-4Qa">
|
||||
<behavior key="behavior" pushIn="YES" lightByBackground="YES" lightByGray="YES"/>
|
||||
<font key="font" metaFont="system"/>
|
||||
@ -37,7 +37,7 @@ DQ
|
||||
</connections>
|
||||
</button>
|
||||
<button verticalHuggingPriority="750" translatesAutoresizingMaskIntoConstraints="NO" id="JQy-Cj-AOK">
|
||||
<rect key="frame" x="538" y="13" width="82" height="32"/>
|
||||
<rect key="frame" x="544" y="13" width="82" height="32"/>
|
||||
<buttonCell key="cell" type="push" title="Cancel" bezelStyle="rounded" alignment="center" borderStyle="border" imageScaling="proportionallyDown" inset="2" id="sub-rB-Req">
|
||||
<behavior key="behavior" pushIn="YES" lightByBackground="YES" lightByGray="YES"/>
|
||||
<font key="font" metaFont="system"/>
|
||||
@ -59,12 +59,12 @@ Gw
|
||||
</textFieldCell>
|
||||
</textField>
|
||||
<tabView translatesAutoresizingMaskIntoConstraints="NO" id="VUb-QG-x7c">
|
||||
<rect key="frame" x="13" y="51" width="694" height="140"/>
|
||||
<rect key="frame" x="13" y="51" width="700" height="140"/>
|
||||
<font key="font" metaFont="system"/>
|
||||
<tabViewItems>
|
||||
<tabViewItem label="Apple II" identifier="appleii" id="P59-QG-LOa">
|
||||
<view key="view" id="dHz-Yv-GNq">
|
||||
<rect key="frame" x="10" y="33" width="674" height="94"/>
|
||||
<rect key="frame" x="10" y="33" width="680" height="94"/>
|
||||
<autoresizingMask key="autoresizingMask" widthSizable="YES" heightSizable="YES"/>
|
||||
<subviews>
|
||||
<textField horizontalHuggingPriority="251" verticalHuggingPriority="750" translatesAutoresizingMaskIntoConstraints="NO" id="V5Z-dX-Ns4">
|
||||
@ -87,7 +87,7 @@ Gw
|
||||
<rect key="frame" x="65" y="67" width="116" height="25"/>
|
||||
<popUpButtonCell key="cell" type="push" title="Apple II" bezelStyle="rounded" alignment="left" lineBreakMode="truncatingTail" state="on" borderStyle="borderAndBezel" imageScaling="proportionallyDown" inset="2" selectedItem="VBQ-JG-AeM" id="U6V-us-O2F">
|
||||
<behavior key="behavior" lightByBackground="YES" lightByGray="YES"/>
|
||||
<font key="font" metaFont="system"/>
|
||||
<font key="font" metaFont="menu"/>
|
||||
<menu key="menu" id="esp-ir-7iH">
|
||||
<items>
|
||||
<menuItem title="Apple II" state="on" id="VBQ-JG-AeM"/>
|
||||
@ -102,7 +102,7 @@ Gw
|
||||
<rect key="frame" x="115" y="36" width="133" height="25"/>
|
||||
<popUpButtonCell key="cell" type="push" title="Sixteen Sector" bezelStyle="rounded" alignment="left" lineBreakMode="truncatingTail" state="on" borderStyle="borderAndBezel" tag="16" imageScaling="proportionallyDown" inset="2" selectedItem="QaV-Yr-k9o" id="8BT-RV-2Nm">
|
||||
<behavior key="behavior" lightByBackground="YES" lightByGray="YES"/>
|
||||
<font key="font" metaFont="system"/>
|
||||
<font key="font" metaFont="menu"/>
|
||||
<menu key="menu" id="udQ-NK-FG8">
|
||||
<items>
|
||||
<menuItem title="Sixteen Sector" state="on" tag="16" id="QaV-Yr-k9o"/>
|
||||
@ -128,16 +128,81 @@ Gw
|
||||
</constraints>
|
||||
</view>
|
||||
</tabViewItem>
|
||||
<tabViewItem label="IIgs" identifier="appleiigs" id="u5E-8n-ghF">
|
||||
<view key="view" id="jOM-9f-vkk">
|
||||
<rect key="frame" x="10" y="33" width="680" height="94"/>
|
||||
<autoresizingMask key="autoresizingMask" widthSizable="YES" heightSizable="YES"/>
|
||||
<subviews>
|
||||
<textField horizontalHuggingPriority="251" verticalHuggingPriority="750" translatesAutoresizingMaskIntoConstraints="NO" id="0d9-IG-gKU">
|
||||
<rect key="frame" x="15" y="73" width="46" height="16"/>
|
||||
<textFieldCell key="cell" scrollable="YES" lineBreakMode="clipping" sendsActionOnEndEditing="YES" title="Model:" id="kiv-1P-FWc">
|
||||
<font key="font" metaFont="system"/>
|
||||
<color key="textColor" name="labelColor" catalog="System" colorSpace="catalog"/>
|
||||
<color key="backgroundColor" name="controlColor" catalog="System" colorSpace="catalog"/>
|
||||
</textFieldCell>
|
||||
</textField>
|
||||
<textField horizontalHuggingPriority="251" verticalHuggingPriority="750" translatesAutoresizingMaskIntoConstraints="NO" id="LES-76-Ovz">
|
||||
<rect key="frame" x="15" y="42" width="85" height="16"/>
|
||||
<textFieldCell key="cell" scrollable="YES" lineBreakMode="clipping" sendsActionOnEndEditing="YES" title="Memory size:" id="OLJ-nC-yyj">
|
||||
<font key="font" metaFont="system"/>
|
||||
<color key="textColor" name="labelColor" catalog="System" colorSpace="catalog"/>
|
||||
<color key="backgroundColor" name="controlColor" catalog="System" colorSpace="catalog"/>
|
||||
</textFieldCell>
|
||||
</textField>
|
||||
<popUpButton verticalHuggingPriority="750" translatesAutoresizingMaskIntoConstraints="NO" id="gcS-uy-mzl">
|
||||
<rect key="frame" x="65" y="67" width="88" height="25"/>
|
||||
<popUpButtonCell key="cell" type="push" title="ROM 03" bezelStyle="rounded" alignment="left" lineBreakMode="truncatingTail" state="on" borderStyle="borderAndBezel" tag="2" imageScaling="proportionallyDown" inset="2" selectedItem="0TS-DO-O9h" id="hjw-g8-e2f">
|
||||
<behavior key="behavior" lightByBackground="YES" lightByGray="YES"/>
|
||||
<font key="font" metaFont="menu"/>
|
||||
<menu key="menu" id="4rn-K4-QgV">
|
||||
<items>
|
||||
<menuItem title="ROM 00" id="2LO-US-byb"/>
|
||||
<menuItem title="ROM 01" tag="1" id="oEx-uN-LlH"/>
|
||||
<menuItem title="ROM 03" state="on" tag="2" id="0TS-DO-O9h"/>
|
||||
</items>
|
||||
</menu>
|
||||
</popUpButtonCell>
|
||||
</popUpButton>
|
||||
<popUpButton verticalHuggingPriority="750" translatesAutoresizingMaskIntoConstraints="NO" id="nQa-YS-utT">
|
||||
<rect key="frame" x="104" y="36" width="81" height="25"/>
|
||||
<popUpButtonCell key="cell" type="push" title="8 mb" bezelStyle="rounded" alignment="left" lineBreakMode="truncatingTail" state="on" borderStyle="borderAndBezel" tag="8192" imageScaling="proportionallyDown" inset="2" selectedItem="UHg-gU-Xnn" id="dl3-cq-uWO">
|
||||
<behavior key="behavior" lightByBackground="YES" lightByGray="YES"/>
|
||||
<font key="font" metaFont="menu"/>
|
||||
<menu key="menu" id="Scm-d9-EU9">
|
||||
<items>
|
||||
<menuItem title="256 kb" tag="256" id="PZE-8h-MNs"/>
|
||||
<menuItem title="1 mb" tag="1024" id="xas-28-obv"/>
|
||||
<menuItem title="8 mb" state="on" tag="8192" id="UHg-gU-Xnn"/>
|
||||
</items>
|
||||
</menu>
|
||||
</popUpButtonCell>
|
||||
</popUpButton>
|
||||
</subviews>
|
||||
<constraints>
|
||||
<constraint firstItem="LES-76-Ovz" firstAttribute="leading" secondItem="jOM-9f-vkk" secondAttribute="leading" constant="17" id="2D3-Ve-6CN"/>
|
||||
<constraint firstItem="0d9-IG-gKU" firstAttribute="leading" secondItem="jOM-9f-vkk" secondAttribute="leading" constant="17" id="8Xz-86-tDf"/>
|
||||
<constraint firstItem="0d9-IG-gKU" firstAttribute="centerY" secondItem="gcS-uy-mzl" secondAttribute="centerY" id="Eww-Qq-eBT"/>
|
||||
<constraint firstItem="gcS-uy-mzl" firstAttribute="top" secondItem="jOM-9f-vkk" secondAttribute="top" constant="3" id="F6i-cP-7AR"/>
|
||||
<constraint firstItem="gcS-uy-mzl" firstAttribute="leading" secondItem="0d9-IG-gKU" secondAttribute="trailing" constant="8" id="LUm-rI-LYP"/>
|
||||
<constraint firstItem="LES-76-Ovz" firstAttribute="centerY" secondItem="nQa-YS-utT" secondAttribute="centerY" id="UdP-U6-OFE"/>
|
||||
<constraint firstItem="nQa-YS-utT" firstAttribute="leading" secondItem="LES-76-Ovz" secondAttribute="trailing" constant="8" id="Xm1-iG-Dgj"/>
|
||||
<constraint firstAttribute="trailing" relation="greaterThanOrEqual" secondItem="nQa-YS-utT" secondAttribute="trailing" constant="17" id="ZQ5-TG-yv1"/>
|
||||
<constraint firstAttribute="trailing" relation="greaterThanOrEqual" secondItem="gcS-uy-mzl" secondAttribute="trailing" constant="17" id="a38-Cx-CEh"/>
|
||||
<constraint firstItem="nQa-YS-utT" firstAttribute="top" secondItem="gcS-uy-mzl" secondAttribute="bottom" constant="10" id="aM9-m8-s7z"/>
|
||||
<constraint firstAttribute="bottom" relation="greaterThanOrEqual" secondItem="nQa-YS-utT" secondAttribute="bottom" constant="3" id="sbT-If-NTU"/>
|
||||
</constraints>
|
||||
</view>
|
||||
</tabViewItem>
|
||||
<tabViewItem label="Amstrad CPC" identifier="cpc" id="JmB-OF-xcM">
|
||||
<view key="view" id="5zS-Nj-Ynx">
|
||||
<rect key="frame" x="10" y="33" width="674" height="94"/>
|
||||
<rect key="frame" x="10" y="33" width="680" height="94"/>
|
||||
<autoresizingMask key="autoresizingMask" widthSizable="YES" heightSizable="YES"/>
|
||||
<subviews>
|
||||
<popUpButton verticalHuggingPriority="750" translatesAutoresizingMaskIntoConstraints="NO" id="00d-sg-Krh">
|
||||
<rect key="frame" x="65" y="67" width="95" height="25"/>
|
||||
<popUpButtonCell key="cell" type="push" title="CPC6128" bezelStyle="rounded" alignment="left" lineBreakMode="truncatingTail" state="on" borderStyle="borderAndBezel" tag="6128" imageScaling="proportionallyDown" inset="2" selectedItem="klh-ZE-Agp" id="hVJ-h6-iea">
|
||||
<behavior key="behavior" lightByBackground="YES" lightByGray="YES"/>
|
||||
<font key="font" metaFont="system"/>
|
||||
<font key="font" metaFont="menu"/>
|
||||
<menu key="menu" id="r3D-C2-Ruq">
|
||||
<items>
|
||||
<menuItem title="CPC464" tag="464" id="5kZ-XF-RFl"/>
|
||||
@ -235,7 +300,7 @@ Gw
|
||||
<rect key="frame" x="65" y="67" width="74" height="25"/>
|
||||
<popUpButtonCell key="cell" type="push" title="Plus" bezelStyle="rounded" alignment="left" lineBreakMode="truncatingTail" state="on" borderStyle="borderAndBezel" tag="3" imageScaling="proportionallyDown" inset="2" selectedItem="R6T-hg-rOF" id="1Kb-Q2-BGM">
|
||||
<behavior key="behavior" lightByBackground="YES" lightByGray="YES"/>
|
||||
<font key="font" metaFont="system"/>
|
||||
<font key="font" metaFont="menu"/>
|
||||
<menu key="menu" id="ofy-j9-YnU">
|
||||
<items>
|
||||
<menuItem title="512ke" tag="2" id="WCG-6u-ANQ"/>
|
||||
@ -271,7 +336,7 @@ Gw
|
||||
<rect key="frame" x="69" y="67" width="145" height="25"/>
|
||||
<popUpButtonCell key="cell" type="push" title="European (PAL)" bezelStyle="rounded" alignment="left" lineBreakMode="truncatingTail" state="on" borderStyle="borderAndBezel" imageScaling="proportionallyDown" inset="2" selectedItem="xAh-Ch-tby" id="yR4-yv-Lvu">
|
||||
<behavior key="behavior" lightByBackground="YES" lightByGray="YES"/>
|
||||
<font key="font" metaFont="system"/>
|
||||
<font key="font" metaFont="menu"/>
|
||||
<menu key="menu" id="BCR-rp-Kpc">
|
||||
<items>
|
||||
<menuItem title="European (PAL)" state="on" id="xAh-Ch-tby"/>
|
||||
@ -320,7 +385,7 @@ Gw
|
||||
<rect key="frame" x="65" y="67" width="106" height="25"/>
|
||||
<popUpButtonCell key="cell" type="push" title="Oric-1" bezelStyle="rounded" alignment="left" lineBreakMode="truncatingTail" state="on" borderStyle="borderAndBezel" imageScaling="proportionallyDown" inset="2" selectedItem="jGN-1a-biF" id="Jll-EJ-cMr">
|
||||
<behavior key="behavior" lightByBackground="YES" lightByGray="YES"/>
|
||||
<font key="font" metaFont="system"/>
|
||||
<font key="font" metaFont="menu"/>
|
||||
<menu key="menu" id="E9d-fH-Eak">
|
||||
<items>
|
||||
<menuItem title="Oric-1" state="on" id="jGN-1a-biF"/>
|
||||
@ -334,7 +399,7 @@ Gw
|
||||
<rect key="frame" x="111" y="36" width="129" height="25"/>
|
||||
<popUpButtonCell key="cell" type="push" title="None" bezelStyle="rounded" alignment="left" lineBreakMode="truncatingTail" state="on" borderStyle="borderAndBezel" imageScaling="proportionallyDown" inset="2" selectedItem="XhK-Jh-oTW" id="aYb-m1-H9X">
|
||||
<behavior key="behavior" lightByBackground="YES" lightByGray="YES"/>
|
||||
<font key="font" metaFont="system"/>
|
||||
<font key="font" metaFont="menu"/>
|
||||
<menu key="menu" id="hy3-Li-nlW">
|
||||
<items>
|
||||
<menuItem title="None" state="on" id="XhK-Jh-oTW"/>
|
||||
@ -372,14 +437,14 @@ Gw
|
||||
</tabViewItem>
|
||||
<tabViewItem label="Vic-20" identifier="vic20" id="cyO-PU-hSU">
|
||||
<view key="view" id="fLI-XB-QCr">
|
||||
<rect key="frame" x="10" y="33" width="674" height="94"/>
|
||||
<rect key="frame" x="10" y="33" width="680" height="94"/>
|
||||
<autoresizingMask key="autoresizingMask" widthSizable="YES" heightSizable="YES"/>
|
||||
<subviews>
|
||||
<popUpButton verticalHuggingPriority="750" translatesAutoresizingMaskIntoConstraints="NO" id="ueK-gq-gaF">
|
||||
<rect key="frame" x="69" y="67" width="145" height="25"/>
|
||||
<popUpButtonCell key="cell" type="push" title="European (PAL)" bezelStyle="rounded" alignment="left" lineBreakMode="truncatingTail" state="on" borderStyle="borderAndBezel" imageScaling="proportionallyDown" inset="2" selectedItem="45i-0n-gau" id="yi7-eo-I0q">
|
||||
<behavior key="behavior" lightByBackground="YES" lightByGray="YES"/>
|
||||
<font key="font" metaFont="system"/>
|
||||
<font key="font" metaFont="menu"/>
|
||||
<menu key="menu" id="uCQ-9l-eBb">
|
||||
<items>
|
||||
<menuItem title="European (PAL)" state="on" id="45i-0n-gau"/>
|
||||
@ -395,7 +460,7 @@ Gw
|
||||
<rect key="frame" x="106" y="36" width="115" height="25"/>
|
||||
<popUpButtonCell key="cell" type="push" title="Unexpanded" bezelStyle="rounded" alignment="left" lineBreakMode="truncatingTail" state="on" borderStyle="borderAndBezel" imageScaling="proportionallyDown" inset="2" selectedItem="fOl-8Q-fsA" id="rH0-7T-pJE">
|
||||
<behavior key="behavior" lightByBackground="YES" lightByGray="YES"/>
|
||||
<font key="font" metaFont="system"/>
|
||||
<font key="font" metaFont="menu"/>
|
||||
<menu key="menu" id="e9J-Ie-PjH">
|
||||
<items>
|
||||
<menuItem title="Unexpanded" state="on" id="fOl-8Q-fsA"/>
|
||||
@ -456,7 +521,7 @@ Gw
|
||||
<rect key="frame" x="106" y="67" width="115" height="25"/>
|
||||
<popUpButtonCell key="cell" type="push" title="Unexpanded" bezelStyle="rounded" alignment="left" lineBreakMode="truncatingTail" state="on" borderStyle="borderAndBezel" imageScaling="proportionallyDown" inset="2" selectedItem="4Sa-jR-xOd" id="B8M-do-Yod">
|
||||
<behavior key="behavior" lightByBackground="YES" lightByGray="YES"/>
|
||||
<font key="font" metaFont="system"/>
|
||||
<font key="font" metaFont="menu"/>
|
||||
<menu key="menu" id="Of4-DY-mE5">
|
||||
<items>
|
||||
<menuItem title="Unexpanded" state="on" id="4Sa-jR-xOd"/>
|
||||
@ -497,14 +562,14 @@ Gw
|
||||
</tabViewItem>
|
||||
<tabViewItem label="ZX81" identifier="zx81" id="Wnn-nQ-gZ6">
|
||||
<view key="view" id="bmd-gL-gzT">
|
||||
<rect key="frame" x="10" y="33" width="604" height="94"/>
|
||||
<rect key="frame" x="10" y="33" width="674" height="94"/>
|
||||
<autoresizingMask key="autoresizingMask" widthSizable="YES" heightSizable="YES"/>
|
||||
<subviews>
|
||||
<popUpButton verticalHuggingPriority="750" translatesAutoresizingMaskIntoConstraints="NO" id="5aO-UX-HnX">
|
||||
<rect key="frame" x="106" y="67" width="115" height="25"/>
|
||||
<popUpButtonCell key="cell" type="push" title="Unexpanded" bezelStyle="rounded" alignment="left" lineBreakMode="truncatingTail" state="on" borderStyle="borderAndBezel" imageScaling="proportionallyDown" inset="2" selectedItem="7QC-Ij-hES" id="d3W-Gl-3Mf">
|
||||
<behavior key="behavior" lightByBackground="YES" lightByGray="YES"/>
|
||||
<font key="font" metaFont="system"/>
|
||||
<font key="font" metaFont="menu"/>
|
||||
<menu key="menu" id="mua-Lp-9wl">
|
||||
<items>
|
||||
<menuItem title="Unexpanded" state="on" id="7QC-Ij-hES"/>
|
||||
@ -551,12 +616,14 @@ Gw
|
||||
<constraint firstItem="VUb-QG-x7c" firstAttribute="top" secondItem="EiT-Mj-1SZ" secondAttribute="top" constant="20" id="zT3-Ea-QQJ"/>
|
||||
</constraints>
|
||||
</view>
|
||||
<point key="canvasLocation" x="34" y="88.5"/>
|
||||
<point key="canvasLocation" x="37" y="88.5"/>
|
||||
</window>
|
||||
<customObject id="192-Eb-Rpg" customClass="MachinePicker" customModule="Clock_Signal" customModuleProvider="target">
|
||||
<connections>
|
||||
<outlet property="appleIIDiskControllerButton" destination="LSB-WP-FMi" id="Ssa-jd-t63"/>
|
||||
<outlet property="appleIIModelButton" destination="jli-ac-Sij" id="Jm3-f7-C17"/>
|
||||
<outlet property="appleIIgsMemorySizeButton" destination="nQa-YS-utT" id="pTV-XL-zX3"/>
|
||||
<outlet property="appleIIgsModelButton" destination="gcS-uy-mzl" id="Jcc-jC-cV1"/>
|
||||
<outlet property="cpcModelTypeButton" destination="00d-sg-Krh" id="VyV-b1-A6x"/>
|
||||
<outlet property="electronADFSButton" destination="945-wU-JOH" id="Fjm-W8-kvh"/>
|
||||
<outlet property="electronDFSButton" destination="JqM-IK-FMP" id="C80-1k-TdQ"/>
|
||||
|
@ -15,6 +15,10 @@ class MachinePicker: NSObject {
|
||||
@IBOutlet var appleIIModelButton: NSPopUpButton?
|
||||
@IBOutlet var appleIIDiskControllerButton: NSPopUpButton?
|
||||
|
||||
// MARK: - Apple IIgs properties
|
||||
@IBOutlet var appleIIgsModelButton: NSPopUpButton?
|
||||
@IBOutlet var appleIIgsMemorySizeButton: NSPopUpButton?
|
||||
|
||||
// MARK: - Electron properties
|
||||
@IBOutlet var electronDFSButton: NSButton?
|
||||
@IBOutlet var electronADFSButton: NSButton?
|
||||
@ -58,6 +62,10 @@ class MachinePicker: NSObject {
|
||||
appleIIModelButton?.selectItem(withTag: standardUserDefaults.integer(forKey: "new.appleIIModel"))
|
||||
appleIIDiskControllerButton?.selectItem(withTag: standardUserDefaults.integer(forKey: "new.appleIIDiskController"))
|
||||
|
||||
// Apple IIgs settings
|
||||
appleIIgsModelButton?.selectItem(withTag: standardUserDefaults.integer(forKey: "new.appleIIgsModel"))
|
||||
appleIIgsMemorySizeButton?.selectItem(withTag: standardUserDefaults.integer(forKey: "new.appleIIgsMemorySize"))
|
||||
|
||||
// Electron settings
|
||||
electronDFSButton?.state = standardUserDefaults.bool(forKey: "new.electronDFS") ? .on : .off
|
||||
electronADFSButton?.state = standardUserDefaults.bool(forKey: "new.electronADFS") ? .on : .off
|
||||
@ -99,6 +107,10 @@ class MachinePicker: NSObject {
|
||||
standardUserDefaults.set(appleIIModelButton!.selectedTag(), forKey: "new.appleIIModel")
|
||||
standardUserDefaults.set(appleIIDiskControllerButton!.selectedTag(), forKey: "new.appleIIDiskController")
|
||||
|
||||
// Apple IIgs settings
|
||||
standardUserDefaults.set(appleIIgsModelButton!.selectedTag(), forKey: "new.appleIIgsModel")
|
||||
standardUserDefaults.set(appleIIgsMemorySizeButton!.selectedTag(), forKey: "new.appleIIgsMemorySize")
|
||||
|
||||
// Electron settings
|
||||
standardUserDefaults.set(electronDFSButton!.state == .on, forKey: "new.electronDFS")
|
||||
standardUserDefaults.set(electronADFSButton!.state == .on, forKey: "new.electronADFS")
|
||||
@ -158,6 +170,18 @@ class MachinePicker: NSObject {
|
||||
|
||||
return CSStaticAnalyser(appleIIModel: model, diskController: diskController)
|
||||
|
||||
case "appleiigs":
|
||||
var model: CSMachineAppleIIgsModel = .ROM00
|
||||
switch appleIIgsModelButton!.selectedTag() {
|
||||
case 1: model = .ROM01
|
||||
case 2: model = .ROM03
|
||||
case 0: fallthrough
|
||||
default: model = .ROM00
|
||||
}
|
||||
|
||||
let memorySize = Kilobytes(appleIIgsMemorySizeButton!.selectedItem!.tag)
|
||||
return CSStaticAnalyser(appleIIgsModel: model, memorySize: memorySize)
|
||||
|
||||
case "atarist":
|
||||
return CSStaticAnalyser(atariSTModel: .model512k)
|
||||
|
||||
|
@ -33,6 +33,7 @@ SOURCES += \
|
||||
$$SRC/Analyser/Static/Acorn/*.cpp \
|
||||
$$SRC/Analyser/Static/AmstradCPC/*.cpp \
|
||||
$$SRC/Analyser/Static/AppleII/*.cpp \
|
||||
$$SRC/Analyser/Static/AppleIIgs/*.cpp \
|
||||
$$SRC/Analyser/Static/Atari2600/*.cpp \
|
||||
$$SRC/Analyser/Static/AtariST/*.cpp \
|
||||
$$SRC/Analyser/Static/Coleco/*.cpp \
|
||||
@ -69,6 +70,7 @@ SOURCES += \
|
||||
$$SRC/Machines/*.cpp \
|
||||
$$SRC/Machines/AmstradCPC/*.cpp \
|
||||
$$SRC/Machines/Apple/AppleII/*.cpp \
|
||||
$$SRC/Machines/Apple/AppleIIgs/*.cpp \
|
||||
$$SRC/Machines/Apple/Macintosh/*.cpp \
|
||||
$$SRC/Machines/Atari/2600/*.cpp \
|
||||
$$SRC/Machines/Atari/ST/*.cpp \
|
||||
@ -140,6 +142,7 @@ HEADERS += \
|
||||
$$SRC/Analyser/Static/Acorn/*.hpp \
|
||||
$$SRC/Analyser/Static/AmstradCPC/*.hpp \
|
||||
$$SRC/Analyser/Static/AppleII/*.hpp \
|
||||
$$SRC/Analyser/Static/AppleIIgs/*.hpp \
|
||||
$$SRC/Analyser/Static/Atari2600/*.hpp \
|
||||
$$SRC/Analyser/Static/AtariST/*.hpp \
|
||||
$$SRC/Analyser/Static/Coleco/*.hpp \
|
||||
@ -187,6 +190,7 @@ HEADERS += \
|
||||
$$SRC/Machines/*.hpp \
|
||||
$$SRC/Machines/AmstradCPC/*.hpp \
|
||||
$$SRC/Machines/Apple/AppleII/*.hpp \
|
||||
$$SRC/Machines/Apple/AppleIIgs/*.hpp \
|
||||
$$SRC/Machines/Apple/Macintosh/*.hpp \
|
||||
$$SRC/Machines/Atari/2600/*.hpp \
|
||||
$$SRC/Machines/Atari/ST/*.hpp \
|
||||
|
@ -1086,6 +1086,7 @@ void MainWindow::setButtonPressed(int index, bool isPressed) {
|
||||
#include "../../Analyser/Static/Acorn/Target.hpp"
|
||||
#include "../../Analyser/Static/AmstradCPC/Target.hpp"
|
||||
#include "../../Analyser/Static/AppleII/Target.hpp"
|
||||
#include "../../Analyser/Static/AppleIIgs/Target.hpp"
|
||||
#include "../../Analyser/Static/AtariST/Target.hpp"
|
||||
#include "../../Analyser/Static/Commodore/Target.hpp"
|
||||
#include "../../Analyser/Static/Macintosh/Target.hpp"
|
||||
@ -1103,6 +1104,7 @@ void MainWindow::startMachine() {
|
||||
}
|
||||
|
||||
TEST(appleII);
|
||||
TEST(appleIIgs);
|
||||
TEST(amstradCPC);
|
||||
TEST(atariST);
|
||||
TEST(electron);
|
||||
@ -1136,6 +1138,25 @@ void MainWindow::start_appleII() {
|
||||
launchTarget(std::move(target));
|
||||
}
|
||||
|
||||
void MainWindow::start_appleIIgs() {
|
||||
using Target = Analyser::Static::AppleIIgs::Target;
|
||||
auto target = std::make_unique<Target>();
|
||||
|
||||
switch(ui->appleIIgsModelComboBox->currentIndex()) {
|
||||
default: target->model = Target::Model::ROM00; break;
|
||||
case 1: target->model = Target::Model::ROM01; break;
|
||||
case 2: target->model = Target::Model::ROM03; break;
|
||||
}
|
||||
|
||||
switch(ui->appleIIgsMemorySizeComboBox->currentIndex()) {
|
||||
default: target->memory_model = Target::MemoryModel::TwoHundredAndFiftySixKB; break;
|
||||
case 1: target->memory_model = Target::MemoryModel::OneMB; break;
|
||||
case 2: target->memory_model = Target::MemoryModel::EightMB; break;
|
||||
}
|
||||
|
||||
launchTarget(std::move(target));
|
||||
}
|
||||
|
||||
void MainWindow::start_amstradCPC() {
|
||||
using Target = Analyser::Static::AmstradCPC::Target;
|
||||
auto target = std::make_unique<Target>();
|
||||
@ -1290,6 +1311,10 @@ void MainWindow::launchTarget(std::unique_ptr<Analyser::Static::Target> &&target
|
||||
ComboBox(appleIIModelComboBox, "appleII.model"); \
|
||||
ComboBox(appleIIDiskControllerComboBox, "appleII.diskController"); \
|
||||
\
|
||||
/* Apple IIgs. */ \
|
||||
ComboBox(appleIIgsModelComboBox, "appleIIgs.model"); \
|
||||
ComboBox(appleIIgsMemorySizeComboBox, "appleIIgs.memorySize"); \
|
||||
\
|
||||
/* Amstrad CPC. */ \
|
||||
ComboBox(amstradCPCModelComboBox, "amstradcpc.model"); \
|
||||
\
|
||||
|
@ -85,6 +85,7 @@ class MainWindow : public QMainWindow, public Outputs::Speaker::Speaker::Delegat
|
||||
|
||||
private:
|
||||
void start_appleII();
|
||||
void start_appleIIgs();
|
||||
void start_amstradCPC();
|
||||
void start_atariST();
|
||||
void start_electron();
|
||||
|
@ -27,7 +27,7 @@
|
||||
<item>
|
||||
<widget class="QTabWidget" name="machineSelectionTabs">
|
||||
<property name="currentIndex">
|
||||
<number>0</number>
|
||||
<number>1</number>
|
||||
</property>
|
||||
<widget class="QWidget" name="appleIITab">
|
||||
<attribute name="title">
|
||||
@ -114,6 +114,86 @@
|
||||
</item>
|
||||
</layout>
|
||||
</widget>
|
||||
<widget class="QWidget" name="appleIIgsTab">
|
||||
<attribute name="title">
|
||||
<string>Apple IIgs</string>
|
||||
</attribute>
|
||||
<layout class="QVBoxLayout" name="appleIIgsLayout">
|
||||
<item>
|
||||
<layout class="QHBoxLayout" name="appleIIgsHorizontalLayout">
|
||||
<item>
|
||||
<layout class="QFormLayout" name="appleIIgsFormLayout">
|
||||
<item row="0" column="0">
|
||||
<widget class="QLabel" name="appleIIgsModelLabel">
|
||||
<property name="text">
|
||||
<string>Model:</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="0" column="1">
|
||||
<widget class="QComboBox" name="appleIIgsModelComboBox">
|
||||
<item>
|
||||
<property name="text">
|
||||
<string>ROM 00</string>
|
||||
</property>
|
||||
</item>
|
||||
<item>
|
||||
<property name="text">
|
||||
<string>ROM 01</string>
|
||||
</property>
|
||||
</item>
|
||||
<item>
|
||||
<property name="text">
|
||||
<string>ROM 03</string>
|
||||
</property>
|
||||
</item>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="1" column="0">
|
||||
<widget class="QLabel" name="appleIIgsMemorySizeLabel">
|
||||
<property name="text">
|
||||
<string>Memory Size:</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="1" column="1">
|
||||
<widget class="QComboBox" name="appleIIgsMemorySizeComboBox">
|
||||
<item>
|
||||
<property name="text">
|
||||
<string>256kb</string>
|
||||
</property>
|
||||
</item>
|
||||
<item>
|
||||
<property name="text">
|
||||
<string>1mb</string>
|
||||
</property>
|
||||
</item>
|
||||
<item>
|
||||
<property name="text">
|
||||
<string>8mb</string>
|
||||
</property>
|
||||
</item>
|
||||
</widget>
|
||||
</item>
|
||||
</layout>
|
||||
</item>
|
||||
<item>
|
||||
<spacer name="appleIIgsHSpacer">
|
||||
<property name="orientation">
|
||||
<enum>Qt::Horizontal</enum>
|
||||
</property>
|
||||
<property name="sizeHint" stdset="0">
|
||||
<size>
|
||||
<width>40</width>
|
||||
<height>20</height>
|
||||
</size>
|
||||
</property>
|
||||
</spacer>
|
||||
</item>
|
||||
</layout>
|
||||
</item>
|
||||
</layout>
|
||||
</widget>
|
||||
<widget class="QWidget" name="amstradCPCTab">
|
||||
<attribute name="title">
|
||||
<string>Amstrad CPC</string>
|
||||
|
@ -24,6 +24,7 @@ SOURCES += glob.glob('../../Analyser/Static/*.cpp')
|
||||
SOURCES += glob.glob('../../Analyser/Static/Acorn/*.cpp')
|
||||
SOURCES += glob.glob('../../Analyser/Static/AmstradCPC/*.cpp')
|
||||
SOURCES += glob.glob('../../Analyser/Static/AppleII/*.cpp')
|
||||
SOURCES += glob.glob('../../Analyser/Static/AppleIIgs/*.cpp')
|
||||
SOURCES += glob.glob('../../Analyser/Static/Atari2600/*.cpp')
|
||||
SOURCES += glob.glob('../../Analyser/Static/AtariST/*.cpp')
|
||||
SOURCES += glob.glob('../../Analyser/Static/Coleco/*.cpp')
|
||||
@ -63,6 +64,7 @@ SOURCES += glob.glob('../../Inputs/*.cpp')
|
||||
SOURCES += glob.glob('../../Machines/*.cpp')
|
||||
SOURCES += glob.glob('../../Machines/AmstradCPC/*.cpp')
|
||||
SOURCES += glob.glob('../../Machines/Apple/AppleII/*.cpp')
|
||||
SOURCES += glob.glob('../../Machines/Apple/AppleIIgs/*.cpp')
|
||||
SOURCES += glob.glob('../../Machines/Apple/Macintosh/*.cpp')
|
||||
SOURCES += glob.glob('../../Machines/Atari/2600/*.cpp')
|
||||
SOURCES += glob.glob('../../Machines/Atari/ST/*.cpp')
|
||||
|
6
ROMImages/AppleIIGS/readme.txt
Normal file
6
ROMImages/AppleIIGS/readme.txt
Normal file
@ -0,0 +1,6 @@
|
||||
ROM files would ordinarily go here; they are copyright Apple so are not included.
|
||||
|
||||
Expected files (as usual, using the most conventional pre-existing names):
|
||||
|
||||
APPLE2GS.ROM - ROM version 1; and
|
||||
APPLE2GS.ROM2 - ROM version 3.
|
@ -12,9 +12,13 @@
|
||||
namespace TargetPlatform {
|
||||
|
||||
typedef int IntType;
|
||||
|
||||
// The below is somehwat overspecified because some of the file formats already supported by this
|
||||
// emulator can self-specify platforms beyond those the emulator otherwise implements.
|
||||
enum Type: IntType {
|
||||
AmstradCPC = 1 << 1,
|
||||
AppleII = 1 << 2,
|
||||
AmstradCPC = 1 << 0,
|
||||
AppleII = 1 << 1,
|
||||
AppleIIgs = 1 << 2,
|
||||
Atari2600 = 1 << 3,
|
||||
AtariST = 1 << 4,
|
||||
AcornAtom = 1 << 5,
|
||||
|
Loading…
Reference in New Issue
Block a user