; TVROAM
;---------------------------------------------------------------
;! Load up to 16 TV image planes and roam a subset thereof
;# VERB TV
;-----------------------------------------------------------------------
;;  Copyright (C) 1995, 1999, 2006, 2008-2011
;;  Associated Universities, Inc. Washington DC, USA.
;;
;;  This program is free software; you can redistribute it and/or
;;  modify it under the terms of the GNU General Public License as
;;  published by the Free Software Foundation; either version 2 of
;;  the License, or (at your option) any later version.
;;
;;  This program is distributed in the hope that it will be useful,
;;  but WITHOUT ANY WARRANTY; without even the implied warranty of
;;  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
;;  GNU General Public License for more details.
;;
;;  You should have received a copy of the GNU General Public
;;  License along with this program; if not, write to the Free
;;  Software Foundation, Inc., 675 Massachusetts Ave, Cambridge,
;;  MA 02139, USA.
;;
;;  Correspondence concerning AIPS should be addressed as follows:
;;         Internet email: aipsmail@nrao.edu.
;;         Postal address: AIPS Project Office
;;                         National Radio Astronomy Observatory
;;                         520 Edgemont Road
;;                         Charlottesville, VA 22903-2475 USA
;-----------------------------------------------------------------------
TVROAM    LLLLLLLLLLLLUUUUUUUUUUUU CCCCCCCCCCCCCCCCCCCCCCCCCCCCC
TVROAM:  Verb to load up to 16 planes and roam a subset thereof
INNAME                             Image name(name).
INCLASS                            Image name(class).
INSEQ           0.0      9999.0    Image name(seq. #). 0=>high
INDISK          0.0         9.0    Disk drive #. 0=>any
ROMODE          0.0      1616.0    # planes on X*100 plus #
                                   planes on Y
TXINC           0.0       256.0    Load every TXINC'th column
TYINC           0.0       256.0    Load every TYINC'th row
TBLC            0.0      4096.0    Bottom Left Corner of image
                                     0=>entire image
TTRC            0.0      4096.0    Top Right Corner of image
                                     0=>entire image
PIXRANGE                           Min,Max  of image intensity
                                     0=>entire range
TVCHAN          0.0        16.0    TV channel for LUT
TVCORN          0.0       512.0    TV pixel location of bottom
                                     left corner of image
FUNCTYPE                           Image intensity transfer func
                                     'LN' Linear.  blank=> 'LN'
                                     'LG' Logarithmic
                                     'L2' More logarithmic
                                     'SQ' Square root
                                     'NE' Negative linear
                                     'NG' Negative logarithmic
                                     'N2' Negative more log.
                                     'NQ' Negative square root
----------------------------------------------------------------
TVROAM
Type: Verb
Use:  Loads an image to a number of TV memory planes in such a way
      that a "roam" operation may be performed.  After loading, it
      goes into roam using the TV cursor position to determine which
      contiguous NXxNY piece of the image is currently visible on the
      screen.  NX and NY depend on the model of TV or on the TV server
      and X11 server.  Pressing button A enhances the black-and-white
      transfer function for all channels.  In the enhance mode,
      pressing button C reverses the slope of the enhancement and the
      other buttons return you to roaming.  Pressing button B in roam
      causes the zoom to increment (in a circular fashion), button C
      causes the zoom to decrement, and buttom D causes an exit.  You
      may use verbs like IMXY, IMPOS, etc., on the "split screen"
      image after exiting the roam mode.  You may not not use TVLABEL,
      TVZOOM, TVSCROL, etc., until you have turned on only one channel
      (use verb ROAMOFF).  See EXPLAIN TVROAM for further details.

      TV channels 1 through M are used, where M = Mx times My with Mx
      the number of frames in the x direction and My the number of
      frames in the y direction (set by ROMODE or defaulted).  With
      the rebuilt XAS, M must be <= 16.  TVTRANSF with TVCHAN=0 will
      work on all M channels when the screen is in roam mode, not just
      the 4 that are visible.  You may now do this enhancement while
      roaming as well.
Adverbs:
  INNAME......Image name(name).        Standard defaults.
  INCLASS.....Image name(class).       Standard defaults.
  INSEQ.......Image name(seq. #).      0 => highest.
  INDISK......Disk drive # of image.   0 => any.
  ROMODE......One hundred times the number of planes on the X axis
              plus the number of planes on the Y axis
                     (ROMODE = 100 * Mx + My).
              0 => program figures "best" arrangement.
  TXINC.......Load every TXINC'th column beginning at TBLC.
  TYINC.......Load every TYINC'th row beginning at TBLC,
  TBLC........The Bottom Left-hand pixel of the subarray of the map to
              be displayed. The value (0,0,...) means take the entire
              first plane of the image.
  TTRC........The Top Right-hand pixel of the subarray of the map to
              be displayed.  The value (0,0,...) means take the entire
              plane of the image.
  PIXRANGE....Min,Max intensity to display. 0 => entire range.
  TVCHAN......The look-up-tables of channel TVCHAN are propogated to
              all channels of the roam display at the beginning.  If
              the image does not need roam, TVCHAN is the channel to
              which the image is loaded.   0 -> 1
  TVCORN......TV pixel location (X,Y) of the bottom left-corner of the
              image.  0=>center on TV (recommended)
  FUNCTYPE....Image intensity transfer function
              'LN' => linear;        'NE' => negative lin.
              'LG' => log;           'NG' => negative log;
              'L2' => extreme log;   'N2' => negative extra log;
              'SQ' => square root,;  'NQ' => negative square root;
              others => linear.
----------------------------------------------------------------
ROAM
Type:  A form of TV display operation
Use:   When an image is too large to fit in one TV memory plane, it is
       possible to load portions of the image into more than one TV
       memory.  Then, one may view any contiguous Nx x Ny portion of
       the image, where Nx and Ny depend on the model of TV, both 512
       for IIS Model 70 and both 1024 for the IVAS.  As coded, during
       a "roam" operation, you may use the trackball position
       interactively to set which portion of the image is viewed.  In
       addition, each use of buttons B will increment the
       magnification.  Use of button C will decrement the
       magnification.  Button D causes the roam operation to cease,
       but leaves the viewed image undisturbed.  Button A causes you
       to enter a familiar black-and-white transfer function
       enhancement of all channels in the roam.  While in that mode,
       button C reverses the slope of the transfer and buttons A, B,
       and D return you to roaming.

How:   The TV screen is "split" into portions vertically and/or
       horizontally.  In each portion only one image plane is visible.
       Suitable control of the split point, the scrolls of the images,
       and the zoom allow the program to perform the roam.  NOTE: many
       other TV functions are designed to work only on a single image
       and will not work normally on the split-screen image.  These
       include TVLOD, TVLABEL, TVZOOM, TVFIDDLE, TVSCROLL, TVWINDOW,
       TVLABEL, TVBLINK, and slice plotting.  Verbs such as IMPOS,
       TVNAME, TVPSEUDO, and OFMGET will work.

Verbs:
       TVROAM....Load image to TV channels, then roam
       REROAM....Roam using previous channel spatial configuration
       ROAMOFF...Captures current visible screen as simple screen
                 image (not in roam mode).

Adverb:
       ROMODE....Specify number frames in x and y as 100 * Mx + My.
----------------------------------------------------------------
