IDENTIFICATION DIVISION. PROGRAM-ID. TEST01S. ENVIRONMENT DIVISION. CONFIGURATION SECTION. * INPUT-OUTPUT SECTION. DATA DIVISION. FILE SECTION. WORKING-STORAGE SECTION. 01 W01-SUBTRACT. 05 W01-SUB PIC S9(6). 05 W01-SUB1 PIC 9(6). 05 W01-SUB2 PIC S9(2)V9. 05 W01-SUB3 PIC 9(6). 05 W01-SUBT OCCURS 2 TIMES PIC S9(6). 05 W01-SUB7 PIC S9(4)V9. 05 W01-SUB8 PIC S9(4)V9(2). 05 W01-SUB9 PIC S9(4)V9(3). 05 W01-SUB0 PIC S9(4)V9(4). PROCEDURE DIVISION. A-000. PERFORM A-100. STOP RUN. A-100. DISPLAY "* ------ subtract statements tests begin ------ *". DISPLAY "* ------ test 1 begin ------ *". MOVE 100 TO W01-SUB. MOVE 200 TO W01-SUB1. MOVE -88 TO W01-SUB2. DISPLAY "W01-SUB = " W01-SUB " W01-SUB1 = " W01-SUB1 " W01-SUB2 = " W01-SUB2. SUBTRACT 11 22 33.5 FROM W01-SUB ROUNDED W01-SUB1 W01-SUB2 ROUNDED * SUBTRACT 11 22 -133.5 FROM W01-SUB ROUNDED W01-SUB1 W01-SUB2 ON SIZE ERROR PERFORM E-100 NOT ON SIZE ERROR PERFORM D-100. DISPLAY "subtract 11 22 133.5 (166.5) FROM W01-SUB = " W01-SUB " rounded W01-SUB1 =" W01-SUB1 " W01-SUB2 =" W01-SUB2. * SUBTRACT 11 FROM W01-SUB ROUNDED W01-SUB1 W01-SUB2 * ON SIZE ERROR PERFORM E-100. * DISPLAY "subtract 11 FROM W01-SUB = " W01-SUB * " rounded W01-SUB1 =" W01-SUB1 " W01-SUB2 =" W01-SUB2. * SUBTRACT 22 FROM W01-SUB ROUNDED W01-SUB1 W01-SUB2 * ON SIZE ERROR PERFORM E-100. * DISPLAY "subtract 22 FROM W01-SUB = " W01-SUB * " rounded W01-SUB1 =" W01-SUB1 " W01-SUB2 =" W01-SUB2. * SUBTRACT 133.5 FROM W01-SUB ROUNDED W01-SUB1 W01-SUB2 * ON SIZE ERROR PERFORM E-100. * DISPLAY "subtract 133.5 FROM W01-SUB = " W01-SUB * " rounded W01-SUB1 =" W01-SUB1 " W01-SUB2 =" W01-SUB2. * SUBTRACT -233.5 FROM W01-SUB ROUNDED W01-SUB1 W01-SUB2 * ON SIZE ERROR PERFORM E-100. * DISPLAY "subtract -233.5 FROM W01-SUB = " W01-SUB * " rounded W01-SUB1 =" W01-SUB1 " W01-SUB2 =" W01-SUB2. * SUBTRACT 11 22 33.5 FROM W01-SUB ROUNDED W01-SUB1 W01-SUB2 * ON SIZE ERROR PERFORM E-100. * DISPLAY "subtract 11 22 33.5 (66.5) FROM W01-SUB = " W01-SUB * " rounded W01-SUB1 =" W01-SUB1 " W01-SUB2 =" W01-SUB2. DISPLAY "* ------ test 2 begin ------ *". MOVE -98 TO W01-SUB. MOVE 0 TO W01-SUB1 W01-SUB2 W01-SUB3. DISPLAY "W01-SUB = " W01-SUB " W01-SUB1 = " W01-SUB1 " W01-SUB2 = " W01-SUB2 " W01-SUB3 = " W01-SUB3. SUBTRACT 1 2 3.5 FROM W01-SUB GIVING W01-SUB1 ROUNDED W01-SUB2 W01-SUB3 NOT ON SIZE ERROR PERFORM D-100. DISPLAY "subtract 1 2 3.5 (6.5) FROM W01-SUB = " W01-SUB " giving W01-SUB1 =" W01-SUB1 " rounded W01-SUB2 =" W01-SUB2 " W01-SUB3 =" W01-SUB3. DISPLAY "* ------ test 3 begin ------ *". MOVE -98 TO W01-SUB W01-SUB1 W01-SUB2 W01-SUB3. DISPLAY "W01-SUB = " W01-SUB " W01-SUB1 = " W01-SUB1 " W01-SUB2 = " W01-SUB2 " W01-SUB3 = " W01-SUB3. SUBTRACT 233.5 FROM W01-SUB ROUNDED W01-SUB1 W01-SUB2 W01-SUB3 ROUNDED ON SIZE ERROR PERFORM E-100. DISPLAY "subtract 233.5 FROM W01-SUB = " W01-SUB " giving W01-SUB1 =" W01-SUB1 " rounded W01-SUB2 =" W01-SUB2 " W01-SUB3 =" W01-SUB3. DISPLAY "* ------ test 4 begin ------ *". MOVE -98 TO W01-SUB W01-SUB1 W01-SUB2 W01-SUB3. MOVE -233.5 TO W01-SUBT (1) W01-SUBT (2). DISPLAY "W01-SUB = " W01-SUB " W01-SUB1 = " W01-SUB1 " W01-SUB2 = " W01-SUB2 " W01-SUB3 = " W01-SUB3. DISPLAY "W01-SUBT (1) = " W01-SUBT (1) " W01-SUBT (2) = " W01-SUBT (2). SUBTRACT W01-SUBT (1) FROM W01-SUB ROUNDED W01-SUB1 W01-SUB2 W01-SUB3 ROUNDED ON SIZE ERROR PERFORM E-100. DISPLAY "subtract W01-SUBT (1) = " W01-SUBT (1) " FROM W01-SUB = " W01-SUB " rounded W01-SUB1 =" W01-SUB1 " W01-SUB2 =" W01-SUB2 " W01-SUB3 =" W01-SUB3 " rounded". DISPLAY "* ------ test 6 begin ------ *". SUBTRACT 11.69 FROM -28.36 GIVING W01-SUB7 W01-SUB8 W01-SUB9 W01-SUB0 END-SUBTRACT. DISPLAY "subtract 11.69 from -28.36 giving W01-SUB7 = " W01-SUB7 " W01-SUB8 =" W01-SUB8 " W01-SUB9 =" W01-SUB9 " W01-SUB0 =" W01-SUB0. DISPLAY "* ------ test 7 begin ------ *". SUBTRACT 11.69 FROM -28.36 GIVING W01-SUB7 ROUNDED W01-SUB8 ROUNDED W01-SUB9 ROUNDED W01-SUB0 ROUNDED END-SUBTRACT. DISPLAY "subtract 11.69 from -28.36 giving W01-SUB7 = " W01-SUB7 " rounded" " W01-SUB8 =" W01-SUB8 " rounded" " W01-SUB9 =" W01-SUB9 " rounded" " W01-SUB0 =" W01-SUB0 " rounded" . DISPLAY "* ------ subtract statements tests end ------ *". D-100. DISPLAY "D-100: An subtract exception erorr has NOT occured" . E-100. DISPLAY "E-100: An subtract exception erorr has occured" .