[Contents] [Index] [Help] [Retrace] [Browse <] [Browse >]

by Christian Ludwig - Multimedia Standards Engineer, CATS


IFF has been one of the keys to the Amiga's superiority in multimedia
applications, allowing interchange of media elements between packages.
The wealth of standard IFF FORMs and chunks gives the Amiga user
data-sharing capabilities that are virtually unequaled on other systems.
The Amiga's ability to render an image, touch it up, convert it to a
different display mode, and load it into in another package is something
that is a chore on other platforms, simply because the format of the image
file may be different from one application to the next.  IFF files lessen
the need for ``conversion'' software, because most Amiga applications can
read and write them.

Since its introduction as an open standard in 1985, IFF has widened to
encompass data of many sorts--and the need for new IFF types continues to
grow.  To satisfy these growing needs, developers will continue to define
and support new IFF types.  Now that both the console and iffparse.library
support sharing IFF files through the clipboard in release 2.0, IFF
support is more important than ever.

When developing a new IFF type, there are several steps you should follow:

* Discuss needs and specifications within the developer community and with
  Commodore.

    The most important thing about designing IFF FORMs and chunks is
    that they meet the data storage and transfer needs of multiple
    applications.  When more than one product uses the same IFF
    type, the market widens for all products that use that IFF type.
    Users are not forced to use one product or another, but can buy
    as many as they need to get the job done, fully utilizing all
    the features that each product has to offer.  This step helps to
    ensure that a proposed IFF form or chunk type is flexible and
    isn't redundant.  A good way to start this kind of discussion is
    to post a message in Commodore's amiga.dev/iff conference on the
    BIX electronic network.  Also, feel free to contact me to
    discuss your IFF needs and issues.  You can reach me at (215)
    431-9316 or on BIX (cludwig).  I can also be reached via UseNet
    InterNet e-mail at:

        chrisl@cbmvax.commodore.com or ...[uunet|rutgers]!cbmvax!chrisl.


* Implement the new type and conduct feasibility tests.

    Before settling on a format, set up prototype code to test the
    proposed format.  This will help to prove that the idea is sound
    and can be implemented in software before others try to use it.


* Submit specifications to Commodore.

    Coming up with a new kind of IFF FORM or chunk is easy--almost
    too easy. Just about anyone can follow the IFF guidelines and
    define their own FORM or chunk.  If every application used a
    different IFF FORM, one application would be unable to share
    data with another because it can't read the other application's
    IFF FORM1.  It's like making up a new word for something that
    everyone sees every day.  You may understand what the word
    means, but when you try to use your new word to communicate with
    others, they won't understand you.  Further, deciding to use a
    pre-existing FORM or chunk in a new and different way is a lot
    like making up your own meaning for a pre-existing word.
    Confusion results when programs try to read FORMs or chunks
    whose meaning was altered by a non-conforming program.

    To avoid the problem of incompatible IFF types, register your
    new IFF types with CATS.  CATS acts as a ``dictionary'' of IFF
    types.  By submitting your proposals for FORM or chunk types to
    CATS, you help prevent duplication of an existing data type.
    Also, if you register your new IFF type, it is more likely that
    it will be adopted as an IFF standard that other applications
    will use.  For example, the ANIM form came from third party
    developers who proposed and refined the format.  Now ANIM is the
    de facto standard for animation files.

    CATS wants this last step to be as easy as possible, so we've
    included a standard form at the end of this article.  Just
    photocopy the form whenever you need it, and use it as a guide
    for submitting your FORM or chunk specifications.  The
    registration form should be

    accompanied by a disk containing ASCII text files of the IFF
    specification. If available, include some code examples which
    demonstrate the use of the IFF type.  Please do not place
    copyright notices in your specifications or examples so that
    CATS may make them available to other developers.

    For an excellent example of a third party FORM specification,
    see the WORD FORM in the third party specification section of
    the IFF manual.   For an example of chunk descriptions, examine
    the 8SVX FORM's SEQN and FADE chunks in the same section.

    Note that even you don't plan to release the specifications of
    your FORM or chunk, you must still register the name with CATS.
    This is the only way to prevent name conflicts in IFF files.
    You should register your FORM and chunk names before finalizing
    your product and its documentation in case there is a name
    conflict with an existing IFF type.


* Distribute final specifications to the developer community.

    Once you have registered your FORM or chunk with CATS, you
    should release the specifications of the chunk to the developer
    community.  Although CATS publishes FORMs and chunks in the IFF
    Manual and occasionally in Amiga Mail, developers should not
    rely on these methods to distribute their IFF type
    specification.  One of the most efficient ways to distribute
    your specification is to include it in your application's
    documentation.  Another good distribution method is to post the
    final specifications in amiga.dev/iff on BIX.  Distributing the
    specification will increase the probability of your form or
    chunk becoming a standard.

   CATS IFF FORM/Chunk Registration Form