private void UpdateBasicOptions(bool usesBasic)
 {
     if (usesBasic && (Basic == null))
     {
         Basic = BasicOptions.First(c => c.Flags == (uint)KeyboardComponentFeatures.BasicTolerated);
     }
 }
 private void UpdateCompatibility(KeyboardComponentFeatures compatibility)
 {
     EnableFeatureEditing          = compatibility.HasFlag(KeyboardComponentFeatures.Enhances);
     EnableCassetteOptionSelection = EnableFeatureEditing && UsesCassette;
     if (!EnableFeatureEditing)
     {
         UsesCassette   = false;
         UsesPrinter    = false;
         UsesMicrophone = false;
         Basic          = null;
     }
     else
     {
         if (Basic == null)
         {
             Basic = BasicOptions.First(b => b.Flags == (uint)KeyboardComponentFeatures.BasicTolerated);
         }
         if (compatibility == KeyboardComponentFeatures.Enhances)
         {
             if ((Basic != null) && (Basic.Flags == (uint)KeyboardComponentFeatures.BasicRequired))
             {
                 Basic = BasicOptions.First(b => b.Flags == (uint)KeyboardComponentFeatures.BasicTolerated);
             }
             if ((Cassette != null) && (Cassette.Flags == (uint)KeyboardComponentFeatures.TapeRequired))
             {
                 Cassette = CassetteOptions.First(c => c.Flags == (uint)KeyboardComponentFeatures.TapeOptional);
             }
         }
     }
 }