IBM and third-party sort programs. The SORT or MERGE statement defines the sort keys— the fields on which the data is to be sorted or merged. This statement identifies the position, length, and data type of each key. The RECORD statement describes the format and length of the records in the input file. Other statements allow the user to specify which records should be included or excluded from the sort and specify other transformations to be performed on the data. Keys can be any combination of EBCDIC or ASCII character data, zoned or packed-decimal, signed or unsigned fixed-point binary, or hexadecimal floating-point. Keys can be located anywhere in the record and do not have to be contiguous. Sorting can be specified on any combination of ascending and descending sequence by key. The OS/360 sort program, IERRCO00, operates by dividing the input data into sections, sorting each section in main memory, and writing the sorted section to intermediate datasets on either direct-access storage devices (DASD) or magnetic tape. Final merge phases then merge the sections to produce the sorted output. SORT uses one of a number of techniques for distributing the sections among secondary storage devices. Usually SORT can choose the optimal technique, but this can be overridden by the user. SORT has three techniques that can be used if the intermediate storage is tape, and two if disk. The tape techniques are: Balanced (BALN) - more efficient if more tape drives are available for intermediate storage. Polyphase (POLY) - used if fewer tape drives are available for intermediate storage. Oscillating (OSCL) - uses more main storage. The size of the input dataset must be known or closely approximated. The disk techniques are: Balanced Direct Access (BALN) - uses three to six intermediate storage datasets. Crisscross Direct Access (CRCX) - uses six to seventeen intermediate storage datasets, requires twice the main storage of the Balanced Direct Access technique. Linkers OS/360 had only the Linkage editor, available in several configurations. DFSMSdfp added the Binder as an alternatives for load modules, and as the only option for program objects. Linkage Editor The Linkage editor creates and replaces load modules in a partitioned data set from a combination of control cards, object modules other load modules. It can rename or replace a control section (CSECT) and perform several other miscellaneous functions. It was originally available in several configurations depending on storage requirement, but the