Skip to content

Commit

Permalink
Merge pull request #1460 from TomHarte/Plus4DriveSelection
Browse files Browse the repository at this point in the history
Add C1541 button to mac UI; respect Target setting.
  • Loading branch information
TomHarte authored Jan 21, 2025
2 parents 5763eab + 20cecf4 commit dad9777
Show file tree
Hide file tree
Showing 5 changed files with 67 additions and 59 deletions.
7 changes: 2 additions & 5 deletions Machines/Commodore/Plus4/Plus4.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -187,13 +187,10 @@ class ConcreteMachine:
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);
}

Expand All @@ -211,7 +208,7 @@ class ConcreteMachine:

video_map_.page<PagerSide::ReadWrite, 0, 65536>(ram_.data());

if(has_c1541) {
if(target.has_c1541) {
c1541_ = std::make_unique<C1540::Machine>(C1540::Personality::C1541, roms);
c1541_->set_serial_bus(serial_bus_);
Serial::attach(serial_port_, serial_bus_);
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -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;
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -160,11 +160,12 @@ - (instancetype)initWithAtariSTMemorySize:(Kilobytes)memorySize {
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>();
target->has_c1541 = hasC1541;
_targets.push_back(std::move(target));
}
return self;
Expand Down
Loading

0 comments on commit dad9777

Please sign in to comment.