
AMPlay Source License
~~~~~~~~~~~~~~~~~~~~~

Introduction
~~~~~~~~~~~~

AMPlay makes use of the Dr Wimp library, which is covered by its own
license arrangements.

The following license applies to the AMPlay source, excluding the Dr
Wimp library.

The AMPlay source code is copyright Mike Sandells. It is freely
available, subject to the license below.

Your permission to use the source code depends on your acceptance of
these terms. If you accept the terms, but are subsequently in breach
of them, then your permission to use the source code is revoked.


Definitions
~~~~~~~~~~~

The 'Source code' is considered to include not only the BASIC source,
but also the accompanying text files, window templates, sprites and
documentation. It includes the equivalent files for AMPlay itself as
well as the AMPlayCfg, AMPlayRCG and AMPlayAPI applications, and the
command line program AMPlayCmd.

A 'public release' is considered to be any arrangement whereby an
arbitrary individual can obtain a copy, either by payment, free
download, or some other mechanism. A public release may include
freeware, shareware or commercial releases. [1]


Application Categories
~~~~~~~~~~~~~~~~~~~~~~

All applications which use AMPlay source code in the process of their
creation are considered to fall into one of two categories:

1. Applications which include AMPlay source code.

   Applications fall into this category if they do not fall into
   category 2, below.

2. Customised versions of AMPlay.

   An application is a customised version of AMPlay if some AMPlay
   source code is used in the process of creating that application,
   and either;

   - It purports to be a version (including a customised version)
     of AMPlay.
  
   Or;
  
   - It utilises 50% or more of AMPlay source code (either by file
     size, or by lines of code).

   Or both.


Use of the Source Code
~~~~~~~~~~~~~~~~~~~~~~

The source code may be used to produce applications in either
category 1 or category 2. If the application so produced is not to be
released publicly, then you are not required to take any action in
order to conform with this license.

If, however, the application is to be released publicly, then the
following requirements must be met. The requirements vary depending
on which category the application is in.

If producing an application that falls into category 1, defined
above, the requirements are:

  - You must state in the documentation accompanying the application
    that you have made use of AMPlay source code.

  - If you have modified AMPlay source code in the process of
    including it in your application, the modified version of that
    AMPlay source code (or instructions for making the relevant
    modifications) must be made publicly available. [2]

If producing an application that falls into category 2, defined
above, the requirements are:

  - The application must have been created from the AMPlay source
    materials, not by modification of the AMPlay binaries.

  - The application must either continue to conform with the
    requirements of the Dr Wimp license, or must no longer rely on
    the Dr Wimp library. [3]

  - Documentation must accompany the application, with a prominent
    indication that the application is a customised version of AMPlay
    (it must also indicate what version of AMPlay was customised).

  - The 'About this program' window  must indicate that the
    application is a customised version of AMPlay. (Including
    'Custom' on the end of the AMPlay version information is
    sufficient). If porting AMPlay to some other platform, then use
    the equivalent mechanism (e.g. in Windows, it would be on the
    Help, About window).[4]

  - If the messaging API is implemented, the customised version
    should, at least, be able to respond to AMPlay_Request queries
    about the AMPlay version by setting bit 4 in the flags of its
    reply, to indicate that it is a customised version. (Refer to
    the AMPlay documentation, section 7)

    As supplied, the above two requirements can be met by altering
    the line in the PROCuser_initialise procedure from;
  
    a_customised%=FALSE
  
    to
  
    a_customised%=TRUE

  - Any modifications you made to the AMPlay source code must be made
    public. [5]

  - The AMPlay source documentation includes the specifications for the
    AMPlay saved state format, the API, and the format of various
    blocks of information (e.g. the search and export blocks). If
    your modified version uses different formats for these blocks or
    extends the range of values that particular fields may hold, then
    the details of these formats/extensions must also be made public.


Expiry
~~~~~~

Further releases of AMPlay, and accompanying source code, may be made
via my web site. If, at any time, the most recently released version
is more than three years old [6], then the requirements above are
revoked. In that circumstance, I retain copyright, but allow free use
of the code with no requirements. If I so choose, I may waive the
above requirements at some time prior to three years after the most
recent released version. This will be done, if at all, by an explicit
statement to that effect on the AMPlay page on my web site.


Notes
~~~~~
1: e.g. If the application were downloadable from a 'secret' URL
   (i.e. one that is not linked to from any search engine accessible
   page), and that URL were posted to an 'invitiation only' mailing
   list, then that would not count as a public release. If however,
   the mailing list postings could be viewed by any user without
   being invited, then it would be considered public for the purposes
   of this license.

2: This only requires you to release the changes you've made to
   AMPlay source code, not the entire source code of your application,
   although I encourage you to do that as well.

3: In particular, note that the Dr Wimp license makes different
   provisions for freeware, shareware and commercial applications.
   AMPlay currently falls under 'freeware', but if your customised
   version does not, then you will need to review the Dr Wimp license
   and ensure you conform with the sections that are relevant.

4: This applies even if there is no non-customised version available
   for that platform. In the case of a port, 'Derived from' is an
   acceptable substitute for 'Custom'.

5: Similarly to note 2, this only requires the release of the changes
   you've made to the AMPlay source code. E.g If your customised
   version of AMPlay comprises changes to AMPlay source code, and the
   inclusion of an extra library from some other source, then this
   clause does not require the source code of that extra library to
   be released, just the modified AMPlay source.

6: i.e. when three years have passed without a release being made.
   This does not mean that any particular version loses the
   requirements when it is three years old.


Intent
~~~~~~

This section is not part of the license agreement, but exists to
clarify the intent of this agreement.

The intent in this license is to ensure that code that I have made
available remains available, while at the same time allowing users to
modify it for their own purposes and share that modified version with
friends and family without being burdened with onerous requirements.

However, if you want to release such a modified version, then I don't
want it to be confused with versions that I release - i.e. it isn't
'official'. If you provide me with the modified source, I may be able
to include it in future official versions (or I may not - some
modifications are mutually exclusive).

The expiry clause exists such that if I cease developing AMPlay, the
requirement for customised versions to be so labelled ceases.

________________________________________________________________________
Copyright  2008 Mike Sandells, mike@mikejs.com
Last Modified: 30.05.2008
