	PRO TVPLT,XVAL,YVAL,IMAGE,MX,MY,IX,IY,DISABLE=DISABLE,_EXTRA=_EXTRA
;+
; Project     : SOHO - CDS
;
; Name        : 
;	TVPLT
; Purpose     : 
;	Plots points on displayed images.
; Explanation : 
;	The values MX, MY and IX, IY are used to convert the data coordinates
;	XVAL, YVAL to screen coordinates.  Then OPLOT is used to plot the 
;	points.
; Use         : 
;	TVPLT, XVAL, YVAL  [, IMAGE, MX, MY, IX, IY ]
; Inputs      : 
;	XVAL,YVAL = The X,Y positions of the points to plot.
; Opt. Inputs : 
;	IMAGE	  = The image to plot over.
;	MX, MY	  = Size of displayed image.
;	IX, IY	  = Position of the lower left-hand corner of the image.
;
;	If the optional parameters are not passed, then they are retrieved with
;	GET_TV_SCALE.  It is anticipated that these optional parameters will
;	only be used in extremely rare circumstances.
;
; Outputs     : 
;	None.
; Opt. Outputs: 
;	None.
; Keywords    : 
;	DISABLE   = If set, then TVSELECT not used.
;
;	Also, any plotting keyword, such as PSYM, COLOR, etc., can be used.
; Calls       : 
;	GET_TV_SCALE, TVSELECT, TVUNSELECT
; Common      : 
;	None.
; Restrictions: 
;	It is important that the user select the graphics device/window, and
;	image region before calling this routine.  For instance, if the image
;	was displayed using EXPTV,/DISABLE, then this routine should also be
;	called with the /DISABLE keyword.  If multiple images are displayed
;	within the same window, then use SETIMAGE to select the image before
;	calling this routine.
;
;	In general, the SERTS image display routines use several non-standard
;	system variables.  These system variables are defined in the procedure
;	IMAGELIB.  It is suggested that the command IMAGELIB be placed in the
;	user's IDL_STARTUP file.
;
;	Some routines also require the SERTS graphics devices software,
;	generally found in a parallel directory at the site where this software
;	was obtained.  Those routines have their own special system variables.
;
; Side effects: 
;	None.
; Category    : 
;	Utilities, Image_display.
; Prev. Hist. : 
;	W.T.T., Oct. 1987.
;	W.T.T., Feb. 1991, modified to use TVSELECT, TVUNSELECT.
;	William Thompson, May 1992, modified to use GET_TV_SCALE.
;	William Thompson, Oct 1992, added THICK keyword.
;
; Written     : 
;	William Thompson, GSFC, October 1987.
; Modified    : 
;	Version 1, William Thompson, GSFC, 11 May 1993.
;		Incorporated into CDS library.
;	Version 2, 08-Dec-2000, William Thompson, GSFC
;		Replace plotting keywords with _EXTRA mechanism.
; Version     : 
;	Version 2, 08-Dec-2000
;-
;
	ON_ERROR,2
;
	IF (N_PARAMS() NE 2) AND (N_PARAMS() NE 7) THEN MESSAGE,	$
		'Syntax:  TVPLT, XVAL, YVAL  [, IMAGE, MX, MY, IX, IY ]'
;
	IF N_PARAMS() EQ 2 THEN BEGIN
		GET_TV_SCALE,SX,SY,MX,MY,IX,IY,DISABLE=DISABLE
	END ELSE BEGIN
		S = SIZE(IMAGE)
		IF S(0) NE 2 THEN MESSAGE,'IMAGE must be two-dimensional'
		SX = S(1)
		SY = S(2)
	ENDELSE
;
	IF ((MX LE 1) OR (MY LE 1)) THEN BEGIN
		PRINT,'*** The dimensions MX,MY must be > 1, routine TVPLT.'
		RETURN
	ENDIF
;
;  Set the image display device or window.
;
	TVSELECT, DISABLE=DISABLE
;
;  Make sure the optional plotting keywords are defined.
;
;
;  Set the proper coordinate system, and plot the points XVAL, YVAL.
;
	XS = SX / FLOAT(MX)
	YS = SY / FLOAT(MY)
	PLOTS,IX + XVAL/XS,IY + YVAL/YS,/DEVICE,_EXTRA=_EXTRA
	TVUNSELECT, DISABLE=DISABLE
;
	RETURN
	END
