diff --git a/Analyser/Static/AppleII/StaticAnalyser.cpp b/Analyser/Static/AppleII/StaticAnalyser.cpp index 5c5933e32..3f379cf47 100644 --- a/Analyser/Static/AppleII/StaticAnalyser.cpp +++ b/Analyser/Static/AppleII/StaticAnalyser.cpp @@ -22,6 +22,7 @@ Analyser::Static::TargetList Analyser::Static::AppleII::GetTargets(const Media & // any mass storage is present. if(!target->media.mass_storage_devices.empty()) { target->model = Target::Model::EnhancedIIe; + target->scsi_controller = Target::SCSIController::AppleSCSI; } TargetList targets; diff --git a/Analyser/Static/AppleII/Target.hpp b/Analyser/Static/AppleII/Target.hpp index 733d7b79a..030b81947 100644 --- a/Analyser/Static/AppleII/Target.hpp +++ b/Analyser/Static/AppleII/Target.hpp @@ -29,16 +29,24 @@ struct Target: public Analyser::Static::Target, public Reflection::StructImpl<Ta SixteenSector, ThirteenSector ); + ReflectableEnum(SCSIController, + None, + AppleSCSI + ); Model model = Model::IIe; DiskController disk_controller = DiskController::None; + SCSIController scsi_controller = SCSIController::None; Target() : Analyser::Static::Target(Machine::AppleII) { if(needs_declare()) { DeclareField(model); DeclareField(disk_controller); + DeclareField(scsi_controller); + AnnounceEnum(Model); AnnounceEnum(DiskController); + AnnounceEnum(SCSIController); } } }; diff --git a/Machines/Apple/AppleII/AppleII.cpp b/Machines/Apple/AppleII/AppleII.cpp index 136c9beb1..d99f31147 100644 --- a/Machines/Apple/AppleII/AppleII.cpp +++ b/Machines/Apple/AppleII/AppleII.cpp @@ -483,7 +483,7 @@ template <Analyser::Static::AppleII::Target::Model model> class ConcreteMachine: } // Add a SCSI card if requested. - const bool has_scsi_card = true; // TODO: obtain via the target. + const bool has_scsi_card = target.scsi_controller == Target::SCSIController::AppleSCSI; if(has_scsi_card) { request = request && SCSICard::rom_request(); }