THE GENERATOR (c)1995 All Rights Reserved
Data Generation 
33 Philip Road
Cape Elizabeth, ME 04107
207 767-0665
wizard@maine.com

Technical Documentation For The Generator (c)1995

Introduction
Part 1:  Creating a Specification File
Part 2:  The Specification File Settings
Part 3:  The Header Portion Of The Spec File 
Part 4:  The Field Portion Of The Spec File
Part 5:  Data Fill Type Values 

Introduction

The Generator is a software program designed to make it quick and easy to
generate realistic data for any type of application. The user builds a 
specification that instructs the generation engine what to output. The files
that are outputted can be loaded into any type of application because they
are in ASCII text file format. The user can select the delimiters between
fields and records.

The Generator is available for any platform that supports a c compiler. This
includes almost all operating systems, including DOS, SYSTEM7, WINDOWS-95, 
WINDOWS-NT, OS2, AS400, RS6000, MVS, VM, VSE, most versions of UNIX, and 
other platforms.

PLEASE NOTE:

THIS VERSION OF THE GENERATOR IS A FULLY FUNCTIONAL FREEWARE VERSION. 
IT DOES HAVE THE FOLLOWING LIMITATIONS;

MAX FIELD WIDTH = 25
MAX FIELDS IN SPECIFICATION = 25
MAX OUTPUT = 200 RECORDS
SUBSETS OF THE SUPPLIED DATA FILES (CITIES,STATES,COUNTIES,ZIP CODES,PHONE
NUMBERS,NAMES,COMPANIES,AND ADDRESSES)
DOES NOT INCLUDE ATTACH FACILITY THAT CONVERTS DBMS SCHEMAS TO A SPEC FILE
DOES NOT SUPPORT REFERENTIAL INTEGRITY CHECKS FOR MULTIPLE TABLES
DOES NOT INCLUDE THE INTERNATIONAL VERSIONS



Part 1:  Creating a Specification File

The specification file can be created using the program MAKESPEC. This
will prompt the user for information about the output database. It auto- 
matically creates a specfile with default values that can be modified with
any text editor. 

Part 2:  The Specification File Settings

The specifications file consists of two distinct parts, a header block
which contains general information about the output file, and a list of
field specification lines which define each record of the output file.

A typical input file might look like:

 mytest
     10
 F
 P
 L
   1,FIELD 1,FIELD 2,NAMEL, 10,R,0,0,   0,0,1,2
   2,FIELD 1,FIELD 2,NAMEF, 10,R,0,0,   0,0,  1,  2
   3,FIELD 1,FIELD 2,GENDR, 1,S,0,0,1,0,1,1
   4,FIELD 1,FIELD 2,NAMEM, 10,R,0,0,   0,0,    1,5
   5,FIELD 1,FIELD 2,NAMMI,  1,R,0,0,0,0,1,1
   6,FIELD 1,FIELD 2,PREFX,  2,R,0,0,0,0,1,1
   7,FIELD 1,FIELD 2,COMPA, 30,R,0,0,0,0,1,1
   8,FIELD 1,FIELD 2,ADDR1, 20,R,0,0,0,0,1,1
   9,FIELD 1,FIELD 2,CITUS, 10,R,0,0,0,0,1,1
  10,FIELD 1,FIELD 2,STATA,  3,R,0,0,0,0,1,1
  11,FIELD 1,FIELD 2,ZIP05,  7,R,0,0,0,0,1,1
  12,FIELD 2,FIELD 3,ZIP09,  10,R,0,0,1,0,1,123
  13,FIELD 2,FIELD 3,ZIP9D,  10,R,0,0,1,0,1,12
  14,FIELD 1,FIELD 2,PHOAC,  3,R,203,609,1,0,1,5
  15,FIELD 1,FIELD 2,PHOEX,  3,S,444,777,1,0,1,1
  16,FIELD 1,FIELD 2,PHONO,  7,R,2031111,6099999,1,0,1,5
  17,FIELD 1,FIELD 2,PHONE, 10,S,0,0,1,0,1,1
  18,FIELD 1,FIELD 2,INTER,  5,S,-100,100,   2,2,1,    2
  19,FIELD 2,FIELD 3,HEXAD,  3,R,0,fff,   2,0,1,    2
  20,FIELD 1,FIELD 2,ZONED,  5,S,-100,100,   2,0,1,    2
  21,FIELD 1,FIELD 2,PACKD,  4,R,-100,100,   2,0,1,    2
  22,FIELD 1,FIELD 2,T24HR,  6,S,35959,240000,1,0,1,2
  23,FIELD 1,FIELD 2,T24AP,  8,R,0,2400,1,0,1,2
  24,FIELD 1,FIELD 2,T24CO,  8,R,130000,240000,1,0,1,2
  25,FIELD 1,FIELD 2,T24PR,  8,R,130000,240000,1,0,1,2
  26,FIELD 1,FIELD 2,DFULL, 18,R,1011994,12311994,1,0,1,4
  27,FIELD 1,FIELD 2,DABBR, 12,R,1011994,12311994,1,0,1,4
  28,FIELD 1,FIELD 2,DAMDY,  8,S,10194,123199,1,0,1,4
  29,FIELD 1,FIELD 2,DDMD2,  8,R,10194,123199,1,0,1,4
  30,FIELD 1,FIELD 2,DAYMD,  8,S,940101,991231,1,0,1,4
  31,FIELD 1,FIELD 2,DD2MD,  8,R,940101,991231,1,0,1,4
  32,FIELD 1,FIELD 2,DY2MD,  6,R,940101,941231,1,0,1,4
  33,FIELD 1,FIELD 2,DMDY2,  6,R,10194,123194,1,0,1,4
  34,FIELD 1,FIELD 2,DAMD4, 10,R,1011994,12319999,1,0,1,4
  35,FIELD 1,FIELD 2,DDMD4, 10,R,1011994,12319999,1,0,1,4
  36,FIELD 1,FIELD 2,DA4MD, 10,R,19940101,19991231,1,0,1,4
  37,FIELD 1,FIELD 2,DD4MD, 10,R,19940101,19991231,1,0,1,4
  38,FIELD 1,FIELD 2,DMDY4,  8,R,1011994,12311994,1,0,1,4
  39,FIELD 1,FIELD 2,DY4MD,  8,R,19940101,19940228,1,0,1,4
  40,FIELD 1,FIELD 2,JUY4D,  7,R,1994001,1994059,1,0,1,4
  41,FIELD 1,FIELD 2,JUDY4,  7,R,11994,3651994,1,0,1,4
  42,FIELD 1,FIELD 2,JUY2D,  5,R,94001,94365,1,0,1,4
  43,FIELD 1,FIELD 2,JUDY2,  5,R,194,36594,1,0,1,4
  44,FIELD 1,FIELD 2,STMP1, 26,S,19990101 130000 0,19991231 240000 9999,1 0 1,0,2,4 3 2
  45,FIELD 1,FIELD 2,STMP2, 26,R,19990101 130000 0,19991231 240000 9999,1 0 0,0,1,4 3 2
  46,FIELD 1,FIELD 2,STMP3, 20,S,19990101 130000 0,19991231 240000 9999,1 0 0,0,2,4 3 2
  47,FIELD 1,FIELD 2,DUNIX, 30,R,19940101 130000,19991231 240000,1 0,0,1,4 3 ALL
  48,FIELD 1,FIELD 2,BLANK,  4,S,0,0,   1,0,2,0
  49,FIELD 1,FIELD 2,STRIN, 11,S,0,0,   1,0,1,Hello World
  50,FIELD 1,FIELD 2,CUSTA, 20,R,0,0,1,0,1,addr1.txt
  51,FIELD 1,FIELD 2,CUSTN,  8,R,0,0,1,0,1,nums.txt
  52,FIELD 1,FIELD 2,READF, 20,R,0,3,1,0,2,city.txt,2,6
  53,FIELD 1,FIELD 2,RANDA, 11,S,1,78,   1,0,1,1
  54,FIELD 1,FIELD 2,RANDC, 11,S,1,52,  1,0,1,1
  55,FIELD 1,FIELD 2,COPYF, 15,R,0,0,   0,0,    1,2
  56,FIELD 2,FIELD 3,FLTPF, 10,S,0,0,0,5,1,2
  57,FIELD 2,FIELD 3,FLTPF, 10,R,-1.111111,77.77777,7,0,1,2
  58,FIELD 1,FIELD 2,COMBO, 20,S,0,0,1,0,1,1:1-4(!),2:1-2(!),4:3-7(\)

The spec file may also contain blank lines or comment lines.  Comment
lines are those in which the first non-blank character is an asterisk
or a slash followed by an asterisk, as in the following:

	 mytest
	 * this is a comment
	    10
	 F

	 P
	 L
	 * this is a comment
		       * this is a comment
	/* this is a comment
		  /* this is a comment
	  1,FIELD 2,FIELD 3,HEXAD, 9,R,0,f,0,0,1,2

Part 3:  The Header Portion Of The Spec File

The details of the header block follow:

 mytest        (H0)
     10        (H1)
 F             (H2)
 P             (H3)
 L             (H4)

The first valid data line (H0) in the header contains the prefix for the
name of the output file to which the suffix ".GEN" is affixed, so, in this
case, the file "mytest.GEN" will contain the generated data.

The second line (H1) contains the number of records to be generated in the
output file, in this case, 10.  The legal range for this number is 1 through
the size of a "long" data type in C, normally, 2147483648.

The third line (H2) determines the type of the length of the field.  The
valid entries for this type is "F" for fixed length fields or "V" for vari-
able field lengths.  Thus, for fixed length fields, if the size of the
value to be placed in the field is less than the length of the field speci-
fied in the field description line, the field will be padded with blanks
for alphanumeric data and zeroes for numeric data to make the value fit the
size of the field.  Also, in this case, alphanumeric data is left justified
and numeric data is right justified in the field.  Note, too, that if the
field length specified in the field description line is smaller than the
actual size of the value to be inserted, the value will be truncated from
the right to fit the field size.  For variable length fields, the field is
the same size as the value to be inserted.

The fourth and fifth lines (H3, H4) determine the field separator and record
separator, respectively.  The following values are legal:

  A = apostrophe ("'")
  C = comma      (",")
  N = null       (no separator)
  P = pipe       ("|")
  S = slash      ("/")


Part 4:  The Field Portion Of The Spec File

After the first two field values (Field Name and Field Data Type) 
are skipped, each line must have 10 field settings.


		     field number:   1 - N
		     field name: for user reference only
		     field type: for user reference only
		     field type:     NAMEL = last name
				     NAMEF = first name
				     GENDR = M or F
				     NAMEM = middle name
				     NAMMI = middle initial
				     PREFX = Mr or Ms
				     COMPA = company name
				     ADDR1 = street address
				     CITUS = city
				     STATA = state
				     ZIP05 = 5-digit zip code
				     ZIP09 = 9-digit zip code
				     ZIP9D = 9-digit zip code with dash
				     PHOAC = area code
				     PHOEX = exchange number
				     PHONO = 7-digit phone number
				     PHONE = complete phone number
				     INTER = positive/negative integer/real
				     HEXAD = hexadecimal number
				     PACKD = packed decimal data; each half-
					     byte represents a value 0-9; the
					     hex value in the right half of
					     the rightmost byte is the sign:
					     B or D represents a negative
					     number, A, C, E, or F repre-
					     sents a positive number.
				     ZONED = zoned decimal data; each byte
					     corresponds to the character
					     representation of a single
					     decimal digit; the hex value
					     in the left half of the right-
					     most byte is the sign: B or D
					     represents a negative number,
					     F indicates a positive number.
				     T24HR = time - HHMMSS
				     T24AP = time - HH:MM AM or PM
					     (seed, upper, lower = HHMM)
				     T24CO = time - HH:MM:SS
				     T24PR = time - HH.MM.SS
				     DFULL = date - September 10, 1994
					     (seed, upper, lower = MMDDYYYY)
				     DABBR = date - Sep 10, 1994
					     (seed, upper, lower = MMDDYYYY)
				     DAMDY = date - MM/DD/YY
				     DDMD2 = date - MM-DD-YY
				     DAYMD = date - YY/MM/DD
				     DD2MD = date - YY-MM-DD
				     DY2MD = date - MMDDYY
				     DMDY2 = date - YYMMDD
				     DAMD4 = date - MM/DD/YYYY
				     DDMD4 = date - MM-DD-YYYY
				     DA4MD = date - YYYY/MM/DD
				     DD4MD = date - YYYY-MM-DD
				     DMDY4 = date - MMDDYYYY
				     DY4MD = date - YYYYMMDD
				     JUY4D = Julian date - YYYYDDD
				     JUDY4 = Julian date - DDDYYYY
				     JUY2D = Julian date - YYDDD
				     JUDY2 = Julian date - DDDYY
				     STMP1 = CCYY-MM-DD-HH.MM.SS.NNNNNN
				     STMP2 = CCYY/MM/DD.HH.MM.SS.NNNNNN
				     STMP3 = CCYYMMDDHHMMSSNNNNNN
				     DUNIX = Mon Aug 22 13:44:11 CST 1994
				     BLANK = single blank
				     STRIN = character constant string
				     CUSTA = custom alphabetic data
				     CUSTN = custom numeric data
				     READF = read a specific ASCII field
				     (seed = file name,starting col, length
				     RANDA = random alphanumeric string
					     (upper/lower case + digits)
				     RANDC = random character string
					     (upper/lower case)
				     COPYF = duplicate a previous field
				     COMBO = combine parts or all of up to
					     six fields with optional
					     separators between each
					     (seed = up to five sets of
					     F:C1-C2(S), where F = field
					     number, C1 = starting column,
					     C2 = ending column, and S =
					     separator.  If no separator is
					     desired, () should be entered.)
		     field length:   for fixed length records only
		     order:          sequential or random
		     lower limit:    integer
		     upper limit:    integer
		     interval:       integer
		     decimal places: integer
		     repeat count:   integer number of times to use a value
		     seed:           random number seed or string constant
				       or file name for custom data

Certain of these field specifications have the same limitations no matter
what the field type; with others, restrictions vary depending on field type.

The following rules apply no matter what the field type:

"field number" must be in the range 1-100.  The numbers need not be ordered
sequentially in the specifications file but they must begin with 1 and be
consecutive once the fields are sorted, that is, the sequence 2, 4, 1, 3 is
legal whereas the sequence 2, 3, 4 is not.  Note, too, that the fields will
appear in field number order in the output records, that is, if the field
specifications are in the order 2, 4, 1, 3 in the specifications file, the
output record will contain field 1 first, field 2 second, field 3 third,
and so forth.

"field length" is relative only for fixed length fields but it must be
specified for variable length fields, too, normally as zero.  Recall the
note above about fields being truncated if this value is too small.  The
range of values for this specification is 1-255.

"order", "lower limit", "upper limit", and "interval" are irrelevant for
STRIN, BLANK and COPYF.  "interval" is relevant only for sequential order.
If "lower limit" is less than "upper limit", "interval" must be positive;
if "lower limit" is greater than "upper limit", "interval" must be negative.
"lower limit" and "upper limit", if both are zero, are set to acceptable
limits.  If "interval" is also zero in this case, it is set to one.  Since
sequential order can be either ascending or descending, the upper and lower
limits for those field types that accept sequential order are the same.
Note that, if the upper and lower limits are non-zero and the same, the
same value will be output, no matter what value the interval has.

Sequential order is irrelevant for RANDA, RANDC, NAMEL, NAMEF, NAMEM, GENDR,
NAMMI, PREFX, COMPA, ADDR1, CITUS, STATA, ZIP05, ZIP09, ZIP9D, PHOAC, PHOEX,
PHONO, and PHONE.


Part 5:  Data Fill Type Values

The rules vary for the remaining specifications depending on field type.

field type:      NAMEL (Dubois)
field length:    The longest last name is 15 characters, so a field length
		   less than that may cause truncation of the name.
order:           R (random).  S (sequential) is legal but ignored.
lower limit:     0 - 9875 (-999999999 - 999999999 are legal but irrelevant)
upper limit:     0 - 9875 (-999999999 - 999999999 are legal but irrelevant)
		 If both limits are zero, they are set to 0 and 9875 respec-
		   tively.  If the upper limit is greater than 9875, it is
		   set to 9875.
interval:        0 - 9875 (-999999999 - 999999999 are legal but irrelevant)
		   The interval is ignored in this case.
decimal places:  0 (any other number is illegal)
repeat count:    1 - 32767 or number of output records, whichever is larger;
		 zero is illegal.
seed:            0 - 999999999; negative numbers are illegal.

field type:      NAMEF (Marie, Paul)
field length:    The longest first name is 11 characters, so a field length
		   less than that may cause truncation of the name.
order:           R (random).  S (sequential) is legal but ignored.
lower limit:     0 - 1437 (-999999999 - 999999999 are legal but irrelevant)
upper limit:     0 - 1437 (-999999999 - 999999999 are legal but irrelevant)
		 If both limits are zero, they are set to 0 and 1437 respec-
		   tively.  If the upper limit is greater than 1437, it is
		   set to 1437.
interval:        0 - 1437 (-999999999 - 999999999 are legal but irrelevant)
		   The interval is ignored in this case.
decimal places:  0 (any other number is illegal)
repeat count:    1 - 32767 or number of output records, whichever is larger;
		 zero is illegal.
seed:            0 - 999999999; negative numbers are illegal.

field type:      GENDR (M, F)
field length:    1, which is the minimum legal length, is all that is re-
		   quired for either "M" or "F".
order:           R (random).  S (sequential) is legal but ignored.  The
		   gender is correlated with the last preceding first or
		   middle name in the record; if there is none, the gender
		   is generated randomly.
lower limit:     0 - 1437 (-999999999 - 999999999 are legal but irrelevant)
		   The lower limit is ignored in this case.
upper limit:     0 - 1437 (-999999999 - 999999999 are legal but irrelevant)
		   The upper limit is ignored in this case.
interval:        0 - 1437 (-999999999 - 999999999 are legal but irrelevant)
		   The interval is ignored in this case.
decimal places:  0 (any other number is illegal)
repeat count:    1 - 32767 or number of output records, whichever is larger;
		 zero is illegal.
seed:            0 - 999999999; negative numbers are illegal.

field type:      NAMEM (Louise, Arthur)
field length:    The longest middle name is 11 characters, so a field length
		   less than that may cause truncation of the name.
order:           R (random).  S (sequential) is legal but ignored.  The mid-
		   dle name is correlated with the last preceding first
		   name in the record; if there is none, it is chosen ran-
		   domly from the first name file.
lower limit:     0 - 1437 (-999999999 - 999999999 are legal but irrelevant)
upper limit:     0 - 1437 (-999999999 - 999999999 are legal but irrelevant)
		 If both limits are zero, they are set to 0 and 1437 respec-
		   tively.  If the upper limit is greater than 1437, it is
		   set to 1437.
interval:        0 - 1437 (-999999999 - 999999999 are legal but irrelevant)
		   The interval is ignored in this case.
decimal places:  0 (any other number is illegal)
repeat count:    1 - 32767 or number of output records, whichever is larger;
		 zero is illegal.
seed:            0 - 999999999; negative numbers are illegal.

field type:      NAMMI (D)
field length:    1, which is the minimum legal length, is all that is re-
		   quired for a single initial.
order:           R (random).  S (sequential) is legal but ignored.
lower limit:     0 - 26 (-999999999 - 999999999 are legal but irrelevant)
		   The lower limit is ignored in this case.
upper limit:     0 - 26 (-999999999 - 999999999 are legal but irrelevant)
		   The upper limit is ignored in this case.
interval:        0 - 26 (-999999999 - 999999999 are legal but irrelevant)
		   The interval is ignored in this case
decimal places:  0 (any other number is illegal)
repeat count:    1 - 32767 or number of output records, whichever is larger;
		   zero is illegal.
seed:            0 - 999999999; negative numbers are illegal.

field type:      PREFX (MS, MR)
field length:    The prefixes are each 2 characters long, so a field length
		   less than that will cause truncation of the prefix.
order:           R (random).  S (sequential) is legal but ignored.  The pre-
		   fix is correlated with the last preceding first or middle
		   name in the record; if there is none, it is generated
		   randomly.
lower limit:     0 - 1437 (-999999999 - 999999999 are legal but irrelevant)
		   The lower limit is ignored in this case.
upper limit:     0 - 1437 (-999999999 - 999999999 are legal but irrelevant)
		   The upper limit is ignored in this case.
interval:        0 - 1437 (-999999999 - 999999999 are legal but irrelevant)
		   The interval is ignored in this case.
decimal places:  0 (any other number is illegal)
repeat count:    1 - 32767 or number of output records, whichever is larger;
		 zero is illegal.
seed:            0 - 999999999; negative numbers are illegal.

field type:      COMPA (Mach One Software)
field length:    The longest company name is 26 characters, so a field
		   length less than that may cause truncation of the company
		   name.
order:           R (random).  S (sequential) is legal but ignored.
lower limit:     0 - 18432 (-999999999 - 999999999 are legal but irrelevant)
upper limit:     0 - 18432 (-999999999 - 999999999 are legal but irrelevant)
		 If both limits are zero, they are set to 0 and 18432 respec-
		   tively.  If the upper limit is greater than 18432, it is
		   set to 18432.
interval:        0 - 18432 (-999999999 - 999999999 are legal but irrelevant)
		   The interval is ignored in this case.
decimal places:  0 (any other number is illegal)
repeat count:    1 - 32767 or number of output records, whichever is larger;
		 zero is illegal.
seed:            0 - 999999999; negative numbers are illegal.

field type:      ADDR1 (11900 North Pecos Street)
field length:    The longest address line is 18 characters, so a field
		   length less than that may cause truncation of the address.
order:           R (random).  S (sequential) is legal but ignored.
lower limit:     0 - 17178 (-999999999 - 999999999 are legal but irrelevant)
upper limit:     0 - 17178 (-999999999 - 999999999 are legal but irrelevant)
		 If both limits are zero, they are set to 0 and 17178 respec-
		   tively.  If the upper limit is greater than 17178, it is
		   set to 17178.
interval:        0 - 17178 (-999999999 - 999999999 are legal but irrelevant)
		   The interval is ignored in this case.
decimal places:  0 (any other number is illegal)
repeat count:    1 - 32767 or number of output records, whichever is larger;
		 zero is illegal.
seed:            0 - 999999999; negative numbers are illegal.

field type:      CITUS (Denver)
field length:    The longest city name is 20 characters, so a field length
		   less than that may cause truncation of the city name.
order:           R (random).  S (sequential) is legal but ignored.
lower limit:     0 - 45115 (999999998 is legal but irrelevant)
upper limit:     0 - 45115 (999999999 is legal but irrelevant)
		 If both limits are zero, they are set to 0 and 45115 respec-
		   tively.  If the upper limit is greater than 45115, it is
		   set to 45115.
interval:        0 - 45115 (999999998 is legal but irrelevant).  The interval
		   is ignored in this case.
decimal places:  0 (any other number is illegal)
repeat count:    1 - 32767 or number of output records, whichever is larger;
		 zero is illegal.
seed:            0 - 999999999; negative numbers are illegal.

field type:      STATA (CO)
field length:    The state abbreviations are all 2 characters long, so a
		   field length less than that will cause truncation of the
		   state abbreviation.
order:           R (random).  S (sequential) is legal but ignored.  The state
		   abbreviation is correlated with the last preceding city
		   name in the record; if there is none, it is chosen ran-
		   domly from the city/state/zip/phone file.
lower limit:     0 - 45115 (-999999999 - 999999999 are legal but irrelevant)
upper limit:     0 - 45115 (-999999999 - 999999999 are legal but irrelevant)
		 If both limits are zero, they are set to 0 and 45115 respec-
		   tively.  If the upper limit is greater than 45115, it is
		   set to 45115.
interval:        0 - 45115 (-999999999 - 999999999 are legal but irrelevant)
		   The interval is ignored in this case.
decimal places:  0 (any other number is illegal)
repeat count:    1 - 32767 or number of output records, whichever is larger;
		 zero is illegal.
seed:            0 - 999999999; negative numbers are illegal.

field type:      ZIP05 (80123)
field length:    This zip code is 5 characters long, so a field length less
		   than that will cause truncation of the zip code.
order:           R (random).  S (sequential) is legal but ignored.  The zip
		   code is correlated with the last preceding city or state
		   name in the record; if there is none, it is chosen ran-
		   domly from the city/state/zip/phone file.
lower limit:     0 - 45115 (-999999999 - 999999999 are legal but irrelevant)
upper limit:     0 - 45115 (-999999999 - 999999999 are legal but irrelevant)
		 If both limits are zero, they are set to 0 and 45115 respec-
		   tively.  If the upper limit is greater than 45115, it is
		   set to 45115.
interval:        0 - 45115 (-999999999 - 999999999 are legal but irrelevant)
		   The interval is ignored in this case.
decimal places:  0 (any other number is illegal)
repeat count:    1 - 32767 or number of output records, whichever is larger;
		 zero is illegal.
seed:            0 - 999999999; negative numbers are illegal.

field type:      ZIP09 (801230386)
field length:    This zip code is 9 characters long, so a field length less
		   than that will cause truncation of the zip code.
order:           R (random).  S (sequential) is legal but ignored.  The zip
		   code is correlated with the last preceding city or state
		   name in the record; if there is none, it is chosen ran-
		   domly from the city/state/zip/phone file.  Then a random
		   4-digit suffix is added.
lower limit:     0 - 45115 (-999999999 - 999999999 are legal but irrelevant)
upper limit:     0 - 45115 (-999999999 - 999999999 are legal but irrelevant)
		 If both limits are zero, they are set to 0 and 45115 respec-
		   tively.  If the upper limit is greater than 45115, it is
		   set to 45115.
interval:        0 - 45115 (-999999999 - 999999999 are legal but irrelevant)
		   The interval is ignored in this case.
decimal places:  0 (any other number is illegal)
repeat count:    1 - 32767 or number of output records, whichever is larger;
		 zero is illegal.
seed:            0 - 999999999; negative numbers are illegal.

field type:      ZIP9D (80123-0386)
field length:    This zip code is 10 characters long, so a field length less
		   than that will cause truncation of the zip code.
order:           R (random).  S (sequential) is legal but ignored.  The zip
		   code is correlated with the last preceding city or state
		   name in the record; if there is none, it is chosen ran-
		   domly from the city/state/zip/phone file.  Then a dash
		   ("-") and a random 4-digit suffix is added.
lower limit:     0 - 45115 (-999999999 - 999999999 are legal but irrelevant)
upper limit:     0 - 45115 (-999999999 - 999999999 are legal but irrelevant)
		 If both limits are zero, they are set to 0 and 45115 respec-
		   tively.  If the upper limit is greater than 45115, it is
		   set to 45115.
interval:        0 - 45115 (-999999999 - 999999999 are legal but irrelevant)
		   The interval is ignored in this case.
decimal places:  0 (any other number is illegal)
repeat count:    1 - 32767 or number of output records, whichever is larger;
		 zero is illegal.
seed:            0 - 999999999; negative numbers are illegal.

field type:      PHOAC (303)
field length:    The area code is 3 characters long, so a field length less
		   than that will cause truncation of the area code.
order:           R (random).  S (sequential) is legal but ignored.  The area
		   code is correlated with the last preceding city, state or
		   zip code in the record; if there is none, it is chosen
		   randomly from the city/state/zip/phone file.
lower limit:     0 - 45115 (-999999999 - 999999999 are legal but irrelevant)
upper limit:     0 - 45115 (-999999999 - 999999999 are legal but irrelevant)
		 If both limits are zero, they are set to 0 and 45115 respec-
		   tively.  If the upper limit is greater than 45115, it is
		   set to 45115.
interval:        0 - 45115 (-999999999 - 999999999 are legal but irrelevant)
		   The interval is ignored in this case.
decimal places:  0 (any other number is illegal)
repeat count:    1 - 32767 or number of output records, whichever is larger;
		 zero is illegal.
seed:            0 - 999999999; negative numbers are illegal.

field type:      PHOEX (538)
field length:    The phone exchange is 3 characters long, so a field length
		   less than that will cause truncation of the exchange
		   number.
order:           R (random).  S (sequential) is legal but ignored.  The ex-
		   change is correlated with the last preceding city, state,
		   zip code, or area code in the record; if there is none,
		   it is chosen randomly from the city/state/zip/phone file.
lower limit:     0 - 45115 (-999999999 - 999999999 are legal but irrelevant)
upper limit:     0 - 45115 (-999999999 - 999999999 are legal but irrelevant)
		 If both limits are zero, they are set to 0 and 45115 respec-
		   tively.  If the upper limit is greater than 45115, it is
		   set to 45115.
interval:        0 - 45115 (-999999999 - 999999999 are legal but irrelevant)
		   The interval is ignored in this case.
decimal places:  0 (any other number is illegal)
repeat count:    1 - 32767 or number of output records, whichever is larger;
		 zero is illegal.
seed:            0 - 999999999; negative numbers are illegal.

field type:      PHONO (5381835)
field length:    This phone number is 7 characters long, so a field length
		   less than that will cause truncation of the phone number.
order:           R (random).  S (sequential) is legal but ignored.  The ex-
		   change is correlated with the last preceding city, state,
		   zip code, or area code in the record; if there is none,
		   the exchange number is chosen randomly from the
		   city/state/zip/phone file and a random 4-digit number is
		   added as a suffix.
lower limit:     0 - 45115 (-999999999 - 999999999 are legal but irrelevant)
upper limit:     0 - 45115 (-999999999 - 999999999 are legal but irrelevant)
		 If both limits are zero, they are set to 0 and 45115 respec-
		   tively.  If the upper limit is greater than 45115, it is
		   set to 45115.
interval:        0 - 45115 (-999999999 - 999999999 are legal but irrelevant)
		   The interval is ignored in this case.
decimal places:  0 (any other number is illegal)
repeat count:    1 - 32767 or number of output records, whichever is larger;
		 zero is illegal.
seed:            0 - 999999999; negative numbers are illegal.

field type:      PHONE (3035381836)
field length:    This phone number is 10 characters long, so a field length
		   less than that will cause truncation of the phone number.
order:           R (random).  S (sequential) is legal but ignored.  The ex-
		   change is correlated with the last preceding city, state,
		   zip code, or area code in the record; if there is none,
		   the area code and exchange number are chosen randomly
		   from the city/state/zip/phone file and a random 4-digit
		   number is added as a suffix.
lower limit:     0 - 45115 (-999999999 - 999999999 are legal but irrelevant)
upper limit:     0 - 45115 (-999999999 - 999999999 are legal but irrelevant)
		 If both limits are zero, they are set to 0 and 45115 respec-
		   tively.  If the upper limit is greater than 45115, it is
		   set to 45115.
interval:        0 - 45115 (-999999999 - 999999999 are legal but irrelevant)
		   The interval is ignored in this case.
decimal places:  0 (any other number is illegal)
repeat count:    1 - 32767 or number of output records, whichever is larger;
		 zero is illegal.
seed:            0 - 999999999; negative numbers are illegal.

field type:      INTER (1004, 232.009)
field length:    The field length is of course relative to the range of num-
		   bers generated.  In addition, space must be allocated for
		   a decimal point and a minus sign, if either or both are
		   a part of the output value.
order:           R (random) or S (sequential).
lower limit:     -999999999 - 999999999
upper limit:     -999999999 - 999999999
		 If both limits are zero, they are set to 0 and 999999999
		   respectively.  If the upper limit is greater than
		   999999999, it is set to 999999999.
interval:        -999999999 - 999999999
		 If the number of decimal places is non-zero, the limits and
		   the interval must be entered to compensate.  For example,
		   if the actual desired range is 9.00 through 10.00 in
		   increments of .01, the lower limit should be 900, the
		   upper limit should be 1000, and the interval should be 1.
decimal places:  0 - 6 (any other number is illegal)
repeat count:    1 - 32767 or number of output records, whichever is larger;
		 zero is illegal.
seed:            0 - 999999999; negative numbers are illegal.

field type:      FLTPF (232.009, -1.1)
		 FLTPE (2.32009E+02,-1.1E+00)
		 FLTPD (2.32009D+02,-1.1D+00)
		 The only difference among these three field types is the
		   format of the output.  Input values may be specified as in
		   FLTPF or FLTPE.  Values have the range (-)3.4E-4929 to
		   (-)1.1E+4930 with 18 digits of significance.  Rounding will
		   take place in cases where the number of decimal places is
		   less than the number of siginificant digits in the value.
field length:    The field length is of course relative to the range of numbers
		   generated.  In addition, space must be allocated for a
		   decimal point and a minus sign, if either or both are a
		   part of the output value.
order:           R (random) or S (sequential).
lower limit:     -3.4E-4930 - 1.1E+4930
upper limit:     -3.4E-4930 - 1.1E+4930
		 If both limits are zero, they are set to 0 and 1.1E+4930,
		   respectively.  Note that the magnitude of the difference
		   between the exponents cannot be greater than 17; otherwise,
		   there is a loss of significance.
interval:        -1.1E-19 - 1.1E+19
decimal places:  0 - 18 (any other number is illegal)
		 If the number of decimal places is zero, the output value
		   will not contain a decimal point nor a fractional value.
repeat count:    1 - 32767 or number of output records, whichever is larger;
		 zero is illegal.
seed:            0 - 999999999; negative numbers are illegal.

field type:      HEXAD (f10)
field length:    The field length is of course relative to the range of num-
		   bers generated.
order:           R (random) or S (sequential).
lower limit:     0 - c9ff
upper limit:     0 - c9ff
		 If both limits are zero, they are set to 0 and c9ff respec-
		   tively.  If the upper limit is greater than c9ff, it is
		   set to c9ff.
interval:        0 - c9ff
decimal places:  0 (any other number is illegal)
repeat count:    1 - 32767 or number of output records, whichever is larger;
		 zero is illegal.
seed:            0 - c9ff; negative numbers are illegal.

field type:      ZONED
field length:    The field length is of course relative to the range of num-
		   bers generated.  No space needs to be allocated for the
		   minus sign, as the sign is encoded in the last byte of
		   the zoned number.
order:           R (random) or S (sequential).
lower limit:     -999999999 - 999999999
upper limit:     -999999999 - 999999999
		 If both limits are zero, they are set to 0 and 999999999
		   respectively.  If the upper limit is greater than
		   999999999, it is set to 999999999.
interval:        -999999999 - 999999999
decimal places:  0 (any other number is illegal)
repeat count:    1 - 32767 or number of output records, whichever is larger;
		 zero is illegal.
seed:            0 - 999999999; negative numbers are illegal.

field type:      PACKD
field length:    The field length is of course relative to the range of num-
		   bers generated.  The minimum is the number of digits in
		   the largest value divided by 2 + 1, for example, if the
		   range is 0 through 10000, the minum field length is 3
		   (5 / 2 + 1).
order:           R (random) or S (sequential).
lower limit:     -999999999 - 999999999
upper limit:     -999999999 - 999999999
		 If both limits are zero, they are set to 0 and 999999999
		   respectively.  If the upper limit is greater than
		   999999999, it is set to 999999999.
interval:        -999999999 - 999999999
decimal places:  0 (any other number is illegal)
repeat count:    1 - 32767 or number of output records, whichever is larger;
		 zero is illegal.
seed:            0 - 999999999; negative numbers are illegal.

"interval" for sequential order for all the date and time field types must
be sensitive to the subfield to be incremented.  For example, if the field
type is T24HR (HHMMSS) and the interval is 1, seconds will be incremented
by 1 for each record.  If minutes are to be incremented by 1 for each rec-
ord, the interval should be 100.  Similarly, if the field type is DMDY4
(MMDDYYYY) and the interval is 1, years will be incremented by 1 for each
record, whereas if the field type is DY4MD (YYYYMMDD) and the interval is 1,
days will be incremented by 1 for each record.  To increment years by 1 for
the latter type, the interval needs to be 10000.

field type:      T24HR (121540)
field length:    This time type is always six digits, so a field length less
		   than that will cause truncation of the value.
order:           R (random) or S (sequential).
lower limit:     0 - 240000
upper limit:     0 - 240000
		 If both limits are zero, they are set to 0 and 240000 re-
		   spectively.
interval:        -240000 - 240000
decimal places:  0 (any other number is illegal)
repeat count:    1 - 32767 or number of output records, whichever is larger;
		 zero is illegal.
seed:            0 - 999999999; negative numbers are illegal.

field type:      T24AP (11:30 PM, 09:30 AM)
field length:    This time type is always six characters long, so a field
		   length less than that will cause truncation of the
		   value.
order:           R (random) or S (sequential).
lower limit:     0 - 2400
upper limit:     0 - 2400
		 If both limits are zero, they are set to 0 and 2400 respec-
		   tively.
interval:        -2400 - 2400
decimal places:  0 (any other number is illegal)
repeat count:    1 - 32767 or number of output records, whichever is larger;
		 zero is illegal.
seed:            0 - 999999999; negative numbers are illegal.

field type:      T24CO (12:30:45)
field type:      T24PR (12.30.44)
field length:    These time types are always eight characters long, so a
		   field length less than that will cause truncation of the
		   value.
order:           R (random) or S (sequential).
lower limit:     0 - 240000
upper limit:     0 - 240000
		 If both limits are zero, they are set to 0 and 240000 re-
		   spectively.
interval:        -240000 - 240000
decimal places:  0 (any other number is illegal)
repeat count:    1 - 32767 or number of output records, whichever is larger;
		 zero is illegal.
seed:            0 - 999999999; negative numbers are illegal.

field type:      DFULL (September 10, 1994)
field length:    The length of this field depends on the length of the month
		   name, so this needs to be taken into account when deter-
		   mining the field length.
order:           R (random) or S (sequential).
lower limit:     1010008 - 12319999 (MMDDYYYY)
upper limit:     1010008 - 12319999 (MMDDYYYY)
		 If both limits are zero, they are set to 01010008 and
		   12319999 respectively.
interval:        -12319999 - 12319999 (MMDDYYYY)
decimal places:  0 (any other number is illegal)
repeat count:    1 - 32767 or number of output records, whichever is larger;
		 zero is illegal.
seed:            0 - 999999999; negative numbers are illegal.

field type:      DABBR (Sep 10, 1994)
field length:    The length of this field is always 12 characters, so a field
		   length less than that will cause truncation of the value.
order:           R (random) or S (sequential).
lower limit:     1010008 - 12319999 (MMDDYYYY)
upper limit:     1010008 - 12319999 (MMDDYYYY)
		 If both limits are zero, they are set to 01010008 and
		   12319999 respectively.
interval:        -12319999 - 12319999 (MMDDYYYY)
decimal places:  0 (any other number is illegal)
repeat count:    1 - 32767 or number of output records, whichever is larger;
		 zero is illegal.
seed:            0 - 999999999; negative numbers are illegal.

field type:      DAMDY (10/10/94)
field type:      DDMD2 (10-10-94)
field length:    These date types are always eight characters long, so a
		   field length less than that will cause truncation of the
		   value.
order:           R (random) or S (sequential).
lower limit:     10108 - 123199 (MMDDYY)
upper limit:     10108 - 123199 (MMDDYY)
		 If both limits are zero, they are set to 10108 and
		   123199 respectively.
interval:        -123199 - 123199 (MMDDYY)
decimal places:  0 (any other number is illegal)
repeat count:    1 - 32767 or number of output records, whichever is larger;
		 zero is illegal.
seed:            0 - 999999999; negative numbers are illegal.

field type:      DAYMD (94/10/10)
field type:      DD2MD (94-10-10)
field length:    These date types are always eight characters long, so a
		   field length less than that will cause truncation of the
		   value.
order:           R (random) or S (sequential).
lower limit:     80101 - 991231 (YYMMDD)
upper limit:     80101 - 991231 (YYMMDD)
		 If both limits are zero, they are set to 80101 and
		   991231 respectively.
interval:        -991231 - 991231 (YYMMDD)
decimal places:  0 (any other number is illegal)
repeat count:    1 - 32767 or number of output records, whichever is larger;
		 zero is illegal.
seed:            0 - 999999999; negative numbers are illegal.

field type:      DY2MD (101094)
field length:    The length of this field is always 6 characters, so a field
		   length less than that will cause truncation of the value.
order:           R (random) or S (sequential).
lower limit:     10108 - 123199 (MMDDYY)
upper limit:     10108 - 123199 (MMDDYY)
		 If both limits are zero, they are set to 10108 and
		   123199 respectively.
interval:        -123199 - 123199 (MMDDYY)
decimal places:  0 (any other number is illegal)
repeat count:    1 - 32767 or number of output records, whichever is larger;
		 zero is illegal.
seed:            0 - 999999999; negative numbers are illegal.

field type:      DMDY2 (941010)
field length:    The length of this field is always 6 characters, so a field
		   length less than that will cause truncation of the value.
order:           R (random) or S (sequential).
lower limit:     80101 - 991231 (YYMMDD)
upper limit:     80101 - 991231 (YYMMDD)
		 If both limits are zero, they are set to 80101 and
		   991231 respectively.
interval:        -991231 - 991231 (YYMMDD)
decimal places:  0 (any other number is illegal)
repeat count:    1 - 32767 or number of output records, whichever is larger;
		 zero is illegal.
seed:            0 - 999999999; negative numbers are illegal.

field type:      DAMD4 (10/10/1994)
field type:      DDMD4 (10-10-1994)
field length:    These date types are always ten characters long, so a
		   field length less than that will cause truncation of the
		   value.
order:           R (random) or S (sequential).
lower limit:     1010008 - 12319999 (MMDDYYYY)
upper limit:     1010008 - 12319999 (MMDDYYYY)
		 If both limits are zero, they are set to 1010008 and
		   12319999 respectively.
interval:        -12319999 - 12319999 (MMDDYYYY)
decimal places:  0 (any other number is illegal)
repeat count:    1 - 32767 or number of output records, whichever is larger;
		 zero is illegal.
seed:            0 - 999999999; negative numbers are illegal.

field type:      DA4MD (1994/10/10)
field type:      DD4MD (1994-10-10)
field length:    These date types are always ten characters long, so a
		   field length less than that will cause truncation of the
		   value.
order:           R (random) or S (sequential).
lower limit:     80101 - 99991231 (YYYYMMDD)
upper limit:     80101 - 99991231 (YYYYMMDD)
		 If both limits are zero, they are set to 80101 and
		   99991231 respectively.
interval:        -99991231 - 99991231 (YYYYMMDD)
decimal places:  0 (any other number is illegal)
repeat count:    1 - 32767 or number of output records, whichever is larger;
		 zero is illegal.
seed:            0 - 999999999; negative numbers are illegal.

field type:      DMDY4 (10101994)
field length:    The length of this field is always 8 characters, so a field
		   length less than that will cause truncation of the value.
order:           R (random) or S (sequential).
lower limit:     1010008 - 12319999 (MMDDYYYY)
upper limit:     1010008 - 12319999 (MMDDYYYY)
		 If both limits are zero, they are set to 1010008 and
		   12319999 respectively.
interval:        -12319999 - 12319999 (MMDDYYYY)
decimal places:  0 (any other number is illegal)
repeat count:    1 - 32767 or number of output records, whichever is larger;
		 zero is illegal.
seed:            0 - 999999999; negative numbers are illegal.

field type:      DY4MD (19941010)
field length:    The length of this field is always 8 characters, so a field
		   length less than that will cause truncation of the value.
order:           R (random) or S (sequential).
lower limit:     80101 - 99991231 (YYYYMMDD)
upper limit:     80101 - 99991231 (YYYYMMDD)
		 If both limits are zero, they are set to 80101 and
		   99991231 respectively.
interval:        -99991231 - 99991231 (YYYYMMDD)
decimal places:  0 (any other number is illegal)
repeat count:    1 - 32767 or number of output records, whichever is larger;
		 zero is illegal.
seed:            0 - 999999999; negative numbers are illegal.

field type:      JUY4D (1994010)
field length:    The length of this field is always 7 characters, so a field
		   length less than that will cause truncation of the value.
order:           R (random) or S (sequential).
lower limit:     8001 - 9999365 (YYYYDDD)
upper limit:     8001 - 9999365 (YYYYDDD)
		 If both limits are zero, they are set to 8001 and 9999365
		   respectively.
interval:        -9999365 - 99993365 (YYYYDDD)
decimal places:  0 (any other number is illegal)
repeat count:    1 - 32767 or number of output records, whichever is larger;
		 zero is illegal.
seed:            0 - 999999999; negative numbers are illegal.

field type:      JUDY4 (0101994)
field length:    The length of this field is always 7 characters, so a field
		   length less than that will cause truncation of the value.
order:           R (random) or S (sequential).
lower limit:     10008 - 3659999 (DDDYYYY)
upper limit:     10008 - 3659999 (DDDYYYY)
		 If both limits are zero, they are set to 10008 and 3659999
		   respectively.
interval:        -3659999 - 3659999 (DDDYYYY)
decimal places:  0 (any other number is illegal)
repeat count:    1 - 32767 or number of output records, whichever is larger;
		 zero is illegal.
seed:            0 - 999999999; negative numbers are illegal.

field type:      JUY2D (94010)
field length:    The length of this field is always 5 characters, so a field
		   length less than that will cause truncation of the value.
order:           R (random) or S (sequential).
lower limit:     8001 - 99365 (YYDDD)
upper limit:     8001 - 99365 (YYDDD)
		 If both limits are zero, they are set to 8001 and 99365
		   respectively.
interval:        -99365 - 993365 (YYDDD)
decimal places:  0 (any other number is illegal)
repeat count:    1 - 32767 or number of output records, whichever is larger;
		 zero is illegal.
seed:            0 - 999999999; negative numbers are illegal.

field type:      JUDY4 (01094)
field length:    The length of this field is always 5 characters, so a field
		   length less than that will cause truncation of the value.
order:           R (random) or S (sequential).
lower limit:     108 - 36599 (DDDYY)
upper limit:     108 - 36599 (DDDYY)
		 If both limits are zero, they are set to 108 and 36599
		   respectively.
interval:        -36599 - 36599 (DDDYY)
decimal places:  0 (any other number is illegal)
repeat count:    1 - 32767 or number of output records, whichever is larger;
		 zero is illegal.
seed:            0 - 999999999; negative numbers are illegal.

The seed value, as well as the upper and lower limits and interval, for
the special date/time types STMP1, STMP2, STMP3, and DUNIX merit special
note.  Since these are too large to read into a long variable, they need
to be entered in a special way in the spec file, namely, with blanks
separating the various elements:

  STMP1:
  STMP2:
  STMP3: CCYYMMDD HHMMSS NNNNNN
  DUNIX: (for upper, lower, interval) YYYYMMDD HHMMSS
	 (for seed) YYYYMMDD HHMMSS EST or CST or MST or PST or EDT or CDT
				    or MDT or PDT or GMT or ALL (excluding
				    GMT)

field type:      STMP1 (1994-10-10-12.10.35.009834)
field type:      STMP2 (1994/10/10.12.10.35.009834)
field length:    These date types are always twenty-six characters long, so a
		   field length less than that will cause truncation of the
		   value.
order:           R (random) or S (sequential).
lower limit:     80101 0 0 - 99991231 240000 999999 (YYYYMMDDHHMMSSNNNNNN)
upper limit:     80101 0 0 - 99991231 240000 999999 (YYYYMMDDHHMMSSNNNNNN)
		 If all six limits are zero, they are set to 80101 0 0 and
		   99991231 240000 999999 respectively.
interval:        -99991231 -240000 -999999 - 99991231 240000 9999999
		   (YYYYMMDDHHMMSSNNNNNN)
decimal places:  0 (any other number is illegal)
repeat count:    1 - 32767 or number of output records, whichever is larger;
		 zero is illegal.
seed:            0 0 0 - 999999999 999999999 999999999; negative numbers are
		  illegal.

field type:      STMP3 (19941010121035009834)
field length:    This date type is always twenty characters long, so a
		   field length less than that will cause truncation of the
		   value.
order:           R (random) or S (sequential).
lower limit:     80101 0 0 - 99991231 240000 999999 (YYYYMMDDHHMMSSNNNNNN)
upper limit:     80101 0 0 - 99991231 240000 999999 (YYYYMMDDHHMMSSNNNNNN)
		 If all six limits are zero, they are set to 80101 0 0 and
		   99991231 240000 999999 respectively.
interval:        -99991231 -240000 -999999 - 99991231 240000 9999999
		   (YYYYMMDDHHMMSSNNNNNN)
decimal places:  0 (any other number is illegal)
repeat count:    1 - 32767 or number of output records, whichever is larger;
		 zero is illegal.
seed:            0 0 0 - 999999999 999999999 999999999; negative numbers are
		  illegal.

field type:      DUNIX (Sat Sep 10 10:12:35 MST 1994)
field length:    This date type is always twenty-six characters long, so a
		   field length less than that will cause truncation of the
		   value.
order:           R (random) or S (sequential).
lower limit:     80101 0 - 99991231 240000 (YYYYMMDDHHMMSS)
upper limit:     80101 0 - 99991231 240000 (YYYYMMDDHHMMSS)
		 If all four limits are zero, they are set to 80101 0 and
		   99991231 240000 respectively.
interval:        -99991231 -240000 - 99991231 240000
		   (YYYYMMDDHHMMSS)
decimal places:  0 (any other number is illegal)
repeat count:    1 - 32767 or number of output records, whichever is larger;
		 zero is illegal.
seed:            0 0 timezone - 999999999 999999999 timezone, where timezone
		  is one of the following:  EST or CST or MST or PST or EDT or CDT
		  or MDT or PDT or GMT or ALL (excluding GMT); negative num-
		  bers are illegal.

field type:      BLANK (blank string)
field length:    The field length specifies the number of blanks in the
		   output value.
order:           R (random) or S (sequential) is legal but ignored.
lower limit:     -999999999 - 999999999 are legal but irrelevant.  The low-
		   er limit is ignored in this case.
upper limit:     -999999999 - 999999999 are legal but irrelevant.  The upp-
		   er limit is ignored in this case.
interval:        -999999999 - 999999999 are legal but irrelevant.  The in-
		   terval is ignored in this case.
decimal places:  0 (any other number is illegal)
repeat count:    1 - 32767 or number of output records, whichever is larger;
		   zero is illegal.  The repeat count is ignored in this
		   case.
seed:            0 - 999999999; negative numbers are illegal.  The seed
		   is ignored in this case

field type:      STRIN (string constant)
field length:    The minimum length is the length of the string constant en-
		   tered in the seed field.  If the field length is greater
		   than the length of this constant, the output value will be
		   padded with blanks on the right to fill the field.
order:           R (random) or S (sequential) is legal but ignored.
lower limit:     -999999999 - 999999999 are legal but irrelevant.  The low-
		   er limit is ignored in this case.
upper limit:     -999999999 - 999999999 are legal but irrelevant.  The upp-
		   er limit is ignored in this case.
interval:        -999999999 - 999999999 are legal but irrelevant.  The in-
		   terval is ignored in this case.
decimal places:  0 (any other number is illegal)
repeat count:    1 - 32767 or number of output records, whichever is larger;
		   zero is illegal.  The repeat count is ignored in this
		   case.
seed:            The string constant to be inserted in the field.  The con-
		   stant should not be enclosed in special characters, such
		   as quotes, etc.

For CUSTA, CUSTN, and READF, if the order is sequential, the upper and
lower limits, as well as interval, are observed.  If the order is random,
the lower limit is always 0 and the upper limit is the number of records
in the file.

field type:      CUSTA (custom input file with character strings)
field type:      CUSTN (custom input file with numeric data)
field length:    The field length will vary depending upon the length of
		   the data values in the input file, so a field length
		   less than the longest value in the input file will result
		   in truncation of the output value.
order:           R (random) or S (sequential)
lower limit:     0 - number of records in input file (-999999999 - 999999999
		   are legal but irrelevant)
upper limit:     0 - number of records in input file (-999999999 - 999999999
		   are legal but irrelevant).  If both limits are zero, they
		   are set to 0 and the number of records in the input file,
		   respectively.  If the upper limit is greater than the
		   number of records in the file, it is set to the number
		   of records in the file.
interval:        0 - number of records in file (0 - 999999999 are legal but
		   irrelevant).  The interval must be positive in this case.
decimal places:  0 (any other number is illegal)
repeat count:    1 - 32767 or number of output records, whichever is larger;
		 zero is illegal.
seed:            full name of input ASCII file

field type:      READF (custom input file with starting column and length
			of desired string)
field length:    The field length will vary depending upon the length of
		   the data values specified in the seed (see below), so a
		   value less than that specified will result in trucation
		   of the output value.
order:           R (random) or S (sequential)
lower limit:     0 - number of records in input file (-999999999 - 999999999
		   are legal but irrelevant)
upper limit:     0 - number of records in input file (-999999999 - 999999999
		   are legal but irrelevant).  If both limits are zero, they
		   are set to 0 and the number of records in the input file,
		   respectively.  If the upper limit is greater than the
		   number of records in the file, it is set to the number
		   of records in the file.
interval:        0 - number of records in file (0 - 999999999 are legal but
		   irrelevant).  The interval must be positive in this case.
decimal places:  0 (any other number is illegal)
repeat count:    1 - 32767 or number of output records, whichever is larger;
		 zero is illegal.
seed:            full name of input ASCII file,starting position in the
		   record for the desired value,length of desired value

For the RANDA/RANDC options, which include both upper and lower case
characters, the range of characters can be limited by using upper and
lower bounds of the following types:

  RANDC: lower =  1, upper = 52 -- lower and upper case letters
	 lower =  1, upper = 26 -- upper case letters only
	 lower = 27, upper = 52 -- lower case letters only
	 lower = 10, upper = 15 -- upper case letters J-O
  RANDA: lower =  1, upper = 78 -- lower and upper case letters + digits
	 lower =  1, upper = 26 -- upper case letters only + digits
	 lower = 27, upper = 78 -- lower case letters only + digits
	 lower = 10, upper = 15 -- upper case letters J-O + digits

For RANDA, there are 26 digit characters, '0'-'9' twice and '0'-'5',
making a total of 78 entries in the table for this type.  Thus, any
valid range 1-78 is acceptable.  Note also for RANDA that if the
upper limit is greater than 52, the lower limit must be less than or
equal to 52.  This guarantees that for any length greater than one,
there will be at least one character and one digit in any string.

field type:      RANDA (random alphanumeric string)
field length:    1, which is the minimum legal length, is all that is re-
		   quired for a single character.  The string will be gene-
		   rated to satisfy the length specified here.
order:           R (random).  S (sequential) is legal but ignored.
lower limit:     1 - 78
upper limit:     1 - 78
interval:        0 - 78 (0 - 999999999 are legal but irrelevant).  The inter-
		   val is ignored in this case
decimal places:  0 (any other number is illegal)
repeat count:    1 - 32767 or number of output records, whichever is larger;
		   zero is illegal.
seed:            0 - 999999999; negative numbers are illegal.

field type:      RANDC (random alphabetic string)
field length:    1, which is the minimum legal length, is all that is re-
		   quired for a single character.  The string will be gene-
		   rated to satisfy the length specified here.
order:           R (random).  S (sequential) is legal but ignored.
lower limit:     1 - 52
upper limit:     1 - 52
interval:        0 - 52 (0 - 999999999 are legal but irrelevant).  The inter-
		   val is ignored in this case
decimal places:  0 (any other number is illegal)
repeat count:    1 - 32767 or number of output records, whichever is larger;
		   zero is illegal.
seed:            0 - 999999999; negative numbers are illegal.

field type:      COPYF (repeat a previous field)
field length:    1, which is the minimum legal length, is all that is re-
		   quired to satisfy error processing.
order:           Irrelevant.
lower limit:     Irrelevant.
upper limit:     Irrelevant.
interval:        Irrelevant.
decimal places:  Irrelevant.
repeat count:    Irrelevant.
seed:            1 - 100; this number must be less than the current field
		   number.

field type:      COMBO (combine part or all of up to 6 fields)
field length:    1, which is the minimum legal length, is all that is re-
		   quired to satisfy error processing.
order:           Irrelevant.
lower limit:     Irrelevant.
upper limit:     Irrelevant.
interval:        Irrelevant.
decimal places:  Irrelevant.
repeat count:    Irrelevant.
seed:            F1:C1s-C1e(S1),...,F5:C6s-C6e(S6) where
		   FN is 1 - 100; this number must be less than the current
		     field number.
		   CNs must be greater than zero and less than or equal to
		     CNe; neither CNs nor CNe can be greater than the length
		     of the field designed by FN.  For variable length
		     records, where the length of the field to be concate-
		     nated may vary, if CNe is greater than the length of
		     the field, the concatenation will stop at the end of
		     the source field.
		   SN can be any printable character; if no separator is
		     desired, the parentheses are still required with nothing
		     between them.

