diff --git a/Docs/README.yasim b/Docs/README.yasim
index a55f0546d..e98529d40 100644
--- a/Docs/README.yasim
+++ b/Docs/README.yasim
@@ -383,28 +383,23 @@ solve-weight:
           weight: Weight setting in pounds.
 
 
-control:  This element, which can appear in two different contexts,
-          manages a mapping from fgfs properties (user input) to
-          settable values on the aircraft's objects.  Note that the
-          value to be set MUST (!) be valid on the given object type.
-          This is not checked for by the parser, and will cause a
-          runtime crash if you try it.  Wing's don't have throttle
-          controls, etc...  Note that multiple axes may be set on the
-          same value.  They are summed before setting.
-
-          One serious shortcoming of the current implementation is
-          that there is no provision for modifying the values read
-          from properties.  There needs to be a way to scale,
-          translate and truncate the values.  On its way, I promise.
+control-input:
+          This element manages a mapping from fgfs properties (user
+          input) to settable values on the aircraft's objects.  Note
+          that the value to be set MUST (!) be valid on the given
+          object type.  This is not checked for by the parser, and
+          will cause a runtime crash if you try it.  Wing's don't have
+          throttle controls, etc...  Note that multiple axes may be
+          set on the same value.  They are summed before setting.
 
           axis:  The name of the double-valued fgfs property "axis" to
                  use as input, such as "/controls/flight/aileron".
-          output: Which property to set on the objects.  It can have
-                  the following values:
+          control: Which control axis to set on the objects.  It can have
+                   the following values:
                   THROTTLE - The throttle on a jet or propeller.
                   MIXTURE - The mixture on a propeller.
-                  REHEAT - The afterburner on a jet (unimpl.).
-                  PROP - The propeller advance (unimpl.)
+                  REHEAT - The afterburner on a jet
+                  PROP - The propeller advance
                   BRAKE - The brake on a gear.
                   STEER - The steering angle on a gear.
                   INCIDENCE - The incidence angle of a wing.
@@ -416,6 +411,7 @@ control:  This element, which can appear in two different contexts,
                   CYCLICELE - The "elevator" cyclic input of a rotor
                   COLLECTIVE - The collective input of a rotor
                   ROTORENGINEON - If not equal zero the rotor is rotating
+                  {... and many more, see FGFDM.cpp ...}
           invert: Negate the value of the property before setting on
                   the object.
           split:  Applicable to wing control surfaces.  Sets the
@@ -426,18 +422,44 @@ control:  This element, which can appear in two different contexts,
                   lots of sensitiviy in the center.  Obviously only
                   applicable to values that have a range of [-1:1] or
                   [0:1].
+          src0/src1/dst0/dst1:
+                  If present, these defined a linear mapping from the
+                  source to the output value.  Input values in the
+                  range src0-src1 are mapped linearly to dst0-dst1,
+                  with clamping for input values that lie outside the
+                  range.
 
-          A control element can also appear inside of an <approach> or
-          <cruise> element.  Here, it specifies a particular value of an
-          axis mapping that should be true under the given
-          conditions.  At cruise, the throttle is generally at a high
-          setting, the flaps and slats are up During approach
-          the flaps and slats are down, etc...
+control-output:
+          This can be used to pass the value of a YASim control axis
+          (after all mapping and summing is applied) back to the
+          property tree.
 
-          axis:  As above, the name of the input property.
-          value: A floating point number that the property is expected
-                 to hold.
+          control: Name of the control axis.  See above.
+          prop:    Property node to receive the value.
+          side:    Optional, for split controls.  Either "right" or "left"
+          min/max: Clamping applied to output value.
 
+control-speed:
+          Some controls (most notably flaps and hydraulics) have
+          maximum slew rates and cannot respond instantly to pilot
+          input.  This can be implemented with a control-speed tag,
+          which defines a "transition time" required to slew through
+          the full input range.  Note that this tag is
+          semi-deprecated, complicated control input filtering can be
+          done much more robustly from a Nasal script.
+
+          control: Name of the control axis. See above.
+          transition-time: Time in seconds to slew through input range.
+
+control-setting:
+          This tag is used to define a particular setting for a
+          control axis inside the <cruise> or <approach> tags, where
+          obviously property input is not available.  It can be used,
+          for example, to inform the solver that the approach
+          performance values assume full flaps, etc...
+
+          axis:  Name of the control input (i.e. a property name)
+          value: Value of the control axis.
 
 rotor:    A rotor. Used for simulating helicopters. You can have one, two
           or even more.