diff --git a/documentation/Installation.txt b/documentation/Installation.txt
index 6741fd06d9bdb774b9838ce5273ced7bad8e2d8d..1fcfd147dd86abf0c30dcb2679bebd0b0a529e77 100644
--- a/documentation/Installation.txt
+++ b/documentation/Installation.txt
@@ -39,8 +39,6 @@ Development snapshots are available under the name
 In the releases directory there is always a symbolic link to the
 `latest snapshot`_.
 
-Release notes are contained in the documentation, see :doc:`Notes`.
-
 Older releases can be either downloaded from the PSI website
 
    http://epics.web.psi.ch/software/sequencer/download
diff --git a/documentation/Manual.txt b/documentation/Manual.txt
index 6a6ba2330a0ff9d29dd307557d536babbc7c1c4f..899efcd3813514ef346ab2a22eb93995068e7356 100644
--- a/documentation/Manual.txt
+++ b/documentation/Manual.txt
@@ -11,7 +11,8 @@ Users' Guide
    Using
    Reference
    Examples
-   Notes
+   ReleaseNotes-2-1
+   ReleaseNotes-2-0-and-older
    KnownProblems
    Plans
 
diff --git a/documentation/ReleaseNotes-2-0-and-older.txt b/documentation/ReleaseNotes-2-0-and-older.txt
new file mode 100644
index 0000000000000000000000000000000000000000..4e9c22d6b07d50f33e8b9907f85c10e17fd85299
--- /dev/null
+++ b/documentation/ReleaseNotes-2-0-and-older.txt
@@ -0,0 +1,512 @@
+Release Notes for Version 2.0 and Older
+=======================================
+
+Releases 2.0.x
+--------------
+
+.. _Release_Notes_2.0.14:
+
+Release 2.0.14
+^^^^^^^^^^^^^^
+
+-  fix windows build by using osiUnistd.h instead of unistd.h
+
+.. _Release_Notes_2.0.13:
+
+Release 2.0.13
+^^^^^^^^^^^^^^
+
+-  added upload target to top-level Makefile
+
+-  64bit fixes:
+
+   *  changed bitMask from unsigned long to epicsUInt32
+   *  output error message when trying to "assign" integers
+      that are longer than 32 bits
+   *  use fixed size types for pvXxx types (particularly,
+      use epicsInt32 instead of long in typedef pvLong)
+
+-  several minor fixes
+
+-  ansificated compiler sources
+
+.. _Release_Notes_2.0.12:
+
+Release 2.0.12
+^^^^^^^^^^^^^^
+
+-  Directory dependencies to permit building with the parallel make
+   option -j.
+
+-  Library dependencies changes to match EPICS Base R3.14.10.
+
+-  Added the routine seqcaStats to src/seq/seq_qry.c.
+
+-  Cleaned up compiler warnings in src/snc.
+
+
+.. _Release_Notes_2.0.11:
+
+Release 2.0.11
+^^^^^^^^^^^^^^
+
+-  A bug fix in src/seq/seq_ca.c found by Stephanie Allison and Till
+   Straumann.
+
+-  Moved the PV build configuration variables from configure/RELEASE to
+   the new CONFIG_SITE file, and moved CONFIG_APP functionality into
+   CONFIG. Also set CHECK_RELEASE to YES by default in
+   configure/Makefile.
+
+.. _Release_Notes_2.0.10:
+
+Release 2.0.10
+^^^^^^^^^^^^^^
+
+-  Release 2.0.10 contains the new diagnostic seqcar(verbosity). This
+   produces report about all the channel access connections from sequence
+   programs.
+
+.. _Release_Notes_2.0.9:
+
+Release 2.0.9
+^^^^^^^^^^^^^
+
+-  seq_connect now initializes assignCount and numMonitoredChans BEFORE
+   connecting to the PVs. With the previous versions it was possible to
+   signal that everything was connected and the first monitor received
+   before it actually happened.
+
+
+.. _Release_Notes_2.0.8:
+
+Release 2.0.8
+^^^^^^^^^^^^^
+
+-  seq_main.c was casting a pointer to an int. On some architectures
+   this caused a warning message.
+
+-  Support for cygwin32 on windows was added.
+
+-  test/pv/ was still still using osiThread.h. This is replaced by
+   epicsThread.
+
+-  test/simple and test/validate now use EPICS_BASE_IOC_LIBS instead of
+   EPICS_BASE_HOST_LIBS.
+
+
+.. _Release_Notes_2.0.7:
+
+Release 2.0.7
+^^^^^^^^^^^^^
+
+-  A sequence program could wait up to 20 seconds before all PVs
+   connect and the first monitor occurs for each monitored PV. This
+   could happen even if all PVs are local. This is now fixed.
+
+
+.. _Release_Notes_2.0.6:
+
+Release 2.0.6
+^^^^^^^^^^^^^
+
+-  When looking to see if all PVs have connected it now looks for first
+   monitor coming back as well as all PVs connecting. This prevents the
+   chance of using the value of a PV before it is given a value.
+
+
+.. _Release_Notes_2.0.5:
+
+Release 2.0.5
+^^^^^^^^^^^^^
+
+-  Replaced the C++ static constructor used for command registration
+   with a generated registrar routine that must be listed in an IOC's
+   xxxInclude.dbd file for use on on non-vxWorks systems.  This
+   approach permits sequence programs to be placed in an external
+   support library and pulled in automatically by adding the
+   registrar() statement in the xxxInclude.dbd and linking the IOC
+   application against that library.  For a sequence program that
+   starts::
+
+       program demo ...
+
+   the dbd file should contain the statement::
+
+       registrar(demoRegistrar)
+
+   This is only required for applications that use the iocshell,
+   vxWorks IOCs will work as before.
+
+-  Modifications to the demo/test programs needed to run these under
+   Base R3.14.3.
+
+-  The config directory has been removed.
+
+-  Replaced devSequencer.c with version supplied by Kukhee Kim, SLAC
+
+
+.. _Release_Notes_2.0.4:
+
+Release 2.0.4
+^^^^^^^^^^^^^
+
+Changes have been made to follow the R3.14.2 build rules.
+Generate an example application to see how to build sequencer applications.
+Note that this version requires R3.14.2 of base.
+
+
+.. _Release_Notes_2.0.1:
+
+Release 2.0.1
+^^^^^^^^^^^^^
+
+Eric Norum, Janet Anderson, and I [Marty Kraimer] spent some time
+making the sequencer work with EPICS release 3.14.0alpha2. We are NOT
+responsible for the sequencer. Release 2.0.1 should be considered an
+interim release until Greg White and Ron Chestnut have time to become
+familiar with the changes we made.
+
+We did not update the SNL/SEQ manual. The following briefly describes
+documentation changes needed for the 2.0.0 reference manual.
+
+-  New Compiler Options
+
+   *  +i Code will be generated to automatically register sequence
+      functions and programs. This is the default
+
+   *  -i Do not generate registration code. Only useful on vxWorks to
+      save a small amount of memory.
+
+-  Compiling and linking a program under Unix.
+
+-  The exampleApp supplied with base demonstrates how to build sequence
+   programs that work with epics databases. It also shows how to build
+   a sequence program that runs without databases.
+
+-  test/simple also shows how to build a sequence program that runs 
+   without databases running in the same process.
+
+-  The main program generated by the +m compiler options looks like::
+
+      int main(int argc,char *argv[]) {
+          char * macro_def;
+          epicsThreadId threadId;
+          int callIocsh = 0;
+          if(argc>1 && strcmp(argv[1],"-s")==0) {
+              callIocsh=1;
+              --argc; ++argv;
+          }
+          macro_def = (argc>1)?argv[1]:NULL;
+          threadId = seq((void *)&snctest, macro_def, 0);
+          if(callIocsh) {
+              iocsh(0);
+          } else {
+              epicsThreadExitMain();
+          }
+          return(0);
+      }
+
+   Such a program is invoked via the call like::
+
+      <name> -s "xxx=xxx,..."
+
+   If the -s option is specified iocsh is started. This allows the user
+   to issue sequence commands like seqShow. If the -s option is not
+   given, the shell is not started. If a program is started as a
+   background process the -s option should not be specified.
+
+   The other option argument is macro substitutions.
+
+Comments about changes made for release 2.0.1
+
+-  I think config should be removed. Just require 3.14 and later.
+
+-  in test/simple and test/validate::
+
+     assign v to "grw:xxxExample";
+
+   changed to
+
+     assign v to "{user}:xxxExample";
+
+-  in src/dev:
+   *  dev.c renamed to devSequencer.c
+   *  seq.dbd renamed to devSequencer.dbd
+
+-  in src/snc
+   *  The generated main program is different. See below
+   *  New option -i. See above
+   *  Made many changes to get rid of warning messages.
+
+-  in src/seq
+   *  seq now returns an epicsThreadId
+   *  all addresses now printed with %p
+   *  several epicsPrintf replaced with printf.
+   *  Got rid of simple shell supplied by seq. No longer needed.
+
+-  in src/pv
+
+   *  Only LIBRARY = pv is generated. It includes the stuff
+      that was in pvKtl, pvCa, and pvFile if they are requested.
+   *  This was done because the old way caused a circular dependency
+      that is not accepted by windows.
+
+
+.. _Release_Notes_2.0:
+
+Release 2.0
+-----------
+
+Version 2.0 of the sequencer and state notation compiler is
+available for EPICS release R3.14 and later. We have added several
+enhancements to the language and to the run-time sequencer. State
+programs must be compiled under the new state notation compiler to
+execute properly with the new sequencer. However, under most
+circumstances no source-level changes to existing programs are
+required.
+
+Portability changes
+^^^^^^^^^^^^^^^^^^^
+
+These changes allow programs to run unchanged on hosts and
+IOCs.
+
+Replaced VxWorks dependencies with OSI routines
+   All VxWorks routines have been replaced with the appropriate OSI
+   (Operating System Independent) routines. State programs can run in
+   any environment for which there is an OSI implementation.
+
+Unused (and undocumented) ``VX_OPT`` option has been removed.
+
+Replaced direct channel access calls with new PV API
+   All CA calls have been replaced with equivalent calls to a new PV
+   (process variable) API which can be layered on top of not just CA
+   but also other message systems. See :doc:`PV-API`.
+
+Added optional generation of main program
+   The new :option:`+m` (main) option generates a C main program whose
+   single argument is a list of macro assignments.
+
+   When this option is enabled, the main thread reads from standard
+   input and can execute ``seqShow``, ``seqChanShow`` etc. on demand.
+   End of file causes the sequencer to exit.
+
+New Language Features
+^^^^^^^^^^^^^^^^^^^^^
+
+Entry handler
+   A one-off :token:`entry` handler can be supplied (c.f. the
+   existing :token:`exit` handler). This is called once, at sequencer
+   start-up, in the context of the first state set, before the
+   remaining state set threads have been created. See
+   :ref:`GlobalEntryExit`.
+
+Entry and exit actions
+   The :token:`entry` block of a state is executed each time the state is
+   entered; the :token:`exit` block is executed each time the state is left.
+   Note that these blocks are associated with a state and are not the
+   same as the one-off entry and exit handlers. See
+   :ref:`state entry and exit blocks`.
+
+State options
+   :option:`-t`, :option:`-e` and :option:`-x` are now recognized
+   options within the scope of a state. :option:`-t` inhibits the
+   "timer reset" on re-entry to a state from itself; :option:`-e` (for
+   "entry") is used with the new :token:`entry` block, and forces the
+   :token:`entry` statements to be executed on all entries to a state, even
+   if from the same state; :option:`-x` (for "exit") is complementary
+   to :option:`-e`, but for the new :token:`exit` block. See
+   :ref:`StateOption`.
+
+Queueable monitors
+   Monitor messages can be queued and then dequeued at leisure. This
+   means that monitor messages are not lost, even when posted rapidly
+   in succession. This feature is supported by new :token:`syncq`,
+   :c:func:`pvGetQ` and :c:func:`pvFreeQ` language elements, and a new
+   ``seqQueueShow`` routine. When SNL arrays are used, a single queue
+   is shared by the process variables associated with the
+   elements of the array, which can be useful for parallel control. See
+   :ref:`QueuingMonitors` and :token:`syncq`.
+
+.. _Device support:
+
+Device support
+   An device support module has been added. This allows EPICS records
+   to reference sequencer internals. At present this is very basic
+   and can only return state-set names. See
+   :ref:`Verifyingtheinstallation` for a well-hidden example (look for
+   ``caget ss0``).
+
+.. _Local variables:
+
+Local variables
+   SNL does not support the declaration of local variables. However,
+   the C code generated for a :token:`when` clause is now placed within an
+   extra level of braces and the C escape mechanism can be used to
+   declare a local variable. See :ref:`variable scope`.
+
+More functions are safe in action code
+   In previous versions, some functions, e.g. :c:func:`pvPut`, have acquired
+   a resource lock and others, e.g. :c:func:`efTestAndClear`, have not. Those
+   that didn't were intended for use in action code and those that did
+   not were intended for use in :token:`when` clauses. This was confusing
+   and dangerous. All such functions now acquire a mutex (that can be
+   taken recursively).
+
+Asynchronous puts
+   :c:func:`pvPut` can now put process variables asynchronously by using an
+   extra ``ASYNC`` argument. Completion can be tested using the new
+   :c:func:`pvPutComplete`. Arrays are supported (so :c:func:`pvPutComplete` can be
+   used to test whether a set of puts has completed). See also
+   :ref:`AsynchronousUseofpvPut`.
+
+Synchronous/asynchronous override on gets and puts
+   :c:func:`pvGet` and :c:func:`pvPut` both accept an optional ``SYNC`` or
+   ``ASYNC`` argument that, for :c:func:`pvGet`, overrides the default as set
+   using the :option:`-a` option and, for :c:func:`pvPut`, overrides the
+   default synchronous behavior.
+
+Sequencer deletion re-written
+   Sequencer deletion has been completely re-written. You can no longer
+   delete a sequencer by deleting one of its tasks. Instead you must
+   use the new ``seqStop`` routine. See
+   :ref:`Stopping the State Program Tasks`.
+
+efClear can wake up state sets
+   Clearing an event flag can now wake up state sets that reference
+   the event flag in :token:`when` tests.
+
+More C syntax is supported
+   The :token:`to` in :token:`assign`, :token:`sync` and :token:`syncq` statements is now
+   optional.
+
+   Compound expressions such as ``i=1,j=2`` (often used in ``for``
+   loops) are now permitted.
+
+   Variables can now be initialized in declarations such as ``int
+   i=2;``.
+
+   Pre-processor lines are now permitted between state sets and states
+   (relaxes restrictions on using ``#include`` to include code).
+
+   ``~`` (complement) and ``^`` (exclusive or) operators are permitted.
+
+   ANSI string concatenation, e.g. ``"xxx" "yyy"`` is the same as
+   ``"xxxyyy"``, is supported.
+
+   Full exponential representation is supported for numbers
+   (previously couldn't use ``E`` format).
+
+Bugs fixed
+^^^^^^^^^^
+
+Avoidance of segmentation violations
+   SEGV no longer occurs if an undeclared variable or event flag is
+   referenced
+
+   SEGV no longer occurs if the last bit of an event mask is used
+
+   SEGV no longer occurs when doing ``seqShow`` and there was no
+   previous state
+
+   Miscellaneous other problems found by purify were fixed.
+
+Avoidance of race condition which prevented monitors from being enabled
+   If a connection handler was called before ``seq_pvMonitor``, a race
+   condition meant that the ``ca_add_array_event`` routine might
+   never get called.
+
+Miscellaneous
+^^^^^^^^^^^^^
+
+Compilation warnings have been avoided wherever possible.
+
+A 60Hz system clock frequency is no longer assumed.
+
+Error reporting is now more consistent; it is currently just using
+``errlogPrintf``.
+
+The new EPICS R3.14 *configure*-based make rules are used.
+
+Future Plans
+^^^^^^^^^^^^
+
+Several items remain unsupported or only partially supported. Users
+are encouraged to provide feedback on this list or on other desired
+items.
+
+Device support
+   This is partially supported. See `Device support`_.
+
+Local variables
+   These are partially supported. See `Local variables`_.
+
+pvNew dynamic loading
+   This would remove some undesirable library dependencies. See
+   :ref:`pvApiOverview`.
+
+Hierarchical states
+   This would be a major enhancement and would, incidentally, bring
+   the sequencer model into very close agreement with the Harel model
+   that is espoused by the UML. Events would be propagated up the
+   state hierarchy.
+
+.. _Release_Notes_1.9:
+
+Release 1.9
+-----------
+
+With version 1.9, we have incorporated many extensions to
+the state notation language. Some of these changes offer
+significant advantages for programs and systems with a large number
+of process variables.
+
+Number of process variables
+   The previous restriction on the number of process variables
+   that could be defined no longer applies. Only the amount of memory
+   on the target processor limits the number of variables.
+
+Array assignments
+   Individual elements of an array may be assigned to process
+   variables. This feature simplifies many codes that contain groups
+   of similar variables. Furthermore, double-subscripted arrays allow
+   arrays of array-valued variables.
+
+Dynamic assignments
+   Process variables may now be dynamically assigned or
+   re-assigned within the language at run time.
+
+Hex constants
+   Hexadecimal numbers are now permitted within the language syntax.
+   Previously, these had to be defined in escaped C code.
+
+Time stamp
+   The programmer now has access to the time stamp associated with a
+   process variable.
+
+Pointers
+   Variables may now be declared as pointers.
+
+seqShow
+   We enhanced the ``seqShow`` command to present more relevant
+   information about the running programs.
+
+seqChanShow
+   The ``seqChanShow`` command now allows specification of a search
+   string on the variable name, permits forward and backward stepping
+   or skipping through the variable list, and optionally displays only
+   variables that are or are not connected.
+
+   The syntax for displaying only variables that are not connected is
+   ``seqChanShow "<seq_program_name>", "-"``
+
+ANSI prototypes
+   SNC include files now use ANSI prototypes for all functions. To the
+   programmer this means that an ANSI compiler must be used to compile
+   the intermediate C code.
+
+Fix for task deletion
+   Version 1.8 of the sequencer didn't handle the task deletion
+   properly if a task tried to delete itself. We corrected this in
+   version 1.9.
diff --git a/documentation/Notes.txt b/documentation/ReleaseNotes-2-1.txt
similarity index 60%
rename from documentation/Notes.txt
rename to documentation/ReleaseNotes-2-1.txt
index e97806d7cb4f1674de5fafe58405059563b9da8c..39317267f6b78b0fde1765954adc138428537909 100644
--- a/documentation/Notes.txt
+++ b/documentation/ReleaseNotes-2-1.txt
@@ -1,5 +1,5 @@
-Release Notes
-=============
+Release Notes for Version 2.1
+=============================
 
 .. _Release_Notes_2.1.12:
 
@@ -743,514 +743,3 @@ Other internal changes include:
   became anonymous struct types)
 * in order to implement the state change command, an additional
   argument is needed for the action callback
-
-
-Releases 2.0.x
---------------
-
-.. _Release_Notes_2.0.14:
-
-Release 2.0.14
-^^^^^^^^^^^^^^
-
--  fix windows build by using osiUnistd.h instead of unistd.h
-
-.. _Release_Notes_2.0.13:
-
-Release 2.0.13
-^^^^^^^^^^^^^^
-
--  added upload target to top-level Makefile
-
--  64bit fixes:
-
-   *  changed bitMask from unsigned long to epicsUInt32
-   *  output error message when trying to "assign" integers
-      that are longer than 32 bits
-   *  use fixed size types for pvXxx types (particularly,
-      use epicsInt32 instead of long in typedef pvLong)
-
--  several minor fixes
-
--  ansificated compiler sources
-
-.. _Release_Notes_2.0.12:
-
-Release 2.0.12
-^^^^^^^^^^^^^^
-
--  Directory dependencies to permit building with the parallel make
-   option -j.
-
--  Library dependencies changes to match EPICS Base R3.14.10.
-
--  Added the routine seqcaStats to src/seq/seq_qry.c.
-
--  Cleaned up compiler warnings in src/snc.
-
-
-.. _Release_Notes_2.0.11:
-
-Release 2.0.11
-^^^^^^^^^^^^^^
-
--  A bug fix in src/seq/seq_ca.c found by Stephanie Allison and Till
-   Straumann.
-
--  Moved the PV build configuration variables from configure/RELEASE to
-   the new CONFIG_SITE file, and moved CONFIG_APP functionality into
-   CONFIG. Also set CHECK_RELEASE to YES by default in
-   configure/Makefile.
-
-.. _Release_Notes_2.0.10:
-
-Release 2.0.10
-^^^^^^^^^^^^^^
-
--  Release 2.0.10 contains the new diagnostic seqcar(verbosity). This
-   produces report about all the channel access connections from sequence
-   programs.
-
-.. _Release_Notes_2.0.9:
-
-Release 2.0.9
-^^^^^^^^^^^^^
-
--  seq_connect now initializes assignCount and numMonitoredChans BEFORE
-   connecting to the PVs. With the previous versions it was possible to
-   signal that everything was connected and the first monitor received
-   before it actually happened.
-
-
-.. _Release_Notes_2.0.8:
-
-Release 2.0.8
-^^^^^^^^^^^^^
-
--  seq_main.c was casting a pointer to an int. On some architectures
-   this caused a warning message.
-
--  Support for cygwin32 on windows was added.
-
--  test/pv/ was still still using osiThread.h. This is replaced by
-   epicsThread.
-
--  test/simple and test/validate now use EPICS_BASE_IOC_LIBS instead of
-   EPICS_BASE_HOST_LIBS.
-
-
-.. _Release_Notes_2.0.7:
-
-Release 2.0.7
-^^^^^^^^^^^^^
-
--  A sequence program could wait up to 20 seconds before all PVs
-   connect and the first monitor occurs for each monitored PV. This
-   could happen even if all PVs are local. This is now fixed.
-
-
-.. _Release_Notes_2.0.6:
-
-Release 2.0.6
-^^^^^^^^^^^^^
-
--  When looking to see if all PVs have connected it now looks for first
-   monitor coming back as well as all PVs connecting. This prevents the
-   chance of using the value of a PV before it is given a value.
-
-
-.. _Release_Notes_2.0.5:
-
-Release 2.0.5
-^^^^^^^^^^^^^
-
--  Replaced the C++ static constructor used for command registration
-   with a generated registrar routine that must be listed in an IOC's
-   xxxInclude.dbd file for use on on non-vxWorks systems.  This
-   approach permits sequence programs to be placed in an external
-   support library and pulled in automatically by adding the
-   registrar() statement in the xxxInclude.dbd and linking the IOC
-   application against that library.  For a sequence program that
-   starts::
-
-       program demo ...
-
-   the dbd file should contain the statement::
-
-       registrar(demoRegistrar)
-
-   This is only required for applications that use the iocshell,
-   vxWorks IOCs will work as before.
-
--  Modifications to the demo/test programs needed to run these under
-   Base R3.14.3.
-
--  The config directory has been removed.
-
--  Replaced devSequencer.c with version supplied by Kukhee Kim, SLAC
-
-
-.. _Release_Notes_2.0.4:
-
-Release 2.0.4
-^^^^^^^^^^^^^
-
-Changes have been made to follow the R3.14.2 build rules.
-Generate an example application to see how to build sequencer applications.
-Note that this version requires R3.14.2 of base.
-
-
-.. _Release_Notes_2.0.1:
-
-Release 2.0.1
-^^^^^^^^^^^^^
-
-Eric Norum, Janet Anderson, and I [Marty Kraimer] spent some time
-making the sequencer work with EPICS release 3.14.0alpha2. We are NOT
-responsible for the sequencer. Release 2.0.1 should be considered an
-interim release until Greg White and Ron Chestnut have time to become
-familiar with the changes we made.
-
-We did not update the SNL/SEQ manual. The following briefly describes
-documentation changes needed for the 2.0.0 reference manual.
-
--  New Compiler Options
-
-   *  +i Code will be generated to automatically register sequence
-      functions and programs. This is the default
-
-   *  -i Do not generate registration code. Only useful on vxWorks to
-      save a small amount of memory.
-
--  Compiling and linking a program under Unix.
-
--  The exampleApp supplied with base demonstrates how to build sequence
-   programs that work with epics databases. It also shows how to build
-   a sequence program that runs without databases.
-
--  test/simple also shows how to build a sequence program that runs 
-   without databases running in the same process.
-
--  The main program generated by the +m compiler options looks like::
-
-      int main(int argc,char *argv[]) {
-          char * macro_def;
-          epicsThreadId threadId;
-          int callIocsh = 0;
-          if(argc>1 && strcmp(argv[1],"-s")==0) {
-              callIocsh=1;
-              --argc; ++argv;
-          }
-          macro_def = (argc>1)?argv[1]:NULL;
-          threadId = seq((void *)&snctest, macro_def, 0);
-          if(callIocsh) {
-              iocsh(0);
-          } else {
-              epicsThreadExitMain();
-          }
-          return(0);
-      }
-
-   Such a program is invoked via the call like::
-
-      <name> -s "xxx=xxx,..."
-
-   If the -s option is specified iocsh is started. This allows the user
-   to issue sequence commands like seqShow. If the -s option is not
-   given, the shell is not started. If a program is started as a
-   background process the -s option should not be specified.
-
-   The other option argument is macro substitutions.
-
-Comments about changes made for release 2.0.1
-
--  I think config should be removed. Just require 3.14 and later.
-
--  in test/simple and test/validate::
-
-     assign v to "grw:xxxExample";
-
-   changed to
-
-     assign v to "{user}:xxxExample";
-
--  in src/dev:
-   *  dev.c renamed to devSequencer.c
-   *  seq.dbd renamed to devSequencer.dbd
-
--  in src/snc
-   *  The generated main program is different. See below
-   *  New option -i. See above
-   *  Made many changes to get rid of warning messages.
-
--  in src/seq
-   *  seq now returns an epicsThreadId
-   *  all addresses now printed with %p
-   *  several epicsPrintf replaced with printf.
-   *  Got rid of simple shell supplied by seq. No longer needed.
-
--  in src/pv
-
-   *  Only LIBRARY = pv is generated. It includes the stuff
-      that was in pvKtl, pvCa, and pvFile if they are requested.
-   *  This was done because the old way caused a circular dependency
-      that is not accepted by windows.
-
-
-.. _Release_Notes_2.0:
-
-Release 2.0
------------
-
-Version 2.0 of the sequencer and state notation compiler is
-available for EPICS release R3.14 and later. We have added several
-enhancements to the language and to the run-time sequencer. State
-programs must be compiled under the new state notation compiler to
-execute properly with the new sequencer. However, under most
-circumstances no source-level changes to existing programs are
-required.
-
-Portability changes
-^^^^^^^^^^^^^^^^^^^
-
-These changes allow programs to run unchanged on hosts and
-IOCs.
-
-Replaced VxWorks dependencies with OSI routines
-   All VxWorks routines have been replaced with the appropriate OSI
-   (Operating System Independent) routines. State programs can run in
-   any environment for which there is an OSI implementation.
-
-Unused (and undocumented) ``VX_OPT`` option has been removed.
-
-Replaced direct channel access calls with new PV API
-   All CA calls have been replaced with equivalent calls to a new PV
-   (process variable) API which can be layered on top of not just CA
-   but also other message systems. See :doc:`PV-API`.
-
-Added optional generation of main program
-   The new :option:`+m` (main) option generates a C main program whose
-   single argument is a list of macro assignments.
-
-   When this option is enabled, the main thread reads from standard
-   input and can execute ``seqShow``, ``seqChanShow`` etc. on demand.
-   End of file causes the sequencer to exit.
-
-New Language Features
-^^^^^^^^^^^^^^^^^^^^^
-
-Entry handler
-   A one-off :token:`entry` handler can be supplied (c.f. the
-   existing :token:`exit` handler). This is called once, at sequencer
-   start-up, in the context of the first state set, before the
-   remaining state set threads have been created. See
-   :ref:`GlobalEntryExit`.
-
-Entry and exit actions
-   The :token:`entry` block of a state is executed each time the state is
-   entered; the :token:`exit` block is executed each time the state is left.
-   Note that these blocks are associated with a state and are not the
-   same as the one-off entry and exit handlers. See
-   :ref:`state entry and exit blocks`.
-
-State options
-   :option:`-t`, :option:`-e` and :option:`-x` are now recognized
-   options within the scope of a state. :option:`-t` inhibits the
-   "timer reset" on re-entry to a state from itself; :option:`-e` (for
-   "entry") is used with the new :token:`entry` block, and forces the
-   :token:`entry` statements to be executed on all entries to a state, even
-   if from the same state; :option:`-x` (for "exit") is complementary
-   to :option:`-e`, but for the new :token:`exit` block. See
-   :ref:`StateOption`.
-
-Queueable monitors
-   Monitor messages can be queued and then dequeued at leisure. This
-   means that monitor messages are not lost, even when posted rapidly
-   in succession. This feature is supported by new :token:`syncq`,
-   :c:func:`pvGetQ` and :c:func:`pvFreeQ` language elements, and a new
-   ``seqQueueShow`` routine. When SNL arrays are used, a single queue
-   is shared by the process variables associated with the
-   elements of the array, which can be useful for parallel control. See
-   :ref:`QueuingMonitors` and :token:`syncq`.
-
-.. _Device support:
-
-Device support
-   An device support module has been added. This allows EPICS records
-   to reference sequencer internals. At present this is very basic
-   and can only return state-set names. See
-   :ref:`Verifyingtheinstallation` for a well-hidden example (look for
-   ``caget ss0``).
-
-.. _Local variables:
-
-Local variables
-   SNL does not support the declaration of local variables. However,
-   the C code generated for a :token:`when` clause is now placed within an
-   extra level of braces and the C escape mechanism can be used to
-   declare a local variable. See :ref:`variable scope`.
-
-More functions are safe in action code
-   In previous versions, some functions, e.g. :c:func:`pvPut`, have acquired
-   a resource lock and others, e.g. :c:func:`efTestAndClear`, have not. Those
-   that didn't were intended for use in action code and those that did
-   not were intended for use in :token:`when` clauses. This was confusing
-   and dangerous. All such functions now acquire a mutex (that can be
-   taken recursively).
-
-Asynchronous puts
-   :c:func:`pvPut` can now put process variables asynchronously by using an
-   extra ``ASYNC`` argument. Completion can be tested using the new
-   :c:func:`pvPutComplete`. Arrays are supported (so :c:func:`pvPutComplete` can be
-   used to test whether a set of puts has completed). See also
-   :ref:`AsynchronousUseofpvPut`.
-
-Synchronous/asynchronous override on gets and puts
-   :c:func:`pvGet` and :c:func:`pvPut` both accept an optional ``SYNC`` or
-   ``ASYNC`` argument that, for :c:func:`pvGet`, overrides the default as set
-   using the :option:`-a` option and, for :c:func:`pvPut`, overrides the
-   default synchronous behavior.
-
-Sequencer deletion re-written
-   Sequencer deletion has been completely re-written. You can no longer
-   delete a sequencer by deleting one of its tasks. Instead you must
-   use the new ``seqStop`` routine. See
-   :ref:`Stopping the State Program Tasks`.
-
-efClear can wake up state sets
-   Clearing an event flag can now wake up state sets that reference
-   the event flag in :token:`when` tests.
-
-More C syntax is supported
-   The :token:`to` in :token:`assign`, :token:`sync` and :token:`syncq` statements is now
-   optional.
-
-   Compound expressions such as ``i=1,j=2`` (often used in ``for``
-   loops) are now permitted.
-
-   Variables can now be initialized in declarations such as ``int
-   i=2;``.
-
-   Pre-processor lines are now permitted between state sets and states
-   (relaxes restrictions on using ``#include`` to include code).
-
-   ``~`` (complement) and ``^`` (exclusive or) operators are permitted.
-
-   ANSI string concatenation, e.g. ``"xxx" "yyy"`` is the same as
-   ``"xxxyyy"``, is supported.
-
-   Full exponential representation is supported for numbers
-   (previously couldn't use ``E`` format).
-
-Bugs fixed
-^^^^^^^^^^
-
-Avoidance of segmentation violations
-   SEGV no longer occurs if an undeclared variable or event flag is
-   referenced
-
-   SEGV no longer occurs if the last bit of an event mask is used
-
-   SEGV no longer occurs when doing ``seqShow`` and there was no
-   previous state
-
-   Miscellaneous other problems found by purify were fixed.
-
-Avoidance of race condition which prevented monitors from being enabled
-   If a connection handler was called before ``seq_pvMonitor``, a race
-   condition meant that the ``ca_add_array_event`` routine might
-   never get called.
-
-Miscellaneous
-^^^^^^^^^^^^^
-
-Compilation warnings have been avoided wherever possible.
-
-A 60Hz system clock frequency is no longer assumed.
-
-Error reporting is now more consistent; it is currently just using
-``errlogPrintf``.
-
-The new EPICS R3.14 *configure*-based make rules are used.
-
-Future Plans
-^^^^^^^^^^^^
-
-Several items remain unsupported or only partially supported. Users
-are encouraged to provide feedback on this list or on other desired
-items.
-
-Device support
-   This is partially supported. See `Device support`_.
-
-Local variables
-   These are partially supported. See `Local variables`_.
-
-pvNew dynamic loading
-   This would remove some undesirable library dependencies. See
-   :ref:`pvApiOverview`.
-
-Hierarchical states
-   This would be a major enhancement and would, incidentally, bring
-   the sequencer model into very close agreement with the Harel model
-   that is espoused by the UML. Events would be propagated up the
-   state hierarchy.
-
-.. _Release_Notes_1.9:
-
-Release 1.9
------------
-
-With version 1.9, we have incorporated many extensions to
-the state notation language. Some of these changes offer
-significant advantages for programs and systems with a large number
-of process variables.
-
-Number of process variables
-   The previous restriction on the number of process variables
-   that could be defined no longer applies. Only the amount of memory
-   on the target processor limits the number of variables.
-
-Array assignments
-   Individual elements of an array may be assigned to process
-   variables. This feature simplifies many codes that contain groups
-   of similar variables. Furthermore, double-subscripted arrays allow
-   arrays of array-valued variables.
-
-Dynamic assignments
-   Process variables may now be dynamically assigned or
-   re-assigned within the language at run time.
-
-Hex constants
-   Hexadecimal numbers are now permitted within the language syntax.
-   Previously, these had to be defined in escaped C code.
-
-Time stamp
-   The programmer now has access to the time stamp associated with a
-   process variable.
-
-Pointers
-   Variables may now be declared as pointers.
-
-seqShow
-   We enhanced the ``seqShow`` command to present more relevant
-   information about the running programs.
-
-seqChanShow
-   The ``seqChanShow`` command now allows specification of a search
-   string on the variable name, permits forward and backward stepping
-   or skipping through the variable list, and optionally displays only
-   variables that are or are not connected.
-
-   The syntax for displaying only variables that are not connected is
-   ``seqChanShow "<seq_program_name>", "-"``
-
-ANSI prototypes
-   SNC include files now use ANSI prototypes for all functions. To the
-   programmer this means that an ANSI compiler must be used to compile
-   the intermediate C code.
-
-Fix for task deletion
-   Version 1.8 of the sequencer didn't handle the task deletion
-   properly if a task tried to delete itself. We corrected this in
-   version 1.9.
diff --git a/documentation/index.txt b/documentation/index.txt
index e9d9a1211aa4b79962522f1caa23cbda86529e84..b821780c3edee608bba5c7bb490d78b76b38b310 100644
--- a/documentation/index.txt
+++ b/documentation/index.txt
@@ -26,7 +26,8 @@ download, build, and install the software.
    Using
    Reference
    Examples
-   Notes
+   ReleaseNotes-2-1
+   ReleaseNotes-2-0-and-older
    KnownProblems
    Plans