
	/* panel.h	- some definitions for PANEL/FMS interface */

#define $DESCRIPTOR1(name,string)	struct dsc$descriptor_s \
name = { sizeof(string), DSC$K_DTYPE_T, DSC$K_CLASS_S, &string }

#define $DESCRIPTORM(name,string)	struct dsc$descriptor_s \
name = { sizeof(string), DSC$K_DTYPE_T, DSC$K_CLASS_S, string }

#define $DESCRIPTORA(name,array,type)	struct dsc$descriptor_a \
name = { sizeof (type), DSC$K_DTYPE_L, DSC$K_CLASS_A, array, 0, 0, { 0, 0, 0, 0, 0 }, 1, sizeof array }

#define LENGTH(descriptor)	descriptor.dsc$w_length
#define POINTER(descriptor)	descriptor.dsc$a_pointer

#define $DESCR(literal) (LENGTH (_temp_descr_1) = sizeof literal - 1,\
 POINTER (_temp_descr_1) = literal, &_temp_descr_1)

static  int
	terminator,		/* Terminator returned by FDV */
	fmsstatus,		/* Status for last FDV call */
	rmsstatus;		/* RMS Status for last FDV call */

static	int
	workspace [3],		/* General workspace		*/
	tcarea [3],		/* Terminal Control Area	*/
    	menu_form [500],	/* Storage for memory resident form */
    	size_menu;

	/* Array descriptors for above	*/

static	$DESCRIPTORA (_workspace, workspace, int);
static	$DESCRIPTORA (_tcarea, tcarea, int);
static	$DESCRIPTORA (_menu_form, menu_form, int);

	/* define a few temporary strings that we will need */

static	struct	dsc$descriptor_s
	_temp_descr_1 = { 0, DSC$K_DTYPE_T, DSC$K_CLASS_S, 0 },
	_temp_descr_2 = { 0, DSC$K_DTYPE_T, DSC$K_CLASS_S, 0 };


