; TVROAM
;---------------------------------------------------------------
;! Load up to 4 TV image planes and roam a subset thereof
;# VERB TV
;-----------------------------------------------------------------------
;;  Copyright (C) 1995, 1999
;;  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 upto 4 planes and roam a subset thereof
USERID     -32000.0     32000.0    User ID.  0 => current user,
                                     32000 => any user.
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
TVCHAN          0.0      4321.0    TV channels to use.
ROMODE          0.0        41.0    # planes on X/Y axes
                                   See HELP ROMODE.
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
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
                                     'SQ' Square root
                                     'NE' Negative linear
                                     'NG' Negative logarithmic
                                     'NQ' Negative square root
----------------------------------------------------------------
TVROAM
Type: Verb
Use:  Loads an image to 1,2 or 4 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 buttons A or B 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.  Do not use TVLABEL, TVZOOM, TVSCROL, etc.,
      until you have turned on only one channel (via the
      procedure OFFROAM). See EXPLAIN TVROAM for further
      details.
Adverbs:
  USERID......User ID of owner of image.  0 => current user,
                32000 => any user.
  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.
  TVCHAN......TV channel numbers and sequence to be used.
              Program will correct inadequate values.
  ROMODE......Ten times the number of planes on the X axis
              plus the number of planes on the Y axis.
              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.
  TVCORN......TV pixel location (X,Y) of the bottom left-corner
              of the image.  0=>center on TV
  FUNCTYPE....Image intensity transfer function
              'LN' => linear; 'LG' => log; 'NE' => negative lin.
              'NG' => negative 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 A or 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.
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, and TVBLINK.
       Verbs such as IMPOS, TVNAME, TVWINDOW, TVPSEUDO, and
       TVSTAT will work.

Verbs:
       TVROAM....Load image to TV channels, then roam
       SETROAM...Reset channel spatial configuration,
                 then roam
       REROAM....Roam using previous channel spatial
                 configuration
       OFFROAM...(Procedure) Turn off roam mode

Adverb:
       TVCHAN....Specifies the channels that are used and
                 how they are configured spatially:
           TVCHAN=  ab-> b on right, a on left, 1024x512 max
                 = -ab-> b on top, a on bottom, 512x1024 max
                 =abcd-> d top right, c top left
                         b bottom left, a bottom right
                         1024x1024 max
                 where a,b,c and d are channel numbers (1-4).
                 TVROAM may be controlled by TVCHAN, but has
                 a variety of image-dependent defaults.
                 SETROAM has no defaults and TVCHAN must be set
                 correctly.
----------------------------------------------------------------
