From 20cecf47021500bac6755b92b6eda0a3288c8216 Mon Sep 17 00:00:00 2001 From: Thomas Harte Date: Mon, 20 Jan 2025 22:02:35 -0500 Subject: [PATCH] Add C1541 button to mac UI; respect Target setting. --- Machines/Commodore/Plus4/Plus4.cpp | 7 +- .../Machine/StaticAnalyser/CSStaticAnalyser.h | 2 +- .../StaticAnalyser/CSStaticAnalyser.mm | 3 +- .../Base.lproj/MachinePicker.xib | 102 +++++++++--------- .../MachinePicker/MachinePicker.swift | 12 ++- 5 files changed, 67 insertions(+), 59 deletions(-) diff --git a/Machines/Commodore/Plus4/Plus4.cpp b/Machines/Commodore/Plus4/Plus4.cpp index 7349a2d3c..07b36b25f 100644 --- a/Machines/Commodore/Plus4/Plus4.cpp +++ b/Machines/Commodore/Plus4/Plus4.cpp @@ -187,13 +187,10 @@ public: set_clock_rate(clock); speaker_.set_input_rate(float(clock)); - // TODO: decide whether to attach a 1541 for real. - const bool has_c1541 = true; - const auto kernel = ROM::Name::Plus4KernelPALv5; const auto basic = ROM::Name::Plus4BASIC; ROM::Request request = ROM::Request(basic) && ROM::Request(kernel); - if(has_c1541) { + if(target.has_c1541) { request = request && C1540::Machine::rom_request(C1540::Personality::C1541); } @@ -211,7 +208,7 @@ public: video_map_.page(ram_.data()); - if(has_c1541) { + if(target.has_c1541) { c1541_ = std::make_unique(C1540::Personality::C1541, roms); c1541_->set_serial_bus(serial_bus_); Serial::attach(serial_port_, serial_bus_); diff --git a/OSBindings/Mac/Clock Signal/Machine/StaticAnalyser/CSStaticAnalyser.h b/OSBindings/Mac/Clock Signal/Machine/StaticAnalyser/CSStaticAnalyser.h index f9b422f5e..fd5c0da00 100644 --- a/OSBindings/Mac/Clock Signal/Machine/StaticAnalyser/CSStaticAnalyser.h +++ b/OSBindings/Mac/Clock Signal/Machine/StaticAnalyser/CSStaticAnalyser.h @@ -150,7 +150,7 @@ typedef int Kilobytes; - (instancetype)initWithAppleIIgsModel:(CSMachineAppleIIgsModel)model memorySize:(Kilobytes)memorySize; - (instancetype)initWithArchimedesModel:(CSMachineArchimedesModel)model; - (instancetype)initWithAtariSTMemorySize:(Kilobytes)memorySize; -- (instancetype)initWithCommodoreTEDModel:(CSMachineCommodoreTEDModel)model; +- (instancetype)initWithCommodoreTEDModel:(CSMachineCommodoreTEDModel)model hasC1541:(BOOL)hasC1541; - (instancetype)initWithElectronDFS:(BOOL)dfs adfs:(BOOL)adfs ap6:(BOOL)ap6 sidewaysRAM:(BOOL)sidewaysRAM; - (instancetype)initWithEnterpriseModel:(CSMachineEnterpriseModel)model speed:(CSMachineEnterpriseSpeed)speed exosVersion:(CSMachineEnterpriseEXOS)exosVersion basicVersion:(CSMachineEnterpriseBASIC)basicVersion dos:(CSMachineEnterpriseDOS)dos; - (instancetype)initWithMacintoshModel:(CSMachineMacintoshModel)model; diff --git a/OSBindings/Mac/Clock Signal/Machine/StaticAnalyser/CSStaticAnalyser.mm b/OSBindings/Mac/Clock Signal/Machine/StaticAnalyser/CSStaticAnalyser.mm index 20f62f4be..75f865df3 100644 --- a/OSBindings/Mac/Clock Signal/Machine/StaticAnalyser/CSStaticAnalyser.mm +++ b/OSBindings/Mac/Clock Signal/Machine/StaticAnalyser/CSStaticAnalyser.mm @@ -160,11 +160,12 @@ return self; } -- (instancetype)initWithCommodoreTEDModel:(CSMachineCommodoreTEDModel)model { +- (instancetype)initWithCommodoreTEDModel:(CSMachineCommodoreTEDModel)model hasC1541:(BOOL)hasC1541 { self = [super init]; if(self) { using Target = Analyser::Static::Commodore::Plus4Target; auto target = std::make_unique(); + target->has_c1541 = hasC1541; _targets.push_back(std::move(target)); } return self; diff --git a/OSBindings/Mac/Clock Signal/MachinePicker/Base.lproj/MachinePicker.xib b/OSBindings/Mac/Clock Signal/MachinePicker/Base.lproj/MachinePicker.xib index 49c648112..73422b798 100644 --- a/OSBindings/Mac/Clock Signal/MachinePicker/Base.lproj/MachinePicker.xib +++ b/OSBindings/Mac/Clock Signal/MachinePicker/Base.lproj/MachinePicker.xib @@ -18,7 +18,7 @@ - + @@ -49,7 +49,7 @@ Gw - + @@ -104,7 +104,7 @@ Gw - + @@ -135,7 +135,7 @@ Gw - + @@ -143,7 +143,7 @@ Gw - + @@ -202,7 +202,7 @@ Gw - + @@ -226,7 +226,7 @@ Gw - + @@ -234,7 +234,7 @@ Gw - + @@ -301,7 +301,7 @@ Gw - + @@ -309,7 +309,7 @@ Gw - + @@ -366,7 +366,7 @@ Gw - + @@ -388,7 +388,7 @@ Gw - + @@ -426,50 +426,49 @@ Gw - - - - - - - - + - - - + + + - +