// JOB VSB025,,B000,B000
// OPR ****--BEGIN--TO---COMPILE--VSCOB4--*****
// DVC 20 // LFD PRNTR
// WORK1 DVC=50,VOL=SDIVSB
// WORK2 DVC=50,VOL=SDIVSB
// WORK3 DVC=50,VOL=SDIVSB
// EXEC COBOL
// PARAM LST=(A,E,K,L,S,C)
// PARAM OUT=(P,E,S)
/$
       IDENTIFICATION DIVISION.
       PROGRAM-ID.             VSCOB4.
       AUTHOR.                 JAN M. WIEWIORA.
       INSTALLATION.           SDI 90/30 SOFTWARE TEST.
       DATE-WRITTEN.           AUGUST 22, 1974.
       DATE-COMPILED.          AUGUST 1974.
       SECURITY.               V S B  GROUP AND  S. A. STAGING TEAM.
       REMARKS.                THIS PROGRAM WAS WRITTEN TO TEST THE
                               COBOL SORT VERB. IT WILL USE A SEQUENTIAL
                               FILE AS INPUT AND A DIFFERENT SEQUENTIAL
                               FILE AS OUTPUT. THE SORT WILL USE INPUT
                               AND OUTPUT PROCEDURES WITH THE 'RELEASE'
                               AND 'RETURN' VERBS.  *******************.
***********
       ENVIRONMENT DIVISION.
       CONFIGURATION SECTION.
       SOURCE-COMPUTER.        UNIVAC-9030.
       OBJECT-COMPUTER.        UNIVAC-9030.
       SPECIAL-NAMES.
                               SYSDATE IS UDATE,
                               SYSTIME IS UTIME,
                               SYSCONSOLE IS OPR,
                               SYSCHAN-15 IS TOP.
       INPUT-OUTPUT SECTION.
       FILE-CONTROL.
                               SELECT DISKIN ASSIGN TO DISC-8414.
                               SELECT DISKOT ASSIGN TO DISC-8414.
                               SELECT PRNTR ASSIGN TO PRINTER.
                               SELECT SORTR ASSIGN TO DISC-8414.
       DATA DIVISION.
       FILE SECTION.
       FD  DISKIN
           BLOCK CONTAINS 2 RECORDS,
           RECORD CONTAINS 96 CHARACTERS,
           LABEL RECORDS ARE STANDARD,
           RECORDING MODE IS F.
       01  IN-REC              PIC X(96).
       FD  DISKOT
           BLOCK CONTAINS 2 RECORDS,
           RECORD CONTAINS 96 CHARACTERS,
           LABEL RECORDS ARE STANDARD,
           RECORDING MODE IS F.
       01  OT-REC              PIC X(96).
       SD  SORTR
           RECORD CONTAINS 96 CHARACTERS
           RECORDING MODE IS F.
       01  SR-REC.
           05 FILLER           PIC X(77).
           05 VAC              PIC XXX.
           05 FILLER           PIC X(16).
       FD  PRNTR LABEL RECORDS ARE OMITTED.
       01  PLINE               PIC X(120).
       WORKING-STORAGE SECTION.
       01  ADATE.
           05 YY               PIC XX.
           05 MM               PIC XX.
           05 DD               PIC XX.
       01  ATIME.
           05 HH               PIC XX.
           05 SS               PIC XX.
       01  HLINE.
           03 FILLER           PIC X(6)  VALUE 'TIME: '.
           03 HTIME.
              05 HH            PIC XX.
              05 FILLER        PIC X     VALUE ':'.
              05 SS            PIC XX.
           03 FILLER PIC X(32) VALUE '  VSCOB4 TEST FOR COBOL SORT    '.
           03 HDATE.
              05 MM            PIC XX.
              05 FILLER        PIC X     VALUE '/'.
              05 DD            PIC XX.
              05 FILLER        PIC X     VALUE '/'.
              05 YY            PIC XX.
       01  S                   PIC X     VALUE ' '.
       PROCEDURE DIVISION.
       SORT-UP SECTION.
       SET-PRINTER.
           OPEN INPUT DISKIN, OUTPUT DISKOT, PRNTR.
           WRITE PLINE FROM S BEFORE TOP.
           ACCEPT ADATE FROM UDATE.
           ACCEPT ATIME FROM UTIME.
           MOVE CORR ATIME TO HTIME.
           MOVE CORR ADATE TO HDATE.
           WRITE PLINE FROM HLINE BEFORE 2.
       SORT-IT.
           SORT SORTR ON DESCENDING KEY VAC,
                INPUT PROCEDURE IS READ-IT-IN,
                OUTPUT PROCEDURE IS WRITE-IT-OUT.
           CLOSE DISKIN, DISKOT.
           WRITE PLINE FROM S BEFORE TOP.
           WRITE PLINE FROM HLINE BEFORE 2.
           OPEN INPUT DISKOT.
       READ-BACK.
           READ DISKOT AT END WRITE PLINE FROM S BEFORE TOP,
                              CLOSE DISKOT, PRNTR, STOP RUN.
           WRITE PLINE FROM OT-REC BEFORE 1.
           GO TO READ-BACK.
       READ-IT-IN SECTION.
       LET-GO.
           READ DISKIN AT END GO TO INPUT-EXIT.
           RELEASE SR-REC FROM IN-REC.
           WRITE PLINE FROM IN-REC BEFORE 1.
           GO TO LET-GO.
       INPUT-EXIT.  EXIT.
       WRITE-IT-OUT SECTION.
       BACK.
           RETURN SORTR INTO OT-REC AT END GO TO OUTPUT-EXIT.
           WRITE OT-REC INVALID KEY DISPLAY 'OUTPUT FILE FULL'.
           GO TO BACK.
       OUTPUT-EXIT.   EXIT.
/*
// OPR *****--BEGIN--TO--LINK--AND--LOAD--VSCOB4--*****
// DVC 20 // LFD PRNTR
// DVC 50 // VOL SDIVSB // LBL VSBLIB // LFD LOAD
// WORK1 DVC=50,VOL=SDIVSB
// EXEC LNKEDT
// PARAM OUT=LOAD
/$
 LOADM VSCOB4
/*
// OPR *****--BEGIN--TO--EXECUTE--VSCOB4--*****
// DVC 20 // LFD PRNTR
// DVC 50 // VOL SDIVSB // LBL COBOLSAM  // LFD DISKIN
// DVC 50 // VOL SDIVSB // LBL COBOLSAMSORT   // LFD DISKOT
// DVC 50 // VOL SDIVSB // LBL VSBLIB // LFD LOAD
//DM01 WORK1 DVC=50,VOL=SDIVSB
//DM02 WORK2 DVC=50,VOL=SDIVSB
// EXEC VSCOB4,LOAD
/&
