Skip to content

Instantly share code, notes, and snippets.

@peitor
Created November 15, 2012 19:24
Show Gist options
  • Select an option

  • Save peitor/4080627 to your computer and use it in GitHub Desktop.

Select an option

Save peitor/4080627 to your computer and use it in GitHub Desktop.

Revisions

  1. peitor revised this gist Nov 15, 2012. 1 changed file with 1 addition and 3 deletions.
    4 changes: 1 addition & 3 deletions gistfile1.txt
    Original file line number Diff line number Diff line change
    @@ -2,7 +2,6 @@
    IDENTIFICATION DIVISION.
    PROGRAM-ID. CALC.
    *AUTHOR. R. HAENGGI.
    *FIRMA. BIT, BERN.
    ENVIRONMENT DIVISION.
    CONFIGURATION SECTION.
    SPECIAL-NAMES.
    @@ -68,8 +67,7 @@ DEBUG * " WERT:" WERT UPON BILDSCHIRM
    ------------- Start of calctest.cob ---------------------------
    IDENTIFICATION DIVISION.
    PROGRAM-ID. CALCTEST.
    *AUTHOR. R. HAENGGI.
    *FIRMA. BIT, BERN.
    *AUTHOR. R. HAENGGI.
    ENVIRONMENT DIVISION.
    CONFIGURATION SECTION.
    SPECIAL-NAMES.
  2. peitor created this gist Nov 15, 2012.
    176 changes: 176 additions & 0 deletions gistfile1.txt
    Original file line number Diff line number Diff line change
    @@ -0,0 +1,176 @@
    ------------- Start of calc.cob ---------------------------
    IDENTIFICATION DIVISION.
    PROGRAM-ID. CALC.
    *AUTHOR. R. HAENGGI.
    *FIRMA. BIT, BERN.
    ENVIRONMENT DIVISION.
    CONFIGURATION SECTION.
    SPECIAL-NAMES.
    TERMINAL IS BILDSCHIRM.
    DATA DIVISION.
    WORKING-STORAGE SECTION.
    01 SEPERATOR PIC X(01) VALUE ",".
    01 WERT PIC 9(04).
    01 IND1 PIC 9(02) VALUE 0.
    01 IND2 PIC 9(02) VALUE 0.
    01 MAX-IND PIC 9(02) VALUE 80.
    01 RTC PIC S9(10) SIGN IS LEADING SEPARATE.
    LINKAGE SECTION.
    01 EINGABE.
    05 ZEICHEN PIC X(01) OCCURS 80.
    01 AUSGABE.
    05 ZAHL PIC 9(4).
    PROCEDURE DIVISION USING EINGABE AUSGABE.
    BEGINN.
    PERFORM CALCULATE.
    ENDE.
    EXIT PROGRAM.
    CALCULATE SECTION.
    C1.
    MOVE 0 TO ZAHL
    MOVE 1 TO IND1
    MOVE 0 TO IND2
    IF EINGABE(1:2) = "//" AND
    EINGABE(4:2) = "\N"
    THEN
    MOVE EINGABE(3:1) TO SEPERATOR
    MOVE 6 TO IND1
    END-IF
    PERFORM VARYING IND2 FROM IND1 BY 1 UNTIL IND2 >= MAX-IND
    IF ZEICHEN(IND2) = SEPERATOR OR ZEICHEN(IND2) = " "
    THEN
    COMPUTE WERT = FUNCTION NUMVAL(EINGABE(IND1:IND2 - IND1))
    DEBUG * DISPLAY "IND1:" IND1 " IND2:" IND2 " EINGABE: EINGABE"
    DEBUG * " WERT:" WERT UPON BILDSCHIRM
    IF WERT < 1000
    THEN
    COMPUTE ZAHL = ZAHL + WERT
    END-IF
    COMPUTE IND1 = IND2 + 1
    END-IF
    IF ZEICHEN(IND2) = " "
    THEN
    MOVE 81 TO IND2
    ELSE
    IF ZEICHEN(IND2) NUMERIC OR ZEICHEN(IND2) = SEPERATOR
    THEN
    CONTINUE
    ELSE
    MOVE 81 TO IND2
    MOVE 4711 TO RETURN-CODE
    END-IF
    END-IF
    END-PERFORM
    CONTINUE.
    C99.
    EXIT.
    ------------- End -------------------------
    ------------- Start of calctest.cob ---------------------------
    IDENTIFICATION DIVISION.
    PROGRAM-ID. CALCTEST.
    *AUTHOR. R. HAENGGI.
    *FIRMA. BIT, BERN.
    ENVIRONMENT DIVISION.
    CONFIGURATION SECTION.
    SPECIAL-NAMES.
    TERMINAL IS BILDSCHIRM.
    DATA DIVISION.
    WORKING-STORAGE SECTION.
    01 EINGABE.
    05 ZEICHEN PIC X(01) OCCURS 80.
    01 AUSGABE.
    05 ZAHL PIC 9(4).
    01 ERWARTET PIC 9(4).
    01 RTC-ERWARTET PIC 9(10).
    01 RTC PIC S9(10) SIGN IS LEADING SEPARATE.
    PROCEDURE DIVISION.
    BEGINN.
    DISPLAY "TEST1" UPON BILDSCHIRM
    MOVE "1" TO EINGABE
    MOVE 1 TO ERWARTET
    MOVE 0 TO RTC-ERWARTET
    PERFORM DOTEST
    DISPLAY "TEST2" UPON BILDSCHIRM
    MOVE "1,2" TO EINGABE
    MOVE 3 TO ERWARTET
    MOVE 0 TO RTC-ERWARTET
    PERFORM DOTEST
    DISPLAY "TEST3" UPON BILDSCHIRM
    MOVE "-1" TO EINGABE
    MOVE 0 TO ERWARTET
    MOVE 4711 TO RTC-ERWARTET
    PERFORM DOTEST
    MOVE 0 TO RETURN-CODE
    DISPLAY "TEST4" UPON BILDSCHIRM
    MOVE "1000" TO EINGABE
    MOVE 0 TO ERWARTET
    MOVE 0 TO RTC-ERWARTET
    PERFORM DOTEST
    DISPLAY "TEST5" UPON BILDSCHIRM
    MOVE "//;\N1;2;3" TO EINGABE
    MOVE 6 TO ERWARTET
    MOVE 0 TO RTC-ERWARTET
    PERFORM DOTEST
    CONTINUE.
    ENDE.
    STOP RUN.
    DOTEST SECTION.
    T1.
    * AUSGABE DER EINGABE NUR 69 ZEICHEN DAMIT ES AUF 1 ZEILE PASST
    DISPLAY "EINGABE = " EINGABE(1:69) UPON BILDSCHIRM.
    CALL "CALC" USING BY REFERENCE EINGABE, AUSGABE.
    DISPLAY "AUSGABE = " AUSGABE UPON BILDSCHIRM.
    DISPLAY "ERWARTET = " ERWARTET UPON BILDSCHIRM.
    IF AUSGABE = ERWARTET
    THEN
    MOVE RETURN-CODE TO RTC
    DISPLAY "RETURN-CODE = " RTC UPON BILDSCHIRM
    IF RETURN-CODE = RTC-ERWARTET
    THEN
    DISPLAY "TEST GRUEN" UPON BILDSCHIRM
    ELSE
    DISPLAY "TEST ROT!!!!!!!!!!!!!!!!!!!" UPON BILDSCHIRM
    END-IF
    ELSE
    DISPLAY "TEST ROT!!!!!!!!!!!!!!!!!!!" UPON BILDSCHIRM
    END-IF.
    T99.
    EXIT.

    ------------- End -------------------------



    ------------- Output -------------

    % BLS0517 MODUL 'CALCTEST' GELADEN«············································
    TEST1«··········································································
    EINGABE = 1
    AUSGABE = 0001«································································
    ERWARTET = 0001«································································
    RETURN-CODE = +0000000000«······················································
    TEST GRUEN«·····································································
    TEST2«··········································································
    EINGABE = 1,2
    AUSGABE = 0003«································································
    ERWARTET = 0003«································································
    RETURN-CODE = +0000000000«······················································
    TEST GRUEN«·····································································
    TEST3«··········································································
    EINGABE = -1
    AUSGABE = 0000«································································
    ERWARTET = 0000«································································
    RETURN-CODE = +0000004711«······················································
    TEST GRUEN«·····································································
    TEST4«··········································································
    EINGABE = 1000
    AUSGABE = 0000«································································
    ERWARTET = 0000«································································
    RETURN-CODE = +0000000000«······················································
    TEST GRUEN«·····································································
    TEST5«··········································································
    EINGABE = //;\N1;2;3
    AUSGABE = 0006«································································
    ERWARTET = 0006«································································
    RETURN-CODE = +0000000000«······················································
    TEST GRUEN«·····································································