mirror of
https://github.com/TomHarte/CLK.git
synced 2025-01-11 08:30:55 +00:00
Adds the bare bones necessary to be able to create a Macintosh from File -> New... .
This commit is contained in:
parent
8c5d37b6ee
commit
5f385e15f6
@ -17,6 +17,7 @@ enum class Machine {
|
|||||||
Atari2600,
|
Atari2600,
|
||||||
ColecoVision,
|
ColecoVision,
|
||||||
Electron,
|
Electron,
|
||||||
|
Macintosh,
|
||||||
MasterSystem,
|
MasterSystem,
|
||||||
MSX,
|
MSX,
|
||||||
Oric,
|
Oric,
|
||||||
|
48
Machines/Apple/Macintosh/Macintosh.cpp
Normal file
48
Machines/Apple/Macintosh/Macintosh.cpp
Normal file
@ -0,0 +1,48 @@
|
|||||||
|
//
|
||||||
|
// Macintosh.cpp
|
||||||
|
// Clock Signal
|
||||||
|
//
|
||||||
|
// Created by Thomas Harte on 03/05/2019.
|
||||||
|
// Copyright © 2019 Thomas Harte. All rights reserved.
|
||||||
|
//
|
||||||
|
|
||||||
|
#include "Macintosh.hpp"
|
||||||
|
|
||||||
|
#include "../../../Processors/68000/68000.hpp"
|
||||||
|
#include "../../../Components/6522/6522.hpp"
|
||||||
|
|
||||||
|
namespace Apple {
|
||||||
|
namespace Macintosh {
|
||||||
|
|
||||||
|
class ConcreteMachine:
|
||||||
|
public Machine,
|
||||||
|
public CPU::MC68000::BusHandler {
|
||||||
|
public:
|
||||||
|
ConcreteMachine(const ROMMachine::ROMFetcher &rom_fetcher) :
|
||||||
|
mc68000_(*this) {
|
||||||
|
|
||||||
|
const auto roms = rom_fetcher("Macintosh", { "mac128k.rom" });
|
||||||
|
if(!roms[0]) {
|
||||||
|
throw ROMMachine::Error::MissingROMs;
|
||||||
|
}
|
||||||
|
|
||||||
|
roms[0]->resize(64*1024);
|
||||||
|
memcpy(rom_, roms[0]->data(), roms[0]->size());
|
||||||
|
}
|
||||||
|
|
||||||
|
private:
|
||||||
|
CPU::MC68000::Processor<ConcreteMachine, true> mc68000_;
|
||||||
|
uint8_t rom_[64*1024];
|
||||||
|
uint8_t ram_[128*1024];
|
||||||
|
};
|
||||||
|
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
using namespace Apple::Macintosh;
|
||||||
|
|
||||||
|
Machine *Machine::Macintosh(const Analyser::Static::Target *target, const ROMMachine::ROMFetcher &rom_fetcher) {
|
||||||
|
return new ConcreteMachine(rom_fetcher);
|
||||||
|
}
|
||||||
|
|
||||||
|
Machine::~Machine() {}
|
30
Machines/Apple/Macintosh/Macintosh.hpp
Normal file
30
Machines/Apple/Macintosh/Macintosh.hpp
Normal file
@ -0,0 +1,30 @@
|
|||||||
|
//
|
||||||
|
// Macintosh.hpp
|
||||||
|
// Clock Signal
|
||||||
|
//
|
||||||
|
// Created by Thomas Harte on 03/05/2019.
|
||||||
|
// Copyright © 2019 Thomas Harte. All rights reserved.
|
||||||
|
//
|
||||||
|
|
||||||
|
#ifndef Macintosh_hpp
|
||||||
|
#define Macintosh_hpp
|
||||||
|
|
||||||
|
#include "../../../Analyser/Static/StaticAnalyser.hpp"
|
||||||
|
#include "../../ROMMachine.hpp"
|
||||||
|
|
||||||
|
namespace Apple {
|
||||||
|
namespace Macintosh {
|
||||||
|
|
||||||
|
class Machine {
|
||||||
|
public:
|
||||||
|
virtual ~Machine();
|
||||||
|
|
||||||
|
/// Creates and returns a Macintosh.
|
||||||
|
static Machine *Macintosh(const Analyser::Static::Target *target, const ROMMachine::ROMFetcher &rom_fetcher);
|
||||||
|
};
|
||||||
|
|
||||||
|
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
#endif /* Macintosh_hpp */
|
@ -10,6 +10,7 @@
|
|||||||
|
|
||||||
#include "../AmstradCPC/AmstradCPC.hpp"
|
#include "../AmstradCPC/AmstradCPC.hpp"
|
||||||
#include "../Apple/AppleII/AppleII.hpp"
|
#include "../Apple/AppleII/AppleII.hpp"
|
||||||
|
#include "../Apple/Macintosh/Macintosh.hpp"
|
||||||
#include "../Atari2600/Atari2600.hpp"
|
#include "../Atari2600/Atari2600.hpp"
|
||||||
#include "../ColecoVision/ColecoVision.hpp"
|
#include "../ColecoVision/ColecoVision.hpp"
|
||||||
#include "../Commodore/Vic-20/Vic20.hpp"
|
#include "../Commodore/Vic-20/Vic20.hpp"
|
||||||
@ -34,6 +35,7 @@ namespace {
|
|||||||
switch(target->machine) {
|
switch(target->machine) {
|
||||||
Bind(AmstradCPC)
|
Bind(AmstradCPC)
|
||||||
BindD(Apple::II, AppleII)
|
BindD(Apple::II, AppleII)
|
||||||
|
BindD(Apple::Macintosh, Macintosh)
|
||||||
Bind(Atari2600)
|
Bind(Atari2600)
|
||||||
BindD(Coleco::Vision, ColecoVision)
|
BindD(Coleco::Vision, ColecoVision)
|
||||||
Bind(Electron)
|
Bind(Electron)
|
||||||
@ -103,6 +105,7 @@ std::string Machine::ShortNameForTargetMachine(const Analyser::Machine machine)
|
|||||||
case Analyser::Machine::Atari2600: return "Atari2600";
|
case Analyser::Machine::Atari2600: return "Atari2600";
|
||||||
case Analyser::Machine::ColecoVision: return "ColecoVision";
|
case Analyser::Machine::ColecoVision: return "ColecoVision";
|
||||||
case Analyser::Machine::Electron: return "Electron";
|
case Analyser::Machine::Electron: return "Electron";
|
||||||
|
case Analyser::Machine::Macintosh: return "Macintosh";
|
||||||
case Analyser::Machine::MSX: return "MSX";
|
case Analyser::Machine::MSX: return "MSX";
|
||||||
case Analyser::Machine::Oric: return "Oric";
|
case Analyser::Machine::Oric: return "Oric";
|
||||||
case Analyser::Machine::Vic20: return "Vic20";
|
case Analyser::Machine::Vic20: return "Vic20";
|
||||||
@ -119,6 +122,7 @@ std::string Machine::LongNameForTargetMachine(Analyser::Machine machine) {
|
|||||||
case Analyser::Machine::Atari2600: return "Atari 2600";
|
case Analyser::Machine::Atari2600: return "Atari 2600";
|
||||||
case Analyser::Machine::ColecoVision: return "ColecoVision";
|
case Analyser::Machine::ColecoVision: return "ColecoVision";
|
||||||
case Analyser::Machine::Electron: return "Acorn Electron";
|
case Analyser::Machine::Electron: return "Acorn Electron";
|
||||||
|
case Analyser::Machine::Macintosh: return "Apple Macintosh";
|
||||||
case Analyser::Machine::MSX: return "MSX";
|
case Analyser::Machine::MSX: return "MSX";
|
||||||
case Analyser::Machine::Oric: return "Oric";
|
case Analyser::Machine::Oric: return "Oric";
|
||||||
case Analyser::Machine::Vic20: return "Vic 20";
|
case Analyser::Machine::Vic20: return "Vic 20";
|
||||||
|
@ -615,6 +615,7 @@
|
|||||||
4BCE0051227CE8CA000CA200 /* Video.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 4BCE004D227CE8CA000CA200 /* Video.cpp */; };
|
4BCE0051227CE8CA000CA200 /* Video.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 4BCE004D227CE8CA000CA200 /* Video.cpp */; };
|
||||||
4BCE0052227CE8CA000CA200 /* DiskIICard.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 4BCE004E227CE8CA000CA200 /* DiskIICard.cpp */; };
|
4BCE0052227CE8CA000CA200 /* DiskIICard.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 4BCE004E227CE8CA000CA200 /* DiskIICard.cpp */; };
|
||||||
4BCE0053227CE8CA000CA200 /* AppleII.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 4BCE0050227CE8CA000CA200 /* AppleII.cpp */; };
|
4BCE0053227CE8CA000CA200 /* AppleII.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 4BCE0050227CE8CA000CA200 /* AppleII.cpp */; };
|
||||||
|
4BCE005A227CFFCA000CA200 /* Macintosh.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 4BCE0058227CFFCA000CA200 /* Macintosh.cpp */; };
|
||||||
4BCF1FA41DADC3DD0039D2E7 /* Oric.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 4BCF1FA21DADC3DD0039D2E7 /* Oric.cpp */; };
|
4BCF1FA41DADC3DD0039D2E7 /* Oric.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 4BCF1FA21DADC3DD0039D2E7 /* Oric.cpp */; };
|
||||||
4BD191F42191180E0042E144 /* ScanTarget.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 4BD191F22191180E0042E144 /* ScanTarget.cpp */; };
|
4BD191F42191180E0042E144 /* ScanTarget.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 4BD191F22191180E0042E144 /* ScanTarget.cpp */; };
|
||||||
4BD191F52191180E0042E144 /* ScanTarget.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 4BD191F22191180E0042E144 /* ScanTarget.cpp */; };
|
4BD191F52191180E0042E144 /* ScanTarget.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 4BD191F22191180E0042E144 /* ScanTarget.cpp */; };
|
||||||
@ -1377,6 +1378,8 @@
|
|||||||
4BCE004E227CE8CA000CA200 /* DiskIICard.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = DiskIICard.cpp; sourceTree = "<group>"; };
|
4BCE004E227CE8CA000CA200 /* DiskIICard.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = DiskIICard.cpp; sourceTree = "<group>"; };
|
||||||
4BCE004F227CE8CA000CA200 /* Video.hpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.h; path = Video.hpp; sourceTree = "<group>"; };
|
4BCE004F227CE8CA000CA200 /* Video.hpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.h; path = Video.hpp; sourceTree = "<group>"; };
|
||||||
4BCE0050227CE8CA000CA200 /* AppleII.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = AppleII.cpp; sourceTree = "<group>"; };
|
4BCE0050227CE8CA000CA200 /* AppleII.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = AppleII.cpp; sourceTree = "<group>"; };
|
||||||
|
4BCE0058227CFFCA000CA200 /* Macintosh.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = Macintosh.cpp; sourceTree = "<group>"; };
|
||||||
|
4BCE0059227CFFCA000CA200 /* Macintosh.hpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.h; path = Macintosh.hpp; sourceTree = "<group>"; };
|
||||||
4BCF1FA21DADC3DD0039D2E7 /* Oric.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = Oric.cpp; path = Oric/Oric.cpp; sourceTree = "<group>"; };
|
4BCF1FA21DADC3DD0039D2E7 /* Oric.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = Oric.cpp; path = Oric/Oric.cpp; sourceTree = "<group>"; };
|
||||||
4BCF1FA31DADC3DD0039D2E7 /* Oric.hpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.h; name = Oric.hpp; path = Oric/Oric.hpp; sourceTree = "<group>"; };
|
4BCF1FA31DADC3DD0039D2E7 /* Oric.hpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.h; name = Oric.hpp; path = Oric/Oric.hpp; sourceTree = "<group>"; };
|
||||||
4BD060A51FE49D3C006E14BE /* Speaker.hpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.h; path = Speaker.hpp; sourceTree = "<group>"; };
|
4BD060A51FE49D3C006E14BE /* Speaker.hpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.h; path = Speaker.hpp; sourceTree = "<group>"; };
|
||||||
@ -3029,6 +3032,7 @@
|
|||||||
isa = PBXGroup;
|
isa = PBXGroup;
|
||||||
children = (
|
children = (
|
||||||
4BCE0049227CE8CA000CA200 /* AppleII */,
|
4BCE0049227CE8CA000CA200 /* AppleII */,
|
||||||
|
4BCE0057227CFFCA000CA200 /* Macintosh */,
|
||||||
);
|
);
|
||||||
path = Apple;
|
path = Apple;
|
||||||
sourceTree = "<group>";
|
sourceTree = "<group>";
|
||||||
@ -3047,6 +3051,15 @@
|
|||||||
path = AppleII;
|
path = AppleII;
|
||||||
sourceTree = "<group>";
|
sourceTree = "<group>";
|
||||||
};
|
};
|
||||||
|
4BCE0057227CFFCA000CA200 /* Macintosh */ = {
|
||||||
|
isa = PBXGroup;
|
||||||
|
children = (
|
||||||
|
4BCE0058227CFFCA000CA200 /* Macintosh.cpp */,
|
||||||
|
4BCE0059227CFFCA000CA200 /* Macintosh.hpp */,
|
||||||
|
);
|
||||||
|
path = Macintosh;
|
||||||
|
sourceTree = "<group>";
|
||||||
|
};
|
||||||
4BCF1FA51DADC3E10039D2E7 /* Oric */ = {
|
4BCF1FA51DADC3E10039D2E7 /* Oric */ = {
|
||||||
isa = PBXGroup;
|
isa = PBXGroup;
|
||||||
children = (
|
children = (
|
||||||
@ -3920,6 +3933,7 @@
|
|||||||
4BD424E52193B5830097291A /* Shader.cpp in Sources */,
|
4BD424E52193B5830097291A /* Shader.cpp in Sources */,
|
||||||
4B0333AF2094081A0050B93D /* AppleDSK.cpp in Sources */,
|
4B0333AF2094081A0050B93D /* AppleDSK.cpp in Sources */,
|
||||||
4B894518201967B4007DE474 /* ConfidenceCounter.cpp in Sources */,
|
4B894518201967B4007DE474 /* ConfidenceCounter.cpp in Sources */,
|
||||||
|
4BCE005A227CFFCA000CA200 /* Macintosh.cpp in Sources */,
|
||||||
4B89452E201967B4007DE474 /* StaticAnalyser.cpp in Sources */,
|
4B89452E201967B4007DE474 /* StaticAnalyser.cpp in Sources */,
|
||||||
4BD5D2682199148100DDF17D /* ScanTargetGLSLFragments.cpp in Sources */,
|
4BD5D2682199148100DDF17D /* ScanTargetGLSLFragments.cpp in Sources */,
|
||||||
4B38F3481F2EC11D00D9235D /* AmstradCPC.cpp in Sources */,
|
4B38F3481F2EC11D00D9235D /* AmstradCPC.cpp in Sources */,
|
||||||
|
@ -29,6 +29,10 @@ typedef NS_ENUM(NSInteger, CSMachineCPCModel) {
|
|||||||
CSMachineCPCModel6128
|
CSMachineCPCModel6128
|
||||||
};
|
};
|
||||||
|
|
||||||
|
typedef NS_ENUM(NSInteger, CSMachineMacintoshModel) {
|
||||||
|
CSMachineMacintoshModel128k
|
||||||
|
};
|
||||||
|
|
||||||
typedef NS_ENUM(NSInteger, CSMachineOricModel) {
|
typedef NS_ENUM(NSInteger, CSMachineOricModel) {
|
||||||
CSMachineOricModelOric1,
|
CSMachineOricModelOric1,
|
||||||
CSMachineOricModelOricAtmos,
|
CSMachineOricModelOricAtmos,
|
||||||
@ -69,6 +73,7 @@ typedef int Kilobytes;
|
|||||||
- (instancetype)initWithZX80MemorySize:(Kilobytes)memorySize useZX81ROM:(BOOL)useZX81ROM;
|
- (instancetype)initWithZX80MemorySize:(Kilobytes)memorySize useZX81ROM:(BOOL)useZX81ROM;
|
||||||
- (instancetype)initWithZX81MemorySize:(Kilobytes)memorySize;
|
- (instancetype)initWithZX81MemorySize:(Kilobytes)memorySize;
|
||||||
- (instancetype)initWithAppleIIModel:(CSMachineAppleIIModel)model diskController:(CSMachineAppleIIDiskController)diskController;
|
- (instancetype)initWithAppleIIModel:(CSMachineAppleIIModel)model diskController:(CSMachineAppleIIDiskController)diskController;
|
||||||
|
- (instancetype)initWithMacintoshModel:(CSMachineMacintoshModel)model;
|
||||||
|
|
||||||
@property(nonatomic, readonly) NSString *optionsPanelNibName;
|
@property(nonatomic, readonly) NSString *optionsPanelNibName;
|
||||||
@property(nonatomic, readonly) NSString *displayName;
|
@property(nonatomic, readonly) NSString *displayName;
|
||||||
|
@ -188,7 +188,17 @@ static Analyser::Static::ZX8081::Target::MemoryModel ZX8081MemoryModelFromSize(K
|
|||||||
_targets.push_back(std::move(target));
|
_targets.push_back(std::move(target));
|
||||||
}
|
}
|
||||||
return self;
|
return self;
|
||||||
|
}
|
||||||
|
|
||||||
|
- (instancetype)initWithMacintoshModel:(CSMachineMacintoshModel)model {
|
||||||
|
self = [super init];
|
||||||
|
if(self) {
|
||||||
|
using Target = Analyser::Static::Target;
|
||||||
|
std::unique_ptr<Target> target(new Target);
|
||||||
|
target->machine = Analyser::Machine::Macintosh;
|
||||||
|
_targets.push_back(std::move(target));
|
||||||
|
}
|
||||||
|
return self;
|
||||||
}
|
}
|
||||||
|
|
||||||
- (NSString *)optionsPanelNibName {
|
- (NSString *)optionsPanelNibName {
|
||||||
|
@ -1,8 +1,8 @@
|
|||||||
<?xml version="1.0" encoding="UTF-8"?>
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
<document type="com.apple.InterfaceBuilder3.Cocoa.XIB" version="3.0" toolsVersion="14460.31" targetRuntime="MacOSX.Cocoa" propertyAccessControl="none" useAutolayout="YES" customObjectInstantitationMethod="direct">
|
<document type="com.apple.InterfaceBuilder3.Cocoa.XIB" version="3.0" toolsVersion="14490.70" targetRuntime="MacOSX.Cocoa" propertyAccessControl="none" useAutolayout="YES" customObjectInstantitationMethod="direct">
|
||||||
<dependencies>
|
<dependencies>
|
||||||
<deployment identifier="macosx"/>
|
<deployment identifier="macosx"/>
|
||||||
<plugIn identifier="com.apple.InterfaceBuilder.CocoaPlugin" version="14460.31"/>
|
<plugIn identifier="com.apple.InterfaceBuilder.CocoaPlugin" version="14490.70"/>
|
||||||
<capability name="documents saved in the Xcode 8 format" minToolsVersion="8.0"/>
|
<capability name="documents saved in the Xcode 8 format" minToolsVersion="8.0"/>
|
||||||
</dependencies>
|
</dependencies>
|
||||||
<objects>
|
<objects>
|
||||||
@ -17,14 +17,14 @@
|
|||||||
<window title="Window" allowsToolTipsWhenApplicationIsInactive="NO" autorecalculatesKeyViewLoop="NO" releasedWhenClosed="NO" visibleAtLaunch="NO" animationBehavior="default" titleVisibility="hidden" id="QvC-M9-y7g">
|
<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"/>
|
<windowStyleMask key="styleMask" titled="YES" documentModal="YES"/>
|
||||||
<windowPositionMask key="initialPositionMask" leftStrut="YES" rightStrut="YES" topStrut="YES" bottomStrut="YES"/>
|
<windowPositionMask key="initialPositionMask" leftStrut="YES" rightStrut="YES" topStrut="YES" bottomStrut="YES"/>
|
||||||
<rect key="contentRect" x="196" y="240" width="600" height="205"/>
|
<rect key="contentRect" x="196" y="240" width="700" height="205"/>
|
||||||
<rect key="screenRect" x="0.0" y="0.0" width="1440" height="900"/>
|
<rect key="screenRect" x="0.0" y="0.0" width="1440" height="900"/>
|
||||||
<view key="contentView" wantsLayer="YES" id="EiT-Mj-1SZ">
|
<view key="contentView" wantsLayer="YES" id="EiT-Mj-1SZ">
|
||||||
<rect key="frame" x="0.0" y="0.0" width="600" height="205"/>
|
<rect key="frame" x="0.0" y="0.0" width="700" height="205"/>
|
||||||
<autoresizingMask key="autoresizingMask" widthSizable="YES" heightSizable="YES"/>
|
<autoresizingMask key="autoresizingMask" widthSizable="YES" heightSizable="YES"/>
|
||||||
<subviews>
|
<subviews>
|
||||||
<button verticalHuggingPriority="750" translatesAutoresizingMaskIntoConstraints="NO" id="hKn-1l-OSN">
|
<button verticalHuggingPriority="750" translatesAutoresizingMaskIntoConstraints="NO" id="hKn-1l-OSN">
|
||||||
<rect key="frame" x="499" y="13" width="87" height="32"/>
|
<rect key="frame" x="599" 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">
|
<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"/>
|
<behavior key="behavior" pushIn="YES" lightByBackground="YES" lightByGray="YES"/>
|
||||||
<font key="font" metaFont="system"/>
|
<font key="font" metaFont="system"/>
|
||||||
@ -37,7 +37,7 @@ DQ
|
|||||||
</connections>
|
</connections>
|
||||||
</button>
|
</button>
|
||||||
<button verticalHuggingPriority="750" translatesAutoresizingMaskIntoConstraints="NO" id="JQy-Cj-AOK">
|
<button verticalHuggingPriority="750" translatesAutoresizingMaskIntoConstraints="NO" id="JQy-Cj-AOK">
|
||||||
<rect key="frame" x="418" y="13" width="82" height="32"/>
|
<rect key="frame" x="518" 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">
|
<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"/>
|
<behavior key="behavior" pushIn="YES" lightByBackground="YES" lightByGray="YES"/>
|
||||||
<font key="font" metaFont="system"/>
|
<font key="font" metaFont="system"/>
|
||||||
@ -59,7 +59,7 @@ Gw
|
|||||||
</textFieldCell>
|
</textFieldCell>
|
||||||
</textField>
|
</textField>
|
||||||
<tabView translatesAutoresizingMaskIntoConstraints="NO" id="VUb-QG-x7c">
|
<tabView translatesAutoresizingMaskIntoConstraints="NO" id="VUb-QG-x7c">
|
||||||
<rect key="frame" x="13" y="51" width="574" height="140"/>
|
<rect key="frame" x="13" y="51" width="674" height="140"/>
|
||||||
<font key="font" metaFont="system"/>
|
<font key="font" metaFont="system"/>
|
||||||
<tabViewItems>
|
<tabViewItems>
|
||||||
<tabViewItem label="Apple II" identifier="appleii" id="P59-QG-LOa">
|
<tabViewItem label="Apple II" identifier="appleii" id="P59-QG-LOa">
|
||||||
@ -130,7 +130,7 @@ Gw
|
|||||||
</tabViewItem>
|
</tabViewItem>
|
||||||
<tabViewItem label="Amstrad CPC" identifier="cpc" id="JmB-OF-xcM">
|
<tabViewItem label="Amstrad CPC" identifier="cpc" id="JmB-OF-xcM">
|
||||||
<view key="view" id="5zS-Nj-Ynx">
|
<view key="view" id="5zS-Nj-Ynx">
|
||||||
<rect key="frame" x="10" y="33" width="554" height="94"/>
|
<rect key="frame" x="10" y="33" width="654" height="94"/>
|
||||||
<autoresizingMask key="autoresizingMask" widthSizable="YES" heightSizable="YES"/>
|
<autoresizingMask key="autoresizingMask" widthSizable="YES" heightSizable="YES"/>
|
||||||
<subviews>
|
<subviews>
|
||||||
<popUpButton verticalHuggingPriority="750" translatesAutoresizingMaskIntoConstraints="NO" id="00d-sg-Krh">
|
<popUpButton verticalHuggingPriority="750" translatesAutoresizingMaskIntoConstraints="NO" id="00d-sg-Krh">
|
||||||
@ -168,18 +168,18 @@ Gw
|
|||||||
</tabViewItem>
|
</tabViewItem>
|
||||||
<tabViewItem label="Electron" identifier="electron" id="muc-z9-Vqc">
|
<tabViewItem label="Electron" identifier="electron" id="muc-z9-Vqc">
|
||||||
<view key="view" id="SRc-2D-95G">
|
<view key="view" id="SRc-2D-95G">
|
||||||
<rect key="frame" x="10" y="33" width="554" height="93"/>
|
<rect key="frame" x="10" y="33" width="654" height="94"/>
|
||||||
<autoresizingMask key="autoresizingMask" widthSizable="YES" heightSizable="YES"/>
|
<autoresizingMask key="autoresizingMask" widthSizable="YES" heightSizable="YES"/>
|
||||||
<subviews>
|
<subviews>
|
||||||
<button verticalHuggingPriority="750" translatesAutoresizingMaskIntoConstraints="NO" id="JqM-IK-FMP">
|
<button verticalHuggingPriority="750" translatesAutoresizingMaskIntoConstraints="NO" id="JqM-IK-FMP">
|
||||||
<rect key="frame" x="15" y="74" width="164" height="18"/>
|
<rect key="frame" x="15" y="75" width="164" height="18"/>
|
||||||
<buttonCell key="cell" type="check" title="With Disk Filing System" bezelStyle="regularSquare" imagePosition="left" state="on" inset="2" id="tpW-5C-xKp">
|
<buttonCell key="cell" type="check" title="With Disk Filing System" bezelStyle="regularSquare" imagePosition="left" state="on" inset="2" id="tpW-5C-xKp">
|
||||||
<behavior key="behavior" changeContents="YES" doesNotDimImage="YES" lightByContents="YES"/>
|
<behavior key="behavior" changeContents="YES" doesNotDimImage="YES" lightByContents="YES"/>
|
||||||
<font key="font" metaFont="system"/>
|
<font key="font" metaFont="system"/>
|
||||||
</buttonCell>
|
</buttonCell>
|
||||||
</button>
|
</button>
|
||||||
<button verticalHuggingPriority="750" translatesAutoresizingMaskIntoConstraints="NO" id="945-wU-JOH">
|
<button verticalHuggingPriority="750" translatesAutoresizingMaskIntoConstraints="NO" id="945-wU-JOH">
|
||||||
<rect key="frame" x="15" y="54" width="228" height="18"/>
|
<rect key="frame" x="15" y="55" width="228" height="18"/>
|
||||||
<buttonCell key="cell" type="check" title="With Advanced Disk Filing System" bezelStyle="regularSquare" imagePosition="left" state="on" inset="2" id="S0c-Jg-7Pu">
|
<buttonCell key="cell" type="check" title="With Advanced Disk Filing System" bezelStyle="regularSquare" imagePosition="left" state="on" inset="2" id="S0c-Jg-7Pu">
|
||||||
<behavior key="behavior" changeContents="YES" doesNotDimImage="YES" lightByContents="YES"/>
|
<behavior key="behavior" changeContents="YES" doesNotDimImage="YES" lightByContents="YES"/>
|
||||||
<font key="font" metaFont="system"/>
|
<font key="font" metaFont="system"/>
|
||||||
@ -197,9 +197,15 @@ Gw
|
|||||||
</constraints>
|
</constraints>
|
||||||
</view>
|
</view>
|
||||||
</tabViewItem>
|
</tabViewItem>
|
||||||
|
<tabViewItem label="Macintosh" identifier="mac" id="lmR-z3-xSm">
|
||||||
|
<view key="view" id="7Yf-vi-Q0W">
|
||||||
|
<rect key="frame" x="10" y="33" width="654" height="94"/>
|
||||||
|
<autoresizingMask key="autoresizingMask" widthSizable="YES" heightSizable="YES"/>
|
||||||
|
</view>
|
||||||
|
</tabViewItem>
|
||||||
<tabViewItem label="MSX" identifier="msx" id="6SR-DY-zdI">
|
<tabViewItem label="MSX" identifier="msx" id="6SR-DY-zdI">
|
||||||
<view key="view" id="mWD-An-tR7">
|
<view key="view" id="mWD-An-tR7">
|
||||||
<rect key="frame" x="10" y="33" width="554" height="94"/>
|
<rect key="frame" x="10" y="33" width="654" height="94"/>
|
||||||
<autoresizingMask key="autoresizingMask" widthSizable="YES" heightSizable="YES"/>
|
<autoresizingMask key="autoresizingMask" widthSizable="YES" heightSizable="YES"/>
|
||||||
<subviews>
|
<subviews>
|
||||||
<button verticalHuggingPriority="750" translatesAutoresizingMaskIntoConstraints="NO" id="8xT-Pr-8SE">
|
<button verticalHuggingPriority="750" translatesAutoresizingMaskIntoConstraints="NO" id="8xT-Pr-8SE">
|
||||||
@ -233,6 +239,7 @@ Gw
|
|||||||
</textField>
|
</textField>
|
||||||
</subviews>
|
</subviews>
|
||||||
<constraints>
|
<constraints>
|
||||||
|
<constraint firstAttribute="trailing" relation="greaterThanOrEqual" secondItem="LG6-mP-SeG" secondAttribute="trailing" constant="17" id="0Oc-n7-gaM"/>
|
||||||
<constraint firstItem="8xT-Pr-8SE" firstAttribute="top" secondItem="LG6-mP-SeG" secondAttribute="bottom" constant="6" id="LBt-4m-GDc"/>
|
<constraint firstItem="8xT-Pr-8SE" firstAttribute="top" secondItem="LG6-mP-SeG" secondAttribute="bottom" constant="6" id="LBt-4m-GDc"/>
|
||||||
<constraint firstItem="LG6-mP-SeG" firstAttribute="top" secondItem="mWD-An-tR7" secondAttribute="top" constant="3" id="bcb-ZZ-VpQ"/>
|
<constraint firstItem="LG6-mP-SeG" firstAttribute="top" secondItem="mWD-An-tR7" secondAttribute="top" constant="3" id="bcb-ZZ-VpQ"/>
|
||||||
<constraint firstAttribute="trailing" relation="greaterThanOrEqual" secondItem="8xT-Pr-8SE" secondAttribute="trailing" constant="17" id="l8P-UW-8ig"/>
|
<constraint firstAttribute="trailing" relation="greaterThanOrEqual" secondItem="8xT-Pr-8SE" secondAttribute="trailing" constant="17" id="l8P-UW-8ig"/>
|
||||||
@ -246,7 +253,7 @@ Gw
|
|||||||
</tabViewItem>
|
</tabViewItem>
|
||||||
<tabViewItem label="Oric" identifier="oric" id="NSx-DC-p4M">
|
<tabViewItem label="Oric" identifier="oric" id="NSx-DC-p4M">
|
||||||
<view key="view" id="sOR-e0-8iZ">
|
<view key="view" id="sOR-e0-8iZ">
|
||||||
<rect key="frame" x="10" y="33" width="554" height="94"/>
|
<rect key="frame" x="10" y="33" width="654" height="94"/>
|
||||||
<autoresizingMask key="autoresizingMask" widthSizable="YES" heightSizable="YES"/>
|
<autoresizingMask key="autoresizingMask" widthSizable="YES" heightSizable="YES"/>
|
||||||
<subviews>
|
<subviews>
|
||||||
<textField horizontalHuggingPriority="251" verticalHuggingPriority="750" translatesAutoresizingMaskIntoConstraints="NO" id="0ct-tf-uRH">
|
<textField horizontalHuggingPriority="251" verticalHuggingPriority="750" translatesAutoresizingMaskIntoConstraints="NO" id="0ct-tf-uRH">
|
||||||
@ -388,11 +395,11 @@ Gw
|
|||||||
</tabViewItem>
|
</tabViewItem>
|
||||||
<tabViewItem label="ZX80" identifier="zx80" id="tMH-kF-GUz">
|
<tabViewItem label="ZX80" identifier="zx80" id="tMH-kF-GUz">
|
||||||
<view key="view" id="8hL-Vn-Hg0">
|
<view key="view" id="8hL-Vn-Hg0">
|
||||||
<rect key="frame" x="10" y="33" width="554" height="93"/>
|
<rect key="frame" x="10" y="33" width="554" height="94"/>
|
||||||
<autoresizingMask key="autoresizingMask" widthSizable="YES" heightSizable="YES"/>
|
<autoresizingMask key="autoresizingMask" widthSizable="YES" heightSizable="YES"/>
|
||||||
<subviews>
|
<subviews>
|
||||||
<popUpButton verticalHuggingPriority="750" translatesAutoresizingMaskIntoConstraints="NO" id="I1a-Eu-5UB">
|
<popUpButton verticalHuggingPriority="750" translatesAutoresizingMaskIntoConstraints="NO" id="I1a-Eu-5UB">
|
||||||
<rect key="frame" x="106" y="66" width="115" height="25"/>
|
<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">
|
<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"/>
|
<behavior key="behavior" lightByBackground="YES" lightByGray="YES"/>
|
||||||
<font key="font" metaFont="menu"/>
|
<font key="font" metaFont="menu"/>
|
||||||
@ -406,7 +413,7 @@ Gw
|
|||||||
</popUpButtonCell>
|
</popUpButtonCell>
|
||||||
</popUpButton>
|
</popUpButton>
|
||||||
<textField horizontalHuggingPriority="251" verticalHuggingPriority="750" translatesAutoresizingMaskIntoConstraints="NO" id="NCX-4e-lSu">
|
<textField horizontalHuggingPriority="251" verticalHuggingPriority="750" translatesAutoresizingMaskIntoConstraints="NO" id="NCX-4e-lSu">
|
||||||
<rect key="frame" x="15" y="71" width="87" height="17"/>
|
<rect key="frame" x="15" y="72" width="87" height="17"/>
|
||||||
<textFieldCell key="cell" scrollable="YES" lineBreakMode="clipping" sendsActionOnEndEditing="YES" title="Memory Size:" id="e6x-TE-OC5">
|
<textFieldCell key="cell" scrollable="YES" lineBreakMode="clipping" sendsActionOnEndEditing="YES" title="Memory Size:" id="e6x-TE-OC5">
|
||||||
<font key="font" metaFont="system"/>
|
<font key="font" metaFont="system"/>
|
||||||
<color key="textColor" name="labelColor" catalog="System" colorSpace="catalog"/>
|
<color key="textColor" name="labelColor" catalog="System" colorSpace="catalog"/>
|
||||||
@ -414,7 +421,7 @@ Gw
|
|||||||
</textFieldCell>
|
</textFieldCell>
|
||||||
</textField>
|
</textField>
|
||||||
<button verticalHuggingPriority="750" translatesAutoresizingMaskIntoConstraints="NO" id="ReP-bV-Thu">
|
<button verticalHuggingPriority="750" translatesAutoresizingMaskIntoConstraints="NO" id="ReP-bV-Thu">
|
||||||
<rect key="frame" x="15" y="47" width="114" height="18"/>
|
<rect key="frame" x="15" y="48" width="114" height="18"/>
|
||||||
<buttonCell key="cell" type="check" title="Use ZX81 ROM" bezelStyle="regularSquare" imagePosition="left" state="on" inset="2" id="VQH-nv-Pfm">
|
<buttonCell key="cell" type="check" title="Use ZX81 ROM" bezelStyle="regularSquare" imagePosition="left" state="on" inset="2" id="VQH-nv-Pfm">
|
||||||
<behavior key="behavior" changeContents="YES" doesNotDimImage="YES" lightByContents="YES"/>
|
<behavior key="behavior" changeContents="YES" doesNotDimImage="YES" lightByContents="YES"/>
|
||||||
<font key="font" metaFont="system"/>
|
<font key="font" metaFont="system"/>
|
||||||
@ -436,11 +443,11 @@ Gw
|
|||||||
</tabViewItem>
|
</tabViewItem>
|
||||||
<tabViewItem label="ZX81" identifier="zx81" id="Wnn-nQ-gZ6">
|
<tabViewItem label="ZX81" identifier="zx81" id="Wnn-nQ-gZ6">
|
||||||
<view key="view" id="bmd-gL-gzT">
|
<view key="view" id="bmd-gL-gzT">
|
||||||
<rect key="frame" x="10" y="33" width="554" height="93"/>
|
<rect key="frame" x="10" y="33" width="554" height="94"/>
|
||||||
<autoresizingMask key="autoresizingMask" widthSizable="YES" heightSizable="YES"/>
|
<autoresizingMask key="autoresizingMask" widthSizable="YES" heightSizable="YES"/>
|
||||||
<subviews>
|
<subviews>
|
||||||
<popUpButton verticalHuggingPriority="750" translatesAutoresizingMaskIntoConstraints="NO" id="5aO-UX-HnX">
|
<popUpButton verticalHuggingPriority="750" translatesAutoresizingMaskIntoConstraints="NO" id="5aO-UX-HnX">
|
||||||
<rect key="frame" x="106" y="66" width="115" height="25"/>
|
<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">
|
<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"/>
|
<behavior key="behavior" lightByBackground="YES" lightByGray="YES"/>
|
||||||
<font key="font" metaFont="menu"/>
|
<font key="font" metaFont="menu"/>
|
||||||
@ -454,7 +461,7 @@ Gw
|
|||||||
</popUpButtonCell>
|
</popUpButtonCell>
|
||||||
</popUpButton>
|
</popUpButton>
|
||||||
<textField horizontalHuggingPriority="251" verticalHuggingPriority="750" translatesAutoresizingMaskIntoConstraints="NO" id="8tU-73-XEE">
|
<textField horizontalHuggingPriority="251" verticalHuggingPriority="750" translatesAutoresizingMaskIntoConstraints="NO" id="8tU-73-XEE">
|
||||||
<rect key="frame" x="15" y="71" width="87" height="17"/>
|
<rect key="frame" x="15" y="72" width="87" height="17"/>
|
||||||
<textFieldCell key="cell" scrollable="YES" lineBreakMode="clipping" sendsActionOnEndEditing="YES" title="Memory Size:" id="z4b-oR-Yl2">
|
<textFieldCell key="cell" scrollable="YES" lineBreakMode="clipping" sendsActionOnEndEditing="YES" title="Memory Size:" id="z4b-oR-Yl2">
|
||||||
<font key="font" metaFont="system"/>
|
<font key="font" metaFont="system"/>
|
||||||
<color key="textColor" name="labelColor" catalog="System" colorSpace="catalog"/>
|
<color key="textColor" name="labelColor" catalog="System" colorSpace="catalog"/>
|
||||||
|
@ -157,6 +157,9 @@ class MachinePicker: NSObject {
|
|||||||
default: return CSStaticAnalyser(amstradCPCModel: .model6128)
|
default: return CSStaticAnalyser(amstradCPCModel: .model6128)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
case "mac":
|
||||||
|
return CSStaticAnalyser(macintoshModel: .model128k)
|
||||||
|
|
||||||
case "msx":
|
case "msx":
|
||||||
let hasDiskDrive = msxHasDiskDriveButton!.state == .on
|
let hasDiskDrive = msxHasDiskDriveButton!.state == .on
|
||||||
switch msxRegionButton!.selectedItem?.tag {
|
switch msxRegionButton!.selectedItem?.tag {
|
||||||
|
Loading…
x
Reference in New Issue
Block a user