camac_io_c

	status.i4.v = camac_io_c(front_end.i4.v, num_commands.i4.v,
				 crate.i4a.r, slot.i4a.r, function.i4a.r,
				 subaddress.i4a.r, data.i4a.r,
				 camac_status.i1a.r [,retries.i4a.r]
				 [,arbitration.i4a.r] [,ext_status.i2a.r])

	This routine performs basic CAMAC functions.  For the crate, slot,
	function, subaddress, retries, and arbitration arguments, a negative
	value for the first entry will be interpreted as a common value for
	all entries.  This common value will be the absolute value of the
	passed argument minus one.  For example, if you wanted all the
	commands to have a subaddress value of zero, a value of minus one
	should be passed for the argument.

	front_end	front end computer to send commands to
			(constants are in 'nodedefs')
	num_commands	number of CAMAC commands to execute
	crate		array of crate addresses
	slot		array of slot numbers
	function	array of function code values
	subaddress	array of subaddress values
	data		array of data words to be sent in the case of a
			write command or to be returned in the case of
			a read command
	camac_status	array of returned CAMAC status values
			(constants are in 'support_camac')
	[retries]	array of number of no-Q retries (default (NULL) is 1)
	[arbitration]	array of arbitration values (default (NULL) is 0)
	[ext_status]	returned extended status (4 words per command)
			(default is NULL)

	This function returns status values as follows:

	OK			success
	DIO_SETDIS		settings are disabled
	negative value		overall ACNET style error code
	positive value		number of commands in error

	This function requires the following include files:

	support_camac_h, nodedefs_h, acnet_errors_h

	Related functions:

	camac_error_to_acnet_error_c, camac_error_text_c

	C/C++ usage:

	char	camac_status[NUM_COMMANDS];
	short	ext_status[NUM_COMMANDS][4];
	int	status;
	int	front_end = NCAMAC;
	int	num_commands = NUM_COMMANDS;
	static const int	crate[NUM_COMMANDS] = {0x2, 0x2};
	static const int	slot[NUM_COMMANDS] = {1, 2};
	static const int	function[NUM_COMMANDS] = {6, 6};
	static const int	subaddress[NUM_COMMANDS] = {0, 0};
	int	data[NUM_COMMANDS];
	static const int	retries[NUM_COMMANDS] = {1, 1};
	static const int	arbitration[NUM_COMMANDS] = {0, 0};

	status = camac_io_c(front_end,num_commands,crate,slot,function,
			    subaddress,data,camac_status,retries,
			    arbitration,(short *) ext_status);