313 lines
12 KiB
COBOL
313 lines
12 KiB
COBOL
IDENTIFICATION DIVISION.
|
|
PROGRAM-ID. TEST07A.
|
|
AUTHOR. STEPHEN CONNOLLY.
|
|
DATE-WRITTEN. 2001/04/24 .
|
|
ENVIRONMENT DIVISION.
|
|
DATA DIVISION.
|
|
WORKING-STORAGE SECTION.
|
|
77 QT1 PICTURE XXXX VALUE SPACE.
|
|
77 QT2 PICTURE XXXX VALUE SPACE.
|
|
77 QT3 PICTURE XXXX VALUE SPACE.
|
|
77 QT4 PICTURE XXXX VALUE SPACE.
|
|
77 QT5 PICTURE XXXX VALUE SPACE.
|
|
77 WRK-DS-01V00 PICTURE S9.
|
|
77 ONE PICTURE 9 VALUE 1.
|
|
77 TWO PICTURE S9 VALUE 2.
|
|
77 THREE PICTURE S9 VALUE 3.
|
|
77 FOUR PICTURE S9 VALUE 4.
|
|
77 FIVE PICTURE S9 VALUE 5.
|
|
77 SIX PICTURE S9 VALUE 6.
|
|
77 SEVEN PICTURE S9 VALUE 7.
|
|
77 EIGHT PICTURE 9 VALUE 8.
|
|
77 NINE PICTURE S9 VALUE 9.
|
|
77 TEN PICTURE S99 VALUE 10.
|
|
77 FIFTEEN PICTURE S99 VALUE 15.
|
|
77 TWENTY PICTURE S99 VALUE 20.
|
|
77 TWENTY-5 PICTURE S99 VALUE 25.
|
|
01 MOVE54.
|
|
02 MOVE55 PICTURE X VALUE "W".
|
|
02 MOVE56 PICTURE X VALUE "X".
|
|
02 MOVE57.
|
|
03 MOVE58 PICTURE X VALUE "Y".
|
|
03 MOVE59 PICTURE X VALUE "Z".
|
|
01 MOVE60.
|
|
02 MOVE56 PICTURE X.
|
|
02 MOVE57.
|
|
03 MOVE58 PICTURE X.
|
|
03 MOVE64.
|
|
04 MOVE65 PICTURE X VALUE "A".
|
|
01 GRP-FOR-QUAL-FROM.
|
|
02 QUAL-TEST-SUB-GRP-1.
|
|
03 QUAL-TEST-1 PICTURE X(26) VALUE
|
|
"ABCDEFGHIJKLMNOPQRSTUVWXYZ".
|
|
03 QUAL-TEST-1-FROM REDEFINES QUAL-TEST-1 PICTURE X(26).
|
|
03 QUAL-TEST-2 PICTURE S9(10) VALUE +9999999999.
|
|
03 QUAL-TEST-2-FROM REDEFINES QUAL-TEST-2 PICTURE S9(10).
|
|
03 QUAL-TEST-3 PICTURE S999 VALUE 2.
|
|
03 QUAL-TEST-3-FROM REDEFINES QUAL-TEST-3 PICTURE S999.
|
|
02 QUAL-TEST-SUB-GRP-2.
|
|
03 QUAL-TEST-4 PICTURE X OCCURS 5 TIMES.
|
|
03 QUAL-TEST-4-FROM PICTURE X OCCURS 4 TIMES.
|
|
01 GRP-FOR-QUAL-TO.
|
|
02 DUMMY-LEVELZ.
|
|
03 QUAL-TEST-1 PICTURE X(26).
|
|
03 QUAL-TEST-1-TO REDEFINES QUAL-TEST-1 PICTURE X(26).
|
|
03 QUAL-TEST-2 PICTURE S9(10).
|
|
03 QUAL-TEST-2-TO REDEFINES QUAL-TEST-2 PICTURE S9(10).
|
|
03 QUAL-TEST-3 PICTURE S999.
|
|
03 QUAL-TEST-3-TO REDEFINES QUAL-TEST-3 PICTURE S999.
|
|
02 QUAL-TEST1.
|
|
03 QUAL-TEST-4 PICTURE X OCCURS 5 TIMES.
|
|
02 QUAL-TEST2.
|
|
03 QUAL-TEST-4-TO PICTURE X OCCURS 4 TIMES.
|
|
01 GRP-MOVE-CORR-1.
|
|
09 MOVE-CORR-5 PICTURE 999 VALUE 555.
|
|
09 MOVE-CORR-3 PICTURE 999 VALUE 333.
|
|
09 MOVE-CORR-2 PICTURE 999 VALUE 222.
|
|
09 MOVE-CORR-1 PICTURE 999 VALUE 111.
|
|
09 FILLER PICTURE XXX VALUE ZEROS.
|
|
09 MOVE-CORR-4 PICTURE XXX VALUE "XYZ".
|
|
09 MOVE-CORR-6 PICTURE XXX VALUE ALL "6".
|
|
09 MOVE-CORR-7 PICTURE 999 VALUE 777.
|
|
01 GRP-MOVE-CORR-R.
|
|
05 FILLER PICTURE XXX.
|
|
05 MOVE-CORR-1 PICTURE XXX.
|
|
05 MOVE-CORR-2 PICTURE 999.
|
|
05 MOVE-CORR-3 PICTURE ZZZ.
|
|
05 MOVE-CORR-4.
|
|
06 FILLER PICTURE 999.
|
|
06 FILLER PICTURE XXX.
|
|
01 GRP-TO-MOVE-CORR.
|
|
03 GRP-TO-MOVE-CORR-1.
|
|
05 MOVE-CORR-G1.
|
|
06 MOVE-CORR-G2.
|
|
09 MOVE-CORR-E1 PICTURE 999 VALUE 111.
|
|
09 MOVE-CORR-E2 PICTURE 999 VALUE 222.
|
|
09 FILLER PICTURE 999 VALUE 333.
|
|
06 MOVE-CORR-G3.
|
|
07 MOVE-CORR-E3 PICTURE XXX VALUE "123".
|
|
07 MOVE-CORR-G4.
|
|
08 MOVE-CORR-G5.
|
|
09 MOVE-CORR-E4 PICTURE XXX VALUE "ABC".
|
|
09 MOVE-CORR-E5 PICTURE 99 VALUE 45.
|
|
01 GRP-TO-MOVE-CORR-TO.
|
|
02 MOVE-CORR-G1.
|
|
04 MOVE-CORR-G2.
|
|
05 MOVE-CORR-E1 PICTURE XXX.
|
|
05 MOVE-CORR-E2 PICTURE 999 OCCURS 2.
|
|
05 FILLER PICTURE 999.
|
|
04 MOVE-CORR-G3.
|
|
06 MOVE-CORR-E3 PICTURE 999.
|
|
06 MOVE-CORR-G4.
|
|
07 MOVE-CORR-G5 PICTURE X(5).
|
|
01 CORR-DATA-1.
|
|
03 XYZ-1 PICTURE IS 99 VALUE IS ZERO.
|
|
03 XYZ-2 PICTURE IS 99 VALUE IS ZERO.
|
|
03 XYZ-3 PICTURE IS 99 VALUE IS ZERO.
|
|
03 XYZ-4 PICTURE IS 99 VALUE IS ZERO.
|
|
03 XYZ-5 PICTURE IS 99 VALUE IS ZERO.
|
|
03 XYZ-6 PICTURE IS 99 VALUE IS ZERO.
|
|
01 CORR-DATA-2.
|
|
03 XYZ-1 PICTURE IS 99 VALUE IS ZERO.
|
|
03 XYZ-2 PICTURE IS 99 VALUE IS ZERO.
|
|
03 XYZ-3 PICTURE IS 99 VALUE IS ZERO.
|
|
03 XYZ-4 PICTURE IS 99 VALUE IS ZERO.
|
|
03 XYZ-5 PICTURE IS 99 VALUE IS ZERO.
|
|
03 XYZ-6 PICTURE IS 99 VALUE IS ZERO.
|
|
01 CORR-DATA-3.
|
|
03 XYZ-4 PICTURE IS 99 VALUE IS ZERO.
|
|
03 XYZ-3 PICTURE IS 99 VALUE IS ZERO.
|
|
03 XYZ-6 PICTURE IS 99 VALUE IS ZERO.
|
|
03 XYZ-5 PICTURE IS 99 VALUE IS ZERO.
|
|
03 XYZ-2 PICTURE IS 99 VALUE IS ZERO.
|
|
03 XYZ-1 PICTURE IS 99 VALUE IS ZERO.
|
|
01 CORR-DATA-4.
|
|
03 XYZ-11 PICTURE IS 99.
|
|
03 XYZ-12 PICTURE IS 99.
|
|
03 XYZ-13 PICTURE IS 99.
|
|
03 XYZ-14 PICTURE IS 99.
|
|
03 XYZ-15 PICTURE IS 99.
|
|
03 XYZ-16 PICTURE IS 99.
|
|
01 CORR-DATA-5.
|
|
03 XYZ-1 PICTURE 99.
|
|
03 XYZ-2 PICTURE 99.
|
|
03 XYZ-13 PICTURE IS 99.
|
|
03 XYZ-14 PICTURE IS 99.
|
|
03 FILLER PICTURE IS 99.
|
|
03 XYZ-11 PICTURE IS 99.
|
|
03 XYZ-12 PICTURE IS 99.
|
|
01 CORR-DATA-6.
|
|
03 XYZ-11 PICTURE IS 99.
|
|
03 XYZ-12 PICTURE IS 99.
|
|
03 FILLER PICTURE IS 99.
|
|
03 XYZ-1 PICTURE IS 99.
|
|
03 XYZ-2 PICTURE IS 9(2).
|
|
03 FILLER PICTURE IS 99.
|
|
01 CORR-DATA-7.
|
|
02 XYZ-1 PICTURE 99V99 VALUE 10.45.
|
|
02 XYZ-6 PICTURE 999V9 VALUE 100.5.
|
|
02 XYZ-11 PICTURE 99V9 VALUE ZERO.
|
|
02 XYZ-2 PICTURE 99V9 VALUE 0.9.
|
|
|
|
PROCEDURE DIVISION.
|
|
CCVS1 SECTION.
|
|
MAIN-LOOP.
|
|
PERFORM DATA-NAME-QUAL.
|
|
PERFORM MOVE-CORR-ROUTINE.
|
|
STOP RUN.
|
|
|
|
DATA-NAME-QUAL SECTION.
|
|
MOVE "123456789" TO QUAL-TEST-SUB-GRP-2.
|
|
* MOVE ALL ZEROES TO GRP-FOR-QUAL-TO.
|
|
MOVE 2 TO WRK-DS-01V00.
|
|
|
|
MOVE QUAL-TEST-1 OF GRP-FOR-QUAL-FROM
|
|
TO QUAL-TEST-1 OF GRP-FOR-QUAL-TO.
|
|
DISPLAY "Q005:(" QUAL-TEST-1 OF GRP-FOR-QUAL-TO
|
|
"):(ABCDEFGHIJKLMNOPQRSTUVWXYZ):"
|
|
"MOVE QUAL. ITEM OF GRP TO QUAL. ITEM OF OTHER GRP.".
|
|
|
|
MOVE ZERO TO QUAL-TEST-2 OF GRP-FOR-QUAL-TO .
|
|
ADD QUAL-TEST-2 OF GRP-FOR-QUAL-FROM
|
|
TO QUAL-TEST-2 OF GRP-FOR-QUAL-TO.
|
|
DISPLAY "Q006:(" QUAL-TEST-2 OF GRP-FOR-QUAL-TO
|
|
"):( 9999999999):"
|
|
"ADD QUAL. ITEM OF GRP TO QUAL. ITEM OF OTHER GRP.".
|
|
|
|
MULTIPLY QUAL-TEST-3 OF GRP-FOR-QUAL-FROM BY WRK-DS-01V00
|
|
GIVING QUAL-TEST-3 OF GRP-FOR-QUAL-TO.
|
|
DISPLAY "Q007:(" QUAL-TEST-3 OF GRP-FOR-QUAL-TO
|
|
"):( 004):"
|
|
"MULTIPLY QUAL. ITEM OF GRP GIVING "
|
|
"QUAL. ITEM OF OTHER GRP.".
|
|
|
|
MOVE "00000" TO QUAL-TEST1 OF GRP-FOR-QUAL-TO.
|
|
MOVE QUAL-TEST-4 OF GRP-FOR-QUAL-FROM (WRK-DS-01V00)
|
|
TO QUAL-TEST-4 OF GRP-FOR-QUAL-TO (WRK-DS-01V00).
|
|
DISPLAY "Q008:(" QUAL-TEST1 OF GRP-FOR-QUAL-TO
|
|
"):(02000):"
|
|
"MOVE INDEXED QUAL. ITEM OF GRP TO INDEXED "
|
|
"QUAL. ITEM OF OTHER GRP.".
|
|
|
|
MOVE QUAL-TEST-1-FROM IN GRP-FOR-QUAL-FROM TO
|
|
QUAL-TEST-1-TO IN GRP-FOR-QUAL-TO.
|
|
DISPLAY "Q009:(" QUAL-TEST-1-TO OF GRP-FOR-QUAL-TO
|
|
"):(ABCDEFGHIJKLMNOPQRSTUVWXYZ):"
|
|
"MOVE REDEF. QUAL. ITEM OF GRP TO "
|
|
"REDEF. QUAL. ITEM OF OTHER GRP.".
|
|
|
|
MOVE 0 TO QUAL-TEST-2-TO IN GRP-FOR-QUAL-TO.
|
|
ADD QUAL-TEST-2-FROM IN GRP-FOR-QUAL-FROM TO
|
|
QUAL-TEST-2-TO IN GRP-FOR-QUAL-TO.
|
|
DISPLAY "Q010:(" QUAL-TEST-2-TO OF GRP-FOR-QUAL-TO
|
|
"):( 9999999999):"
|
|
"ADD REDEF. QUAL. ITEM OF GRP TO "
|
|
"REDEF. QUAL. ITEM OF OTHER GRP.".
|
|
|
|
|
|
MULTIPLY QUAL-TEST-3-FROM IN GRP-FOR-QUAL-FROM
|
|
BY WRK-DS-01V00
|
|
GIVING QUAL-TEST-3-TO IN GRP-FOR-QUAL-TO.
|
|
DISPLAY "Q011:(" QUAL-TEST-3-TO OF GRP-FOR-QUAL-TO
|
|
"):( 004):"
|
|
"MULTIPLY REDEF. QUAL. ITEM OF GRP GIVING "
|
|
"REDEF. QUAL. ITEM OF OTHER GRP.".
|
|
|
|
MOVE "0000" TO QUAL-TEST2 OF GRP-FOR-QUAL-TO.
|
|
MOVE QUAL-TEST-4-FROM IN GRP-FOR-QUAL-FROM (WRK-DS-01V00)
|
|
TO QUAL-TEST-4-TO IN GRP-FOR-QUAL-TO (WRK-DS-01V00).
|
|
DISPLAY "Q012:(" QUAL-TEST2 OF GRP-FOR-QUAL-TO
|
|
"):(0700):"
|
|
"MOVE REDEF. INDEXED QUAL. ITEM OF GRP TO REDEF. "
|
|
"INDEXED QUAL. ITEM OF OTHER GRP.".
|
|
DATA-EXIT.
|
|
EXIT.
|
|
|
|
MOVE-CORR-ROUTINE SECTION.
|
|
MOV-INIT-F1-1.
|
|
MOVE THREE TO XYZ-1 OF CORR-DATA-1.
|
|
MOVE FOUR TO XYZ-2 OF CORR-DATA-1.
|
|
MOVE TEN TO XYZ-3 OF CORR-DATA-1.
|
|
MOVE ZERO TO XYZ-4 OF CORR-DATA-1.
|
|
MOVE 01 TO XYZ-5 OF CORR-DATA-1.
|
|
MOVE 00 TO XYZ-6 OF CORR-DATA-1.
|
|
|
|
MOVE CORRESPONDING CORR-DATA-1 TO CORR-DATA-2.
|
|
|
|
DISPLAY "Q013:(" XYZ-2 OF CORR-DATA-2 "):(04):"
|
|
"MOVE CORR ITEM OF GRP TO ITEM OF OTHER GRP."
|
|
|
|
DISPLAY "Q014:(" XYZ-1 OF CORR-DATA-2 "):(03):"
|
|
"MOVE CORR ITEM OF GRP TO ITEM OF OTHER GRP."
|
|
|
|
DISPLAY "Q015:(" XYZ-3 OF CORR-DATA-2 "):(10):"
|
|
"MOVE CORR ITEM OF GRP TO ITEM OF OTHER GRP."
|
|
|
|
DISPLAY "Q016:(" XYZ-4 OF CORR-DATA-2 "):("
|
|
XYZ-4 OF CORR-DATA-1 "):"
|
|
"MOVE CORR ITEM OF GRP TO ITEM OF OTHER GRP."
|
|
|
|
DISPLAY "Q017:(" XYZ-5 OF CORR-DATA-2 "):(01):"
|
|
"MOVE CORR ITEM OF GRP TO ITEM OF OTHER GRP."
|
|
|
|
MOVE THREE TO XYZ-1 OF CORR-DATA-1.
|
|
MOVE FOUR TO XYZ-2 OF CORR-DATA-1.
|
|
MOVE TEN TO XYZ-3 OF CORR-DATA-1.
|
|
MOVE ZERO TO XYZ-4 OF CORR-DATA-1.
|
|
MOVE 01 TO XYZ-5 OF CORR-DATA-1.
|
|
MOVE 00 TO XYZ-6 OF CORR-DATA-1.
|
|
MOVE CORRESPONDING CORR-DATA-1 TO CORR-DATA-3.
|
|
|
|
DISPLAY "Q018:(" XYZ-1 OF CORR-DATA-3 "):(03):"
|
|
"MOVE CORR ITEM OF GRP TO ITEM OF OTHER GRP."
|
|
|
|
DISPLAY "Q019:(" XYZ-3 OF CORR-DATA-3 "):(10):"
|
|
"MOVE CORR ITEM OF GRP TO ITEM OF OTHER GRP."
|
|
|
|
MOVE ZERO TO CORR-DATA-5.
|
|
MOVE 123456789012 TO CORR-DATA-3.
|
|
MOVE CORRESPONDING CORR-DATA-3 TO CORR-DATA-5.
|
|
MOVE "PASS" TO QT1.
|
|
|
|
IF XYZ-1 OF CORR-DATA-5 NOT EQUAL TO 12
|
|
MOVE "FAIL" TO QT1
|
|
END-IF.
|
|
IF XYZ-2 OF CORR-DATA-5 NOT EQUAL TO 90
|
|
MOVE "FAIL" TO QT1
|
|
END-IF.
|
|
IF XYZ-13 OF CORR-DATA-5 NOT EQUAL TO 0
|
|
MOVE "FAIL" TO QT1
|
|
END-IF.
|
|
|
|
DISPLAY "Q020:(" QT1 "):(PASS):"
|
|
"MOVE CORR MULTIPLE ITEMS OF GRP TO OTHER GRP .".
|
|
|
|
MOVE SPACE TO GRP-MOVE-CORR-R.
|
|
MOVE CORRESPONDING GRP-MOVE-CORR-1 TO GRP-MOVE-CORR-R.
|
|
|
|
DISPLAY "Q021:(" GRP-MOVE-CORR-R "):( 111222333XYZ ):"
|
|
"MOVE CORR ITEMS OF GRP TO ITEMS OF OTHER GRP."
|
|
|
|
MOVE SPACE TO GRP-TO-MOVE-CORR-TO.
|
|
MOVE CORRESPONDING GRP-TO-MOVE-CORR-1 TO
|
|
GRP-TO-MOVE-CORR-TO.
|
|
|
|
DISPLAY "Q022:(" GRP-TO-MOVE-CORR-TO
|
|
"):(111 123ABC45):"
|
|
"MOVE CORR ITEMS OF GRP TO ITEMS OF OTHER GRP."
|
|
|
|
MOVE CORR MOVE54 TO MOVE60.
|
|
|
|
DISPLAY "Q023:(" MOVE60 "):(XYA):"
|
|
"MOVE CORR ITEMS OF GRP TO ITEMS OF OTHER GRP."
|
|
|
|
MOVE "*" TO MOVE56 OF MOVE60 MOVE58 OF MOVE60 MOVE65.
|
|
|
|
DISPLAY "Q024:(" MOVE60 "):(***):"
|
|
"MOVE TO MULTIPLE QUAL. ITEMS OF GRP." .
|
|
|
|
MOVE-EXIT.
|
|
EXIT.
|
|
|
|
|