DataMuseum.dk

Presents historical artifacts from the history of:

CP/M

This is an automatic "excavation" of a thematic subset of
artifacts from Datamuseum.dk's BitArchive.

See our Wiki for more about CP/M

Excavated with: AutoArchaeologist - Free & Open Source Software.


top - download

⟦d362da996⟧ TextFile

    Length: 5120 (0x1400)
    Types: TextFile
    Names: »OPG3.CBL«

Derivation

└─⟦c154ac35e⟧ Bits:30002656 COBOL-programmer til undervisning
    └─ ⟦this⟧ »OPG3.CBL« 

TextFile

       IDENTIFICATION DIVISION.
       PROGRAM-ID.      OPG3.
       AUTHOR.          HOLD 4.
       DATE-WRITTEN.    1/10/85.
       DATE-COMPILED.   1/10/85.
      * 
      * PROGRAMMET INDLÆSER PERSON DATA FRA SKÆRMEN
      * OG DANNER EN FIL -PERSON.TRA-.
      * PROGRAMMET STOPPER VED INDTASTNING AF 9(10) I
      * PERSON NUMMER FELTET.
      *
       ENVIRONMENT DIVISION.
       CONFIGURATION SECTION.
       SOURCE-COMPUTER. PICCOLINE.
       SPECIAL-NAMES.    CONSOLE IS CRT.
      *
       INPUT-OUTPUT SECTION.
       FILE-CONTROL.
       SELECT UDFIL ASSIGN TO "PERSON.TRA".
      *
       DATA DIVISION.
       FILE SECTION.
       FD   UDFIL
            LABEL RECORD IS STANDARD.
      *
       01   PERSREG.
               02   PERS-NR        PIC  9(10).
               02   PERS-FNVN      PIC  X(15).
               02   PERS-EFNVN     PIC  X(20).
               02   PERS-GNVN      PIC  X(20).
               02   PERS-POSTNR    PIC  9(4).
               02   PERS-BYNAVN    PIC  X(20).
               02   PERS-TLFNR     PIC  9(8).
      *
       WORKING-STORAGE SECTION.
       01   PERSREG1.
               02   PERS-NR1        PIC  9(10).
               02   PERS-FNVN1      PIC  X(15).
               02   PERS-EFNVN1     PIC  X(20).
               02   PERS-GNVN1      PIC  X(20).
               02   PERS-POSTNR1    PIC  9(4).
               02   PERS-BYNAVN1    PIC  X(20).
               02   PERS-TLFNR1     PIC  9(8).
      *
       01    AC-NR                  PIC  9(10).
       01    PERSONNR REDEFINES AC-NR.
             02     CIF             PIC  9 OCCURS 10 TIMES.
       01    TAELLER                PIC  999.
       01    HELTAL                 PIC  99.
       01    REST                   PIC  99.
      *
      *
       PROCEDURE DIVISION.
       STYRINGS SECTION.
            STYR-IND.
               PERFORM INIT.
               PERFORM BEHANDL1.
               PERFORM LUK.
               DISPLAY SPACE.
               DISPLAY "PROGRAM SLUT" AT 1230.
               STOP RUN.
            STYR-UD.
            EXIT.
      *
      *
       INIT SECTION.
            INIT-IND.
              OPEN EXTEND UDFIL.
              PERFORM SKAERM.
            INIT-UD.
            EXIT.
      *
      *
       BEHANDL1 SECTION.
         BEH-IND.
             ACCEPT AC-NR AT 0527.
             PERFORM BEHANDL2 UNTIL AC-NR = 9999999999.
         BEH-UD.
         EXIT.
      *
      *
       BEHANDL2 SECTION.
         BEH2-IND.
            MOVE 1 TO REST.
            PERFORM TEST UNTIL REST = 0.
            MOVE AC-NR TO PERS-NR1.
            PERFORM NAVN.
            PERFORM POST UNTIL (PERS-POSTNR1 > 1000)
                 AND ( PERS-POSTNR1 < 9999 ).
            PERFORM BY-TLF.
            PERFORM SKRIV.
            PERFORM SKAERM.
            ACCEPT AC-NR AT 0527.
         BEH2-UD.
         EXIT.
      *
      *
       SKAERM SECTION.
         SK-IND.
         DISPLAY SPACE.
         MOVE SPACE TO PERSREG1.
            DISPLAY "INDTAST PERSONNUMMER:    " AT 0501.
            DISPLAY "INDTAST FORNAVN:         " AT 0701.
            DISPLAY "INDTAST EFTERNAVN:       " AT 0901.
            DISPLAY "INDTAST GADENAVN:        " AT 1101.
            DISPLAY "INDTAST POSTNUMMER:      " AT 1301.
            DISPLAY "INDTAST BYNAVN:          " AT 1501.
            DISPLAY "INDTAST TELEFONNUMMER:   " AT 1701.
         SK-UD.
         EXIT.
      *
      *
       TEST SECTION.
          TST-IND.
           COMPUTE TAELLER = CIF(1) * 4 + CIF(2) * 3 + CIF(3) * 2
                           + CIF(4) * 7 + CIF(5) * 6 + CIF(6) * 5
                           + CIF(7) * 4 + CIF(8) * 3 + CIF(9) * 2
                           + CIF(10).
             DIVIDE 11 INTO TAELLER GIVING HELTAL REMAINDER REST.
             IF (REST > 0) DISPLAY "GALT NUMMER TAST NYT: "
                    AT 0542
                    ACCEPT AC-NR AT 0564.
          TST-UD.
          EXIT.
      *
      *
       NAVN SECTION.
           NAVN-IND.
              ACCEPT PERS-FNVN1 AT 0727.
              ACCEPT PERS-EFNVN1 AT 0927.
              ACCEPT PERS-GNVN1 AT 1127.
           NAVN-UD.
           EXIT.
      *
      *
       POST SECTION.
         POST-IND.
              ACCEPT PERS-POSTNR1 AT 1327.
              IF (PERS-POSTNR1 < 1000 ) OR (PERS-POSTNR1 > 9998 )
                  DISPLAY "GALT NUMMER TAST NYT: " AT 1334
                  ACCEPT PERS-POSTNR1 AT 1355.
         POST-UD.
         EXIT.
      *
      *
       BY-TLF SECTION.
         BYTLF-IND.
             ACCEPT PERS-BYNAVN1 AT 1527.
             ACCEPT PERS-TLFNR1  AT 1727.
         BYTLF-UD.
         EXIT.
      *
      *
       SKRIV SECTION.
          SKRIV-IND.
             MOVE PERSREG1 TO PERSREG.
             WRITE PERSREG.
          SKRIV-UD.
          EXIT.
      *
      *
       LUK SECTION.
          LUK-IND.
             CLOSE UDFIL.
          LUK-UD.
          EXIT.
«eof»