home *** CD-ROM | disk | FTP | other *** search
/ Programmer Plus 2007 / Programmer-Plus-2007.iso / Programming / Low Level Languages / Rm Cobol V2.2 / NUCTST.CBL < prev    next >
Encoding:
Text File  |  1985-09-03  |  5.6 KB  |  200 lines

  1.     IDENTIFICATION DIVISION.
  2.     PROGRAM-ID.  NUCTST.
  3.       * SCCS information:
  4.       *@(#) NUCTST  ver. 1.1 last update 85/03/29 12:18:23
  5.       *@(#) This source obtained from the s file on 85/03/29 at 15:04:42
  6.       *
  7.     ENVIRONMENT DIVISION.
  8.     CONFIGURATION SECTION.
  9.     SOURCE-COMPUTER.  RMCOBOL.
  10.     OBJECT-COMPUTER.  RMCOBOL.
  11.       *
  12.     DATA DIVISION.
  13.     WORKING-STORAGE SECTION.
  14.     01    TITLE.
  15.         03    FILLER        PIC    X(51) VALUE
  16.         "NUCTST: RM/COBOL Verify nucleus functions      ver.".
  17.         03    TITLE-DATE    PIC    X(10).
  18.         03    TITLE-TIME    PIC    X(8).
  19.     01    VERSION-INFO.
  20.         03    FILLER        PIC    X(15) VALUE "@ #( ) (@)#@(#)".
  21.         03    PROGRAM-NAME    PIC    X(10) VALUE "NUCTST".
  22.         03    FILLER        PIC    X(6) VALUE " ver. ".
  23.         03    VERSION        PIC    X(4)    VALUE "1.1".
  24.         03    VER-DATE    PIC    X(10) VALUE " 85/03/29 ".
  25.         03    VER-TIME    PIC    X(8)    VALUE "12:18:23".
  26.         03    FILLER        PIC    X    VALUE ">".
  27.     77    NUM-1            PIC 999.
  28.     77    NUM-2            PIC 999.
  29.     01    GROUP-A.
  30.         03    SUB-A1            PIC 9.
  31.         03    SUB-A2            PIC 9.
  32.         03    SUB-A3            PIC 9.
  33.     01    GROUP-B            USAGE COMP-3.
  34.         03    SUB-B1            PIC S9(2)V99.
  35.         03    SUB-B2            PIC S9(5)V99.
  36.         03    SUB-B3            PIC S9(4).
  37.         03    SUB-B4            PIC 9(4).
  38.     77    CORRECT                PIC X(4)    VALUE "PASS".
  39.     77    INCORRECT            PIC X(4)    VALUE "FAIL".
  40.     77    RETURN-KEY            PIC X.
  41.     77    CALC-VALUE            PIC 999.
  42.     77    EDITED-VALUE            PIC 9(9)V9(9).
  43.     77    COUNTER                PIC 9.
  44.       /
  45.       *
  46.     PROCEDURE DIVISION.
  47.     INIT-PARA.
  48.         MOVE VER-DATE TO TITLE-DATE MOVE VER-TIME TO TITLE-TIME.
  49.         MOVE 100 TO NUM-1.
  50.         MOVE 200 TO NUM-2.
  51.         MOVE 005 TO GROUP-A.
  52.         MOVE .00 TO SUB-B1.
  53.         MOVE 42.00 TO SUB-B2.
  54.         MOVE 5.00 TO SUB-B3.
  55.         MOVE 1 TO SUB-B4.
  56.         MOVE ZERO TO COUNTER.
  57.       *
  58.     PARA-1.
  59.         DISPLAY TITLE LINE 1 ERASE.
  60.         DISPLAY "THIS SECTION TESTS RUNTIME NUCLEUS FUNCTIONS."
  61.             LINE 4 POSITION 16.
  62.         DISPLAY "OPERATION" LINE 8 POSITION 2.
  63.         DISPLAY "DISPLAY           CALCULATED           PASS/FAIL"
  64.             LINE 8 POSITION 15.
  65.       *
  66.     TEST-1.
  67.         COMPUTE CALC-VALUE = (SUB-A3 * 60) - NUM-1.
  68.         DISPLAY "COMPUTE" LINE 10 POSITION 3.
  69.         DISPLAY CALC-VALUE LINE 10 POSITION 36.
  70.         DISPLAY NUM-2 LINE 10 POSITION 17.
  71.         IF CALC-VALUE = NUM-2
  72.             DISPLAY CORRECT LINE 10 POSITION 57
  73.         ELSE DISPLAY INCORRECT LINE 10 POSITION 57
  74.             ADD 1 TO COUNTER.
  75.       *
  76.     TEST-2.
  77.         COMPUTE CALC-VALUE ROUNDED =
  78.             (NUM-1 / 6) / SUB-A3.
  79.         ADD 2 TO CALC-VALUE.
  80.         DISPLAY "COMPUTE" LINE 11 POSITION 3.
  81.         DISPLAY CALC-VALUE LINE 11 POSITION 36.
  82.         DISPLAY GROUP-A LINE 11 POSITION 17.
  83.         IF CALC-VALUE = GROUP-A
  84.             DISPLAY CORRECT LINE 11 POSITION 57
  85.         ELSE DISPLAY INCORRECT LINE 11 POSITION 57
  86.             ADD 1 TO COUNTER.
  87.       *
  88.     TEST-3.
  89.         DISPLAY "COMP-EDIT" LINE 12 POSITION 2.
  90.         COMPUTE EDITED-VALUE = ((100 - SUB-B1) / 100 *
  91.             SUB-B2 * SUB-B3 / SUB-B4)
  92.             ON SIZE ERROR GO TO ERROR-MESSAGE.
  93.         DISPLAY NUM-1 LINE 12 POSITION 17.
  94.         DISPLAY NUM-1 LINE 12 POSITION 36.
  95.         DISPLAY CORRECT LINE 12 POSITION 57.
  96.       /
  97.       *
  98.     TEST-4.
  99.         MOVE NUM-1 TO CALC-VALUE.
  100.         MULTIPLY SUB-A3 BY NUM-1.
  101.         MOVE NUM-1 TO NUM-2.
  102.         DIVIDE 5 INTO NUM-2.
  103.         MOVE CALC-VALUE TO NUM-1.
  104.         DISPLAY "CALC-MOVE" LINE 13 POSITION 2.
  105.         DISPLAY NUM-1 LINE 13 POSITION 17.
  106.         DISPLAY NUM-2 LINE 13 POSITION 36.
  107.         IF NUM-1 = NUM-2
  108.             DISPLAY CORRECT LINE 13 POSITION 57
  109.         ELSE DISPLAY INCORRECT LINE 13 POSITION 57
  110.             ADD 1 TO COUNTER.
  111.       *
  112.     TEST-5.
  113.         ADD 11 TO NUM-2.
  114.         MOVE NUM-2 TO GROUP-A.
  115.         ADD SUB-A1, SUB-A2, SUB-A3 TO NUM-1.
  116.         DIVIDE 3 INTO NUM-1 ROUNDED.
  117.         ADD 77 TO NUM-1.
  118.         DISPLAY "CALC-MOVE" LINE 14 POSITION 2.
  119.         DISPLAY NUM-1 LINE 14 POSITION 17.
  120.         DISPLAY NUM-2 LINE 14 POSITION 36.
  121.         IF NUM-1 = NUM-2
  122.             DISPLAY CORRECT LINE 14 POSITION 57
  123.         ELSE DISPLAY INCORRECT LINE 14 POSITION 57
  124.             ADD 1 TO COUNTER.
  125.       *
  126.     TEST-6.
  127.         SUBTRACT SUB-A2 FROM NUM-1.
  128.         COMPUTE CALC-VALUE = (NUM-1 / 10) - SUB-A3.
  129.         DIVIDE 10 INTO NUM-2 ROUNDED.
  130.         SUBTRACT SUB-B4 FROM NUM-2.
  131.         DISPLAY "ROUNDED" LINE 15 POSITION 3.
  132.         DISPLAY NUM-2 LINE 15 POSITION 17.
  133.         DISPLAY CALC-VALUE LINE 15 POSITION 36.
  134.         IF NUM-2 = CALC-VALUE
  135.             DISPLAY CORRECT LINE 15 POSITION 57
  136.         ELSE DISPLAY INCORRECT LINE 15 POSITION 57
  137.             ADD 1 TO COUNTER.
  138.       /
  139.       *
  140.     TEST-7.
  141.         DISPLAY "OVER-FLOW" LINE 16 POSITION 2.
  142.         COMPUTE CALC-VALUE = (101 * (SUB-B4 + 9)) / SUB-B4
  143.             ON SIZE ERROR
  144.                 DISPLAY "OVERFLOW" LINE 16 POSITION 15
  145.                 DISPLAY "OVERFLOW" LINE 16 POSITION 34
  146.                 DISPLAY CORRECT LINE 16 POSITION 57
  147.                 GO TO TEST-8.
  148.         DISPLAY "SHOULD'VE HAD OVERFLOW" LINE 16 POSITION 26.
  149.         DISPLAY INCORRECT LINE 16 POSITION 57.
  150.         ADD 1 TO COUNTER.
  151.       *
  152.     TEST-8.
  153.         MOVE 2 TO CALC-VALUE.
  154.         SUBTRACT 1 FROM NUM-2.
  155.         PERFORM TEST-8-LOOP NUM-2 TIMES.
  156.         MULTIPLY 57 BY NUM-2.
  157.         DISPLAY "PERFORM" LINE 17 POSITION 3.
  158.         DISPLAY NUM-2 LINE 17 POSITION 17.
  159.         DISPLAY CALC-VALUE LINE 17 POSITION 36.
  160.         IF CALC-VALUE = NUM-2
  161.             DISPLAY CORRECT LINE 17 POSITION 57
  162.         ELSE DISPLAY INCORRECT LINE 17 POSITION 57
  163.             ADD 1 TO COUNTER.
  164.       *
  165.     TEST-9.
  166.         COMPUTE CALC-VALUE ROUNDED =
  167.             (NUM-2 - 13) / 450.
  168.         MOVE 001 TO GROUP-A.
  169.         DISPLAY "ROUNDED" LINE 18 POSITION 3.
  170.         DISPLAY GROUP-A LINE 18 POSITION 17.
  171.         DISPLAY CALC-VALUE LINE 18 POSITION 36.
  172.         IF CALC-VALUE = SUB-B4
  173.             DISPLAY CORRECT LINE 18 POSITION 57
  174.         ELSE DISPLAY INCORRECT LINE 18 POSITION 57
  175.             ADD 1 TO COUNTER.
  176.       /
  177.       *
  178.     DISPLAY-RESULTS.
  179.         DISPLAY COUNTER LINE 20 POSITION 40.
  180.         IF COUNTER = 1
  181.             DISPLAY " ERROR ENCOUNTERED" POSITION 0
  182.         ELSE
  183.             DISPLAY " ERRORS ENCOUNTERED" POSITION 0.
  184.     EXIT-PARA.
  185.         EXIT PROGRAM.
  186.     STOP-PARA.
  187.         STOP RUN.
  188.       *
  189.     ERROR-MESSAGE.
  190.         DISPLAY "SIZE ERROR !" LINE 12 POSITION 26.
  191.         DISPLAY INCORRECT LINE 12 POSITION 57.
  192.         ADD 1 TO COUNTER.
  193.         GO TO TEST-4.
  194.       *
  195.     TEST-8-LOOP.
  196.         MULTIPLY 2 BY CALC-VALUE.
  197.         SUBTRACT SUB-A3 FROM CALC-VALUE.
  198.       *
  199.     END PROGRAM.
  200.