bpm_crate_info_c

	status.i4.v = bpm_crate_info_c(crate_names.i1a.r, num_crates.i4.r,
				       max_name_length.i4.r, max_return.i4.v
				       [,alt_crate_names.i1a.r]
				       [,max_alt_name_len.i4.r]
				       [,num_horz_bpms.i4a.r]
				       [,num_vert_bpms.i4a.r]
				       [,num_bms.i4a.r])

	This routine returns the BPM crate information for the currently
	selected system.  A value of NULL can be passed for any returned
	arguments whose values are not needed.

	crate_names	returned array of crate names
			(BPM_CRATE_NAME_LEN + 1 characters per crate)
	num_crates	returned number of crates
	max_name_length	returned maximum crate name length for this system
	max_return	maximum number of crate names to return
	[alt_crate_names] returned array of alternate crate names
			  (BPM_CRATE_NAME_LEN + 1 characters per crate)
			  (default is NULL)
	[max_alt_name_len] returned maximum alternate crate name length
			   for this system
			   (default is NULL)
	[num_horz_bpms]	returned number of horizontal BPMs per crate
			(default is NULL)
	[num_vert_bpms]	returned number of vertical BPMs per crate
			(default is NULL)
	[num_blms]	returned number of BLMs per crate
			(default is NULL)

	This function returns status values as follows:

	OK			success
	CBS_NOTYET		not yet supported for the active machine

	This function requires the following include files:

	cnsparam_h, ul_cbsaux/bpmuti.h

	Related functions:

	bpm_machine_c, bpm_get_microp_times_c, bpm_get_crates_and_channels

	C/C++ usage:

	char	crate_names[NUM_CRATES][BPM_CRATE_NAME_LEN+1];
	char	alt_crate_names[NUM_CRATES][BPM_CRATE_NAME_LEN+1];
	int	status;
	int	num_crates;
	int	max_name_length;
	int	max_return = NUM_CRATES;
	int	max_alt_name_len;
	int	num_horz_bpms[NUM_CRATES];
	int	num_vert_bpms[NUM_CRATES];
	int	num_blms[NUM_CRATES];

	status = bpm_crate_info_c((char *) crate_names,&num_crates,
				  &max_name_length,max_return,
				  (char *) alt_crate_names,
				  &max_alt_name_len,num_horz_bpms,
				  num_vert_bpms,num_blms);