ZuluSCSI_presets.cpp 1.4 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455
  1. #include "ZuluSCSI_presets.h"
  2. #include "ZuluSCSI_disk.h"
  3. #include "ZuluSCSI_log.h"
  4. #include "ZuluSCSI_config.h"
  5. #include <strings.h>
  6. // Helper function for case-insensitive string compare
  7. static bool strequals(const char *a, const char *b)
  8. {
  9. return strcasecmp(a, b) == 0;
  10. }
  11. preset_config_t getSystemPreset(const char *presetName)
  12. {
  13. // Default configuration
  14. preset_config_t cfg = {};
  15. cfg.quirks = S2S_CFG_QUIRKS_NONE;
  16. cfg.deviceTypeModifier = 0;
  17. cfg.sectorsPerTrack = 63;
  18. cfg.headsPerCylinder = 255;
  19. cfg.prefetchBytes = PREFETCH_BUFFER_SIZE;
  20. cfg.selectionDelay = 255;
  21. cfg.maxSyncSpeed = 10;
  22. cfg.enableUnitAttention = false;
  23. cfg.enableSCSI2 = true;
  24. cfg.enableSelLatch = false;
  25. cfg.mapLunsToIDs = false;
  26. cfg.enableParity = true;
  27. // System-specific defaults
  28. if (strequals(presetName, ""))
  29. {
  30. // Preset name is empty, use default configuration
  31. }
  32. else if (strequals(presetName, "Mac"))
  33. {
  34. cfg.presetName = "Mac";
  35. cfg.quirks = S2S_CFG_QUIRKS_APPLE;
  36. }
  37. else if (strequals(presetName, "MacPlus"))
  38. {
  39. cfg.presetName = "MacPlus";
  40. cfg.quirks = S2S_CFG_QUIRKS_APPLE;
  41. cfg.enableSelLatch = true;
  42. cfg.enableSCSI2 = false;
  43. cfg.selectionDelay = 0;
  44. }
  45. else
  46. {
  47. logmsg("Unknown preset name ", presetName, ", using default settings");
  48. }
  49. return cfg;
  50. }