Ein COBOL-Hauptprogramm soll PERCON als Unterprogramm aufrufen. Die PERCON-Anweisungen werden vom Programm bereitgestellt.
Ausdruck des Quellprogramms
IDENTIFICATION DIVISION. PROGRAM-ID. PERCONCO. ENVIRONMENT DIVISION. CONFIGURATION SECTION. SPECIAL-NAMES. TERMINAL IS SYSOUT. DATA DIVISION. WORKING-STORAGE SECTION. 01 PARAM. (1) 02 STMT-INDICATOR PIC S9(5) COMP SYNC VALUE 132. (2) 02 STATEMENT-1 SYNC. 03 STMT-LENGTH PIC S99 COMP VALUE 45. (3) 03 FILLER PIC S99 COMP VALUE 0. 03 STMT PIC X(41) VALUE (4) "MODIFY-PERCON-OPTIONS SYSOUT-LOGGING=*ALL". 02 STATEMENT-2 SYNC. 03 STMT-LENGTH PIC S99 COMP VALUE 38. 03 FILLER PIC S99 COMP VALUE 0. 03 STMT PIC X(34) VALUE "ASSIGN-INPUT-FILE LINK-NAME=PCIN". 02 STATEMENT-3 SYNC. 03 STMT-LENGTH PIC S99 COMP VALUE 38. 03 FILLER PIC S99 COMP VALUE 0. 03 STMT PIC X(34) VALUE "ASSIGN-OUTPUT-FILE LINK-NAME=PCOUT". 02 STATEMENT-4 SYNC. 03 STMT-LENGTH PIC S99 COMP VALUE 7. 03 FILLER PIC S99 COMP VALUE 0. 03 STMT PIC X(3) VALUE "END".
(1) | Symbolische Adresse des Parameterbereichs. |
(2) | Im 4. Byte steht das Kennzeichen für die Art der Übergabe der Anweisungen. X’84’: Die PERCON-Anweisungen werden vom Hauptprogramm in Form variabler Sätze übergeben. |
(3) | Mit STMT-LENGTH und FILLER wird das Satzlängenfeld der Anweisung definiert. |
(4) | Mit STMT wird das Feld für den Satzinhalt der Anweisung definiert. |
01 RETCODE. (5) 02 DMS-CODE PIC S9(5) COMP SYNC. (6) 02 MESSAGE-ID. (7) 03 BYTE-1-2 PIC 9(4) COMP. 03 BYTEAN-1-2 REDEFINES BYTE-1-2. 04 BYTEAN-1 PIC X. 04 FILLER PIC X. 03 BYTES-REST PIC X(10). 01 RESERVED. 02 FILLER PIC S9(5) COMP. 02 FILLER PIC S9(5) COMP. 77 BIT-2 PIC 9. PROCEDURE DIVISION. AUFRUF-PERCON SECTION. AR-1. CALL "PERCONU" USING PARAM RETCODE RESERVED. (8) SUBTRACT 32768 FROM BYTE-1-2. IF BYTEAN-1 NOT < SPACE MOVE 1 TO BIT-2 ELSE MOVE ZERO TO BIT-2. IF BIT-2 = 0 DISPLAY "PERCON RUN SUCCESSFUL" UPON SYSOUT ELSE DISPLAY "PERCON RUN ERRONEOUS" UPON SYSOUT. STOP RUN.
(5) | Symbolische Adresse des Bereichs für Rücksprunginformation. |
(6) | Das Feld DMS-CODE wird von PERCON mit der letzten DVS-Meldung versorgt. |
(7) | Reservierter Bereich für die PERCON-Meldungen. |
(8) | PERCON wird aufgerufen. Der Einsprungpunkt ist PERCONU. Als Daten werden übergeben:
|
Übersetzen, Binden und Aufrufen des Programms (Ablaufprotokoll)
/DELETE-SYSTEM-FILE FILE-NAME=*OMF /START-COBOL2000-COMPILER SOURCE=PERCONCO.SRC - &*———————————————————— (9) / ,MONJV=#MONJV % BLS0500 PROGRAM 'COBOL2000', VERSION '01.6A11' OF '2020-04-02' LOADED % CBL9000 COPYRIGHT (C) 2020 Fujitsu Technology Solutions GmbH. ALL RIGHTS RESERVED % CBL9017 COMPILATION INITIATED, VERSION IS V01.6A11 % CBL9095 SAVLST FILE :2OS6:$WKST.OPTLST.COBOL.PERCONCO CREATED AND CLOSED % CBL9095 SAVLST FILE :2OS6:$WKST.SRCLST.COBOL.PERCONCO CREATED AND CLOSED % CBL9095 SAVLST FILE :2OS6:$WKST.ERRFIL.COBOL.PERCONCO CREATED AND CLOSED % CBL9097 COMPILATION COMPLETED WITHOUT ERRORS % CBL9004 COMPILATION OF PERCONCO USED 0.0631 CPU SECONDS /START-BINDER &* —————————————————————————————————————————————————————— (10) //START-LLM-CREATION INTERNAL-NAME=COBPROG1 &* ———————————————————————— (11) //INCLUDE-MODULES LIBRARY=*OMF,ELEMENT=*ALL //RESOLVE-BY-AUTOLINK LIBRARY=$.SYSLNK.PERCON.030 &* —————————————————— (12) //RESOLVE-BY-AUTOLINK LIBRARY=$.SYSLNK.CRTE //SAVE-LLM LIBRARY=COB.PROG.LIB % BND3101 SOME EXTERNAL REFERENCES UNRESOLVED % BND3102 SOME WEAK EXTERNS UNRESOLVED % BND1501 LLM FORMAT: '1' //END % BND1101 BINDER NORMALLY TERMINATED. SEVERITY CLASS: 'UNRESOLVED EXTERNAL'
(9) | Der COBOL-Übersetzer wird aufgerufen. Mit dem SOURCE-Operanden wird die Datei PERCONCO.SRC als Eingabedatei zugewiesen. |
(10) | Der BINDER wird aufgerufen. |
(11) | Der Name des Programms wird bestimmt. |
(12) | Die Bindemodulbibliothek SYSLNK.PERCON.030 und das Laufzeitsystem SYSLNK.CRTE werden zugewiesen. |
/ADD-FILE-LINK - &*—————————————————————————————————————————————————————— (13) / FILE-NAME=PERS.TAB,- / LINK-NAME=PCIN /CREATE-FILE FILE-NAME=PERS.SEL /ADD-FILE-LINK - &*—————————————————————————————————————————————————————— (14) / FILE-NAME=PERS.SEL,- / ACCESS-METHOD=*SAM,- / LINK-NAME=PCOUT /START-EXECUTABLE-PROGRAM - &*——————————————————————————————————————————— (15) / FROM-FILE=*LIBRARY-ELEMENT(LIBRARY=COB.PROG.LIB,ELEMENT-OR-SYMBOL=COBPROG1) %ASSIGN-INPUT-FILE LINK-NAME=PCIN —————————————————————————————————————— (16) %ASSIGN-OUTPUT-FILE LINK-NAME=PCOUT %END % PER0030 NUMBER OF PROCESSED RECORDS FOR LINK='PCIN' (FILE=:2OS6:$WKST.PERS.TAB): 12 ——————————— (17) % PER0030 NUMBER OF PROCESSED RECORDS FOR LINK='PCOUT' (FILE=:2OS6:$WKST.PERS.SEL): 12 % PER0031 PERCON TERMINATED NORMALLY PERCON RUN SUCCESSFUL ——————————————————————————————————————————————————— (18)
(13) | Die Eingabedatei PERS.TAB wird mit dem Dateikettungsnamen PCIN zugewiesen. |
(14) | Die Ausgabedatei PERS.SEL wird mit dem Dateikettungsnamen PCOUT und ihren Dateieigenschaften zugewiesen. |
(15) | Das soeben gebundene Programm wird geladen und gestartet. |
(16) | Die folgenden Anweisungen werden vom COBOL-Programm bereitgestellt und hier protokolliert. |
(17) | Meldungen von PERCON als Unterprogramm. |
(18) | Ausgabe des Hauptprogramms. |