Google
 

Trailing-Edge - PDP-10 Archives - AP-D489C-SB - sort.rnd
There are no other files named sort.rnd in the archive.
.VARIABLE TWENTY 2 1
\\
.LM0;.RM70;.F;.J;.FLAG CAP;.SP1;.TS5
<SORT.DOC -- ^CHANGES FROM <V3A(200) TO <V4(302).
.BR
^APR 1978
.FG30
^^COPYRIGHT (C) 1978 BY
.BR
DIGITAL EQUIPMENT CORPORATION, MAYNARD, MASS.
.B2
THIS SOFTWARE IS FURNISHED UNDER A LICENSE AND MAY BE USED AND COPIED
ONLY IN ACCORDANCE WITH THE TERMS OF SUCH LICENSE AND WITH THE
INCLUSION OF THE ABOVE COPYRIGHT NOTICE. THIS SOFTWARE OR ANY OTHER
COPIES THEREOF MAY NOT BE PROVIDED OR OTHERWISE MADE AVAILABLE TO ANY
OTHER PERSON.  NO TITLE TO AND OWNERSHIP OF THE SOFTWARE IS HEREBY
TRANSFERRED.
.B1
THE INFORMATION IN THIS SOFTWARE IS SUBJECT TO CHANGE WITHOUT NOTICE
AND SHOULD NOT BE CONSTRUED AS A COMMITMENT BY DIGITAL EQUIPMENT
CORPORATION.
.B1
DIGITAL ASSUMES NO RESPONSIBILITY FOR THE USE OR RELIABILITY OF ITS
SOFTWARE ON EQUIPMENT WHICH IS NOT SUPPLIED BY DIGITAL\\.
.AUTOPARAGRAPH			!PARAGRAPHS START WITH A LEADING SPACE
.T <SRT4.DOC
.PARAGRAPH 0, 1, 1		!SET NORMAL PARAGRAPHING
.AUTOPARAGRAPH			!PARAGRAPHS START WITH A SPACE
.TAB STOPS 9, 17, 25, 33, 41, 49, 57, 63, 69  !USUAL TTY TABBING
.PG.LM0.RM70.SP1.F.J
<SORT.DOC -- ^CHANGES FROM <V3A(200) TO <V4(302)
.B3.LM0.RM70
1.0##<SUMMARY
.BLANK
1.1##^FUNCTIONS
 <SORT IS THE HIGH PERFORMANCE SORT/MERGE PACKAGE FOR THE
<DEC
.NOSPACE
.IF TWENTY
<SYSTEM-20
.ELSE TWENTY
SYSTEM-10
.ENDIF TWENTY
.NOSPACE
\. <SORT MAY BE RUN AS A STAND-ALONE
SORT/MERGE, OR EMBEDDED IN A <COBOL OR <FORTRAN PROGRAM.
 ^THIS RELEASE, <SORT V4(302), CONTAINS ALL PUBLISHED EDITS UP TO AND INCLUDING EDIT 302,
HAS PERFORMANCE ENHANCEMENTS,
HAS THE CAPABILITY TO SEQUENCE CHECK MERGE FILES
.IF TWENTY
.NOSPACE
,
.ELSE TWENTY
AND
.ENDIF TWENTY
MAY SORT FILES VIA A NONSTANDARD COLLATING SEQUENCE
.IF TWENTY
AND NO LONGER REQUIRES THE COMPATIBILITY PACKAGE.
.ELSE TWENTY
.NOSPACE
\.
.ENDIF TWENTY
.IF TWENTY
.B 1
^HOWEVER BECAUSE OF THE NATIVE MODE COMMAND SCANNER VERSION 4 IS NOT COMPATIBLE
WITH VERSION 3. ^IN PARTICULAR THIS MEANS THAT ALL <BATCH AND <FORTRAN
<SORT COMMANDS WILL HAVE TO BE REWRITTEN.
.ENDIF TWENTY
.B2
1.2##^MONITOR
 <SORT RUNS UNDER ALL SUPPORTED MONITORS, AND HAS BEEN TESTED UNDER
.IF TWENTY
RELEASE 2 AND RELEASE 3
.ELSE TWENTY
6.03 AND THE 6.04 PROTOTYPE. ^IT HAS NOT BEEN TESTED ON A <KA-10 CPU
.ENDIF TWENTY
.NOSPACE
\.
.IF TWENTY
.BR
<SORT REQUIRES THE RELEASE 3 (OR LATER) COMPATIBILITY PACKAGE (<PA1050) IN ORDER
TO LOAD CORRECTLY.
.ENDIF TWENTY
 ^SEE SECTION 4 FOR DETAILS OF HOW TO REBUILD <SORT.
.B2
1.3##^SOFTWARE ^DEPENDENCIES
 ^THE STAND-ALONE SORT, <SORT.EXE,
REQUIRES THAT THE <FORTRAN
OBJECT TIME SYSTEM, <FOROTS.EXE, BE ON <SYS:, IF
FLOATING POINT <ASCII KEYS ARE TO BE USED.
 ^THE INTERNAL <COBOL <SORT REQUIRES VERSION 12 OF THE <COBOL
OBJECT TIME SYSTEM, <LIBOL.REL
.IF TWENTY
AND <LIBO12.EXE
.ENDIF TWENTY
, TO RESIDE ON <SYS:.
 ^THE INTERNAL <FORTRAN <SORT REQUIRES THE <FORTRAN
LIBRARY, <FORLIB.REL, AND THE OBJECT TIME SYSTEM, <FOROTS.EXE,
TO RESIDE ON <SYS:.
.B2
1.4##^RELEVANT ^DOCUMENTATION
 <SORT IS DOCUMENTED IN THE FOLLOWING MANUALS:
.IF TWENTY
.B;<DECSYSTEM-20 ^USER'S ^GUIDE, <AA-4179B-TM
.BR;<DECSYSTEM-20 <SORT/MERGE ^USER'S ^GUIDE, <AA-4186C-TM
.BR;<COBOL-68 ^LANGUAGE ^REFERENCE ^MANUAL, <AA-5057A-TK
.BR;<FORTRAN ^REFERENCE ^MANUAL, <AA-4158B-TM
.ELSE TWENTY
.B;<DEC<SYSTEM-10 <SORT/MERGE ^USER'S ^GUIDE, <AA-0997D-TB
.BR;<COBOL-68 ^LANGUAGE ^REFERENCE ^MANUAL, <AA-5057A-TK
.BR;<DEC<SYSTEM-10 <FORTRAN ^PROGRAMMER'S ^REFERENCE ^MANUAL, <AA-0944E-TB
 ^THESE MAY BE FOUND IN ^SOFTWARE ^NOTEBOOKS 7, 8, AND 9.
.ENDIF TWENTY
.PG.B3
2.0##<EXTERNAL <CHANGES
.B2
2.1##^SEQUENCE ^CHECKING OF <MERGE ^FILES
 ^THE <COBOL <MERGE STATEMENT HAS NEW SYNTAX [^^WITH SEQUENCE CHECK\\].
^WHEN ^^WITH SEQUENCE CHECK\\ IS SPECIFIED <SORT WILL CHECK THE RECORD
SEQUENCE OF THE MERGE FILES TO ENSURE THAT THEY ARE PRE-SORTED.
^THERE IS A NEW SWITCH /<CHECK TO ACCOMPLISH THE SAME CHECK IN THE
STAND-ALONE AND <FORTRAN <SORT.
.B 2
2.2##
.NOSPACE
.IF TWENTY
<DECSYSTEM-20
.ELSE TWENTY
<KL <DEC<SYSTEM-10
.ENDIF TWENTY
^PERFORMANCE ^IMPROVEMENT
 ^THERE IS A MINOR PERFORMANCE IMPROVEMENT VALID ON THE
.IF TWENTY
<DECSYSTEM-20.
.ELSE TWENTY
<DEC<SYSTEM-1080 (<KL10).
.ENDIF TWENTY
^THE <BIS INSTRUCTION <CVTDBO IS USED TO CONVERT DECIMAL TO BINARY FOR DISPLAY KEYS.
.IF TWENTY
^IN ADDITION, ALL ^^UUO\\'S HAVE BEEN REPLACED BY ^^JSYS\\'S IN
<DECSYSTEM-20 <SORT, WHICH PROVIDES A SIGNIFICANT PERFORMANCE
IMPROVEMENT (SEE SECTION 2.6).
.ENDIF TWENTY
.B 2
2.3##^ALTERNATE ^COLLATING ^SEQUENCES
 ^SUPPORT HAS BEEN ADDED FOR ALTERNATE COLLATING SEQUENCES.
^FILES MAY NOW BE SORTED VIA A NON-STANDARD COLLATING SEQUENCE.
^THE FOLLOWING NEW SWITCHES MAY BE USED TO SPECIFY THE DESIRED COLLATING SEQUENCE:
.LM+10
.B;</COLLATE:ASCII
.BR;</COLLATE:EBCDIC
.BR;</COLLATE:FILE:<FILE-SPEC
.BR;</COLLATE:LITERAL:'<STRING'
.BR;</COLLATE:ADDRESS:<ADDRESS
.BR;.!</COLLATE:
.!.NOSPACE
.!.IF TWENTY
.!<UPPER-
.!.ELSE TWENTY
.!<U
.!.ENDIF TWENTY
.!.NOSPACE
.!<ASCII
.BR;.!</COLLATE:
.!.NOSPACE
.!.IF TWENTY
.!<UPPER-
.!.ELSE TWENTY
.!<U
.!.ENDIF TWENTY
.!.NOSPACE
.!<EBCDIC
.LM-10
.B 1
.B 1
^THE <FILE SWITCH ARGUMENT IS A FILE-SPECIFICATION AND THE COLLATING SEQUENCE IS INPUT FROM THAT FILE.
^THE FILE CONSIST OF A STRING OF <ASCII CHARACTERS.
^THE CHARACTER'S OCTAL VALUE IS DETERMINED BY THE RECORDING MODE SWITCH ^^(SIXBIT A=41, ASCII A=101, EBCDIC A=301)\\.
^EACH CHARACTER IN THIS STRING, STARTING WITH THE LEFT MOST CHARACTER, IS ASSIGNED SUCESSIVE ASCENDING POSITIONS IN THE COLLATING SEQUENCE OF THE CHARACTER SET BEING SPECIFIED.
^THE CHARACTERS MAY BE A GRAPHIC, AN OCTAL VALUE OR A DELIMITER.
^THE DELIMITERS ARE DOUBLE QUOTE, COMMA, HYPHEN OR EQUAL SIGN.
^A GRAPHIC OR STRING OF GRAPHICS ARE ALWAYS ENCLOSED WITH DOUBLE QUOTES (^^"A",102,"CDE"\\).
^THE OCTAL VALUE REPRESENTS THE VALUE OF THE CHARACTER.
^THIS VALUE MAY NOT EXCEED THE VALUE WHICH REPRESENTS THE TOTAL NUMBER OF CHARACTERS IN THE SET.
^A HYPHEN (-) MAY BE USED IN PLACE OF A COMMA TO REPRESENT ALL OF THE CHARACTERS, FOUND IN THE NORMAL COLLATING SEQUENCE, BETWEEN THE CHARACTER WHICH PRECEDES AND FOLLOWS THE HYPHEN.
^AN EQUAL SIGN (=) MAY BE USED TO DENOTE EQUIVALENCE; THUS (="^D") CAUSES "^D" TO HAVE THE SAME POSITION IN THE COLLATING SEQUENCE AS THE PRECEDING CHARACTER.
.B 1
^ALL OF THE FOLLOWING ARE EQUIVALENT:
.BR
(^THE CHARACTER SET IS <ASCII)
.B 1
.I 10
^^"A","B","C","D","E"="G","Z"
.I 10
"A"-"D",105="G","Z"
.I 10
101-"D","E"=107,"Z"\\
.I 10
101-104,105=107,132
.B 1
^UNSPECIFIED CHARACTERS WILL BE TREATED AS THOUGH THEY HAD APPEARED AT THE END OF THE SPECIFIED CHARACTERS IN THEIR NORMAL ASCENDING COLLATING SEQUENCE.
^HENCE, A FILE CONTAINING THE SINGLE CHARACTER "Z" WOULD HAVE THE NORMAL COLLATING SEQUENCE WITH THE EXCEPTION THAT "Z" WOULD HAVE THE FIRST POSITION INSTEAD OF THE ONE AFTER "Y".
.B 1
^IT WILL BE EASY FOR THE USER TO ADD NEW INSTALLATION DEFINED COLLATING SEQUENCE SWITCH NAMES.
.B 1
^THE <LITERAL ARGUMENT IS JUST THE TEXT STRING THAT WOULD HAVE BEEN PUT 
IN A FILE-SPEC DELIMITED BY SOME CHARACTER (ANY CHARACTER NOT JUST ') THAT IS NOT IN THE TEXT STRING.
.B 1
^THE <ADDRESS ARGUMENT IS MAINLY FOR <FORTRAN. ^IT IS THE ADDRESS OF AN ARRAY CONTAINING THE LITERAL TEXT STRING. ^ALTHOUGH AN OCTAL ADDRESS COULD BE GIVEN THE MORE USUAL FORM WOULD BE A FORMAL ARGUMENT NUMBER _^^N (SEE SEC. 2.4).
.B 1
^ONLY ONE COLLATING SEQUENCE IS ALLOWED PER SORT COMMAND.
.B 2
2.4##<FORTRAN <SORT
.BR
.IF TWENTY
 ^THE SPECIAL <FORTRAN <SORT OPTION HAS BEEN REPLACED BY A SMALL ROUTINE
WHICH DOES A <GET ON THE STAND-ALONE <SORT. ^THIS HAS TWO MAJOR BENEFITS:
.B 1
.LM+4;.I-4
1.##^THE SYNTAX IS EXACTLY THE SAME AS THE STAND-ALONE <SORT AND ALL FEATURES OF THE STAND-ALONE <SORT ARE AVAILABLE TO THE <FORTRAN <SORT.
.B 1
.I-4
2.##^USER'S PROGRAMS ARE NOW MUCH SMALLER SINCE THE <SORT OCCUPIES
UNUSED SPACE ABOVE <FOROTS AND IS SHAREABLE.
.LM-4
.ENDIF TWENTY
.B 1
^THREE NEW SWITCHES HAVE BEEN ADDED MAINLY FOR <FORTRAN <SORT THESE ARE:
.B 1
.IF TWENTY
</SUPPRESS-ERROR:<ARG WHERE ARG IS ONE OF:
.ELSE TWENTY
</SUPPRESS:<ARG#####WHERE ARG IS ONE OF:
.ENDIF TWENTY
.LM+12;.I-12
<ALL#########^SUPPRESS ALL ERROR MESSAGES
.BR;.I-12
<FATAL#######^SUPPRESS FATAL, WARNINGS AND INFORMATIONAL ERROR MESSAGES (SAME AS <ALL)
.BR;.I-12
<WARNING#####^SUPPRESS WARNINGS AND INFORMATIONAL MESSAGES
.BR;.I-12
<INFORMATION#^SUPPRESS INFORMATIONAL MESSAGES
.BR;.I-12
<NONE########^SUPPRESS NONE OF THE MESSAGES
.B 1
.BR;.I-12
</ERROR
.IF TWENTY
.NOSPACE
<-RETURN
.ENDIF TWENTY
.NOSPACE
:<ADDRESS OF WHERE TO GO ON A FATAL ERROR.
.B 1
.BR;.I-12
</FATAL
.IF TWENTY
.NOSPACE
<-ERROR-CODE
.ENDIF TWENTY
.NOSPACE
:<ADDRESS OF WHERE TO STORE THE SIXBIT ERROR CODE (<SRT<XYZ).
.LM-12;.B 1
^ALTHOUGH </ERROR
.IF TWENTY
.NOSPACE
<-RETURN
.ENDIF TWENTY
.NOSPACE
_ AND </FATAL
.IF TWENTY
.NOSPACE
<-ERROR-CODE
.ENDIF TWENTY
.NOSPACE
_ CODE ACCEPT AN OCTAL ADDRESS
THE MOST USEFUL ARGUMENT IS ONE OF THE FORM _^^N WHERE _^^N IS THE ^N'TH ARGUMENT IN THE <FORTRAN CALL.
.BR
I.E. ^^CALL SORT ('... /ERROR:_^2 /FATAL:_^3 ...',_$100,ERRCOD)\\
.BR
WHERE LABEL 100 AND <ERRCOD ARE DEFINED IN THE <FORTRAN PROGRAM.
.B 1
^THE </ERROR SWITCH ALLOWS THE USER PROGRAM TO TRAP ALL <SORT ERRORS.
^THE </SUPPRESS SWITCH ALLOWS THE USER PROGRAM TO PREVENT THE TERMINAL
USER FROM SEEING <SORT MESSAGES.
^AND THE </FATAL SWITCH ALLOWS THE USER PROGRAM TO DECODE THE <SORT ERROR AND PERHAPS DO SOMETHING USEFUL.
.B 2
.TEST PAGE 5
2.5##^MEMORY ALLOCATION ALGORITHM
 ^THE MEMORY ALLOCATION ALGORITHM FOR 
.IF TWENTY
ALL FLAVOURS OF 
.ELSE TWENTY
STAND-ALONE AND <FORTRAN 
.ENDIF TWENTY
<SORT HAVE BEEN
CENTRALIZED SO THAN ALL REQUESTS FOR MEMORY SPACE NOW GO THROUGH ONE ROUTINE. ^IN PARTICULAR THE <FORTRAN <SORT NOW ALLOCATE SPACE
ONLY VIA THE <FUNCT. CALL. ^THIS MEANS THAT <SORT SHOULD BE ABLE TO
CO-EXIST WITH <LINK OVERLAYS,  
AND OTHER USER ROUTINES WHICH ALLOCATE MEMORY CORRECTLY VIA <FUNCT.
.B 1
.IF TWENTY
 ^TWO NEW SWITCHES HAVE BEEN ADDED TO REPLACE THE /<CORE SWITCH.
^THESE ARE:
.BR
	/<BUFFER-PAGES:\N	^ALLOCATE N PAGES FOR <I/O BUFFERS
.BR
	/<LEAVES:\N	^BUILD A <SORT TREE WITH N LEAVES
.B 1
^THE /<BUFFER-PAGES SWITCH SETS THE TOTAL AMOUNT OF SPACE TO BE USED
FOR ALL <I/O BUFFERS DURING THE SORT PHASE OF A SORT.  ^IF THIS IS
NOT ENOUGH SPACE TO DO THE SORT, THE USER WILL GET AN ERROR
MESSAGE AND SORT WILL USE THE MINIMUM SPACE POSSIBLE IN WHICH TO
DO THE SORT.  ^SIMILARLY, IF THE ARGUMENT IS TOO LARGE <SORT WILL
USE THE LARGEST POSSIBLE BUFFER AREA.  ^IF THE ARGUMENT SPECIFIED
IS LARGE ENOUGH TO DO THE SORT BUT NOT LARGE ENOUGH TO DO THE
MERGE, <SORT WILL ALLOCATE ENOUGH ADDITIONAL CORE TO DO THE MERGE.
 ^THE /<LEAVES SWITCH SETS THE SIZE OF THE SORT TREE (FOR AN
EXPLANATION OF THE SORT TREE, SEE ^KNUTH, VOL. 3.  ^THE ALGORITHM
USED IS REPLACEMENT SELECTION).  ^THIS IS THE NUMBER OF RECORDS
WHICH WILL BE HELD IN CORE AT ANY TIME DURING THE SORT PHASE.
^VARYING THIS PARAMETER WILL AFFECT THE PERFORMANCE OF THE SORT,
BUT NO SIMPLE RULES CAN PREDICT WHAT THE EFFECT WILL BE.  ^GENERALLY
SPEAKING, THE LARGER THIS NUMBER THE BETTER, UNTIL IT BECOMES SO
LARGE THAT <SORT CAUSES THRASHING.
.BR
 ^IN GENERAL, THE DEFAULT VALUES <SORT TAKES FOR /<BUFFER-PAGES
AND /<LEAVES ARE ADEQUATE FOR NORMAL SORTS.  ^FOR UNUSUAL CASES,
EXPERIMENTATION MAY INDICATE THAT GIVING THESE SWITCHES WILL
SPEED UP THE SORT.  ^THERE ARE NO COOKBOOK RULES FOR WHAT VALUES
TO USE, HOWEVER.  ^THESE MUST BE DETERMINED BY EXPERIMENTATION.
.ELSE TWENTY
^IN ADDITION THE FOLLOWING SWITCH HAS BEEN ADDED, MAINLY FOR COMPATIBILITY WITH <TOPS-20.
.BR
</LEAVES:N WHERE ^N IS THE DECIMAL NUMBER OF TERMINAL NODES (I.E. RECORDS 
IN CORE). ^THIS SWITCH AND THE </CORE SWITCH CAN BE USED TO TUNE <SORT  FOR A PARTICULAR APPLICATION.
.ENDIF TWENTY
.IF TWENTY
.B 2
.TEST PAGE 5
2.6##<SORT/MERGE IN ^NATIVE ^MODE
 ^THE COMPATIBILITY PACKAGE HAS BEEN REMOVED FROM <SORT WHICH NOW RUNS IN NATIVE MODE.
^ALL <TOPS-10 <UUO<S HAVE BEEN REPLACED WITH <TOPS-20 <JSYS<ES.
^THIS HAS PRODUCED A SIGNIFICANT PERFORMANCE IMPROVEMENT IN <SORT
ON <TOPS-20.  ^IN ADDITION, TEMPORARY FILES ARE NOW AUTOMATICALLY
EXPUNGED AFTER A SORT SO THAT THEY DO NOT NEEDLESSLY CONSUME DISK
SPACE.  <SCAN HAS BEEN
REMOVED AND REPLACED WITH A <TOPS-20 STYLE COMMAND SCANNER USING THE <COMND <JSYS.
^ALSO, THE MERGE ALGORITHM HAS BEEN MODIFIED TO USE MORE INTERNAL FILES THUS CUTTING DOWN ON DATA COPYING FOR VERY LARGE SORTS.
.B 2
2.7##<COBOL <SORT
 ^PUT THE <COBOL <SORT INTO THE HIGH SEGMENT, THIS PROVIDES FOR ALL 
OF <SORT EXCEPT THE IMPURE DATA TO BE SHAREABLE. ^THE IMPURE DATA 
RESIDES IN TWO PAGES (676 AND 677) BETWEEN <LIBOL AND <PA1050.
^THESE TWO PAGES APPEAR IN THE USER'S ADDRESS SPACE ONLY WHEN 
<SORT IS BEING USED.
.ENDIF TWENTY
.B 3
.PG
3.0##<KNOWN <BUGS <AND <DEFICIENCIES
 ^AS OF 12-^APR-78, THE FOLLOWING DEFICIENCIES ARE KNOWN:
.LM+9.P-4,1
 1.##^STAND-ALONE <SORT MAY NOT REINITIALIZE ITSELF AFTER
A SORT, SO THAT RESTARTING IT BY _^^C, AND RUNNING IT AGAIN MAY
BE NECESSARY.
 2.##^IF MORE THAN 262,143 (2**18-1) RECORDS IN THE INPUT FILE ALL HAVE IDENTICAL
KEYS (WHICH IS UNLIKELY), ^^SORT\\'S INTERNAL SEQUENCE NUMBER OVERFLOWS.
^THIS CAUSES THE SORT TO BECOME UNSTABLE; I.E., THE OUTPUT DATA IS
SORTED CORRECTLY BUT THE RECORDS WITH IDENTICAL KEYS WILL NOT BE IN THE SAME
ORDER AS THEY WERE IN THE INPUT FILE.  ^IN PREVIOUS VERSIONS OF <SORT
THIS SIMPLY HAPPENED WITHOUT ANY WARNING.  ^VERSION 4 NOW PRINTS A
WARNING MESSAGE IF THIS OCCURS AND CONTINUES SORTING.
 3.##^EDITS 303, 304, AND 305 WERE MADE AFTER THE <SORT SOURCES WERE FROZEN. ^THESE PATCHES ARE IN THE BEWARE FILE <SORT.BWR. ^THEY ARE ALSO INCLUDED FOR YOUR CONVENIENCE IN THE <*.NEW FILES. ^NOTE HOWEVER THAT THESE PATCHES HAVE HAD ONLY MINIMAL TESTING.
.IFN TWENTY
 4.##<SORT MAY GIVE THE MESSAGE:
.LM+5.B;<%SRTNCS ^NOT ENOUGH CORE SPECIFIED
.B.LM-5;WHEN NO </CORE SWITCH OR <MEMORY <SIZE CLAUSE
WAS GIVEN. ^THE SORT SHOULD PROCEED NORMALLY, HOWEVER.
 5.##^THOUGH <FORTRAN <SORT'<S CALLING SEQUENCE IS SIMILAR TO
STAND-ALONE <SORT'<S, THE FOLLOWING DIFFERENCES ARE KNOWN:
.LM+9
 1.##^CONTINUATION LINES (IN INDIRECT FILES) ARE NOT ALLOWED.
 2.##^INDIRECT FILES MUST BE ON <DSK_:
IN THE USER'S DEFAULT PATH.
 3.##^FILE EXTENSIONS MUST BE TYPED EXPLICITLY.
 4.##^SWITCHES MUST ALWAYS FOLLOW FILE SPECIFICATIONS TO WHICH THEY
APPLY.
.LM-9
 6.##^ON ^V^M SYSTEMS, <COBOL <SORT DESTROYS PAGES LEFT
AROUND BY <MCS, <VMDDT, AND THE PAGE FAULT HANDLER WHEN IT
REDUCES CORE AFTER A SORT. ^THE PAGE FAULT HANDLER IS NOT
AFFECTED TOO MUCH, HOWEVER, SINCE IT WILL BE BROUGHT IN AGAIN IF
TOTALLY WIPED OUT.
 7.##<SORT AND <COBOL OVERLAYS DO NOT ALWAYS WORK TOGETHER CORRECTLY.
.ENDIF TWENTY
.LM-9
.PG
4.0##<INSTALLATION <INSTRUCTIONS
.B2
4.1##^INSTRUCTIONS FOR ^LOADING AND ^INSTALLING <SORT
.P
.IF TWENTY
^MOUNT THE <SORT TAPE ON <MTA0_: AND TYPE THE FOLLOWING COMMANDS:
.B;^^DUMPER
.BR;TAPE MTA0:
.BR;REWIND
.BR;DENSITY 1600-BPI
.BR;SKIP 1
.BR;RESTORE _<*>SORT.EXE (TO) _<SUBSYS>*.*.-1,
.BR;_<*>SORT.HLP (TO) _<SUBSYS>*.*.-1
.BR;REWIND\\
.ELSE TWENTY
^THE INSTALLATION OF STAND ALONE <SORT IS SIMPLE. ^JUST PUT <SORT.EXE ON
<SYS: (OR <NEW:) AND <SORT.HLP ON <HLP:.
.ENDIF TWENTY
.B2
4.2##^INSTRUCTIONS FOR ^BUILDING <SORT
 ^FULL BUILDING INSTRUCTIONS FOR <SORT CAN BE FOUND
IN <SORT.CTL.
 ^TO GENERATE STAND-ALONE <SORT, LOAD ALL OF THE <SORT SOURCES FROM
THE <SORT TAPE INTO YOUR DIRECTORY AREA, AND TYPE:
.B.LM+5;^^SUBMIT SORT/TIME:20:00\\
.LM-5.B
.IF TWENTY
^IF <LIBOL.REL, <LIBSHR.REL AND <FTDEFS.UNV ARE IN YOUR DIRECTORY,
.ELSE TWENTY
^IF <LIBOL.REL AND <FTDEFS.UNV ARE IN YOUR DIRECTORY,
.ENDIF TWENTY
A <COBOL <SORT WILL BE BUILT AND INSERTED INTO 
.IF TWENTY
<LIBO12.EXE AND 
.ENDIF TWENTY
<LIBOL.REL.
.B 1
^IF <FORLIB.REL IS IN YOUR DIRECTORY, A <FORTRAN <SORT WILL BE BUILT AND INSERTED INTO <FORLIB.REL.
 ^TO BUILD ONLY A <COBOL <SORT TYPE:
.B.LM+5;^^SUBMIT SORT/TIME:20:00/TAG:COBOL\\
.B.LM-5
 ^TO BUILD ONLY A <FORTRAN <SORT TYPE:
.B.LM+5;^^SUBMIT SORT/TIME:20:00/TAG:FORTRA\\
.LM-5
 ^THE FOLLOWING TABLE CONTAINS THE ASSEMBLY SWITCHES, THEIR DEFAULT
VALUE, LOCATION AND INTENDED USE.
.LM+2.B.TS13,22,33
^^ASSEMBLY	DEFAULT	DEFINED	USE WHEN SWITCH HAS\\
.BR;^^SWITCH	VALUE	IN MODULE	A NONZERO VALUE\\
.BR;------------------------------------------------------------------
.BR;<FTOPS20	
.NOSPACE
.IF TWENTY
1
.ELSE TWENTY
0
.ENDIF TWENTY
.NOSPACE
\	<SRTPRM	^BUILD <SORT FOR A <DEC<SYSTEM-20
.BR;<FTKL10	
.NOSPACE
.IF TWENTY
1
.ELSE TWENTY
0
.ENDIF TWENTY
.NOSPACE
\	<SRTPRM	^USE ^K^L INSTRUCTIONS (<BIS ETC.)
.BR;<FTKI10	
.NOSPACE
.IF TWENTY
1
.ELSE TWENTY
0
.ENDIF TWENTY
.NOSPACE
\	<SRTPRM	^USE ^K^I INSTRUCTIONS (<DMOVE ETC.)
.BR;<FTCOL	1	<SRTPRM	^ALLOW ALTERNATE COLLATING SEQUENCE
.BR;<FTDEBUG	0	<SRTPRM	^DEBUGGING AIDS AND ADDITIONAL INFO
.BR;<FTCOBOL	1	<SRTCBL	^BUILD <SORT FOR <COBOL
.IFN TWENTY
.BR;<FTFORTRAN	0	<SRTCBL	^BUILDING <COBOL, SO TURN OFF <FORTRAN
.BR;<FTFORTRAN	1	<SRTFOR	^BUILD <SORT FOR <FORTRAN
.BR;<FTCOBOL	0	<SRTFOR	^BUILDING <FORTRAN, SO TURN OFF <COBOL
.ENDIF TWENTY
.B3.LM0
.PG
5.0##<INTERNAL <CHANGES
.B 1
^SEVERAL OF THE SORT SOURCE MODULES HAVE BEEN SPLIT TO SEPARATE 
<DEC<SYSTEM-10 AND <DECSYSTEM-20 CODE
.IF TWENTY
.NOSPACE
_ AND TWO NEW MODULES WERE ADDED
.ENDIF TWENTY
.NOSPACE
\.
.B 1
^THE SOURCES NOW CONSIST OF:
.B 1
<SRTPRM.MAC##^THE COMMON PARAMETER DEFINITIONS
.BR
<SRTSTA.MAC##^THE COMMON STAND-ALONE CODE
.BR
.IF TWENTY
<SRTCMD.MAC##^THE <DECSYSTEM-20 COMMAND SCANNER
.BR
<SRTJSS.MAC##<DECSYSTEM-20 SPECIFIC CODE
.BR
<SRTCER.MAC##^STANDARD ERROR MESSAGE ROUTINES
.ELSE TWENTY
.BR
<SRTSCN.MAC##^THE INTERFACE TO <SCAN
.BR
<SRTUUO.MAC##<DEC<SYSTEM-10 SPECIFIC CODE
.ENDIF TWENTY
.BR
<SRTCMP.MAC##^THE COMPARISON GENERATOR
.BR
<SORT.MAC####^THE COMMON ALGORITHMS
.B 1
^IN ADDITION THE <COBOL <SORT HAS:
.BR
<SRTCBL.MAC##^THE INTERFACE FOR <COBOL
.B 1
AND THE <FORTRAN <SORT HAS:
.BR
.IF TWENTY
<FORSRT.MAC##^THE <FORTRAN INTERFACE TO THE STAND-ALONE <SORT.
.ELSE TWENTY
<SRTFOR.MAC##^THE <FORTRAN INTERFACE.
.BR
<SRTCER.MAC##^STANDARD ERROR MESSAGE ROUTINES
.ENDIF TWENTY
.B 2
 ^THE FOLLOWING EDITS WERE MADE TO <SORT AS
A RESULT OF BUGS FOUND:
.B1
<EDIT#_#
.LM+5.TS5
.B1.I-5;201	<SPR 10-22768
.B;^ATTEMPTS TO COMPINE </BINARY WITH </ASCII IN <FORTRAN <SORT, AND ADDITIONALLY
WITH </SIXBIT OR </EBCDIC IN STAND-ALONE <SORT, CAUSED <SORT TO BECOME CONFUSED
BETWEEN THE MODE FOR KEY COMPARISONS AND THE MODE FOR ACTUAL <I/O. ^SYMPTOMS
OF THIS WERE BAD OUTPUT FILES OR ILLEGAL MEMORY REFERENCES.
.B;.I-5;202	<SPR 10-22767
.B;<FORTRAN <SORT INCORRECTLY REQUIRED ALL BINARY FILES TO HAVE BEEN WRITTEN
WITH <MODE='BINARY' IN THE <OPEN STATEMENT. ^THIS FREQUENTLY RESULTED IN
THE ERRONEOUS MESSAGE
.B.I+5;<?SRTFCW <FORTRAN BINARY CONTROL WORD INCORRECT
.B.I-5;203	<SPR 10-22769
.B;^WIDE CONFUSION IN <FORTRAN AND STAND-ALONE <SORT<'S HANDLING OF <FORTRAN
BINARY FILES OF ALL KINDS.
.B.I-5;204
.B;^CHANGE <SIXBIT INPUT TO IGNORE ZERO WORDS. ^THIS ALLOWED SORTS AND MERGES
OF <COBOL <RANDOM FILES, AMONG OTHER THINGS.
.B.I-5;205
.B;^FIX THE HANDLING OF LABELED MULTI-REEL TAPES FOR SORTS.
.B.I-5;206
.B;^TURN ON THE <FTOPS20 CONDITIONAL FOR <TOPS-20 <SORT ON THE <QT011 TAPE.
.B.I-5;207
.B;^WRITE VARIABLE LENGTH <.TMP FILES IN <COBOL <SORT. ^THIS CAN CAUSE A
GREAT SAVINGS OF DISK SPACE DURING SORTS AND MERGES IN SOME CASES.
.B.I-5;210, <SPR 10-22813
.B;^ON <TOPS-10, <SORT OCCASIONALLY WOULD PAD THE LAST BLOCK OF OUTPUT
DISK FILES WITH ZEROS. ^EDIT 131 IN A PREVIOUS RELEASE WAS INTENDED TO FIX
THIS, BUT ONE CASE WAS LEFT OUT. ^THIS EDIT INCLUDES THAT CASE.
.B.I-5;211
.B;<FORTRAN <SORT NEGLECTED TO FREE ONE OF THE <I/O CHANNELS IT USED EACH
TIME IT WAS CALLED. ^WITH ENOUGH CALLS TO <SORT, ALL THE CHANNELS WERE USED
UP. ^THIS EDIT FREES THE EXTRA CHANNEL.
.B.I-5;212, <SPR 10-22379
.B;^MULTIPLE COMMANDS TO <SORT GIVING THE </TEMP SWITCH FREQUENTLY CAUSED
<SORT TO BLOW UP. ^THIS WAS CAUSED BY <SORT<'S NOT ZEROING THE LAST POINTER
IN ITS LIST OF TEMPORARY DEVICES.
.B.I-5;213, <SPR 10-24603
.B;^THIS EDIT REMOVED MANY OF THE RESTRICTIONS IN THE <FORTRAN <SORT COMMAND
SCANNER. ^AMONG THESE ARE:
.LS
.LE;^REMOVAL OF SOME UNDOCUMENTED, REDUNDANT SWITCHES.
.LE;^ALLOW RECORDING MODE SWITCHES ANYWHERE IN THE COMMAND STRING, NOT JUST
FOLLOWING A </KEY.
.LE;^ADD </COMPUTATIONAL, </STANDARD AND </DENSITY FOR COMPATABILITY WITH STAND-ALONE <SORT.
.LE;^MAKE </CORE OPERATE AS IN STAND-ALONE <SORT.
.LE;^ALLOW </FORMAT AS A KEY DATA TYPE ON ANY </KEY, NOT JUST THE LAST ONE.
.LE;^ALLOW THE COMMAND STRING TO BE IN AN ARRAY, RATHER THAN REQUIRING IT
TO BE A LITERAL.
.LE;^TRY DEFAULT
.IF TWENTY
FILE TYPES
.ELSE TWENTY
EXTENSIONS
.ENDIF TWENTY
OF <.CCL AND <.CMD FOR INDIRECT COMMAND FILES.
.ELS
.B.I-5;214, <SPR 10-22409
.B;^SEVERAL PROBLEMS WITH <SORT'<S COMMAND SCANNER WHEN THE </TEMP SWITCH
IS USED, WERE FIXED. ^THE FIXES INCLUDED ADDED CHECKS TO BE SURE THAT THERE
WAS ACTUALLY AN INPUT FILE (NOT ALL </TEMP SPECS), AND ALLOWING <SORT TO
SKIP TEMPORARY STRUCTURES IF THEY WERE AT LEAST WRITABLE, BUT DIDN'T CONTAIN
THE USER'S PATH.
.B.I-5;215
.B;^FIX THE HANDLING OF LABELED MULTI-REEL TAPES IN ALL CASES. ^THIS WAS
A GENERALIZATION OF EDIT 205, TO ALLOW LABELED TAPES IN MERGES AS WELL AS
SORTS. ^THIS EDIT WAS NOT PUBLISHED DUE TO ITS IMMENSE SIZE.
.B.I-5;216
.B;^THIS FIXED THE SORTING OF LINE-SEQUENCED <ASCII FILES ON <KL <CPU<S.
.B.I-5;217, <SPR 10-24709
.B;^FIXED A BUG IN EDIT 207, WHICH CAUSED THE DATA RECORD IN A <COBOL SORT
NOT TO BE COPIED INTO <SORT<'S BUFFERS.
.B.I-5;220
.B;^FIXED AN ILLEGAL INSTRUCTION WHEN USING TAPES IN <FORTRAN <SORT.
.B.I-5;221, <SPR 20-11131
.B;<FORTRAN <SORT GREW AND GREW IN MEMORY SIZE EACH TIME IT WAS CALLED, UNTIL
ALL OF MEMORY WAS USED UP.
.B.I-5;222
.B;^SPECIFYING MORE THAN ONE <FORTRAN FLOATING-POINT <ASCII KEY FREQUENTLY
RESULTED IN A <FOROTS RUN-TIME <DECODE ERROR.
.B.I-5;223
.B;^WHEN <FORTRAN <SORT WAS CALLED BY A HUGE <FORTRAN PROGRAM WHICH WAS LOADED
WITH <FORDDT, <SORT GOT ADDRESS CHECKS OR <I/O TO UNASSIGNED CHANNEL ERRORS. ^THIS
WAS ALSO CAUSED IF THE <FORTRAN PROGRAM RAN FOR A WHILE OR HAD COMPLICATED EXPRESSIONS
PRECEEDING THE CALL TO <SORT.
.B.I-5;224
.B;^IF A USER RETURNED FROM AN OUTPUT PROCEDURE IN A <COBOL PROGRAM BEFORE
THE <AT <END PATH ON THE <RETURN STATEMENT WAS TAKEN, <I/O TO UNASSIGNED
CHANNEL OR NO FREE CHANNEL ERRORS RESULTED.
.B1.I-5;225 THRU 277
.B1;^THESE WERE SPARES, AND WERE NEVER USED.
.B.I-5;300
.B;^DEVELOPMENT OF VERSION 4.
.B;.I-5;301, 302
.B;^FIELD TEST EDITS.
.B 2;^THE FOLLOWING EDITS ARE IN THE BEWARE FILE AND <*.NEW SOURCES
.B 1;.I -5;303
.B 1;^Fix compares of two character <EBCDIC alphanumeric keys in the middle of a word.
.B 1;.I -5;304
.B 1;^Fix <?SRTRIE errors on <EBCDIC fixed-length files.
.B 1;.I -5;305
.B 1;^ON <TOPS-20 FIX BLOCKING FACTOR PROBLEMS
.B3.LM-5
6.0##<SUGGESTIONS
 ^NONE.
.B 3
[^END OF <SRT4.DOC]