Text preview for : C28-0354-2_tapeSort.pdf part of IBM C28-0354-2 tapeSort IBM 140x C28-0354-2_tapeSort.pdf



Back to : C28-0354-2_tapeSort.pdf | Home

File No. 1410/7010-33
Form C28-0354-2




Systems Reference Library




IBM 1410/7010 Operating System (1410-PR-155)
Generalized Tape Sorting Program-1410-SM-971


The Gencralized Tape Sorting Program consists of a
set of relocatable routines and a separate routine called
the Sort Definition program. This publication provides
the 1410/7010 Operating System user with the detailed
infDrmation necessary for implementation of the sort-
ing program.
In addition to providing general information on the
sorting program, and data on its features and specifica-
tions, this manual describes the nature of the Sort
Definition program, the control cards used to form a
sort or merge program, how the program is modified
via control cards at object time to fit the particular
application, and how the user includes his own pro-
gramming to perform modifications.
MAJOR REVISION ( JULY 1965)
This publication is a major revision of IBM 1410/7010 Operating
System; Generalized Tape Sorting Program, Forms C28-0354-0
and -1. The original publications and associated Technical
Newsletters, N28-1130, N28-1155, and N28-1192, are made
obsolete by this revision. Text changes are indicated by a vertical
line at the left of the affected text.




Copies of this and other IBM publications can be obtained through IBM Branch Offices.
Address comments concerning the contents of this publication to:
IBM Corporation, Programming Systems Publications, Department 637, Neighborhood Road, Kingston, New York 12401
COI,tents




Introduction ............................................................................ 5 CNTLFLDS Parameters ............................................................ 21
Purpose of the Publication .. ........................................ 5 LABELDESParameters ................. .......................................... 22
Purpose of the Program .............................................. 5 Operating Information .............................................................. 23
Prerequisite Information and Related Literature 5 Sort or Merge Output File Designation .............................. 24
General Organization of the Program ............... .................. 5 Unusual End of Program ................ ........................... 24
Messages . .. .......... .. ......................... ...... ...... ...... ......... ... . 24
Features and Specifications ......................... .. 7
Program Description ......................................................... 28
Features of the Generalized Tape Sorting Program 7
The Sort Definition Program .. .. .. .. ...... .. .. .... 28
Equipment Requirements .............. . 7
Phases of the Sort or Merge Programs ... ............................. 28
Basic Machine Requirements . 7
General Assignment Phase ..... .... ...... ............................... 28
Tape Unit Requirements 7 Phase 1 .............................................................................. 28
Input Specifications .... 8
Phase 2 ............................................................................. 30
Input Data-Record Formats 8 Phase 3 and the Merge .......... ........ ...................... 30
Parity and Mode ......................... .. 8
Sort Capacity ........................... .. 8
Output Specifications ... . 8 Program Modification ...................................................... . 32
Output Data-Record Formats 9 General Information .... .................................................... . 32
Parity and Mode .... 9 General Procedure .................... . 32
Output Considerations 9 Inclusion of Added Programming ... 32
Control Data ..................... .. ......................... . 9 Execution of Added Programming 33
Padding ................................................. . 9 Information on Implementation 33
Tape-Label Options ................... .. ..................... . 10 Storage Requirements ....... . 33
Input/Output Error Correction Options 11 Index Register Conventions 33
Checkpoint and Restart ................. . 11 Sort Common Area ................ . 34
Linkage Symbols .... ............................................ . 46
Input/Output Modification ................................................ . 47
Program Definition .... ........... 12 Record Length Changes by the Sort or Merge Program ... . 48
Control Information . 12 Exit Point Descriptions ....................................... . 48
Sort Definition Card ............ ......... .............. .... 12 General Assignment Phase Exit Points ................ .. 48
Unit Definition Card .......................... 13 Phase 1 Exit Points. . ................ . 49
Sort Definition Program Operation ....... . ............. 14 Phase 3 and the Merge Program Exit Points .. 51
Messages' ......... ....................... 15
Glossary 55
Program Operation ..... 16
Preparation of Control Cards .. 16 Appendix: Timing Information 57
Format Description .. 16 Terms and Symbols ... 57
Control Card Types . 16 Timing Formulas 57
SORTTYPE Parameters 17 Timing Tables ................................. 61
IN~UTFILE Parameters 18 General Description 61
OUTPUTFILE Parameters ............................. . 20 Listings 63
Introduction




Purpose of the Publication To more fully understand the input/output aspects
This publication provides the IBM 1410/7010 Oper- of the program, the user should be acquainted with the
ating System user with detailed information necessary functions of the IOes; these are described in the publi-
for implementation of the Generalized Tape Sorting cation, IBM 1410/7010 Operating System; Basic Input/
Program. The "Introduction" and "Features and Speci- Output Control System, Form C2S-0322. Additional
Hcations" sections of this reference manual aim to material on the Sort Definition program, a separate
:familiarize the user with the program and its capabili- routine within the Generalized Tape Sorting Program,
ties; the "Program Definition" and "Program Opera- can be found in the publication, IBM 1410/7010 Oper-
tion" sections provide instructions on how to define ating System; Systcm Gcneration, Form C2S-03.52.
and produce absolute programs, and how to execute
them; and the "Program Description" and "Program
Modification" sections describe the structure of the General Organization of the Program
program and how the user may incorporate his own The Generalized Tape Sorting Program, as supplied by
additional programming, if desired, into the programs IBM, consists of a set of relocatable subroutines, here-
produced. after called "modules," and a separate routine callcd
the Sort Definition program. A sort or merge program
Purpose of the Program (see "Glossary" for definitions of sort, merge, and sort/
The Generalized Tape Sorting Program, a component merge) for a specific application is produced in two
of the IB~I 1410/7010 Operating System, functions general steps:
under the control of the System :Monitor and utilizes 1. Acting upon information provided through pa-
the Resident IOes. The purpose of the program is to rameter designations in user-supplied control cards, the
supply the subroutines required to produce a number Sort Definition program determines which modules arc
of absolute programs that will satisfy an installation's required for the type of sort or merge program desired.
sort and merge requirements. These modules will be combincd into an absolute pro-
gram through use of the Linkage Loader. There are
Prerequisite Information and Related Literature eight different types of sort programs and eight types
The reader of this publication should have experience of merge programs that can be created. A user can
in programming for either the IBM 1410 or 7010 Data create as many sort/merge programs as necessary for
Processing System, and should possess an understand- his applications. (Sec the "Program Definition" section,
ing of basic sorting techniques. lIe should also be fa- and "Sort Definition Program," under "Program De-
miliar with the information contained in the following scription." )
publica tions : 2. At object time, the sort or merge program created
IBAt 1410/7010 Operating System; Basic Concepts, (or, if several are created, the one selectcd), acting
Form C2S-031S upon control card information supplied by the user,
IBnt 1410/7010 Operating System; System n1onitol', adjusts itself to meet the requirements of the specific
Form C2S-0319 application. (See the "Program Opcration" section.)




Introduction 5
Figure 1 illustrates the general method by which a
sort or merge program is created.
A sort program is divided into four phases: the Sort Definition \----_ _ _ _ _---,
Sort Definition
General Assignment Phase, Phase 1, Phase 2, and Control Cards(SIU) Program
Phase 3. The General Assignment Phase does the initial
housekeeping for the sort program; Phase 1 performs
the internal sorting; Phase 2 merges the output se-
quences from Phase 1 until the number of sequences is
equal to or less than the merge order (when the merge Linkage
Loader
is unbalanced, the number of sequences must be equal
to or less than the merge order of the output file of
the completed pass); and Phase 3 performs the final
merge pass for the sort. A merge program consists of
the General Assignment Phase and Phase 3. ( The
Sort EXEQ Card
phases of the sort/merge programs are described in Read by Monitor
the "Program Description" section.)




Sort Control Tape Sort/Merge
Cards (SIU)




Figure 1. Creating a Sort or Merge Program




6
Features and Specifications




.Features of the Generalized Tape Sorting Equipment Requirements
Program
Basic Machine Requirements
To facilitate program scheduling within the Operating The Generalized Tape Sorting Program requires eithcr
System, the Generalized Tape Sorting Program permits an IBM 1410 with 40,000, 60,000 or 80,000 positions of
input from tape unit ( s) on either channel or from the core storage and the Processing Overlap and Priority
Standard Input Unit (SIU). The program will use any special features; or an IBM 7010 with 40,000, 60,000,
merge tape units specified by the user. Output of the 80,000 or 100,000 positions of core storage. One data
sort program will be on one of the two merge files transmission channel will satisfy the minimum require-
(see "Glossary") specified. The output file address ments of the program. However, the program attains
will be placed in the IPI field (see the System Monitor optimum efficiency when two data transmission chan-
publication) in the Resident Monitor for use as input nels are used; it will automatically take advantage of
by a subsequent program. the overlap of reading and writing with processing
Data records may be unblocked or blocked fixed- made possible by having two channels.
length records, or unblocked or blocked variable-length
records. Tape Unit Requirements
The blocking used during intermediate passes by the The required and optional tapc units used by thc pro-
sort program is independent of the blocking of the gram are shown in Figure 2. IBM 7330, 729 II, 729 IV,
input file, the blocking of the output file, and the num- 729 V, and/or 729 VI Magnetic Tape Units can bc
ber of records internally sorted at one time. used.
The control data word upon which the sort or merge The four units (three if an unbalanced merge is
program is based can consist of as many as ten control used) required for the merging tapes, plus the unit
data fields" Maximum length of each such field is 999 required for the System Opcrating File, can be thc
characters. The control data fields can be contiguous five tape units (four if an unbalanced merge is
or scattered throughout the record, but must not used) specified as the minimum requircd for the
overlap. Function Number of Units Required
In each phase a limited amount of core storage can
Program Tape Unit (MJB) One (Not required if the program is
be occupied by user-written subroutines. stored on the System Operating file,
Linkage points are provided at logical junctures in or on disk storage in a disk-oriented
system.)
the program to facilitate the performance of non-
sorting functions, such as the alteration, addition, de- Merging Tape Units m tape units for each of two merge files,
(for sort program only) where m is the merge order employed in
letion, summarization, expansion, or contraction of Phase 2 (a minimum of four tape units).
data records, and the activation of IOCS 1abel and error If an unbalanced merge is used, m tape
units for one merge file and m' tape
exits for the user's special processing routines. units for the other merge file (a mini-
The merge order in the sort program can be from mum of three tape units). The program
will operate if all the tape units are on
two to five in a balanced merge, or from one to five one channel. All the units for one
in an unbalanced merge; the desired merge order is merge file need not be on the same
communicated to the sort program via control cards. channel.

The merge order for the merge program can be from Sort Program One, for one reel of input; one or more,
one to eight. Input Tape Unit(s) for two or more reels of input, on either
channel. Merging tape units may be used.
The program will sort in either ascending or de- No input tape units are required if the
scending standard BCD Interchange Code collating se- input is from the SIU.

quence, as specified in the control information supplied Merge Program Input One for each merge program input fi Ie
by the user. Tape Unit(s) (multiple units may be used for each file).
The option of having checkpoints taken can be Sort Program Output None (merging tape units will be used
specified through the control information. These check- Tape Unit(s) for output from the sort program) .
points are taken by means of the Resident IOCS check- Merge Program Output One (multiple units may be used).
point routine. Restart procedures are provided by the Tape Unit(s)
System Monitor. Figure 2. Tape Unit Requirements

Features and Specifications 7
Operating System. Any other tape units required dur- Merge Maximum Data-Record Length (In Characters)
ing the operation of the program must be in addition Order Per Core-Storage Size
40,000 60,000 80,000 100,000
to these. In a disk-oriented system, the four tape units Positions of Positions of Positions of Positions of
(three if an un balanced merge is used) required for Core Storage Core Storage Core Storage Core Storage
the merging tapes must be in addition to the basic 2 4,800 8,800 9,989 9,989
system requirements. A description of the Operating 3 4,400 8,400 9,989 91. 989
System machine requirements can be found in the 4 3,600 7,000 9,989 9,989
5 3,100 6,000 8,800 9,989
publication System GeneTation. 6* 2,800 5,300 7,800 9,989
7* 2,500 4,700 7,000 9,200
8* 2,300 4,300 6,300 8,300

Input Specifications * Merge program onl y

Input data may be unblocked or blocked fixed-length Figure 3. Maximum Sort Data-Record Length
records, or unblocked or blocked variable-length rec-
ords. The input file may be on any specified tape units 2. Only single input areas are being used by the
or the SIU. program.
3. The size of the Resident Monitor is 11,500 posi-
Input Data-Record Formats tions.
A detailed description of the required formats for input 4. Single control data fields are specified.
data records appears in the publication Basic Input/
Parity and Mode
Output Control System. For the Generalized Tape
Sorting Program, unblocked variablc-Iength data rec- Input data records can be read in even or odd parity,
ords, with or without a Block Character-Count field and can be read in Move or Load mode. Within the
may also have Record Character-Counts specified: sort program, records are processed in the Load mode.
Form 3 fixed-length records must be handled by de- If input data records are read in the Load mode
fining them to the sort or mcrge program as Form 1 there must be a word mark in the high-order position of
records (the record length specified will include the each control data field specified; no other positions in a
four-position Block Character-Count field). control data field can have word marks. The absence
The program will accept data records containing any of a word mark in the high-order position of a control
valid 1410/7010 characters, with the following restric- data field, or its presence in any other position of the
tions: field, can result in undetected sequencing errors.
1. A record mark can appear only as the last char- If input data records are variable length and are
acter of a record. read in the Load mode, there must be a word mark in
2. Group marks with word marks must never appear the high-order position of the Block Character-Count
in a record, and group marks or word separator char- field and the Record Character-Count field, if these
acters must not appear in the high-order position of fields are part of the record.
any control data field. Sort Capacity
The minimum permissible tape record length is 13
The maximum capacity of the sort program is one full
characters. The maximum permissible tape rccord
reel of records at sort blocking less than the merge
length is 9,989 characters. If the sort program is nm
order (m-l, where m represents the merge order). In
under control of the Tele-processing Supervisor, it is
an unbalanced merge, m represents the smaller of the
recommended that the maximum tape-record length bc
two merge orders. While it may be possible to sort up
less than 3,000 characters. The user may specify on the
to m full reels, successful complction of such a program
SORTTYPE control card (see the "Program Operation"
cannot be assured. In an unbalanced merge, when the
section) the maximum sort blocking or sort block
smaller of the merge orders is one, the maximum ca-
length of tape records to be used during the Phase 2
pacity is one full reel at sort blocking.
merge passes of the sort program. The minimum per-
missible data-record length for variable-length records
is 13 characters. The maximum permissible data-record Output Specifications
length depends on available core storage in each of the Output records must conform to the same form, con-
three phases. The estimates of maximum data-record tent and length specifications as input records. The
lengths shown in Figure 3 are based on the following sort program output file will be on one or more of the
assumptions: merge work tapes. For a merge program, the user
1. No space has been reserved in any phase for specifies the symbolic unit on which the output file is
added programming. to be written.

8
(Output Data-Record Formats
Output Record Fa rms
The output blocking factor is indcpendent of the input Form 1 Form ~'? m 3 Form
blocking factor and the sort blocking factor. For fixed- Fixed Var 2 Var 4
Fixed - - 1 - - - f---~

length records, any output blocking factor that can be Yes Yes
accommodated by available core storage may be speci- tE 0 Yes Yes 3
fied. For blocked variable-length records, any tape >
record length not less than the sum of the maximum
data-record length (including the Record Character-
Count field and record mark) plus four (the Block
Character-Count field), and capable of being accom-
3
modated by available core storage, may be specificd. .-
Yes Yes

Blockcd records may be specified as output from a
sorting application in which the input consists of un- Yes 1 Yes
----
blocked fixed-length data records not ending with a --




NOTE 1: Only if the Record Character-Count field is such that it becomes
record mark. In this case, the sort program will auto- the Block Character-Count field of the output records.
matically increase the output data-record length by NOTE 2: Form 3 fixed-length records should be defined to the program as
Form 1 records that include the four-position Block Character-
onc to accommodate the necessary record mark. Count field as part of the record.
Unblocked fixed-length data records without a ter- NOTE 3: For a merge I a Record Character-Count must be specified.-
minal record mark may be specjfied as output from a
Figure 4. Acceptable Input/Output Hccon1 Formats
sorting application in which the input consists of
blocked records or unblocked records with a terminal
record mark. In this case, the sort program will auto-
matically decrease the output data-record lcngth by
one, dropping the final record mark. Output Considerations
Unblocked variable-length records, either with or
Conversion of data records from fixed-length to vari-
without a terminal record mark, may be specified as
able-length format, or from variable-length. to fixcd-
output from an application in which the input consists
length format, may be accomplished through the use
of blocked variable-length records. Conversely, blocked
of modification exits in cithcr Phase 1 or Phase 3 (scc
variable-length records may be specified as output
"Program Modification"). However, the specific sort
from an application in which input consists of un-
program incorporating cither type of conversion must
blocked variable-length records. In either case, the
be one defined at Sort Definition as a variable-length
program will increment or decrement thc Record
sort.
Character-Count field as necessary. In the case of a
In a sorting application in which some of the records
sort, if unblocked variable-length input and blockcd
have equal control data fields, the input order of the
variable-length output have been specified, and a Rec-
equal records may not necessarily be maintained.
ord Character-Count field has not been specified, the
sort program will add a four-character Hecord Char-
acter-Count field as the first four characters of each
Control Data
data record. The allowable output formats for each of
the input formats arc summarized in Figure 4. The control data word upon which the sort or merge is
based may be as long as 9,989 characters and may con-
Parity and Mode sist of as many as ten control data fields. Maximum
length of any single control data field is 999 characters.
Output data records can be writtcn in even or odd
The control data fields may be contiguous or they may
parity; they can be written in Move or Load mode. If
be scattered throughout the record; however, they
the output data records are written in Load mode,
must not overlap. All control data fields for variable-
there will be a word mark in the high-ordcr position of
length records must lie within the minimum data-
each control data field spccified.
record length.
If the output data records are variable length and
written in Load mode, and the Block Character-Count
and Record Charactcr-Count fields are part of the out-
put tape record, there will be a word mark in the high- Padding
order positions of these fields. If input was in Load \Vhen fixed-length records are blocked and the Hum-
mode, word marks in the input data will be carried ber of data records in a file is not evenly divisible by
through to thc output data. the blocking factor, padding records are necessary.

Features and Specifications 9
These padding records must meet the normal require- the low padding records appearing as the first records
ments for blocked fixed-length data records: they must of the block. Similarly, a block containing high pad-
all be the same length and they must end in a record ding, if present, will always appear as the last block of
mark. In addition, if the input or output files arc in the output file, with the high padding records appear-
Load mode, the padding records must have word ing as the last records of the block.
marks in the high-order position of each control data Phase 3 will add padding records if the total number
field. Since padding is never used with variable-length of output data records is not evenly divisible by the
records, the program automatically eliminates all pad- output blocking factor. When Phase 3 is required to
ding checks whenever the output is to be in variablc- check for high padding records, a calculation is made
length format. of the number of data records that can be processed
With the exception of the terminal record marks, before starting the check. This calculation is based on
padding records consist entirely of blanks or entirely the assumption that no more than one block in each
of nines. \iVhen checking for padding, the program will input reel contains high padding records. For a merge,
not treat a record as padding if it contains any charac- the assumption is that no more than one block in each
ters other than blanks or any characters other than input file contains high padding records.
nines, even though its control data fields consist en-
tirely of blanks or entirely of nines.
For an ascending sort or merge program, a low pad-
ding record is one consisting entirely of blank charac- Tape-Label Options
ters (except for the terminal record mark), and a high The program provides for processing 1410 SO-character
padding record is one consisting entirely of nines tape labels or IBM Standard 120-Character tape labels,
(except the terminal record mark). For a descending by the rocs tape label routines that are contained in the
sort or merge program, nines records are low padding Hcsidcnt rocs. The sort or merge program itself pro-
and blank records are high padding. vides none of the tape-label routines. Nonstandard
The program will handle padding records according labels may be processed through the use of modifica-
to the padding option specified in the OUTPUTFILE (sec l ion exits provided in the File Table Extensions (see
"Program Operation") sort/merge control card, as "Program Modification"). Format specifications for
follows: standard labels and the recommended tape labeling
practices arc described in the publication, Basic Input/
PADDING OPTION DESCRIPTION
Output Control System. The programs created from
V 1 The program will not check for padding
records. High padding records will be the Generalized Tape Sorting Program will also handle
added if required. tapes that contain no labels.
2 All low padding records and all full The various tape-label options apply to all tapes
blocks of high padding records will bc used by each sort or merge program created. For ex-
dropped. Addcd padding, if required,
will be high padding. ample, if 1410 80-character labels are specified, all
3 Full blocks of high padding and low input tapes, merge tapes, and output tapes must have
padding will be dropped. Added pad- 80-charactcr labels. If the tapes contain some 80-
ding, if required, will be low padding.
This option is invalid for a merge pro-
character and some 120-character labels, or some tapes
gram in which the total file size has not do not have labels, then the labels must be treated as
been specified. If the file size is changed nonstandard and handled through user modifications
by Phase 3 modifications, high padding
may be added.
to the sort program. :Modification exits may also be
4 Full blocks of low padding will be used for additional label routines that the user may
dropped. Added padding, if required, wish to include. The options for handling labels on
will be low padding. This option is in- tapes used by the sort or merge are shown in Figure 5,
valid for a merge program in which the
total file size has not been specified. If
the file size is changed by Phase 3 modi-
fications, high padding may be added.
5 Full blocks of low padding and high Option Code
padding will be dropped. Added pad-
ding, if required, will be high padding. IBM 1410 BO-Character Labels 1
6 Full blocks of high padding will be
IBM Standard 120-Character Labels 2
dropped. Added padding, if required,
will be high padding.
Nonstandard Labels 3
A block containing low padding, if present, will
always appear as the first block in the output file, with Figure 5. Tape-Label Options

10
together with the codes used to specify the desired ther error correction routines are desircd, thcy may he
options in the TYPELABEL parameter of the LABELDES inserted into the sort program through the user's modi-
control card (sec "Program Operation"). fication exits (see "Program Modification"). The Resi-
The fields to be llsed in processing input/output dent IOes will exit to the proper error correction rou-
tape labels are entered into the File Table Extensions tines when an uncorrectable input/output error occurs.
by use of the LABELDES control card. Parameters are
also included in the LABELDES control card to inform
thc IOes which label fields to check if IBM 1410 80- Checkpoint and Restart
character labels or IBM Standard 120-Character labels
The routine for writing checkpoint records is provided
are being used. If nonstandard labels are used, the
by the Resident IOes, and is described in the publica-
LABELDES control card may be used to fill in the label
tion Basic Input/Output Control System. The sort/
fields in the File Table Extensions, but label checking
merge program ( s) created will write checkpoint rec-
must be done through user modifications to the sort or
ords if the user so specifies. Checkpoints will be taken
merge program.
during the execution of the program at the following
points:
1. At the start of Phase 1, prior to the opening of
the input file.
Input / Output Error Correction Options 2. At the start of each Phase 2 pass, prior to the
The sort/merge program (s) specifies in the IORW Chan- opening of the merge file providing input to the pass.
nel Status Characters that all detectable input and out- 3. At the start of Phase 3 or the merge program
put error conditions should be tested for. Unreadable prior to the opening of the merge file or input files.
input records in the sort program in any phase seldom The program can be restarted from the last check-
occur bccause of the automatic Read-Back feature of point through the use of the System Monitor restart
the 729 and 7330 tape units. Whenever an input tape routine. The details for restarting from a checkpoint
record is unreadable, however, the Resident IOes pro- can be found in the publication, IBAf 1410/7010 Oper-
vides routines that: (1) accept the record as is, or ating System; Operator's Guide, Form C28-0351. When
(2) bypass the record in error. the sort program is operating under control of the
The sort program utilizes the standard error correc- Telc-proeessing Supervisor, the checkpoint facility can-
tion proccdures included in the Resident IOes. If fur- not be used.




Features and Spedfications 11
Program Definition



The function of the Sort Definition program is to selcct Card Collimns 6-15: Program Identification - This
thosc relocatablc modules required to form thc typc of field contains the name by which the sort or merge pro-
sort or merge program dcsired by the user. The Sort gram produced will bc identified. The name can be
Definition program produces a set of card-image rec- one to ten alphameric characters in length, left-justified
ords that is used to spccify to the Linkage Loader thc in the field. The first character must be alphabetic, and
modules required. Thcsc records arc written on sym- no special characters are allowed.
bolic unit Mw2, which must bc assigned as a tape unit This name will bc used in the System Monitor EXEQ
by thc user. By mcans of the INPUT control card, the card that effects the loading and cxecution of the pro-
, user directs the Linkage Loader to take its input from gram. If the produced sort or merge program is to be
this unit. User modifications may be inscrted into vari- included as a phase of a larger program, this field
ous locations in the produced sort or mergc programs must be left blank.
by the user's placing his own relocatablc routincs (or Card Columns 16-20: Card Identification - Thc
the appropriate CALL statements if the desired routincs Sort Definition card is identified by the mnemonic
have becn placed on the Go HIe or in thc sort modulc DSORT.
library) on the SIU following the Sort Definition control Card Columns 21-72: Parameter List -- The infor-
cards. (These procedurcs are describcd in "Program mation in this ficld will define the sort or merge pro-
Nloclification." ) gram to be produced. Thc field may be left blank or
contain from one to five parameters. If the user desires
to incrcase thc mnemonic value of any parameter, he
can expand the parametcr to a maximum of ten char-
Control Information acters; each parameter can also be reduced to its first
three characters.
The Sort Definition program, acting upon specifica-
The paramctcrs must be separated by commas and
tions provided by the user, determines which modules
may appear in any order. No intervening blanks arc
will be required for the program desired. The uscr
permittcd in the parameter-list field. Paramcter analy-
communicates these specifications to the Sort Defini-
sis terminates on recognition of the first blank charac-
tion program by means of two control cards: the Sort
tel'; furthcr infonna tion in the card will be ignored.
Dcfinition card and the Unit Definition card. Functions
vVith the exception of pcn (see below), each of thc
of thesc cards and the parameters that may bc speci-
possible parameters can be one of two choices; ab-
fied are explained in the following subsections.
sence on the control card of both choices results in the
The Sort Definition program processes a Sort Dcfi-
selcction of the first of the alternatives. Therefore, if
nition card and Unit Definition card as a pair. A num-
the first paramcter alternative is desired, the user nccd
bcr of these pairs may be used during one cxecution of
make no entry for that pair on the control card.
the Sort Definition program to produce as many sort/
Parameters that may be specified are as follows:
merge programs as there are pairs of cards; however,
if a pair does not contain one card of cach type, the SORT - The modules the Sort Definition program selects will
program intended will not be defined. Either the Sort be those for a sorting program. If neither SORT nor
MERGE is specified, SORT will be assumed.
Definition or the Unit Definition card may appcar first
MERGE - The program desired is a merge.
in the SIU. When one card of each type is found, the FIXED - The program desired will process fixed-length data
program proceeds with the definition of the desired records. If neither FIXED nor VARIA is specified,
sort or merge program. FIXED will be assumed.
VARIA - The program desired will process variable-length
data records.
MUL TI - The program desired will process records that con-
Sort Definition Card
tain a control data word consisting of one or more
The purpose of the Sort Definition eard is to enable control data fields. If neither MULTI nor ONE is
the user to specify the parameters for the desired sort specified, MULTI will be assumed. (Single control
data fields can be processed with MULTI specified,
or mcrge program, and to establish a name for the but with less efficiency than if ONE were specified.)
specific program to be produced. The format of the ONE - The program desired will process records that con-
Sort Definition card and the parameters that may be tain only one control data field. This parameter will
specified are described below. cause the Sort Definition program to omit from the
sort or merge program the instructions and modules
Card Columns 1-5: These columns are unused. necessary to handle multiple control fields.

12
UNMOD - The program clesired will eontain only the modules of symbolic units arc fully described in the publication
selected, and no user-written routines. This param- System "Pr1onitot'. The symbolic names are separated by
eter instmcts the Sort Definition program not to look
for adcled programming. If neither UNMOD nor commas with no intervening blanks. Parameter analy-
MOD is specified, UN MOD will be assumed. sis terminates on the recognition of the first blank char-
MOD - The program desired will eontain the user's routines acter, and further information on the card is ignored.
in addition to the modules selected. This parameter
instructs tIle Sort Definition program to look for and
The order in which the symbolic units arc placed in the
include added programming supplied by the user. DUNIT card is of prime significance, and the order re-
If no addcd programming has been included, the quired for a sort program differs from the order re-
Sort Definition program will change this designation
quired for a merge program.
to UNMOD. The nature of added programming and
how it can be incorporated through the Sort Defini- Card Columns 73-80: These columns are unused.
tion program are discussed in "Program Modifi-
cation." SORT PARAMETERS (PLACED IN THE PARAMETER-LIST
PCH - If this parameter is included, the Sort Definition
program will place its output on the Standard Punch
FIELD, COLUMNS 21-72)
Unit (SPU) as well as on the normal output unit, The first parameter designatcs the symbolic unit to
MW2. This punched output can be used as input to
the Linkage Loader from the SIU to produce the which the sort input RIe will be assigned. If the input
same sort or mergc program during subsequent mns. is to be from the SIU, a symbolic unit must be desig-
nated here. At object time, the user specifics SIU in the
Card Columns 73-80: These columns arc unused.
INPBLKNG parameter on the INPUTFILE control card.
Example: In order to: (a) define an unmodified sort
Thus the sort program(s) defined can have either tape
program that will process variable-Icngth records with
or SIU input, depending on the user's course of action
multiplc control fields; (b) give the rcsultant program
at object time.
the name SORTTEST; and (c) have the output from the
The second parameter designates the symbolic unit
Sort Dcfinition program punchcd out, as wcll as writ-
to which the user will assign the physical tape units
ten on Mw2, the Sort Definition card shown in Figurc
that will be considered the first set of merge tapes. In
6 could be used:
a balanced merge, the number of physical units re-
Co1- quired is equal to the ordcr of the merge to be per-
umn: 13 16 21 41 formed. In an unbalanced merge, the number of physi-
SORTTEST DSORT SORT,VARIABLE,MUL,PCH
cal units required is equal to the greater order of
Figure 6. Example of the Sort Dcflnition Card merge to be performcd. The physical units assigned
must be different from those assigned for input. For
NOTE: 1. Thc program will assume UNMOD had optimum efficicncy the units assigned to this symbolic
bccn indicatcd, since ncither it nor the unit should not be on the same data channel as the
parameter MOD appears. input units.
2. The parameter VAHIA has bccn cxpanded The third parameter designates the symbolic unit
to increase its mnemonic value. to which thc user will assign the physical tapc units
3. The paramctcr MULTI has bccn con- that will be considered the second set of merge tapes.
dcnsed to thc first three characters. In a balanced merge, the number of physical units
required is equal to the order of thc merge to be per-
formed. In an unbalanccd mcrge, thc number of physi-
Unit Definition Card cal units requircd is equal to the lesser order of merge
The function of the Unit Definition card is to specify to be performed. The physical units assigned must be
the symbolic input and output units. The format of the either ccnnpletcly different from or completely identical
Unit Definition card and thc permissible parameters to those assigned to the input unit. For optimum effi-
are discussed below. ciency the units assigned to this symbolic unit should
Card Columns 1-5: These columns arc unuscd. not be on the same data channel as those assigned as
Card Columns 6-15: This field must be blank. the first set of merge tapes.
Card Columns 16-20: Card Identification - The Initial input to Phase 1 will bc from the symbolic
Unit Definition card is identified by the mnemonic unit designated in the first parameter, unless the user
DUNIT. specifics SID in the IXl'BLKNG parameter of the INPUT-
Card Columns 21-72: Parameter List - This field FILE control carel. Phasc 1 output is to the first set of
specifics the symbolic input and output tape units for merge tapes, spccified by the symbolic unit in the
the sort or merge program to be produced (sec below). second parameter. The first pass of Phase 2 will be
The symbolic units are designated by system symbols, from the first set of merge tapes to the second. Subse-
starting in column 21, without initial and final slashes quent passes of Phase 2 will alternate the direction
(e.g., Mw1 instead of jMw1j). The function and usc of the merge. Depending on the number of merge

Program Definition 13
passes made by Phase 2, the output of Phase 3 may be Col-
umn: 16 21
on either the second or third symbolic unit. CREAT TSRTDEFIN
Example: To have input to a sort from MRl, with
Figure 10. Control Card for Relocating the Sort Definition
MR2 as the first set of merge tapes and MR3 as the sec- Program (Program Placed on SGF or SOF)
ond set of merge tapes, the Unit Definition card shown
in Figure 7 would be used. Once the Sort Definition program has been relocated
Col- through use of the Linkage Loader, it may be executed
umn: 6 16 21 31 with the cards shown in Figure 11.
blank DUNIT MRl,MR2,MR3
Figure 7. Example of a Unit Definition Card for a Col-
Sort Program umn: 16 21




MERCE PARAMETERS (PLACED IN THE pARAMETER-LIST MON$$ EXEQ SORTDEFINE
FIELD, COLUMNS 21-72) ... (name) .. DSORT ... (parameters) .