+20191202 4.x.x
+ - Fix to prevent sending floppy geometry mode page when not configured as
+ a floppy (Thanks Landon Rodgers)
+ - Fix for VMS 5.5-2 Inquiry allocation lengths. Requires setting "vms" quirk
+ mode in the XML config (Thanks Landon Rodgers)
+
20190610 4.8.3
- Improve XEBEC controller support
- Add Flexible Disk Drive Geometry SCSI MODE page
// Copyright (C) 2013 Michael McMaster <michael@codesrc.com>
+// Copyright (C) 2019 Landon Rodgers <g.landon.rodgers@gmail.com>
//
// This file is part of SCSI2SD.
//
if (scsiDev.phase == DATA_IN)
{
+ // VAX workaround
+ if (allocationLength == 255 &&
+ (scsiDev.target->cfg->quirks & CONFIG_QUIRKS_VMS))
+ {
+ allocationLength = 254;
+ }
+
// "real" hard drives send back exactly allocationLenth bytes, padded
// with zeroes. This only seems to happen for Inquiry responses, and not
// other commands that also supply an allocation length such as Mode Sense or
CONFIG_QUIRKS_NONE = 0,
CONFIG_QUIRKS_APPLE = 1,
CONFIG_QUIRKS_OMTI = 2,
- CONFIG_QUIRKS_XEBEC = 4
+ CONFIG_QUIRKS_XEBEC = 4,
+ CONFIG_QUIRKS_VMS = 8
} CONFIG_QUIRKS;
typedef enum
" apple\t\tReturns Apple-specific mode pages\n" <<
" omti\t\tOMTI host non-standard link control\n" <<
" xebec\t\tXEBEC ignore step options in control byte\n" <<
+ " vms\t\tVMS output max 254 bytes inquiry data\n" <<
" ********************************************************* -->\n" <<
" <quirks>";
if (config.quirks == CONFIG_QUIRKS_APPLE)
{
s << "xebec";
}
+ else if (config.quirks == CONFIG_QUIRKS_VMS)
+ {
+ s << "vms";
+ }
s <<
"</quirks>\n" <<
{
result.quirks |= CONFIG_QUIRKS_XEBEC;
}
+ else if (quirk == "vms")
+ {
+ result.quirks |= CONFIG_QUIRKS_VMS;
+ }
}
}
else if (child->GetName() == "deviceType")