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();
 			}