/* datagen.s */
/**********************************************************************
datagen()
***********************************************************************
Programmer: R. T. Wietelmann/G.H.Brand
Date: Oct 7, 1982
Modified for V2.0 by D.G.Messerschmitt March 11, 1985
Mod: ljfaber 12/87 add 'auto fanout'
This function generates a random sequence of bits, which can be used
to exercise a data transmission system.
Input parameters:
int initialize: Initialize shift reg for pseudo random sequence
The pseudo-random sequence generator uses the polynomial x**10+x**3+1.
CONTROL PARAMETERS:
num_of_samples = total number of samples to output.
pace_rate = multiplies the number of samples received
on pace input (if connected) to determine
how many samples to output.
samples_first_time = the number of samples to put out on the
first call if pace input connected. It can
be zero. negative values = 0.
CONTROL DESCRIPTION:
If the pace input is not connected:
The num_of_samples parameter sets the maximum number of samples
that the star will output. If num_of_samples < 0, an indefinite
number of samples can be output.
The star will output a maximum of NUMBER_SAMPLES_PER_VISIT on each call.
If the pace input is connected:
The num_of_samples parameter sets the maximum number of samples
that the star will output. If num_samples_out < 0, an infinite
number of samples can be output.
The pace input paces the number of output samples on each call.
At each call of the star all samples are read from the pace input
and a running total of how many there have been is kept.
An output_target is computed at each pass = pace_input_total *
pace_rate. If pace_rate < 0, the absolute value is used.
On the first call:
output = lesser of (samples_first_time, num_of_samples)
On subsequent calls:
output = lesser of (NUMBER_SAMPLES_PER_VISIT, output_target)
output_target = samples_first_time +
pace_rate * pace_input_total - to that point
The total number of samples that will be output:
samples_out_total = lesser of (num_of_samples,
samples_first_time + pace_rate * pace_input_total)
datagen
This function generates a random sequence of bits, which can be used
to exercise a data transmission system.
Input parameters:
int initialize: Initialize shift reg for pseudo random sequence
The pseudo-random sequence generator uses the polynomial x**10+x**3+1.
CONTROL PARAMETERS:
num_of_samples = total number of samples to output.
pace_rate = multiplies the number of samples received
on pace input (if connected) to determine
how many samples to output.
samples_first_time = the number of samples to put out on the
first call if pace input connected. It can
be zero. negative values = 0.
CONTROL DESCRIPTION:
If the pace input is not connected:
The num_of_samples parameter sets the maximum number of samples
that the star will output. If num_of_samples < 0, an indefinite
number of samples can be output.
The star will output a maximum of NUMBER_SAMPLES_PER_VISIT on each call.
If the pace input is connected:
The num_of_samples parameter sets the maximum number of samples
that the star will output. If num_samples_out < 0, an infinite
number of samples can be output.
The pace input paces the number of output samples on each call.
At each call of the star all samples are read from the pace input
and a running total of how many there have been is kept.
An output_target is computed at each pass = pace_input_total *
pace_rate. If pace_rate < 0, the absolute value is used.
On the first call:
output = lesser of (samples_first_time, num_of_samples)
On subsequent calls:
output = lesser of (NUMBER_SAMPLES_PER_VISIT, output_target)
output_target = samples_first_time +
pace_rate * pace_input_total - to that point
The total number of samples that will be output:
samples_out_total = lesser of (num_of_samples,
samples_first_time + pace_rate * pace_input_total)
Programmer: R. T. Wietelmann/G.H.Brand
Date: Oct 7, 1982
Modified for V2.0 by D.G.Messerschmitt March 11, 1985
Mod: ljfaber 12/87 add 'auto fanout'
*/