diff --git a/OSBindings/Mac/Clock Signal/Machine/StaticAnalyser/CSStaticAnalyser.h b/OSBindings/Mac/Clock Signal/Machine/StaticAnalyser/CSStaticAnalyser.h index 988fd9075..c9f89e5ab 100644 --- a/OSBindings/Mac/Clock Signal/Machine/StaticAnalyser/CSStaticAnalyser.h +++ b/OSBindings/Mac/Clock Signal/Machine/StaticAnalyser/CSStaticAnalyser.h @@ -47,6 +47,11 @@ typedef NS_ENUM(NSInteger, CSMachineEnterpriseModel) { CSMachineEnterpriseModel256, }; +typedef NS_ENUM(NSInteger, CSMachineEnterpriseSpeed) { + CSMachineEnterpriseSpeed4MHz, + CSMachineEnterpriseSpeed6MHz +}; + typedef NS_ENUM(NSInteger, CSMachineEnterpriseEXOS) { CSMachineEnterpriseEXOSVersion21, CSMachineEnterpriseEXOSVersion20, @@ -120,7 +125,7 @@ typedef int Kilobytes; - (instancetype)initWithAppleIIgsModel:(CSMachineAppleIIgsModel)model memorySize:(Kilobytes)memorySize; - (instancetype)initWithAtariSTModel:(CSMachineAtariSTModel)model; - (instancetype)initWithElectronDFS:(BOOL)dfs adfs:(BOOL)adfs ap6:(BOOL)ap6 sidewaysRAM:(BOOL)sidewaysRAM; -- (instancetype)initWithEnterpriseModel:(CSMachineEnterpriseModel)model exosVersion:(CSMachineEnterpriseEXOS)exosVersion basicVersion:(CSMachineEnterpriseBASIC)basicVersion dos:(CSMachineEnterpriseDOS)dos; +- (instancetype)initWithEnterpriseModel:(CSMachineEnterpriseModel)model speed:(CSMachineEnterpriseSpeed)speed exosVersion:(CSMachineEnterpriseEXOS)exosVersion basicVersion:(CSMachineEnterpriseBASIC)basicVersion dos:(CSMachineEnterpriseDOS)dos; - (instancetype)initWithMacintoshModel:(CSMachineMacintoshModel)model; - (instancetype)initWithMSXRegion:(CSMachineMSXRegion)region hasDiskDrive:(BOOL)hasDiskDrive; - (instancetype)initWithOricModel:(CSMachineOricModel)model diskInterface:(CSMachineOricDiskInterface)diskInterface; diff --git a/OSBindings/Mac/Clock Signal/Machine/StaticAnalyser/CSStaticAnalyser.mm b/OSBindings/Mac/Clock Signal/Machine/StaticAnalyser/CSStaticAnalyser.mm index e50217f91..653b94b0e 100644 --- a/OSBindings/Mac/Clock Signal/Machine/StaticAnalyser/CSStaticAnalyser.mm +++ b/OSBindings/Mac/Clock Signal/Machine/StaticAnalyser/CSStaticAnalyser.mm @@ -131,7 +131,7 @@ return self; } -- (instancetype)initWithEnterpriseModel:(CSMachineEnterpriseModel)model exosVersion:(CSMachineEnterpriseEXOS)exosVersion basicVersion:(CSMachineEnterpriseBASIC)basicVersion dos:(CSMachineEnterpriseDOS)dos { +- (instancetype)initWithEnterpriseModel:(CSMachineEnterpriseModel)model speed:(CSMachineEnterpriseSpeed)speed exosVersion:(CSMachineEnterpriseEXOS)exosVersion basicVersion:(CSMachineEnterpriseBASIC)basicVersion dos:(CSMachineEnterpriseDOS)dos { self = [super init]; if(self) { using Target = Analyser::Static::Enterprise::Target; @@ -144,6 +144,12 @@ case CSMachineEnterpriseModel256: target->model = Target::Model::Enterprise256; break; } + switch(speed) { + case CSMachineEnterpriseSpeed6MHz: target->speed = Target::Speed::SixMHz; break; + default: + case CSMachineEnterpriseSpeed4MHz: target->speed = Target::Speed::FourMHz; break; + } + switch(exosVersion) { case CSMachineEnterpriseEXOSVersion21: target->exos_version = Target::EXOSVersion::v21; break; default: diff --git a/OSBindings/Mac/Clock Signal/MachinePicker/Base.lproj/MachinePicker.xib b/OSBindings/Mac/Clock Signal/MachinePicker/Base.lproj/MachinePicker.xib index 494e5dcdc..ab57d994b 100644 --- a/OSBindings/Mac/Clock Signal/MachinePicker/Base.lproj/MachinePicker.xib +++ b/OSBindings/Mac/Clock Signal/MachinePicker/Base.lproj/MachinePicker.xib @@ -322,8 +322,21 @@ Gw + + + + + + + + + + + + + - + @@ -337,7 +350,7 @@ Gw - + @@ -352,20 +365,20 @@ Gw - - + + - - + + - + @@ -381,7 +394,7 @@ Gw - + @@ -389,13 +402,21 @@ Gw - + + + + + + + + + @@ -403,11 +424,13 @@ Gw + + @@ -415,11 +438,13 @@ Gw - + + + @@ -874,6 +899,7 @@ Gw + diff --git a/OSBindings/Mac/Clock Signal/MachinePicker/MachinePicker.swift b/OSBindings/Mac/Clock Signal/MachinePicker/MachinePicker.swift index 970200e2a..5927ef1c6 100644 --- a/OSBindings/Mac/Clock Signal/MachinePicker/MachinePicker.swift +++ b/OSBindings/Mac/Clock Signal/MachinePicker/MachinePicker.swift @@ -38,6 +38,7 @@ class MachinePicker: NSObject, NSTableViewDataSource, NSTableViewDelegate { // MARK: - Enterprise properties @IBOutlet var enterpriseModelButton: NSPopUpButton! + @IBOutlet var enterpriseSpeedButton: NSPopUpButton! @IBOutlet var enterpriseEXOSButton: NSPopUpButton! @IBOutlet var enterpriseBASICButton: NSPopUpButton! @IBOutlet var enterpriseDOSButton: NSPopUpButton! @@ -110,6 +111,7 @@ class MachinePicker: NSObject, NSTableViewDataSource, NSTableViewDelegate { // Enterprise settings enterpriseModelButton.selectItem(withTag: standardUserDefaults.integer(forKey: "new.enterpriseModel")) + enterpriseSpeedButton.selectItem(withTag: standardUserDefaults.integer(forKey: "new.enterpriseSpeed")) enterpriseEXOSButton.selectItem(withTag: standardUserDefaults.integer(forKey: "new.enterpriseEXOSVersion")) enterpriseBASICButton.selectItem(withTag: standardUserDefaults.integer(forKey: "new.enterpriseBASICVersion")) enterpriseDOSButton.selectItem(withTag: standardUserDefaults.integer(forKey: "new.enterpriseDOS")) @@ -166,6 +168,7 @@ class MachinePicker: NSObject, NSTableViewDataSource, NSTableViewDelegate { // Enterprise settings standardUserDefaults.set(enterpriseModelButton.selectedTag(), forKey: "new.enterpriseModel") + standardUserDefaults.set(enterpriseSpeedButton.selectedTag(), forKey: "new.enterpriseSpeed") standardUserDefaults.set(enterpriseEXOSButton.selectedTag(), forKey: "new.enterpriseEXOSVersion") standardUserDefaults.set(enterpriseBASICButton.selectedTag(), forKey: "new.enterpriseBASICVersion") standardUserDefaults.set(enterpriseDOSButton.selectedTag(), forKey: "new.enterpriseDOS") @@ -283,6 +286,13 @@ class MachinePicker: NSObject, NSTableViewDataSource, NSTableViewDelegate { default: model = .model128 } + var speed: CSMachineEnterpriseSpeed = .speed4MHz + switch enterpriseModelButton.selectedItem!.tag { + case 6: speed = .speed6MHz + case 4: fallthrough + default: speed = .speed4MHz + } + var exos: CSMachineEnterpriseEXOS = .version21 switch enterpriseEXOSButton.selectedItem!.tag { case 10: exos = .version10 @@ -307,7 +317,7 @@ class MachinePicker: NSObject, NSTableViewDataSource, NSTableViewDelegate { default: dos = .dosNone } - return CSStaticAnalyser(enterpriseModel: model, exosVersion: exos, basicVersion: basic, dos: dos) + return CSStaticAnalyser(enterpriseModel: model, speed: speed, exosVersion: exos, basicVersion: basic, dos: dos) case "mac": switch macintoshModelTypeButton.selectedItem!.tag {