       IDENTIFICATION DIVISION.
       PROGRAM-ID. CONVERT.
       REMARKS. THIS IS A GENERALIZED CONVERT PROGRAM
               COPYRIGHT, (C) HONEYWELL INFORMATION SYSTEMS INC, 1979.
       ENVIRONMENT DIVISION.
       CONFIGURATION SECTION.
       SOURCE-COMPUTER. XEROX.
       OBJECT-COMPUTER. XEROX.
       INPUT-OUTPUT SECTION.
       FILE-CONTROL.
           SELECT OUTJCL ASSIGN TO DISC.
           SELECT CNTLFILE ASSIGN TO DISC.
       DATA DIVISION.
       FILE SECTION.
       FD  OUTJCL
           LABEL RECORDS STANDARD
           DATA RECORD IS CCIOUT.
       01  CCIOUT.
           02  OCCI  PIC X(80).
       FD  CNTLFILE
           LABEL RECORDS STANDARD
           DATA RECORD IS CONT-RL.
       01  CONT-RL.
           02  CNTLFST PIC X.
           02  CONTRL  PIC X(79).
       WORKING-STORAGE SECTION.
       77 COPYRITE PIC X(60) VALUE
           'COPYRIGHT, (C) HONEYWELL INFORMATION SYSTEMS INC., 1979'.
       77  FIVE COMP VALUE 5.
       77  Y-N  PIC X VALUE SPACE.
       77  SWITCH  PIC X VALUE SPACE.
       77  CNTL  PIC X(31) VALUE SPACES.
       77  TYPEE PIC XXX  VALUE SPACES.
       77  COUNTEM COMP VALUE 0.
       77  LO-SWITCH PIC XX VALUE 'LO'.
       77  TYPENCTC PIC X(4) VALUE SPACES.
       77  MOVSUB1 COMP VALUE 0.
       77  MOVSUB2 COMP VALUE 0.
       01  W1.
           02  RECV-1 PIC X OCCURS 100.
       01  W2.
           02  SEND-1 PIC X OCCURS 50.
       01  MOV-PARAM.
           02  STRT  COMP VALUE 0.
           02  NUM  COMP VALUE 0.
           02  DIS  COMP VALUE 0.
       01  F-SI.
           02  FILLER PIC X(19) VALUE '!ASSIGN F:SI,(FILE,'.
       01  REST-FSI.
           02  FILLER PIC X(6) VALUE '),(IN)'.
       01  F-SO.
           02  FILLER PIC X(19) VALUE '!ASSIGN F:SO,(FILE,'.
           02  SO-NAME PIC X(46) VALUE SPACES.
       01  REST-SO.
           02  FILLER PIC X(24) VALUE '-C),(OUT),(KEYED),(SAVE)'.
       01  M-SI.
           02  FILLER PIC X(19) VALUE '!ASSIGN M:SI,(FILE,'.
           02  SI-NAME PIC X(33) VALUE SPACES.
       01  REST-SI.
           02  FILLER PIC XX VALUE 'C)'.
       01  TEMPORARY.
           02  TEMP PIC X(5).
           02  TEMPR REDEFINES TEMP.
             03  TEMPA PIC 9(4).
             03  FILLER PIC X.
       PROCEDURE DIVISION.
       SI SECTION.
       OPEN-IT.
           MOVE '1' TO SWITCH.
           DISPLAY 'DO YOU WANT THE LISTOUTS SENT DIRECTLY TO'.
           DISPLAY 'LP (TYPE AN "L") OR SAVED ON DISK (TYPE A "D")?'.
           ACCEPT Y-N.
           DISPLAY '    '.
           IF Y-N NOT = 'L' AND Y-N NOT = 'D' GO TO OPEN-IT.
           OPEN INPUT CNTLFILE.
           OPEN OUTPUT OUTJCL.
       NCTC-CONV.
           MOVE SPACES TO TEMP.
       START-NCTC.
           MOVE SPACES TO CONTRL CNTL.
           READ CNTLFILE AT END GO TO END-IT.
           MOVE CONTRL TO CNTL.
           MOVE '!JOB' TO OCCI.
           WRITE CCIOUT.
           MOVE '!LIMIT (CORE,26),(TIME,20),(ACCOUNT)' TO OCCI.
           WRITE CCIOUT.
       W-SI.
           INSPECT CNTL TALLYING COUNTEM
           FOR CHARACTERS BEFORE INITIAL ' '.
           MOVE COUNTEM TO NUM.
           MOVE 20 TO DIS.
           MOVE 1 TO STRT.
           MOVE CNTL TO W2.
           MOVE F-SI TO W1.
           MOVE W1 TO F-SI.
           ADD NUM TO DIS.
           MOVE 6 TO NUM.
           MOVE REST-FSI TO W2.
           MOVE F-SI TO W1.
           PERFORM MOVMOD.
           MOVE W1 TO F-SI.
           MOVE F-SI TO OCCI.
           WRITE CCIOUT.
           MOVE SPACES TO FSI-NAME.
       W-CO.
           MOVE '!ASSIGN F:CO,(FILE,Q01),(OUTIN)'      TO OCCI.
           WRITE CCIOUT.
           MOVE '!ASSIGN F:VO,(FILE,Q02),(OUTIN)'      TO OCCI.
           WRITE CCIOUT.
       W-SO.
           INSPECT CNTL TALLYING COUNTEM
           FOR CHARACTERS BEFORE INITIAL ' '.
           MOVE COUNTEM TO NUM.
           MOVE 20 TO DIS.
           MOVE 1 TO STRT.
           MOVE CNTL TO W2.
           MOVE F-SO TO W1.
           PERFORM MOVMOD.
           MOVE W1 TO F-SO.
           ADD NUM TO DIS.
           MOVE 24 TO NUM.
           MOVE REST-SO TO W2.
           MOVE F-SO TO W1.
           PERFORM MOVMOD.
           MOVE W1 TO F-SO.
           MOVE F-SO TO OCCI.
           WRITE CCIOUT.
           IF Y-N = 'D'
           MOVE SPACES TO SO-NAME
           INSPECT OCCI REPLACING FIRST 'SO' BY 'LO'
           INSPECT OCCI REPLACING FIRST
              'C),(OUT),(KEYED),(SAVE)' BY
              'LO),(OUT),(SAVE)       '
           ELSE
             MOVE '!ASSIGN F:LO,(DEVICE,LO),(VFC)' TO OCCI.
           WRITE CCIOUT.
           MOVE '!RUN (LMN,CTC,:CONVERT)'   TO OCCI.
           WRITE CCIOUT.
       W-NCTC-SI.
           INSPECT CNTL TALLYING COUNTEM
           FOR CHARACTERS BEFORE INITIAL ' '.
           MOVE COUNTEM TO NUM.
           MOVE 20 TO DIS.
           MOVE 1 TO STRT.
           MOVE CNTL TO W2.
           MOVE M-SI TO W1.
           PERFORM MOVMOD.
           MOVE W1 TO M-SI.
           ADD NUM TO DIS.
           MOVE 2 TO NUM.
           MOVE REST-SI TO W2.
           MOVE M-SI TO W1.
           PERFORM MOVMOD.
           MOVE W1 TO M-SI.
           MOVE M-SI TO OCCI.
           MOVE SPACES TO SI-NAME.
      *    MOVE '!ASSIGN M:SI,(DEVICE,C)' TO OCCI.
      *    WRITE CCIOUT.
           MOVE '!PCL' TO OCCI.
           WRITE CCIOUT.
           MOVE 'DELETE DC/Q01' TO OCCI.
           WRITE CCIOUT.
           MOVE 'DELETE DC/Q02' TO OCCI.
           WRITE CCIOUT.
           MOVE 'END' TO OCCI.
           WRITE CCIOUT.
           MOVE '!EOD' TO OCCI.
           WRITE CCIOUT.
       READ-NEXT-NCTC.
           MOVE 'C' TO SWITCH.
           GO TO START-NCTC.
       W-COBOL.
           MOVE '!COBOL LS,DIAG' TO OCCI.
           WRITE CCIOUT.
       CK-ANS-EXIT. EXIT.
       END-IT.
           IF SWITCH = 'C'
             DISPLAY 'END OF PROGRAM -- PLEASE BATCH YOUR JCL FILE'.
           CLOSE CNTLFILE OUTJCL.
           STOP RUN.
       NOT-READY.
           DISPLAY 'NOT READY YET'.
           GO TO END-IT.
       MOVMOD.
           MOVE 1 TO MOVSUB1.  MOVE DIS TO MOVSUB2.
           PERFORM MM-01 THRU MM-EXIT.
       MM-01.
           MOVE SEND-1 (MOVSUB1) TO RECV-1 (MOVSUB2).
           ADD 1 TO MOVSUB1.  ADD 1 TO MOVSUB2.
           IF MOVSUB1 NOT > NUM GO TO MM-01.
       MM-EXIT.
           EXIT.
