<?xml version="1.0" encoding="utf-8" standalone="no"?>
<!DOCTYPE featureDefinitions SYSTEM "../featureDefinitions.dtd">

<featureDefinitions name="Oscillator3" iconName="oscillator" helpIndex="">

  <userControlGroup name="none" caption="none">
    <userControlSubGroup name="none" caption="none">
      <userControl name="applyButton">
        <dialogConfig type="applyButton" caption="none"/>
        <userAction name="apply">
          <claimResource type="pin" pin="OSC1" polarity="Inp"/>
        </userAction>
      </userControl>
    </userControlSubGroup>
  </userControlGroup>

  <userControlGroup name="PrimaryOscSettings" caption="Primary Oscillator Settings">
    <userControlSubGroup name="none" caption="none">
      <userControl name="ClockFreq">
        <dialogConfig type="TB" caption="System Clock Frequency"/>
        <userAction>
          <!-- this is needed for baud calc and should just be stored -->
        </userAction>
      </userControl>

      <userControl type="readOnly" name="Fcy">
        <dialogConfig type="general" caption="Fcy"></dialogConfig>
        <userAction>
        </userAction>
      </userControl>

      <userControl name="ShowAdvanced">
        <dialogConfig type="CK" caption="View Advanced Oscillator Settings"/>
        <userAction name="enable">
          <!-- what to do here????? -->
        </userAction>
        <userAction name="disable">
        </userAction>
      </userControl>
    </userControlSubGroup>
  </userControlGroup>

  <userControlGroup name="AdvancedOscGroup" caption="Advanced Oscillator Settings">
    <userControlSubGroup name="none" caption="none">

      <userControl name="ClockSrc">
        <dialogConfig type="CB" caption="Clock Source">
          <selection name="primOsc" value="Primary With PLL"/>
          <selection name="alternateOsc" value="Primary Without PLL"/>
          <selection name="internalLPRC" value="Internal LPRC"/>
          <selection name="internalFRC" value="Internal FRC"/>
          <selection name="secOsc" value="Secondary Oscillator"/>
        </dialogConfig>
        <userAction name="secOsc">
          <claimResource type="register" registerField="NOSC" value="000"/>
          <claimResource type="register" registerField="FOS" value="000"/>
        </userAction>
        <userAction name="internalFRC">
          <claimResource type="register" registerField="NOSC" value="001"/>
          <claimResource type="register" registerField="FOS" value="001"/>
        </userAction>
        <userAction name="internalLPRC">
          <claimResource type="register" registerField="NOSC" value="010"/>
          <claimResource type="register" registerField="FOS" value="010"/>
        </userAction>
        <userAction name="alternateOsc">
          <claimResource type="register" registerField="NOSC" value="011"/>
          <claimResource type="register" registerField="FOS" value="011"/>
        </userAction>
        <userAction name="primOsc">
          <claimResource type="register" registerField="NOSC" value="111"/>
          <claimResource type="register" registerField="FOS" value="111"/>
        </userAction>
      </userControl>

      <userControl name="ClockMode">
        <dialogConfig type="CB" caption="Primary Mode Select">
          <selection name="SelectHS3x16" value="HS/3 w/PLL 16x"/>
          <selection name="SelectHS3x8" value="HS/3 w/PLL 8x"/>
          <selection name="SelectHS3x4" value="HS/3 w/PLL 4x"/>
          <selection name="SelectHS2x16" value="HS/2 w/PLL 16x"/>
          <selection name="SelectHS2x8" value="HS/2 w/PLL 8x"/>
          <selection name="SelectHS2x4" value="HS/2 w/PLL 4x"/>
          <selection name="SelectECIOx16" value="ECIO w/PLL 16x"/>
          <selection name="SelectECIOx8" value="ECIO w/PLL 8x"/>
          <selection name="SelectECIOx4" value="ECIO w/PLL 4x"/>
          <selection name="SelectFRCx16" value="FRC w/PLL 16x"/>
          <selection name="SelectFRCx8" value="FRC w/PLL 8x"/>
          <selection name="SelectFRCx4" value="FRC w/PLL 4x"/>
          <selection name="SelectXTx16" value="XT w/PLL 16x"/>
          <selection name="SelectXTx8" value="XT w/PLL 8x"/>
          <selection name="SelectXTx4" value="XT w/PLL 4x"/>
        </dialogConfig>
        <userAction name="SelectXTx4">
          <claimResource type="register" registerField="FPR" value="00101"/>
          <claimResource type="pin" pin="OSC2" polarity="Inp"/>
        </userAction>
        <userAction name="SelectXTx8">
          <claimResource type="register" registerField="FPR" value="00110"/>
          <claimResource type="pin" pin="OSC2" polarity="Inp"/>
        </userAction>
        <userAction name="SelectXTx16">
          <claimResource type="register" registerField="FPR" value="00111"/>
          <claimResource type="pin" pin="OSC2" polarity="Inp"/>
        </userAction>
        <userAction name="SelectFRCx4">
          <claimResource type="register" registerField="FPR" value="00001"/>
        </userAction>
        <userAction name="SelectFRCx8">
          <claimResource type="register" registerField="FPR" value="01010"/>
        </userAction>
        <userAction name="SelectFRCx16">
          <claimResource type="register" registerField="FPR" value="00011"/>
        </userAction>
        <userAction name="SelectECIOx4">
          <claimResource type="register" registerField="FPR" value="01101"/>
        </userAction>
        <userAction name="SelectECIOx8">
          <claimResource type="register" registerField="FPR" value="01110"/>
        </userAction>
        <userAction name="SelectECIOx16">
          <claimResource type="register" registerField="FPR" value="01111"/>
        </userAction>
        <userAction name="SelectHS2x4">
          <claimResource type="register" registerField="FPR" value="10001"/>
          <claimResource type="pin" pin="OSC2" polarity="Inp"/>
        </userAction>
        <userAction name="SelectHS2x8">
          <claimResource type="register" registerField="FPR" value="10010"/>
          <claimResource type="pin" pin="OSC2" polarity="Inp"/>
        </userAction>
        <userAction name="SelectHS2x16">
          <claimResource type="register" registerField="FPR" value="10011"/>
          <claimResource type="pin" pin="OSC2" polarity="Inp"/>
        </userAction>
        <userAction name="SelectHS2x4">
          <claimResource type="register" registerField="FPR" value="10101"/>
          <claimResource type="pin" pin="OSC2" polarity="Inp"/>
        </userAction>
        <userAction name="SelectHS3x8">
          <claimResource type="register" registerField="FPR" value="10110"/>
          <claimResource type="pin" pin="OSC2" polarity="Inp"/>
        </userAction>
        <userAction name="SelectHS3x16">
          <claimResource type="register" registerField="FPR" value="10111"/>
          <claimResource type="pin" pin="OSC2" polarity="Inp"/>
        </userAction>
      </userControl>

      <userControl name="AltClockMode">
        <dialogConfig type="CB" caption="Primary Mode Select">
          <selection name="SelectECIO" value="ECIO"/>
          <selection name="SelectEC" value="EC"/>
          <selection name="SelectERC" value="ERC"/>
          <selection name="SelectERCIO" value="ERCIO"/>
          <selection name="SelectXT" value="XT"/>
          <selection name="SelectHS" value="HS"/>
          <selection name="SelectXTL" value="XTL"/>
        </dialogConfig>
        <userAction name="SelectXTL">
          <claimResource type="register" registerField="FPR" value="00000"/>
          <claimResource type="pin" pin="OSC2" polarity="Inp"/>
        </userAction>
        <userAction name="SelectHS">
          <claimResource type="register" registerField="FPR" value="00010"/>
          <claimResource type="pin" pin="OSC2" polarity="Inp"/>
        </userAction>
        <userAction name="SelectXT">
          <claimResource type="register" registerField="FPR" value="00100"/>
          <claimResource type="pin" pin="OSC2" polarity="Inp"/>
        </userAction>
        <userAction name="SelectERCIO">
          <claimResource type="register" registerField="FPR" value="01000"/>
        </userAction>
        <userAction name="SelectERC">
          <claimResource type="register" registerField="FPR" value="01001"/>
          <claimResource type="pin" pin="OSC2" polarity="Inp"/>
        </userAction>
        <userAction name="SelectEC">
          <claimResource type="register" registerField="FPR" value="01011"/>
          <claimResource type="pin" pin="OSC2" polarity="Inp"/>
        </userAction>
        <userAction name="SelectECIO">
          <claimResource type="register" registerField="FPR" value="01100"/>
        </userAction>
      </userControl>

      <userControl name="SwClockMode">
        <dialogConfig type="CB" caption="Primary Mode Select">
          <selection name="SelectHS3x16" value="HS/3 w/PLL 16x"/>
          <selection name="SelectHS3x8" value="HS/3 w/PLL 8x"/>
          <selection name="SelectHS3x4" value="HS/3 w/PLL 4x"/>
          <selection name="SelectHS2x16" value="HS/2 w/PLL 16x"/>
          <selection name="SelectHS2x8" value="HS/2 w/PLL 8x"/>
          <selection name="SelectHS2x4" value="HS/2 w/PLL 4x"/>
          <selection name="SelectECIOx16" value="ECIO w/PLL 16x"/>
          <selection name="SelectECIOx8" value="ECIO w/PLL 8x"/>
          <selection name="SelectECIOx4" value="ECIO w/PLL 4x"/>
          <selection name="SelectFRCx16" value="FRC w/PLL 16x"/>
          <selection name="SelectFRCx8" value="FRC w/PLL 8x"/>
          <selection name="SelectFRCx4" value="FRC w/PLL 4x"/>
          <selection name="SelectXTx16" value="XT w/PLL 16x"/>
          <selection name="SelectXTx8" value="XT w/PLL 8x"/>
          <selection name="SelectXTx4" value="XT w/PLL 4x"/>
          <selection name="SelectECIO" value="ECIO"/>
          <selection name="SelectEC" value="EC"/>
          <selection name="SelectERC" value="ERC"/>
          <selection name="SelectERCIO" value="ERCIO"/>
          <selection name="SelectXT" value="XT"/>
          <selection name="SelectHS" value="HS"/>
          <selection name="SelectXTL" value="XTL"/>
        </dialogConfig>
        <userAction name="SelectXTL">
          <claimResource type="register" registerField="FPR" value="00000"/>
          <claimResource type="pin" pin="OSC2" polarity="Inp"/>
        </userAction>
        <userAction name="SelectHS">
          <claimResource type="register" registerField="FPR" value="00010"/>
          <claimResource type="pin" pin="OSC2" polarity="Inp"/>
        </userAction>
        <userAction name="SelectXT">
          <claimResource type="register" registerField="FPR" value="00100"/>
          <claimResource type="pin" pin="OSC2" polarity="Inp"/>
        </userAction>
        <userAction name="SelectERCIO">
          <claimResource type="register" registerField="FPR" value="01000"/>
        </userAction>
        <userAction name="SelectERC">
          <claimResource type="register" registerField="FPR" value="01001"/>
          <claimResource type="pin" pin="OSC2" polarity="Inp"/>
        </userAction>
        <userAction name="SelectEC">
          <claimResource type="register" registerField="FPR" value="01011"/>
          <claimResource type="pin" pin="OSC2" polarity="Inp"/>
        </userAction>
        <userAction name="SelectECIO">
          <claimResource type="register" registerField="FPR" value="01100"/>
        </userAction>
        <userAction name="SelectXTx4">
          <claimResource type="register" registerField="FPR" value="00101"/>
          <claimResource type="pin" pin="OSC2" polarity="Inp"/>
        </userAction>
        <userAction name="SelectXTx8">
          <claimResource type="register" registerField="FPR" value="00110"/>
          <claimResource type="pin" pin="OSC2" polarity="Inp"/>
        </userAction>
        <userAction name="SelectXTx16">
          <claimResource type="register" registerField="FPR" value="00111"/>
          <claimResource type="pin" pin="OSC2" polarity="Inp"/>
        </userAction>
        <userAction name="SelectFRCx4">
          <claimResource type="register" registerField="FPR" value="00001"/>
        </userAction>
        <userAction name="SelectFRCx8">
          <claimResource type="register" registerField="FPR" value="01010"/>
        </userAction>
        <userAction name="SelectFRCx16">
          <claimResource type="register" registerField="FPR" value="00011"/>
        </userAction>
        <userAction name="SelectECIOx4">
          <claimResource type="register" registerField="FPR" value="01101"/>
        </userAction>
        <userAction name="SelectECIOx8">
          <claimResource type="register" registerField="FPR" value="01110"/>
        </userAction>
        <userAction name="SelectECIOx16">
          <claimResource type="register" registerField="FPR" value="01111"/>
        </userAction>
        <userAction name="SelectHS2x4">
          <claimResource type="register" registerField="FPR" value="10001"/>
          <claimResource type="pin" pin="OSC2" polarity="Inp"/>
        </userAction>
        <userAction name="SelectHS2x8">
          <claimResource type="register" registerField="FPR" value="10010"/>
          <claimResource type="pin" pin="OSC2" polarity="Inp"/>
        </userAction>
        <userAction name="SelectHS2x16">
          <claimResource type="register" registerField="FPR" value="10011"/>
          <claimResource type="pin" pin="OSC2" polarity="Inp"/>
        </userAction>
        <userAction name="SelectHS2x4">
          <claimResource type="register" registerField="FPR" value="10101"/>
          <claimResource type="pin" pin="OSC2" polarity="Inp"/>
        </userAction>
        <userAction name="SelectHS3x8">
          <claimResource type="register" registerField="FPR" value="10110"/>
          <claimResource type="pin" pin="OSC2" polarity="Inp"/>
        </userAction>
        <userAction name="SelectHS3x16">
          <claimResource type="register" registerField="FPR" value="10111"/>
          <claimResource type="pin" pin="OSC2" polarity="Inp"/>
        </userAction>
      </userControl>

      <userControl name="ClockDivider">
        <dialogConfig type="CB" caption="Clock Divide:">
          <selection name="setToDiv1" value="Divide by 1"/>
          <selection name="setToDiv4" value="Divide by 4"/>
          <selection name="setToDiv16" value="Divide by 16"/>
          <selection name="setToDiv64" value="Divide by 64"/>
        </dialogConfig>
        <userAction name="setToDiv64">
          <claimResource type="register" registerField="POST" value="11"/>
        </userAction>
        <userAction name="setToDiv16">
          <claimResource type="register" registerField="POST" value="10"/>
        </userAction>
        <userAction name="setToDiv4">
          <claimResource type="register" registerField="POST" value="01"/>
        </userAction>
        <userAction name="setToDiv1">
          <claimResource type="register" registerField="POST" value="00"/>
        </userAction>
      </userControl>

      <userControl name="SwitchingAndMonitorMode">
        <dialogConfig type="CB" caption="Switching and Monitor Mode">
          <selection name="SelectNone" value="Switching Disabled, Monitor Disabled"/>
          <selection name="SelectSwitching" value="Switching Enabled, Monitor Disabled"/>
          <selection name="SelectSwitchingAndMonitor" value="Switching Enabled, Monitor Enabled"/>
        </dialogConfig>
        <userAction name="SelectSwitchingAndMonitor">
          <claimResource type="register" registerField="FCKSMEN15" value="0"/>
          <claimResource type="register" registerField="FCKSMEN14" value="0"/>
        </userAction>
        <userAction name="SelectSwitching">
          <claimResource type="register" registerField="FCKSMEN15" value="0"/>
          <claimResource type="register" registerField="FCKSMEN14" value="1"/>
        </userAction>
        <userAction name="SelectNone">
          <claimResource type="register" registerField="FCKSMEN15" value="1"/>
        </userAction>
      </userControl>

      <userControl name="EnableAuxOsc">
        <dialogConfig type="CK" caption="Enable Auxuliary 32KHz Oscillator"/>
        <userAction name="enable">
          <claimResource type="register" registerField="LPOSCEN" value="1"/>
          <claimResource type="pin" pin="SOSCO" polarity="Inp"/>
          <claimResource type="pin" pin="SOSCI" polarity="Inp"/>
        </userAction>
        <userAction name="disable">
          <claimResource type="register" registerField="LPOSCEN" value="0"/>
        </userAction>
      </userControl>

    </userControlSubGroup>
  </userControlGroup>
</featureDefinitions>
