diskMAGazine (Apr 1991) : TIV / TIV.doc

                           TEKSoft Presents...

                 _____________    ___      ___     ____
                |             |  |   |    |   |   /   /
                |____     ____|  |   |    |   |  /   /
                     |   |       |   |    |   | /   /
                     |   |       |   |    |   |/   /
                     |   |       |   |    |       /
                     |   |       |   |    |      /
                     |___| O     |___| O  |_____/ O

                              Version 1.5l


                        Released March 10, 1991

                       Written by: Thomas Krehbiel

                     Copyright © 1990,1991  TEKSoft

                           All Rights Reserved



              
        * - * - * - * - * - * - * - * - * - * - * - * - * - * - *
              

                         0.  TABLE OF CONTENTS


1. Introduction
   1.1. Distribution Information
   1.2. Quick Overview
   1.3. Requirements
2. Installation and Useage
   2.1. Installation
   2.2. CLI Useage
   2.3. Workbench Useage
   2.4. View Controls
3. Options
   3.1. Options Table
   3.2. Option Defaults File
4. Tips, Tricks, and Examples
   4.1. ANIM Brushes
   4.2. Slideshows
   4.3. DeluxePaint3 Animations
   4.4. TIV and Workbench 2.0
   4.5. TIV and HAM-E
   4.6. More Examples
5. Acknowledgements
6. The Future
7. The Author


              
        * - * - * - * - * - * - * - * - * - * - * - * - * - * - *
              

                           1.  INTRODUCTION



1.1.  Distribution Information


     TIV 1.5l is being distributed as Shareware for non-commercial
use only.  Try the program for a week or so and see if you like it.
If you find yourself using it, please consider sending a donation of
$20 or so (see `Register.doc' for details) to compensate me for the
considerable amount of time I have put into this program.  I believe
it is well worth the price.

     The files in this archive may be freely distributed for non-
commercial purposes only in their unaltered form.  No charges may be
made (beyond reasonable media and distribution costs) for said
distribution.  The author makes no warranties expressed or implied as
to the use or misuse of this program.

     If you wish to distribute this program with any commercial
product of yours, please contact me at one of the locations given at
the end of this document.  I'm sure we can work something out.


1.2.  A Quick Overview


     What is TIV?  TIV is a very complete general purpose IFF viewer.
It combines an ILBM picture viewer, ANIM Op5 animation player, and
8SVX sampled sound player all in one hopefully convenient program.
TIV can be run from CLI or from WorkBench, with many different options
available in either environment.

     A partial list of features follows:

     * Can show any type of ILBM picture, including overscan,
       HAM, Halfbright, SHAM, and Super Bitmap, with Color Cycling.
       Also includes an optional kludge hook into Dyna-Show to show
       Dynamic Hires and Dynamic HAM pictures.  Also supports
       HAM-E Super Bitmap pictures.

     * Can view any ANIM Op5 animation, including overscan, HAM, 
       Halfbright.  Supports palette changes on every frame, and
       supports color cycling during playback.  Also boasts very high
       frame rates.  Can also show DeluxePaint3 ANIM Brushes
       correctly!  Contains an optional kludge hook into Movie to show
       Sculpt-Animate movies.

     * Can play any length sound sample in either IFF 8SVX format or
       Raw format, including support for Fibonnaci-Delta compressed 
       8SVXs and stereo 8SVXs.

     * Capable of scanning a given directory for pictures, animations,
       and/or sounds for quick slideshow presentations.

     * Supports a variety of user options covering a wide range
       of applications, all accessable from CLI or Workbench.

     * Extensive WorkBench support.

     * And MUCH More...



1.3.  Requirements

     TIV should work on any model Amiga with as little as 512K (it
might even work in 256K).  However, there are certain limiting
factors:  Some pictures will require a large amount of Chip memory
to be viewable (especially interlaced HAM/HalfBrite pictures or
animations).  Also, some animations might require a large amount
of Fast memory to load completely off of disk.  In addition,
the Slideshow mode requires a generally large amount of chip memory.

     TIV requires either Workbench 2.0's "ASL.Library" or the
freely distributable "ARP.Library" in the current LIBS: directory
for it to work in Interactive Mode.  Other than this mode, neither
library is required.  Interactive mode lets you select files to
view from a file requester, one at a time.

     At this time, TIV is *NOT* able to be made resident.  Sorry.

     TIV 1.5l is largely Workbench 2.0 compatible (tested under 
Kickstart Release 36.303).  There are, however, certain idiosyncrasies 
that crop up especially displaying brushes or ANIM brushes and when 
using View mode in general.  I am researching these problems and will 
attempt to correct them in the next version (if anybody has any
suggestions, please don't hesitate to contact me).  See the section
below on Workbench 2.0 for details.


              
        * - * - * - * - * - * - * - * - * - * - * - * - * - * - *


                        2. INSTALLATION AND USEAGE

2.1.  Installation

     TIV is easy to install.  If you plan to use TIV from the CLI,
then you can simply copy the TIV program to your C: directory by
using the command:

     1> Copy TIV C:

     If you will be using TIV from Workbench, then you can simply
drag the TIV icon to wherever is convenient for you.  An appropriate
place would be your Workbench Utilities or Tools drawer.

     TIV is a self-contained program, so there are no other files to
copy other than the executable.  However, I have included a few
sample project icons that can be used to attach to your pictures,
animations, or sounds.  You can save these somewhere if you want to
use them, perhaps on your Workbench disk somewhere.  Simply drag them
where you want them.

     Also included in the archive is a version of TIV that has been
"crunched" with PowerPeak's PowerPacker 2.3a.  It is approxiamately
half the size of the regular executable but still retains all of the
same features.  If you wish to use this version (floppy users in
particular might), then simply rename it to `TIV' and copy it as
above.

              
2.2.  CLI Useage

     From CLI, TIV can be run like any other command.  It should work
in the default Stack setting of 4000 bytes.  Here is the general
format for running TIV from CLI:

     1> TIV [options] [file(s)] [[options] [file(s)] ... ]

     Notice that any number of files to view may be given on the
command line.  In addition, TIV supports Unix-style pattern matching
so you can use such filenames as `*.pic' or `My*.anim'.  Notice also
that options may fall anywhere in the command line.  The command line
is parsed in a left to right order, so options specified will modify
the following files, NOT all files in the command line.

     Filenames may optionally be enclosed in SINGLE quotes.  This
is not necessary unless you are trying to view a file whose name
matches a TIV option.  For example, if you were to try to view a
file called "Hal", TIV will think you are trying to give it the
HALFBRITE option.  The correct thing to do in this case is to enclose
the filename in single quotes, ie. "TIV 'Hal'".

     Options are given in standard AmigaDOS template format.  That
is, each option is a word like `RATE' or `VIEW'.  There are boolean
options and there are options that require a string or numeric
argument.  Where an option requires an argument, the argument must
follow immediately after the option keyword, with at least one space
seperating them.  For example, `RATE 2' or `DELAY 5'.  Option
keywords are not case sensitive, so you can use lowercase if you
want.  Keywords can also be abbreviated from CLI to save you some
typing; see the Option Table below for further details.

     Some information may be displayed in your CLI window while TIV is
running.  In particular, if any fatal errors develop, you will receive
a message informing you of the type of error and TIV will exit.  You may
also see various warning messages when there are less serious errors
encountered.

     Also, when viewing a directory recursively (RECURSIVE ALL) you will
see a listing of all the subdirectories entered similar to a Dir
command output.  Sifting files (SIFT) will also display it's output to
the CLI window.

     If no files are given on the command line, then TIV will startup
in Interactive mode.  This will bring up a file requester (either
the Arp.Library requester or the ASL.Library requester, depending on
whether you are running under 1.3 or 2.0) which will allow you to
interactively select files to view.  Any options you specify on the
command line will affect the files you select to view.  If you do not
have either ASL.Library or Arp.Library, TIV will fail if not given
any files.

     Here is the CLI "search" order for options:

          1. Read `S:TIV.Defaults' if present (see below).
          2. Read Command Line options.
          3. Read options from target file's .info file, unless
             the NOINFO option is in effect.


2.3.  Workbench Useage

     TIV provides extensive Workbench support.  There are several
ways of running TIV from the Workbench, as described below:

     A.  TIV Icon.  The first way involves just double-clicking the
         TIV program icon.  This will open TIV in Interactive mode,
         which will open a file requester allowing you to choose one
         or more files to view.  The Tool Types for the TIV icon will
         be read and the information there will be used to affect the
         files selected for viewing.  Therefore, your default TIV
         viewing options should be placed in the TIV Tool Types.  If
         you do not have either the Arp.Library under 1.3 or
         Asl.Library under 2.0, TIV will fail, since that is where
         TIV gets the file requester.
         
     B.  Extended Selection.  A second way of invoking TIV uses the
         Workbench's extended selection method.  Select one or more
         IFF file's icon, hold down the shift key, and then double
         click on the TIV icon.  TIV will then attempt to view the
         file.  TIV will first read options information from the TIV
         Tool Types array, then it will attempt to glean some more
         information out of the IFF file's Tool Types array before
         showing the file (unless you specify NOINFO=YES in the TIV
         Tool Types).  So you can specify unique information about
         the file in it's Tool Types (such as cycling, loops, rate,
         etc.) and it will be used automatically.

     C.  IFF Icon.  A third way of running TIV is to make a project 
         icon for the IFF file you want to view.  Set the path to the
         TIV program as the default tool, then enter the options you
         want to use for this IFF file in it's Tool Types array.  Once
         this is done, all you need to do is double-click on the IFF
         file's icon and it will be shown.  It will first read options
         out of the Default Tool's icon, then it will look for options
         in the IFF file's Tool Types.

     In all cases, here is the "search" order for options:
         
         1. Read `S:TIV.Defaults' if present (see below).
         2. Read TIV Tool Types.
         3. Read target file's Tool Types, unless the NOINFO option
            is in effect.

     If TIV needs to display a warning or fatal error message to you
from the Workbench, it will open a small console window and print out
the message(s).  When TIV exits, this window will remain open for a
second or two before closing to allow you time to read the text in it.


2.4. Information Window

     When TIV goes to show a file, it will open a small Information 
Window on the Workbench screen.  In this window, TIV displays various
relevant information about the file it is loading.  It does this
partly to give you something to look at while it is loading and partly
to convey some useful information about the file.

     The following is a list of the actions that can be taken while
TIV is running if the Information Window is open and active:

     General:

     ESCAPE Key               Abort current file, exit TIV.
     Left Mouse Button        Skip current file, move on to next (*).
     Right Mouse Button       Skip current file, move on to next.
     Other Keys               Skip current file, move on to next.

     While Viewing Picture:

     TAB Key                  Toggle color cycling on or off.
     Arrows                   Scroll around in Super-Bitmap pictures.
     Shift + Arrows           Scroll quickly in Super-Bitmap pictures.
     Control + Arrows         Shift display's overscan offset.

     While Viewing Animation:

     TAB Key                  Toggle color cycling on or off.
     Down Arrow               Freeze frame animation.
     Up Arrow                 Resume animation playing.
     Right Arrow              Single frame advance animation.
     F1 - F10                 Speed control (F1 = Fast, F10 = Slow)
     Control + Arrows         Shift display's overscan offset.

     (*) The Left Mouse Button can be disabled by using the `NOLMB' 
option.  See the description of that option below for reasons why you
might want to disable this.

     NOTE:  The Information Window *MUST* be active for these
keystrokes and mouse button clicks to be accepted.  If for some
reason the Information Window becomes inactive (a common mistake is
to hit the Left Mouse Button to skip a file) then you will have to
bring the Workbench screen to the front (Left Amiga N) and activate
the Information Window again before using the above controls.  Note
that if you have the LMB option on (the default) then the Information
Window can never be made inactive, so you shouldn't have anything
to worry about.

     Suppose you are running TIV without the Information Window
enabled (by using the NOWINDOW or WINDOW=NO option).  You will lose
most of the above control capability.  Here is what is left that you
can do:

     Control-C                Abort current file, exit TIV.
     Control-D                Skip current file, move on to next.

     Note that you can skip a file or abort TIV while a file is
loading, but TIV only checks for user input once every IFF chunk.
Therefore, if TIV is reading a large chunk (for example, a picture,
animation, or sound BODY chunk), there might be some delay before TIV
will respond to your abort request.

     Also note:  In version 1.5l, TIV contains optional kludges to call 
on the external programs "Dyna-Show" and "Movie" to view certain types
of files (specifically, Dynamic Hires and Opcode J movies, respectively).
These programs do not contain the same control capability as TIV (in
fact they contain little to no control whatsoever), and the above
controls will NOT work while viewing these types of files.  For
complete details, see the documentation to those programs.


        * - * - * - * - * - * - * - * - * - * - * - * - * - * - *
              

                              3. OPTIONS
              

3.1.  TIV Option Table

     The following options are given in a format that can be used
for CLI or Workbench reference.  All boolean options can be set
on or off at any position on the command line.

     From CLI, to turn on an option you would use just the keyword
by itself.  For example, `CYCLE' or `VIEW'.  To turn the option
off, precede the option keyword with `NO'.  For example, `NOCYCLE' or
`NOVIEW'.  From CLI, the keyword may be abbreviated a certain
amount to save typing as indicated in the descriptions below.
The abbreviation is given after the keyword in parenthesis. 
Arguments to keywords must immediately follow the keyword, with at
least a single space seperating them.  For example, `RATE 1' or
`ALL fh2:pics'.

     From Workbench in a Tool Types array, you specify the option
keyword followed by an equals sign and the word `ON' or `OFF'.
For example, `CYCLE=ON' or `VIEW=OFF'.  No abbreviation is allowed
from Workbench.  Non-boolean keywords have their argument follow the
equals sign.  For example, `RATE=1' or `ALL=fh2:pics'.

------------------------------------------------------------------------

    Keyword:  REPEAT (REP)
       Type:  Switch
Description:  If this option is specified, this means that the
              commands given to TIV will be repeated over and over
              again until you stop it.  This is NOT a boolean option;
              that is, there is no such thing as `NOREPEAT'.  This
              affects the entire command line from CLI or the entire
              Tool Types array from Workbench.

------------------------------------------------------------------------

    Keyword:  ANIM (ANIM)
       Type:  Boolean (Default On)
Description:  This is a mask option to allow masking out certain
              types of files.  In this case, if the ANIM option is
              set, animations will be played.  If it is not set
              (NOANIM or ANIM=NO) then animations will not be played.

------------------------------------------------------------------------

    Keyword:  ILBM (ILBM)
       Type:  Boolean (Default On)
Description:  This is a mask option to allow masking out certain
              types of files.  In this case, if the ILBM option is
              set, pictures will be shown.  If it is not set (NOILBM
              or ILBM=NO) then pictures will not be shown.

------------------------------------------------------------------------

    Keyword:  8SVX (8SVX)
       Type:  Boolean (Default On)
Description:  This is a mask option to allow masking out certain
              types of files.  In this case, if the 8SVX option is
              set, samples will be played.  If it is not set (NO8SVX
              or 8SVX=NO) then samples will not be played.

------------------------------------------------------------------------

    Keyword:  CONTINUOUS (CO)
       Type:  Boolean (Default Off)
Description:  Animations are generally of two types.  Those that are
              built to loop and those that are not.  Those that are
              constructed to loop automatically will have the first
              two frames of the animation attached to the end of
              the animation.  This option allows you to specify
              whether the animation is of the looping variety.
              All DeluxePaint3 animations should have this option
              set on, and Sculpt-Animate 4D Anim5 animations should
              usually also have this option set.  If you do not set
              this option for these looping animations, nothing 
              disasterous will happen, but you will see an odd screen 
              pattern at the end of the animation at the loop point.

------------------------------------------------------------------------

    Keyword:  CYCLE (CY)
       Type:  Boolean (Default On)
Description:  This controls whether or not TIV will automatically
              turn on color cycling for the following pictures or
              animations.  If set on, pictures will color cycle
              according to the information given in one or more
              CRNG chunks in the file.  If set off, then TIV will
              not cycle the picture or animation no matter what is
              given in the file.  According to the IFF Standard for
              ILBMs, this option should not be necessary, but because
              DeluxePaint breaks this standard and saves ALL of
              its pictures with color cycling tagged as active,
              this option is required for those pictures.
              
------------------------------------------------------------------------

    Keyword:  DYNA (DY)
       Type:  Boolean (Default Off)
Description:  This option, when set, will cause TIV to attempt to load
              the program "Dyna-Show" when it encounters a Dynamic
              Hires or Dynamic HAM picture.  Currently, TIV does not
              support these types of ILBMs, largely due to the fact
              that I cannot find any documentation on them.  After
              much experimentation, I decided to include this kludge
              in order to speed the release of TIV.  If this option
              is off (the default), then TIV will simply report that
              it cannot show the picture in question and move on.
              NOTE:  You will lose a lot of the controls that TIV has
              over pictures when you run Dyna-Show.  In fact, the
              only control you will get is to stop viewing the
              picture.  You will also lose the automation features of
              TIV while viewing with Dyna-Show; specifically, the DELAY
              option will not work while viewing a picture with
              Dyna-Show; you will have to exit manually. To stop
              viewing a Dynamic Hires picture in Dyna-Show, you must
              press the *LEFT* mouse button as opposed to the right. 
              This is why this defaults to off; it can get a bit
              confusing having to decide which mouse button to press
              to end the display.

------------------------------------------------------------------------

    Keyword:  GIF (GI)
       Type:  Boolean (Default Off)
Description:  This option, when set, will cause TIV to attempt to
              load an external program called `TGV' when it encounters
              a file that is not IFF.  My intention for this feature
              is to use it to support viewing GIF files, at least in
              some way.  Since this is not a native Amiga format, it's
              not high on my priority list at the moment.  However,
              I'm providing this hook for the future.  For now, you
              can use any GIF viewer program (HamGif, for example) and
              rename it as `TGV' and TIV will call it for files it
              doesn't recognize.  Note that the RAWSOUND option below
              will override this option if it too is set.  That is, if
              a file is found that is not IFF, and both the GIF and
              RAWSOUND options are on, then TIV will assume the file
              is a raw sample.  
              
------------------------------------------------------------------------

    Keyword:  HALFBRITE (HA)
       Type:  Boolean (Default Off)
Description:  This option, when set, will cause TIV to assume that 
              any file with 6 bitplanes that does not specifically
              state what it is to be HalfBrite as opposed to HAM.
              Sometimes you will find an animation or picture that is
              supposed to be HalfBrite but TIV is trying to display it
              as HAM.  The reason is that whatever program saved the
              picture or animation did not specifically state (with a
              CAMG chunk) whether the picture or animation was HAM or
              HalfBrite.  TIV will see only that the file has 6
              bitplanes and will have to guess whether it is HAM or
              HalfBrite.  The default is to assume 6 bitplanes is HAM,
              but this option will cause TIV to assume 6 bitplanes is
              HalfBrite.  I have found that some VideoScape HalfBrite
              animations fall into this category and you will have to
              use the HALFBRITE option on them to make them display
              correctly. 

------------------------------------------------------------------------

    Keyword:  HIRES (HI)
       Type:  Boolean (Default Off)
Description:  This option, when set, will force TIV to display a
              picture or animation in HIRES, no matter what is
              contained in the CAMG chunk of the file.  This is
              particularly useful for brushes or ANIM brushes, which
              don't contain ANYTHING in the CAMG chunk.

------------------------------------------------------------------------

    Keyword:  HOLDFIRST (HOLDF)
       Type:  Boolean (Default Off)
Description:  This option only has meaning when playing an animation.
              When set, it will cause TIV to freeze the animation on
              the first frame until you tell it to continue (by
              using the animation control keys).  This can be useful
              for recording an animation to videotape where you wish
              to hold on the first frame for a while.  This option
              cannot be used if the TIV Information Window is not
              displayed.

------------------------------------------------------------------------

    Keyword:  HOLDLAST (HOLDL)
       Type:  Boolean (Default Off)
Description:  This is only used for animations.  When set, it causes
              TIV to freeze the animation on it's last played frame
              until you tell it to continue by pressing the right
              mouse button or pressing a key.  The `last frame' could
              simply be the point at which you tell TIV to continue on
              to the next file.  To cause TIV to halt on the REAL last
              frame of the animation, you must specify a LOOP value of
              something besides zero.  This option cannot be used if
              the TIV Information Window is not displayed.

------------------------------------------------------------------------

    Keyword:  INFO (IN)
       Type:  Boolean (Default On)
Description:  When set, this will allow TIV to try to find an .info
              file associated with each file it attempts to display. 
              If it finds an .info file, it will attempt to read
              information out of it to use in displaying the file. 
              If this option is turned off, then .info files will be
              ignored.

------------------------------------------------------------------------

    Keyword:  LACE (LA)
       Type:  Boolean (Default Off)
Description:  This option, when set, will force TIV to display a
              picture or animation in interlace, no matter what is
              contained in the CAMG chunk of the file.  This is
              particularly useful for brushes or ANIM brushes, which
              don't contain ANYTHING in the CAMG chunk.

------------------------------------------------------------------------

    Keyword:  LMB (LM)
       Type:  Boolean (Default On)
Description:  When this option is specified, it allows you to use
              the Left Mouse Button to skip pictures in addition
              to the Right Mouse Button.  In order to do this, TIV
              senses when the Information Window becomes inactive
              and assumes this to be a left button press to skip a
              picture.  It then reactivates the TIV Information
              Window and moves on to the next picture.  This has a
              possibly undesirable side-effect of not allowing you to
              activate other windows while TIV is viewing pictures,
              which is why this is an option.

------------------------------------------------------------------------

    Keyword:  MOVIE (MO)
       Type:  Boolean (Default Off)
Description:  This option, when set, will tell TIV to attempt to load
              the program "Movie" whenever it encounters an animation
              with an unknown compression technique.  9 times out of
              10, this will be an Opcode J (Movie) animation as
              generated by Sculpt-Animate or Movie.  This is included
              only as a kludge, I make no guarantees about the Movie
              program.  If I can find documentation for the Opcode J
              format, then I will make an attempt to include it in my
              player, but for now this is the temporary solution. 
              Note that Movie requires you to press the ESCAPE key to
              end viewing the movie, as opposed to TIV's normal
              convention of pressing the right mouse button.  This is
              why this option defaults to off, to avoid confusion.
              Also note that, as noted under the DYNA option above,
              some options will cease to function for these movies. 
              Specifically, the RATE, LOOPS, and DELAY options have
              no effect on the Movie program.  You will have to exit
              Movie manually, by pressing the escape key.

------------------------------------------------------------------------

    Keyword:  POINTER (PO)
       Type:  Boolean (Default Off)
Description:  Normally TIV will try to blank the pointer while
              displaying pictures or animations.  This option, when
              set, will cause TIV to keep the mouse pointer visible
              while showing pictures or animations.  Note that under
              AmigaDos 1.3, the pointer is pretty nasty about
              remaining visible when using a regular Intuition
              Screen, despite what TIV tells it to do.

------------------------------------------------------------------------

    Keyword:  RAWSOUND (RAW)
       Type:  Boolean (Default Off)
Description:  This option, when set, will cause TIV to assume that
              any file found that is not IFF is a raw sound sample
              file.  Normally, when this option is off, TIV will warn
              you that a file is not IFF and skip it.  This option
              must be set to play raw sound sample files.

------------------------------------------------------------------------

    Keyword:  RECURSIVE (REC)
       Type:  Boolean (Default Off)
Description:  This option only has meaning when showing all files in
              a directory with the `ALL' keyword.  If this option is
              set, then TIV will enter all subdirectories in the ALL
              directory attempting to find more IFF files.  This is
              useful if you have a main Pictures directory with
              several subdirectories off of it containing different
              types of pictures (like the way DeluxePaint likes
              things).

------------------------------------------------------------------------

    Keyword:  SHOW (SH)
       Type:  Boolean (Default On)
Description:  This allows you to just view information about a file,
              and not the file itself.  If this option is off, then
              only information about the file will be printed to the
              TIV Infomation Window.  Note that this option cannot be
              used unless the TIV Information Window is open.

------------------------------------------------------------------------

    Keyword:  SIFT (SI)
       Type:  Boolean (Default Off)
Description:  With this option, you can print out a structured
              breakdown of the contents of *ANY* IFF file.  This
              option will only work from the CLI, as it needs the
              console to print the information.  With this option
              set, the file is not shown, but a breakdown of the
              chunks within the IFF file are displayed.  This can be
              used to see what is actually in an IFF file, or it can
              be used to determine where a file is corrupted for
              possible recovery attempts.  The following is a sample
              output from a Sculpt-Animate 4D `Take' file:

                    File: `fh2:anims/orbit.take'
                    FORM 4030 TAKE
                    . THDR 362
                    . TFRM 3648

------------------------------------------------------------------------

    Keyword:  SLIDESHOW (SL)
       Type:  Boolean (Default Off)
Description:  With this option turned on, TIV will display pictures
              and animations in "slideshow" mode.  This is basically
              just a double-buffering mechanism.  While one picture or
              animation is being displayed, the next is being loaded. 
              Normally TIV will load and display one file, then unload
              it, then begin loading the next file.  This has the
              disadvantage of showing your Workbench between pictures.
              With slideshow set, then you avoid popping back to the
              Workbench screen between pictures.  However, because TIV
              has to maintain two pictures in memory at once,
              slideshow mode uses more of your memory (specifically
              chip memory).  You also can't see the TIV Information
              Window while pictures are being loaded.

------------------------------------------------------------------------

    Keyword:  SOUND (SO)
       Type:  Boolean (Default On)
Description:  Don't worry about this one.  It's reserved for future
              expansion.  It doesn't do anything at this time.

------------------------------------------------------------------------

    Keyword:  TIMING (TI)
       Type:  Boolean (Default Off)
Description:  It is sometimes useful to be able to know more or less
              how fast an animation is being played.  When this
              option is set, TIV will approxiamately calculate the
              frame rate the animations are being played.  When the
              animation is finished, TIV will print the frame rate in
              the Information Window next to the number of frames in
              the animation.  You must then press the right mouse
              button or a key to continue.  Note that if you are in
              slideshow mode, you will not see the timing information
              (unless you bring Workbench to the front), but you must
              still click twice to continue.

------------------------------------------------------------------------

    Keyword:  VIEW (VI)
       Type:  Boolean (Default Off)
Description:  TIV is capable of showing pictures and animations in
              two modes.  The default mode renders  the imagery into
              an ordinary Intuition Screen.  This has the benefit of
              allowing you to depth arrange it and drag it around. 
              However, playing an animation in a Screen is generally
              not very fast.  Thus there is the capability to use View
              mode, which will render pictures or animations into a
              View/ViewPort.  The benefits are much faster animation
              playing and slightly less chip memory requirements.  The
              bad part is that you can't jump back to Workbench (well,
              you can, but you won't be able to get back to the
              picture).  I would reccommend not using View mode unless
              you want to play an animation as fast as possible or you
              are short on chip memory.  By the way, you can probably
              expect nearly a two times speed increase in animation
              playback when in View mode.

------------------------------------------------------------------------

    Keyword:  WB (WB)
       Type:  Boolean (Default On)
Description:  This option, when not set, tells TIV to attempt to 
              close the Workbench when showing pictures and
              animations.  This will only work if the TIV Information
              Window is suppressed (see below).  This will slightly
              increase the amount of chip memory available to TIV for
              showing pictures.

------------------------------------------------------------------------

    Keyword:  WINDOW (WI)
       Type:  Boolean (Default On)
Description:  When this option is turned off, TIV will not open the
              Information Window which it uses to display relevant
              information about the files it is showing.  With the
              Information Window closed, you do not have the picture
              or animation control keys available anymore.  You are
              also not able to skip files with the right mouse
              button.  With the Information Window closed, you must
              use Control-D to skip a file and Control-C to exit TIV
              altogether.

------------------------------------------------------------------------

    Keyword:  ZOOM (ZO)
       Type:  Boolean (Default Off)
Description:  When turned on, this option will tell TIV to play
              animations with their priority set to maximum (127). 
              This can slightly increase the speed of playback, but
              generally does not help all that much.  I would not
              recommend using until you have tried everything else.

------------------------------------------------------------------------

    Keyword:  ALL (AL)
       Type:  String (No Default)
Description:  This option tells TIV to show all IFF files in the
              specified directory.  TIV will go through each file in
              the directory and, if it is a type of IFF that TIV can
              understand, will show it.  To mask out certain types of
              files, see the ANIM, ILBM, and 8SVX options.  To show
              all files in the current directory, used `TIV ALL ""'.
              From Workbench in a Tool Types array, you MUST specify
              the complete pathname to the directory where the files
              are, no matter where the icon is.  If an Options
              Defaults File (TIV.Defaults) exists in the directory
              which you specify, then TIV will read it and use any
              options found there.  See Options Defaults File below
              for more information.

------------------------------------------------------------------------

    Keyword:  DELAY (DE)
       Type:  Numeric (Default 3)
Description:  This specifies a delay time in seconds that files will
              remain onscreen.  This is subject to a few caveats,
              though.  If you are showing an animation or sound with
              a specific number of loops given (LOOPS > 0), then no
              delay will be used and TIV will go to the next file
              when the loops are exhausted.  If the number of loops
              is zero (that is, repeat forever), and a DELAY is found
              in the options list, then TIV will timeout after the
              delay time and go on to the next file.  If the loop
              count is zero and there is NO delay option, then you
              will have to continue manually by clicking the right
              mouse button (with the Information Window) or pressing
              CTRL-D (without the Information Window).

------------------------------------------------------------------------

    Keyword:  LOOPS (LO)
       Type:  Numeric (Default 0)
Description:  This will tell TIV how many times to loop an animation
              or a sound.  If the argument is zero (0), then TIV will
              loop the animation or sound until you tell it to stop
              with the right mouse button, or until a delay amount
              has expired (see DELAY above).  Any other positive value
              will tell TIV to loop the file that many times and then
              continue.  This has no effect for pictures, obviously.

------------------------------------------------------------------------

    Keyword:  PERIOD (PE)
       Type:  Numeric (Default -1)
Description:  For sounds, this tells TIV the period at which to play
              the sample.  If the argument is -1, then TIV will use
              whatever period can be determined from the file itself.
              Otherwise, TIV will use the period given to play the
              sample.  The period must be between 124 and 65536.
              The higher the period, the lower the pitch of the
              sound.  A good starting place would be around 300 to
              400.

------------------------------------------------------------------------

    Keyword:  RATE (RAT)
       Type:  Numeric (Default -1)
Description:  For animations, this tells TIV the number of jiffies
              that each frame will be displayed.  A jiffy is one
              1/60th second.  The default value of -1 will cause TIV
              to get timing information from the file.  A rate of 0
              will tell TIV to play the animation as fast as it
              possibly can (up to 60 frames/second).  Any other 
              positive value indicates the number of jiffies that
              each frame will remain onscreen.  To get the number of
              frames per second, divide the value you give this
              option into 60.  For example, `RATE 2' is 60 / 2 = 30
              frames per second.

------------------------------------------------------------------------

    Keyword:  SOUNDPATH (SOUNDP)
       Type:  String (No default)
Description:  Reserved for future expansion.  Does nothing.

------------------------------------------------------------------------

    Keyword:  XOFFSET (XO)
       Type:  Numeric (Default 0)
Description:  When displaying pictures and animations, the value
              given here will be added to the horizontal overscan
              position of the image.  Thus positive values move the
              picture to the right, negative values move the picture
              to the left.  I added this feature to correct for some
              HAM-E pictures that overscan out of the detection range
              of the HAM-E hardware.

------------------------------------------------------------------------

    Keyword:  YOFFSET (YO)
       Type:  Numeric (Default 0)
Description:  When displaying pictures and animations, the value
              given here will be added to the vertical overscan
              position of the image.  Thus positive values move the
              picture downward, negative values move the picture
              upward.  I added this feature to correct for some HAM-E
              pictures that overscan out of the detection range of
              the HAM-E hardware.

------------------------------------------------------------------------

     As you can see, the options are pretty extensive.  Most times,
however, it will be sufficient to run the program with few options.
However...


3.2.  Option Defaults File

     A lot of times you might find yourself using the same options
over and over again on the command line.  TIV allows you to place
these frequenty-used options in an `Options Defaults File'.  Before
examining command line options, TIV will read in this Options
Defaults File and use any options that it finds there.  This will
eliminate the need for you to type them every time you need them.

     The file is a standard ASCII text file which resides in your
current S: directory, called `TIV.Defaults'.  Each line of the file
can contain an option for TIV, but only one option can be on each
line.  Blank lines and lines beginning with a semi-colon (;) are
ignored by TIV, so you can place comments in the file.  The options
must be in the same format that you would type from CLI; that is, you
must use (for example) `VIEW' or `NOCYCLE' rather than `VIEW=YES' or
`CYCLE=NO'.

     Here is a sample TIV.Defaults file:

;~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
; TIV Defaults File
;
; Each option MUST be on a seperate line.
;
; Ignore object's .info files...
NOINFO
;
; Picture Options:
NOCYCLE
;
; Animation Options:
CONTINUOUS 
RATE 0
;
;~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

     Options specified on the command line or in a file's Tool Types 
array will override what is given in the defaults file. So if, with
the above defaults file, you specify `CYCLE' on the command line, then
pictures will be color cycled despite what it says in the defaults
file.

     The Options Defaults File is read from Workbench as well as CLI,
although it is less necessary from Workbench, as frequently used
options can be placed into the TIV program's Tool Types.  From
Workbench, options in the TIV program's Tool Types will override what
is found in the TIV.Defaults file.

     In addition to the Defaults File in the S: directory, you can also 
place an Options Defaults File in any subdirectory.  If you tell TIV
to show all pictures in that subdirectory, it will read in the
options found in that file and use them.  This allows you to have
specific options for certain directories.

              
        * - * - * - * - * - * - * - * - * - * - * - * - * - * - *


                    4. TIPS, TRICKS, AND EXAMPLES              


4.1. Brushes and ANIM Brushes

     TIV can display all kinds of brushes and ANIM brushes.  However,
at least DeluxePaint brushes and ANIM brushes do not save in their
CAMG chunks the screen format that the brush came from.  TIV will do
its best to guess at the proper screen resolution by looking at the
source page width/height of the image.  In most cases this should
suffice, but there are times when a brush still might fool TIV.
Therefore, you might need to use the `HIRES' or `LACE' options in
order for TIV to display the brush or ANIM brush correctly.  If you
know that a particular brush came from an interlaced screen, for
example, and TIV is displaying it as non-interlaced and the image is
stretched vertically, then you will have to specify the `LACE' option.

     A note on ANIM brushes:  ANIM brushes use a really odd format
for storage, which took considerable hacking and a few hints from
various people before they became operational.  Anyway, you must have
the CONTINUOUS option OFF to display ANIM brushes correctly (at least
the ones that come from DeluxePaint3).  This is directly opposite from
the way DeluxePaint3 (regular) animations are.


4.2. Slideshows

     TIV can be used to create quick and simple slideshows, with
varying degrees of sofistication.  For example, suppose you have a disk
in drive DF0: that contains a bunch of pictures.  To create a
slideshow, from CLI you can type:

     1> TIV DELAY 2 ALL DF0:

     Presto!  All the pictures on the disk will be viewed, each one
for 2 seconds before moving on.  You will see the Workbench between
the pictures, though, so you might want to give it another option:

     1> TIV SLIDESHOW DELAY 2 ALL DF0:

     With the addition of the SLIDESHOW option, TIV will double
buffer the picture show, preventing Workbench from being visible
between pictures.  As noted above, this looks better, but uses more
chip memory.

     In reality, the above commands would show ALL IFF files on the
disk, not just pictures.  So if you happen to have animations or
sounds mixed in with the pictures, they will be displayed too.  You
can, however, mask them out:

     1> TIV NOANIM NO8SVX SLIDESHOW DELAY 2 ALL DF0:

     `NOANIM NO8SVX' will mask out animations and sounds in the
slideshow.  You can see that after a while the options get cumbersome
to type.  There are two ways to get around this:  1) Create a small
script file that performs the above command, or 2) Create a Workbench
project icon that, when double-clicked, launches into the slideshow.

     To make the icon, you need to make a Project icon (a few are
supplied in the TIV archive).  Make sure the Default Tool for the
icon is set to where you are keeping the TIV program.  Then you need
to add a bunch of Tool Types to reflect what you were typing on the
command line:

     ANIM=NO
     8SVX=NO
     SLIDESHOW=YES
     DELAY=2
     ALL=DF0:

     Once these are added, save the icon.  Then double-click on it
and there you have your slideshow from Workbench.


4.3.  DeluxePaint3 Animations

     I have noted a probem with DeluxePaint3's saving of animations. 
I believe that if you save only a portion of a larger animation, that
DeluxePaint somehow trashes the last few frames where the "loop"
frames should be.  Playing this animation with CONTINUOUS on can
cause strange results.  I would suggest loading the partial animation
back into DPaint, then saving it back out.  This should correct the
problem.


4.4.  TIV and Workbench 2.0

     TIV has been tested and works largely as expected under
Workbench 2.0.  It has been tested under Kickstart versions 2.02 and
2.04.

     However, there are a few problems that appear in certain
circumstances.  They are documented below:

     A.  View Mode - Apparently, there have been considerable changes
         in the way 2.0 handles Views and Viewports, especially
         overscanned.  In TIV, this manifests itself in vertically
         overscanned pictures or animations.  The image will not be
         centered vertically, and using the Control + Arrows do not
         affect it.  This may require a special version of TIV
         written for 2.0 only.

     B.  Brushes and ANIM Brushes - Another odd problem is in the
         viewing of brushes.  Under 2.0, a double-image appears to
         the right of the brush, out of the range of the screen or
         view.

     These are the only problems I have encountered.  I am in the 
process of researching them, and hope to have them fixed in the next
release of TIV.  If you have any suggestions, I'd be glad to hear
them.  My knowledge of 2.0 programming at this point is rather limited, 
I'm afraid, especially in the area of graphics.

     I apologize to you Amiga 3000 owners out there, but TIV has been
in Beta for so long and the massively buggy and featureless TIV 1.4 
has been out for so long that I felt I should release TIV 1.5 now.


4.5.  TIV and HAM-E

     TIV is capable of viewing HAM-E images, as is any viewer program
worth its byte count.  However, you might notice that TIV can sometimes
overscan the HAM-E "magic cookie" out of the hardware's ability to detect
it.  This can be fixed several ways:

     A.  Adjust your Preferences screen position until HAM-E images
         "lock in", since TIV gets its idea of where the center of
         the screen is from your Preferences.  This may, however,
         cause your regular Workbench screen to be a little offset.

     B.  Adjust TIV's overscan offset using the options `XOFFSET'
         and `YOFFSET'.  Once you determine the proper offset, you
         can place these options into the `S:TIV.Defaults' file so
         that TIV will automatically add the proper offsets for
         every picture you view.

     C.  Or you could simply use the Control + Arrows to adjust the
         overscan position for every picture or animation you view.

     TIV is also capable of viewing HAM-E super bitmap pictures,
which is something that not every viewer program can do.  You might be
wondering why this is a big deal.  If you own a HAM-E you probably
know why it's a big deal.  If not, well don't worry about it.

     At this time, TIV does not support HAM-E color cycling pictures.
Sorry for the inconvenience.  It will in the future.


4.6.  More Examples

     The following are some random examples for CLI useage.
     
     `TIV VIEW CONT RATE 0 myanim.anim'

          This line will play `myanim.anim' in the current
          directory as fast as TIV can possibly play it.  Speed
          will vary depending on the amount of changes from frame
          to frame, the resolution of animations, and the speed
          of your CPU.  60 FPS for low resolution animations is
          not uncommon.  And 30+ FPS for higher resolution is
          also not unheard of.

     `TIV NOCONT my.animbrush'

          Play the given ANIM brush.  Note that you MUST specify
          the `NOCONT' option when playing ANIM brushes,
          otherwise they will not play properly.  If you have a
          directory of ANIM brushes, place an Option Defaults
          File in that directory with the `NOCONT' option in it.
          TIV will then turn off continuous mode whenever you
          show all the ANIM brushes in that directory.
                    
     `TIV RECURSIVE ALL dh0:pictures'

          This will view all IFF pictures in the directory
          `dh0:pictures', AND it will show all IFF files in any
          subdirectories within `dh0:pictures'.  This is handy
          if you have your pictures broken down into
          subdirectories of Hi-Res, Lo-Res, HAM, etc.  The
          `RECURSIVE' option will go into each subdirectory to
          show pictures.
          
     `TIV NOANIM ALL dh0:iff_files'

          View pictures and sounds within the directory
          `iff_files'.  The `NOANIM' option given will cause TIV
          to skip any animations that it finds in this
          directory.
          
     `TIV RAWSOUND rawsample'
          
          Play the raw sound sample `rawsample' in the current
          directory.  You MUST specify the `RAWSOUND' option if
          you want to play raw sound samples, otherwise TIV will
          skip them saying they are not IFF files.  Note that
          TIV has no way of knowing the sampling rate of a raw
          sample, so it just guesses at 10,000KHz for all raw
          samples.  You may need to adjust this using the
          `PERIOD' option.
          
     `TIV NOWINDOW LOOPS 1 neatsound'
          
          This command is useful if you want to play a sample
          from you startup-sequence.  `NOWINDOW' will prevent
          TIV from opening its Information Window, and `LOOPS 1'
          will play `neatsound' 1 time only and then exit.

     `TIV SLIDESHOW LOOPS 1 DELAY 2 ALL df0:'
          
          Here is a basic slideshow presentation command line. 
          The `SLIDESHOW' option will double-buffer pictures and
          animations.  The combination of `LOOPS 1' and `DELAY 2'
          means that TIV will never have to wait for you to
          click a mouse button to continue, making this an
          automatic slideshow.  `ALL df0:' specifies where all
          the files are, in this case the internal floppy drive.
          

                        
        * - * - * - * - * - * - * - * - * - * - * - * - * - * - *

              
                         5. ACKNOWLEDGEMENTS


     Thanks to the following group for beta testing and giving
me (usually :) helpful suggestions and ideas:

     Kermit Woodall
     Mike Vunck
     Bob Fisher
     David Krehbiel
     Stuart Ragland

     Also thanks to Kermit for the icons.  If you remember the icons
supplied with TIV 1.4 and below, you'll notice what an enormous
improvement these icons are over the old ones.

     There are also numerous people who have been kind enough to 
publicly distribute source code examples that I have used and adapted
into this program.  I wish I could remember all of them but as this
program has been under development for quite some time now (at least
a year and a half, off and on) I tend to forget all of my sources. 
Some of the more notable ones are:  Jim Kent for his invaluable
`unvscomp.asm' animation uncompression code, Gary Bonham for general
animation code, the guys at EA for their IFF reading code, Dan Silva
for his color cycling code, the authors of the Rom Kernel Manuals for
sample audio code, and all those other bits and pieces that I can't
remember.

     TIV started as just a little program to test out some ILBM
routines I'd written for another program... now it's gone completely
out of control... :)
     

        * - * - * - * - * - * - * - * - * - * - * - * - * - * - *


                            7. THE FUTURE


     There are a few things I'd like to do to TIV in the future as I
get time.  They include:

     - Fix all the 2.0 problems.  Might take a while, unfortunately.

     - Add internal Dynamic Hires and Dynamic HAM support.  Need some
       more docs and code on this.

     - Support HAM-E color cycling.
          
     - Play ANIM's directly from disk at a reasonable rate.

     - Play 8SVX's directly from disk.

     If you have a suggestion or two, send them in along with your
Shareware donation.  I can't guarantee that I will implement your
suggestions but I will certainly make a note of them.  Bug reports will
be given immediate attention.


        * - * - * - * - * - * - * - * - * - * - * - * - * - * - *

              
                            6. THE AUTHOR


     I can be reached via. U.S. Mail at the following address:

     Thomas Krehbiel
     10747 Surry Road
     Chester, VA  23831

     I can be also be reached at the Late Nite Amiga BBS (804-262-9944)
as "Tom Krehbiel".  This is the Richmond Area's largest Amiga
supporting BBS and also happens to be the home of the Richmond Amiga
Group, Richmond's largest Amiga supporting user group.  Late Nite
is also connected to WWIVnet, so if you have access to a local
BBS running WWIV software which is also connected to WWIVnet, then
you can netmail me at the following address: Tom Krehbiel #13 @ 8405.

     Or, as a last resort, if you subscribe to a major network,  you can
relay a message to me through Kermit Woodall (thanks again, Kermit) on
the following networks:

     Plink          CAPT*VIDEO
     BIX            kermitwoodall

     Sorry, I don't have any network accounts myself... yet.


     Hope you find this program useful.  Have fun!

                                                  - Tom