public static string PrettifyHPModePage_3E(HP_ModePage_3E?modePage) { if (!modePage.HasValue) { return(null); } HP_ModePage_3E page = modePage.Value; StringBuilder sb = new StringBuilder(); sb.AppendLine("HP CD-ROM Emulation/Disaster Recovery Mode Page:"); if (page.PS) { sb.AppendLine("\tParameters can be saved"); } sb.AppendLine(page.CDmode ? "\tDrive is emulating a CD-ROM drive" : "\tDrive is not emulating a CD-ROM drive"); if (page.NonAuto) { sb.AppendLine("\tDrive will not exit emulation automatically"); } return(sb.ToString()); }
public static HP_ModePage_3E?DecodeHPModePage_3E(byte[] pageResponse) { if ((pageResponse?[0] &0x40) == 0x40) { return(null); } if ((pageResponse?[0] &0x3F) != 0x3E) { return(null); } if (pageResponse[1] + 2 != pageResponse.Length) { return(null); } if (pageResponse.Length != 4) { return(null); } HP_ModePage_3E decoded = new HP_ModePage_3E(); decoded.PS |= (pageResponse[0] & 0x80) == 0x80; decoded.NonAuto |= (pageResponse[2] & 0x02) == 0x02; decoded.CDmode |= (pageResponse[2] & 0x01) == 0x01; return(decoded); }