mio_read_directed

	status.i4.v = mio_read_directed(num_devices.i4.v, device_indices.i4a.r,
					properties.i2a.r, lengths.i2a.r,
					offsets.i2a.r, raw_data.ga.r,
					errors.i2a.r)

	This routine returns raw data from the MIO datapool.  This routine
	differs from mio_read in that the output is directed by an array
	of pointers to data buffers with one pointer per device.

	num_devices	number of device requesting data
	device_indices	device indexes
	properties	property indexes
	lengths		data lengths in bytes
	offsets		data offsets in bytes 
	raw_data	returned raw data  (This is an array of pointers
			to the data buffers in which to place the returned
			data.  There is one pointer/data buffer per device.)
	errors		return device errors

	This function returns ACNET status values as follows:

	OK			success
	negative value		overall ACNET error
	positive value		number of devices in error

	This function requires the following include files:

	dbprops_h, diolib_h, acnet_errors_h, tclk_events_h

	Related functions:

	dio_simulate, mio_read, mio_set, mio_control, mio_cancel,
	mio_fill_status

	C/C++ usage:

	char	data_buffer_1[RAW_DATA_SIZE_1];
	char	data_buffer_2[RAW_DATA_SIZE_2];
	short	errors[NUM_DEVICES];
	static const short	properties[NUM_DEVICES] = {PRSET, PRSET};
	static const short	lengths[NUM_DEVICES] = {0, 0};
	static const short	offsets[NUM_DEVICES] = {0, 0};
	int	status;
	int	num_devices = NUM_DEVICES;
	static const int	device_indices[NUM_DEVICES] = {14430, 14431};
	void	*raw_data[NUM_DEVICES];

	raw_data[0] = (void *) data_buffer_1;
	raw_data[1] = (void *) data_buffer_2;

	status = mio_read_directed(num_devices,device_indices,properties,
				   lengths,offsets,raw_data,errors);