<?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">

  <!-- The large scale MS decoders, split out of Zimo_MS_small_v4.xml, which despite its name
       carried MS950 and MS990. They differ from the small ones in more than size: variable low
       voltage (CV264), high voltage RailCom (CV28 bit 6), 14 or 15 function outputs, smoke
       generator connections and more servo and switch inputs.
       The family name is deliberately unchanged, so existing roster entries keep resolving -
       a family spanning several files is normal (Zimo Unified software spans 82). -->

  <!-- Version identification: CV #7 is the main software version and CV #65 the sub-version, so
       the version 4 families are gated to CV #7 = 4 exactly while these run 5 to 42. The 42 is
       deliberate, not a leftover - it keeps one open-ended family so a future 6.x decoder still
       identifies as something if the definitions have not caught up. The open end moves to the
       newest generation each time. -->

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

  <decoder>
    <family name="MS Sound (version 5+)" mfg="Zimo">
      <model model="MS920LE version 5+" lowVersionID="5" highVersionID="42" maxInputVolts="35V" maxMotorCurrent="1.8A, peak=2.5A" maxTotalCurrent="1.8A" formFactor="G" numOuts="9" numFns="14" productID="18">
        <output name="1" label="Front Light">
          <label xml:lang="de">Lvor</label>
          <label xml:lang="cs">Přední světla</label>
          <label xml:lang="fr">Feu avant</label>
        </output>
        <output name="2" label="Rear Light">
          <label xml:lang="de">Lrück</label>
          <label xml:lang="cs">Zadní světla</label>
          <label xml:lang="fr">Feu arrière</label>
        </output>
        <output name="3" label="FO 1">
          <label xml:lang="de">FA1</label>
          <label xml:lang="cs">FV 1</label>
        </output>
        <output name="4" label="FO 2">
          <label xml:lang="de">FA2</label>
          <label xml:lang="cs">FV 2</label>
        </output>
        <output name="5" label="FO 3">
          <label xml:lang="de">FA3</label>
          <label xml:lang="cs">FV 3</label>
        </output>
        <output name="6" label="FO 4">
          <label xml:lang="de">FA4</label>
          <label xml:lang="cs">FV 4</label>
        </output>
        <output name="7" label="FO 5">
          <label xml:lang="de">FA5</label>
          <label xml:lang="cs">FV 5</label>
        </output>
        <output name="8" label="FO 6">
          <label xml:lang="de">FA6</label>
          <label xml:lang="cs">FV 6</label>
        </output>
        <output name="9" label="FO 7">
          <label xml:lang="de">FA7</label>
          <label xml:lang="cs">FV 7</label>
        </output>
        <size length="38.5" width="29.8" height="12" units="mm"/>
      </model>

      <model model="MS950 version 5+" lowVersionID="5" highVersionID="42" maxInputVolts="35V" maxMotorCurrent="1.2A, peak=2.5A" maxTotalCurrent="1.2A" formFactor="G" numOuts="14" numFns="14" productID="9">
        <output name="1" label="Front Light">
          <label xml:lang="de">Lvor</label>
          <label xml:lang="cs">Přední světla</label>
          <label xml:lang="fr">Feu avant</label>
        </output>
        <output name="2" label="Rear Light">
          <label xml:lang="de">Lrück</label>
          <label xml:lang="cs">Zadní světla</label>
          <label xml:lang="fr">Feu arrière</label>
        </output>
        <output name="3" label="FO 1">
          <label xml:lang="de">FA1</label>
          <label xml:lang="cs">FV 1</label>
        </output>
        <output name="4" label="FO 2">
          <label xml:lang="de">FA2</label>
          <label xml:lang="cs">FV 2</label>
        </output>
        <output name="5" label="FO 3">
          <label xml:lang="de">FA3</label>
          <label xml:lang="cs">FV 3</label>
        </output>
        <output name="6" label="FO 4">
          <label xml:lang="de">FA4</label>
          <label xml:lang="cs">FV 4</label>
        </output>
        <output name="7" label="FO 5">
          <label xml:lang="de">FA5</label>
          <label xml:lang="cs">FV 5</label>
        </output>
        <output name="8" label="FO 6">
          <label xml:lang="de">FA6</label>
          <label xml:lang="cs">FV 6</label>
        </output>
        <output name="9" label="FO 7">
          <label xml:lang="de">FA7</label>
          <label xml:lang="cs">FV 7</label>
        </output>
        <output name="10" label="FO 8">
          <label xml:lang="de">FA8</label>
          <label xml:lang="cs">FV 8</label>
        </output>
        <output name="11" label="FO 9">
          <label xml:lang="de">FA9</label>
          <label xml:lang="cs">FV 9</label>
        </output>
        <output name="12" label="FO 10 (+5V)">
          <label xml:lang="de">FA10 (+5V)</label>
          <label xml:lang="cs">FV 10 (+5V)</label>
        </output>
        <output name="13" label="FO 11 (+5V)">
          <label xml:lang="de">FA11 (+5V)</label>
          <label xml:lang="cs">FV 11 (+5V)</label>
        </output>
        <output name="14" label="FO 12 (+5V)">
          <label xml:lang="de">FA12 (+5V)</label>
          <label xml:lang="cs">FV 12 (+5V)</label>
        </output>
        <size length="30" width="15" height="4" units="mm"/>
      </model>

      <model model="MS990 version 5+" lowVersionID="5" highVersionID="42" maxInputVolts="35V" maxMotorCurrent="1.2A, peak=2.5A" maxTotalCurrent="1.2A" formFactor="G" numOuts="15" numFns="14" productID="7">
        <output name="1" label="Front Light">
          <label xml:lang="de">Lvor</label>
          <label xml:lang="cs">Přední světla</label>
          <label xml:lang="fr">Feu avant</label>
        </output>
        <output name="2" label="Rear Light">
          <label xml:lang="de">Lrück</label>
          <label xml:lang="cs">Zadní světla</label>
          <label xml:lang="fr">Feu arrière</label>
        </output>
        <output name="3" label="FO 1">
          <label xml:lang="de">FA1</label>
          <label xml:lang="cs">FV 1</label>
        </output>
        <output name="4" label="FO 2">
          <label xml:lang="de">FA2</label>
          <label xml:lang="cs">FV 2</label>
        </output>
        <output name="5" label="FO 3">
          <label xml:lang="de">FA3</label>
          <label xml:lang="cs">FV 3</label>
        </output>
        <output name="6" label="FO 4">
          <label xml:lang="de">FA4</label>
          <label xml:lang="cs">FV 4</label>
        </output>
        <output name="7" label="FO 5">
          <label xml:lang="de">FA5</label>
          <label xml:lang="cs">FV 5</label>
        </output>
        <output name="8" label="FO 6">
          <label xml:lang="de">FA6</label>
          <label xml:lang="cs">FV 6</label>
        </output>
        <output name="9" label="FO 7">
          <label xml:lang="de">FA7</label>
          <label xml:lang="cs">FV 7</label>
        </output>
        <output name="10" label="FO 8">
          <label xml:lang="de">FA8</label>
          <label xml:lang="cs">FV 8</label>
        </output>
        <output name="11" label="FO 9">
          <label xml:lang="de">FA9</label>
          <label xml:lang="cs">FV 9</label>
        </output>
        <output name="12" label="FO 10">
          <label xml:lang="de">FA10</label>
          <label xml:lang="cs">FV 10</label>
        </output>
        <output name="13" label="FO 11">
          <label xml:lang="de">FA11</label>
          <label xml:lang="cs">FV 11</label>
        </output>
        <output name="14" label="FO 12">
          <label xml:lang="de">FA12</label>
          <label xml:lang="cs">FV 12</label>
        </output>
        <output name="15" label="FO 13">
          <label xml:lang="de">FA13</label>
          <label xml:lang="cs">FV 13</label>
        </output>
        <size length="30" width="15" height="4" 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>
