mirror of
https://github.com/TomHarte/CLK.git
synced 2024-12-27 16:31:31 +00:00
Merge pull request #421 from TomHarte/AppleConfiguration
Introduces configuration options for the Apple II.
This commit is contained in:
commit
4d070fbfe3
@ -14,7 +14,8 @@ Analyser::Static::TargetList Analyser::Static::AppleII::GetTargets(const Media &
|
|||||||
target->machine = Machine::AppleII;
|
target->machine = Machine::AppleII;
|
||||||
target->media = media;
|
target->media = media;
|
||||||
|
|
||||||
target->has_disk = !target->media.disks.empty();
|
if(!target->media.disks.empty())
|
||||||
|
target->disk_controller = Target::DiskController::SixteenSector;
|
||||||
|
|
||||||
TargetList targets;
|
TargetList targets;
|
||||||
targets.push_back(std::move(target));
|
targets.push_back(std::move(target));
|
||||||
|
@ -16,7 +16,18 @@ namespace Static {
|
|||||||
namespace AppleII {
|
namespace AppleII {
|
||||||
|
|
||||||
struct Target: public ::Analyser::Static::Target {
|
struct Target: public ::Analyser::Static::Target {
|
||||||
bool has_disk; // TODO: Disk II versus IWM?
|
enum class Model {
|
||||||
|
II,
|
||||||
|
IIplus
|
||||||
|
};
|
||||||
|
enum class DiskController {
|
||||||
|
None,
|
||||||
|
SixteenSector,
|
||||||
|
ThirteenSector
|
||||||
|
};
|
||||||
|
|
||||||
|
Model model = Model::IIplus;
|
||||||
|
DiskController disk_controller = DiskController::None;
|
||||||
};
|
};
|
||||||
|
|
||||||
}
|
}
|
||||||
|
@ -70,7 +70,7 @@ class ConcreteMachine:
|
|||||||
}
|
}
|
||||||
|
|
||||||
uint8_t ram_[48*1024];
|
uint8_t ram_[48*1024];
|
||||||
std::vector<uint8_t> rom_;
|
std::vector<uint8_t> apple2_rom_, apple2plus_rom_, rom_;
|
||||||
std::vector<uint8_t> character_rom_;
|
std::vector<uint8_t> character_rom_;
|
||||||
uint16_t rom_start_address_;
|
uint16_t rom_start_address_;
|
||||||
uint8_t keyboard_input_ = 0x00;
|
uint8_t keyboard_input_ = 0x00;
|
||||||
@ -225,17 +225,16 @@ class ConcreteMachine:
|
|||||||
"AppleII",
|
"AppleII",
|
||||||
{
|
{
|
||||||
"apple2o.rom",
|
"apple2o.rom",
|
||||||
|
"apple2.rom",
|
||||||
"apple2-character.rom"
|
"apple2-character.rom"
|
||||||
});
|
});
|
||||||
|
|
||||||
if(!roms[0] || !roms[1]) return false;
|
if(!roms[0] || !roms[1] || !roms[2]) return false;
|
||||||
rom_ = std::move(*roms[0]);
|
|
||||||
if(rom_.size() > 12*1024) {
|
|
||||||
rom_.erase(rom_.begin(), rom_.begin() + static_cast<off_t>(rom_.size()) - 12*1024);
|
|
||||||
}
|
|
||||||
rom_start_address_ = 0xd000;//static_cast<uint16_t>(0x10000 - rom_.size());
|
|
||||||
|
|
||||||
character_rom_ = std::move(*roms[1]);
|
apple2_rom_ = std::move(*roms[0]);
|
||||||
|
apple2plus_rom_ = std::move(*roms[1]);
|
||||||
|
|
||||||
|
character_rom_ = std::move(*roms[2]);
|
||||||
|
|
||||||
rom_fetcher_ = roms_with_names;
|
rom_fetcher_ = roms_with_names;
|
||||||
|
|
||||||
@ -273,11 +272,19 @@ class ConcreteMachine:
|
|||||||
|
|
||||||
// MARK: ConfigurationTarget
|
// MARK: ConfigurationTarget
|
||||||
void configure_as_target(const Analyser::Static::Target *target) override {
|
void configure_as_target(const Analyser::Static::Target *target) override {
|
||||||
auto *const apple_target = dynamic_cast<const Analyser::Static::AppleII::Target *>(target);
|
using Target = Analyser::Static::AppleII::Target;
|
||||||
if(apple_target->has_disk) {
|
auto *const apple_target = dynamic_cast<const Target *>(target);
|
||||||
cards_[5].reset(new AppleII::DiskIICard(rom_fetcher_, true));
|
|
||||||
|
if(apple_target->disk_controller != Target::DiskController::None) {
|
||||||
|
cards_[5].reset(new AppleII::DiskIICard(rom_fetcher_, apple_target->disk_controller == Target::DiskController::SixteenSector));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
rom_ = (apple_target->model == Target::Model::II) ? apple2_rom_ : apple2plus_rom_;
|
||||||
|
if(rom_.size() > 12*1024) {
|
||||||
|
rom_.erase(rom_.begin(), rom_.begin() + static_cast<off_t>(rom_.size()) - 12*1024);
|
||||||
|
}
|
||||||
|
rom_start_address_ = 0xd000;//static_cast<uint16_t>(0x10000 - rom_.size());
|
||||||
|
|
||||||
insert_media(apple_target->media);
|
insert_media(apple_target->media);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -68,7 +68,7 @@
|
|||||||
</AdditionalOptions>
|
</AdditionalOptions>
|
||||||
</TestAction>
|
</TestAction>
|
||||||
<LaunchAction
|
<LaunchAction
|
||||||
buildConfiguration = "Debug"
|
buildConfiguration = "Release"
|
||||||
selectedDebuggerIdentifier = "Xcode.DebuggerFoundation.Debugger.LLDB"
|
selectedDebuggerIdentifier = "Xcode.DebuggerFoundation.Debugger.LLDB"
|
||||||
selectedLauncherIdentifier = "Xcode.DebuggerFoundation.Launcher.LLDB"
|
selectedLauncherIdentifier = "Xcode.DebuggerFoundation.Launcher.LLDB"
|
||||||
enableASanStackUseAfterReturn = "YES"
|
enableASanStackUseAfterReturn = "YES"
|
||||||
|
@ -10,6 +10,17 @@
|
|||||||
|
|
||||||
@class CSMachine;
|
@class CSMachine;
|
||||||
|
|
||||||
|
typedef NS_ENUM(NSInteger, CSMachineAppleIIModel) {
|
||||||
|
CSMachineAppleIIModelAppleII,
|
||||||
|
CSMachineAppleIIModelAppleIIPlus
|
||||||
|
};
|
||||||
|
|
||||||
|
typedef NS_ENUM(NSInteger, CSMachineAppleIIDiskController) {
|
||||||
|
CSMachineAppleIIDiskControllerNone,
|
||||||
|
CSMachineAppleIIDiskControllerSixteenSector,
|
||||||
|
CSMachineAppleIIDiskControllerThirteenSector
|
||||||
|
};
|
||||||
|
|
||||||
typedef NS_ENUM(NSInteger, CSMachineCPCModel) {
|
typedef NS_ENUM(NSInteger, CSMachineCPCModel) {
|
||||||
CSMachineCPCModel464,
|
CSMachineCPCModel464,
|
||||||
CSMachineCPCModel664,
|
CSMachineCPCModel664,
|
||||||
@ -42,7 +53,7 @@ typedef int Kilobytes;
|
|||||||
- (instancetype)initWithVic20Region:(CSMachineVic20Region)region memorySize:(Kilobytes)memorySize hasC1540:(BOOL)hasC1540;
|
- (instancetype)initWithVic20Region:(CSMachineVic20Region)region memorySize:(Kilobytes)memorySize hasC1540:(BOOL)hasC1540;
|
||||||
- (instancetype)initWithZX80MemorySize:(Kilobytes)memorySize useZX81ROM:(BOOL)useZX81ROM;
|
- (instancetype)initWithZX80MemorySize:(Kilobytes)memorySize useZX81ROM:(BOOL)useZX81ROM;
|
||||||
- (instancetype)initWithZX81MemorySize:(Kilobytes)memorySize;
|
- (instancetype)initWithZX81MemorySize:(Kilobytes)memorySize;
|
||||||
- (instancetype)initWithAppleII;
|
- (instancetype)initWithAppleIIModel:(CSMachineAppleIIModel)model diskController:(CSMachineAppleIIDiskController)diskController;
|
||||||
|
|
||||||
@property(nonatomic, readonly) NSString *optionsPanelNibName;
|
@property(nonatomic, readonly) NSString *optionsPanelNibName;
|
||||||
@property(nonatomic, readonly) NSString *displayName;
|
@property(nonatomic, readonly) NSString *displayName;
|
||||||
|
@ -154,12 +154,19 @@ static Analyser::Static::ZX8081::Target::MemoryModel ZX8081MemoryModelFromSize(K
|
|||||||
return self;
|
return self;
|
||||||
}
|
}
|
||||||
|
|
||||||
- (instancetype)initWithAppleII {
|
- (instancetype)initWithAppleIIModel:(CSMachineAppleIIModel)model diskController:(CSMachineAppleIIDiskController)diskController {
|
||||||
self = [super init];
|
self = [super init];
|
||||||
if(self) {
|
if(self) {
|
||||||
using Target = Analyser::Static::AppleII::Target;
|
using Target = Analyser::Static::AppleII::Target;
|
||||||
std::unique_ptr<Target> target(new Target);
|
std::unique_ptr<Target> target(new Target);
|
||||||
target->machine = Analyser::Machine::AppleII;
|
target->machine = Analyser::Machine::AppleII;
|
||||||
|
target->model = (model == CSMachineAppleIIModelAppleII) ? Target::Model::II : Target::Model::IIplus;
|
||||||
|
switch(diskController) {
|
||||||
|
default:
|
||||||
|
case CSMachineAppleIIDiskControllerNone: target->disk_controller = Target::DiskController::None; break;
|
||||||
|
case CSMachineAppleIIDiskControllerSixteenSector: target->disk_controller = Target::DiskController::SixteenSector; break;
|
||||||
|
case CSMachineAppleIIDiskControllerThirteenSector: target->disk_controller = Target::DiskController::ThirteenSector; break;
|
||||||
|
}
|
||||||
_targets.push_back(std::move(target));
|
_targets.push_back(std::move(target));
|
||||||
}
|
}
|
||||||
return self;
|
return self;
|
||||||
|
@ -17,29 +17,122 @@
|
|||||||
<window title="Window" allowsToolTipsWhenApplicationIsInactive="NO" autorecalculatesKeyViewLoop="NO" oneShot="NO" releasedWhenClosed="NO" showsToolbarButton="NO" visibleAtLaunch="NO" animationBehavior="default" titleVisibility="hidden" id="QvC-M9-y7g">
|
<window title="Window" allowsToolTipsWhenApplicationIsInactive="NO" autorecalculatesKeyViewLoop="NO" oneShot="NO" releasedWhenClosed="NO" showsToolbarButton="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="165"/>
|
<rect key="contentRect" x="196" y="240" width="600" height="204"/>
|
||||||
<rect key="screenRect" x="0.0" y="0.0" width="1366" height="768"/>
|
<rect key="screenRect" x="0.0" y="0.0" width="1366" height="768"/>
|
||||||
<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="165"/>
|
<rect key="frame" x="0.0" y="0.0" width="600" height="204"/>
|
||||||
<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">
|
||||||
|
<rect key="frame" x="499" 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"/>
|
||||||
|
<string key="keyEquivalent" base64-UTF8="YES">
|
||||||
|
DQ
|
||||||
|
</string>
|
||||||
|
</buttonCell>
|
||||||
|
<connections>
|
||||||
|
<action selector="createMachine:" target="-2" id="2wo-Zv-H4f"/>
|
||||||
|
</connections>
|
||||||
|
</button>
|
||||||
|
<button verticalHuggingPriority="750" translatesAutoresizingMaskIntoConstraints="NO" id="JQy-Cj-AOK">
|
||||||
|
<rect key="frame" x="418" 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"/>
|
||||||
|
<string key="keyEquivalent" base64-UTF8="YES">
|
||||||
|
Gw
|
||||||
|
</string>
|
||||||
|
</buttonCell>
|
||||||
|
<connections>
|
||||||
|
<action selector="cancelCreateMachine:" target="-2" id="lf8-PM-c0m"/>
|
||||||
|
</connections>
|
||||||
|
</button>
|
||||||
|
<textField verticalHuggingPriority="750" horizontalCompressionResistancePriority="250" translatesAutoresizingMaskIntoConstraints="NO" id="9YM-5x-pc0">
|
||||||
|
<rect key="frame" x="20" y="14" width="398" height="34"/>
|
||||||
|
<textFieldCell key="cell" allowsUndo="NO" sendsActionOnEndEditing="YES" id="xTm-Oy-oz5">
|
||||||
|
<font key="font" metaFont="system"/>
|
||||||
|
<string key="title">If you use File -> Open... to select a disk, tape or cartridge directly, the emulator will select and configure a machine for you.</string>
|
||||||
|
<color key="textColor" name="labelColor" catalog="System" colorSpace="catalog"/>
|
||||||
|
<color key="backgroundColor" name="controlColor" catalog="System" colorSpace="catalog"/>
|
||||||
|
</textFieldCell>
|
||||||
|
</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="100"/>
|
<rect key="frame" x="13" y="51" width="574" height="139"/>
|
||||||
<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">
|
||||||
<view key="view" id="dHz-Yv-GNq">
|
<view key="view" id="dHz-Yv-GNq">
|
||||||
<rect key="frame" x="10" y="33" width="554" height="54"/>
|
<rect key="frame" x="10" y="33" width="554" height="93"/>
|
||||||
<autoresizingMask key="autoresizingMask" widthSizable="YES" heightSizable="YES"/>
|
<autoresizingMask key="autoresizingMask" widthSizable="YES" heightSizable="YES"/>
|
||||||
|
<subviews>
|
||||||
|
<textField horizontalHuggingPriority="251" verticalHuggingPriority="750" translatesAutoresizingMaskIntoConstraints="NO" id="V5Z-dX-Ns4">
|
||||||
|
<rect key="frame" x="15" y="71" width="46" height="17"/>
|
||||||
|
<textFieldCell key="cell" scrollable="YES" lineBreakMode="clipping" sendsActionOnEndEditing="YES" title="Model:" id="qV3-2P-3JW">
|
||||||
|
<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="WnO-ef-IC6">
|
||||||
|
<rect key="frame" x="15" y="42" width="96" height="17"/>
|
||||||
|
<textFieldCell key="cell" scrollable="YES" lineBreakMode="clipping" sendsActionOnEndEditing="YES" title="Disk controller:" id="kbf-rc-Y4M">
|
||||||
|
<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="jli-ac-Sij">
|
||||||
|
<rect key="frame" x="65" y="66" width="91" height="26"/>
|
||||||
|
<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="menu"/>
|
||||||
|
<menu key="menu" id="esp-ir-7iH">
|
||||||
|
<items>
|
||||||
|
<menuItem title="Apple II" state="on" id="VBQ-JG-AeM"/>
|
||||||
|
<menuItem title="Apple II+" tag="1" id="Yme-Wn-Obh"/>
|
||||||
|
</items>
|
||||||
|
</menu>
|
||||||
|
</popUpButtonCell>
|
||||||
|
</popUpButton>
|
||||||
|
<popUpButton verticalHuggingPriority="750" translatesAutoresizingMaskIntoConstraints="NO" id="LSB-WP-FMi">
|
||||||
|
<rect key="frame" x="115" y="37" width="132" height="26"/>
|
||||||
|
<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="menu"/>
|
||||||
|
<menu key="menu" id="udQ-NK-FG8">
|
||||||
|
<items>
|
||||||
|
<menuItem title="Sixteen Sector" state="on" tag="16" id="QaV-Yr-k9o"/>
|
||||||
|
<menuItem title="Thirteen Sector" tag="13" id="7kj-PC-c6s"/>
|
||||||
|
<menuItem title="None" id="dM6-25-GFA"/>
|
||||||
|
</items>
|
||||||
|
</menu>
|
||||||
|
</popUpButtonCell>
|
||||||
|
</popUpButton>
|
||||||
|
</subviews>
|
||||||
|
<constraints>
|
||||||
|
<constraint firstItem="WnO-ef-IC6" firstAttribute="leading" secondItem="dHz-Yv-GNq" secondAttribute="leading" constant="17" id="5RF-1w-9HW"/>
|
||||||
|
<constraint firstAttribute="bottom" relation="greaterThanOrEqual" secondItem="LSB-WP-FMi" secondAttribute="bottom" constant="3" id="865-cv-qVk"/>
|
||||||
|
<constraint firstAttribute="trailing" relation="greaterThanOrEqual" secondItem="LSB-WP-FMi" secondAttribute="trailing" constant="17" id="9GL-al-1qi"/>
|
||||||
|
<constraint firstItem="WnO-ef-IC6" firstAttribute="centerY" secondItem="LSB-WP-FMi" secondAttribute="centerY" id="Fuj-zT-MIm"/>
|
||||||
|
<constraint firstAttribute="trailing" relation="greaterThanOrEqual" secondItem="jli-ac-Sij" secondAttribute="trailing" constant="17" id="I8d-OR-ICN"/>
|
||||||
|
<constraint firstItem="jli-ac-Sij" firstAttribute="top" secondItem="dHz-Yv-GNq" secondAttribute="top" constant="3" id="Qi1-CV-A0c"/>
|
||||||
|
<constraint firstItem="V5Z-dX-Ns4" firstAttribute="leading" secondItem="dHz-Yv-GNq" secondAttribute="leading" constant="17" id="SWc-iX-1We"/>
|
||||||
|
<constraint firstItem="LSB-WP-FMi" firstAttribute="leading" secondItem="WnO-ef-IC6" secondAttribute="trailing" constant="8" id="bte-XA-xNQ"/>
|
||||||
|
<constraint firstItem="LSB-WP-FMi" firstAttribute="top" secondItem="jli-ac-Sij" secondAttribute="bottom" constant="8" id="ki5-JR-vRe"/>
|
||||||
|
<constraint firstItem="jli-ac-Sij" firstAttribute="leading" secondItem="V5Z-dX-Ns4" secondAttribute="trailing" constant="8" id="qcd-pf-0T3"/>
|
||||||
|
<constraint firstItem="V5Z-dX-Ns4" firstAttribute="centerY" secondItem="jli-ac-Sij" secondAttribute="centerY" id="v25-BK-BoD"/>
|
||||||
|
</constraints>
|
||||||
</view>
|
</view>
|
||||||
</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="54"/>
|
<rect key="frame" x="10" y="33" width="554" height="93"/>
|
||||||
<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">
|
||||||
<rect key="frame" x="54" y="27" width="94" height="26"/>
|
<rect key="frame" x="54" y="66" width="94" height="26"/>
|
||||||
<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">
|
<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"/>
|
<behavior key="behavior" lightByBackground="YES" lightByGray="YES"/>
|
||||||
<font key="font" metaFont="menu"/>
|
<font key="font" metaFont="menu"/>
|
||||||
@ -53,7 +146,7 @@
|
|||||||
</popUpButtonCell>
|
</popUpButtonCell>
|
||||||
</popUpButton>
|
</popUpButton>
|
||||||
<textField horizontalHuggingPriority="251" verticalHuggingPriority="750" translatesAutoresizingMaskIntoConstraints="NO" id="q9q-sl-J0q">
|
<textField horizontalHuggingPriority="251" verticalHuggingPriority="750" translatesAutoresizingMaskIntoConstraints="NO" id="q9q-sl-J0q">
|
||||||
<rect key="frame" x="8" y="32" width="42" height="17"/>
|
<rect key="frame" x="8" y="71" width="42" height="17"/>
|
||||||
<textFieldCell key="cell" scrollable="YES" lineBreakMode="clipping" sendsActionOnEndEditing="YES" title="Model" id="Cw3-q5-1bC">
|
<textFieldCell key="cell" scrollable="YES" lineBreakMode="clipping" sendsActionOnEndEditing="YES" title="Model" id="Cw3-q5-1bC">
|
||||||
<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"/>
|
||||||
@ -73,18 +166,18 @@
|
|||||||
</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="54"/>
|
<rect key="frame" x="10" y="33" width="554" height="93"/>
|
||||||
<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="35" width="164" height="18"/>
|
<rect key="frame" x="15" y="74" 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="15" width="228" height="18"/>
|
<rect key="frame" x="15" y="54" 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"/>
|
||||||
@ -124,19 +217,19 @@
|
|||||||
</view>
|
</view>
|
||||||
</tabViewItem>
|
</tabViewItem>
|
||||||
<tabViewItem label="Oric" identifier="oric" id="NSx-DC-p4M">
|
<tabViewItem label="Oric" identifier="oric" id="NSx-DC-p4M">
|
||||||
<view key="view" misplaced="YES" id="sOR-e0-8iZ">
|
<view key="view" id="sOR-e0-8iZ">
|
||||||
<rect key="frame" x="10" y="33" width="554" height="54"/>
|
<rect key="frame" x="10" y="33" width="554" height="89"/>
|
||||||
<autoresizingMask key="autoresizingMask" widthSizable="YES" heightSizable="YES"/>
|
<autoresizingMask key="autoresizingMask" widthSizable="YES" heightSizable="YES"/>
|
||||||
<subviews>
|
<subviews>
|
||||||
<button verticalHuggingPriority="750" translatesAutoresizingMaskIntoConstraints="NO" id="mZw-PY-0Yv">
|
<button verticalHuggingPriority="750" translatesAutoresizingMaskIntoConstraints="NO" id="mZw-PY-0Yv">
|
||||||
<rect key="frame" x="15" y="15" width="129" height="18"/>
|
<rect key="frame" x="15" y="43" width="129" height="18"/>
|
||||||
<buttonCell key="cell" type="check" title="Attach Microdrive" bezelStyle="regularSquare" imagePosition="left" state="on" inset="2" id="Wl2-KO-smb">
|
<buttonCell key="cell" type="check" title="Attach Microdrive" bezelStyle="regularSquare" imagePosition="left" state="on" inset="2" id="Wl2-KO-smb">
|
||||||
<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>
|
||||||
<textField horizontalHuggingPriority="251" verticalHuggingPriority="750" translatesAutoresizingMaskIntoConstraints="NO" id="0ct-tf-uRH">
|
<textField horizontalHuggingPriority="251" verticalHuggingPriority="750" translatesAutoresizingMaskIntoConstraints="NO" id="0ct-tf-uRH">
|
||||||
<rect key="frame" x="17" y="41" width="42" height="17"/>
|
<rect key="frame" x="17" y="69" width="42" height="17"/>
|
||||||
<textFieldCell key="cell" scrollable="YES" lineBreakMode="clipping" sendsActionOnEndEditing="YES" title="Model" id="Xm1-7x-YVl">
|
<textFieldCell key="cell" scrollable="YES" lineBreakMode="clipping" sendsActionOnEndEditing="YES" title="Model" id="Xm1-7x-YVl">
|
||||||
<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"/>
|
||||||
@ -144,7 +237,7 @@
|
|||||||
</textFieldCell>
|
</textFieldCell>
|
||||||
</textField>
|
</textField>
|
||||||
<popUpButton verticalHuggingPriority="750" translatesAutoresizingMaskIntoConstraints="NO" id="ENP-hI-BVZ">
|
<popUpButton verticalHuggingPriority="750" translatesAutoresizingMaskIntoConstraints="NO" id="ENP-hI-BVZ">
|
||||||
<rect key="frame" x="63" y="36" width="105" height="26"/>
|
<rect key="frame" x="63" y="64" width="105" height="26"/>
|
||||||
<popUpButtonCell key="cell" type="push" title="Oric-1" bezelStyle="rounded" alignment="left" lineBreakMode="truncatingTail" state="on" borderStyle="borderAndBezel" tag="1" imageScaling="proportionallyDown" inset="2" selectedItem="jGN-1a-biF" id="Jll-EJ-cMr">
|
<popUpButtonCell key="cell" type="push" title="Oric-1" bezelStyle="rounded" alignment="left" lineBreakMode="truncatingTail" state="on" borderStyle="borderAndBezel" tag="1" imageScaling="proportionallyDown" inset="2" selectedItem="jGN-1a-biF" id="Jll-EJ-cMr">
|
||||||
<behavior key="behavior" lightByBackground="YES" lightByGray="YES"/>
|
<behavior key="behavior" lightByBackground="YES" lightByGray="YES"/>
|
||||||
<font key="font" metaFont="menu"/>
|
<font key="font" metaFont="menu"/>
|
||||||
@ -171,8 +264,8 @@
|
|||||||
</view>
|
</view>
|
||||||
</tabViewItem>
|
</tabViewItem>
|
||||||
<tabViewItem label="Vic-20" identifier="vic20" id="cyO-PU-hSU">
|
<tabViewItem label="Vic-20" identifier="vic20" id="cyO-PU-hSU">
|
||||||
<view key="view" misplaced="YES" id="fLI-XB-QCr">
|
<view key="view" id="fLI-XB-QCr">
|
||||||
<rect key="frame" x="10" y="33" width="554" height="54"/>
|
<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="ueK-gq-gaF">
|
<popUpButton verticalHuggingPriority="750" translatesAutoresizingMaskIntoConstraints="NO" id="ueK-gq-gaF">
|
||||||
@ -248,12 +341,12 @@
|
|||||||
</view>
|
</view>
|
||||||
</tabViewItem>
|
</tabViewItem>
|
||||||
<tabViewItem label="ZX80" identifier="zx80" id="tMH-kF-GUz">
|
<tabViewItem label="ZX80" identifier="zx80" id="tMH-kF-GUz">
|
||||||
<view key="view" misplaced="YES" id="8hL-Vn-Hg0">
|
<view key="view" id="8hL-Vn-Hg0">
|
||||||
<rect key="frame" x="10" y="33" width="554" height="54"/>
|
<rect key="frame" x="10" y="33" width="554" height="93"/>
|
||||||
<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="102" y="34" width="114" height="26"/>
|
<rect key="frame" x="102" y="66" width="114" height="26"/>
|
||||||
<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"/>
|
||||||
@ -267,7 +360,7 @@
|
|||||||
</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="39" width="83" height="17"/>
|
<rect key="frame" x="15" y="71" width="83" 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"/>
|
||||||
@ -275,7 +368,7 @@
|
|||||||
</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="15" width="114" height="18"/>
|
<rect key="frame" x="15" y="47" 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"/>
|
||||||
@ -335,41 +428,6 @@
|
|||||||
</tabViewItem>
|
</tabViewItem>
|
||||||
</tabViewItems>
|
</tabViewItems>
|
||||||
</tabView>
|
</tabView>
|
||||||
<button verticalHuggingPriority="750" translatesAutoresizingMaskIntoConstraints="NO" id="hKn-1l-OSN">
|
|
||||||
<rect key="frame" x="499" 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"/>
|
|
||||||
<string key="keyEquivalent" base64-UTF8="YES">
|
|
||||||
DQ
|
|
||||||
</string>
|
|
||||||
</buttonCell>
|
|
||||||
<connections>
|
|
||||||
<action selector="createMachine:" target="-2" id="2wo-Zv-H4f"/>
|
|
||||||
</connections>
|
|
||||||
</button>
|
|
||||||
<button verticalHuggingPriority="750" translatesAutoresizingMaskIntoConstraints="NO" id="JQy-Cj-AOK">
|
|
||||||
<rect key="frame" x="418" 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"/>
|
|
||||||
<string key="keyEquivalent" base64-UTF8="YES">
|
|
||||||
Gw
|
|
||||||
</string>
|
|
||||||
</buttonCell>
|
|
||||||
<connections>
|
|
||||||
<action selector="cancelCreateMachine:" target="-2" id="lf8-PM-c0m"/>
|
|
||||||
</connections>
|
|
||||||
</button>
|
|
||||||
<textField verticalHuggingPriority="750" horizontalCompressionResistancePriority="250" translatesAutoresizingMaskIntoConstraints="NO" id="9YM-5x-pc0">
|
|
||||||
<rect key="frame" x="20" y="14" width="398" height="34"/>
|
|
||||||
<textFieldCell key="cell" allowsUndo="NO" sendsActionOnEndEditing="YES" id="xTm-Oy-oz5">
|
|
||||||
<font key="font" metaFont="system"/>
|
|
||||||
<string key="title">If you use File -> Open... to select a disk, tape or cartridge directly, the emulator will select and configure a machine for you.</string>
|
|
||||||
<color key="textColor" name="labelColor" catalog="System" colorSpace="catalog"/>
|
|
||||||
<color key="backgroundColor" name="controlColor" catalog="System" colorSpace="catalog"/>
|
|
||||||
</textFieldCell>
|
|
||||||
</textField>
|
|
||||||
</subviews>
|
</subviews>
|
||||||
<constraints>
|
<constraints>
|
||||||
<constraint firstAttribute="trailing" secondItem="VUb-QG-x7c" secondAttribute="trailing" constant="20" id="Bem-7v-AY6"/>
|
<constraint firstAttribute="trailing" secondItem="VUb-QG-x7c" secondAttribute="trailing" constant="20" id="Bem-7v-AY6"/>
|
||||||
@ -390,6 +448,8 @@ Gw
|
|||||||
</window>
|
</window>
|
||||||
<customObject id="192-Eb-Rpg" customClass="MachinePicker" customModule="Clock_Signal" customModuleProvider="target">
|
<customObject id="192-Eb-Rpg" customClass="MachinePicker" customModule="Clock_Signal" customModuleProvider="target">
|
||||||
<connections>
|
<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="cpcModelTypeButton" destination="00d-sg-Krh" id="VyV-b1-A6x"/>
|
<outlet property="cpcModelTypeButton" destination="00d-sg-Krh" id="VyV-b1-A6x"/>
|
||||||
<outlet property="electronADFSButton" destination="945-wU-JOH" id="Fjm-W8-kvh"/>
|
<outlet property="electronADFSButton" destination="945-wU-JOH" id="Fjm-W8-kvh"/>
|
||||||
<outlet property="electronDFSButton" destination="JqM-IK-FMP" id="C80-1k-TdQ"/>
|
<outlet property="electronDFSButton" destination="JqM-IK-FMP" id="C80-1k-TdQ"/>
|
||||||
|
@ -11,6 +11,10 @@ import Cocoa
|
|||||||
class MachinePicker: NSObject {
|
class MachinePicker: NSObject {
|
||||||
@IBOutlet var machineSelector: NSTabView?
|
@IBOutlet var machineSelector: NSTabView?
|
||||||
|
|
||||||
|
// MARK: - Apple II properties
|
||||||
|
@IBOutlet var appleIIModelButton: NSPopUpButton?
|
||||||
|
@IBOutlet var appleIIDiskControllerButton: NSPopUpButton?
|
||||||
|
|
||||||
// MARK: - Electron properties
|
// MARK: - Electron properties
|
||||||
@IBOutlet var electronDFSButton: NSButton?
|
@IBOutlet var electronDFSButton: NSButton?
|
||||||
@IBOutlet var electronADFSButton: NSButton?
|
@IBOutlet var electronADFSButton: NSButton?
|
||||||
@ -46,6 +50,10 @@ class MachinePicker: NSObject {
|
|||||||
machineSelector?.selectTabViewItem(withIdentifier: machineIdentifier as Any)
|
machineSelector?.selectTabViewItem(withIdentifier: machineIdentifier as Any)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// Apple II settings
|
||||||
|
appleIIModelButton?.selectItem(withTag: standardUserDefaults.integer(forKey: "new.appleIIModel"))
|
||||||
|
appleIIDiskControllerButton?.selectItem(withTag: standardUserDefaults.integer(forKey: "new.appleIIDiskController"))
|
||||||
|
|
||||||
// Electron settings
|
// Electron settings
|
||||||
electronDFSButton?.state = standardUserDefaults.bool(forKey: "new.electronDFS") ? .on : .off
|
electronDFSButton?.state = standardUserDefaults.bool(forKey: "new.electronDFS") ? .on : .off
|
||||||
electronADFSButton?.state = standardUserDefaults.bool(forKey: "new.electronADFS") ? .on : .off
|
electronADFSButton?.state = standardUserDefaults.bool(forKey: "new.electronADFS") ? .on : .off
|
||||||
@ -79,6 +87,10 @@ class MachinePicker: NSObject {
|
|||||||
// Machine type
|
// Machine type
|
||||||
standardUserDefaults.set(machineSelector!.selectedTabViewItem!.identifier as! String, forKey: "new.machine")
|
standardUserDefaults.set(machineSelector!.selectedTabViewItem!.identifier as! String, forKey: "new.machine")
|
||||||
|
|
||||||
|
// Apple II settings
|
||||||
|
standardUserDefaults.set(appleIIModelButton!.selectedTag(), forKey: "new.appleIIModel")
|
||||||
|
standardUserDefaults.set(appleIIDiskControllerButton!.selectedTag(), forKey: "new.appleIIDiskController")
|
||||||
|
|
||||||
// Electron settings
|
// Electron settings
|
||||||
standardUserDefaults.set(electronDFSButton!.state == .on, forKey: "new.electronDFS")
|
standardUserDefaults.set(electronDFSButton!.state == .on, forKey: "new.electronDFS")
|
||||||
standardUserDefaults.set(electronADFSButton!.state == .on, forKey: "new.electronADFS")
|
standardUserDefaults.set(electronADFSButton!.state == .on, forKey: "new.electronADFS")
|
||||||
@ -115,7 +127,22 @@ class MachinePicker: NSObject {
|
|||||||
return CSStaticAnalyser(electronDFS: electronDFSButton!.state == .on, adfs: electronADFSButton!.state == .on)!
|
return CSStaticAnalyser(electronDFS: electronDFSButton!.state == .on, adfs: electronADFSButton!.state == .on)!
|
||||||
|
|
||||||
case "appleii":
|
case "appleii":
|
||||||
return CSStaticAnalyser(appleII: ())
|
var model: CSMachineAppleIIModel = .appleII
|
||||||
|
switch appleIIModelButton!.selectedTag() {
|
||||||
|
case 1: model = .appleIIPlus
|
||||||
|
case 0: fallthrough
|
||||||
|
default: model = .appleII
|
||||||
|
}
|
||||||
|
|
||||||
|
var diskController: CSMachineAppleIIDiskController = .none
|
||||||
|
switch appleIIDiskControllerButton!.selectedTag() {
|
||||||
|
case 13: diskController = .thirteenSector
|
||||||
|
case 16: diskController = .sixteenSector
|
||||||
|
case 0: fallthrough
|
||||||
|
default: diskController = .none
|
||||||
|
}
|
||||||
|
|
||||||
|
return CSStaticAnalyser(appleIIModel: model, diskController: diskController)
|
||||||
|
|
||||||
case "cpc":
|
case "cpc":
|
||||||
switch cpcModelTypeButton!.selectedItem!.tag {
|
switch cpcModelTypeButton!.selectedItem!.tag {
|
||||||
|
Loading…
Reference in New Issue
Block a user