rampcard_shaper

	status.i4.v = rampcard_shaper(device_index.i4.v, table_type.i4.v,
				      data.r4a.r [,user_function.f.v]
				      [,function_data.g.v] [,ld_rs_auxwin.s.r])

	This routine allows a user to edit a ramp waveform either graphically
	or by directly typing in values and returns the modified waveform.

	device_index	device index of table
	table_type	type of table (constants are in 'diolib')
	data		table of data to be modified
			(data is ordered (x1, y1, x2, y2, ...))
	[user_function]	user supplied function which will be called whenever
			a change is made to the table and is called as follows:
			user_function(ramp_data.s.r, function_data.g.v)
			("ramp_data" is a structure of type RAMPCARD_EDIT_DATA)
			(default is NULL)
	[function_data]	data to be passed to the user supplied function
			(default is NULL)
	[ld_rs_auxwin]  structure of type RAMPCARD_CONTROL_WINDOW_TYP. This
			argument is used for implementing the "load cards" and
			"restore cards" commands within the Edit Window, and for
			adding the auxiliary (pop-up menu) command window if
			that optional additional feature is desired.
			(default is NULL)

	This function returns ACNET status values as follows:

	OK			success
	CBS_MEMFAIL		failed in allocating dynamic memory
	CBS_INVALID_DATA	passed data is out of range
	CBS_ABORT		user aborted
	DIO_INVDEV		device does not match table type

	This function requires the following include files:

	diolib_h, ul_cbsaux_h:auxlib_misc_h

	Related functions:

	rampcard_shaper_init

	C/C++ usage:

	int	status;
	int	device_index = 55667;
	int	table_type = TIME_TABLE;
	float	data[NUM_POINTS][2];
	static const  RAMPCARD_EXT_USR_FNS_TYP	ext_usr_fn_structs[2] = {
	{-1, load_module_function, (void *) NULL},
	{0, restore_module_function, (void *) NULL}};
	RAMPCARD_CONTROL_WINDOW_TYP	ld_rs_auxwin;
	void	*function_data = (void *) NULL;
	void	user_function(RAMPCARD_EDIT_DATA *ramp_data,
			      void *function_data);
	void	load_module_function(RAMPCARD_TABLE_DATA *table_data,
				     void *function_data);
	void	restore_module_function(RAMPCARD_TABLE_DATA *table_data,
					void *function_data);

	ld_rs_auxwin.control_win_active = FALSE;
	ld_rs_auxwin.load_fn_active = TRUE;
	ld_rs_auxwin.restore_fn_active = TRUE;
	ld_rs_auxwin.ext_usr_fn_struc = ext_usr_fn_structs;
	ld_rs_auxwin.edit_win_txt_con_win_line = (char *) NULL;
	ld_rs_auxwin.control_win_line = 0;
	ld_rs_auxwin.control_win_col = 0;
	ld_rs_auxwin.control_win_nitems = 0;
	ld_rs_auxwin.control_win_menu_txt = (char **) NULL;
	ld_rs_auxwin.control_win_title = (char *) NULL;

	status = rampcard_shaper(device_index,table_type,data,user_function,
				 function_data,&ld_rs_auxwin);