<?xml version="1.0" encoding="utf-8"?>
<?xml-stylesheet type="text/xsl" href="../XSLT/decoder.xsl"?>
<!-- Copyright (C) JMRI 2002, 2005, 2006, 2007 All rights reserved -->
<!-- $Id$ -->
<!--                                                                        -->
<!-- JMRI is free software; you can redistribute it and/or modify it under  -->
<!-- the terms of version 2 of the GNU General Public License as published  -->
<!-- by the Free Software Foundation. See the "COPYING" file for a copy     -->
<!-- of this license.                                                       -->
<!--                                                                        -->
<!-- JMRI is distributed in the hope that it will be useful, but WITHOUT    -->
<!-- ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or  -->
<!-- FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License  -->
<!-- for more details.                                                      -->
<decoder-config xmlns:xi="http://www.w3.org/2001/XInclude" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="http://jmri.org/xml/schema/decoder-4-15-2.xsd">

  <version author="Pierre Billon" version="1" lastUpdated="2026/07/31"/>

  <!-- FS decoders exist only from software version 5 on - the FS850 arrived at 5.19.11, the
       FS890N18 at 5.21.1 and the FS840 at 5.27.14 - so there is no version 4 FS family and
       nothing to gate against. -->

  <decoder>
    <family name="FS Sound (version 5+)" mfg="Zimo">

      <!-- FS decoders are function-sound decoders: sound and function outputs, no motor drive.
           They are defined with the same CVs and panes as the MS sound decoders. ZIMO document a
           single CV set for MS, MN and FS, and an FS decoder still reproduces engine sound, so the
           motor CVs are kept rather than hidden - a few read errors on a CV that does nothing are
           preferable to a setting the owner cannot reach. -->

      <model model="FS850 version 5+" lowVersionID="5" highVersionID="42" maxInputVolts="24V" maxTotalCurrent="1.2A" formFactor="HO" numOuts="12" numFns="14" productID="64">
        <output name="1" label="Front Light">
          <label xml:lang="fr">Feu avant</label>
          <label xml:lang="de">Lvor</label>
        </output>
        <output name="2" label="Rear Light">
          <label xml:lang="fr">Feu arrière</label>
          <label xml:lang="de">Lrück</label>
        </output>
        <output name="3" label="FO 1">
          <label xml:lang="fr">FO 1</label>
          <label xml:lang="de">FA1</label>
        </output>
        <output name="4" label="FO 2">
          <label xml:lang="fr">FO 2</label>
          <label xml:lang="de">FA2</label>
        </output>
        <output name="5" label="FO 3">
          <label xml:lang="fr">FO 3</label>
          <label xml:lang="de">FA3</label>
        </output>
        <output name="6" label="FO 4">
          <label xml:lang="fr">FO 4</label>
          <label xml:lang="de">FA4</label>
        </output>
        <output name="7" label="FO 5">
          <label xml:lang="fr">FO 5</label>
          <label xml:lang="de">FA5</label>
        </output>
        <output name="8" label="FO 6">
          <label xml:lang="fr">FO 6</label>
          <label xml:lang="de">FA6</label>
        </output>
        <output name="9" label="FO 7">
          <label xml:lang="fr">FO 7</label>
          <label xml:lang="de">FA7</label>
        </output>
        <output name="10" label="FO 8">
          <label xml:lang="fr">FO 8</label>
          <label xml:lang="de">FA8</label>
        </output>
        <output name="11" label="FO 9">
          <label xml:lang="fr">FO 9</label>
          <label xml:lang="de">FA9</label>
        </output>
        <output name="12" label="FO 10">
          <label xml:lang="fr">FO 10</label>
          <label xml:lang="de">FA10</label>
        </output>
        <size length="21" width="15" height="3.6" units="mm"/>
      </model>

      <model model="FS890N18 version 5+" lowVersionID="5" highVersionID="42" maxInputVolts="24V" maxTotalCurrent="0.7A" formFactor="N" connector="Next18" numOuts="8" numFns="14" productID="65">
        <output name="1" label="Front Light">
          <label xml:lang="fr">Feu avant</label>
          <label xml:lang="de">Lvor</label>
        </output>
        <output name="2" label="Rear Light">
          <label xml:lang="fr">Feu arrière</label>
          <label xml:lang="de">Lrück</label>
        </output>
        <output name="3" label="FO 1">
          <label xml:lang="fr">FO 1</label>
          <label xml:lang="de">FA1</label>
        </output>
        <output name="4" label="FO 2">
          <label xml:lang="fr">FO 2</label>
          <label xml:lang="de">FA2</label>
        </output>
        <output name="5" label="FO 3">
          <label xml:lang="fr">FO 3</label>
          <label xml:lang="de">FA3</label>
        </output>
        <output name="6" label="FO 4">
          <label xml:lang="fr">FO 4</label>
          <label xml:lang="de">FA4</label>
        </output>
        <output name="7" label="FO 5">
          <label xml:lang="fr">FO 5</label>
          <label xml:lang="de">FA5</label>
        </output>
        <output name="8" label="FO 6">
          <label xml:lang="fr">FO 6</label>
          <label xml:lang="de">FA6</label>
        </output>
        <size length="13.6" width="9.3" height="3.1" units="mm"/>
      </model>

      <!-- FO 3 to FO 6 can be used as logic level outputs, per ZIMO's connection note. -->
      <model model="FS840 version 5+" lowVersionID="5" highVersionID="42" maxInputVolts="24V" maxTotalCurrent="1.2A" formFactor="HO" connector="21MTC" numOuts="12" numFns="14" productID="66">
        <output name="1" label="Front Light">
          <label xml:lang="fr">Feu avant</label>
          <label xml:lang="de">Lvor</label>
        </output>
        <output name="2" label="Rear Light">
          <label xml:lang="fr">Feu arrière</label>
          <label xml:lang="de">Lrück</label>
        </output>
        <output name="3" label="FO 1">
          <label xml:lang="fr">FO 1</label>
          <label xml:lang="de">FA1</label>
        </output>
        <output name="4" label="FO 2">
          <label xml:lang="fr">FO 2</label>
          <label xml:lang="de">FA2</label>
        </output>
        <output name="5" label="FO 3">
          <label xml:lang="fr">FO 3</label>
          <label xml:lang="de">FA3</label>
        </output>
        <output name="6" label="FO 4">
          <label xml:lang="fr">FO 4</label>
          <label xml:lang="de">FA4</label>
        </output>
        <output name="7" label="FO 5">
          <label xml:lang="fr">FO 5</label>
          <label xml:lang="de">FA5</label>
        </output>
        <output name="8" label="FO 6">
          <label xml:lang="fr">FO 6</label>
          <label xml:lang="de">FA6</label>
        </output>
        <output name="9" label="FO 7">
          <label xml:lang="fr">FO 7</label>
          <label xml:lang="de">FA7</label>
        </output>
        <output name="10" label="FO 8">
          <label xml:lang="fr">FO 8</label>
          <label xml:lang="de">FA8</label>
        </output>
        <output name="11" label="FO 9">
          <label xml:lang="fr">FO 9</label>
          <label xml:lang="de">FA9</label>
        </output>
        <output name="12" label="FO 10">
          <label xml:lang="fr">FO 10</label>
          <label xml:lang="de">FA10</label>
        </output>
        <size length="21.5" width="15" height="3.8" units="mm"/>
      </model>
    </family>
    <programming direct="yes" paged="yes" register="yes" ops="yes"/>
    <variables>
      <xi:include href="http://jmri.org/xml/decoders/zimo/CV7-CV102_MS-MN-FS.xml"/>
      <xi:include href="http://jmri.org/xml/decoders/zimo/CV107-CV199_MS-MN-FS.xml"/>
      <xi:include href="http://jmri.org/xml/decoders/zimo/CV201-CV249_MS-MN-FS.xml"/>


      <variable CV="7" item="Decoder Version" readOnly="yes" default="4">
        <decVal/>
        <label>Manufacturer Version No: </label>
        <label xml:lang="it">Versione Decoder: </label>
        <label xml:lang="fr">Version décodeur: </label>
        <label xml:lang="de">Decoder Version: </label>
        <label xml:lang="cs">Verze dekodéru: </label>
      </variable>

      <variable item="Decoder ID 1" CV="250" default="1" readOnly="yes" include="1">
        <decVal/>
        <label>Decoder ID 1</label>
        <label xml:lang="it">ID 1 Decoder: </label>
        <label xml:lang="cs">Dekodér ID 1:</label>
        <label xml:lang="fr">Identifiant décodeur 1</label>
        <label xml:lang="de">Decoder-ID 1</label>
      </variable>
      <variable item="Decoder ID 1 Text" CV="250" default="1" readOnly="yes" include="1">
        <xi:include href="http://jmri.org/xml/decoders/zimo/CV250_ProductID_enum.xml"/>
      </variable>
      <variable item="Decoder ID 1" CV="250" default="2" readOnly="yes" include="2">
        <decVal/>
        <label>Decoder ID 1</label>
        <label xml:lang="it">ID 1 Decoder: </label>
        <label xml:lang="cs">Dekodér ID 1:</label>
        <label xml:lang="fr">Identifiant décodeur 1</label>
        <label xml:lang="de">Decoder-ID 1</label>
      </variable>
      <variable item="Decoder ID 1 Text" CV="250" default="2" readOnly="yes" include="2">
        <xi:include href="http://jmri.org/xml/decoders/zimo/CV250_ProductID_enum.xml"/>
      </variable>
      <variable item="Decoder ID 1" CV="250" default="3" readOnly="yes" include="3">
        <decVal/>
        <label>Decoder ID 1</label>
        <label xml:lang="it">ID 1 Decoder: </label>
        <label xml:lang="cs">Dekodér ID 1:</label>
        <label xml:lang="fr">Identifiant décodeur 1</label>
        <label xml:lang="de">Decoder-ID 1</label>
      </variable>
      <variable item="Decoder ID 1 Text" CV="250" default="3" readOnly="yes" include="3">
        <xi:include href="http://jmri.org/xml/decoders/zimo/CV250_ProductID_enum.xml"/>
      </variable>
      <variable item="Decoder ID 1" CV="250" default="4" readOnly="yes" include="4">
        <decVal/>
        <label>Decoder ID 1</label>
        <label xml:lang="it">ID 1 Decoder: </label>
        <label xml:lang="cs">Dekodér ID 1:</label>
        <label xml:lang="fr">Identifiant décodeur 1</label>
        <label xml:lang="de">Decoder-ID 1</label>
      </variable>
      <variable item="Decoder ID 1 Text" CV="250" default="4" readOnly="yes" include="4">
        <xi:include href="http://jmri.org/xml/decoders/zimo/CV250_ProductID_enum.xml"/>
      </variable>
      <variable item="Decoder ID 1" CV="250" default="5" readOnly="yes" include="5">
        <decVal/>
        <label>Decoder ID 1</label>
        <label xml:lang="it">ID 1 Decoder: </label>
        <label xml:lang="cs">Dekodér ID 1:</label>
        <label xml:lang="fr">Identifiant décodeur 1</label>
        <label xml:lang="de">Decoder-ID 1</label>
      </variable>
      <variable item="Decoder ID 1 Text" CV="250" default="5" readOnly="yes" include="5">
        <xi:include href="http://jmri.org/xml/decoders/zimo/CV250_ProductID_enum.xml"/>
      </variable>
      <variable item="Decoder ID 1" CV="250" default="6" readOnly="yes" include="6">
        <decVal/>
        <label>Decoder ID 1</label>
        <label xml:lang="it">ID 1 Decoder: </label>
        <label xml:lang="cs">Dekodér ID 1:</label>
        <label xml:lang="fr">Identifiant décodeur 1</label>
        <label xml:lang="de">Decoder-ID 1</label>
      </variable>
      <variable item="Decoder ID 1 Text" CV="250" default="6" readOnly="yes" include="6">
        <xi:include href="http://jmri.org/xml/decoders/zimo/CV250_ProductID_enum.xml"/>
      </variable>
      <variable item="Decoder ID 1" CV="250" default="7" readOnly="yes" include="7">
        <decVal/>
        <label>Decoder ID 1</label>
        <label xml:lang="it">ID 1 Decoder: </label>
        <label xml:lang="cs">Dekodér ID 1:</label>
        <label xml:lang="fr">Identifiant décodeur 1</label>
        <label xml:lang="de">Decoder-ID 1</label>
      </variable>
      <variable item="Decoder ID 1 Text" CV="250" default="7" readOnly="yes" include="7">
        <xi:include href="http://jmri.org/xml/decoders/zimo/CV250_ProductID_enum.xml"/>
      </variable>
      <variable item="Decoder ID 1" CV="250" default="8" readOnly="yes" include="8">
        <decVal/>
        <label>Decoder ID 1</label>
        <label xml:lang="it">ID 1 Decoder: </label>
        <label xml:lang="cs">Dekodér ID 1:</label>
        <label xml:lang="fr">Identifiant décodeur 1</label>
        <label xml:lang="de">Decoder-ID 1</label>
      </variable>
      <variable item="Decoder ID 1 Text" CV="250" default="8" readOnly="yes" include="8">
        <xi:include href="http://jmri.org/xml/decoders/zimo/CV250_ProductID_enum.xml"/>
      </variable>
      <variable item="Decoder ID 1" CV="250" default="9" readOnly="yes" include="9">
        <decVal/>
        <label>Decoder ID 1</label>
        <label xml:lang="it">ID 1 Decoder: </label>
        <label xml:lang="cs">Dekodér ID 1:</label>
        <label xml:lang="fr">Identifiant décodeur 1</label>
        <label xml:lang="de">Decoder-ID 1</label>
      </variable>
      <variable item="Decoder ID 1 Text" CV="250" default="9" readOnly="yes" include="9">
        <xi:include href="http://jmri.org/xml/decoders/zimo/CV250_ProductID_enum.xml"/>
      </variable>
      <variable item="Decoder ID 1" CV="250" default="10" readOnly="yes" include="10">
        <decVal/>
        <label>Decoder ID 1</label>
        <label xml:lang="it">ID 1 Decoder: </label>
        <label xml:lang="cs">Dekodér ID 1:</label>
        <label xml:lang="fr">Identifiant décodeur 1</label>
        <label xml:lang="de">Decoder-ID 1</label>
      </variable>
      <variable item="Decoder ID 1 Text" CV="250" default="10" readOnly="yes" include="10">
        <xi:include href="http://jmri.org/xml/decoders/zimo/CV250_ProductID_enum.xml"/>
      </variable>

      <variable item="Decoder ID 1" CV="250" default="11" readOnly="yes" include="11">
        <decVal/>
        <label>Decoder ID 1</label>
        <label xml:lang="it">ID 1 Decoder: </label>
        <label xml:lang="cs">Dekodér ID 1:</label>
        <label xml:lang="fr">Identifiant décodeur 1</label>
        <label xml:lang="de">Decoder-ID 1</label>
      </variable>
      <variable item="Decoder ID 1 Text" CV="250" default="11" readOnly="yes" include="11">
        <xi:include href="http://jmri.org/xml/decoders/zimo/CV250_ProductID_enum.xml"/>
      </variable>
      <variable item="Decoder ID 1" CV="250" default="12" readOnly="yes" include="12">
        <decVal/>
        <label>Decoder ID 1</label>
        <label xml:lang="it">ID 1 Decoder: </label>
        <label xml:lang="cs">Dekodér ID 1:</label>
        <label xml:lang="fr">Identifiant décodeur 1</label>
        <label xml:lang="de">Decoder-ID 1</label>
      </variable>
      <variable item="Decoder ID 1 Text" CV="250" default="12" readOnly="yes" include="12">
        <xi:include href="http://jmri.org/xml/decoders/zimo/CV250_ProductID_enum.xml"/>
      </variable>
      <variable item="Decoder ID 1" CV="250" default="13" readOnly="yes" include="13">
        <decVal/>
        <label>Decoder ID 1</label>
        <label xml:lang="it">ID 1 Decoder: </label>
        <label xml:lang="cs">Dekodér ID 1:</label>
        <label xml:lang="fr">Identifiant décodeur 1</label>
        <label xml:lang="de">Decoder-ID 1</label>
      </variable>
      <variable item="Decoder ID 1 Text" CV="250" default="13" readOnly="yes" include="13">
        <xi:include href="http://jmri.org/xml/decoders/zimo/CV250_ProductID_enum.xml"/>
      </variable>
      <variable item="Decoder ID 1" CV="250" default="14" readOnly="yes" include="14">
        <decVal/>
        <label>Decoder ID 1</label>
        <label xml:lang="it">ID 1 Decoder: </label>
        <label xml:lang="cs">Dekodér ID 1:</label>
        <label xml:lang="fr">Identifiant décodeur 1</label>
        <label xml:lang="de">Decoder-ID 1</label>
      </variable>
      <variable item="Decoder ID 1 Text" CV="250" default="14" readOnly="yes" include="14">
        <xi:include href="http://jmri.org/xml/decoders/zimo/CV250_ProductID_enum.xml"/>
      </variable>
      <variable item="Decoder ID 1" CV="250" default="15" readOnly="yes" include="15">
        <decVal/>
        <label>Decoder ID 1</label>
        <label xml:lang="it">ID 1 Decoder: </label>
        <label xml:lang="cs">Dekodér ID 1:</label>
        <label xml:lang="fr">Identifiant décodeur 1</label>
        <label xml:lang="de">Decoder-ID 1</label>
      </variable>
      <variable item="Decoder ID 1 Text" CV="250" default="15" readOnly="yes" include="15">
        <xi:include href="http://jmri.org/xml/decoders/zimo/CV250_ProductID_enum.xml"/>
      </variable>



      <variable item="Decoder ID 2" CV="251" readOnly="yes">
        <decVal/>
        <label>Decoder ID 2</label>
        <label xml:lang="it">ID 2 Decoder: </label>
        <label xml:lang="cs">Dekodér ID 2:</label>
        <label xml:lang="fr">Identifiant décodeur 2</label>
        <label xml:lang="de">Decoder-ID 2</label>
      </variable>
      <variable item="Decoder ID 3" CV="252" readOnly="yes">
        <decVal/>
        <label>Decoder ID 3</label>
        <label xml:lang="it">ID 3 Decoder: </label>
        <label xml:lang="cs">Dekodér ID 3:</label>
        <label xml:lang="fr">Identifiant décodeur 3</label>
        <label xml:lang="de">Decoder-ID 3</label>
      </variable>
      <variable item="Decoder ID 4" CV="253" readOnly="yes">
        <decVal/>
        <label>Decoder ID 4</label>
        <label xml:lang="it">ID 4 Decoder: </label>
        <label xml:lang="cs">Dekodér ID 4:</label>
        <label xml:lang="fr">Identifiant décodeur 4</label>
        <label xml:lang="de">Decoder-ID 4</label>
      </variable>

      <xi:include href="http://jmri.org/xml/decoders/zimo/CV260-CV398_MS-FS.xml"/>
      <xi:include href="http://jmri.org/xml/decoders/zimo/CV258-CV399_MS-MN-FS.xml"/>
      <xi:include href="http://jmri.org/xml/decoders/zimo/CV400-CV499_MS-MN-FS.xml"/>
      <xi:include href="http://jmri.org/xml/decoders/zimo/CV500-CV512_MS-MN-FS.xml"/>
      <xi:include href="http://jmri.org/xml/decoders/zimo/CV513-CV602_MS-FS.xml"/>
      <xi:include href="http://jmri.org/xml/decoders/zimo/CV671-CV699_MS-FS.xml"/>
      <xi:include href="http://jmri.org/xml/decoders/zimo/CV726-CV844_MS-FS.xml"/>
      <xi:include href="http://jmri.org/xml/decoders/zimo/CV800-CV843_MS-MN-FS.xml"/>
      <xi:include href="http://jmri.org/xml/decoders/zimo/CV980-CV1019_MS-MN-FS.xml"/>

    </variables>
    <xi:include href="http://jmri.org/xml/decoders/zimo/factReset-v32.xml"/>

    <!--   Begin additional extraMemu elements - Jacobsen / Cliffe,   Feb 2022 -->
    <xi:include href="http://jmri.org/xml/decoders/zimo/LoadCalibrationExtraMenu.xml"/>
    <!--   End additional extraMemu elements - Jacobsen / Cliffe,   Feb 2022  -->

  </decoder>
  <xi:include href="http://jmri.org/xml/decoders/zimo/PaneConsist.xml"/>
  <xi:include href="http://jmri.org/xml/decoders/zimo/PaneAccelDecel_MS-MN-FS.xml"/>
  <xi:include href="http://jmri.org/xml/decoders/zimo/PaneShuntUncouple.xml"/>
  <xi:include href="http://jmri.org/xml/decoders/zimo/PaneAltFunctionMap_MS-MN-FS.xml"/>
  <xi:include href="http://jmri.org/xml/decoders/zimo/PaneSwissMapping_MS-MN-FS.xml"/>
  <xi:include href="http://jmri.org/xml/decoders/zimo/PaneFunctionOutput.xml"/>
  <xi:include href="http://jmri.org/xml/decoders/zimo/PaneSmoke.xml"/>
  <xi:include href="http://jmri.org/xml/decoders/zimo/PaneZimoSpecific.xml"/>
  <xi:include href="http://jmri.org/xml/decoders/zimo/PaneRailcom_MS-MN-FS.xml"/>
  <xi:include href="http://jmri.org/xml/decoders/zimo/PaneABC.xml"/>
  <xi:include href="http://jmri.org/xml/decoders/zimo/PaneSpeedRegulation.xml"/>
  <xi:include href="http://jmri.org/xml/decoders/zimo/PaneServos2.xml"/>
  <xi:include href="http://jmri.org/xml/decoders/zimo/PaneDecoderlock.xml"/>
  <xi:include href="http://jmri.org/xml/decoders/zimo/PaneInputMapping.xml"/>
  <!-- Begin sound-only panes -->
  <xi:include href="http://jmri.org/xml/decoders/zimo/PaneSoundLevels.xml"/>
  <xi:include href="http://jmri.org/xml/decoders/zimo/PaneSoundSamples.xml"/>
  <xi:include href="http://jmri.org/xml/decoders/zimo/PaneSound.xml"/>
  <xi:include href="http://jmri.org/xml/decoders/zimo/PaneSound-ElectricLoco.xml"/>
  <xi:include href="http://jmri.org/xml/decoders/zimo/PaneSound-DieselLoco.xml"/>
  <xi:include href="http://jmri.org/xml/decoders/zimo/PaneRandomSounds.xml"/>
  <xi:include href="http://jmri.org/xml/decoders/zimo/PaneZimoScripting.xml"/>
  <!-- End sound-only panes -->
  <xi:include href="http://jmri.org/xml/decoders/zimo/PaneLoadCode.xml"/>
</decoder-config>
