td_read

	status.i4.v = td_read(list_id.i4.r, values.g.v, errors.i2a.r 
			      [,stop_slots.i2a.r])

	This routine reads data for a list of table devices previously setup
	by a call to td_build(_c).

	list_id		ID returned from call to td_build(_c)
	values		returned data whose type depends on the td_build(_c)
			argument "scale"
			(TRUE  -> each half slot represented by a four byte
				  float point value,
			 FALSE -> each half slot represented by a two byte
				  integer value)
	errors		array of returned ACNET status values
			(one per entry in the list)
	[stop_slots]	returned slot number of slot with stop bit set
			for each entry in the list (slot numbers start at 1)
			(a value of 0 indicates no stop-bit) (default is NULL)
			(Note: This argument is valid for 160-module scaled
			 data only.  In addition, to be successful, the stop
			 bit must fall within the range of slots requested
			 as well as the portion of each slot selected
			 (SLOT_INDEPENT or SLOT_WHOLE for MDAT_TABLE and
			 SLOT_DEPENDENT or SLOT_WHOLE for TIME_TABLE).)

	This function returns status values as follows:

	OK			success
	DIO_MEMFAIL		memory allocation failure
	DIO_NOLIST		requested list does not exist
	negative value		ACNET format error indicating overall failure
	positive value		number of devices in error indicating partial
				success

	This function requires the following include files:

	cnsparam_h, diolib_h, acnet_errors_h

	Related functions:

	td_build(_c), td_set(_c), td_cancel, td_read_one(_c), td_set_one(_c),
	td_query, td_extract_list_status_c, dio_get_lst

	C/C++ usage:

	short	errors[NUM_DEVICES];
	short	stop_slots[NUM_DEVICES];
	int	status;
	int	list_id;
	float	values[NUM_DEVICES][MAX_SLOTS];

	status = td_read(&list_id,(void *) values,errors,stop_slots);