Trailing-Edge
-
PDP-10 Archives
-
decuslib20-07
-
decus/20-0169/mail.doc
There are 20 other files named mail.doc in the archive. Click here to see a list.
MAIL *ADD SS* STEM*MAIL ADDRESS*S TEM* ILING*A
* IL NG D RE S* Y * I * E *S S M*MA *
M ILI ADD S*SY EM A G* DR *SY EM AILING
E I *A R S*S TE M G DD *S T *MAILIN
T * L G DDR S* ST * N AD E * S M* I
S M* AI N SS YS M I *A RE Y EM*M L
Y EM*MA I *AD ES SY EM*MAIL G* DRE SY EM* I
S TEM*M L G*A R S A G DDRE *SYS A
*SYSTEM*MAILING*ADDRESS*SYSTEM*MAILING*ADDRESS*SYSTEM*MA
*S STEM LING RESS EM* *AD *SY M
SS STE MA IN AD ES SYS M AILING DDRESS YSTEM*
RE * ST *MA I *AD E *SY E MAILIN ADDRES SYST
D SS* S M*M L G*A R YST ILING DRESS STE
D Y EM* I NG* D S SYS M*MAILING*A RESS*S T
A RES S TE MA IN AD ES SY EM*MAILING* DRESS* S
* DRE * EM*M NG*A RES S A *AD *SY
G*ADDRESS*SYSTEM*MAILING*ADDRESS*SYSTEM*MAILING*ADDRESS
*AD * STEM AIL D S L G*ADD S
G DDRESS* ST *M LING*ADDR S*SY EM*MAI G*A E
N ADDRESS* EM* ILING*ADD SS*S TEM*MA G R
ING DRESS* STEM*M ING*AD ESS* M*M L * D
NG*A RESS YSTEM*MAI NG*A RESS YSTEM* IL NG D
ILING* DRES SYSTEM*MA ING* DRES SYSTEM AILIN A
A *ADDRE *SYS AILING DDRE E MAILI *
MAILING*ADDRESS*SYSTEM*MAILING*ADDRESS*SYSTEM*MAILING
Mailing Address System
Donald E. Barth
8-Jun-83
MM MM A IIII LL IIII NN NN GGGGG
MMM MMM AAA II LL II NNN NN GG
MMMM MMMM AA AA II LL II NNNN NN GG
MM MMM MM AA AA II LL II NN NN NN GG GGGG
MM M MM AAAAAAA II LL II NN NNNN GG GG
MM MM AA AA II LL II NN NNN GG GG
MM MM AA AA IIII LLLLLLL IIII NN NN GGGGG
A DDDD DDDD RRRRR EEEEEEE SSSSS SSSSS
AAA DD DD DD DD RR RR EE SS SS
AA AA DD DD DD DD RR RR EE SS SS
AA AA DD DD DD DD RRRRR EEEEE SSS SSS
AAAAAAA DD DD DD DD RR RR EE SS SS
AA AA DD DD DD DD RR RR EE SS SS
AA AA DDDD DDDD RR RR EEEEEEE SSSSS SSSSS
SSSSS YY YY SSSSS TTTTTTTT EEEEEEE MM MM
SS YY YY SS TT EE MMM MMM
SS YYYY SS TT EE MMMM MMMM
SSS YY SSS TT EEEEE MM MMM MM
SS YY SS TT EE MM M MM
SS YY SS TT EE MM MM
SSSSS YY SSSSS TT EEEEEEE MM MM
Mailing Address System
Donald E. Barth
8-Jun-83
MAILING ADDRESS SYSTEM
------- ------- ------
This package consists of several FORTRAN programs which can
print addresses onto various types of paper stock for use in
making mass mailings. The addresses can be printed onto
envelopes and labels and, with the use of an appropriate
word processing program, can be inserted into customized
form letters. The programs accumulate the addresses which
are to be written in a single row, shift the addresses
horizontally to be the proper distance from the edge of the
paper stock, and generate enough blank lines above and below
to place each row of addresses onto a new row of forms. The
dimensions of several standard sizes of forms are built into
the programs, but the user can also match the dimensions of
other forms.
The programs in this package are not used to maintain the
address lists. Instead, the addresses are read from a file
which has been previously generated by an independent
program. There might be many address lists maintained by
several programs. It is only necessary that each of the
programs which maintain the address lists be able to
generate the same form of intermediate files which can then
be read by the programs in this package. The format of
these intermediate files is described later in this
document. The intermediate files can contain the completely
formatted addresses, or can contain the individual
components, each separately identified, of each of the lines
which are to be included in the addresses. Both types of
files can be read by most of the programs in this package,
but the form of the intermediate files which specifies the
components of the addresses is more generally useful.
The programs in this package do not obtain the addresses
directly from the original data bases because that would
have required the writing of a separate version of the
programs for each different data base structure. Having
only a single version of each program makes the programs in
this package easier to develop and to maintain. However,
having the programs read an intermediate file rather than
the original data base does require more run time since the
intermediate file must first be produced by the program
which maintains the address list, and requires more disk
space to store the intermediate file.
Once a programmer has converted the programs which maintain
the address lists to produce the proper intermediate files,
the user should be able to run the programs in this package
without consulting this manual. The questions which are
asked by these programs are all simple, although in some
cases there are many of them. The user can request an
explanation of the available options by pressing the
question mark key and then the RETURN key in response to any
request other than for the name of a file.
2 Mailing Address System
The following programs are contained in this package.
The ENVELO program writes the addresses to a file which can
be printed later onto envelopes mounted on continuous
fanfold paper. The ENVELO program can also type the
addresses directly onto envelopes which are inserted
individually by hand into the controlling terminal or which
are mounted on continuous fanfold paper.
The LABELS program writes the addresses to a file which can
be printed later onto parallel columns of labels mounted on
continuous fanfold paper. The LABELS program can also type
the addresses directly onto labels mounted on continuous
fanfold paper which has been inserted into the controlling
terminal.
The SPLICE program writes the addresses to a file which can
be used with the aid of a suitable word processing program
to insert inside addresses and salutations into form
letters. The SPLICE program does not itself insert the
addresses into the form letters.
The MRGADR program merges 2 or more files which specify the
components of the addresses and which are each sorted in zip
code order. The resulting single address file can be
processed by the ENVELO, LABELS or SPLICE programs. The
MRGADR program does not itself print the addresses onto
paper stock.
INPUT FILES CONTAINING PREVIOUSLY FORMATTED ADDRESSES
----- ----- ---------- ---------- --------- ---------
The addresses which are to be processed by the programs in
this package are read from a file which was written by the
program which maintains the address list. This file can
contain either the previously formatted addresses, or the
separate components of the addresses.
If the addresses have already been formatted, then at least
1 line starting with a period in the left column must appear
between successive addresses. Lines starting with periods
can also appear at the start and at the end of the file but
are not required at these positions. The contents of the
lines which start with periods are not copied into the
addresses.
The addresses can include salutations which are to be
incorporated into form letters. These salutations are
suppressed when the addresses are typed onto labels or
envelopes. In order to be recognized as a salutation, the
salutation must appear on the final line in the address,
must start with the word "Dear" and must end with either a
colon or a comma. The salutation will not be recognized if
Input Files Containing Previously Formatted Addresses 3
it violates any of these requirements. The salutation line
should be separated from the rest of the address by at least
one blank line, although this is not required. If the
address does not end with a salutation line, then a
salutation can instead be constructed from the person's name
in the first line of the address. However, salutations
constructed in this manner should be carefully checked by
the user since the program cannot recognize all possible
variations in people's names.
INPUT FILES CONTAINING COMPONENTS OF ADDRESSES
----- ----- ---------- ---------- -- ---------
Each line of a file which specifies the components of the
addresses, rather than addresses which have already been
formatted, starts with an at sign (the @ character) followed
immediately by a single character which specifies the type
of component which is defined by that line. These first 2
characters on each line are not copied into the resulting
address. If the character to the right of the at sign is
one of the alphabetic letters A through Z, then this letter
can appear in either upper case (a capital letter) or lower
case (a small letter). The various components of the
address can be specified in any order.
The programs in this package insert punctuation marks where
needed into lines, such as the name line and the city line,
which are constructed from several components. Those
portions of the address which require a full line, for
example the department name, the organization name, and the
street address, can be continued on as many subsequent lines
as are necessary, but the extra lines must each be
identified by the same at sign character pair in the first 2
columns. Each continuation line begins a new line in the
resulting address. If a single component is continued onto
subsequent lines, then these continuation lines can be
separated in the input file by lines which define other
components. The initial and continuation lines for a
particular component of the address are copied into the
address in the order in which they were encountered in the
input file, but grouped together on adjacent lines. Extra
spaces are deleted at the left end of the initial line for a
particular component, but are retained at the left end of
the continuation lines for the same component.
The at sign character pairs which identify the components
needed by these programs to construct the addresses are
listed below. If a particular component is not defined for
an address, then a line starting with the corresponding at
sign character pair, but containing nothing else, is allowed
but not required. The contents of a line are ignored if the
line begins with an at sign character pair which is not
listed here.
4 Mailing Address System
@# Start of new address. The address defined by the
preceding lines is complete. The rest of the current
line is ignored. The following lines start a new
address.
@@ End of file. Not required. Subsequent lines in the
file are not read.
@A Street address. This item can be continued on following
lines.
@C City name.
@D Department name. This item can be continued on
following lines.
@E Suffix to be placed to the right of the person's last
name. Examples are Jr., III, etc.
@F Person's first name.
@G Name for salutation. This might be a first name for a
personal letter or a Mr. or Ms. prefix together with the
last name for a business letter. This should not
include either the word "Dear" or a following colon or
comma. The word "Dear" and the final punctuation mark
will be inserted by the SPLICE program. The salutation
is ignored by the other programs.
@K Code line. The LABELS program can place this line at
the top of the labels. The code line is ignored by the
other programs. This line can contain any characters.
@L Person's last name.
@M Person's middle name. This should include the period if
it is an initial.
@N Country. This is not needed if the address is for the
local country.
@O Organization name. This item can be continued on
following lines.
@P Prefix to be placed to the left of the person's first
name. Examples are Mr., Ms., Professor, etc.
@S State name. This can have any form, such as a 2 letter
abbreviation, a 4 letter abbreviation or the full
spelling. The state name is used exactly as supplied
and is not verified.
@T Title to be placed below the person's name. This item
can be continued on following lines. The title is
considered to be expendable if the address must be
Input files Containing Components of Addresses 5
reduced in height to fit onto a small label.
@X Line to be inserted below the salutation by the SPLICE
program. This is ignored by the other programs. This
item could be used for something which is to be inserted
into the body of the letter. This item can be continued
on following lines.
@Y Any additional line to be at the bottom of the address.
This will appear above the salutation as a part of the
address. An example might be CAMPUS MAIL.
@Z Zip code. This can have any form, such as 5 digits or 9
digits.
The components defined by these at sign character pairs are
inserted into the address in the order which is shown below.
The list of items which appear in the address is defined by
2 arrays which appear in the PUTADR subroutine and which are
easily changed. The contents of these arrays are described
later in this document.
.LITERAL Word processor instruction
@K Code (optional)
@P @F @M @L, @E Prefix First Middle Last, Suffix
@T Title
@D Department
@O Organization
@A Street
@C, @S @Z, @N City, State Zip, Country
@Y Final line in place of above line
Dear @G: Salutation if supplied in input file
Dear @F, Alternate form of personal salutation
Dear @P @L: Alternate form of business salutation
.END LITERAL.END SPLICE
@X Extra line to be spliced into letter
For example, an input file having the contents shown below
@PMr.
@FJohn
@MB.
@LSmith
@EJr.
@TDirector
@DCareer Counseling Office
@OCentral College
@CRockport
@SCT
@Z06352
@GMr. Smith
@#
@GLinda
@Z51222
6 Mailing Address System
@STN
@CVictorville
@A6721 Main Street
@OVillage University
@OCollege of Science
@DDepartment of Chemistry
@LJones
@MF.
@FLinda
@PMs.
@@
would be converted by the SPLICE program into an output file
having the contents shown below.
.LITERAL
Mr. John B. Smith, Jr.
Director
Career Counseling Office
Central College
Rockport, CT 06352
Dear Mr. Smith:
.END LITERAL.END SPLICE
.LITERAL
Ms. Linda F. Jones
Department of Chemistry
Village University
College of Science
6721 Main Street
Victorville, TN 51222
Dear Linda:
.END LITERAL.END SPLICE
The file produced by the SPLICE program could itself be
treated as an input file which is to be processed by the
ENVELO, LABELS and SPLICE programs. If such a second
generation file were to be processed again by the SPLICE
program, then the resulting third generation file would
exactly duplicate the second generation file. However, an
output file which has been produced by the SPLICE program
cannot be correctly processed by any of the programs in this
package if this output file contains any lines after the
.END LITERAL.END SPLICE commands which are to be merged by
the word processing program into the body of the form
letter.
Starting at an Address Beyond First Address in File 7
STARTING AT AN ADDRESS BEYOND FIRST ADDRESS IN FILE
-------- -- -- ------- ------ ----- ------- -- ----
An interruption while the addresses are being printed can
mean that the paper stock has to be realigned in the printer
or that the printing process has to be started over. Since
considerable time or expensive paper stock might have been
used for the addresses which have been printed correctly, it
may be desirable to run the program which copied the
addresses again starting at or just before the first address
which was spoiled. The programs in this package allow the
user to type a word or a phrase which appears in the first
address which is to be copied but which does not appear in
any address which is located earlier in the file. If the
ENVELO program is being used to type the addresses onto
separate envelopes, then, after any envelope has been
completed, the user can merely press the RETURN key to type
the next address or else the user can type a word or a
phrase which is unique to a subsequent address to skip to
that address. If the addresses are being typed onto labels
or onto envelopes which are mounted on continuous fanfold
paper, then all of the addresses appearing after the
selected address will be generated.
The word or phrase which the user types to select a
particular address must be longer than 1 character. If the
ENVELO program is being used, then a single printing
character can be typed by the user before the first address
is generated to obtain a target pattern instead, and a
single printing character can be typed by the user after any
address has been typed on a separate envelope to repeat that
address. If there are several addresses which have not yet
been generated and which contain the word or phrase, then
the first of these will be selected. If the user is
inserting individual envelopes and if an address is obtained
which is too early in the file, then the user can merely
specify the word or phrase again after the incorrectly
selected address has been generated. However, if the
addresses are being typed onto labels or onto envelopes
which are mounted on continuous fanfold paper, then there is
no way to interrupt the typing of the addresses other than
to stop the program entirely.
The word or phrase typed by the user will match the word or
phrase having the same spelling in the address regardless of
the cases of the alphabetic letters, i.e. whether these are
capital or small letters.
The word matched in the address must start with the first
printing character on the line or must start with the first
printing character following either a space or a comma. The
word must extend through the final printing character on the
line or must be followed by a space or must be followed by a
printing character which is neither one of the alphabetic
letters A through Z nor one of the digits 0 through 9.
8 Mailing Address System
Spaces between words typed by the user indicate the only
locations in the address at which spaces are allowed for a
match, but spaces are not required for a match at these
locations in the address. For example, if the user types
the single word "NewHaven", then this word will match the
single word "NewHaven" in the address, but will not match
the 2 word phrase "New Haven" with a space between the
words. If the user types the 2 word phrase "New Haven" with
a space between the words, then this phrase will match
either the single word "NewHaven" without a space or the 2
word phrase "New Haven" with a space between the words.
FILE NAME CONVENTIONS
---- ---- -----------
On either the DECsystem10 or DECsystem20 computers, the
names of the files which are read or written by the programs
in this package must consist of 1 to 6 letters or digits,
optionally followed by a period and then by 0 to 3 letters
or digits. If the user does not type a period in the file
name, or if a period is typed but nothing else is typed to
the right of the period, then the name of the file will
consist only of the characters which were actually typed.
No default or standard file name extension (file type) is
assumed. If the user types ABC as the file name, then the
name of the file will be exactly this, not ABC.RNO or
ABC.TXT or ABC.ADR or any other combination.
The files written by the LABELS program are named LABELS.DDD
where DDD is a decimal number from 001 through 999. The
program checks for the first currently unused file name in
the sequence and writes the new labels into this file. For
a large label run in which more labels are generated than
the operators of the computer want to have in a single file,
the LABELS program will create additional output files as
necessary, each time selecting the next unused file name in
the sequence. The first output file would be named
LABELS.001 if a file with this name did not already exist,
the second output file would be named LABELS.002, and so on.
The files written by the ENVELO program are similarly named
ENVELO.DDD where DDD is a decimal number from 001 through
999. The user is not able to change the manner in which the
names of the output files produced by the LABELS and ENVELO
programs are constructed.
Instructions for Using the ENVELO Program 9
INSTRUCTIONS FOR USING THE ENVELO PROGRAM
------------ --- ----- --- ------ -------
The ENVELO program writes the addresses into an output file
which can be printed later onto envelopes which are mounted
on continuous fanfold paper. The ENVELO program can also
type the addresses directly onto separate envelopes which
are inserted individually by hand into the controlling
terminal or onto envelopes which are mounted on continuous
fanfold paper. The dimensions of 2 standard sizes of
envelopes are built into the program, but the user can also
specify the exact dimensions of any other size of envelopes.
The user can request that the program generate as many
target patterns as are necessary to align the paper stock in
the terminal prior to the generation of the actual
addresses. If separate envelopes are being inserted
individually by hand into the terminal, then the program can
repeat an address if an envelope is seen to be spoiled.
The program either can type just the destination addresses
read from an input file onto the envelopes, or can type both
the destination addresses and a return address specified by
the user when the program is started. If a return address
is requested, then the return address can be typed in the
upper left corner with the destination address at the
center, or these positions can be exchanged.
Salutations specified by the input file are not typed onto
the envelopes. If the input file specifies addresses which
have already been formatted, then the salutation lines are
recognized by their starting with the word "Dear" and ending
with either a colon or a comma.
It is strongly recommended that if the addresses are to be
typed directly onto envelopes which are mounted on fanfold
paper, then the initial interaction with the program be done
on regular paper and that the fanfold paper be inserted into
the terminal just before the program types the first
address. Attempting to type the initial interaction onto
envelopes which are mounted on fanfold paper can cause
extremely bad paper jams when the terminal types onto the
bottom edges of envelopes if these are attached only at the
top. Once the typing of the addresses has begun, there is
little danger of paper jams since the program will only type
on the central portions of the envelopes.
A typical dialog between the user and the ENVELO program is
shown below. The phrases which end in question marks are
the requests typed by the program. The characters to the
right of the question marks were typed by the user in
response to these requests.
10 Mailing Address System
ENVELO (03/83)
Separate or Continuous envelopes or File (S, C or F)? F
Number of target envelopes in each file? 10
Maximum number of envelopes in each file? 1000
Wide, Narrow or Other size envelopes (W, N or O)? N
Pica or Elite spacing (P or E)? P
Light or dark type (L or D)? L
Type how many copies of each envelope? 1
Did a blank line appear after your last answer (Y or N)? N
Type return address (press RETURN key again when done)
?First line of Return address
?
Return address at corner, middle or both (C, M or B)? C
File containing addresses? ADDRSS
Output file number 1 is named ENVELO.001
Output file number 1 contains 208 envelopes
Process additional addresses (Y or N)? N
Total envelopes produced: 208
EXIT
The items which the user must type are described below in
the order in which these items are requested. The user will
not always be asked to specify every item. Which items are
requested will depend upon what responses the user has
already made.
1. Whether the addresses are to be written into an output
file or are to be typed directly onto separate envelopes
or directly onto envelopes mounted on fanfold paper.
The user should respond by typing one of the following
letters.
S (for Separate) if the addresses will be typed
directly onto separate envelopes which are inserted
individually by hand into the terminal. The program
will pause after each envelope is finished and wait
for the user to insert the next envelope.
C (for Continuous) if the addresses will be typed
directly onto envelopes mounted on continuous fanfold
paper. The program will not pause between envelopes.
F (for File) if the addresses are to be written into an
output file which will be printed later onto
envelopes which are mounted on continuous fanfold
paper.
2. The number of target envelopes which are to be written
at the start of each output file for use in aligning the
paper in the printer or terminal. This question is
asked only if the addresses are being written into an
output file rather than being typed directly onto the
envelopes. The locations of the corner address and of
Instructions for Using the ENVELO Program 11
the middle address will be outlined on each of these
target envelopes. Target envelopes are also available
when the addresses are being typed directly onto the
envelopes, but in that case these target envelopes are
requested one by one until the paper is properly
aligned.
3. The maximum number of envelopes which can be written
into a single output file. This question is asked only
if the addresses are being written into an output file
rather than being typed directly onto the envelopes.
The maximum number of envelopes should include both the
target envelopes and those actually bearing addresses.
The program will begin a new output file starting with a
set of target envelopes each time that the desired
maximum number of envelopes has been written into the
current output file. This limit should be used to
assure that no more envelopes are written into a single
output file than can be printed onto the envelopes which
are mounted on a single length of continuous fanfold
paper.
4. Whether the addresses will be typed onto wide or narrow
envelopes, the dimensions of which are built into the
program, or whether the user will specify the exact
dimensions of the envelopes. The user should respond by
typing one of the following letters.
W (for Wide) if the envelopes are 9 1/2 inches wide by
4 1/8 inches high.
N (for Narrow) if the envelopes are 7 1/2 inches wide
by 4 inches high.
O (for Other) if the envelopes have some other
dimensions. The user will be asked the following
additional questions if this option is selected.
Maximum number of lines above corner address?
Minimum number of lines below corner address?
Maximum number of lines above middle address?
Minimum number of lines below middle address?
Height of envelope as number of lines?
Number of blank columns left of corner address?
Number of blank columns left of middle address?
The dimensions of the 2 standard sizes of envelopes,
narrow and wide, which are built into the ENVELO
program, are shown below. The dimensions in this
table should be consulted if only a minor adjustment
of the size is necessary. Which address is labeled
"corner" and which is labeled "middle" is based upon
the default positions for these addresses. The
positions of these addresses could be interchanged
provided that the answers to the other questions
12 Mailing Address System
which mention "corner" and "middle" are likewise
reversed. The column offsets for the corner and
middle addresses are stated assuming an elite spacing
of 12 characters per inch. These offsets can be
multiplied by 10/12 to get the corresponding offsets
for a pica spacing of 10 characters per inch.
size: Narrow Narrow Wide Wide
how fed: Separate Fanfold Separate Fanfold
locations: Middle Both Middle Both Middle Both Middle Both
above corner - 0 - 2 - 0 - 2
below corner - 3 - 3 - 3 - 3
above middle 6 11 10 10 7 12 10 10
below middle 3 3 3 3 3 3 3 3
total height 17 22 21 21 18 23 21 21
offset corner - 0 - 0 - 0 - 0
offset middle 28 34 34 34 40 46 46 46
In the above table, the column headings "Narrow" and
"Wide" refer to the envelope size. "Separate" and
"Fanfold" refer to whether the envelopes are
separately fed into the the terminal or are mounted
on fanfold paper. "Middle" and "Both" refer to
whether only the middle address is to be typed, or
whether both the corner and middle addresses are to
be typed. Minus signs appear where a dimension
refers to the corner address but no corner address is
being typed. If the addresses are being written into
a file which will be typed later onto the envelopes,
then the dimensions in the columns labeled "Fanfold"
and "Both" are used, regardless of whether the
envelopes bear return addresses or not.
5. Whether Pica or Elite character spacing is desired. The
character spacing is used to calculate the offset of the
central address from the left edge of the envelope.
This question is not asked if the user is specifying the
envelope dimensions directly. This program does not
issue control character or escape character sequences to
set the character spacing on the terminal or printer.
Instead, it is the responsibility of the operator of the
terminal or printer to adjust the terminal or printer to
give the desired character spacing.
The user should respond to this question by typing one
of the following letters.
P (for Pica) if the addresses are to be typed at 10
characters per inch.
E (for Elite) if the addresses are to be typed at 12
characters per inch.
Instructions for Using the ENVELO Program 13
6. Whether the addresses are to be overprinted to make them
appear darker. This question is not asked if the
addresses are being written into an output file to be
typed later. The user should respond by typing one of
the following letters.
L (for Light) if each line is to be typed only once for
normal density.
D (for Dark) if each line is to be typed twice to make
it darker.
7. The number of envelopes upon which each destination
address or each combination of return address and
destination address is to be typed. As an example, this
would have the value 1 if both the return address and
destination address are being typed and one envelope is
desired with the destination address in the middle and a
second envelope is desired with the destination address
in the corner.
8. Whether a blank line appeared after the last answer
typed by the user. This question is not asked if the
addresses are being written into an output file which
will be typed later. The particular FORTRAN operating
system being used determines whether a blank line
appears between a line typed by the user and the next
line displayed by a program. The user will usually not
have any control over which operating system is used.
The answer to this question is used to keep track of the
number of lines typed onto the terminal while the
envelopes which are mounted on fanfold paper are being
aligned in the terminal. After each envelope is
finished, the program generates enough blank lines
before the next address is typed so as to realign the
paper with the top of the next address. If the
addresses are being typed onto envelopes which are
mounted on fanfold paper, then the correct calculation
of the number of lines displayed on the terminal is
necessary if the addresses are to be aligned the same as
the target patterns, and also if the addresses in a
subsequent file are to be aligned the same as the
addresses in the first file.
The user should respond by typing one of the following
letters.
Y (for Yes) if a blank line appeared after the last
answer typed by the user.
N (for No) if a blank line did not appear after the
last answer typed by the user.
14 Mailing Address System
9. The return address. If the user specifies a return
address here, then this return address will be typed on
each of the envelopes in addition to the destination
addresses read from the input address file. This return
address will be typed on the envelopes exactly as it is
typed by the user. The return address can be just a
single line, or can be continued onto several lines.
The user must press the RETURN key after each line, and
must press the RETURN key an extra time after the last
line has been typed. If no return address is desired,
then the user must still press the RETURN key once in
response to this request.
10. Whether the return address is to be typed at the upper
left corner of the envelope with the destination address
in the middle, or in the middle with the destination
address at the upper left corner. This question is
asked only if a return address has been specified. The
user should respond by typing one of the following
letters.
C (for Corner) if the return address is to appear at
the upper left corner of the envelope and the
destination address is to appear in the middle.
M (for Middle) if the return address is to appear in
the middle of the envelope and the destination
address is to appear at the upper left corner.
B (for Both) if 2 times the number of copies of each
envelope specified earlier are to be produced typed
with each destination address. Half of these
envelopes are to have the return address at the upper
left corner and the other half are to have the return
address in the middle.
11. The name of the address file which is to be read by
this program. The address file either specifies the
components of the addresses or contains the previously
formatted addresses. If the address file specifies the
components, then each line starts with an at sign. If
the address file contains the previously formatted
addresses, then these are separated by lines starting
with periods.
The program will instruct the user how to align the first
envelope. After the first envelope has been inserted into
the terminal, the user can press the RETURN key to signal to
the program that the first address can be typed. The user
can instead request that the program type a stylized test
address onto the envelope currently in the terminal by
pressing the key for a single printing character before
pressing the RETURN key. If additional stylized test
envelopes are needed to align the paper, then the user can
again press the key for a single printing character and the
Instructions for Using the ENVELO Program 15
RETURN key for each of these.
If the addresses are being typed onto envelopes mounted on
fanfold paper, then the program will type all of the
addresses in the input file before halting. If the user is
instead inserting individual envelopes into the terminal,
then the user will have to press the RETURN key again after
each envelope has been inserted to signal to the program
that it can type the next address. If individual envelopes
are being inserted into the terminal, and if one of these is
spoiled in some manner, then the user can press either the
TAB key or the key for any single printing character before
pressing the RETURN key to cause the program to retype the
current address. If the TAB key, which does not print
anything on the envelope, is pressed, then the address will
be retyped onto the envelope already in the terminal. If
the key for a single printing character is pressed instead,
then the program will type a stylized test address onto the
envelope currently in the terminal and will then wait for
the user to insert another envelope and press the RETURN key
again. There is no way to retype an address which appeared
before the current address other than to stop the program
and then start over.
Instead of merely pressing the RETURN key to generate the
first address after the envelopes have been aligned, the
user can type any word or phrase which appears on any line
of an address appearing later in the file to select that
address as the first which is to be generated. If the
addresses are being typed onto separate envelopes which are
being individually inserted into the terminal, then after
any address has been typed, the user can insert a scrap
sheet of paper into the terminal and type a word or phrase
to skip forward to the address containing that word or
phrase. If the addresses are being typed onto envelopes
which are mounted on fanfold paper, then such a word or
phrase can only be typed before the first address is
generated and the paper stock must already have been
correctly aligned.
The word or phrase should be unique to the desired address.
The word or phrase must be longer than 1 character since a
single letter would cause the current address to be retyped
instead. If there are several addresses which have not yet
been typed and which contain the word or phrase, then the
first of these will be selected. If the user is inserting
individual envelopes and if an address is obtained which is
too early in the file, then the user can merely specify the
word or phrase again after the incorrectly selected address
has been typed. However, if the addresses are being typed
onto envelopes which are mounted on fanfold paper, then
there is no way to interrupt the typing of the addresses
other than to stop the program entirely.
16 Mailing Address System
INSTRUCTIONS FOR USING THE LABELS PROGRAM
------------ --- ----- --- ------ -------
The LABELS program writes the addresses into an output file
which can be printed later onto parallel columns of labels
which are mounted on continuous fanfold paper. The LABELS
program can also type the addresses directly onto labels
mounted on continuous fanfold paper which has been inserted
into the controlling terminal. Several rows of target
labels can appear before the addresses for use in aligning
the paper stock in the printer or terminal. A single minus
sign is also printed at the left edge between the rows of
addresses for confirming the alignment once printing has
begun. If the paper stock is properly aligned, then these
minus signs will be printed in the spaces between the
labels. Since labels can be relatively small, the program
can be given a vocabulary of words which can be abbreviated
and of words which can be deleted to shorten long lines.
The person's job title can also be deleted if the address
contains too many lines. If the input file contains the
previously formatted addresses, then the second line of each
address is assumed to contain the job title and the
following lines are assumed to be extensions of the job
title if they are indented to the right of the left column.
The vocabulary of words which can be abbreviated or deleted
is read from an input file. These replacements and
deletions are performed only in lines which are too long to
fit onto the labels. If the user specifies that words in
long lines cannot be abbreviated, then the file which
defines the vocabulary will not be read and no such
replacements will be made. Each line in the file which
defines the vocabulary should contain either one or two
words. Lines containing 1 and 2 words can be intermixed.
The first word on a line can start either in the left
column, or further to the right. If a line in the
vocabulary file contains a single word, then this word is
taken to be a word which can be deleted to shorten a line
which is too long in an address. If a line in the
vocabulary file contains 2 words separated by 1 or more
spaces, then the shorter word is taken to be a synonym by
which the longer word can be replaced. If the words are of
the same length, then the first can be replaced by the
second, although this would not change the length of the
line and would be done only if the line were already too
long. The words in the vocabulary are recognized ignoring
the cases of the alphabetic letters A through Z. The cases
of the alphabetic letters in the words which are inserted
into the addresses are the same as were specified in the
vocabulary file.
The following lines could appear in the vocabulary file to
specify that the word THE could be deleted and the word AND
could be replaced by an ampersand (the & character).
Instructions for Using the LABELS Program 17
THE
AND &
A typical dialog between the user and the LABELS program is
shown below. The phrases which end in question marks are
the requests typed by the program. The characters to the
right of the question marks were typed by the user in
response to these requests.
LABEL (04/83)
Type number which selects intial dimensions you then modify
1 for 1 column of 4 by 1 1/2 labels, 10 pitch, 6 lines/inch
2 for 4 columns of 3 3/8 by 1 labels, 12 pitch, 8 lines/inch
Set dimensions initially to which default? 2
A) Asterisk on labels with code
B) Boxes (rows of for alignment) 33
C) Columns of labels 4
D) Detach bottom line and zip code YES
E) Each address on how many labels 1
G) Gutter width (spaces between) 4
H) Height of each label in inches 1.000
I) Initial code lines NO
L) Line spacing (lines per inch) 8
M) Maximum rows of labels in file 5000
O) Offset (extra spaces at left) 0
P) Pitch (characters per inch) 12
S) Separate CAMPUS MAIL,zip,neither NO
T) Tab characters replace spaces YES
U) Upper case conversion NO
W) Width of each label in inches 3.375
Are the above all correct (Y or N)? N
Press RETURN key extra time when all items are correct
Change item? B
Number of rows of alignment boxes? 5
Press RETURN key extra time to list all items
Change item? M1000
Change item?
A) Asterisk on labels with code
B) Boxes (rows of for alignment) 5
C) Columns of labels 4
D) Detach bottom line and zip code YES
E) Each address on how many labels 1
G) Gutter width (spaces between) 4
H) Height of each label in inches 1.000
I) Initial code lines NO
L) Line spacing (lines per inch) 8
M) Maximum rows of labels in file 1000
O) Offset (extra spaces at left) 0
P) Pitch (characters per inch) 12
S) Separate CAMPUS MAIL,zip,neither NO
T) Tab characters replace spaces YES
U) Upper case conversion NO
W) Width of each label in inches 3.375
Are the above all correct (Y or N)? Y
18 Mailing Address System
Are addresses to be written into an output file (Y or N)? Y
Did a blank line appear after your last answer (Y or N)? N
Abbreviate words in long lines (Y or N)? Y
File specifying abbreviations? ABBREV
Abbreviations
Remove: THE
Change: AND to &
File containing addresses? SAMPLE
Word or phrase unique to first label?
Output file number 2 is named LABELS.002
Output file number 2 contains 416 labels
Process additional addresses (Y or N)? N
Total labels produced: 416
EXIT
The values of the items which can be selected and changed by
the user are summarized in the tables shown in the above
dialog. To change a particular value or option
specification, the user first types the letter which is
shown to the left of the item in the table. Only the single
letter, not the full word which it represents, should be
typed by the user.
The user can type the new value or option specification
either to the right of the letter or else on the next line.
If the user types the new value or option specification to
the right of the letter, then one or more spaces can be
typed between the letter and the new value or option
specification, but such spaces are not required. If the
user types the new value or option specification to the
right of the letter, and if this value or option
specification is within the valid range, then the program
will merely ask what item the user wants to change next. If
the user does not type a value or option specification to
the right of the letter, then the program will display a
short description of the item. The user can press the
question mark (the ? character) key and then the RETURN key
to obtain a more complete description. The short
description will then be displayed again.
Where a YES or NO answer is expected, Y and N are sufficient
responses, but the user can type the full words instead.
Where a height in inches or a width in inches is expected,
the user can type a period between the whole number portion
of the answer and the fractional portion. The original
value or option specification will usually be retained if
the user merely presses the RETURN key in response to the
short description. However, an empty or null answer, when
setting the code which is to be matched for addresses which
are to be marked with asterisks on the labels, instead
specifies that no addresses are to be marked in this
fashion, and is a valid response.
Instructions for Using the LABELS Program 19
The items which the user can set are described below. The
letter by which the item is selected is shown to the left in
the margin. To the right of this letter is shown the
question which is displayed by this program to prompt the
user to enter the new value or option specification.
A Asterisks on labels with code (*,% are wild cards)?
The user should type the identification code of any
address which is to bear an asterisk (the * character)
at the upper right corner of the label. This option is
active only if the input file specifies the components
of the addresses. The identification code is the
sequence of characters which are defined in the input
file on the line starting with an @K character pair.
The label can be marked with an asterisk even if the
identification code is not itself copied into the
label.
The cases of the alphabetic letters A through Z are
ignored, both in the code typed by the user and in the
codes specified in the input file. A percent sign (the
% character) can be included in the code typed by the
user where any single printing character is to be
allowed. The percent sign will not match either a
space or a code which is shorter than the location of
the percent sign. An asterisk can be included at the
right end of the code if any sequence of characters is
to be allowed starting at that point. The asterisk
will match a sequence of characters which contains a
space or spaces and will not prevent the matching of a
code which is shorter than the location of the
asterisk. If the user specifies the code A%C*, then
labels containing addresses having codes such as
AAC..., ABC..., ACC... etc. would be marked with
asterisks regardless of the cases of the letters in the
codes.
If the user selected a code previously, but has since
decided that the labels are not to be marked with
asterisks, then the user should just press the RETURN
key again when asked to type the code.
B Number of rows of alignment boxes?
Several rows of label outlines can be generated before
the first address in each output file to be used for
alignment of the paper in the terminal or printer. The
user should type the number of rows of empty boxes
which are desired. Probably zero rows of labels
outlines should be selected here if the addresses are
to be typed directly onto the controlling terminal,
since in that case the user can interactively request
as many rows of label outlines as are necessary to
align the paper in the controlling terminal.
20 Mailing Address System
C Number of parallel columns of labels?
The addresses can be arranged in a single column, or in
2 to 4 parallel columns. If 3 columns of labels are
selected here, then the first 3 addresses would be
placed on the first row of 3 labels, and the fourth
address would be on the left label in the second row.
D Detach bottom line and zip from address (Y or N)?
The bottom line of the address, which usually contains
the city and state names, can be separated from the
rest of the address by an extra blank line, and the zip
code at the right end of the bottom line can be shifted
a few extra spaces to the right. In order to be
recognized, the zip code must consist either of 5
digits or of 5 digits followed immediately by a minus
sign and 4 digits.
The user should type either of the following letters.
Y to separate the bottom line from the rest of the
address by an extra blank line and to shift the zip
code slightly to the right.
N to have the bottom line be contiguous with the rest
of the address and to have the zip code be just to
the right of the state.
E Each address is to be printed on how many labels?
The user should type the number of labels onto which
each address is to be printed. If each address is to
be printed onto 2 labels, then the number 2 would typed
here. The duplicate copies of the addresses are
printed on adjacent labels. To print 1 complete set of
labels to be followed by a second complete set, either
the input file should be processed twice, or this
program should be run twice.
G Width of gutters between labels (columns)?
The user should type the number of columns of
characters which are to be kept blank between adjacent
labels to allow for horizontal misalignment of the
paper stock in the terminal or printer. The user would
type 4 here if 2 columns are to be kept blank at the
right edge of each label and 2 more columns to be kept
blank at the left edge of the adjacent label. The
label width specified elsewhere in inches must include
the width of these blank columns.
Instructions for Using the LABELS Program 21
H Height of labels in inches?
The user should type the distance between the tops of
successive labels. The user should type 1.25 if the
labels are 1 and 1/4 inches high.
I Include initial code line (Y or N)?
The code specified in the address file by a line
starting with an @K character pair can be typed on a
separate line above the rest of the address. This code
can be included on the labels only if the input file
specifies the components of the addresses. Inclusion
of this code on the label is independent of the marking
of an asterisk at the upper right corner of addresses
having particular codes.
The user should type either of the following letters.
Y to include the code on the top line of each label.
N to exclude the code.
L 6 or 8 lines per inch?
The line spacing is used to calculate the maximum
number of lines in a single address. The operator must
adjust the terminal or printer to obtain this line
spacing. This program does not insert escape or
control character sequences into the output file to set
the terminal or printer to the desired line spacing
automatically.
The user should type either of the following numbers.
6 if the terminal or the printer is adjusted for 6
lines per inch.
8 if the terminal or the printer is adjusted for 8
lines per inch.
M Maximum number of rows of labels?
The user should type the maximum number of rows of
labels which can appear in a single output file. A new
output file will be begun after this many rows have
been written to the current output file. The maximum
number of rows of labels includes the rows of alignment
boxes which are generated at the start of each output
file. If each file starts with 10 rows of boxes, and
if there are 3 parallel columns of labels, then
selecting 1000 rows here would allow up to 3*(1000-10)
or 2970 labels actually bearing addresses in each file.
22 Mailing Address System
O Offset left label to right how many spaces?
The user should type the number of extra spaces which
are to be inserted to the left of the addresses in the
leftmost column of labels. Unlike the spaces in the
gutter between adjacent labels, the spaces inserted to
the left of the addresses in the leftmost column of
labels should not be included in the width of the
labels stated in inches elsewhere. This offset shifts
all of the addresses on each row of labels to the
right. The offset does not change the placement of the
addresses relative to one another.
P Pitch?
The pitch or characters per inch is used to calculate
the number of characters which can appear across the
width of each label. The operator must adjust the
terminal or printer to obtain this character spacing.
This program does not insert escape or control
character sequences into the output file to set the
terminal or printer to the desired character spacing
automatically.
The user should type either of the following numbers.
10 if 10 characters are being typed per inch (Pica
spacing).
12 if 12 characters are being typed per inch (Elite
spacing).
S Separate CAMPUS MAIL, ZIP and neither (Y or N)?
On the system for which these programs were originally
developed, foreign and campus mail addresses often had
derelict United States zip codes. The addresses which
were sorted by United States zip codes could be
separated into the correct groups only by making 3
passes through the input file. This option is probably
useless elsewhere.
The user should type either of the following letters.
Y to scan the input file 3 times, producing first the
labels which have CAMPUS MAIL on the last line, then
the labels which have neither CAMPUS MAIL nor a zip
code on the last line, and finally the labels which
have a zip code on the last line.
N to produce the labels exactly in the order in which
these are specified in the input file.
Instructions for Using the LABELS Program 23
T Convert multiple spaces to tab characters (Y or N)?
This program can convert multiple spaces to tab
characters to save transmission time to the terminal or
printer and/or to save disk space if the labels are
being written to an output file. The tab character is
a non-printing character which causes the next printing
character to appear to the right of the next integral
multiple of 8 column positions.
The user should type either of the following letters.
Y if multiple spaces are to be converted to tab
characters.
N if multiple spaces are not to be converted to tab
characters. This should be used if either the
operating system or the output device does not
support the tab character.
U Convert lower case to upper case (Y or N)?
Whether labels are more legible when the alphabetic
letters A through Z are typed in the mixture of upper
and lower cases specified in the address file or when
all alphabetic letters have been converted entirely to
upper case will depend upon the terminal or printer
used.
The user should type either of the following letters.
Y to convert all lower case alphabetic letters in the
addresses to upper case (capitals).
N to keep all alphabetic letters in their original
cases.
W Width of labels in inches including gutters?
The user should type the distance in inches between the
left edges of adjacent parallel columns of labels.
This distance must include the columns which are in the
blank gutter between the labels. This distance must
not include the columns by which the labels at the left
are offset from the left edge of the paper. The user
should type 3.5 if the labels are 3 and 1/2 inches
wide.
After the user has verified that the description of the
labels is correct, the program will ask whether the
addresses are to be written into an output file which will
be printed later onto the labels. If the user responds by
typing "NO", then the addresses are instead typed directly
onto the controlling terminal. Later, just before the first
address is typed onto the terminal, the user can
24 Mailing Address System
interactively request one by one as many label outlines as
are necessary to align the labels in the terminal.
If the labels are being typed onto the controlling terminal,
then the user will be asked whether a blank line appeared
after the last answer typed by the user. The particular
FORTRAN operating system being used determines whether a
blank line appears between a line typed by the user and the
next line displayed by a program. The user will usually not
have any control over which operating system is used. The
answer to this question is used to keep track of the number
of lines typed onto the terminal while the labels which are
mounted on fanfold paper are being aligned in the terminal.
After each row of labels is finished, the program generates
enough blank lines before the next row is typed so as to
realign the paper with the top of the next address. The
correct calculation of the number of lines displayed on the
terminal is necessary if the addresses are to be aligned the
same as the target patterns, and also if the addresses in a
subsequent file are to be aligned the same as the addresses
in the first file.
The program will ask whether a list of words will be
supplied which can be abbreviated or deleted in lines which
are too long to fit onto the labels. If such a list is to
be supplied, then the program will ask the user to specify
the name of the file which specifies the list. A list of
the deletions and substitutions which are specified by the
file will be displayed to the user.
After the user has specified the name of the address file,
the user will be asked to type a word or phrase which is
found first on any of the lines of the first address which
is to be copied onto a label. Addresses which appear before
the first appearance of this word or phrase will be
discarded. If there are several addresses which contain the
word or phrase, then the first of these will be selected.
If a single word is typed, then it must be longer than a
single character. All punctuation marks which appear
between the words of a phrase must be included. The cases
of the alphabetic letters A through Z are ignored. Only the
RETURN key should be pressed to start with the first
address.
If the addresses are being typed onto the controlling
terminal, then, instead of typing a word or a phrase which
appears in the first address, the user can type just a
single printing character before pressing the RETURN key to
obtain a single row of target labels. The user can
repeatedly type a single character to request such target
labels until the paper is properly aligned in the terminal.
Once the paper has been properly aligned, the user can
either press the RETURN key an extra time to start with the
first address, or can type a word or a phrase which appears
in a later address to skip over the earlier addresses.
Instructions for Using the SPLICE Program 25
INSTRUCTIONS FOR USING THE SPLICE PROGRAM
------------ --- ----- --- ------ -------
The SPLICE program writes addresses into an output file
which can be processed later by an independent word
processing program to insert these addresses into form
letters. Extra lines are inserted before and after each
address to serve as instructions for the word processing
program named FROFF. The statements in the SPLICE program
which generate these extra lines can be changed easily to
generate whatever instructions are required by some other
word processing program. FROFF emulates the RUNOFF word
processing program, but FROFF provides many more features.
FROFF is a FORTRAN program written by the same author as the
programs in this package.
A typical dialog between the user and the SPLICE program is
shown below. The phrases which end in question marks are
the requests displayed by the program. The characters to
the right of the question marks were typed by the user in
response to these requests.
SPLICE (05/83)
Business, Personal or No salutations (B, P or N)? B
Default title if salutation is missing? Dr.
Include lines to be merged into body of letter (Y or N)? Y
Input address file? ADDRS1
Word or phrase unique to first address? JIM SMITH
Output splice file? SPLICE
Number of addresses read: 108
Number of addresses copied: 57
Number of added Salutations: 4
Process additional addresses (Y or N)? Y
Input address file? ADDRS2
Word or phrase unique to first address? JANE DOE
Continuing output file
Number of addresses read: 9
Number of addresses copied: ALL
Number of added Salutations: 1
Number of addresses copied: 66 (total)
Process additional addresses (Y or N)? N
Number of addresses read: 117
Number of addresses copied: 66
Number of added Salutations: 5
EXIT
The items which the user must type are described below in
the order in which these items are requested. The user will
not always be asked to specify every item. Which items are
requested will depend upon what responses the user has
already made.
26 Mailing Address System
1. Whether the addresses are to include business or
personal salutations or are not to include salutations
at all. This determines whether a colon or a comma is
to be attached to the right end of each salutation. If
the input file specifies the previously formatted
addresses separated by lines which start with periods,
and if the bottom line in an address is a salutation,
i.e. it starts with the word "Dear" and ends with either
a comma or a colon, then the terminal comma or colon is
removed and replaced by the punctuation mark selected by
the answer to this question.
If the input file does not specify a salutation for a
particular address, then the answer to this question
also specifies whether the person's first name or last
name is to be used in the salutation. If the input file
contains previously formatted addresses separated by
lines which start with periods, then the name from which
the salutation is constructed must be obtained from the
contents of the first line of the address. Salutations
which are constructed in this manner should be carefully
verified by the user.
The user should respond by typing one of the following
letters.
B (for Business) to place a colon at the right end of
each salutation. A salutation will be constructed
using the person's last name in each address for
which a salutation is not defined by the input file.
P (for Personal) to place a comma at the right end of
each salutation. A salutation will be constructed
using the person's first name in each address for
which a salutation is not defined by the input file.
N (for No) if no salutations are to be copied into the
output file. Salutations will not be copied even if
salutations are defined by the input file.
Salutations will not be constructed in those
addresses for which salutations are not defined by
the input file.
2. If business salutations are selected, then the user will
be asked to specify a title such as Professor or Doctor
or Dr. which is to be used in constructing the
salutation for each address which does not already end
with a salutation. Such a salutation would be
constructed from the information in the first line of
the address. If the input file contains previously
formatted addresses separated by lines which start with
periods, and if the first line of an address starts with
an abbreviation such as Ms. or Mr. which ends with a
period, then this abbreviation will be used in
constructing a salutation for that address instead of
Instructions for Using the SPLICE Program 27
the title which you specify here. If the input file
specifies the components of the addresses on lines which
start with at signs, and if the name prefix for a
particular address is specified by a line which starts
with an @P character pair, then this name prefix will be
used in constructing a salutation for that address
instead of the title which you specify here.
The user should merely press the RETURN key if all of
the addresses already contain salutations or if a
default title is not to be included in salutations which
are constructed by this program.
3. Whether lines which start with an @X character pair in
an input file which specifies the components of the
addresses are to be copied into the output file after
the .END LITERAL.END SPLICE commands so that the
contents of these lines can be merged into the body of
the letter.
The user should respond by typing either of the
following letters.
Y if lines starting with an @X character pair are to be
copied into the output file after the .END SPLICE
command.
N if lines starting with an @X character pair are not
to be copied into the output file.
The answer to this question is used only if the input
file specifies the components of the addresses. This
question must still be answered, but the answer is
ignored, if the input file specifies previously
formatted addresses separated by lines which start with
periods. If lines which start with an @X character pair
are to be copied into the output file, then each address
should have the same number of lines which start with
this character pair, and, if there is more than one
input file, then all of the input files should specify
the components of the addresses.
4. The name of the address file which is to be read by this
program. The address file either specifies the
components of the addresses or contains the previously
formatted addresses. If the address file specifies the
components, then each line should start with an at sign
character pair. If the address file contains the
previously formatted addresses, then these are separated
by lines starting with periods. If the address file
contains the previously formatted addresses, then blank
lines within each address are retained, but blank lines
at the start or end of each address are discarded.
28 Mailing Address System
5. A word or phrase which is found first in the first
address which is to be copied into the output file.
Addresses which appear before the first appearance of
this word or phrase will be discarded. If a single word
is typed, then it must be longer than a single
character. All punctuation marks which appear between
the words of a phrase must be included. The cases of
the alphabetic letters A through Z are ignored.
If the input address file specifies the components of
the addresses, then the word or phrase, in order to be
matched, must appear on one of the lines of the address,
but not in the salutation nor in an extra line after the
salutation which is to be merged into the body of the
letter.
Only the RETURN key should be pressed to start with the
first address.
6. The name of the file into which the addresses are to be
copied. A .LITERAL command will be inserted before each
address which is copied into this file, and the pair of
commands .END LITERAL.END SPLICE will be inserted after
each address.
Instructions for Using the MRGADR Program 29
INSTRUCTIONS FOR USING THE MRGADR PRORAM
------------ --- ----- --- ------ ------
The MRGADR program can merge up to 5 files each of which
specify the components of a group of addresses and each of
which are already sorted in increasing zip code order. The
zip codes can consist either of 5 digits or of the 5 most
significant digits followed by a minus sign and then by 4
less significant digits. The MRGADR program cannot process
files which contain the previously formatted addresses
rather than the components of the addresses.
The program reads the first address contained in each of the
input files, determines the address having the lowest zip
code among these several addresses, writes out the address
having the lowest zip code, and reads in the next address
from the file from which the address having the lowest zip
code code was originally read. The address having the
lowest zip code among the new group of addresses is then
determined, and so on until the ends of all of the input
files have been reached.
Addresses which were read from a particular file will be
copied in their original order relative to the other
addresses from the same file, but these addresses may be
interspersed with addresses which were read from the other
input files. If some of the addresses do not include zip
codes, then these addresses should appear at the start of
the input files. If more than one input file starts with
addresses which do not include zip codes, or, for that
matter, if more than one input file contains addresses which
include a particular zip code, then these addresses are
copied into the output file in any order which is convenient
for the program. If the order of addresses which do not
include zip codes must be maintained, then these addresses
must appear in only one of the input files.
A typical dialog between the user and the MRGADR program is
shown below. The program only asks for file names, and
nothing else. The phrases which end in question marks are
the requests displayed by the program. The characters to
the right of the question marks are the file names which
were typed by the user in response to these requests. The
MRGADR program does not have any built in help messages.
30 Mailing Address System
MRGADR (05/83)
Merges up to 5 address files previously sorted by zip code
New composite file? MERGED
Original file (press RETURN again if no more)? FIRST
Original file (press RETURN again if no more)? SECOND
Original file (press RETURN again if no more)? THIRD
Original file (press RETURN again if no more)? FOURTH
Original file (press RETURN again if no more)?
Total number of addresses copied: 113
EXIT
If the user wants to merge less than 5 address files, then
only the RETURN key should be pressed in response to the
request for the name of the next file.
Arrays and Variables Used by These Programs 31
ARRAYS AND VARIABLES USED BY THESE PROGRAMS
------ --- --------- ---- -- ----- --------
The programs in this package use the same names for the
arrays and variables which perform identical functions.
The arrays which are used to store the components of the
address and the dimensions of these arrays are described
below. These arrays are used only if the components of the
addresses are read from a file in which each line starts
with an at sign. The arrays are not used if the addresses
are read from a file in which the previously formatted
addresses are separated by lines starting with periods.
LTRKND = Array containing the characters which identify the
various types of components of the address. Both
LTRKND and ISTART are dimensioned at LMTKND.
Currently, LTRKND contains the letters of the
alphabet, and LMTKND is 26, so there can be 26
different types of components, each identified by a
different letter of the alphabet. The number sign
(the # character) and the at sign itself as a
second character on the line are tested for
explicitly and are not specified within the LTRKND
array. If one or more lines in the input array
start with an @C character pair, then ISTART(3)
contains the subscript of the location within the
LOCATN array which in turn contains the subscript
of the location in the LTRSTR array which contains
the first character of the first component
specified by these lines.
ISTART = Array containing the subscripts of the locations in
the LOCATN array which in turn contain the
subscripts of the locations in the LTRSTR which
contain the first characters of the first
components of each type.
LMTKND = Dimension of the LTRKND and ISTART arrays. This is
the number of different kinds of components of the
address. LMTKND does not place a limit on the
number of components of a single type however.
LOCATN = Array containing the subscripts of the locations
within the LTRSTR array which contain the first
characters of each component of the address. The
ICHAIN, LOCATN and LENGTH arrays are dimensioned at
LMTSEC. If there is only 1 component of a
particular type, then the parallel location in the
ICHAIN array is zero. If there are several
components of a particular type, then the parallel
locations in the ICHAIN array contain the
subscripts of the ICHAIN, LOCATN and LENGTH array
locations which describe the next component of the
same type. The ICHAIN entry for the final
32 Mailing Address System
component of a particular type is always zero.
ICHAIN = Array containing the subscripts of the locations
within the ICHAIN, LOCATN and LENGTH arrays which
describe the next component of a particular type.
The ICHAIN entry for the final component of a
particular type is always zero.
LENGTH = Array containing the number of characters in each
component.
LMTSEC = Dimension of the ICHAIN, LOCATN and LENGTH arrays.
LMTSEC is the maximum number of components of all
types in a single address, counting separately
every appearance of components of the same type.
LTRSTR = Array which stores the letters of the components of
the address in the order in which these are defined
in the input file. LTRSTR is dimensioned at
LMTSTR.
LMTSTR = Dimension of the LTRSTR array. LMTSTR is the
maximum number of characters which can appear in a
single address.
LTRBFR = Array into which each line in the input file is
read. LTRBFR is dimensioned to LMTBFR which is
therefore 2 more than the maximum number of
characters in a single component of the address
since the first 2 letters in each line in the input
file identify the type of component being defined.
LMTONE is the maximum length of a single component
in the output file. LMTTWO is the maximum length
of a line in the reconstructed address if this line
is constructed of more than just a single
component. If the next component which is to be
appended to the line would cause the line to be
longer than LMTTWO characters, then the line is
split before this next component. Either the
component already in the line or the component
about to be added could be of length LMTONE.
LMTONE is therefore an absolute upper limit, but
LMTTWO is merely a suggested length. LMTTWO must
be less than or equal to LMTONE. LMTONE would
probably equal LMTBFR-2. Neither LMTONE nor LMTTWO
are used as dimensions of any array.
LMTBFR = Dimension of the LTRBFR array. This is the maximum
number of characters including the initial at sign
and the following character in a single line in the
file which defines the components of the address.
Arrays and Variables Used by These Programs 33
For example, if the input file contained the following
specifications of the components of an address,
@CFIRST
@ASECOND
@BTHIRD
@BFOURTH
@CFIFTH
@BSIXTH
then this information would be stored as is shown below.
Subscript 1 is at the bottom in the diagram, subscript 2
immediately above, and so on.
ISTART ICHAIN LENGTH LOCATN
array array array array
+-> 0 5 28 >------------------------+
! !
! 0 <---+ 5 23 >-------------------+ !
! ! ! !
+-< 6 <-+ ! 6 17 >-------------+ ! !
! ! ! ! !
+-< 1 /-> 4 >-+ ! 5 12 >--------+ ! ! !
! / ! ! ! ! !
! 3 >-/ /-> 0 ! 6 6 >--+ ! ! ! !
! / ! ! ! ! ! !
! 2 >-/ /-> 5 >---+ 5 1 ! ! ! ! !
! / ! ! ! ! ! !
+-------/ FIRSTSECONDTHIRDFOURTHFIFTHSIXTH
LTRSTR array
The arrays which are needed for the assembly process and
their dimensions are described below. The components stored
in the LTRSTR array are copied into the LTRADR array and the
lengths of the resulting lines are stored in the LNGLIN
array. The KONTNT and ITRAIL arrays specify which types of
components go into which lines and with what separating
characters.
If the input file specifies the components of the address,
then neither the salutation nor the blank line before the
salutation are stored in the LTRSTR AND LNGLIN arrays. The
salutation and the blank line before the salutation must
however be stored in these arrays if the input file contains
the previously formatted addresses separated by lines which
start with periods.
LTRADR = The array which contains the characters of the
formatted address. This is dimensioned at LMTCHR.
LMTCHR = The maximum number of characters which can be in a
formatted address.
34 Mailing Address System
LNGLIN = The array which contains the lengths of each of the
lines in the formatted address. This is
dimensioned at LMTLIN.
LMTLIN = The maximum number of lines in the formatted
address. This does not include the salutation or
the blank line before the salutation if the address
is reassembled from its components.
LMTONE = The maximum allowable length of a line consisting
of a single component in the reassembled address.
Any characters in excess of this are discarded.
LMTTWO = The desired maximum width of a line in the
reassembled address. The next component of the
current line of the address is reserved for the
next output line if addition of the next component
to the line would cause the line to contain more
than LMTTWO characters. LMTTWO must be less than
or equal to LMTONE.
KONTNT = The array which defines which components of the
address are to appear on each line in the
reassembled address. The values in the KONTNT
array are the locations in the alphabet of the
letters which identified the components in the
original file which was read as data. The final
component on each line is indicated by an extra
zero value. The values in the ITRAIL array are
parallel.
ITRAIL = Indicates what characters are to be inserted before
the item indicated by the parallel entry in the
KONTNT array if this item is not the first on the
current line of the address. No character is
inserted before the component if the component is
the first on the line either because it is the
first component specified for the line by the
KONTNT array or because it would have caused the
line of which it would normally have been a part to
have been too long. The value in this array is
ignored if the parallel value in the KONTNT array
is zero.
= 0, Insert a single space between adjacent items on
the same line.
= 1, Insert a comma and a space between adjacent
items on the same line.
= 2, Insert 2 spaces between adjacent items on the
same line.
List of Files Forming This Package 35
LIST OF FILES FORMING THIS PACKAGE
---- -- ----- ------- ---- -------
The routines which manipulate file names and which open and
close files are dependent upon the particular computer
system being used. These routines have been collected
together in a single file. A version of these routines is
supplied for use with the TOPS10 emulator on the DECsystem20
computer. The argument lists and functions of these
routines are described within the routines themselves.
These routines should be relatively easy to modify for use
on other computer systems.
ENVELO.CMD Command file used to load the ENVELO program on
the DECsystem10 or DECsystem20 computers.
ENVELO.FOR The source of the ENVELO program. This file
must be loaded with the LBLLIB, LBLD10 and MACRO
(or MACD20) packages.
ENVHLP.RNO Rough text used to construct the help messages
for the ENVELO program. This file must be
processed by the FORMAT program to produce the
FORTRAN source of the ENVHLP routine. FORMAT is
a FORTRAN program which was written by the same
author as the programs in this package and which
is available from the DECUS DECsystem10 program
library. If this file is modified so as to
change the number of lines in any message which
is issued after the addresses start to be typed
on the terminal, then the amount by which the
KNTOUT variable is incremented after the message
must be changed accordingly in the ENVELO main
program.
LABELS.CMD Command file used to load the LABELS program on
the DECsystem10 or DECsystem20 computers.
LABELS.FOR The source of the LABELS program. This file
must be loaded with the LBLLIB, LBLD10 and MACRO
(or MACD20) packages.
LBLD10.FOR The computer dependent subroutines which are
needed by the ENVELO, LABELS, MRGADR and SPLICE
programs. The routines in this package evaluate
file names typed by the user, open and close
files, and convert contiguous spaces to tab
characters. These routines are dependent upon
the hardware, operating system and run-time
library of the computer being used. This
version is for the DECsystem10 computer or for
use with the TOPS10 emulator on the DECsystem20
computer. These routines should be easily
modified for use on other computers.
36 Mailing Address System
LBLHLP.RNO Rough text used to construct the help messages
for the LABELS program. This file must be
processed by the FORMAT program to produce the
FORTRAN source of the LBLHLP routine. If this
file is modified so as to change the number of
lines in any message which is issued after the
addresses start to be typed on the terminal,
then the amount by which the KNTOUT variable is
incremented after the message must be changed
accordingly in the LABELS main program.
LBLLIB.FOR The computer independent subroutines which are
needed by the ENVELO, LABELS and SPLICE
programs. The routines in this package evaluate
the commands typed by the user, read the file
specifying the components of the addresses and
construct the addresses from their components.
MACRO.FOR A non-functional FORTRAN version of some useful
but non-essential routines. If functional,
these routines would set terminal output
characteristics and turn off the exit messages
from FORTRAN programs.
MACD20.MAC An assembly language version of the routines
which set terminal output characteristics and
turn off the exit messages from FORTRAN
programs. This version is for the DECsystem20.
The file named MACRO.FOR contains a
non-functional FORTRAN version of these
routines.
MAIL.DOC The instruction manual for the programs in this
package. This was produced by processing the
rough text in the MAIL.RNO file using the FROFF
word processing program. FROFF is a FORTRAN
program which was written by the same author as
the programs in this package.
MAIL.RNO Rough text which produces the instruction manual
for the programs in this package when processed
by the FROFF word processing program. Minor
changes would be necessary if this file is to be
processed by RUNOFF.
MRGADR.CMD Command file used to load the MRGADR program on
the DECsystem10 or DECsystem20 computers.
MRGADR.FOR The source of the MRGADR program. This file
must be loaded with the LBLD10 package.
SPLICE.CMD Command file used to load the SPLICE program on
the DECsystem10 or DECsystem20 computers.
List of Files Forming This Package 37
SPLICE.FOR The source of the SPLICE program. This file
must be loaded with the LBLLIB, LBLD10 and MACRO
(or MACD20) packages.
SPLHLP.RNO Rough text used to construct the help messages
for the SPLICE program. This file must be
processed by the FORMAT program to produce the
FORTRAN source of the SPLHLP routine.
TEST01.ADR Short address file which contains previously
formatted addresses separated by lines which
start with periods.
TEST02.ADR Short address file which specifies the
components of the addresses on lines which start
with at sign character pairs.