; XAS
;---------------------------------------------------------------
;! Information about TV-Servers
;# INFORMATION TV
;-----------------------------------------------------------------------
;;  Copyright (C) 1995-1996, 1998, 2004, 2008, 2011-2012
;;  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
;---------------------------------------------------------------
XAS       LLLLLLLLLLLLUUUUUUUUUUUU CCCCCCCCCCCCCCCCCCCCCCCCCCCCC
----------------------------------------------------------------
XAS
Type:  XAS is the preferred TV (image display) server for AIPS.
Use:   XAS is started automatically by the procedures that run on your
       host machine when you start up AIPS.  It uses the basic X-Windows
       package to talk to the X-Window server on workstation in order to
       provide the functional equivalent of a TV-display device.  XAS
       has eight graphics overlay planes and one to 16 (usually 16)
       grey-scale channels.  On most workstations it uses "24-bit" or
       "true" color, in which XAS emulates the old IIS Model 70 in its
       ability to show multiple images at once (including 3-color
       images, hue-intensity, etc.)  XAS is slower in this mode but
       still plenty fast enough, so that this mode is the default.
       On a few workstations, XAS must run in pseudo-color mode, using
       199 grayscale levels or colors, though you can extend or reduce
       this.  If the workstation does not support TrueColor, XAS willl
       revert to pseeudo-color, or you may request that mode with an
       .Xdefaults parameter (see below).  You may control the number
       of gray-scale planes to some number < 16, with another of the
       .Xdefaults parameters.

       Unlike the older and less portable XVSS, XAS has no "button"
       widgets.  When AIPS and its tasks specify "press button ..", you
       instead press the key corresponding to that letter, e.g. press
       key "a" when asked to press "button A".  You can also use the X11
       function keys F3, F4, F5, and F6 for AIPS Buttons A, B, C, and D,
       respectively.  Keypad keys F1, F2, F3, and F4 are used by some
       other computers.  To switch between full-sized and a smaller
       window (whose size you set with your window manager's tools),
       press the F2, F7, or keypad-plus keys. There are also 2 debug
       states which may be turned on and off by hitting the F8 and F9
       keys.  The former shows the commands coming from AIPS and
       friends, while the latter shows the window-manager interupts.
       Finally, pressing the ESCAPE key with the mouse cursor in the XAS
       window will cause it to shut down cleanly.

       XAS has the ability to tell AIPS what its window size and other
       basic parameters are.  In fact, XAS now keeps the image catalog
       and TV parameter information inside itself.  As a consequence, a
       new XAS display is already initialized and TVINITs are normally
       not required.

Options:

       If you want to use the buffered I/O feature of XAS, you should
       define an environment variable AIPS_TV_BUFFERED to be "YES".  For
       bash, bourne, or korh shell users this can be done thus:

             AIPS_TV_BUFFERED="YES"; export AIPS_TV_BUFFERED

       and for c-shell or tcsh users:

             setenv AIPS_TV_BUFFERED "YES"

       This should be done *before* starting the XAS TV server, and
       ideally should be placed in your login (.login or .profile) file.
       Using buffered I/O can considerably improve performance when the
       X display is being projected across a slow link such as a modem.

       In your home directory, the X-Window Manager will usually read a
       file called .Xdefaults when it starts up.  It can be ordered to
       re-read it with the command
             xrdb -merge <filename>
       where <filename> refers to your home-directory .Xdefaults or to
       any other appropriate file.  You could put this in your login
       command file if you wish to use some file other than the
       default $HOME/.Xdefaults.  When XAS starts, it asks the Window
       Manager if the user has specified certain parameters in his
       .Xdefaults or other xrdb file.  They control the initial size
       and placement of the window and the initial placement of its
       icon.  They also control the size of characters, the cursor
       shape and color and the colors of the graphics channels.  The
       XAS part of your file might look like:

AIPStv*geometry:     518x518+0+0
AIPStv*iconGeometry:        -0+0
AIPStv*startIconic:      0  (set to 1 if want start as icon)
AIPStv*xPixels:       1270  (actually size of local screen-10)
AIPStv*yPixels:        924  (actually size of local screen-100)
AIPStv*cursorShape:     34
AIPStv*cursorR:        255
AIPStv*cursorG:          0
AIPStv*cursorB:        255
AIPStv*graphics1R:     255
AIPStv*graphics1G:     255
AIPStv*graphics1B:       0
AIPStv*graphics2R:      16
AIPStv*graphics2G:     255
AIPStv*graphics2B:       0
AIPStv*graphics3R:     255
AIPStv*graphics3G:     171
AIPStv*graphics3B:     255
AIPStv*graphics4R:       0
AIPStv*graphics4G:     255
AIPStv*graphics4B:     255
AIPStv*graphics5R:     255
AIPStv*graphics5G:      45
AIPStv*graphics5B:      45
AIPStv*graphics6R:     153
AIPStv*graphics6G:     153
AIPStv*graphics6B:     255
AIPStv*graphics7R:     255
AIPStv*graphics7G:     204
AIPStv*graphics7B:     102
AIPStv*graphics8R:       0
AIPStv*graphics8G:       0
AIPStv*graphics8B:       0
AIPStv*nPlanes:               16
AIPStv*useSharedMemory:        1
AIPStv*useTrueColor:           1
AIPStv*maxGreyLevel:         199
AIPStv*maxCommDelay:       16384
AIPStv*gamma:                220
AIPStv*charMult:               1 (or larger for big TVs)

       where the names of things are obvious, the case is important, and
       the values shown here are the defaults.  Colors must be between 0
       and 255 for the cursor and graphics channels 1 through 7.
       Graphics channel 8 is used as a background and is limited to 0
       through 63.  The cursor shape numbers are defined in the Xlib
       Reference Manual (Volume Two of The Definitive Guides to the X
       Window System).  Even numbers from 0 through 154 are legal, but
       not all are desirable.  Possibilities include 30 (a cross with 2
       lines in each direction), 40 (a square with a central dot), 128
       (an ellipse with a central dot), 132 (arrow like the default
       cursor) and many others.  34 is a simple plus sign.

       In 31DEC08, XAS has acquired more memory planes, 16 by default.
       Each plane uses Xpixels times yPixels bytes, but this is
       trivial in modern computers.  Nonetheless, the option to
       allocate fewer is available.

       We have added control over the screen x and y sizes.  This
       means you can make them smaller than the default or bigger than
       the visible screen.  The latter may or may not play well with
       your screen manager.  The default sizes are the screen size
       less 10 in x and 100 in y.  The latter allows room for the top
       window bar and 69 pixels minimum room to type in a window
       beneath the TV.

       The gamma correction is in integer 100'ths; i.e. the default 220
       means a gamma correction of 2.20.

       The maxGreyLevel is used only in pseudo-color visuals.  The
       default is the maximum for the workstation device minus 56.
       XAS is able to use higher limits than this, usually the maximum
       minus 18, or 237 for most workstations.  The maxGreyLevel
       parameter is offered because users have different numbers of
       colors in what X-Windows calls the default color table.  If XAS
       requires more levels (colors) than are left over in the default
       table it will create one of its own.  Then, when the cursor
       moves into the XAS window the XAS table is used for the whole
       workstation and when the cursor is not in the XAS window the
       default table is used for the whole workstation, including the
       XAS window.  This creates undesirable flashing of colors and
       can even render your text windows unreadable.  Using a lower
       maxGreyLevel may avoid this problem, but then limits the
       dynamic range of your display.  These considerations do NOT
       apply to TrueColor displays and a max grey level of 255 is
       always used.

       The use of Shared memory is important for speed when it is
       available.  Turn it off (value = 0) at your peril.  It will be
       automatically disabled if the X server and X client (XAS) are not
       running on the same host, or if XAS was not built with the MIT
       shared memory extension enabled (some sites don't have the
       libraries).

       XAS has a fixed font for characters.  For some applications, or
       on really big TV screens, the characters may be too small.
       You can make them bigger (or smaller) by setting charMult to an
       integer from 1 through 5.  The verb inside AIPS called CHARMULT
       allows you to change sizes while running a particular XAS, but
       each new XAS will start with the default character size or that
       in .Xdefaults.

       XAS now also supports the concept of asynchronous execution of
       AIPS' TV commands.  maxCommDelay is the maximum number of screen
       update requests that can occur before the screen is updated
       automatically.  AIPS code usually forces this update whenever it
       is needed.  However, over slow links, you may wish to reduce this
       to 50 or so, or even turn it off with values <= 1.

       The geometry and iconGeometry code require more explanation.  The
       string is
             <width>x<height>[+-]xoff[+-]yoff
       where + offsets refer to the top and left and - offsets refer to
       the bottom and right.  The default icon position is the top right
       corner of the screen and the default window position is the top
       left corner.  Note that the width and height of the icon are set
       by its designer and cannot be changed.  They may be omitted.  The
       width and height set for the display window are just those which
       it will take at the beginning.  You may resize and move the
       window, and move the icon, afterwards.  As XAS starts up
       iconified, it is often useful to make its iconGeometry location
       somewhere other than a corner, so you don't miss it because it's
       under a clock or something...

       When XAS begins it asks the workstation for its dimensions and
       available intensities and then tells you the parameters it will
       use.
----------------------------------------------------------------
